@gnosis-guild/zodiac 4.2.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +107 -4
- package/dist/{esm/abi/Bridge.json → cjs/abis/bridge/1.0.0.js} +5 -2
- package/dist/cjs/abis/circulatingSupplyERC20/1.0.0.js +248 -0
- package/dist/cjs/abis/circulatingSupplyERC20/1.1.0.js +248 -0
- package/dist/cjs/abis/circulatingSupplyERC20/1.2.0.js +248 -0
- package/dist/cjs/abis/circulatingSupplyERC721/1.1.0.js +248 -0
- package/dist/cjs/abis/circulatingSupplyERC721/1.2.0.js +248 -0
- package/dist/cjs/{abi/Connext.json → abis/connext/1.0.0.js} +5 -2
- package/dist/cjs/abis/delay/1.0.0.js +731 -0
- package/dist/cjs/abis/delay/1.0.1.js +731 -0
- package/dist/cjs/abis/delay/1.1.0.js +941 -0
- package/dist/cjs/abis/delay/1.1.1.js +941 -0
- package/dist/cjs/{abi/Erc20Votes.json → abis/erc20Votes/1.0.0.js} +5 -2
- package/dist/cjs/{abi/Erc721Votes.json → abis/erc721Votes/1.0.0.js} +5 -2
- package/dist/cjs/abis/exit/1.0.0.js +403 -0
- package/dist/cjs/abis/exit/1.1.0.js +422 -0
- package/dist/cjs/abis/exit/1.2.0.js +422 -0
- package/dist/cjs/abis/exitERC721/1.1.0.js +422 -0
- package/dist/cjs/abis/exitERC721/1.2.0.js +422 -0
- package/dist/cjs/abis/factory/1.0.0.js +53 -0
- package/dist/{esm/abi/ModuleProxyFactory.json → cjs/abis/factory/1.1.0.js} +5 -2
- package/dist/cjs/abis/factory/1.2.0.js +91 -0
- package/dist/cjs/abis/index.js +101 -0
- package/dist/{esm/abi/MetaGuard.json → cjs/abis/metaGuard/1.0.0.js} +5 -2
- package/dist/{esm/abi/MultisendEncoder.json → cjs/abis/multisendEncoder/1.0.0.js} +5 -2
- package/dist/{esm/abi/Tellor.json → cjs/abis/ozGovernor/1.0.0.js} +533 -445
- package/dist/cjs/{abi/RealityEth.json → abis/realityERC20/2.0.0.js} +5 -2
- package/dist/{esm/abi/RealityEth.json → cjs/abis/realityETH/2.0.0.js} +5 -2
- package/dist/cjs/abis/roles/1.0.0.js +993 -0
- package/dist/cjs/abis/roles/1.1.0.js +993 -0
- package/dist/cjs/{abi/RolesV2.json → abis/roles/2.1.0.js} +5 -78
- package/dist/{esm/abi/RolesV2.json → cjs/abis/roles/2.1.1.js} +5 -78
- package/dist/{esm/abi/ScopeGuard.json → cjs/abis/scopeGuard/1.0.0.js} +5 -2
- package/dist/cjs/contracts.js +91 -296
- package/dist/cjs/explorer.js +264 -0
- package/dist/cjs/extract.js +117 -0
- package/dist/cjs/index.js +14 -15
- package/dist/cjs/mastercopies.js +34 -0
- package/dist/cjs/networks.js +233 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/rpc.js +36 -0
- package/dist/cjs/singleton.js +42 -0
- package/dist/cjs/types.js +7 -0
- package/dist/cjs/ui.js +64 -0
- package/dist/cjs/zodiacModule.js +61 -0
- package/dist/esm/abis/bridge/1.0.0.d.ts +297 -0
- package/dist/{cjs/abi/Bridge.json → esm/abis/bridge/1.0.0.js} +2 -2
- package/dist/esm/abis/circulatingSupplyERC20/1.0.0.d.ts +188 -0
- package/dist/esm/{abi/CirculatingSupplyErc20.json → abis/circulatingSupplyERC20/1.0.0.js} +2 -2
- package/dist/esm/abis/circulatingSupplyERC20/1.1.0.d.ts +188 -0
- package/dist/{cjs/abi/CirculatingSupplyErc20.json → esm/abis/circulatingSupplyERC20/1.1.0.js} +2 -2
- package/dist/esm/abis/circulatingSupplyERC20/1.2.0.d.ts +188 -0
- package/dist/{cjs/abi/CirculatingSupplyErc721.json → esm/abis/circulatingSupplyERC20/1.2.0.js} +2 -2
- package/dist/esm/abis/circulatingSupplyERC721/1.1.0.d.ts +188 -0
- package/dist/esm/{abi/CirculatingSupplyErc721.json → abis/circulatingSupplyERC721/1.1.0.js} +2 -2
- package/dist/esm/abis/circulatingSupplyERC721/1.2.0.d.ts +188 -0
- package/dist/esm/abis/circulatingSupplyERC721/1.2.0.js +245 -0
- package/dist/esm/abis/connext/1.0.0.d.ts +383 -0
- package/dist/esm/{abi/Connext.json → abis/connext/1.0.0.js} +2 -2
- package/dist/esm/abis/delay/1.0.0.d.ts +562 -0
- package/dist/esm/{abi/Delay.json → abis/delay/1.0.0.js} +2 -2
- package/dist/esm/abis/delay/1.0.1.d.ts +562 -0
- package/dist/{cjs/abi/Delay.json → esm/abis/delay/1.0.1.js} +2 -2
- package/dist/esm/abis/delay/1.1.0.d.ts +720 -0
- package/dist/esm/abis/delay/1.1.0.js +938 -0
- package/dist/esm/abis/delay/1.1.1.d.ts +720 -0
- package/dist/esm/abis/delay/1.1.1.js +938 -0
- package/dist/esm/abis/erc20Votes/1.0.0.d.ts +613 -0
- package/dist/esm/{abi/Erc20Votes.json → abis/erc20Votes/1.0.0.js} +2 -2
- package/dist/esm/abis/erc721Votes/1.0.0.d.ts +610 -0
- package/dist/esm/{abi/Erc721Votes.json → abis/erc721Votes/1.0.0.js} +2 -2
- package/dist/esm/abis/exit/1.0.0.d.ts +309 -0
- package/dist/esm/abis/exit/1.0.0.js +400 -0
- package/dist/esm/abis/exit/1.1.0.d.ts +323 -0
- package/dist/esm/{abi/ExitErc20.json → abis/exit/1.1.0.js} +2 -2
- package/dist/esm/abis/exit/1.2.0.d.ts +323 -0
- package/dist/{cjs/abi/ExitErc20.json → esm/abis/exit/1.2.0.js} +2 -2
- package/dist/esm/abis/exitERC721/1.1.0.d.ts +323 -0
- package/dist/{cjs/abi/ExitErc721.json → esm/abis/exitERC721/1.1.0.js} +2 -2
- package/dist/esm/abis/exitERC721/1.2.0.d.ts +323 -0
- package/dist/esm/{abi/ExitErc721.json → abis/exitERC721/1.2.0.js} +2 -2
- package/dist/esm/abis/factory/1.0.0.d.ts +38 -0
- package/dist/esm/abis/factory/1.0.0.js +50 -0
- package/dist/esm/abis/factory/1.1.0.d.ts +58 -0
- package/dist/{cjs/abi/ModuleProxyFactory.json → esm/abis/factory/1.1.0.js} +2 -2
- package/dist/esm/abis/factory/1.2.0.d.ts +66 -0
- package/dist/esm/abis/factory/1.2.0.js +88 -0
- package/dist/esm/abis/index.d.ts +13970 -0
- package/dist/esm/abis/index.js +98 -0
- package/dist/esm/abis/metaGuard/1.0.0.d.ts +363 -0
- package/dist/{cjs/abi/MetaGuard.json → esm/abis/metaGuard/1.0.0.js} +2 -2
- package/dist/esm/abis/multisendEncoder/1.0.0.d.ts +47 -0
- package/dist/{cjs/abi/MultisendEncoder.json → esm/abis/multisendEncoder/1.0.0.js} +2 -2
- package/dist/esm/abis/ozGovernor/1.0.0.d.ts +821 -0
- package/dist/{cjs/abi/Tellor.json → esm/abis/ozGovernor/1.0.0.js} +530 -445
- package/dist/esm/abis/realityERC20/2.0.0.d.ts +674 -0
- package/dist/esm/{abi/RealityErc20.json → abis/realityERC20/2.0.0.js} +2 -2
- package/dist/esm/abis/realityETH/2.0.0.d.ts +674 -0
- package/dist/{cjs/abi/RealityErc20.json → esm/abis/realityETH/2.0.0.js} +2 -2
- package/dist/esm/abis/roles/1.0.0.d.ts +770 -0
- package/dist/esm/{abi/RolesV1.json → abis/roles/1.0.0.js} +2 -2
- package/dist/esm/abis/roles/1.1.0.d.ts +770 -0
- package/dist/{cjs/abi/RolesV1.json → esm/abis/roles/1.1.0.js} +2 -2
- package/dist/esm/abis/roles/2.1.0.d.ts +1094 -0
- package/dist/esm/abis/roles/2.1.0.js +1408 -0
- package/dist/esm/abis/roles/2.1.1.d.ts +1094 -0
- package/dist/esm/abis/roles/2.1.1.js +1408 -0
- package/dist/esm/abis/scopeGuard/1.0.0.d.ts +457 -0
- package/dist/{cjs/abi/ScopeGuard.json → esm/abis/scopeGuard/1.0.0.js} +2 -2
- package/dist/esm/contracts.d.ts +63 -78
- package/dist/esm/contracts.js +71 -250
- package/dist/esm/explorer.d.ts +81 -0
- package/dist/esm/explorer.js +256 -0
- package/dist/esm/extract.d.ts +15 -0
- package/dist/esm/extract.js +114 -0
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/mastercopies.d.ts +21 -0
- package/dist/esm/mastercopies.js +27 -0
- package/dist/esm/networks.d.ts +37 -0
- package/dist/esm/networks.js +229 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/rpc.d.ts +6 -0
- package/dist/esm/rpc.js +33 -0
- package/dist/esm/singleton.d.ts +24 -0
- package/dist/esm/singleton.js +38 -0
- package/dist/esm/types.d.ts +43 -0
- package/dist/esm/types.js +6 -0
- package/dist/esm/ui.d.ts +16 -0
- package/dist/esm/ui.js +53 -0
- package/dist/esm/zodiacModule.d.ts +4 -0
- package/dist/esm/zodiacModule.js +56 -0
- package/package.json +33 -75
- package/contracts/core/GuardableModifier.sol +0 -96
- package/contracts/core/GuardableModule.sol +0 -95
- package/contracts/core/Modifier.sol +0 -204
- package/contracts/core/Module.sol +0 -73
- package/contracts/factory/FactoryFriendly.sol +0 -10
- package/contracts/factory/ModuleProxyFactory.sol +0 -51
- package/contracts/guard/BaseGuard.sol +0 -36
- package/contracts/guard/Guardable.sol +0 -32
- package/contracts/interfaces/IAvatar.sol +0 -71
- package/contracts/interfaces/IGuard.sol +0 -22
- package/contracts/signature/ExecutionTracker.sol +0 -17
- package/contracts/signature/IERC1271.sol +0 -19
- package/contracts/signature/SignatureChecker.sol +0 -154
- package/contracts/test/TestAvatar.sol +0 -64
- package/contracts/test/TestGuard.sol +0 -82
- package/contracts/test/TestGuardableModifier.sol +0 -82
- package/contracts/test/TestModifier.sol +0 -88
- package/contracts/test/TestModule.sol +0 -66
- package/contracts/test/TestSignature.sol +0 -71
- package/dist/cjs/abi/OptimisticGovernor.json +0 -938
- package/dist/cjs/abi/OzGovernor.json +0 -706
- package/dist/cjs/abi/Permissions.json +0 -520
- package/dist/cjs/contracts.d.ts +0 -81
- package/dist/cjs/factory/deployModuleFactory.d.ts +0 -9
- package/dist/cjs/factory/deployModuleFactory.js +0 -44
- package/dist/cjs/factory/index.d.ts +0 -5
- package/dist/cjs/factory/index.js +0 -21
- package/dist/cjs/factory/mastercopyDeployer.d.ts +0 -27
- package/dist/cjs/factory/mastercopyDeployer.js +0 -97
- package/dist/cjs/factory/moduleDeployer.d.ts +0 -105
- package/dist/cjs/factory/moduleDeployer.js +0 -90
- package/dist/cjs/factory/singletonFactory.d.ts +0 -11
- package/dist/cjs/factory/singletonFactory.js +0 -39
- package/dist/cjs/factory/types.d.ts +0 -25
- package/dist/cjs/factory/types.js +0 -58
- package/dist/cjs/index.d.ts +0 -1
- package/dist/cjs/initData/Bridge.d.ts +0 -2
- package/dist/cjs/initData/Bridge.js +0 -5
- package/dist/cjs/initData/CirculatingSupplyErc20.d.ts +0 -2
- package/dist/cjs/initData/CirculatingSupplyErc20.js +0 -5
- package/dist/cjs/initData/CirculatingSupplyErc721.d.ts +0 -2
- package/dist/cjs/initData/CirculatingSupplyErc721.js +0 -5
- package/dist/cjs/initData/Connext.d.ts +0 -2
- package/dist/cjs/initData/Connext.js +0 -5
- package/dist/cjs/initData/Delay.d.ts +0 -2
- package/dist/cjs/initData/Delay.js +0 -5
- package/dist/cjs/initData/Erc20Votes.d.ts +0 -2
- package/dist/cjs/initData/Erc20Votes.js +0 -5
- package/dist/cjs/initData/Erc721Votes.d.ts +0 -2
- package/dist/cjs/initData/Erc721Votes.js +0 -5
- package/dist/cjs/initData/ExitErc20.d.ts +0 -2
- package/dist/cjs/initData/ExitErc20.js +0 -5
- package/dist/cjs/initData/ExitErc721.d.ts +0 -2
- package/dist/cjs/initData/ExitErc721.js +0 -5
- package/dist/cjs/initData/ModuleProxyFactory.d.ts +0 -2
- package/dist/cjs/initData/ModuleProxyFactory.js +0 -5
- package/dist/cjs/initData/MultisendEncoder.d.ts +0 -2
- package/dist/cjs/initData/MultisendEncoder.js +0 -5
- package/dist/cjs/initData/OzGovernor.d.ts +0 -2
- package/dist/cjs/initData/OzGovernor.js +0 -5
- package/dist/cjs/initData/Permissions.d.ts +0 -2
- package/dist/cjs/initData/Permissions.js +0 -5
- package/dist/cjs/initData/RealityErc20.d.ts +0 -2
- package/dist/cjs/initData/RealityErc20.js +0 -5
- package/dist/cjs/initData/RealityEth.d.ts +0 -2
- package/dist/cjs/initData/RealityEth.js +0 -5
- package/dist/cjs/initData/RolesV1.d.ts +0 -2
- package/dist/cjs/initData/RolesV1.js +0 -5
- package/dist/cjs/initData/RolesV2.d.ts +0 -2
- package/dist/cjs/initData/RolesV2.js +0 -5
- package/dist/cjs/initData/ScopeGuard.d.ts +0 -2
- package/dist/cjs/initData/ScopeGuard.js +0 -5
- package/dist/cjs/types/Bridge.d.ts +0 -208
- package/dist/cjs/types/Bridge.js +0 -2
- package/dist/cjs/types/CirculatingSupplyErc20.d.ts +0 -158
- package/dist/cjs/types/CirculatingSupplyErc20.js +0 -2
- package/dist/cjs/types/CirculatingSupplyErc721.d.ts +0 -158
- package/dist/cjs/types/CirculatingSupplyErc721.js +0 -2
- package/dist/cjs/types/Connext.d.ts +0 -289
- package/dist/cjs/types/Connext.js +0 -2
- package/dist/cjs/types/Delay.d.ts +0 -407
- package/dist/cjs/types/Delay.js +0 -2
- package/dist/cjs/types/Erc20Votes.d.ts +0 -475
- package/dist/cjs/types/Erc20Votes.js +0 -2
- package/dist/cjs/types/Erc721Votes.d.ts +0 -455
- package/dist/cjs/types/Erc721Votes.js +0 -2
- package/dist/cjs/types/ExitErc20.d.ts +0 -238
- package/dist/cjs/types/ExitErc20.js +0 -2
- package/dist/cjs/types/ExitErc721.d.ts +0 -238
- package/dist/cjs/types/ExitErc721.js +0 -2
- package/dist/cjs/types/MetaGuard.d.ts +0 -274
- package/dist/cjs/types/MetaGuard.js +0 -2
- package/dist/cjs/types/ModuleProxyFactory.d.ts +0 -54
- package/dist/cjs/types/ModuleProxyFactory.js +0 -2
- package/dist/cjs/types/MultisendEncoder.d.ts +0 -59
- package/dist/cjs/types/MultisendEncoder.js +0 -2
- package/dist/cjs/types/OptimisticGovernor.d.ts +0 -547
- package/dist/cjs/types/OptimisticGovernor.js +0 -2
- package/dist/cjs/types/OzGovernor.d.ts +0 -645
- package/dist/cjs/types/OzGovernor.js +0 -2
- package/dist/cjs/types/Permissions.d.ts +0 -341
- package/dist/cjs/types/Permissions.js +0 -2
- package/dist/cjs/types/RealityErc20.d.ts +0 -471
- package/dist/cjs/types/RealityErc20.js +0 -2
- package/dist/cjs/types/RealityEth.d.ts +0 -471
- package/dist/cjs/types/RealityEth.js +0 -2
- package/dist/cjs/types/RolesV1.d.ts +0 -649
- package/dist/cjs/types/RolesV1.js +0 -2
- package/dist/cjs/types/RolesV2.d.ts +0 -908
- package/dist/cjs/types/RolesV2.js +0 -2
- package/dist/cjs/types/ScopeGuard.d.ts +0 -405
- package/dist/cjs/types/ScopeGuard.js +0 -2
- package/dist/cjs/types/Tellor.d.ts +0 -572
- package/dist/cjs/types/Tellor.js +0 -2
- package/dist/cjs/types/Usul.d.ts +0 -535
- package/dist/cjs/types/Usul.js +0 -2
- package/dist/cjs/types/common.d.ts +0 -50
- package/dist/cjs/types/common.js +0 -2
- package/dist/cjs/types/factories/Bridge__factory.d.ts +0 -303
- package/dist/cjs/types/factories/Bridge__factory.js +0 -399
- package/dist/cjs/types/factories/CirculatingSupplyErc20__factory.d.ts +0 -194
- package/dist/cjs/types/factories/CirculatingSupplyErc20__factory.js +0 -262
- package/dist/cjs/types/factories/CirculatingSupplyErc721__factory.d.ts +0 -194
- package/dist/cjs/types/factories/CirculatingSupplyErc721__factory.js +0 -262
- package/dist/cjs/types/factories/Connext__factory.d.ts +0 -389
- package/dist/cjs/types/factories/Connext__factory.js +0 -510
- package/dist/cjs/types/factories/Delay__factory.d.ts +0 -568
- package/dist/cjs/types/factories/Delay__factory.js +0 -745
- package/dist/cjs/types/factories/Erc20Votes__factory.d.ts +0 -619
- package/dist/cjs/types/factories/Erc20Votes__factory.js +0 -814
- package/dist/cjs/types/factories/Erc721Votes__factory.d.ts +0 -616
- package/dist/cjs/types/factories/Erc721Votes__factory.js +0 -809
- package/dist/cjs/types/factories/ExitErc20__factory.d.ts +0 -329
- package/dist/cjs/types/factories/ExitErc20__factory.js +0 -436
- package/dist/cjs/types/factories/ExitErc721__factory.d.ts +0 -329
- package/dist/cjs/types/factories/ExitErc721__factory.js +0 -436
- package/dist/cjs/types/factories/MetaGuard__factory.d.ts +0 -369
- package/dist/cjs/types/factories/MetaGuard__factory.js +0 -488
- package/dist/cjs/types/factories/ModuleProxyFactory__factory.d.ts +0 -64
- package/dist/cjs/types/factories/ModuleProxyFactory__factory.js +0 -94
- package/dist/cjs/types/factories/MultisendEncoder__factory.d.ts +0 -53
- package/dist/cjs/types/factories/MultisendEncoder__factory.js +0 -78
- package/dist/cjs/types/factories/OptimisticGovernor__factory.d.ts +0 -734
- package/dist/cjs/types/factories/OptimisticGovernor__factory.js +0 -955
- package/dist/cjs/types/factories/OzGovernor__factory.d.ts +0 -827
- package/dist/cjs/types/factories/OzGovernor__factory.js +0 -1080
- package/dist/cjs/types/factories/Permissions__factory.d.ts +0 -423
- package/dist/cjs/types/factories/Permissions__factory.js +0 -537
- package/dist/cjs/types/factories/RealityErc20__factory.d.ts +0 -680
- package/dist/cjs/types/factories/RealityErc20__factory.js +0 -888
- package/dist/cjs/types/factories/RealityEth__factory.d.ts +0 -680
- package/dist/cjs/types/factories/RealityEth__factory.js +0 -888
- package/dist/cjs/types/factories/RolesV1__factory.d.ts +0 -776
- package/dist/cjs/types/factories/RolesV1__factory.js +0 -1007
- package/dist/cjs/types/factories/RolesV2__factory.d.ts +0 -1156
- package/dist/cjs/types/factories/RolesV2__factory.js +0 -1501
- package/dist/cjs/types/factories/ScopeGuard__factory.d.ts +0 -463
- package/dist/cjs/types/factories/ScopeGuard__factory.js +0 -609
- package/dist/cjs/types/factories/Tellor__factory.d.ts +0 -757
- package/dist/cjs/types/factories/Tellor__factory.js +0 -995
- package/dist/cjs/types/factories/Usul__factory.d.ts +0 -634
- package/dist/cjs/types/factories/Usul__factory.js +0 -829
- package/dist/cjs/types/factories/index.d.ts +0 -22
- package/dist/cjs/types/factories/index.js +0 -50
- package/dist/cjs/types/index.d.ts +0 -45
- package/dist/cjs/types/index.js +0 -71
- package/dist/esm/abi/OptimisticGovernor.json +0 -938
- package/dist/esm/abi/OzGovernor.json +0 -706
- package/dist/esm/abi/Permissions.json +0 -520
- package/dist/esm/factory/deployModuleFactory.d.ts +0 -9
- package/dist/esm/factory/deployModuleFactory.js +0 -46
- package/dist/esm/factory/index.d.ts +0 -5
- package/dist/esm/factory/index.js +0 -5
- package/dist/esm/factory/mastercopyDeployer.d.ts +0 -27
- package/dist/esm/factory/mastercopyDeployer.js +0 -100
- package/dist/esm/factory/moduleDeployer.d.ts +0 -105
- package/dist/esm/factory/moduleDeployer.js +0 -91
- package/dist/esm/factory/singletonFactory.d.ts +0 -11
- package/dist/esm/factory/singletonFactory.js +0 -44
- package/dist/esm/factory/types.d.ts +0 -25
- package/dist/esm/factory/types.js +0 -55
- package/dist/esm/initData/Bridge.d.ts +0 -2
- package/dist/esm/initData/Bridge.js +0 -2
- package/dist/esm/initData/CirculatingSupplyErc20.d.ts +0 -2
- package/dist/esm/initData/CirculatingSupplyErc20.js +0 -2
- package/dist/esm/initData/CirculatingSupplyErc721.d.ts +0 -2
- package/dist/esm/initData/CirculatingSupplyErc721.js +0 -2
- package/dist/esm/initData/Connext.d.ts +0 -2
- package/dist/esm/initData/Connext.js +0 -2
- package/dist/esm/initData/Delay.d.ts +0 -2
- package/dist/esm/initData/Delay.js +0 -2
- package/dist/esm/initData/Erc20Votes.d.ts +0 -2
- package/dist/esm/initData/Erc20Votes.js +0 -2
- package/dist/esm/initData/Erc721Votes.d.ts +0 -2
- package/dist/esm/initData/Erc721Votes.js +0 -2
- package/dist/esm/initData/ExitErc20.d.ts +0 -2
- package/dist/esm/initData/ExitErc20.js +0 -2
- package/dist/esm/initData/ExitErc721.d.ts +0 -2
- package/dist/esm/initData/ExitErc721.js +0 -2
- package/dist/esm/initData/ModuleProxyFactory.d.ts +0 -2
- package/dist/esm/initData/ModuleProxyFactory.js +0 -2
- package/dist/esm/initData/MultisendEncoder.d.ts +0 -2
- package/dist/esm/initData/MultisendEncoder.js +0 -2
- package/dist/esm/initData/OzGovernor.d.ts +0 -2
- package/dist/esm/initData/OzGovernor.js +0 -2
- package/dist/esm/initData/Permissions.d.ts +0 -2
- package/dist/esm/initData/Permissions.js +0 -2
- package/dist/esm/initData/RealityErc20.d.ts +0 -2
- package/dist/esm/initData/RealityErc20.js +0 -2
- package/dist/esm/initData/RealityEth.d.ts +0 -2
- package/dist/esm/initData/RealityEth.js +0 -2
- package/dist/esm/initData/RolesV1.d.ts +0 -2
- package/dist/esm/initData/RolesV1.js +0 -2
- package/dist/esm/initData/RolesV2.d.ts +0 -2
- package/dist/esm/initData/RolesV2.js +0 -2
- package/dist/esm/initData/ScopeGuard.d.ts +0 -2
- package/dist/esm/initData/ScopeGuard.js +0 -2
- package/dist/esm/types/Bridge.d.ts +0 -208
- package/dist/esm/types/Bridge.js +0 -1
- package/dist/esm/types/CirculatingSupplyErc20.d.ts +0 -158
- package/dist/esm/types/CirculatingSupplyErc20.js +0 -1
- package/dist/esm/types/CirculatingSupplyErc721.d.ts +0 -158
- package/dist/esm/types/CirculatingSupplyErc721.js +0 -1
- package/dist/esm/types/Connext.d.ts +0 -289
- package/dist/esm/types/Connext.js +0 -1
- package/dist/esm/types/Delay.d.ts +0 -407
- package/dist/esm/types/Delay.js +0 -1
- package/dist/esm/types/Erc20Votes.d.ts +0 -475
- package/dist/esm/types/Erc20Votes.js +0 -1
- package/dist/esm/types/Erc721Votes.d.ts +0 -455
- package/dist/esm/types/Erc721Votes.js +0 -1
- package/dist/esm/types/ExitErc20.d.ts +0 -238
- package/dist/esm/types/ExitErc20.js +0 -1
- package/dist/esm/types/ExitErc721.d.ts +0 -238
- package/dist/esm/types/ExitErc721.js +0 -1
- package/dist/esm/types/MetaGuard.d.ts +0 -274
- package/dist/esm/types/MetaGuard.js +0 -1
- package/dist/esm/types/ModuleProxyFactory.d.ts +0 -54
- package/dist/esm/types/ModuleProxyFactory.js +0 -1
- package/dist/esm/types/MultisendEncoder.d.ts +0 -59
- package/dist/esm/types/MultisendEncoder.js +0 -1
- package/dist/esm/types/OptimisticGovernor.d.ts +0 -547
- package/dist/esm/types/OptimisticGovernor.js +0 -1
- package/dist/esm/types/OzGovernor.d.ts +0 -645
- package/dist/esm/types/OzGovernor.js +0 -1
- package/dist/esm/types/Permissions.d.ts +0 -341
- package/dist/esm/types/Permissions.js +0 -1
- package/dist/esm/types/RealityErc20.d.ts +0 -471
- package/dist/esm/types/RealityErc20.js +0 -1
- package/dist/esm/types/RealityEth.d.ts +0 -471
- package/dist/esm/types/RealityEth.js +0 -1
- package/dist/esm/types/RolesV1.d.ts +0 -649
- package/dist/esm/types/RolesV1.js +0 -1
- package/dist/esm/types/RolesV2.d.ts +0 -908
- package/dist/esm/types/RolesV2.js +0 -1
- package/dist/esm/types/ScopeGuard.d.ts +0 -405
- package/dist/esm/types/ScopeGuard.js +0 -1
- package/dist/esm/types/Tellor.d.ts +0 -572
- package/dist/esm/types/Tellor.js +0 -1
- package/dist/esm/types/Usul.d.ts +0 -535
- package/dist/esm/types/Usul.js +0 -1
- package/dist/esm/types/common.d.ts +0 -50
- package/dist/esm/types/common.js +0 -1
- package/dist/esm/types/factories/Bridge__factory.d.ts +0 -303
- package/dist/esm/types/factories/Bridge__factory.js +0 -395
- package/dist/esm/types/factories/CirculatingSupplyErc20__factory.d.ts +0 -194
- package/dist/esm/types/factories/CirculatingSupplyErc20__factory.js +0 -258
- package/dist/esm/types/factories/CirculatingSupplyErc721__factory.d.ts +0 -194
- package/dist/esm/types/factories/CirculatingSupplyErc721__factory.js +0 -258
- package/dist/esm/types/factories/Connext__factory.d.ts +0 -389
- package/dist/esm/types/factories/Connext__factory.js +0 -506
- package/dist/esm/types/factories/Delay__factory.d.ts +0 -568
- package/dist/esm/types/factories/Delay__factory.js +0 -741
- package/dist/esm/types/factories/Erc20Votes__factory.d.ts +0 -619
- package/dist/esm/types/factories/Erc20Votes__factory.js +0 -810
- package/dist/esm/types/factories/Erc721Votes__factory.d.ts +0 -616
- package/dist/esm/types/factories/Erc721Votes__factory.js +0 -805
- package/dist/esm/types/factories/ExitErc20__factory.d.ts +0 -329
- package/dist/esm/types/factories/ExitErc20__factory.js +0 -432
- package/dist/esm/types/factories/ExitErc721__factory.d.ts +0 -329
- package/dist/esm/types/factories/ExitErc721__factory.js +0 -432
- package/dist/esm/types/factories/MetaGuard__factory.d.ts +0 -369
- package/dist/esm/types/factories/MetaGuard__factory.js +0 -484
- package/dist/esm/types/factories/ModuleProxyFactory__factory.d.ts +0 -64
- package/dist/esm/types/factories/ModuleProxyFactory__factory.js +0 -90
- package/dist/esm/types/factories/MultisendEncoder__factory.d.ts +0 -53
- package/dist/esm/types/factories/MultisendEncoder__factory.js +0 -74
- package/dist/esm/types/factories/OptimisticGovernor__factory.d.ts +0 -734
- package/dist/esm/types/factories/OptimisticGovernor__factory.js +0 -951
- package/dist/esm/types/factories/OzGovernor__factory.d.ts +0 -827
- package/dist/esm/types/factories/OzGovernor__factory.js +0 -1076
- package/dist/esm/types/factories/Permissions__factory.d.ts +0 -423
- package/dist/esm/types/factories/Permissions__factory.js +0 -533
- package/dist/esm/types/factories/RealityErc20__factory.d.ts +0 -680
- package/dist/esm/types/factories/RealityErc20__factory.js +0 -884
- package/dist/esm/types/factories/RealityEth__factory.d.ts +0 -680
- package/dist/esm/types/factories/RealityEth__factory.js +0 -884
- package/dist/esm/types/factories/RolesV1__factory.d.ts +0 -776
- package/dist/esm/types/factories/RolesV1__factory.js +0 -1003
- package/dist/esm/types/factories/RolesV2__factory.d.ts +0 -1156
- package/dist/esm/types/factories/RolesV2__factory.js +0 -1497
- package/dist/esm/types/factories/ScopeGuard__factory.d.ts +0 -463
- package/dist/esm/types/factories/ScopeGuard__factory.js +0 -605
- package/dist/esm/types/factories/Tellor__factory.d.ts +0 -757
- package/dist/esm/types/factories/Tellor__factory.js +0 -991
- package/dist/esm/types/factories/Usul__factory.d.ts +0 -634
- package/dist/esm/types/factories/Usul__factory.js +0 -825
- package/dist/esm/types/factories/index.d.ts +0 -22
- package/dist/esm/types/factories/index.js +0 -25
- package/dist/esm/types/index.d.ts +0 -45
- package/dist/esm/types/index.js +0 -24
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import { ZeroAddress, keccak256, getAddress, getCreate2Address, } from "ethers";
|
|
11
|
-
import { getSingletonFactory } from "./singletonFactory";
|
|
12
|
-
const AddressZero = ZeroAddress;
|
|
13
|
-
/**
|
|
14
|
-
* Deploy a module's mastercopy via the singleton factory.
|
|
15
|
-
*
|
|
16
|
-
* To get the same address on any chain.
|
|
17
|
-
* @param hre hardhat runtime environment
|
|
18
|
-
* @param mastercopyContractFactory mastercopy to deploy
|
|
19
|
-
* @param args the arguments to pass to the mastercopy's constructor
|
|
20
|
-
* @returns The address of the deployed module mastercopy or the zero address if it was already deployed
|
|
21
|
-
*/
|
|
22
|
-
export const deployMastercopy = (signer, mastercopyContractFactory, args, salt) => __awaiter(void 0, void 0, void 0, function* () {
|
|
23
|
-
const deploymentTx = yield mastercopyContractFactory.getDeployTransaction(...args);
|
|
24
|
-
if (!deploymentTx.data) {
|
|
25
|
-
throw new Error("Unable to create the deployment data (no init code).");
|
|
26
|
-
}
|
|
27
|
-
return yield deployMastercopyWithInitData(signer, deploymentTx.data, salt);
|
|
28
|
-
});
|
|
29
|
-
/**
|
|
30
|
-
* Compute a module's mastercopy address. Where it is or will be deployed. And checks if it is already deployed.
|
|
31
|
-
*
|
|
32
|
-
* @param hre hardhat runtime environment
|
|
33
|
-
* @param mastercopyContractFactory mastercopy to get address for
|
|
34
|
-
* @param args the arguments passed to the mastercopy's constructor
|
|
35
|
-
* @returns {
|
|
36
|
-
* address: string; // the address where the module mastercopy will be deployed or was already deployed
|
|
37
|
-
* isDeployed: boolean; // true if the module mastercopy was already deployed on this chain
|
|
38
|
-
* }
|
|
39
|
-
*/
|
|
40
|
-
export const computeTargetAddress = (signer, mastercopyContractFactory, args, salt) => __awaiter(void 0, void 0, void 0, function* () {
|
|
41
|
-
const deploymentTx = yield mastercopyContractFactory.getDeployTransaction(...args);
|
|
42
|
-
const singletonFactory = yield getSingletonFactory(signer);
|
|
43
|
-
if (!deploymentTx.data) {
|
|
44
|
-
throw new Error("Unable to create the deployment data (no init code).");
|
|
45
|
-
}
|
|
46
|
-
const initCodeHash = keccak256(deploymentTx.data);
|
|
47
|
-
const computedAddress = getCreate2Address(yield singletonFactory.getAddress(), salt, initCodeHash);
|
|
48
|
-
const targetAddress = getAddress((yield singletonFactory.deploy.staticCall(deploymentTx.data, salt)));
|
|
49
|
-
// Sanity check
|
|
50
|
-
if (computedAddress !== targetAddress && targetAddress !== AddressZero) {
|
|
51
|
-
throw new Error("The computed address does not match the target address and the target address is not 0x0.");
|
|
52
|
-
}
|
|
53
|
-
return {
|
|
54
|
-
address: computedAddress,
|
|
55
|
-
isDeployed: targetAddress === AddressZero,
|
|
56
|
-
};
|
|
57
|
-
});
|
|
58
|
-
export const deployMastercopyWithInitData = (signer, initCode, salt) => __awaiter(void 0, void 0, void 0, function* () {
|
|
59
|
-
const singletonFactory = yield getSingletonFactory(signer);
|
|
60
|
-
// throws if this for some reason is not a valid address
|
|
61
|
-
const targetAddress = getAddress((yield singletonFactory.deploy.staticCall(initCode, salt)));
|
|
62
|
-
const initCodeHash = keccak256(initCode);
|
|
63
|
-
const computedTargetAddress = getCreate2Address(yield singletonFactory.getAddress(), salt, initCodeHash);
|
|
64
|
-
if (targetAddress === AddressZero) {
|
|
65
|
-
console.log(` ✔ Mastercopy already deployed to: ${computedTargetAddress}`);
|
|
66
|
-
return AddressZero;
|
|
67
|
-
}
|
|
68
|
-
// Sanity check
|
|
69
|
-
if (targetAddress !== computedTargetAddress) {
|
|
70
|
-
throw new Error("The computed address does not match the target address.");
|
|
71
|
-
}
|
|
72
|
-
let gasLimit;
|
|
73
|
-
switch ((yield signer.provider.getNetwork()).name) {
|
|
74
|
-
case "optimism":
|
|
75
|
-
gasLimit = 6000000;
|
|
76
|
-
break;
|
|
77
|
-
case "arbitrum":
|
|
78
|
-
gasLimit = 200000000;
|
|
79
|
-
break;
|
|
80
|
-
case "avalanche":
|
|
81
|
-
gasLimit = 8000000;
|
|
82
|
-
break;
|
|
83
|
-
case "mumbai":
|
|
84
|
-
gasLimit = 8000000;
|
|
85
|
-
break;
|
|
86
|
-
default:
|
|
87
|
-
gasLimit = 10000000;
|
|
88
|
-
}
|
|
89
|
-
const deployTx = yield singletonFactory.deploy(initCode, salt, {
|
|
90
|
-
gasLimit,
|
|
91
|
-
});
|
|
92
|
-
yield deployTx.wait();
|
|
93
|
-
if ((yield signer.provider.getCode(targetAddress)).length > 2) {
|
|
94
|
-
console.log(` \x1B[32m✔ Mastercopy deployed to: ${targetAddress} 🎉\x1B[0m `);
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
console.log(" \x1B[31m✘ Deployment failed.\x1B[0m");
|
|
98
|
-
}
|
|
99
|
-
return targetAddress;
|
|
100
|
-
});
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { Contract, Signer, Provider } from "ethers";
|
|
2
|
-
import { SupportedNetworks } from "../contracts";
|
|
3
|
-
import { ModuleProxyFactory__factory } from "../types";
|
|
4
|
-
import { KnownContracts } from "./types";
|
|
5
|
-
type ABI = any[] | readonly any[];
|
|
6
|
-
type TxAndExpectedAddress = {
|
|
7
|
-
transaction: {
|
|
8
|
-
data: string;
|
|
9
|
-
to: string;
|
|
10
|
-
value: bigint;
|
|
11
|
-
};
|
|
12
|
-
expectedModuleAddress: string;
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* Get the transaction for deploying a module proxy through the Module Proxy Factory.
|
|
16
|
-
* This will also initialize the module proxy by calling the setup function.
|
|
17
|
-
*
|
|
18
|
-
* @param moduleName Name of the module to deploy (must be present in `KnownContracts`)
|
|
19
|
-
* @param setupArgs The arguments for the setup function of the module
|
|
20
|
-
* @param provider
|
|
21
|
-
* @param chainId
|
|
22
|
-
* @param saltNonce
|
|
23
|
-
* @returns the transaction and the expected address of the module proxy
|
|
24
|
-
*/
|
|
25
|
-
export declare const deployAndSetUpModule: (moduleName: KnownContracts, setupArgs: {
|
|
26
|
-
types: Array<string>;
|
|
27
|
-
values: Array<any>;
|
|
28
|
-
}, provider: Provider, chainId: number, saltNonce: string) => Promise<{
|
|
29
|
-
transaction: {
|
|
30
|
-
data: string;
|
|
31
|
-
to: string;
|
|
32
|
-
value: bigint;
|
|
33
|
-
};
|
|
34
|
-
expectedModuleAddress: string;
|
|
35
|
-
}>;
|
|
36
|
-
/**
|
|
37
|
-
* Get the transaction for deploying a module proxy through the Module Proxy Factory.
|
|
38
|
-
* This will also initialize the module proxy by calling the setup function.
|
|
39
|
-
*
|
|
40
|
-
* This method is for modules that do not have a mastercopy listed in the `KnownContracts`
|
|
41
|
-
* @param mastercopyAddress address of the mastercopy to use
|
|
42
|
-
* @param abi abi of the module
|
|
43
|
-
* @param setupArgs The arguments for the setup function of the module
|
|
44
|
-
* @param provider
|
|
45
|
-
* @param chainId
|
|
46
|
-
* @param saltNonce
|
|
47
|
-
* @returns the transaction and the expected address of the module proxy
|
|
48
|
-
*/
|
|
49
|
-
export declare const deployAndSetUpCustomModule: (mastercopyAddress: string, abi: ABI, setupArgs: {
|
|
50
|
-
types: Array<string>;
|
|
51
|
-
values: Array<any>;
|
|
52
|
-
}, provider: Provider, chainId: number, saltNonce: string) => Promise<TxAndExpectedAddress>;
|
|
53
|
-
export declare const calculateProxyAddress: (moduleFactory: Contract, mastercopyAddress: string, initData: string, saltNonce: string) => Promise<string>;
|
|
54
|
-
export declare const getModuleInstance: <T extends KnownContracts>(moduleName: T, moduleAddress: string, provider: Provider | Signer) => ReturnType<{
|
|
55
|
-
bridge: typeof import("../types").Bridge__factory;
|
|
56
|
-
circulatingSupplyERC20: typeof import("../types").CirculatingSupplyErc20__factory;
|
|
57
|
-
circulatingSupplyERC721: typeof import("../types").CirculatingSupplyErc721__factory;
|
|
58
|
-
delay: typeof import("../types").Delay__factory;
|
|
59
|
-
erc20Votes: typeof import("../types").Erc20Votes__factory;
|
|
60
|
-
erc721Votes: typeof import("../types").Erc721Votes__factory;
|
|
61
|
-
exit: typeof import("../types").ExitErc20__factory;
|
|
62
|
-
exitERC721: typeof import("../types").ExitErc721__factory;
|
|
63
|
-
factory: typeof ModuleProxyFactory__factory;
|
|
64
|
-
metaGuard: typeof import("../types").MetaGuard__factory;
|
|
65
|
-
optimisticGovernor: typeof import("../types").OptimisticGovernor__factory;
|
|
66
|
-
ozGovernor: typeof import("../types").OzGovernor__factory;
|
|
67
|
-
realityERC20: typeof import("../types").RealityErc20__factory;
|
|
68
|
-
realityETH: typeof import("../types").RealityEth__factory;
|
|
69
|
-
roles: typeof import("../types").RolesV1__factory;
|
|
70
|
-
roles_v1: typeof import("../types").RolesV1__factory;
|
|
71
|
-
roles_v2: typeof import("../types").RolesV2__factory;
|
|
72
|
-
scopeGuard: typeof import("../types").ScopeGuard__factory;
|
|
73
|
-
tellor: typeof import("../types").Tellor__factory;
|
|
74
|
-
multisendEncoder: typeof import("../types").MultisendEncoder__factory;
|
|
75
|
-
permissions: typeof import("../types").Permissions__factory;
|
|
76
|
-
connext: typeof import("../types").Connext__factory;
|
|
77
|
-
}[T]["connect"]>;
|
|
78
|
-
export declare const getModuleFactoryAndMasterCopy: <T extends KnownContracts>(moduleName: T, provider: Provider, chainId: SupportedNetworks) => {
|
|
79
|
-
moduleFactory: import("./types").ModuleProxyFactory;
|
|
80
|
-
moduleMastercopy: ReturnType<{
|
|
81
|
-
bridge: typeof import("../types").Bridge__factory;
|
|
82
|
-
circulatingSupplyERC20: typeof import("../types").CirculatingSupplyErc20__factory;
|
|
83
|
-
circulatingSupplyERC721: typeof import("../types").CirculatingSupplyErc721__factory;
|
|
84
|
-
delay: typeof import("../types").Delay__factory;
|
|
85
|
-
erc20Votes: typeof import("../types").Erc20Votes__factory;
|
|
86
|
-
erc721Votes: typeof import("../types").Erc721Votes__factory;
|
|
87
|
-
exit: typeof import("../types").ExitErc20__factory;
|
|
88
|
-
exitERC721: typeof import("../types").ExitErc721__factory;
|
|
89
|
-
factory: typeof ModuleProxyFactory__factory;
|
|
90
|
-
metaGuard: typeof import("../types").MetaGuard__factory;
|
|
91
|
-
optimisticGovernor: typeof import("../types").OptimisticGovernor__factory;
|
|
92
|
-
ozGovernor: typeof import("../types").OzGovernor__factory;
|
|
93
|
-
realityERC20: typeof import("../types").RealityErc20__factory;
|
|
94
|
-
realityETH: typeof import("../types").RealityEth__factory;
|
|
95
|
-
roles: typeof import("../types").RolesV1__factory;
|
|
96
|
-
roles_v1: typeof import("../types").RolesV1__factory;
|
|
97
|
-
roles_v2: typeof import("../types").RolesV2__factory;
|
|
98
|
-
scopeGuard: typeof import("../types").ScopeGuard__factory;
|
|
99
|
-
tellor: typeof import("../types").Tellor__factory;
|
|
100
|
-
multisendEncoder: typeof import("../types").MultisendEncoder__factory;
|
|
101
|
-
permissions: typeof import("../types").Permissions__factory;
|
|
102
|
-
connext: typeof import("../types").Connext__factory;
|
|
103
|
-
}[T]["connect"]>;
|
|
104
|
-
};
|
|
105
|
-
export {};
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import { Contract, getCreate2Address, AbiCoder, solidityPackedKeccak256, keccak256, } from "ethers";
|
|
11
|
-
import { ContractAddresses, ContractAbis, ContractFactories, } from "../contracts";
|
|
12
|
-
import { ModuleProxyFactory__factory } from "../types";
|
|
13
|
-
/**
|
|
14
|
-
* Get the transaction for deploying a module proxy through the Module Proxy Factory.
|
|
15
|
-
* This will also initialize the module proxy by calling the setup function.
|
|
16
|
-
*
|
|
17
|
-
* @param moduleName Name of the module to deploy (must be present in `KnownContracts`)
|
|
18
|
-
* @param setupArgs The arguments for the setup function of the module
|
|
19
|
-
* @param provider
|
|
20
|
-
* @param chainId
|
|
21
|
-
* @param saltNonce
|
|
22
|
-
* @returns the transaction and the expected address of the module proxy
|
|
23
|
-
*/
|
|
24
|
-
export const deployAndSetUpModule = (moduleName, setupArgs, provider, chainId, saltNonce) => __awaiter(void 0, void 0, void 0, function* () {
|
|
25
|
-
const { moduleFactory, moduleMastercopy } = getModuleFactoryAndMasterCopy(moduleName, provider, chainId);
|
|
26
|
-
return getDeployAndSetupTx(moduleFactory, moduleMastercopy, setupArgs, saltNonce);
|
|
27
|
-
});
|
|
28
|
-
/**
|
|
29
|
-
* Get the transaction for deploying a module proxy through the Module Proxy Factory.
|
|
30
|
-
* This will also initialize the module proxy by calling the setup function.
|
|
31
|
-
*
|
|
32
|
-
* This method is for modules that do not have a mastercopy listed in the `KnownContracts`
|
|
33
|
-
* @param mastercopyAddress address of the mastercopy to use
|
|
34
|
-
* @param abi abi of the module
|
|
35
|
-
* @param setupArgs The arguments for the setup function of the module
|
|
36
|
-
* @param provider
|
|
37
|
-
* @param chainId
|
|
38
|
-
* @param saltNonce
|
|
39
|
-
* @returns the transaction and the expected address of the module proxy
|
|
40
|
-
*/
|
|
41
|
-
export const deployAndSetUpCustomModule = (mastercopyAddress, abi, setupArgs, provider, chainId, saltNonce) => __awaiter(void 0, void 0, void 0, function* () {
|
|
42
|
-
const chainContracts = ContractAddresses[chainId];
|
|
43
|
-
const moduleFactoryAddress = chainContracts.factory;
|
|
44
|
-
const moduleFactory = new Contract(moduleFactoryAddress, ContractAbis.factory, provider);
|
|
45
|
-
const moduleMastercopy = new Contract(mastercopyAddress, abi, provider);
|
|
46
|
-
const deployAndSetupTx = yield getDeployAndSetupTx(moduleFactory, moduleMastercopy, setupArgs, saltNonce);
|
|
47
|
-
return deployAndSetupTx;
|
|
48
|
-
});
|
|
49
|
-
const getDeployAndSetupTx = (moduleFactory, moduleMastercopy, setupArgs, saltNonce) => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
-
const encodedInitParams = AbiCoder.defaultAbiCoder().encode(setupArgs.types, setupArgs.values);
|
|
51
|
-
const moduleSetupData = moduleMastercopy.interface.encodeFunctionData("setUp", [encodedInitParams]);
|
|
52
|
-
const expectedModuleAddress = yield calculateProxyAddress(moduleFactory, yield moduleMastercopy.getAddress(), moduleSetupData, saltNonce);
|
|
53
|
-
const deployData = moduleFactory.interface.encodeFunctionData("deployModule", [yield moduleMastercopy.getAddress(), moduleSetupData, saltNonce]);
|
|
54
|
-
const transaction = {
|
|
55
|
-
data: deployData,
|
|
56
|
-
to: yield moduleFactory.getAddress(),
|
|
57
|
-
value: BigInt(0),
|
|
58
|
-
};
|
|
59
|
-
return {
|
|
60
|
-
transaction,
|
|
61
|
-
expectedModuleAddress,
|
|
62
|
-
};
|
|
63
|
-
});
|
|
64
|
-
export const calculateProxyAddress = (moduleFactory, mastercopyAddress, initData, saltNonce) => __awaiter(void 0, void 0, void 0, function* () {
|
|
65
|
-
const mastercopyAddressFormatted = mastercopyAddress
|
|
66
|
-
.toLowerCase()
|
|
67
|
-
.replace(/^0x/, "");
|
|
68
|
-
const byteCode = "0x602d8060093d393df3363d3d373d3d3d363d73" +
|
|
69
|
-
mastercopyAddressFormatted +
|
|
70
|
-
"5af43d82803e903d91602b57fd5bf3";
|
|
71
|
-
const salt = solidityPackedKeccak256(["bytes32", "uint256"], [solidityPackedKeccak256(["bytes"], [initData]), saltNonce]);
|
|
72
|
-
return getCreate2Address(yield moduleFactory.getAddress(), salt, keccak256(byteCode));
|
|
73
|
-
});
|
|
74
|
-
export const getModuleInstance = (moduleName, moduleAddress, provider) => {
|
|
75
|
-
const moduleIsNotSupported = !Object.keys(ContractFactories).includes(moduleName);
|
|
76
|
-
if (moduleIsNotSupported) {
|
|
77
|
-
throw new Error("Module " + moduleName + " not supported");
|
|
78
|
-
}
|
|
79
|
-
return ContractFactories[moduleName].connect(moduleAddress, provider);
|
|
80
|
-
};
|
|
81
|
-
export const getModuleFactoryAndMasterCopy = (moduleName, provider, chainId) => {
|
|
82
|
-
const chainContracts = ContractAddresses[chainId];
|
|
83
|
-
const masterCopyAddress = chainContracts[moduleName];
|
|
84
|
-
const factoryAddress = chainContracts.factory;
|
|
85
|
-
const moduleMastercopy = getModuleInstance(moduleName, masterCopyAddress, provider);
|
|
86
|
-
const moduleFactory = ModuleProxyFactory__factory.connect(factoryAddress, provider);
|
|
87
|
-
return {
|
|
88
|
-
moduleFactory,
|
|
89
|
-
moduleMastercopy,
|
|
90
|
-
};
|
|
91
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Contract, JsonRpcSigner } from "ethers";
|
|
2
|
-
export declare const SingletonFactoryAddress = "0xce0042b868300000d44a59004da54a005ffdcf9f";
|
|
3
|
-
/**
|
|
4
|
-
* Get the singleton factory contract (ERC-2470).
|
|
5
|
-
* If it is not deployed on the newtwork, then also deploy it.
|
|
6
|
-
*
|
|
7
|
-
* https://eips.ethereum.org/EIPS/eip-2470
|
|
8
|
-
* @param hardhat
|
|
9
|
-
* @returns Singleton Factory contract
|
|
10
|
-
*/
|
|
11
|
-
export declare const getSingletonFactory: (signer: JsonRpcSigner) => Promise<Contract>;
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import { Contract, parseEther } from "ethers";
|
|
11
|
-
const singletonFactoryAbi = [
|
|
12
|
-
"function deploy(bytes memory _initCode, bytes32 _salt) public returns (address payable createdContract)",
|
|
13
|
-
];
|
|
14
|
-
export const SingletonFactoryAddress = "0xce0042b868300000d44a59004da54a005ffdcf9f";
|
|
15
|
-
/**
|
|
16
|
-
* Get the singleton factory contract (ERC-2470).
|
|
17
|
-
* If it is not deployed on the newtwork, then also deploy it.
|
|
18
|
-
*
|
|
19
|
-
* https://eips.ethereum.org/EIPS/eip-2470
|
|
20
|
-
* @param hardhat
|
|
21
|
-
* @returns Singleton Factory contract
|
|
22
|
-
*/
|
|
23
|
-
export const getSingletonFactory = (signer) => __awaiter(void 0, void 0, void 0, function* () {
|
|
24
|
-
const singletonDeployer = "0xBb6e024b9cFFACB947A71991E386681B1Cd1477D";
|
|
25
|
-
const singletonFactory = new Contract(SingletonFactoryAddress, singletonFactoryAbi, signer);
|
|
26
|
-
// check if singleton factory is deployed.
|
|
27
|
-
if ((yield signer.provider.getCode(yield singletonFactory.getAddress())) ===
|
|
28
|
-
"0x") {
|
|
29
|
-
console.log("Singleton factory is not deployed on this chain. Deploying singleton factory...");
|
|
30
|
-
// fund the singleton factory deployer account
|
|
31
|
-
yield (yield signer.sendTransaction({
|
|
32
|
-
to: singletonDeployer,
|
|
33
|
-
value: parseEther("0.0247"),
|
|
34
|
-
})).wait();
|
|
35
|
-
// deploy the singleton factory
|
|
36
|
-
yield (yield signer.provider.broadcastTransaction("0xf9016c8085174876e8008303c4d88080b90154608060405234801561001057600080fd5b50610134806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80634af63f0214602d575b600080fd5b60cf60048036036040811015604157600080fd5b810190602081018135640100000000811115605b57600080fd5b820183602082011115606c57600080fd5b80359060200191846001830284011164010000000083111715608d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550509135925060eb915050565b604080516001600160a01b039092168252519081900360200190f35b6000818351602085016000f5939250505056fea26469706673582212206b44f8a82cb6b156bfcc3dc6aadd6df4eefd204bc928a4397fd15dacf6d5320564736f6c634300060200331b83247000822470")).wait();
|
|
37
|
-
if ((yield signer.provider.getCode(yield singletonFactory.getAddress())) ==
|
|
38
|
-
"0x") {
|
|
39
|
-
throw Error("Singleton factory could not be deployed to correct address, deployment haulted.");
|
|
40
|
-
}
|
|
41
|
-
console.log(` \x1B[32m✔ Singleton factory deployed to: ${singletonFactory.address} 🎉\x1B[0m`);
|
|
42
|
-
}
|
|
43
|
-
return singletonFactory;
|
|
44
|
-
});
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export type { Bridge, CirculatingSupplyErc20, CirculatingSupplyErc721, Delay, Erc20Votes, Erc721Votes, ExitErc20, ExitErc721, MetaGuard, ModuleProxyFactory, OptimisticGovernor, OzGovernor, Permissions, RealityErc20, RealityEth, RolesV1 as Roles, RolesV1, RolesV2, ScopeGuard, Tellor, Usul, } from "../types";
|
|
2
|
-
export declare enum KnownContracts {
|
|
3
|
-
META_GUARD = "metaGuard",
|
|
4
|
-
OPTIMISTIC_GOVERNOR = "optimisticGovernor",
|
|
5
|
-
TELLOR = "tellor",
|
|
6
|
-
REALITY_ETH = "realityETH",
|
|
7
|
-
REALITY_ERC20 = "realityERC20",
|
|
8
|
-
BRIDGE = "bridge",
|
|
9
|
-
DELAY = "delay",
|
|
10
|
-
EXIT_ERC20 = "exit",
|
|
11
|
-
EXIT_ERC721 = "exitERC721",
|
|
12
|
-
CIRCULATING_SUPPLY_ERC20 = "circulatingSupplyERC20",
|
|
13
|
-
CIRCULATING_SUPPLY_ERC721 = "circulatingSupplyERC721",
|
|
14
|
-
SCOPE_GUARD = "scopeGuard",
|
|
15
|
-
FACTORY = "factory",
|
|
16
|
-
ROLES = "roles",
|
|
17
|
-
ROLES_V1 = "roles_v1",
|
|
18
|
-
ROLES_V2 = "roles_v2",
|
|
19
|
-
OZ_GOVERNOR = "ozGovernor",
|
|
20
|
-
ERC20_VOTES = "erc20Votes",
|
|
21
|
-
ERC721_VOTES = "erc721Votes",
|
|
22
|
-
MULTISEND_ENCODER = "multisendEncoder",
|
|
23
|
-
PERMISSIONS = "permissions",
|
|
24
|
-
CONNEXT = "connext"
|
|
25
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
export var KnownContracts;
|
|
2
|
-
(function (KnownContracts) {
|
|
3
|
-
KnownContracts["META_GUARD"] = "metaGuard";
|
|
4
|
-
KnownContracts["OPTIMISTIC_GOVERNOR"] = "optimisticGovernor";
|
|
5
|
-
KnownContracts["TELLOR"] = "tellor";
|
|
6
|
-
KnownContracts["REALITY_ETH"] = "realityETH";
|
|
7
|
-
KnownContracts["REALITY_ERC20"] = "realityERC20";
|
|
8
|
-
KnownContracts["BRIDGE"] = "bridge";
|
|
9
|
-
KnownContracts["DELAY"] = "delay";
|
|
10
|
-
KnownContracts["EXIT_ERC20"] = "exit";
|
|
11
|
-
KnownContracts["EXIT_ERC721"] = "exitERC721";
|
|
12
|
-
KnownContracts["CIRCULATING_SUPPLY_ERC20"] = "circulatingSupplyERC20";
|
|
13
|
-
KnownContracts["CIRCULATING_SUPPLY_ERC721"] = "circulatingSupplyERC721";
|
|
14
|
-
KnownContracts["SCOPE_GUARD"] = "scopeGuard";
|
|
15
|
-
KnownContracts["FACTORY"] = "factory";
|
|
16
|
-
KnownContracts["ROLES"] = "roles";
|
|
17
|
-
KnownContracts["ROLES_V1"] = "roles_v1";
|
|
18
|
-
KnownContracts["ROLES_V2"] = "roles_v2";
|
|
19
|
-
KnownContracts["OZ_GOVERNOR"] = "ozGovernor";
|
|
20
|
-
KnownContracts["ERC20_VOTES"] = "erc20Votes";
|
|
21
|
-
KnownContracts["ERC721_VOTES"] = "erc721Votes";
|
|
22
|
-
KnownContracts["MULTISEND_ENCODER"] = "multisendEncoder";
|
|
23
|
-
KnownContracts["PERMISSIONS"] = "permissions";
|
|
24
|
-
KnownContracts["CONNEXT"] = "connext";
|
|
25
|
-
})(KnownContracts || (KnownContracts = {}));
|
|
26
|
-
// type META_GUARD_VERSION = "v1.0.0";
|
|
27
|
-
// type OPTIMISTIC_GOVERNOR_VERSION = "v1.0.0";
|
|
28
|
-
// type TELLOR_VERSION = "v2.1.0";
|
|
29
|
-
// type REALITY_ETH_VERSION = "v1.0.0";
|
|
30
|
-
// type BRIDGE_VERSION = "v1.0.0";
|
|
31
|
-
// type DELAY_VERSION = "v1.0.0";
|
|
32
|
-
// type FACTORY_VERSION = "v1.0.0";
|
|
33
|
-
// type SCOPE_GUARD_VERSION = "v1.0.0";
|
|
34
|
-
// type EXIT_ERC20_VERSION = "v1.0.0" | "v1.1.0";
|
|
35
|
-
// type EXIT_ERC721_VERSION = "v1.1.0";
|
|
36
|
-
// type CIRCULATING_SUPPLY_ERC20_VERSION = "v1.0.0" | "v1.1.0";
|
|
37
|
-
// type CIRCULATING_SUPPLY_ERC721_VERSION = "v1.1.0";
|
|
38
|
-
// type ROLES_MOD_VERSION = "v1.0.0";
|
|
39
|
-
// type ContractMasterCopies<V extends string> = Record<V, string>;
|
|
40
|
-
// export interface ContractAddresses {
|
|
41
|
-
// metaGuard: ContractMasterCopies<META_GUARD_VERSION>;
|
|
42
|
-
// optimisticGovernor: ContractMasterCopies<OPTIMISTIC_GOVERNOR_VERSION>;
|
|
43
|
-
// tellor: ContractMasterCopies<TELLOR_VERSION>;
|
|
44
|
-
// realityETH: ContractMasterCopies<REALITY_ETH_VERSION>;
|
|
45
|
-
// realityERC20: ContractMasterCopies<REALITY_ETH_VERSION>;
|
|
46
|
-
// bridge: ContractMasterCopies<BRIDGE_VERSION>;
|
|
47
|
-
// delay: ContractMasterCopies<DELAY_VERSION>;
|
|
48
|
-
// factory: ContractMasterCopies<FACTORY_VERSION>;
|
|
49
|
-
// scopeGuard: ContractMasterCopies<SCOPE_GUARD_VERSION>;
|
|
50
|
-
// exit: ContractMasterCopies<EXIT_ERC20_VERSION>;
|
|
51
|
-
// exitERC721: ContractMasterCopies<EXIT_ERC721_VERSION>;
|
|
52
|
-
// circulatingSupplyERC20: ContractMasterCopies<CIRCULATING_SUPPLY_ERC20_VERSION>;
|
|
53
|
-
// circulatingSupplyERC721: ContractMasterCopies<CIRCULATING_SUPPLY_ERC721_VERSION>;
|
|
54
|
-
// roles: ContractMasterCopies<ROLES_MOD_VERSION>;
|
|
55
|
-
// }
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export declare const salt = "0x0000000000000000000000000000000000000000000000000000000000000000";
|
|
2
|
-
export declare const initCode = "0x60806040523480156200001157600080fd5b506040516200358838038062003588833981810160405281019062000037919062000926565b6000868686868686604051602001620000569695949392919062000ba2565b604051602081830303815290604052905062000078816200008560201b60201c565b5050505050505062000dc0565b60008060008060008086806020019051810190620000a4919062000890565b955095509550955095509550620000c06200034960201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141562000133576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200012a9062000c97565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415620001a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200019d9062000c31565b60405180910390fd5b84606660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083606760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082606860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081606960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080606a81905550620002c2866200044860201b60201c565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f523e377a4bf6c92e5fc7d99462b1d7f983014116ff0c646eba7267d11aba842c8760405162000338919062000b85565b60405180910390a450505050505050565b600060019054906101000a900460ff168062000370575060008054906101000a900460ff16155b620003b2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003a99062000c53565b60405180910390fd5b60008060019054906101000a900460ff16159050801562000403576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b620004136200055e60201b60201c565b620004236200063d60201b60201c565b8015620004455760008060016101000a81548160ff0219169083151502179055505b50565b620004586200073c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200047e6200074460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620004d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004ce9062000c75565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200054a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005419062000c0f565b60405180910390fd5b6200055b816200076e60201b60201c565b50565b600060019054906101000a900460ff168062000585575060008054906101000a900460ff16155b620005c7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005be9062000c53565b60405180910390fd5b60008060019054906101000a900460ff16159050801562000618576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156200063a5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168062000664575060008054906101000a900460ff16155b620006a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200069d9062000c53565b60405180910390fd5b60008060019054906101000a900460ff161590508015620006f7576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b620007176200070b6200073c60201b60201c565b6200076e60201b60201c565b8015620007395760008060016101000a81548160ff0219169083151502179055505b50565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050620008458162000d58565b92915050565b6000815190506200085c8162000d72565b92915050565b600081519050620008738162000d8c565b92915050565b6000815190506200088a8162000da6565b92915050565b60008060008060008060c08789031215620008aa57600080fd5b6000620008ba89828a016200084b565b9650506020620008cd89828a016200084b565b9550506040620008e089828a016200084b565b9450506060620008f389828a0162000879565b93505060806200090689828a016200084b565b92505060a06200091989828a0162000862565b9150509295509295509295565b60008060008060008060c087890312156200094057600080fd5b60006200095089828a0162000834565b96505060206200096389828a0162000834565b95505060406200097689828a0162000834565b94505060606200098989828a0162000879565b93505060806200099c89828a0162000834565b92505060a0620009af89828a0162000862565b9150509295509295509295565b620009c78162000cca565b82525050565b620009d88162000cf2565b82525050565b620009e98162000d30565b82525050565b6000620009fe60268362000cb9565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b600062000a66601e8362000cb9565b91507f5461726765742063616e206e6f74206265207a65726f206164647265737300006000830152602082019050919050565b600062000aa8602e8362000cb9565b91507f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008301527f647920696e697469616c697a65640000000000000000000000000000000000006020830152604082019050919050565b600062000b1060208362000cb9565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600062000b52601e8362000cb9565b91507f4176617461722063616e206e6f74206265207a65726f206164647265737300006000830152602082019050919050565b600060208201905062000b9c6000830184620009bc565b92915050565b600060c08201905062000bb96000830189620009bc565b62000bc86020830188620009bc565b62000bd76040830187620009bc565b62000be66060830186620009de565b62000bf56080830185620009bc565b62000c0460a0830184620009cd565b979650505050505050565b6000602082019050818103600083015262000c2a81620009ef565b9050919050565b6000602082019050818103600083015262000c4c8162000a57565b9050919050565b6000602082019050818103600083015262000c6e8162000a99565b9050919050565b6000602082019050818103600083015262000c908162000b01565b9050919050565b6000602082019050818103600083015262000cb28162000b43565b9050919050565b600082825260208201905092915050565b600062000cd78262000d10565b9050919050565b600062000ceb8262000d10565b9050919050565b6000819050919050565b600062000d098262000cca565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d3d8262000d44565b9050919050565b600062000d518262000d10565b9050919050565b62000d638162000cca565b811462000d6f57600080fd5b50565b62000d7d8162000cde565b811462000d8957600080fd5b50565b62000d978162000cf2565b811462000da357600080fd5b50565b62000db18162000cfc565b811462000dbd57600080fd5b50565b6127b88062000dd06000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806392eefe9b116100a2578063d4b8399211610071578063d4b8399214610281578063e19a9dd91461029f578063e69aa771146102bb578063f2fde38b146102d7578063f77c4791146102f357610116565b806392eefe9b1461020d5780639a8a059214610229578063a4f9edbf14610247578063c91063891461026357610116565b80635aef7de6116100e95780635aef7de61461018d578063715018a6146101ab578063776d1a01146101b55780637ceab3b1146101d15780638da5cb5b146101ef57610116565b8063086cfca81461011b5780631062b39a146101375780634164139f1461015557806356f0cb0114610171575b600080fd5b61013560048036038101906101309190611b00565b610311565b005b61013f610453565b60405161014c91906122dd565b60405180910390f35b61016f600480360381019061016a9190611bdb565b610479565b005b61018b60048036038101906101869190611b00565b61076c565b005b6101956108bd565b6040516101a2919061215e565b60405180910390f35b6101b36108e3565b005b6101cf60048036038101906101ca9190611b00565b61096b565b005b6101d9610aad565b6040516101e6919061215e565b60405180910390f35b6101f7610ad3565b604051610204919061215e565b60405180910390f35b61022760048036038101906102229190611b00565b610afd565b005b610231610c4e565b60405161023e919061227e565b60405180910390f35b610261600480360381019061025c9190611cd1565b610c54565b005b61026b610efe565b604051610278919061215e565b60405180910390f35b610289610f28565b604051610296919061215e565b60405180910390f35b6102b960048036038101906102b49190611b00565b610f4e565b005b6102d560048036038101906102d09190611c7f565b611184565b005b6102f160048036038101906102ec9190611b00565b61124f565b005b6102fb611347565b604051610308919061215e565b60405180910390f35b61031961136d565b73ffffffffffffffffffffffffffffffffffffffff16610337610ad3565b73ffffffffffffffffffffffffffffffffffffffff161461038d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038490612398565b60405180910390fd5b6000606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081606660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f52ae88b092de36f87fb43fe794eb1381023b9c1bce563a871154022c63dce34260405160405180910390a35050565b606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050090612478565b60405180910390fd5b606a54606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639e307dff6040518163ffffffff1660e01b815260040160206040518083038186803b15801561057457600080fd5b505afa158015610588573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ac9190611ca8565b146105ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e3906122f8565b60405180910390fd5b606960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d67bdd256040518163ffffffff1660e01b815260040160206040518083038186803b15801561068d57600080fd5b505afa1580156106a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c59190611b29565b73ffffffffffffffffffffffffffffffffffffffff161461071b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071290612338565b60405180910390fd5b61072784848484611375565b610766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612458565b60405180910390fd5b50505050565b61077461136d565b73ffffffffffffffffffffffffffffffffffffffff16610792610ad3565b73ffffffffffffffffffffffffffffffffffffffff16146107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90612398565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610879576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610870906123f8565b60405180910390fd5b80606860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108eb61136d565b73ffffffffffffffffffffffffffffffffffffffff16610909610ad3565b73ffffffffffffffffffffffffffffffffffffffff161461095f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095690612398565b60405180910390fd5b610969600061166a565b565b61097361136d565b73ffffffffffffffffffffffffffffffffffffffff16610991610ad3565b73ffffffffffffffffffffffffffffffffffffffff16146109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de90612398565b60405180910390fd5b6000606760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081606760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90cc2f570a6eb594b1580ea3e41247d2d73a55281889e86bd4ec2fc29c7e62d660405160405180910390a35050565b606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b0561136d565b73ffffffffffffffffffffffffffffffffffffffff16610b23610ad3565b73ffffffffffffffffffffffffffffffffffffffff1614610b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7090612398565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16606960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c01906123b8565b60405180910390fd5b80606960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606a5481565b60008060008060008086806020019051810190610c719190611b52565b955095509550955095509550610c85611730565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cec906123d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5c90612358565b60405180910390fd5b84606660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083606760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082606860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081606960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080606a81905550610e798661124f565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f523e377a4bf6c92e5fc7d99462b1d7f983014116ff0c646eba7267d11aba842c87604051610eed919061215e565b60405180910390a450505050505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f5661136d565b73ffffffffffffffffffffffffffffffffffffffff16610f74610ad3565b73ffffffffffffffffffffffffffffffffffffffff1614610fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc190612398565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146110e7578073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77fe6d7a83a000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161105791906122c2565b60206040518083038186803b15801561106f57600080fd5b505afa158015611083573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a79190611c56565b6110e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dd90612418565b60405180910390fd5b5b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa2606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611179919061215e565b60405180910390a150565b61118c61136d565b73ffffffffffffffffffffffffffffffffffffffff166111aa610ad3565b73ffffffffffffffffffffffffffffffffffffffff1614611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f790612398565b60405180910390fd5b80606a541415611245576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123c90612438565b60405180910390fd5b80606a8190555050565b61125761136d565b73ffffffffffffffffffffffffffffffffffffffff16611275610ad3565b73ffffffffffffffffffffffffffffffffffffffff16146112cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c290612398565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133290612318565b60405180910390fd5b6113448161166a565b50565b606960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff16606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114a757606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166375f0bb528686868660008060008060006040518060400160405280600281526020017f307800000000000000000000000000000000000000000000000000000000000081525060006040518c63ffffffff1660e01b81526004016114749b9a999897969594939291906121c5565b600060405180830381600087803b15801561148e57600080fd5b505af11580156114a2573d6000803e3d6000fd5b505050505b606760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7868686866040518563ffffffff1660e01b81526004016115089493929190612179565b602060405180830381600087803b15801561152257600080fd5b505af1158015611536573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155a9190611c56565b9050600073ffffffffffffffffffffffffffffffffffffffff16606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461166257606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663932713687f3078000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b815260040161162f929190612299565b600060405180830381600087803b15801561164957600080fd5b505af115801561165d573d6000803e3d6000fd5b505050505b949350505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060019054906101000a900460ff1680611756575060008054906101000a900460ff16155b611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178c90612378565b60405180910390fd5b60008060019054906101000a900460ff1615905080156117e5576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6117ed611819565b6117f56118f2565b80156118165760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168061183f575060008054906101000a900460ff16155b61187e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187590612378565b60405180910390fd5b60008060019054906101000a900460ff1615905080156118ce576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156118ef5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680611918575060008054906101000a900460ff16155b611957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194e90612378565b60405180910390fd5b60008060019054906101000a900460ff1615905080156119a7576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6119b76119b261136d565b61166a565b80156119d85760008060016101000a81548160ff0219169083151502179055505b50565b60006119ee6119e9846124c9565b612498565b905082815260208101848484011115611a0657600080fd5b611a11848285612623565b509392505050565b600081359050611a28816126e8565b92915050565b600081519050611a3d816126e8565b92915050565b600081519050611a52816126ff565b92915050565b600081519050611a6781612716565b92915050565b600081359050611a7c8161272d565b92915050565b600081519050611a918161272d565b92915050565b600082601f830112611aa857600080fd5b8135611ab88482602086016119db565b91505092915050565b600081519050611ad081612744565b92915050565b600081359050611ae58161275b565b92915050565b600081359050611afa8161276b565b92915050565b600060208284031215611b1257600080fd5b6000611b2084828501611a19565b91505092915050565b600060208284031215611b3b57600080fd5b6000611b4984828501611a2e565b91505092915050565b60008060008060008060c08789031215611b6b57600080fd5b6000611b7989828a01611a43565b9650506020611b8a89828a01611a43565b9550506040611b9b89828a01611a43565b9450506060611bac89828a01611ac1565b9350506080611bbd89828a01611a43565b92505060a0611bce89828a01611a82565b9150509295509295509295565b60008060008060808587031215611bf157600080fd5b6000611bff87828801611a19565b9450506020611c1087828801611aeb565b935050604085013567ffffffffffffffff811115611c2d57600080fd5b611c3987828801611a97565b9250506060611c4a87828801611ad6565b91505092959194509250565b600060208284031215611c6857600080fd5b6000611c7684828501611a58565b91505092915050565b600060208284031215611c9157600080fd5b6000611c9f84828501611a6d565b91505092915050565b600060208284031215611cba57600080fd5b6000611cc884828501611a82565b91505092915050565b600060208284031215611ce357600080fd5b600082013567ffffffffffffffff811115611cfd57600080fd5b611d0984828501611a97565b91505092915050565b611d1b81612538565b82525050565b611d2a81612526565b82525050565b611d398161254a565b82525050565b611d4881612556565b82525050565b611d5781612560565b82525050565b6000611d68826124f9565b611d728185612504565b9350611d82818560208601612632565b611d8b816126c3565b840191505092915050565b611d9f816125db565b82525050565b611dae816125ff565b82525050565b611dbd81612611565b82525050565b6000611dd0601483612515565b91507f556e617574686f72697a656420636861696e49640000000000000000000000006000830152602082019050919050565b6000611e10602683612515565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611e76601783612515565b91507f556e617574686f72697a656420636f6e74726f6c6c65720000000000000000006000830152602082019050919050565b6000611eb6601e83612515565b91507f5461726765742063616e206e6f74206265207a65726f206164647265737300006000830152602082019050919050565b6000611ef6602e83612515565b91507f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008301527f647920696e697469616c697a65640000000000000000000000000000000000006020830152604082019050919050565b6000611f5c602083612515565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611f9c601e83612515565b91507f636f6e74726f6c6c657220616c72656164792073657420746f207468697300006000830152602082019050919050565b6000611fdc601e83612515565b91507f4176617461722063616e206e6f74206265207a65726f206164647265737300006000830152602082019050919050565b600061201c601f83612515565b91507f414d42206164647265737320616c72656164792073657420746f2074686973006000830152602082019050919050565b600061205c602083612515565b91507f477561726420646f6573206e6f7420696d706c656d656e7420494552433136356000830152602082019050919050565b600061209c601b83612515565b91507f636861696e496420616c72656164792073657420746f207468697300000000006000830152602082019050919050565b60006120dc601983612515565b91507f4d6f64756c65207472616e73616374696f6e206661696c6564000000000000006000830152602082019050919050565b600061211c601083612515565b91507f556e617574686f72697a656420616d62000000000000000000000000000000006000830152602082019050919050565b612158816125d1565b82525050565b60006020820190506121736000830184611d21565b92915050565b600060808201905061218e6000830187611d21565b61219b602083018661214f565b81810360408301526121ad8185611d5d565b90506121bc6060830184611da5565b95945050505050565b6000610160820190506121db600083018e611d21565b6121e8602083018d61214f565b81810360408301526121fa818c611d5d565b9050612209606083018b611da5565b612216608083018a611db4565b61222360a0830189611db4565b61223060c0830188611db4565b61223d60e0830187611d21565b61224b610100830186611d12565b81810361012083015261225e8185611d5d565b905061226e610140830184611d21565b9c9b505050505050505050505050565b60006020820190506122936000830184611d3f565b92915050565b60006040820190506122ae6000830185611d3f565b6122bb6020830184611d30565b9392505050565b60006020820190506122d76000830184611d4e565b92915050565b60006020820190506122f26000830184611d96565b92915050565b6000602082019050818103600083015261231181611dc3565b9050919050565b6000602082019050818103600083015261233181611e03565b9050919050565b6000602082019050818103600083015261235181611e69565b9050919050565b6000602082019050818103600083015261237181611ea9565b9050919050565b6000602082019050818103600083015261239181611ee9565b9050919050565b600060208201905081810360008301526123b181611f4f565b9050919050565b600060208201905081810360008301526123d181611f8f565b9050919050565b600060208201905081810360008301526123f181611fcf565b9050919050565b600060208201905081810360008301526124118161200f565b9050919050565b600060208201905081810360008301526124318161204f565b9050919050565b600060208201905081810360008301526124518161208f565b9050919050565b60006020820190508181036000830152612471816120cf565b9050919050565b600060208201905081810360008301526124918161210f565b9050919050565b6000604051905081810181811067ffffffffffffffff821117156124bf576124be612694565b5b8060405250919050565b600067ffffffffffffffff8211156124e4576124e3612694565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612531826125b1565b9050919050565b6000612543826125b1565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600061259782612526565b9050919050565b60008190506125ac826126d4565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006125e6826125ed565b9050919050565b60006125f8826125b1565b9050919050565b600061260a8261259e565b9050919050565b600061261c826125d1565b9050919050565b82818337600083830152505050565b60005b83811015612650578082015181840152602081019050612635565b8381111561265f576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b600281106126e5576126e4612665565b5b50565b6126f181612526565b81146126fc57600080fd5b50565b61270881612538565b811461271357600080fd5b50565b61271f8161254a565b811461272a57600080fd5b50565b61273681612556565b811461274157600080fd5b50565b61274d8161258c565b811461275857600080fd5b50565b6002811061276857600080fd5b50565b612774816125d1565b811461277f57600080fd5b5056fea26469706673582212209f506b11875f587db4e491ae90930a30b353fd05e7d4b12082aed6627518267464736f6c63430008000033000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001";
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const salt = "0x0000000000000000000000000000000000000000000000000000000000000000";
|
|
2
|
-
export const initCode = "0x60806040523480156200001157600080fd5b506040516200358838038062003588833981810160405281019062000037919062000926565b6000868686868686604051602001620000569695949392919062000ba2565b604051602081830303815290604052905062000078816200008560201b60201c565b5050505050505062000dc0565b60008060008060008086806020019051810190620000a4919062000890565b955095509550955095509550620000c06200034960201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141562000133576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200012a9062000c97565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415620001a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200019d9062000c31565b60405180910390fd5b84606660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083606760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082606860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081606960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080606a81905550620002c2866200044860201b60201c565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f523e377a4bf6c92e5fc7d99462b1d7f983014116ff0c646eba7267d11aba842c8760405162000338919062000b85565b60405180910390a450505050505050565b600060019054906101000a900460ff168062000370575060008054906101000a900460ff16155b620003b2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003a99062000c53565b60405180910390fd5b60008060019054906101000a900460ff16159050801562000403576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b620004136200055e60201b60201c565b620004236200063d60201b60201c565b8015620004455760008060016101000a81548160ff0219169083151502179055505b50565b620004586200073c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200047e6200074460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620004d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004ce9062000c75565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200054a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005419062000c0f565b60405180910390fd5b6200055b816200076e60201b60201c565b50565b600060019054906101000a900460ff168062000585575060008054906101000a900460ff16155b620005c7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005be9062000c53565b60405180910390fd5b60008060019054906101000a900460ff16159050801562000618576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156200063a5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168062000664575060008054906101000a900460ff16155b620006a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200069d9062000c53565b60405180910390fd5b60008060019054906101000a900460ff161590508015620006f7576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b620007176200070b6200073c60201b60201c565b6200076e60201b60201c565b8015620007395760008060016101000a81548160ff0219169083151502179055505b50565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050620008458162000d58565b92915050565b6000815190506200085c8162000d72565b92915050565b600081519050620008738162000d8c565b92915050565b6000815190506200088a8162000da6565b92915050565b60008060008060008060c08789031215620008aa57600080fd5b6000620008ba89828a016200084b565b9650506020620008cd89828a016200084b565b9550506040620008e089828a016200084b565b9450506060620008f389828a0162000879565b93505060806200090689828a016200084b565b92505060a06200091989828a0162000862565b9150509295509295509295565b60008060008060008060c087890312156200094057600080fd5b60006200095089828a0162000834565b96505060206200096389828a0162000834565b95505060406200097689828a0162000834565b94505060606200098989828a0162000879565b93505060806200099c89828a0162000834565b92505060a0620009af89828a0162000862565b9150509295509295509295565b620009c78162000cca565b82525050565b620009d88162000cf2565b82525050565b620009e98162000d30565b82525050565b6000620009fe60268362000cb9565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b600062000a66601e8362000cb9565b91507f5461726765742063616e206e6f74206265207a65726f206164647265737300006000830152602082019050919050565b600062000aa8602e8362000cb9565b91507f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008301527f647920696e697469616c697a65640000000000000000000000000000000000006020830152604082019050919050565b600062000b1060208362000cb9565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600062000b52601e8362000cb9565b91507f4176617461722063616e206e6f74206265207a65726f206164647265737300006000830152602082019050919050565b600060208201905062000b9c6000830184620009bc565b92915050565b600060c08201905062000bb96000830189620009bc565b62000bc86020830188620009bc565b62000bd76040830187620009bc565b62000be66060830186620009de565b62000bf56080830185620009bc565b62000c0460a0830184620009cd565b979650505050505050565b6000602082019050818103600083015262000c2a81620009ef565b9050919050565b6000602082019050818103600083015262000c4c8162000a57565b9050919050565b6000602082019050818103600083015262000c6e8162000a99565b9050919050565b6000602082019050818103600083015262000c908162000b01565b9050919050565b6000602082019050818103600083015262000cb28162000b43565b9050919050565b600082825260208201905092915050565b600062000cd78262000d10565b9050919050565b600062000ceb8262000d10565b9050919050565b6000819050919050565b600062000d098262000cca565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d3d8262000d44565b9050919050565b600062000d518262000d10565b9050919050565b62000d638162000cca565b811462000d6f57600080fd5b50565b62000d7d8162000cde565b811462000d8957600080fd5b50565b62000d978162000cf2565b811462000da357600080fd5b50565b62000db18162000cfc565b811462000dbd57600080fd5b50565b6127b88062000dd06000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806392eefe9b116100a2578063d4b8399211610071578063d4b8399214610281578063e19a9dd91461029f578063e69aa771146102bb578063f2fde38b146102d7578063f77c4791146102f357610116565b806392eefe9b1461020d5780639a8a059214610229578063a4f9edbf14610247578063c91063891461026357610116565b80635aef7de6116100e95780635aef7de61461018d578063715018a6146101ab578063776d1a01146101b55780637ceab3b1146101d15780638da5cb5b146101ef57610116565b8063086cfca81461011b5780631062b39a146101375780634164139f1461015557806356f0cb0114610171575b600080fd5b61013560048036038101906101309190611b00565b610311565b005b61013f610453565b60405161014c91906122dd565b60405180910390f35b61016f600480360381019061016a9190611bdb565b610479565b005b61018b60048036038101906101869190611b00565b61076c565b005b6101956108bd565b6040516101a2919061215e565b60405180910390f35b6101b36108e3565b005b6101cf60048036038101906101ca9190611b00565b61096b565b005b6101d9610aad565b6040516101e6919061215e565b60405180910390f35b6101f7610ad3565b604051610204919061215e565b60405180910390f35b61022760048036038101906102229190611b00565b610afd565b005b610231610c4e565b60405161023e919061227e565b60405180910390f35b610261600480360381019061025c9190611cd1565b610c54565b005b61026b610efe565b604051610278919061215e565b60405180910390f35b610289610f28565b604051610296919061215e565b60405180910390f35b6102b960048036038101906102b49190611b00565b610f4e565b005b6102d560048036038101906102d09190611c7f565b611184565b005b6102f160048036038101906102ec9190611b00565b61124f565b005b6102fb611347565b604051610308919061215e565b60405180910390f35b61031961136d565b73ffffffffffffffffffffffffffffffffffffffff16610337610ad3565b73ffffffffffffffffffffffffffffffffffffffff161461038d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038490612398565b60405180910390fd5b6000606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081606660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f52ae88b092de36f87fb43fe794eb1381023b9c1bce563a871154022c63dce34260405160405180910390a35050565b606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050090612478565b60405180910390fd5b606a54606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639e307dff6040518163ffffffff1660e01b815260040160206040518083038186803b15801561057457600080fd5b505afa158015610588573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ac9190611ca8565b146105ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e3906122f8565b60405180910390fd5b606960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d67bdd256040518163ffffffff1660e01b815260040160206040518083038186803b15801561068d57600080fd5b505afa1580156106a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c59190611b29565b73ffffffffffffffffffffffffffffffffffffffff161461071b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071290612338565b60405180910390fd5b61072784848484611375565b610766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075d90612458565b60405180910390fd5b50505050565b61077461136d565b73ffffffffffffffffffffffffffffffffffffffff16610792610ad3565b73ffffffffffffffffffffffffffffffffffffffff16146107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df90612398565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16606860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610879576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610870906123f8565b60405180910390fd5b80606860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108eb61136d565b73ffffffffffffffffffffffffffffffffffffffff16610909610ad3565b73ffffffffffffffffffffffffffffffffffffffff161461095f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095690612398565b60405180910390fd5b610969600061166a565b565b61097361136d565b73ffffffffffffffffffffffffffffffffffffffff16610991610ad3565b73ffffffffffffffffffffffffffffffffffffffff16146109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de90612398565b60405180910390fd5b6000606760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081606760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90cc2f570a6eb594b1580ea3e41247d2d73a55281889e86bd4ec2fc29c7e62d660405160405180910390a35050565b606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b0561136d565b73ffffffffffffffffffffffffffffffffffffffff16610b23610ad3565b73ffffffffffffffffffffffffffffffffffffffff1614610b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7090612398565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16606960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c01906123b8565b60405180910390fd5b80606960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606a5481565b60008060008060008086806020019051810190610c719190611b52565b955095509550955095509550610c85611730565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cec906123d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5c90612358565b60405180910390fd5b84606660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083606760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082606860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081606960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080606a81905550610e798661124f565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f523e377a4bf6c92e5fc7d99462b1d7f983014116ff0c646eba7267d11aba842c87604051610eed919061215e565b60405180910390a450505050505050565b6000606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f5661136d565b73ffffffffffffffffffffffffffffffffffffffff16610f74610ad3565b73ffffffffffffffffffffffffffffffffffffffff1614610fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc190612398565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146110e7578073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77fe6d7a83a000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161105791906122c2565b60206040518083038186803b15801561106f57600080fd5b505afa158015611083573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a79190611c56565b6110e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dd90612418565b60405180910390fd5b5b80606560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa2606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051611179919061215e565b60405180910390a150565b61118c61136d565b73ffffffffffffffffffffffffffffffffffffffff166111aa610ad3565b73ffffffffffffffffffffffffffffffffffffffff1614611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f790612398565b60405180910390fd5b80606a541415611245576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123c90612438565b60405180910390fd5b80606a8190555050565b61125761136d565b73ffffffffffffffffffffffffffffffffffffffff16611275610ad3565b73ffffffffffffffffffffffffffffffffffffffff16146112cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c290612398565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133290612318565b60405180910390fd5b6113448161166a565b50565b606960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff16606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114a757606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166375f0bb528686868660008060008060006040518060400160405280600281526020017f307800000000000000000000000000000000000000000000000000000000000081525060006040518c63ffffffff1660e01b81526004016114749b9a999897969594939291906121c5565b600060405180830381600087803b15801561148e57600080fd5b505af11580156114a2573d6000803e3d6000fd5b505050505b606760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7868686866040518563ffffffff1660e01b81526004016115089493929190612179565b602060405180830381600087803b15801561152257600080fd5b505af1158015611536573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155a9190611c56565b9050600073ffffffffffffffffffffffffffffffffffffffff16606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461166257606560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663932713687f3078000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b815260040161162f929190612299565b600060405180830381600087803b15801561164957600080fd5b505af115801561165d573d6000803e3d6000fd5b505050505b949350505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060019054906101000a900460ff1680611756575060008054906101000a900460ff16155b611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178c90612378565b60405180910390fd5b60008060019054906101000a900460ff1615905080156117e5576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6117ed611819565b6117f56118f2565b80156118165760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff168061183f575060008054906101000a900460ff16155b61187e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187590612378565b60405180910390fd5b60008060019054906101000a900460ff1615905080156118ce576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156118ef5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680611918575060008054906101000a900460ff16155b611957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194e90612378565b60405180910390fd5b60008060019054906101000a900460ff1615905080156119a7576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6119b76119b261136d565b61166a565b80156119d85760008060016101000a81548160ff0219169083151502179055505b50565b60006119ee6119e9846124c9565b612498565b905082815260208101848484011115611a0657600080fd5b611a11848285612623565b509392505050565b600081359050611a28816126e8565b92915050565b600081519050611a3d816126e8565b92915050565b600081519050611a52816126ff565b92915050565b600081519050611a6781612716565b92915050565b600081359050611a7c8161272d565b92915050565b600081519050611a918161272d565b92915050565b600082601f830112611aa857600080fd5b8135611ab88482602086016119db565b91505092915050565b600081519050611ad081612744565b92915050565b600081359050611ae58161275b565b92915050565b600081359050611afa8161276b565b92915050565b600060208284031215611b1257600080fd5b6000611b2084828501611a19565b91505092915050565b600060208284031215611b3b57600080fd5b6000611b4984828501611a2e565b91505092915050565b60008060008060008060c08789031215611b6b57600080fd5b6000611b7989828a01611a43565b9650506020611b8a89828a01611a43565b9550506040611b9b89828a01611a43565b9450506060611bac89828a01611ac1565b9350506080611bbd89828a01611a43565b92505060a0611bce89828a01611a82565b9150509295509295509295565b60008060008060808587031215611bf157600080fd5b6000611bff87828801611a19565b9450506020611c1087828801611aeb565b935050604085013567ffffffffffffffff811115611c2d57600080fd5b611c3987828801611a97565b9250506060611c4a87828801611ad6565b91505092959194509250565b600060208284031215611c6857600080fd5b6000611c7684828501611a58565b91505092915050565b600060208284031215611c9157600080fd5b6000611c9f84828501611a6d565b91505092915050565b600060208284031215611cba57600080fd5b6000611cc884828501611a82565b91505092915050565b600060208284031215611ce357600080fd5b600082013567ffffffffffffffff811115611cfd57600080fd5b611d0984828501611a97565b91505092915050565b611d1b81612538565b82525050565b611d2a81612526565b82525050565b611d398161254a565b82525050565b611d4881612556565b82525050565b611d5781612560565b82525050565b6000611d68826124f9565b611d728185612504565b9350611d82818560208601612632565b611d8b816126c3565b840191505092915050565b611d9f816125db565b82525050565b611dae816125ff565b82525050565b611dbd81612611565b82525050565b6000611dd0601483612515565b91507f556e617574686f72697a656420636861696e49640000000000000000000000006000830152602082019050919050565b6000611e10602683612515565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611e76601783612515565b91507f556e617574686f72697a656420636f6e74726f6c6c65720000000000000000006000830152602082019050919050565b6000611eb6601e83612515565b91507f5461726765742063616e206e6f74206265207a65726f206164647265737300006000830152602082019050919050565b6000611ef6602e83612515565b91507f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008301527f647920696e697469616c697a65640000000000000000000000000000000000006020830152604082019050919050565b6000611f5c602083612515565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611f9c601e83612515565b91507f636f6e74726f6c6c657220616c72656164792073657420746f207468697300006000830152602082019050919050565b6000611fdc601e83612515565b91507f4176617461722063616e206e6f74206265207a65726f206164647265737300006000830152602082019050919050565b600061201c601f83612515565b91507f414d42206164647265737320616c72656164792073657420746f2074686973006000830152602082019050919050565b600061205c602083612515565b91507f477561726420646f6573206e6f7420696d706c656d656e7420494552433136356000830152602082019050919050565b600061209c601b83612515565b91507f636861696e496420616c72656164792073657420746f207468697300000000006000830152602082019050919050565b60006120dc601983612515565b91507f4d6f64756c65207472616e73616374696f6e206661696c6564000000000000006000830152602082019050919050565b600061211c601083612515565b91507f556e617574686f72697a656420616d62000000000000000000000000000000006000830152602082019050919050565b612158816125d1565b82525050565b60006020820190506121736000830184611d21565b92915050565b600060808201905061218e6000830187611d21565b61219b602083018661214f565b81810360408301526121ad8185611d5d565b90506121bc6060830184611da5565b95945050505050565b6000610160820190506121db600083018e611d21565b6121e8602083018d61214f565b81810360408301526121fa818c611d5d565b9050612209606083018b611da5565b612216608083018a611db4565b61222360a0830189611db4565b61223060c0830188611db4565b61223d60e0830187611d21565b61224b610100830186611d12565b81810361012083015261225e8185611d5d565b905061226e610140830184611d21565b9c9b505050505050505050505050565b60006020820190506122936000830184611d3f565b92915050565b60006040820190506122ae6000830185611d3f565b6122bb6020830184611d30565b9392505050565b60006020820190506122d76000830184611d4e565b92915050565b60006020820190506122f26000830184611d96565b92915050565b6000602082019050818103600083015261231181611dc3565b9050919050565b6000602082019050818103600083015261233181611e03565b9050919050565b6000602082019050818103600083015261235181611e69565b9050919050565b6000602082019050818103600083015261237181611ea9565b9050919050565b6000602082019050818103600083015261239181611ee9565b9050919050565b600060208201905081810360008301526123b181611f4f565b9050919050565b600060208201905081810360008301526123d181611f8f565b9050919050565b600060208201905081810360008301526123f181611fcf565b9050919050565b600060208201905081810360008301526124118161200f565b9050919050565b600060208201905081810360008301526124318161204f565b9050919050565b600060208201905081810360008301526124518161208f565b9050919050565b60006020820190508181036000830152612471816120cf565b9050919050565b600060208201905081810360008301526124918161210f565b9050919050565b6000604051905081810181811067ffffffffffffffff821117156124bf576124be612694565b5b8060405250919050565b600067ffffffffffffffff8211156124e4576124e3612694565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612531826125b1565b9050919050565b6000612543826125b1565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600061259782612526565b9050919050565b60008190506125ac826126d4565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006125e6826125ed565b9050919050565b60006125f8826125b1565b9050919050565b600061260a8261259e565b9050919050565b600061261c826125d1565b9050919050565b82818337600083830152505050565b60005b83811015612650578082015181840152602081019050612635565b8381111561265f576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b600281106126e5576126e4612665565b5b50565b6126f181612526565b81146126fc57600080fd5b50565b61270881612538565b811461271357600080fd5b50565b61271f8161254a565b811461272a57600080fd5b50565b61273681612556565b811461274157600080fd5b50565b61274d8161258c565b811461275857600080fd5b50565b6002811061276857600080fd5b50565b612774816125d1565b811461277f57600080fd5b5056fea26469706673582212209f506b11875f587db4e491ae90930a30b353fd05e7d4b12082aed6627518267464736f6c63430008000033000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001";
|