@etherisc/gif-next 0.0.2-9d3eab3-323 → 0.0.2-9dd1984-554
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/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/components/{BaseComponent.sol/BaseComponent.json → Component.sol/Component.json} +51 -6
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +51 -104
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/components/{IBaseComponent.sol/IBaseComponent.json → IComponent.sol/IComponent.json} +51 -6
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +5 -5
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +51 -132
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +56 -120
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +1 -1
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +1 -1
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +1 -1
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +2 -2
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +90 -13
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +75 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +56 -616
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +221 -114
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +2 -2
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2 -2
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +126 -229
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +26 -126
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +2 -2
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/instance/base/{ComponentServiceBase.sol/ComponentServiceBase.json → ComponentService.sol/ComponentService.json} +98 -24
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -13
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +59 -16
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +219 -48
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +20 -24
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +131 -38
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +17 -21
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +51 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +107 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +308 -60
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +48 -20
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +131 -38
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +17 -21
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +131 -38
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +13 -9
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +72 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +3 -3
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +85 -59
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +33 -23
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +17 -17
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +13 -13
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +84 -101
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +2 -2
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +2 -2
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/contracts/components/Component.sol +177 -0
- package/contracts/components/Distribution.sol +5 -14
- package/contracts/components/{IBaseComponent.sol → IComponent.sol} +12 -6
- package/contracts/components/IProductComponent.sol +2 -2
- package/contracts/components/Pool.sol +7 -20
- package/contracts/components/Product.sol +21 -18
- package/contracts/instance/IInstance.sol +3 -3
- package/contracts/instance/IInstanceBase.sol +0 -1
- package/contracts/instance/IInstanceService.sol +10 -4
- package/contracts/instance/Instance.sol +6 -208
- package/contracts/instance/InstanceAccessManager.sol +92 -77
- package/contracts/instance/InstanceBase.sol +0 -2
- package/contracts/instance/InstanceService.sol +117 -71
- package/contracts/instance/InstanceServiceManager.sol +5 -9
- package/contracts/instance/base/ComponentService.sol +133 -0
- package/contracts/instance/base/IInstanceBase.sol +0 -2
- package/contracts/instance/module/IAccess.sol +27 -17
- package/contracts/instance/service/BundleService.sol +38 -5
- package/contracts/instance/service/BundleServiceManager.sol +5 -9
- package/contracts/instance/service/DistributionService.sol +33 -32
- package/contracts/instance/service/DistributionServiceManager.sol +6 -10
- package/contracts/instance/service/IBundleService.sol +5 -6
- package/contracts/instance/service/IPolicyService.sol +7 -0
- package/contracts/instance/service/PolicyService.sol +62 -27
- package/contracts/instance/service/PoolService.sol +46 -26
- package/contracts/instance/service/PoolServiceManager.sol +5 -9
- package/contracts/instance/service/ProductService.sol +104 -31
- package/contracts/registry/IRegistry.sol +17 -3
- package/contracts/registry/IRegistryService.sol +5 -5
- package/contracts/registry/Registry.sol +30 -19
- package/contracts/registry/RegistryAccessManager.sol +27 -27
- package/contracts/registry/RegistryService.sol +22 -32
- package/contracts/registry/RegistryServiceManager.sol +4 -2
- package/contracts/registry/ReleaseManager.sol +87 -123
- package/contracts/registry/TokenRegistry.sol +4 -4
- package/contracts/shared/IRegisterable.sol +0 -2
- package/contracts/shared/NftOwnable.sol +2 -0
- package/contracts/shared/Service.sol +4 -2
- package/contracts/types/RoleId.sol +6 -7
- package/package.json +1 -1
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -814
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -466
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- package/contracts/components/BaseComponent.sol +0 -132
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/base/ComponentServiceBase.sol +0 -72
- package/contracts/instance/service/ComponentOwnerService.sol +0 -315
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
@@ -495,8 +495,8 @@
|
|
495
495
|
"type": "function"
|
496
496
|
}
|
497
497
|
],
|
498
|
-
"bytecode": "0x60806040523480156200001157600080fd5b5060405162001dcc38038062001dcc83398101604081905262000034916200069b565b620000656301ffc9a760e01b600090815260205260008051602062001dac833981519152805460ff19166001179055565b600280546001600160a01b031916331790556200008162000096565b6200008d83826200014a565b505050620008eb565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000e75760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001475780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6000606e62000158620001ed565b6040805160ff9384166020820152929091169082015260600160408051601f1981840301815291905290506000620001908462000275565b90506000620001a58583603c848888620002e9565b637b6a51fd60e01b60009081526020527f9104d64c0a509f323b61ab0d4830bb2242bc1a960637a1dcf1f2b72e0a7bd64d805460ff191660011790555050505050565b905090565b6000620001f9620003eb565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af41580156200024f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e89190620006e5565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa158015620002bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e3919062000711565b92915050565b6200031a6301ffc9a760e01b600090815260205260008051602062001dac833981519152805460ff19166001179055565b62000326828762000473565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166001600160681b0319909116176c0100000000000000000000000060ff8816021760ff60681b19166d010000000000000000000000000086151502178155905060018101620003a58382620007d4565b506303fb044760e21b60009081526020527fb43e4f3791bfcdefa3a0fbe2a5555f8d6490b90e01de0ff40c66f18b49b562c5805460ff1916600117905550505050505050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af41580156200044d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e89190620008a0565b6001600160a01b038216620004cf5760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e65722069732030000060448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b038416179055620004f581620004f9565b5050565b6001546001600160a01b031615620005345760015460405163fcdbf2d960e01b81526001600160a01b039091166004820152602401620004c6565b6001600160a01b0381166200055c5760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b600003620005945760405163fdeac91f60e01b81526001600160a01b0382166004820152602401620004c6565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263cc7f293160e01b60048201526301ffc9a790602401602060405180830381865afa92505050801562000611575060408051601f3d908101601f191682019092526200060e91810190620008c7565b60015b6200063b5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401620004c6565b80620004f55760405163fdeac91f60e01b81526001600160a01b0383166004820152602401620004c6565b80516001600160a01b03811681146200067e57600080fd5b919050565b80516001600160601b03811681146200067e57600080fd5b600080600060608486031215620006b157600080fd5b620006bc8462000666565b9250620006cc6020850162000683565b9150620006dc6040850162000666565b90509250925092565b600060208284031215620006f857600080fd5b815160ff811681146200070a57600080fd5b9392505050565b6000602082840312156200072457600080fd5b6200070a8262000683565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200075a57607f821691505b6020821081036200077b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007cf57600081815260208120601f850160051c81016020861015620007aa5750805b601f850160051c820191505b81811015620007cb57828155600101620007b6565b5050505b505050565b81516001600160401b03811115620007f057620007f06200072f565b620008088162000801845462000745565b8462000781565b602080601f831160018114620008405760008415620008275750858301515b600019600386901b1c1916600185901b178555620007cb565b600085815260208120601f198616915b82811015620008715788860151825594840194600190910190840162000850565b5085821015620008905787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620008b357600080fd5b815162ffffff811681146200070a57600080fd5b600060208284031215620008da57600080fd5b815180151581146200070a57600080fd5b6114b180620008fb6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063893d20e8116100a2578063b3c6501511610071578063b3c65015146103c3578063b68d1809146103e4578063b88da759146103f9578063cde749f41461040c578063cf7a1d771461041457600080fd5b8063893d20e81461034a578063946dfcfe14610352578063a3f4df7e14610379578063a745e3df146103b057600080fd5b80631eff4b22116100e95780631eff4b22146101995780634d459c90146101ce5780634f421333146102e75780635ab1bd53146102fa578063644c45e01461031f57600080fd5b806301ffc9a71461011b5780630d8e6e2c1461015d5780630fec111c14610179578063138461e01461018f575b600080fd5b61014861012936600461105d565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b610165610427565b60405162ffffff9091168152602001610154565b6101816104b1565b6040516101549291906110d4565b610197610633565b005b6101c07f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610154565b61028a6101dc36600461118f565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260008051602061145c83398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a001610154565b6101486102f536600461118f565b610855565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610154565b600154600160a01b90046001600160601b03166040516001600160601b039091168152602001610154565b610307610908565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed901546101c0565b6103a36040518060400160405280600b81526020016a546573745365727669636560a81b81525081565b60405161015491906111ac565b6101976103be3660046111ea565b610a21565b6103cb610b7e565b60405167ffffffffffffffff9091168152602001610154565b606e5b60405160ff9091168152602001610154565b6101656104073660046112c0565b610ba0565b6103e7610bf1565b6101976104223660046111ea565b610c74565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af4158015610488573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ac91906112d9565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820181905290917f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e001604052806105346001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a00161057c610908565b6001600160a01b03168152602001826001018054610599906112f6565b80601f01602080910402602001604051908101604052809291908181526020018280546105c5906112f6565b80156106125780601f106105e757610100808354040283529160200191610612565b820191906000526020600020905b8154815290600101906020018083116105f557829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b99190611330565b15610700576001546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6001546001600160a01b03166107295760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa158015610772573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107969190611330565b6107be576040516372657a5160e01b81526001600160a01b03821660048201526024016106f7565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082c9190611352565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b60008060008051602061145c83398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af41580156108dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610901919061137b565b1192915050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af415801561096d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109919190611330565b15610a1157600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa1580156109ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ac9190611394565b506002546001600160a01b031690565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c610a43610427565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa791906113b1565b60008051602061143c8339815191528054600160401b900460ff1680610adb5750805467ffffffffffffffff808416911610155b15610af95760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff191667ffffffffffffffff831617600160401b178155610b258585610d7f565b610b2e83611020565b805460ff60401b1916815560405167ffffffffffffffff831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b60006104ac60008051602061143c8339815191525467ffffffffffffffff1690565b600060008051602061145c8339815191526001018281548110610bc557610bc56113db565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b6000610bfb610427565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af4158015610c50573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ac91906113f1565b60008051602061143c8339815191528054600160401b810460ff16159067ffffffffffffffff16600081158015610ca85750825b905060008267ffffffffffffffff166001148015610cc55750303b155b905081158015610cd3575080155b15610cf15760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610d1b57845460ff60401b1916600160401b1785555b610d258888610d7f565b610d2f8787611020565b8315610d7557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b610d87611024565b60008051602061145c8339815191526000610db860008051602061143c8339815191525467ffffffffffffffff1690565b90506000610dc4610427565b90508167ffffffffffffffff16600103610df25760028301805462ffffff191662ffffff8316179055610e40565b600283015462ffffff90811690821611610e405760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b60448201526064016106f7565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af4158015610ef4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f189190611414565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf6890610b6f9083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101165b60008051602061143c83398151915254600160401b900460ff1661105b57604051631afcd79f60e31b815260040160405180910390fd5b565b60006020828403121561106f57600080fd5b81356001600160e01b03198116811461108757600080fd5b9392505050565b6000815180845260005b818110156110b457602081850181015186830182015201611098565b506000602082860101526020601f19601f83011685010191505092915050565b6040815260006001600160601b038085511660408401528060208601511660608401525060ff6040850151166080830152606084015161111860a084018215159052565b5060808401516001600160a01b03811660c08401525060a08401516001600160a01b03811660e08401525060c084015160e061010084015261115e61012084018261108e565b90508281036020840152611172818561108e565b95945050505050565b62ffffff8116811461118c57600080fd5b50565b6000602082840312156111a157600080fd5b81356110878161117b565b602081526000611087602083018461108e565b6001600160a01b038116811461118c57600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156111ff57600080fd5b833561120a816111bf565b9250602084013561121a816111bf565b9150604084013567ffffffffffffffff8082111561123757600080fd5b818601915086601f83011261124b57600080fd5b81358181111561125d5761125d6111d4565b604051601f8201601f19908116603f01168101908382118183101715611285576112856111d4565b8160405282815289602084870101111561129e57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156112d257600080fd5b5035919050565b6000602082840312156112eb57600080fd5b81516110878161117b565b600181811c9082168061130a57607f821691505b60208210810361132a57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561134257600080fd5b8151801515811461108757600080fd5b60006020828403121561136457600080fd5b81516001600160601b038116811461108757600080fd5b60006020828403121561138d57600080fd5b5051919050565b6000602082840312156113a657600080fd5b8151611087816111bf565b6000602082840312156113c357600080fd5b815167ffffffffffffffff8116811461108757600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561140357600080fd5b815160ff8116811461108757600080fd5b60006020828403121561142657600080fd5b815164ffffffffff8116811461108757600080fdfef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a26469706673582212203a7c65bb0dd8133ae00542902a35691103a9749a4bccb2766f4e806a9c110bc364736f6c6343000814003367be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5",
|
499
|
-
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063893d20e8116100a2578063b3c6501511610071578063b3c65015146103c3578063b68d1809146103e4578063b88da759146103f9578063cde749f41461040c578063cf7a1d771461041457600080fd5b8063893d20e81461034a578063946dfcfe14610352578063a3f4df7e14610379578063a745e3df146103b057600080fd5b80631eff4b22116100e95780631eff4b22146101995780634d459c90146101ce5780634f421333146102e75780635ab1bd53146102fa578063644c45e01461031f57600080fd5b806301ffc9a71461011b5780630d8e6e2c1461015d5780630fec111c14610179578063138461e01461018f575b600080fd5b61014861012936600461105d565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b610165610427565b60405162ffffff9091168152602001610154565b6101816104b1565b6040516101549291906110d4565b610197610633565b005b6101c07f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610154565b61028a6101dc36600461118f565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260008051602061145c83398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a001610154565b6101486102f536600461118f565b610855565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610154565b600154600160a01b90046001600160601b03166040516001600160601b039091168152602001610154565b610307610908565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed901546101c0565b6103a36040518060400160405280600b81526020016a546573745365727669636560a81b81525081565b60405161015491906111ac565b6101976103be3660046111ea565b610a21565b6103cb610b7e565b60405167ffffffffffffffff9091168152602001610154565b606e5b60405160ff9091168152602001610154565b6101656104073660046112c0565b610ba0565b6103e7610bf1565b6101976104223660046111ea565b610c74565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af4158015610488573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ac91906112d9565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820181905290917f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e001604052806105346001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a00161057c610908565b6001600160a01b03168152602001826001018054610599906112f6565b80601f01602080910402602001604051908101604052809291908181526020018280546105c5906112f6565b80156106125780601f106105e757610100808354040283529160200191610612565b820191906000526020600020905b8154815290600101906020018083116105f557829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b99190611330565b15610700576001546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6001546001600160a01b03166107295760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa158015610772573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107969190611330565b6107be576040516372657a5160e01b81526001600160a01b03821660048201526024016106f7565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082c9190611352565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b60008060008051602061145c83398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af41580156108dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610901919061137b565b1192915050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af415801561096d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109919190611330565b15610a1157600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa1580156109ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ac9190611394565b506002546001600160a01b031690565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c610a43610427565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa791906113b1565b60008051602061143c8339815191528054600160401b900460ff1680610adb5750805467ffffffffffffffff808416911610155b15610af95760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff191667ffffffffffffffff831617600160401b178155610b258585610d7f565b610b2e83611020565b805460ff60401b1916815560405167ffffffffffffffff831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b60006104ac60008051602061143c8339815191525467ffffffffffffffff1690565b600060008051602061145c8339815191526001018281548110610bc557610bc56113db565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b6000610bfb610427565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af4158015610c50573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ac91906113f1565b60008051602061143c8339815191528054600160401b810460ff16159067ffffffffffffffff16600081158015610ca85750825b905060008267ffffffffffffffff166001148015610cc55750303b155b905081158015610cd3575080155b15610cf15760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610d1b57845460ff60401b1916600160401b1785555b610d258888610d7f565b610d2f8787611020565b8315610d7557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b610d87611024565b60008051602061145c8339815191526000610db860008051602061143c8339815191525467ffffffffffffffff1690565b90506000610dc4610427565b90508167ffffffffffffffff16600103610df25760028301805462ffffff191662ffffff8316179055610e40565b600283015462ffffff90811690821611610e405760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b60448201526064016106f7565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af4158015610ef4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f189190611414565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf6890610b6f9083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101165b60008051602061143c83398151915254600160401b900460ff1661105b57604051631afcd79f60e31b815260040160405180910390fd5b565b60006020828403121561106f57600080fd5b81356001600160e01b03198116811461108757600080fd5b9392505050565b6000815180845260005b818110156110b457602081850181015186830182015201611098565b506000602082860101526020601f19601f83011685010191505092915050565b6040815260006001600160601b038085511660408401528060208601511660608401525060ff6040850151166080830152606084015161111860a084018215159052565b5060808401516001600160a01b03811660c08401525060a08401516001600160a01b03811660e08401525060c084015160e061010084015261115e61012084018261108e565b90508281036020840152611172818561108e565b95945050505050565b62ffffff8116811461118c57600080fd5b50565b6000602082840312156111a157600080fd5b81356110878161117b565b602081526000611087602083018461108e565b6001600160a01b038116811461118c57600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156111ff57600080fd5b833561120a816111bf565b9250602084013561121a816111bf565b9150604084013567ffffffffffffffff8082111561123757600080fd5b818601915086601f83011261124b57600080fd5b81358181111561125d5761125d6111d4565b604051601f8201601f19908116603f01168101908382118183101715611285576112856111d4565b8160405282815289602084870101111561129e57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156112d257600080fd5b5035919050565b6000602082840312156112eb57600080fd5b81516110878161117b565b600181811c9082168061130a57607f821691505b60208210810361132a57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561134257600080fd5b8151801515811461108757600080fd5b60006020828403121561136457600080fd5b81516001600160601b038116811461108757600080fd5b60006020828403121561138d57600080fd5b5051919050565b6000602082840312156113a657600080fd5b8151611087816111bf565b6000602082840312156113c357600080fd5b815167ffffffffffffffff8116811461108757600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561140357600080fd5b815160ff8116811461108757600080fd5b60006020828403121561142657600080fd5b815164ffffffffff8116811461108757600080fdfef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a26469706673582212203a7c65bb0dd8133ae00542902a35691103a9749a4bccb2766f4e806a9c110bc364736f6c63430008140033",
|
498
|
+
"bytecode": "0x60806040523480156200001157600080fd5b5060405162001dcc38038062001dcc83398101604081905262000034916200069b565b620000656301ffc9a760e01b600090815260205260008051602062001dac833981519152805460ff19166001179055565b600280546001600160a01b031916331790556200008162000096565b6200008d83826200014a565b505050620008eb565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000e75760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001475780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6000606e62000158620001ed565b6040805160ff9384166020820152929091169082015260600160408051601f1981840301815291905290506000620001908462000275565b90506000620001a58583603c848888620002e9565b637b6a51fd60e01b60009081526020527f9104d64c0a509f323b61ab0d4830bb2242bc1a960637a1dcf1f2b72e0a7bd64d805460ff191660011790555050505050565b905090565b6000620001f9620003eb565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af41580156200024f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e89190620006e5565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa158015620002bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e3919062000711565b92915050565b6200031a6301ffc9a760e01b600090815260205260008051602062001dac833981519152805460ff19166001179055565b62000326828762000473565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166001600160681b0319909116176c0100000000000000000000000060ff8816021760ff60681b19166d010000000000000000000000000086151502178155905060018101620003a58382620007d4565b506303fb044760e21b60009081526020527fb43e4f3791bfcdefa3a0fbe2a5555f8d6490b90e01de0ff40c66f18b49b562c5805460ff1916600117905550505050505050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af41580156200044d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e89190620008a0565b6001600160a01b038216620004cf5760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e65722069732030000060448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b038416179055620004f581620004f9565b5050565b6001546001600160a01b031615620005345760015460405163fcdbf2d960e01b81526001600160a01b039091166004820152602401620004c6565b6001600160a01b0381166200055c5760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b600003620005945760405163fdeac91f60e01b81526001600160a01b0382166004820152602401620004c6565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263102da10360e01b60048201526301ffc9a790602401602060405180830381865afa92505050801562000611575060408051601f3d908101601f191682019092526200060e91810190620008c7565b60015b6200063b5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401620004c6565b80620004f55760405163fdeac91f60e01b81526001600160a01b0383166004820152602401620004c6565b80516001600160a01b03811681146200067e57600080fd5b919050565b80516001600160601b03811681146200067e57600080fd5b600080600060608486031215620006b157600080fd5b620006bc8462000666565b9250620006cc6020850162000683565b9150620006dc6040850162000666565b90509250925092565b600060208284031215620006f857600080fd5b815160ff811681146200070a57600080fd5b9392505050565b6000602082840312156200072457600080fd5b6200070a8262000683565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200075a57607f821691505b6020821081036200077b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007cf57600081815260208120601f850160051c81016020861015620007aa5750805b601f850160051c820191505b81811015620007cb57828155600101620007b6565b5050505b505050565b81516001600160401b03811115620007f057620007f06200072f565b620008088162000801845462000745565b8462000781565b602080601f831160018114620008405760008415620008275750858301515b600019600386901b1c1916600185901b178555620007cb565b600085815260208120601f198616915b82811015620008715788860151825594840194600190910190840162000850565b5085821015620008905787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620008b357600080fd5b815162ffffff811681146200070a57600080fd5b600060208284031215620008da57600080fd5b815180151581146200070a57600080fd5b6114b180620008fb6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063893d20e8116100a2578063b3c6501511610071578063b3c65015146103c3578063b68d1809146103e4578063b88da759146103f9578063cde749f41461040c578063cf7a1d771461041457600080fd5b8063893d20e81461034a578063946dfcfe14610352578063a3f4df7e14610379578063a745e3df146103b057600080fd5b80631eff4b22116100e95780631eff4b22146101995780634d459c90146101ce5780634f421333146102e75780635ab1bd53146102fa578063644c45e01461031f57600080fd5b806301ffc9a71461011b5780630d8e6e2c1461015d5780630fec111c14610179578063138461e01461018f575b600080fd5b61014861012936600461105d565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b610165610427565b60405162ffffff9091168152602001610154565b6101816104b1565b6040516101549291906110d4565b610197610633565b005b6101c07f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610154565b61028a6101dc36600461118f565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260008051602061145c83398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a001610154565b6101486102f536600461118f565b610855565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610154565b600154600160a01b90046001600160601b03166040516001600160601b039091168152602001610154565b610307610908565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed901546101c0565b6103a36040518060400160405280600b81526020016a546573745365727669636560a81b81525081565b60405161015491906111ac565b6101976103be3660046111ea565b610a21565b6103cb610b7e565b60405167ffffffffffffffff9091168152602001610154565b606e5b60405160ff9091168152602001610154565b6101656104073660046112c0565b610ba0565b6103e7610bf1565b6101976104223660046111ea565b610c74565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af4158015610488573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ac91906112d9565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820181905290917f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e001604052806105346001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a00161057c610908565b6001600160a01b03168152602001826001018054610599906112f6565b80601f01602080910402602001604051908101604052809291908181526020018280546105c5906112f6565b80156106125780601f106105e757610100808354040283529160200191610612565b820191906000526020600020905b8154815290600101906020018083116105f557829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b99190611330565b15610700576001546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6001546001600160a01b03166107295760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa158015610772573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107969190611330565b6107be576040516372657a5160e01b81526001600160a01b03821660048201526024016106f7565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082c9190611352565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b60008060008051602061145c83398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af41580156108dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610901919061137b565b1192915050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af415801561096d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109919190611330565b15610a1157600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa1580156109ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ac9190611394565b506002546001600160a01b031690565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c610a43610427565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa791906113b1565b60008051602061143c8339815191528054600160401b900460ff1680610adb5750805467ffffffffffffffff808416911610155b15610af95760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff191667ffffffffffffffff831617600160401b178155610b258585610d7f565b610b2e83611020565b805460ff60401b1916815560405167ffffffffffffffff831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b60006104ac60008051602061143c8339815191525467ffffffffffffffff1690565b600060008051602061145c8339815191526001018281548110610bc557610bc56113db565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b6000610bfb610427565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af4158015610c50573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ac91906113f1565b60008051602061143c8339815191528054600160401b810460ff16159067ffffffffffffffff16600081158015610ca85750825b905060008267ffffffffffffffff166001148015610cc55750303b155b905081158015610cd3575080155b15610cf15760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610d1b57845460ff60401b1916600160401b1785555b610d258888610d7f565b610d2f8787611020565b8315610d7557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b610d87611024565b60008051602061145c8339815191526000610db860008051602061143c8339815191525467ffffffffffffffff1690565b90506000610dc4610427565b90508167ffffffffffffffff16600103610df25760028301805462ffffff191662ffffff8316179055610e40565b600283015462ffffff90811690821611610e405760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b60448201526064016106f7565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af4158015610ef4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f189190611414565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf6890610b6f9083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101165b60008051602061143c83398151915254600160401b900460ff1661105b57604051631afcd79f60e31b815260040160405180910390fd5b565b60006020828403121561106f57600080fd5b81356001600160e01b03198116811461108757600080fd5b9392505050565b6000815180845260005b818110156110b457602081850181015186830182015201611098565b506000602082860101526020601f19601f83011685010191505092915050565b6040815260006001600160601b038085511660408401528060208601511660608401525060ff6040850151166080830152606084015161111860a084018215159052565b5060808401516001600160a01b03811660c08401525060a08401516001600160a01b03811660e08401525060c084015160e061010084015261115e61012084018261108e565b90508281036020840152611172818561108e565b95945050505050565b62ffffff8116811461118c57600080fd5b50565b6000602082840312156111a157600080fd5b81356110878161117b565b602081526000611087602083018461108e565b6001600160a01b038116811461118c57600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156111ff57600080fd5b833561120a816111bf565b9250602084013561121a816111bf565b9150604084013567ffffffffffffffff8082111561123757600080fd5b818601915086601f83011261124b57600080fd5b81358181111561125d5761125d6111d4565b604051601f8201601f19908116603f01168101908382118183101715611285576112856111d4565b8160405282815289602084870101111561129e57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156112d257600080fd5b5035919050565b6000602082840312156112eb57600080fd5b81516110878161117b565b600181811c9082168061130a57607f821691505b60208210810361132a57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561134257600080fd5b8151801515811461108757600080fd5b60006020828403121561136457600080fd5b81516001600160601b038116811461108757600080fd5b60006020828403121561138d57600080fd5b5051919050565b6000602082840312156113a657600080fd5b8151611087816111bf565b6000602082840312156113c357600080fd5b815167ffffffffffffffff8116811461108757600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561140357600080fd5b815160ff8116811461108757600080fd5b60006020828403121561142657600080fd5b815164ffffffffff8116811461108757600080fdfef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a2646970667358221220752dad97fd6428c38e2aee877d0dfdebd79dc498579cef8165ddef5e705b749164736f6c6343000814003367be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5",
|
499
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063893d20e8116100a2578063b3c6501511610071578063b3c65015146103c3578063b68d1809146103e4578063b88da759146103f9578063cde749f41461040c578063cf7a1d771461041457600080fd5b8063893d20e81461034a578063946dfcfe14610352578063a3f4df7e14610379578063a745e3df146103b057600080fd5b80631eff4b22116100e95780631eff4b22146101995780634d459c90146101ce5780634f421333146102e75780635ab1bd53146102fa578063644c45e01461031f57600080fd5b806301ffc9a71461011b5780630d8e6e2c1461015d5780630fec111c14610179578063138461e01461018f575b600080fd5b61014861012936600461105d565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b610165610427565b60405162ffffff9091168152602001610154565b6101816104b1565b6040516101549291906110d4565b610197610633565b005b6101c07f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610154565b61028a6101dc36600461118f565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260008051602061145c83398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a001610154565b6101486102f536600461118f565b610855565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610154565b600154600160a01b90046001600160601b03166040516001600160601b039091168152602001610154565b610307610908565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed901546101c0565b6103a36040518060400160405280600b81526020016a546573745365727669636560a81b81525081565b60405161015491906111ac565b6101976103be3660046111ea565b610a21565b6103cb610b7e565b60405167ffffffffffffffff9091168152602001610154565b606e5b60405160ff9091168152602001610154565b6101656104073660046112c0565b610ba0565b6103e7610bf1565b6101976104223660046111ea565b610c74565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af4158015610488573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ac91906112d9565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820181905290917f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e001604052806105346001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a00161057c610908565b6001600160a01b03168152602001826001018054610599906112f6565b80601f01602080910402602001604051908101604052809291908181526020018280546105c5906112f6565b80156106125780601f106105e757610100808354040283529160200191610612565b820191906000526020600020905b8154815290600101906020018083116105f557829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b99190611330565b15610700576001546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6001546001600160a01b03166107295760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa158015610772573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107969190611330565b6107be576040516372657a5160e01b81526001600160a01b03821660048201526024016106f7565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082c9190611352565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b60008060008051602061145c83398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af41580156108dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610901919061137b565b1192915050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af415801561096d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109919190611330565b15610a1157600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa1580156109ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ac9190611394565b506002546001600160a01b031690565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c610a43610427565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa791906113b1565b60008051602061143c8339815191528054600160401b900460ff1680610adb5750805467ffffffffffffffff808416911610155b15610af95760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff191667ffffffffffffffff831617600160401b178155610b258585610d7f565b610b2e83611020565b805460ff60401b1916815560405167ffffffffffffffff831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b60006104ac60008051602061143c8339815191525467ffffffffffffffff1690565b600060008051602061145c8339815191526001018281548110610bc557610bc56113db565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b6000610bfb610427565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af4158015610c50573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ac91906113f1565b60008051602061143c8339815191528054600160401b810460ff16159067ffffffffffffffff16600081158015610ca85750825b905060008267ffffffffffffffff166001148015610cc55750303b155b905081158015610cd3575080155b15610cf15760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610d1b57845460ff60401b1916600160401b1785555b610d258888610d7f565b610d2f8787611020565b8315610d7557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b610d87611024565b60008051602061145c8339815191526000610db860008051602061143c8339815191525467ffffffffffffffff1690565b90506000610dc4610427565b90508167ffffffffffffffff16600103610df25760028301805462ffffff191662ffffff8316179055610e40565b600283015462ffffff90811690821611610e405760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b60448201526064016106f7565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af4158015610ef4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f189190611414565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf6890610b6f9083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101165b60008051602061143c83398151915254600160401b900460ff1661105b57604051631afcd79f60e31b815260040160405180910390fd5b565b60006020828403121561106f57600080fd5b81356001600160e01b03198116811461108757600080fd5b9392505050565b6000815180845260005b818110156110b457602081850181015186830182015201611098565b506000602082860101526020601f19601f83011685010191505092915050565b6040815260006001600160601b038085511660408401528060208601511660608401525060ff6040850151166080830152606084015161111860a084018215159052565b5060808401516001600160a01b03811660c08401525060a08401516001600160a01b03811660e08401525060c084015160e061010084015261115e61012084018261108e565b90508281036020840152611172818561108e565b95945050505050565b62ffffff8116811461118c57600080fd5b50565b6000602082840312156111a157600080fd5b81356110878161117b565b602081526000611087602083018461108e565b6001600160a01b038116811461118c57600080fd5b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156111ff57600080fd5b833561120a816111bf565b9250602084013561121a816111bf565b9150604084013567ffffffffffffffff8082111561123757600080fd5b818601915086601f83011261124b57600080fd5b81358181111561125d5761125d6111d4565b604051601f8201601f19908116603f01168101908382118183101715611285576112856111d4565b8160405282815289602084870101111561129e57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156112d257600080fd5b5035919050565b6000602082840312156112eb57600080fd5b81516110878161117b565b600181811c9082168061130a57607f821691505b60208210810361132a57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561134257600080fd5b8151801515811461108757600080fd5b60006020828403121561136457600080fd5b81516001600160601b038116811461108757600080fd5b60006020828403121561138d57600080fd5b5051919050565b6000602082840312156113a657600080fd5b8151611087816111bf565b6000602082840312156113c357600080fd5b815167ffffffffffffffff8116811461108757600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561140357600080fd5b815160ff8116811461108757600080fd5b60006020828403121561142657600080fd5b815164ffffffffff8116811461108757600080fdfef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a2646970667358221220752dad97fd6428c38e2aee877d0dfdebd79dc498579cef8165ddef5e705b749164736f6c63430008140033",
|
500
500
|
"linkReferences": {
|
501
501
|
"contracts/types/Blocknumber.sol": {
|
502
502
|
"BlocknumberLib": [
|
@@ -131,8 +131,8 @@
|
|
131
131
|
"type": "function"
|
132
132
|
}
|
133
133
|
],
|
134
|
-
"bytecode": "0x6102a461003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100875760003560e01c806368aebf7b1161006557806368aebf7b14610119578063a42e52e914610127578063bc1b392d14610144578063f37f38f01461014b57600080fd5b8063057182b41461008c578063545ce21c146100bd57806367cb8ec1146100e7575b600080fd5b6100a861009a36600461020b565b67ffffffffffffffff161590565b60405190151581526020015b60405180910390f35b6100ce6100cb36600461020b565b90565b60405167ffffffffffffffff90911681526020016100b4565b6101066100f536600461020b565b60081b68ffffffffffffffff001690565b60405160ff1990911681526020016100b4565b6100ce6100cb36600461023c565b6100a861013536600461020b565b67ffffffffffffffff16151590565b60006100ce565b61015e61015936600461020b565b61016c565b6040519081526020016100b4565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$
|
135
|
-
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100875760003560e01c806368aebf7b1161006557806368aebf7b14610119578063a42e52e914610127578063bc1b392d14610144578063f37f38f01461014b57600080fd5b8063057182b41461008c578063545ce21c146100bd57806367cb8ec1146100e7575b600080fd5b6100a861009a36600461020b565b67ffffffffffffffff161590565b60405190151581526020015b60405180910390f35b6100ce6100cb36600461020b565b90565b60405167ffffffffffffffff90911681526020016100b4565b6101066100f536600461020b565b60081b68ffffffffffffffff001690565b60405160ff1990911681526020016100b4565b6100ce6100cb36600461023c565b6100a861013536600461020b565b67ffffffffffffffff16151590565b60006100ce565b61015e61015936600461020b565b61016c565b6040519081526020016100b4565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$
|
134
|
+
"bytecode": "0x6102a461003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100875760003560e01c806368aebf7b1161006557806368aebf7b14610119578063a42e52e914610127578063bc1b392d14610144578063f37f38f01461014b57600080fd5b8063057182b41461008c578063545ce21c146100bd57806367cb8ec1146100e7575b600080fd5b6100a861009a36600461020b565b67ffffffffffffffff161590565b60405190151581526020015b60405180910390f35b6100ce6100cb36600461020b565b90565b60405167ffffffffffffffff90911681526020016100b4565b6101066100f536600461020b565b60081b68ffffffffffffffff001690565b60405160ff1990911681526020016100b4565b6100ce6100cb36600461023c565b6100a861013536600461020b565b67ffffffffffffffff16151590565b60006100ce565b61015e61015936600461020b565b61016c565b6040519081526020016100b4565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$__63f48016ce6014600885901b68ffffffffffffffff00166040516001600160e01b031960e085901b16815260ff909216600483015260ff19166024820152604401602060405180830381865af41580156101e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102059190610255565b92915050565b60006020828403121561021d57600080fd5b813567ffffffffffffffff8116811461023557600080fd5b9392505050565b60006020828403121561024e57600080fd5b5035919050565b60006020828403121561026757600080fd5b505191905056fea2646970667358221220c2d0d8fb79f0159b98912e9216ffb6ba8a88f6c92828e6343131e731c143b46b64736f6c63430008140033",
|
135
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100875760003560e01c806368aebf7b1161006557806368aebf7b14610119578063a42e52e914610127578063bc1b392d14610144578063f37f38f01461014b57600080fd5b8063057182b41461008c578063545ce21c146100bd57806367cb8ec1146100e7575b600080fd5b6100a861009a36600461020b565b67ffffffffffffffff161590565b60405190151581526020015b60405180910390f35b6100ce6100cb36600461020b565b90565b60405167ffffffffffffffff90911681526020016100b4565b6101066100f536600461020b565b60081b68ffffffffffffffff001690565b60405160ff1990911681526020016100b4565b6100ce6100cb36600461023c565b6100a861013536600461020b565b67ffffffffffffffff16151590565b60006100ce565b61015e61015936600461020b565b61016c565b6040519081526020016100b4565b600073__$c8f743efd2b4f0c9300f2558c784479d3e$__63f48016ce6014600885901b68ffffffffffffffff00166040516001600160e01b031960e085901b16815260ff909216600483015260ff19166024820152604401602060405180830381865af41580156101e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102059190610255565b92915050565b60006020828403121561021d57600080fd5b813567ffffffffffffffff8116811461023557600080fd5b9392505050565b60006020828403121561024e57600080fd5b5035919050565b60006020828403121561026757600080fd5b505191905056fea2646970667358221220c2d0d8fb79f0159b98912e9216ffb6ba8a88f6c92828e6343131e731c143b46b64736f6c63430008140033",
|
136
136
|
"linkReferences": {
|
137
137
|
"contracts/types/Key32.sol": {
|
138
138
|
"Key32Lib": [
|
@@ -0,0 +1,177 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
5
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
|
+
|
7
|
+
import {IComponent} from "./IComponent.sol";
|
8
|
+
import {IProductService} from "../instance/service/IProductService.sol";
|
9
|
+
import {IInstanceService} from "../instance/IInstanceService.sol";
|
10
|
+
import {IInstance} from "../instance/IInstance.sol";
|
11
|
+
import {InstanceAccessManager} from "../instance/InstanceAccessManager.sol";
|
12
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
13
|
+
import {NftId, zeroNftId, NftIdLib} from "../types/NftId.sol";
|
14
|
+
import {ObjectType, INSTANCE, PRODUCT} from "../types/ObjectType.sol";
|
15
|
+
import {VersionLib} from "../types/Version.sol";
|
16
|
+
import {Registerable} from "../shared/Registerable.sol";
|
17
|
+
import {RoleId, RoleIdLib} from "../types/RoleId.sol";
|
18
|
+
import {IAccess} from "../instance/module/IAccess.sol";
|
19
|
+
|
20
|
+
// TODO discuss to inherit from oz accessmanaged
|
21
|
+
// TODO make contract upgradeable, then add ComponentUpradeable that also intherits from Versionable
|
22
|
+
// same pattern as for Service which is also upgradeable
|
23
|
+
abstract contract Component is
|
24
|
+
Registerable,
|
25
|
+
IComponent
|
26
|
+
{
|
27
|
+
IInstanceService internal _instanceService;
|
28
|
+
IProductService internal _productService;
|
29
|
+
|
30
|
+
IInstance internal _instance;
|
31
|
+
IERC20Metadata internal _token;
|
32
|
+
address internal _wallet;
|
33
|
+
NftId internal _productNftId;
|
34
|
+
|
35
|
+
modifier onlyProductService() {
|
36
|
+
if(msg.sender != address(_productService)) {
|
37
|
+
revert ErrorComponentNotProductService(msg.sender);
|
38
|
+
}
|
39
|
+
_;
|
40
|
+
}
|
41
|
+
|
42
|
+
// TODO discuss replacement with modifier restricted from accessmanaged
|
43
|
+
modifier onlyInstanceRole(uint64 roleIdNum) {
|
44
|
+
RoleId roleId = RoleIdLib.toRoleId(roleIdNum);
|
45
|
+
InstanceAccessManager accessManager = InstanceAccessManager(_instance.authority());
|
46
|
+
if( !accessManager.hasRole(roleId, msg.sender)) {
|
47
|
+
revert ErrorComponentUnauthorized(msg.sender, roleIdNum);
|
48
|
+
}
|
49
|
+
_;
|
50
|
+
}
|
51
|
+
|
52
|
+
// TODO discuss replacement with modifier restricted from accessmanaged
|
53
|
+
modifier isNotLocked() {
|
54
|
+
InstanceAccessManager accessManager = InstanceAccessManager(_instance.authority());
|
55
|
+
if (accessManager.isTargetLocked(address(this))) {
|
56
|
+
revert IAccess.ErrorIAccessTargetLocked(address(this));
|
57
|
+
}
|
58
|
+
_;
|
59
|
+
}
|
60
|
+
|
61
|
+
constructor(
|
62
|
+
address registry,
|
63
|
+
NftId instanceNftId,
|
64
|
+
address token,
|
65
|
+
ObjectType componentType,
|
66
|
+
bool isInterceptor,
|
67
|
+
address initialOwner
|
68
|
+
)
|
69
|
+
{
|
70
|
+
bytes memory data = "";
|
71
|
+
_initializeRegisterable(registry, instanceNftId, componentType, isInterceptor, initialOwner, data);
|
72
|
+
|
73
|
+
IRegistry.ObjectInfo memory instanceInfo = _registry.getObjectInfo(instanceNftId);
|
74
|
+
_instance = IInstance(instanceInfo.objectAddress);
|
75
|
+
require(
|
76
|
+
_instance.supportsInterface(type(IInstance).interfaceId),
|
77
|
+
""
|
78
|
+
);
|
79
|
+
|
80
|
+
_instanceService = IInstanceService(_registry.getServiceAddress(INSTANCE(), VersionLib.toVersion(3, 0, 0).toMajorPart()));
|
81
|
+
_productService = IProductService(_registry.getServiceAddress(PRODUCT(), VersionLib.toVersion(3, 0, 0).toMajorPart()));
|
82
|
+
_wallet = address(this);
|
83
|
+
_token = IERC20Metadata(token);
|
84
|
+
|
85
|
+
_registerInterface(type(IComponent).interfaceId);
|
86
|
+
}
|
87
|
+
|
88
|
+
// TODO discuss replacement with modifier restricted from accessmanaged
|
89
|
+
function lock() external onlyOwner override {
|
90
|
+
_instanceService.setTargetLocked(getName(), true);
|
91
|
+
}
|
92
|
+
|
93
|
+
// TODO discuss replacement with modifier restricted from accessmanaged
|
94
|
+
function unlock() external onlyOwner override {
|
95
|
+
_instanceService.setTargetLocked(getName(), false);
|
96
|
+
}
|
97
|
+
|
98
|
+
// TODO discuss to split this base contract into a minimal component base (eg oracle)
|
99
|
+
// and a component base that is linked to a product component (all others in v3)
|
100
|
+
function setProductNftId(NftId productNftId)
|
101
|
+
external
|
102
|
+
override
|
103
|
+
onlyProductService()
|
104
|
+
{
|
105
|
+
if(_productNftId.gtz()) {
|
106
|
+
revert ErrorComponentProductNftAlreadySet();
|
107
|
+
}
|
108
|
+
|
109
|
+
_productNftId = productNftId;
|
110
|
+
}
|
111
|
+
|
112
|
+
/// @dev Sets the wallet address for the component.
|
113
|
+
/// if the current wallet has tokens, these will be transferred.
|
114
|
+
/// if the new wallet address is externally owned, an approval from the
|
115
|
+
/// owner of the external wallet for the component to move all tokens must exist.
|
116
|
+
function setWallet(address newWallet) external override onlyOwner {
|
117
|
+
address currentWallet = _wallet;
|
118
|
+
uint256 currentBalance = _token.balanceOf(currentWallet);
|
119
|
+
|
120
|
+
// checks
|
121
|
+
if (newWallet == currentWallet) {
|
122
|
+
revert ErrorComponentWalletAddressIsSameAsCurrent(newWallet);
|
123
|
+
}
|
124
|
+
|
125
|
+
if (currentBalance > 0) {
|
126
|
+
if (currentWallet == address(this)) {
|
127
|
+
// move tokens from component smart contract to external wallet
|
128
|
+
} else {
|
129
|
+
// move tokens from external wallet to component smart contract or another external wallet
|
130
|
+
uint256 allowance = _token.allowance(currentWallet, address(this));
|
131
|
+
if (allowance < currentBalance) {
|
132
|
+
revert ErrorComponentWalletAllowanceTooSmall(currentWallet, newWallet, allowance, currentBalance);
|
133
|
+
}
|
134
|
+
}
|
135
|
+
}
|
136
|
+
|
137
|
+
// effects
|
138
|
+
_wallet = newWallet;
|
139
|
+
emit LogComponentWalletAddressChanged(newWallet);
|
140
|
+
|
141
|
+
// interactions
|
142
|
+
if (currentBalance > 0) {
|
143
|
+
// transfer tokens from current wallet to new wallet
|
144
|
+
if (currentWallet == address(this)) {
|
145
|
+
// transferFrom requires self allowance too
|
146
|
+
_token.approve(address(this), currentBalance);
|
147
|
+
}
|
148
|
+
|
149
|
+
SafeERC20.safeTransferFrom(_token, currentWallet, newWallet, currentBalance);
|
150
|
+
emit LogComponentWalletTokensTransferred(currentWallet, newWallet, currentBalance);
|
151
|
+
}
|
152
|
+
}
|
153
|
+
|
154
|
+
// TODO set name via constructor or initialization, pure function likely too restrictive
|
155
|
+
function getName() public pure virtual returns (string memory name);
|
156
|
+
|
157
|
+
function getWallet()
|
158
|
+
external
|
159
|
+
view
|
160
|
+
override
|
161
|
+
returns (address walletAddress)
|
162
|
+
{
|
163
|
+
return _wallet;
|
164
|
+
}
|
165
|
+
|
166
|
+
function getToken() public view override returns (IERC20Metadata token) {
|
167
|
+
return _token;
|
168
|
+
}
|
169
|
+
|
170
|
+
function getInstance() public view override returns (IInstance instance) {
|
171
|
+
return _instance;
|
172
|
+
}
|
173
|
+
|
174
|
+
function getProductNftId() public view override returns (NftId productNftId) {
|
175
|
+
return _productNftId;
|
176
|
+
}
|
177
|
+
}
|
@@ -7,7 +7,7 @@ import {IProductService} from "../instance/service/IProductService.sol";
|
|
7
7
|
import {NftId, zeroNftId, NftIdLib} from "../types/NftId.sol";
|
8
8
|
import {ReferralId} from "../types/Referral.sol";
|
9
9
|
import {Fee, FeeLib} from "../types/Fee.sol";
|
10
|
-
import {
|
10
|
+
import {Component} from "./Component.sol";
|
11
11
|
import {IDistributionComponent} from "./IDistributionComponent.sol";
|
12
12
|
import {IRegistry} from "../registry/IRegistry.sol";
|
13
13
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
@@ -16,8 +16,8 @@ import {Registerable} from "../shared/Registerable.sol";
|
|
16
16
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
17
17
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
18
18
|
|
19
|
-
contract Distribution is
|
20
|
-
|
19
|
+
abstract contract Distribution is
|
20
|
+
Component,
|
21
21
|
IDistributionComponent
|
22
22
|
{
|
23
23
|
using NftIdLib for NftId;
|
@@ -28,14 +28,6 @@ contract Distribution is
|
|
28
28
|
TokenHandler internal _tokenHandler;
|
29
29
|
|
30
30
|
IDistributionService private _distributionService;
|
31
|
-
IProductService private _productService;
|
32
|
-
|
33
|
-
modifier onlyProductService() {
|
34
|
-
require(
|
35
|
-
msg.sender == address(_productService),
|
36
|
-
"ERROR:POL-002:NOT_PRODUCT_SERVICE");
|
37
|
-
_;
|
38
|
-
}
|
39
31
|
|
40
32
|
constructor(
|
41
33
|
address registry,
|
@@ -46,15 +38,13 @@ contract Distribution is
|
|
46
38
|
Fee memory distributionFee,
|
47
39
|
address initialOwner
|
48
40
|
)
|
49
|
-
|
41
|
+
Component(registry, instanceNftId, token, DISTRIBUTION(), true, initialOwner)
|
50
42
|
{
|
51
43
|
_isVerifying = verifying;
|
52
44
|
_initialDistributionFee = distributionFee;
|
53
45
|
|
54
46
|
_tokenHandler = TokenHandler(token);
|
55
|
-
|
56
47
|
_distributionService = _instance.getDistributionService();
|
57
|
-
_productService = _instance.getProductService();
|
58
48
|
|
59
49
|
_registerInterface(type(IDistributionComponent).interfaceId);
|
60
50
|
}
|
@@ -150,6 +140,7 @@ contract Distribution is
|
|
150
140
|
return (
|
151
141
|
info,
|
152
142
|
abi.encode(
|
143
|
+
getName(),
|
153
144
|
ISetup.DistributionSetupInfo(
|
154
145
|
_productNftId,
|
155
146
|
_tokenHandler,
|
@@ -7,15 +7,21 @@ import {IRegisterable} from "../shared/IRegisterable.sol";
|
|
7
7
|
import {IInstance} from "../instance/IInstance.sol";
|
8
8
|
import {NftId} from "../types/NftId.sol";
|
9
9
|
|
10
|
-
interface
|
11
|
-
error ErrorBaseComponentWalletAddressIsSameAsCurrent(address newWallet);
|
12
|
-
error ErrorBaseComponentWalletAllowanceTooSmall(address oldWallet, address newWallet, uint256 allowance, uint256 balance);
|
10
|
+
interface IComponent is IRegisterable {
|
13
11
|
|
14
|
-
|
15
|
-
|
12
|
+
error ErrorComponentProductNftAlreadySet();
|
13
|
+
error ErrorComponentWalletAddressIsSameAsCurrent(address newWallet);
|
14
|
+
error ErrorComponentWalletAllowanceTooSmall(address oldWallet, address newWallet, uint256 allowance, uint256 balance);
|
15
|
+
error ErrorComponentUnauthorized(address caller, uint64 requiredRoleIdNum);
|
16
|
+
error ErrorComponentNotProductService(address caller);
|
16
17
|
|
17
|
-
|
18
|
+
event LogComponentWalletAddressChanged(address newWallet);
|
19
|
+
event LogComponentWalletTokensTransferred(address from, address to, uint256 amount);
|
20
|
+
|
21
|
+
function getName() external pure returns (string memory name);
|
18
22
|
|
23
|
+
// TODO remove and replace with accessmanaged target locking mechanism
|
24
|
+
function lock() external;
|
19
25
|
function unlock() external;
|
20
26
|
|
21
27
|
function getToken() external view returns (IERC20Metadata token);
|
@@ -18,8 +18,8 @@ interface IProductComponent {
|
|
18
18
|
RiskId riskId,
|
19
19
|
uint256 lifetime,
|
20
20
|
bytes memory applicationData,
|
21
|
-
|
22
|
-
|
21
|
+
NftId bundleNftId,
|
22
|
+
ReferralId referralId
|
23
23
|
) external view returns (uint256 premiumAmount);
|
24
24
|
|
25
25
|
function calculateNetPremium(
|