@etherisc/gif-next 0.0.2-f4f92b3-338 → 0.0.2-f509abc-684
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 +73 -1
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/components/Component.sol/Component.json +270 -94
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +627 -157
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +122 -72
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +323 -102
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +325 -186
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +126 -144
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +552 -212
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +374 -166
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +64 -50
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +5 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +801 -434
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +194 -192
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +992 -782
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +441 -164
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +119 -221
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +371 -302
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +330 -102
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +8 -13
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +118 -169
- 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/KeyValueStore.sol/KeyValueStore.json +40 -10
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +36 -11
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +61 -78
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
- 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/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +968 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +665 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +306 -315
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +305 -93
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +754 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +637 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1212 -252
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +453 -85
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +556 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +155 -240
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +409 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +711 -139
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +60 -286
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +81 -147
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +22 -169
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +185 -391
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +311 -127
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +222 -204
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +310 -90
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +142 -221
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +302 -90
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +34 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +83 -174
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +47 -15
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +2 -2
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +193 -216
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +300 -94
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +11 -11
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +141 -37
- 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/ERC165.sol/ERC165.json +41 -3
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +40 -29
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +129 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +21 -29
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IB.sol/IB.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +18 -20
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +22 -169
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +113 -33
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +248 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +294 -74
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +125 -55
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +84 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +113 -164
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +125 -55
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +6 -6
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +134 -221
- 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/TestVersion.sol/TestVersion.json +2 -2
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +8 -190
- 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/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +100 -0
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +2 -2
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +17 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
- 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/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +100 -0
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +23 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
- 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/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -0
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +25 -7
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +2 -2
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +2 -2
- package/contracts/components/Component.sol +112 -83
- package/contracts/components/Distribution.sol +189 -53
- package/contracts/components/IComponent.sol +48 -17
- package/contracts/components/IDistributionComponent.sol +39 -15
- package/contracts/components/IPoolComponent.sol +84 -41
- package/contracts/components/IProductComponent.sol +3 -2
- package/contracts/components/Pool.sol +211 -153
- package/contracts/components/Product.sol +96 -61
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/instance/BundleManager.sol +7 -5
- package/contracts/instance/Cloneable.sol +7 -2
- package/contracts/instance/IInstance.sol +36 -10
- package/contracts/instance/IInstanceService.sol +36 -4
- package/contracts/instance/Instance.sol +101 -43
- package/contracts/instance/InstanceAccessManager.sol +383 -159
- package/contracts/instance/InstanceReader.sol +7 -10
- package/contracts/instance/InstanceService.sol +262 -129
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/ObjectManager.sol +6 -8
- package/contracts/instance/base/ComponentService.sol +6 -6
- package/contracts/instance/base/KeyValueStore.sol +5 -2
- package/contracts/instance/base/Lifecycle.sol +11 -2
- package/contracts/instance/module/IAccess.sol +22 -16
- package/contracts/instance/module/IBundle.sol +2 -1
- package/contracts/instance/module/IComponents.sol +35 -0
- package/contracts/instance/module/IDistribution.sol +2 -0
- package/contracts/instance/module/IPolicy.sol +30 -3
- package/contracts/instance/module/ISetup.sol +7 -20
- package/contracts/instance/service/ApplicationService.sol +350 -0
- package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
- package/contracts/instance/service/BundleService.sol +82 -39
- package/contracts/instance/service/BundleServiceManager.sol +1 -1
- package/contracts/instance/service/ClaimService.sol +151 -0
- package/contracts/instance/service/ClaimServiceManager.sol +35 -0
- package/contracts/instance/service/DistributionService.sol +376 -15
- package/contracts/instance/service/DistributionServiceManager.sol +1 -1
- package/contracts/instance/service/IApplicationService.sol +82 -0
- package/contracts/instance/service/IBundleService.sol +30 -12
- package/contracts/instance/service/IClaimService.sol +61 -0
- package/contracts/instance/service/IDistributionService.sol +86 -0
- package/contracts/instance/service/IPolicyService.sol +27 -49
- package/contracts/instance/service/IPoolService.sol +17 -2
- package/contracts/instance/service/PolicyService.sol +148 -283
- package/contracts/instance/service/PolicyServiceManager.sol +2 -2
- package/contracts/instance/service/PoolService.sol +130 -19
- package/contracts/instance/service/PoolServiceManager.sol +1 -1
- package/contracts/instance/service/ProductService.sol +20 -11
- package/contracts/instance/service/ProductServiceManager.sol +2 -2
- package/contracts/registry/ChainNft.sol +8 -0
- package/contracts/registry/IRegistry.sol +5 -2
- package/contracts/registry/IRegistryService.sol +10 -8
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +43 -28
- package/contracts/registry/RegistryService.sol +69 -48
- package/contracts/registry/RegistryServiceManager.sol +13 -13
- package/contracts/registry/ReleaseManager.sol +18 -28
- package/contracts/registry/TokenRegistry.sol +16 -12
- package/contracts/shared/ERC165.sol +14 -12
- package/contracts/shared/INftOwnable.sol +11 -10
- package/contracts/shared/IPolicyHolder.sol +26 -0
- package/contracts/shared/IRegisterable.sol +3 -3
- package/contracts/shared/IRegistryLinked.sol +12 -0
- package/contracts/shared/IService.sol +2 -0
- package/contracts/shared/IVersionable.sol +4 -47
- package/contracts/shared/NftOwnable.sol +66 -85
- package/contracts/shared/PolicyHolder.sol +81 -0
- package/contracts/shared/ProxyManager.sol +100 -25
- package/contracts/shared/Registerable.sol +7 -19
- package/contracts/shared/RegistryLinked.sol +48 -0
- package/contracts/shared/Service.sol +15 -17
- package/contracts/shared/TokenHandler.sol +11 -5
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/test/TestRegisterable.sol +1 -1
- package/contracts/test/TestService.sol +1 -1
- package/contracts/types/Blocknumber.sol +1 -0
- package/contracts/types/ClaimId.sol +52 -0
- package/contracts/types/DistributorType.sol +2 -2
- package/contracts/types/Fee.sol +1 -0
- package/contracts/types/NftId.sol +8 -0
- package/contracts/types/ObjectType.sol +10 -5
- package/contracts/types/PayoutId.sol +54 -0
- package/contracts/types/Referral.sol +4 -0
- package/contracts/types/RoleId.sol +16 -9
- package/contracts/types/Seconds.sol +54 -0
- package/contracts/types/StateId.sol +1 -0
- package/contracts/types/Timestamp.sol +13 -13
- package/contracts/types/UFixed.sol +1 -0
- package/contracts/types/Version.sol +1 -0
- package/package.json +3 -3
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
| @@ -28,81 +28,60 @@ | |
| 28 28 | 
             
                  "inputs": [
         | 
| 29 29 | 
             
                    {
         | 
| 30 30 | 
             
                      "internalType": "address",
         | 
| 31 | 
            -
                      "name": " | 
| 31 | 
            +
                      "name": "caller",
         | 
| 32 32 | 
             
                      "type": "address"
         | 
| 33 | 
            -
                    },
         | 
| 34 | 
            -
                    {
         | 
| 35 | 
            -
                      "internalType": "NftId",
         | 
| 36 | 
            -
                      "name": "nftId",
         | 
| 37 | 
            -
                      "type": "uint96"
         | 
| 38 33 | 
             
                    }
         | 
| 39 34 | 
             
                  ],
         | 
| 40 | 
            -
                  "name": " | 
| 35 | 
            +
                  "name": "ErrorIServiceCallerUnknown",
         | 
| 41 36 | 
             
                  "type": "error"
         | 
| 42 37 | 
             
                },
         | 
| 43 38 | 
             
                {
         | 
| 44 39 | 
             
                  "inputs": [
         | 
| 45 40 | 
             
                    {
         | 
| 46 | 
            -
                      "internalType": " | 
| 47 | 
            -
                      "name": " | 
| 48 | 
            -
                      "type": " | 
| 41 | 
            +
                      "internalType": "NftId",
         | 
| 42 | 
            +
                      "name": "nftId",
         | 
| 43 | 
            +
                      "type": "uint96"
         | 
| 49 44 | 
             
                    }
         | 
| 50 45 | 
             
                  ],
         | 
| 51 | 
            -
                  "name": " | 
| 46 | 
            +
                  "name": "ErrorNftOwnableAlreadyLinked",
         | 
| 52 47 | 
             
                  "type": "error"
         | 
| 53 48 | 
             
                },
         | 
| 54 49 | 
             
                {
         | 
| 55 50 | 
             
                  "inputs": [
         | 
| 56 51 | 
             
                    {
         | 
| 57 52 | 
             
                      "internalType": "address",
         | 
| 58 | 
            -
                      "name": " | 
| 53 | 
            +
                      "name": "contractAddress",
         | 
| 59 54 | 
             
                      "type": "address"
         | 
| 60 55 | 
             
                    }
         | 
| 61 56 | 
             
                  ],
         | 
| 62 | 
            -
                  "name": " | 
| 57 | 
            +
                  "name": "ErrorNftOwnableContractNotRegistered",
         | 
| 63 58 | 
             
                  "type": "error"
         | 
| 64 59 | 
             
                },
         | 
| 65 60 | 
             
                {
         | 
| 66 | 
            -
                  "inputs": [
         | 
| 67 | 
            -
             | 
| 68 | 
            -
                      "internalType": "address",
         | 
| 69 | 
            -
                      "name": "registryAddress",
         | 
| 70 | 
            -
                      "type": "address"
         | 
| 71 | 
            -
                    }
         | 
| 72 | 
            -
                  ],
         | 
| 73 | 
            -
                  "name": "ErrorNotRegistry",
         | 
| 61 | 
            +
                  "inputs": [],
         | 
| 62 | 
            +
                  "name": "ErrorNftOwnableInitialOwnerZero",
         | 
| 74 63 | 
             
                  "type": "error"
         | 
| 75 64 | 
             
                },
         | 
| 76 65 | 
             
                {
         | 
| 77 66 | 
             
                  "inputs": [
         | 
| 78 67 | 
             
                    {
         | 
| 79 68 | 
             
                      "internalType": "address",
         | 
| 80 | 
            -
                      "name": " | 
| 69 | 
            +
                      "name": "account",
         | 
| 81 70 | 
             
                      "type": "address"
         | 
| 82 71 | 
             
                    }
         | 
| 83 72 | 
             
                  ],
         | 
| 84 | 
            -
                  "name": " | 
| 85 | 
            -
                  "type": "error"
         | 
| 86 | 
            -
                },
         | 
| 87 | 
            -
                {
         | 
| 88 | 
            -
                  "inputs": [],
         | 
| 89 | 
            -
                  "name": "ErrorRegistryAddressZero",
         | 
| 73 | 
            +
                  "name": "ErrorNftOwnableNotOwner",
         | 
| 90 74 | 
             
                  "type": "error"
         | 
| 91 75 | 
             
                },
         | 
| 92 76 | 
             
                {
         | 
| 93 77 | 
             
                  "inputs": [
         | 
| 94 78 | 
             
                    {
         | 
| 95 79 | 
             
                      "internalType": "address",
         | 
| 96 | 
            -
                      "name": " | 
| 80 | 
            +
                      "name": "registryAddress",
         | 
| 97 81 | 
             
                      "type": "address"
         | 
| 98 82 | 
             
                    }
         | 
| 99 83 | 
             
                  ],
         | 
| 100 | 
            -
                  "name": " | 
| 101 | 
            -
                  "type": "error"
         | 
| 102 | 
            -
                },
         | 
| 103 | 
            -
                {
         | 
| 104 | 
            -
                  "inputs": [],
         | 
| 105 | 
            -
                  "name": "ErrorRegistryNotInitialized",
         | 
| 84 | 
            +
                  "name": "ErrorNotRegistry",
         | 
| 106 85 | 
             
                  "type": "error"
         | 
| 107 86 | 
             
                },
         | 
| 108 87 | 
             
                {
         | 
| @@ -129,38 +108,26 @@ | |
| 129 108 | 
             
                  "type": "event"
         | 
| 130 109 | 
             
                },
         | 
| 131 110 | 
             
                {
         | 
| 132 | 
            -
                  " | 
| 133 | 
            -
                  " | 
| 134 | 
            -
             | 
| 135 | 
            -
                      "indexed": false,
         | 
| 136 | 
            -
                      "internalType": "Version",
         | 
| 137 | 
            -
                      "name": "version",
         | 
| 138 | 
            -
                      "type": "uint24"
         | 
| 139 | 
            -
                    },
         | 
| 140 | 
            -
                    {
         | 
| 141 | 
            -
                      "indexed": false,
         | 
| 142 | 
            -
                      "internalType": "address",
         | 
| 143 | 
            -
                      "name": "implementation",
         | 
| 144 | 
            -
                      "type": "address"
         | 
| 145 | 
            -
                    },
         | 
| 111 | 
            +
                  "inputs": [],
         | 
| 112 | 
            +
                  "name": "NAME",
         | 
| 113 | 
            +
                  "outputs": [
         | 
| 146 114 | 
             
                    {
         | 
| 147 | 
            -
                      " | 
| 148 | 
            -
                      " | 
| 149 | 
            -
                      " | 
| 150 | 
            -
                      "type": "address"
         | 
| 115 | 
            +
                      "internalType": "string",
         | 
| 116 | 
            +
                      "name": "",
         | 
| 117 | 
            +
                      "type": "string"
         | 
| 151 118 | 
             
                    }
         | 
| 152 119 | 
             
                  ],
         | 
| 153 | 
            -
                  " | 
| 154 | 
            -
                  "type": " | 
| 120 | 
            +
                  "stateMutability": "view",
         | 
| 121 | 
            +
                  "type": "function"
         | 
| 155 122 | 
             
                },
         | 
| 156 123 | 
             
                {
         | 
| 157 124 | 
             
                  "inputs": [],
         | 
| 158 | 
            -
                  "name": " | 
| 125 | 
            +
                  "name": "NFT_OWNABLE_STORAGE_LOCATION_V1",
         | 
| 159 126 | 
             
                  "outputs": [
         | 
| 160 127 | 
             
                    {
         | 
| 161 | 
            -
                      "internalType": " | 
| 128 | 
            +
                      "internalType": "bytes32",
         | 
| 162 129 | 
             
                      "name": "",
         | 
| 163 | 
            -
                      "type": " | 
| 130 | 
            +
                      "type": "bytes32"
         | 
| 164 131 | 
             
                    }
         | 
| 165 132 | 
             
                  ],
         | 
| 166 133 | 
             
                  "stateMutability": "view",
         | 
| @@ -242,32 +209,6 @@ | |
| 242 209 | 
             
                  "stateMutability": "view",
         | 
| 243 210 | 
             
                  "type": "function"
         | 
| 244 211 | 
             
                },
         | 
| 245 | 
            -
                {
         | 
| 246 | 
            -
                  "inputs": [],
         | 
| 247 | 
            -
                  "name": "getInitialOwner",
         | 
| 248 | 
            -
                  "outputs": [
         | 
| 249 | 
            -
                    {
         | 
| 250 | 
            -
                      "internalType": "address",
         | 
| 251 | 
            -
                      "name": "",
         | 
| 252 | 
            -
                      "type": "address"
         | 
| 253 | 
            -
                    }
         | 
| 254 | 
            -
                  ],
         | 
| 255 | 
            -
                  "stateMutability": "view",
         | 
| 256 | 
            -
                  "type": "function"
         | 
| 257 | 
            -
                },
         | 
| 258 | 
            -
                {
         | 
| 259 | 
            -
                  "inputs": [],
         | 
| 260 | 
            -
                  "name": "getInitializedVersion",
         | 
| 261 | 
            -
                  "outputs": [
         | 
| 262 | 
            -
                    {
         | 
| 263 | 
            -
                      "internalType": "uint64",
         | 
| 264 | 
            -
                      "name": "",
         | 
| 265 | 
            -
                      "type": "uint64"
         | 
| 266 | 
            -
                    }
         | 
| 267 | 
            -
                  ],
         | 
| 268 | 
            -
                  "stateMutability": "view",
         | 
| 269 | 
            -
                  "type": "function"
         | 
| 270 | 
            -
                },
         | 
| 271 212 | 
             
                {
         | 
| 272 213 | 
             
                  "inputs": [],
         | 
| 273 214 | 
             
                  "name": "getMajorVersion",
         | 
| @@ -322,25 +263,19 @@ | |
| 322 263 | 
             
                },
         | 
| 323 264 | 
             
                {
         | 
| 324 265 | 
             
                  "inputs": [],
         | 
| 325 | 
            -
                  "name": " | 
| 266 | 
            +
                  "name": "getRegistryAddress",
         | 
| 326 267 | 
             
                  "outputs": [
         | 
| 327 268 | 
             
                    {
         | 
| 328 | 
            -
                      "internalType": " | 
| 269 | 
            +
                      "internalType": "address",
         | 
| 329 270 | 
             
                      "name": "",
         | 
| 330 | 
            -
                      "type": " | 
| 271 | 
            +
                      "type": "address"
         | 
| 331 272 | 
             
                    }
         | 
| 332 273 | 
             
                  ],
         | 
| 333 | 
            -
                  "stateMutability": " | 
| 274 | 
            +
                  "stateMutability": "view",
         | 
| 334 275 | 
             
                  "type": "function"
         | 
| 335 276 | 
             
                },
         | 
| 336 277 | 
             
                {
         | 
| 337 | 
            -
                  "inputs": [
         | 
| 338 | 
            -
                    {
         | 
| 339 | 
            -
                      "internalType": "uint256",
         | 
| 340 | 
            -
                      "name": "idx",
         | 
| 341 | 
            -
                      "type": "uint256"
         | 
| 342 | 
            -
                    }
         | 
| 343 | 
            -
                  ],
         | 
| 278 | 
            +
                  "inputs": [],
         | 
| 344 279 | 
             
                  "name": "getVersion",
         | 
| 345 280 | 
             
                  "outputs": [
         | 
| 346 281 | 
             
                    {
         | 
| @@ -349,87 +284,68 @@ | |
| 349 284 | 
             
                      "type": "uint24"
         | 
| 350 285 | 
             
                    }
         | 
| 351 286 | 
             
                  ],
         | 
| 352 | 
            -
                  "stateMutability": " | 
| 287 | 
            +
                  "stateMutability": "pure",
         | 
| 353 288 | 
             
                  "type": "function"
         | 
| 354 289 | 
             
                },
         | 
| 355 290 | 
             
                {
         | 
| 356 291 | 
             
                  "inputs": [],
         | 
| 357 | 
            -
                  "name": " | 
| 358 | 
            -
                  "outputs": [
         | 
| 359 | 
            -
             | 
| 360 | 
            -
                      "internalType": "uint256",
         | 
| 361 | 
            -
                      "name": "",
         | 
| 362 | 
            -
                      "type": "uint256"
         | 
| 363 | 
            -
                    }
         | 
| 364 | 
            -
                  ],
         | 
| 365 | 
            -
                  "stateMutability": "view",
         | 
| 292 | 
            +
                  "name": "initializeERC165",
         | 
| 293 | 
            +
                  "outputs": [],
         | 
| 294 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 366 295 | 
             
                  "type": "function"
         | 
| 367 296 | 
             
                },
         | 
| 368 297 | 
             
                {
         | 
| 369 298 | 
             
                  "inputs": [
         | 
| 370 299 | 
             
                    {
         | 
| 371 | 
            -
                      "internalType": " | 
| 372 | 
            -
                      "name": " | 
| 373 | 
            -
                      "type": " | 
| 374 | 
            -
                    }
         | 
| 375 | 
            -
                  ],
         | 
| 376 | 
            -
                  "name": "getVersionInfo",
         | 
| 377 | 
            -
                  "outputs": [
         | 
| 300 | 
            +
                      "internalType": "address",
         | 
| 301 | 
            +
                      "name": "initialOwner",
         | 
| 302 | 
            +
                      "type": "address"
         | 
| 303 | 
            +
                    },
         | 
| 378 304 | 
             
                    {
         | 
| 379 | 
            -
                      " | 
| 380 | 
            -
             | 
| 381 | 
            -
             | 
| 382 | 
            -
                          "name": "version",
         | 
| 383 | 
            -
                          "type": "uint24"
         | 
| 384 | 
            -
                        },
         | 
| 385 | 
            -
                        {
         | 
| 386 | 
            -
                          "internalType": "address",
         | 
| 387 | 
            -
                          "name": "implementation",
         | 
| 388 | 
            -
                          "type": "address"
         | 
| 389 | 
            -
                        },
         | 
| 390 | 
            -
                        {
         | 
| 391 | 
            -
                          "internalType": "address",
         | 
| 392 | 
            -
                          "name": "activatedBy",
         | 
| 393 | 
            -
                          "type": "address"
         | 
| 394 | 
            -
                        },
         | 
| 395 | 
            -
                        {
         | 
| 396 | 
            -
                          "internalType": "Timestamp",
         | 
| 397 | 
            -
                          "name": "activatedAt",
         | 
| 398 | 
            -
                          "type": "uint40"
         | 
| 399 | 
            -
                        },
         | 
| 400 | 
            -
                        {
         | 
| 401 | 
            -
                          "internalType": "Blocknumber",
         | 
| 402 | 
            -
                          "name": "activatedIn",
         | 
| 403 | 
            -
                          "type": "uint32"
         | 
| 404 | 
            -
                        }
         | 
| 405 | 
            -
                      ],
         | 
| 406 | 
            -
                      "internalType": "struct IVersionable.VersionInfo",
         | 
| 407 | 
            -
                      "name": "",
         | 
| 408 | 
            -
                      "type": "tuple"
         | 
| 305 | 
            +
                      "internalType": "address",
         | 
| 306 | 
            +
                      "name": "registryAddress",
         | 
| 307 | 
            +
                      "type": "address"
         | 
| 409 308 | 
             
                    }
         | 
| 410 309 | 
             
                  ],
         | 
| 411 | 
            -
                  " | 
| 310 | 
            +
                  "name": "initializeNftOwnable",
         | 
| 311 | 
            +
                  "outputs": [],
         | 
| 312 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 412 313 | 
             
                  "type": "function"
         | 
| 413 314 | 
             
                },
         | 
| 414 315 | 
             
                {
         | 
| 415 316 | 
             
                  "inputs": [
         | 
| 416 317 | 
             
                    {
         | 
| 417 318 | 
             
                      "internalType": "address",
         | 
| 418 | 
            -
                      "name": " | 
| 319 | 
            +
                      "name": "registryAddress",
         | 
| 419 320 | 
             
                      "type": "address"
         | 
| 420 321 | 
             
                    },
         | 
| 322 | 
            +
                    {
         | 
| 323 | 
            +
                      "internalType": "NftId",
         | 
| 324 | 
            +
                      "name": "parentNftId",
         | 
| 325 | 
            +
                      "type": "uint96"
         | 
| 326 | 
            +
                    },
         | 
| 327 | 
            +
                    {
         | 
| 328 | 
            +
                      "internalType": "ObjectType",
         | 
| 329 | 
            +
                      "name": "objectType",
         | 
| 330 | 
            +
                      "type": "uint8"
         | 
| 331 | 
            +
                    },
         | 
| 332 | 
            +
                    {
         | 
| 333 | 
            +
                      "internalType": "bool",
         | 
| 334 | 
            +
                      "name": "isInterceptor",
         | 
| 335 | 
            +
                      "type": "bool"
         | 
| 336 | 
            +
                    },
         | 
| 421 337 | 
             
                    {
         | 
| 422 338 | 
             
                      "internalType": "address",
         | 
| 423 | 
            -
                      "name": " | 
| 339 | 
            +
                      "name": "initialOwner",
         | 
| 424 340 | 
             
                      "type": "address"
         | 
| 425 341 | 
             
                    },
         | 
| 426 342 | 
             
                    {
         | 
| 427 343 | 
             
                      "internalType": "bytes",
         | 
| 428 | 
            -
                      "name": " | 
| 344 | 
            +
                      "name": "registryData",
         | 
| 429 345 | 
             
                      "type": "bytes"
         | 
| 430 346 | 
             
                    }
         | 
| 431 347 | 
             
                  ],
         | 
| 432 | 
            -
                  "name": " | 
| 348 | 
            +
                  "name": "initializeRegisterable",
         | 
| 433 349 | 
             
                  "outputs": [],
         | 
| 434 350 | 
             
                  "stateMutability": "nonpayable",
         | 
| 435 351 | 
             
                  "type": "function"
         | 
| @@ -437,20 +353,50 @@ | |
| 437 353 | 
             
                {
         | 
| 438 354 | 
             
                  "inputs": [
         | 
| 439 355 | 
             
                    {
         | 
| 440 | 
            -
                      "internalType": " | 
| 441 | 
            -
                      "name": " | 
| 442 | 
            -
                      "type": " | 
| 356 | 
            +
                      "internalType": "address",
         | 
| 357 | 
            +
                      "name": "registryAddress",
         | 
| 358 | 
            +
                      "type": "address"
         | 
| 443 359 | 
             
                    }
         | 
| 444 360 | 
             
                  ],
         | 
| 445 | 
            -
                  "name": " | 
| 446 | 
            -
                  "outputs": [
         | 
| 361 | 
            +
                  "name": "initializeRegistryLinked",
         | 
| 362 | 
            +
                  "outputs": [],
         | 
| 363 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 364 | 
            +
                  "type": "function"
         | 
| 365 | 
            +
                },
         | 
| 366 | 
            +
                {
         | 
| 367 | 
            +
                  "inputs": [
         | 
| 447 368 | 
             
                    {
         | 
| 448 | 
            -
                      "internalType": " | 
| 449 | 
            -
                      "name": "",
         | 
| 450 | 
            -
                      "type": " | 
| 369 | 
            +
                      "internalType": "address",
         | 
| 370 | 
            +
                      "name": "registry",
         | 
| 371 | 
            +
                      "type": "address"
         | 
| 372 | 
            +
                    },
         | 
| 373 | 
            +
                    {
         | 
| 374 | 
            +
                      "internalType": "address",
         | 
| 375 | 
            +
                      "name": "initialOwner",
         | 
| 376 | 
            +
                      "type": "address"
         | 
| 451 377 | 
             
                    }
         | 
| 452 378 | 
             
                  ],
         | 
| 453 | 
            -
                  " | 
| 379 | 
            +
                  "name": "initializeService",
         | 
| 380 | 
            +
                  "outputs": [],
         | 
| 381 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 382 | 
            +
                  "type": "function"
         | 
| 383 | 
            +
                },
         | 
| 384 | 
            +
                {
         | 
| 385 | 
            +
                  "inputs": [
         | 
| 386 | 
            +
                    {
         | 
| 387 | 
            +
                      "internalType": "address",
         | 
| 388 | 
            +
                      "name": "activatedBy",
         | 
| 389 | 
            +
                      "type": "address"
         | 
| 390 | 
            +
                    },
         | 
| 391 | 
            +
                    {
         | 
| 392 | 
            +
                      "internalType": "bytes",
         | 
| 393 | 
            +
                      "name": "data",
         | 
| 394 | 
            +
                      "type": "bytes"
         | 
| 395 | 
            +
                    }
         | 
| 396 | 
            +
                  ],
         | 
| 397 | 
            +
                  "name": "initializeVersionable",
         | 
| 398 | 
            +
                  "outputs": [],
         | 
| 399 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 454 400 | 
             
                  "type": "function"
         | 
| 455 401 | 
             
                },
         | 
| 456 402 | 
             
                {
         | 
| @@ -460,6 +406,19 @@ | |
| 460 406 | 
             
                  "stateMutability": "nonpayable",
         | 
| 461 407 | 
             
                  "type": "function"
         | 
| 462 408 | 
             
                },
         | 
| 409 | 
            +
                {
         | 
| 410 | 
            +
                  "inputs": [
         | 
| 411 | 
            +
                    {
         | 
| 412 | 
            +
                      "internalType": "bytes4",
         | 
| 413 | 
            +
                      "name": "interfaceId",
         | 
| 414 | 
            +
                      "type": "bytes4"
         | 
| 415 | 
            +
                    }
         | 
| 416 | 
            +
                  ],
         | 
| 417 | 
            +
                  "name": "registerInterface",
         | 
| 418 | 
            +
                  "outputs": [],
         | 
| 419 | 
            +
                  "stateMutability": "nonpayable",
         | 
| 420 | 
            +
                  "type": "function"
         | 
| 421 | 
            +
                },
         | 
| 463 422 | 
             
                {
         | 
| 464 423 | 
             
                  "inputs": [
         | 
| 465 424 | 
             
                    {
         | 
| @@ -481,56 +440,30 @@ | |
| 481 440 | 
             
                },
         | 
| 482 441 | 
             
                {
         | 
| 483 442 | 
             
                  "inputs": [
         | 
| 484 | 
            -
                    {
         | 
| 485 | 
            -
                      "internalType": "address",
         | 
| 486 | 
            -
                      "name": "implementation",
         | 
| 487 | 
            -
                      "type": "address"
         | 
| 488 | 
            -
                    },
         | 
| 489 | 
            -
                    {
         | 
| 490 | 
            -
                      "internalType": "address",
         | 
| 491 | 
            -
                      "name": "activatedBy",
         | 
| 492 | 
            -
                      "type": "address"
         | 
| 493 | 
            -
                    },
         | 
| 494 443 | 
             
                    {
         | 
| 495 444 | 
             
                      "internalType": "bytes",
         | 
| 496 445 | 
             
                      "name": "data",
         | 
| 497 446 | 
             
                      "type": "bytes"
         | 
| 498 447 | 
             
                    }
         | 
| 499 448 | 
             
                  ],
         | 
| 500 | 
            -
                  "name": " | 
| 449 | 
            +
                  "name": "upgradeVersionable",
         | 
| 501 450 | 
             
                  "outputs": [],
         | 
| 502 451 | 
             
                  "stateMutability": "nonpayable",
         | 
| 503 452 | 
             
                  "type": "function"
         | 
| 504 453 | 
             
                }
         | 
| 505 454 | 
             
              ],
         | 
| 506 | 
            -
              "bytecode": "0x60806040523480156200001157600080fd5b5060405162001e0238038062001e0283398101604081905262000034916200069b565b620000656301ffc9a760e01b600090815260205260008051602062001de2833981519152805460ff19166001179055565b600280546001600160a01b031916331790556200008162000096565b6200008d83826200014a565b505050620008eb565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000e75760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001475780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6000606e62000158620001ed565b6040805160ff9384166020820152929091169082015260600160408051601f1981840301815291905290506000620001908462000275565b90506000620001a58583603c848888620002e9565b637b6a51fd60e01b60009081526020527f9104d64c0a509f323b61ab0d4830bb2242bc1a960637a1dcf1f2b72e0a7bd64d805460ff191660011790555050505050565b905090565b6000620001f9620003eb565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af41580156200024f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e89190620006e5565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa158015620002bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e3919062000711565b92915050565b6200031a6301ffc9a760e01b600090815260205260008051602062001de2833981519152805460ff19166001179055565b62000326828762000473565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166001600160681b0319909116176c0100000000000000000000000060ff8816021760ff60681b19166d010000000000000000000000000086151502178155905060018101620003a58382620007d4565b506303fb044760e21b60009081526020527fb43e4f3791bfcdefa3a0fbe2a5555f8d6490b90e01de0ff40c66f18b49b562c5805460ff1916600117905550505050505050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af41580156200044d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e89190620008a0565b6001600160a01b038216620004cf5760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e65722069732030000060448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b038416179055620004f581620004f9565b5050565b6001546001600160a01b031615620005345760015460405163fcdbf2d960e01b81526001600160a01b039091166004820152602401620004c6565b6001600160a01b0381166200055c5760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b600003620005945760405163fdeac91f60e01b81526001600160a01b0382166004820152602401620004c6565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b81526316c8f9ff60e01b60048201526301ffc9a790602401602060405180830381865afa92505050801562000611575060408051601f3d908101601f191682019092526200060e91810190620008c7565b60015b6200063b5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401620004c6565b80620004f55760405163fdeac91f60e01b81526001600160a01b0383166004820152602401620004c6565b80516001600160a01b03811681146200067e57600080fd5b919050565b80516001600160601b03811681146200067e57600080fd5b600080600060608486031215620006b157600080fd5b620006bc8462000666565b9250620006cc6020850162000683565b9150620006dc6040850162000666565b90509250925092565b600060208284031215620006f857600080fd5b815160ff811681146200070a57600080fd5b9392505050565b6000602082840312156200072457600080fd5b6200070a8262000683565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200075a57607f821691505b6020821081036200077b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007cf57600081815260208120601f850160051c81016020861015620007aa5750805b601f850160051c820191505b81811015620007cb57828155600101620007b6565b5050505b505050565b81516001600160401b03811115620007f057620007f06200072f565b620008088162000801845462000745565b8462000781565b602080601f831160018114620008405760008415620008275750858301515b600019600386901b1c1916600185901b178555620007cb565b600085815260208120601f198616915b82811015620008715788860151825594840194600190910190840162000850565b5085821015620008905787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620008b357600080fd5b815162ffffff811681146200070a57600080fd5b600060208284031215620008da57600080fd5b815180151581146200070a57600080fd5b6114e780620008fb6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063893d20e8116100ad578063b68d180911610071578063b68d1809146103ee578063b88da75914610403578063cde749f414610416578063cf7a1d771461041e578063fb2cb1011461043157600080fd5b8063893d20e814610354578063946dfcfe1461035c578063a3f4df7e14610383578063a745e3df146103ba578063b3c65015146103cd57600080fd5b80631eff4b22116100f45780631eff4b22146101a35780634d459c90146101d85780634f421333146102f15780635ab1bd5314610304578063644c45e01461032957600080fd5b806301ffc9a7146101265780630d8e6e2c146101685780630fec111c14610184578063138461e014610199575b600080fd5b6101536101343660046110af565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b610170610442565b60405162ffffff909116815260200161015f565b61018c6104cc565b60405161015f9190611126565b6101a1610685565b005b6101ca7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b60405190815260200161015f565b6102946101e63660046111c5565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260008051602061149283398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a00161015f565b6101536102ff3660046111c5565b6108a7565b6001546001600160a01b03165b6040516001600160a01b03909116815260200161015f565b600154600160a01b90046001600160601b03166040516001600160601b03909116815260200161015f565b61031161095a565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed901546101ca565b6103ad6040518060400160405280600b81526020016a546573745365727669636560a81b81525081565b60405161015f91906111e2565b6101a16103c8366004611220565b610a73565b6103d5610bd0565b60405167ffffffffffffffff909116815260200161015f565b606e5b60405160ff909116815260200161015f565b6101706104113660046112f6565b610bf2565b6103f1610c43565b6101a161042c366004611220565b610cc6565b6002546001600160a01b0316610311565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af41580156104a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c7919061130f565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820152907f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa3006040805160808101825282546001600160601b038116825260ff600160601b820481166020840152600160681b909104161515918101919091526001820180549192916060840191906105779061132c565b80601f01602080910402602001604051908101604052809291908181526020018280546105a39061132c565b80156105f05780601f106105c5576101008083540402835291602001916105f0565b820191906000526020600020905b8154815290600101906020018083116105d357829003601f168201915b50505050508152505090506040518060e0016040528061060e600090565b6001600160601b0316815260200182600001516001600160601b03168152602001826020015160ff168152602001826040015115158152602001306001600160a01b031681526020016106696002546001600160a01b031690565b6001600160a01b03168152602001826060015181525091505090565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156106e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070b9190611366565b15610752576001546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6001546001600160a01b031661077b5760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa1580156107c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e89190611366565b610810576040516372657a5160e01b81526001600160a01b0382166004820152602401610749565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa15801561085a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087e9190611388565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b60008060008051602061149283398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af415801561092f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095391906113b1565b1192915050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156109bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e39190611366565b15610a6357600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa158015610a3f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c791906113ca565b506002546001600160a01b031690565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c610a95610442565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610ad5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af991906113e7565b6000805160206114728339815191528054600160401b900460ff1680610b2d5750805467ffffffffffffffff808416911610155b15610b4b5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff191667ffffffffffffffff831617600160401b178155610b778585610dd1565b610b8083611072565b805460ff60401b1916815560405167ffffffffffffffff831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b60006104c76000805160206114728339815191525467ffffffffffffffff1690565b60006000805160206114928339815191526001018281548110610c1757610c17611411565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b6000610c4d610442565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af4158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c79190611427565b6000805160206114728339815191528054600160401b810460ff16159067ffffffffffffffff16600081158015610cfa5750825b905060008267ffffffffffffffff166001148015610d175750303b155b905081158015610d25575080155b15610d435760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610d6d57845460ff60401b1916600160401b1785555b610d778888610dd1565b610d818787611072565b8315610dc757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b610dd9611076565b6000805160206114928339815191526000610e0a6000805160206114728339815191525467ffffffffffffffff1690565b90506000610e16610442565b90508167ffffffffffffffff16600103610e445760028301805462ffffff191662ffffff8316179055610e92565b600283015462ffffff90811690821611610e925760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b6044820152606401610749565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af4158015610f46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6a919061144a565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf6890610bc19083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101215b60008051602061147283398151915254600160401b900460ff166110ad57604051631afcd79f60e31b815260040160405180910390fd5b565b6000602082840312156110c157600080fd5b81356001600160e01b0319811681146110d957600080fd5b9392505050565b6000815180845260005b81811015611106576020818501810151868301820152016110ea565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a083015161118f60c08401826001600160a01b03169052565b5060c083015160e0808401526111a96101008401826110e0565b949350505050565b62ffffff811681146111c257600080fd5b50565b6000602082840312156111d757600080fd5b81356110d9816111b1565b6020815260006110d960208301846110e0565b6001600160a01b03811681146111c257600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561123557600080fd5b8335611240816111f5565b92506020840135611250816111f5565b9150604084013567ffffffffffffffff8082111561126d57600080fd5b818601915086601f83011261128157600080fd5b8135818111156112935761129361120a565b604051601f8201601f19908116603f011681019083821181831017156112bb576112bb61120a565b816040528281528960208487010111156112d457600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60006020828403121561130857600080fd5b5035919050565b60006020828403121561132157600080fd5b81516110d9816111b1565b600181811c9082168061134057607f821691505b60208210810361136057634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561137857600080fd5b815180151581146110d957600080fd5b60006020828403121561139a57600080fd5b81516001600160601b03811681146110d957600080fd5b6000602082840312156113c357600080fd5b5051919050565b6000602082840312156113dc57600080fd5b81516110d9816111f5565b6000602082840312156113f957600080fd5b815167ffffffffffffffff811681146110d957600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561143957600080fd5b815160ff811681146110d957600080fd5b60006020828403121561145c57600080fd5b815164ffffffffff811681146110d957600080fdfef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a2646970667358221220932b4cc2154ccec4616d89112ce04b3b90ddcbb34334a0d10301ed7e6b99bda964736f6c6343000814003367be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5",
         | 
| 507 | 
            -
              "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101215760003560e01c8063893d20e8116100ad578063b68d180911610071578063b68d1809146103ee578063b88da75914610403578063cde749f414610416578063cf7a1d771461041e578063fb2cb1011461043157600080fd5b8063893d20e814610354578063946dfcfe1461035c578063a3f4df7e14610383578063a745e3df146103ba578063b3c65015146103cd57600080fd5b80631eff4b22116100f45780631eff4b22146101a35780634d459c90146101d85780634f421333146102f15780635ab1bd5314610304578063644c45e01461032957600080fd5b806301ffc9a7146101265780630d8e6e2c146101685780630fec111c14610184578063138461e014610199575b600080fd5b6101536101343660046110af565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b610170610442565b60405162ffffff909116815260200161015f565b61018c6104cc565b60405161015f9190611126565b6101a1610685565b005b6101ca7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b60405190815260200161015f565b6102946101e63660046111c5565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260008051602061149283398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a00161015f565b6101536102ff3660046111c5565b6108a7565b6001546001600160a01b03165b6040516001600160a01b03909116815260200161015f565b600154600160a01b90046001600160601b03166040516001600160601b03909116815260200161015f565b61031161095a565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed901546101ca565b6103ad6040518060400160405280600b81526020016a546573745365727669636560a81b81525081565b60405161015f91906111e2565b6101a16103c8366004611220565b610a73565b6103d5610bd0565b60405167ffffffffffffffff909116815260200161015f565b606e5b60405160ff909116815260200161015f565b6101706104113660046112f6565b610bf2565b6103f1610c43565b6101a161042c366004611220565b610cc6565b6002546001600160a01b0316610311565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af41580156104a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c7919061130f565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820152907f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa3006040805160808101825282546001600160601b038116825260ff600160601b820481166020840152600160681b909104161515918101919091526001820180549192916060840191906105779061132c565b80601f01602080910402602001604051908101604052809291908181526020018280546105a39061132c565b80156105f05780601f106105c5576101008083540402835291602001916105f0565b820191906000526020600020905b8154815290600101906020018083116105d357829003601f168201915b50505050508152505090506040518060e0016040528061060e600090565b6001600160601b0316815260200182600001516001600160601b03168152602001826020015160ff168152602001826040015115158152602001306001600160a01b031681526020016106696002546001600160a01b031690565b6001600160a01b03168152602001826060015181525091505090565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156106e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070b9190611366565b15610752576001546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6001546001600160a01b031661077b5760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa1580156107c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e89190611366565b610810576040516372657a5160e01b81526001600160a01b0382166004820152602401610749565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa15801561085a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087e9190611388565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b60008060008051602061149283398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af415801561092f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095391906113b1565b1192915050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156109bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e39190611366565b15610a6357600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa158015610a3f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c791906113ca565b506002546001600160a01b031690565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c610a95610442565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610ad5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af991906113e7565b6000805160206114728339815191528054600160401b900460ff1680610b2d5750805467ffffffffffffffff808416911610155b15610b4b5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff191667ffffffffffffffff831617600160401b178155610b778585610dd1565b610b8083611072565b805460ff60401b1916815560405167ffffffffffffffff831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b60006104c76000805160206114728339815191525467ffffffffffffffff1690565b60006000805160206114928339815191526001018281548110610c1757610c17611411565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b6000610c4d610442565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af4158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c79190611427565b6000805160206114728339815191528054600160401b810460ff16159067ffffffffffffffff16600081158015610cfa5750825b905060008267ffffffffffffffff166001148015610d175750303b155b905081158015610d25575080155b15610d435760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610d6d57845460ff60401b1916600160401b1785555b610d778888610dd1565b610d818787611072565b8315610dc757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b610dd9611076565b6000805160206114928339815191526000610e0a6000805160206114728339815191525467ffffffffffffffff1690565b90506000610e16610442565b90508167ffffffffffffffff16600103610e445760028301805462ffffff191662ffffff8316179055610e92565b600283015462ffffff90811690821611610e925760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b6044820152606401610749565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af4158015610f46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6a919061144a565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf6890610bc19083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101215b60008051602061147283398151915254600160401b900460ff166110ad57604051631afcd79f60e31b815260040160405180910390fd5b565b6000602082840312156110c157600080fd5b81356001600160e01b0319811681146110d957600080fd5b9392505050565b6000815180845260005b81811015611106576020818501810151868301820152016110ea565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a083015161118f60c08401826001600160a01b03169052565b5060c083015160e0808401526111a96101008401826110e0565b949350505050565b62ffffff811681146111c257600080fd5b50565b6000602082840312156111d757600080fd5b81356110d9816111b1565b6020815260006110d960208301846110e0565b6001600160a01b03811681146111c257600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561123557600080fd5b8335611240816111f5565b92506020840135611250816111f5565b9150604084013567ffffffffffffffff8082111561126d57600080fd5b818601915086601f83011261128157600080fd5b8135818111156112935761129361120a565b604051601f8201601f19908116603f011681019083821181831017156112bb576112bb61120a565b816040528281528960208487010111156112d457600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b60006020828403121561130857600080fd5b5035919050565b60006020828403121561132157600080fd5b81516110d9816111b1565b600181811c9082168061134057607f821691505b60208210810361136057634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561137857600080fd5b815180151581146110d957600080fd5b60006020828403121561139a57600080fd5b81516001600160601b03811681146110d957600080fd5b6000602082840312156113c357600080fd5b5051919050565b6000602082840312156113dc57600080fd5b81516110d9816111f5565b6000602082840312156113f957600080fd5b815167ffffffffffffffff811681146110d957600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561143957600080fd5b815160ff811681146110d957600080fd5b60006020828403121561145c57600080fd5b815164ffffffffff811681146110d957600080fdfef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a2646970667358221220932b4cc2154ccec4616d89112ce04b3b90ddcbb34334a0d10301ed7e6b99bda964736f6c63430008140033",
         | 
| 455 | 
            +
              "bytecode": "0x60806040523480156200001157600080fd5b5060405162001bf238038062001bf28339810160408190526200003491620004ff565b6200003e62000053565b6200004a838262000107565b50505062000703565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000a45760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001045780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b62000111620001b2565b6200019c82836001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000155573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017b919062000549565b603c600085604051806020016040528060008152506200020360201b60201c565b620001ae637b6a51fd60e01b620002a2565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166200020157604051631afcd79f60e31b815260040160405180910390fd5b565b6200020d620001b2565b620002198287620002d1565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166001600160681b0319909116176c0100000000000000000000000060ff8816021760ff60681b19166d01000000000000000000000000008615150217815590506001810162000298838262000613565b5050505050505050565b620002ac620001b2565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b620002db620001b2565b620002e6816200036a565b620002f062000482565b6001600160a01b038216620003185760405163f17ef42d60e01b815260040160405180910390fd5b507f07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f0080546001600160601b03166c010000000000000000000000006001600160a01b0390931692909202919091179055565b62000374620001b2565b806001600160a01b03163b600003620003b05760405163fdeac91f60e01b81526001600160a01b03821660048201526024015b60405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b8152630a3888e560e31b60048201526301ffc9a790602401602060405180830381865afa9250505080156200042d575060408051601f3d908101601f191682019092526200042a91810190620006df565b60015b620004575760405163fdeac91f60e01b81526001600160a01b0382166004820152602401620003a7565b80620001ae5760405163fdeac91f60e01b81526001600160a01b0383166004820152602401620003a7565b6200048c620001b2565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b80516001600160a01b0381168114620004e257600080fd5b919050565b80516001600160601b0381168114620004e257600080fd5b6000806000606084860312156200051557600080fd5b6200052084620004ca565b92506200053060208501620004e7565b91506200054060408501620004ca565b90509250925092565b6000602082840312156200055c57600080fd5b6200056782620004e7565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200059957607f821691505b602082108103620005ba57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200060e57600081815260208120601f850160051c81016020861015620005e95750805b601f850160051c820191505b818110156200060a57828155600101620005f5565b5050505b505050565b81516001600160401b038111156200062f576200062f6200056e565b620006478162000640845462000584565b84620005c0565b602080601f8311600181146200067f5760008415620006665750858301515b600019600386901b1c1916600185901b1785556200060a565b600085815260208120601f198616915b82811015620006b0578886015182559484019460019091019084016200068f565b5085821015620006cf5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620006f257600080fd5b815180151581146200056757600080fd5b6114df80620007136000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80635ab1bd53116100b8578063ada9652e1161007c578063ada9652e146102e1578063b68d1809146102f6578063cde749f41461030b578063ea86657214610313578063f21de1e814610242578063f7c34ee01461032657600080fd5b80635ab1bd5314610242578063644c45e014610267578063675393bf1461028f578063893d20e8146102a2578063a3f4df7e146102aa57600080fd5b8063214cdb80116100ff578063214cdb80146101ee57806327bb7a3314610201578063329d6e741461021457806336fc697e1461022757806349bb9e4b1461022f57600080fd5b806301ffc9a71461013c5780630d8e6e2c1461017e5780630fec111c1461019a578063138461e0146101af5780631eff4b22146101b9575b600080fd5b61016961014a366004610f0a565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b610186610339565b60405162ffffff9091168152602001610175565b6101a26103c3565b6040516101759190610f81565b6101b7610572565b005b6101e07f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610175565b6101b76101fc366004610f0a565b610779565b6101b761020f3660046110f6565b6107a6565b6101b761022236600461118f565b610832565b6101b7610994565b6101b761023d3660046111c4565b6109da565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610175565b60008051602061148a833981519152546040516001600160601b039091168152602001610175565b6101b761029d366004611214565b610aec565b61024f610bfa565b6102d46040518060400160405280600b81526020016a546573745365727669636560a81b81525081565b6040516101759190611231565b6101e060008051602061148a83398151915281565b606e5b60405160ff9091168152602001610175565b6102f9610d31565b6101b7610321366004611244565b610da8565b6101b7610334366004611244565b610e40565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af415801561039a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103be919061127d565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820152907f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa3006040805160808101825282546001600160601b038116825260ff600160601b820481166020840152600160681b9091041615159181019190915260018201805491929160608401919061046e906112a2565b80601f016020809104026020016040519081016040528092919081815260200182805461049a906112a2565b80156104e75780601f106104bc576101008083540402835291602001916104e7565b820191906000526020600020905b8154815290600101906020018083116104ca57829003601f168201915b50505050508152505090506040518060e00160405280610505600090565b6001600160601b0316815260200182600001516001600160601b03168152602001826020015160ff168152602001826040015115158152602001306001600160a01b03168152602001610556610bfa565b6001600160a01b03168152602001826060015181525091505090565b600060008051602061148a83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156105e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060591906112dc565b156106365780546040516301ab8b6760e21b81526001600160601b0390911660048201526024015b60405180910390fd5b306106496001546001600160a01b031690565b60405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa158015610691573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b591906112dc565b6106dd5760405163b9304b0d60e01b81526001600160a01b038216600482015260240161062d565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038381166004830152919091169063d272ac1e90602401602060405180830381865afa158015610731573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075591906112f9565b82546bffffffffffffffffffffffff19166001600160601b03919091161790915550565b610781610eb7565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b6107ae610eb7565b6107b88287610e40565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b861515021781559050600181016108288382611365565b5050505050505050565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c610854610339565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610894573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b89190611425565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b900460ff16806108fe5750805467ffffffffffffffff808416911610155b1561091c5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff191667ffffffffffffffff831617600160401b17815561094783610f02565b805460ff60401b1916815560405167ffffffffffffffff831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b61099c610eb7565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff16600081158015610a205750825b905060008267ffffffffffffffff166001148015610a3d5750303b155b905081158015610a4b575080155b15610a695760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a9357845460ff60401b1916600160401b1785555b610a9d8787610f02565b8315610ae357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610af4610eb7565b806001600160a01b03163b600003610b2a5760405163fdeac91f60e01b81526001600160a01b038216600482015260240161062d565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b8152630a3888e560e31b60048201526301ffc9a790602401602060405180830381865afa925050508015610ba4575060408051601f3d908101601f19168201909252610ba1918101906112dc565b60015b610bcc5760405163fdeac91f60e01b81526001600160a01b038216600482015260240161062d565b80610bf55760405163fdeac91f60e01b81526001600160a01b038316600482015260240161062d565b505b50565b60008060008051602061148a83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610c6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8e91906112dc565b15610d1b576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015610cf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d15919061144f565b91505090565b54600160601b90046001600160a01b0316919050565b604051632392b61b60e21b81526003600482015260009073__$9dab98ad7ae1a426029e5739f922230a41$__90638e4ad86c90602401602060405180830381865af4158015610d84573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103be919061146c565b610db0610eb7565b610e3082836001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1691906112f9565b603c600085604051806020016040528060008152506107a6565b610bf5637b6a51fd60e01b610779565b610e48610eb7565b610e5181610aec565b610e59610994565b6001600160a01b038216610e805760405163f17ef42d60e01b815260040160405180910390fd5b5060008051602061148a83398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610f0057604051631afcd79f60e31b815260040160405180910390fd5b565b610137610eb7565b600060208284031215610f1c57600080fd5b81356001600160e01b031981168114610f3457600080fd5b9392505050565b6000815180845260005b81811015610f6157602081850181015186830182015201610f45565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a0830151610fea60c08401826001600160a01b03169052565b5060c083015160e080840152611004610100840182610f3b565b949350505050565b6001600160a01b0381168114610bf757600080fd5b6001600160601b0381168114610bf757600080fd5b60ff81168114610bf757600080fd5b8015158114610bf757600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f83011261107a57600080fd5b813567ffffffffffffffff8082111561109557611095611053565b604051601f8301601f19908116603f011681019082821181831017156110bd576110bd611053565b816040528381528660208588010111156110d657600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c0878903121561110f57600080fd5b863561111a8161100c565b9550602087013561112a81611021565b9450604087013561113a81611036565b9350606087013561114a81611045565b9250608087013561115a8161100c565b915060a087013567ffffffffffffffff81111561117657600080fd5b61118289828a01611069565b9150509295509295509295565b6000602082840312156111a157600080fd5b813567ffffffffffffffff8111156111b857600080fd5b61100484828501611069565b600080604083850312156111d757600080fd5b82356111e28161100c565b9150602083013567ffffffffffffffff8111156111fe57600080fd5b61120a85828601611069565b9150509250929050565b60006020828403121561122657600080fd5b8135610f348161100c565b602081526000610f346020830184610f3b565b6000806040838503121561125757600080fd5b82356112628161100c565b915060208301356112728161100c565b809150509250929050565b60006020828403121561128f57600080fd5b815162ffffff81168114610f3457600080fd5b600181811c908216806112b657607f821691505b6020821081036112d657634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156112ee57600080fd5b8151610f3481611045565b60006020828403121561130b57600080fd5b8151610f3481611021565b601f82111561136057600081815260208120601f850160051c8101602086101561133d5750805b601f850160051c820191505b8181101561135c57828155600101611349565b5050505b505050565b815167ffffffffffffffff81111561137f5761137f611053565b6113938161138d84546112a2565b84611316565b602080601f8311600181146113c857600084156113b05750858301515b600019600386901b1c1916600185901b17855561135c565b600085815260208120601f198616915b828110156113f7578886015182559484019460019091019084016113d8565b50858210156114155787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561143757600080fd5b815167ffffffffffffffff81168114610f3457600080fd5b60006020828403121561146157600080fd5b8151610f348161100c565b60006020828403121561147e57600080fd5b8151610f348161103656fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00a26469706673582212200c5a48654b94d18755aeb72ec7ec19c16c9677241717efe1f5e4591faf91caf964736f6c63430008140033",
         | 
| 456 | 
            +
              "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c80635ab1bd53116100b8578063ada9652e1161007c578063ada9652e146102e1578063b68d1809146102f6578063cde749f41461030b578063ea86657214610313578063f21de1e814610242578063f7c34ee01461032657600080fd5b80635ab1bd5314610242578063644c45e014610267578063675393bf1461028f578063893d20e8146102a2578063a3f4df7e146102aa57600080fd5b8063214cdb80116100ff578063214cdb80146101ee57806327bb7a3314610201578063329d6e741461021457806336fc697e1461022757806349bb9e4b1461022f57600080fd5b806301ffc9a71461013c5780630d8e6e2c1461017e5780630fec111c1461019a578063138461e0146101af5780631eff4b22146101b9575b600080fd5b61016961014a366004610f0a565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b610186610339565b60405162ffffff9091168152602001610175565b6101a26103c3565b6040516101759190610f81565b6101b7610572565b005b6101e07f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610175565b6101b76101fc366004610f0a565b610779565b6101b761020f3660046110f6565b6107a6565b6101b761022236600461118f565b610832565b6101b7610994565b6101b761023d3660046111c4565b6109da565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610175565b60008051602061148a833981519152546040516001600160601b039091168152602001610175565b6101b761029d366004611214565b610aec565b61024f610bfa565b6102d46040518060400160405280600b81526020016a546573745365727669636560a81b81525081565b6040516101759190611231565b6101e060008051602061148a83398151915281565b606e5b60405160ff9091168152602001610175565b6102f9610d31565b6101b7610321366004611244565b610da8565b6101b7610334366004611244565b610e40565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af415801561039a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103be919061127d565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820152907f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa3006040805160808101825282546001600160601b038116825260ff600160601b820481166020840152600160681b9091041615159181019190915260018201805491929160608401919061046e906112a2565b80601f016020809104026020016040519081016040528092919081815260200182805461049a906112a2565b80156104e75780601f106104bc576101008083540402835291602001916104e7565b820191906000526020600020905b8154815290600101906020018083116104ca57829003601f168201915b50505050508152505090506040518060e00160405280610505600090565b6001600160601b0316815260200182600001516001600160601b03168152602001826020015160ff168152602001826040015115158152602001306001600160a01b03168152602001610556610bfa565b6001600160a01b03168152602001826060015181525091505090565b600060008051602061148a83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156105e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060591906112dc565b156106365780546040516301ab8b6760e21b81526001600160601b0390911660048201526024015b60405180910390fd5b306106496001546001600160a01b031690565b60405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa158015610691573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b591906112dc565b6106dd5760405163b9304b0d60e01b81526001600160a01b038216600482015260240161062d565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038381166004830152919091169063d272ac1e90602401602060405180830381865afa158015610731573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075591906112f9565b82546bffffffffffffffffffffffff19166001600160601b03919091161790915550565b610781610eb7565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b6107ae610eb7565b6107b88287610e40565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b861515021781559050600181016108288382611365565b5050505050505050565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c610854610339565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610894573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b89190611425565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b900460ff16806108fe5750805467ffffffffffffffff808416911610155b1561091c5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff191667ffffffffffffffff831617600160401b17815561094783610f02565b805460ff60401b1916815560405167ffffffffffffffff831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b61099c610eb7565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff16600081158015610a205750825b905060008267ffffffffffffffff166001148015610a3d5750303b155b905081158015610a4b575080155b15610a695760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a9357845460ff60401b1916600160401b1785555b610a9d8787610f02565b8315610ae357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610af4610eb7565b806001600160a01b03163b600003610b2a5760405163fdeac91f60e01b81526001600160a01b038216600482015260240161062d565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b8152630a3888e560e31b60048201526301ffc9a790602401602060405180830381865afa925050508015610ba4575060408051601f3d908101601f19168201909252610ba1918101906112dc565b60015b610bcc5760405163fdeac91f60e01b81526001600160a01b038216600482015260240161062d565b80610bf55760405163fdeac91f60e01b81526001600160a01b038316600482015260240161062d565b505b50565b60008060008051602061148a83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610c6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8e91906112dc565b15610d1b576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015610cf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d15919061144f565b91505090565b54600160601b90046001600160a01b0316919050565b604051632392b61b60e21b81526003600482015260009073__$9dab98ad7ae1a426029e5739f922230a41$__90638e4ad86c90602401602060405180830381865af4158015610d84573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103be919061146c565b610db0610eb7565b610e3082836001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1691906112f9565b603c600085604051806020016040528060008152506107a6565b610bf5637b6a51fd60e01b610779565b610e48610eb7565b610e5181610aec565b610e59610994565b6001600160a01b038216610e805760405163f17ef42d60e01b815260040160405180910390fd5b5060008051602061148a83398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610f0057604051631afcd79f60e31b815260040160405180910390fd5b565b610137610eb7565b600060208284031215610f1c57600080fd5b81356001600160e01b031981168114610f3457600080fd5b9392505050565b6000815180845260005b81811015610f6157602081850181015186830182015201610f45565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a0830151610fea60c08401826001600160a01b03169052565b5060c083015160e080840152611004610100840182610f3b565b949350505050565b6001600160a01b0381168114610bf757600080fd5b6001600160601b0381168114610bf757600080fd5b60ff81168114610bf757600080fd5b8015158114610bf757600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f83011261107a57600080fd5b813567ffffffffffffffff8082111561109557611095611053565b604051601f8301601f19908116603f011681019082821181831017156110bd576110bd611053565b816040528381528660208588010111156110d657600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c0878903121561110f57600080fd5b863561111a8161100c565b9550602087013561112a81611021565b9450604087013561113a81611036565b9350606087013561114a81611045565b9250608087013561115a8161100c565b915060a087013567ffffffffffffffff81111561117657600080fd5b61118289828a01611069565b9150509295509295509295565b6000602082840312156111a157600080fd5b813567ffffffffffffffff8111156111b857600080fd5b61100484828501611069565b600080604083850312156111d757600080fd5b82356111e28161100c565b9150602083013567ffffffffffffffff8111156111fe57600080fd5b61120a85828601611069565b9150509250929050565b60006020828403121561122657600080fd5b8135610f348161100c565b602081526000610f346020830184610f3b565b6000806040838503121561125757600080fd5b82356112628161100c565b915060208301356112728161100c565b809150509250929050565b60006020828403121561128f57600080fd5b815162ffffff81168114610f3457600080fd5b600181811c908216806112b657607f821691505b6020821081036112d657634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156112ee57600080fd5b8151610f3481611045565b60006020828403121561130b57600080fd5b8151610f3481611021565b601f82111561136057600081815260208120601f850160051c8101602086101561133d5750805b601f850160051c820191505b8181101561135c57828155600101611349565b5050505b505050565b815167ffffffffffffffff81111561137f5761137f611053565b6113938161138d84546112a2565b84611316565b602080601f8311600181146113c857600084156113b05750858301515b600019600386901b1c1916600185901b17855561135c565b600085815260208120601f198616915b828110156113f7578886015182559484019460019091019084016113d8565b50858210156114155787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561143757600080fd5b815167ffffffffffffffff81168114610f3457600080fd5b60006020828403121561146157600080fd5b8151610f348161100c565b60006020828403121561147e57600080fd5b8151610f348161103656fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00a26469706673582212200c5a48654b94d18755aeb72ec7ec19c16c9677241717efe1f5e4591faf91caf964736f6c63430008140033",
         | 
| 508 457 | 
             
              "linkReferences": {
         | 
| 509 | 
            -
                "contracts/types/Blocknumber.sol": {
         | 
| 510 | 
            -
                  "BlocknumberLib": [
         | 
| 511 | 
            -
                    {
         | 
| 512 | 
            -
                      "length": 20,
         | 
| 513 | 
            -
                      "start": 4592
         | 
| 514 | 
            -
                    }
         | 
| 515 | 
            -
                  ]
         | 
| 516 | 
            -
                },
         | 
| 517 458 | 
             
                "contracts/types/NftId.sol": {
         | 
| 518 459 | 
             
                  "NftIdLib": [
         | 
| 519 460 | 
             
                    {
         | 
| 520 461 | 
             
                      "length": 20,
         | 
| 521 | 
            -
                      "start":  | 
| 462 | 
            +
                      "start": 3258
         | 
| 522 463 | 
             
                    },
         | 
| 523 464 | 
             
                    {
         | 
| 524 465 | 
             
                      "length": 20,
         | 
| 525 | 
            -
                      "start":  | 
| 526 | 
            -
                    }
         | 
| 527 | 
            -
                  ]
         | 
| 528 | 
            -
                },
         | 
| 529 | 
            -
                "contracts/types/Timestamp.sol": {
         | 
| 530 | 
            -
                  "TimestampLib": [
         | 
| 531 | 
            -
                    {
         | 
| 532 | 
            -
                      "length": 20,
         | 
| 533 | 
            -
                      "start": 6151
         | 
| 466 | 
            +
                      "start": 4931
         | 
| 534 467 | 
             
                    }
         | 
| 535 468 | 
             
                  ]
         | 
| 536 469 | 
             
                },
         | 
| @@ -538,53 +471,31 @@ | |
| 538 471 | 
             
                  "VersionLib": [
         | 
| 539 472 | 
             
                    {
         | 
| 540 473 | 
             
                      "length": 20,
         | 
| 541 | 
            -
                      "start":  | 
| 542 | 
            -
                    },
         | 
| 543 | 
            -
                    {
         | 
| 544 | 
            -
                      "length": 20,
         | 
| 545 | 
            -
                      "start": 1042
         | 
| 546 | 
            -
                    },
         | 
| 547 | 
            -
                    {
         | 
| 548 | 
            -
                      "length": 20,
         | 
| 549 | 
            -
                      "start": 3428
         | 
| 474 | 
            +
                      "start": 2675
         | 
| 550 475 | 
             
                    },
         | 
| 551 476 | 
             
                    {
         | 
| 552 477 | 
             
                      "length": 20,
         | 
| 553 | 
            -
                      "start":  | 
| 554 | 
            -
                    } | 
| 478 | 
            +
                      "start": 3911
         | 
| 479 | 
            +
                    }
         | 
| 480 | 
            +
                  ],
         | 
| 481 | 
            +
                  "VersionPartLib": [
         | 
| 555 482 | 
             
                    {
         | 
| 556 483 | 
             
                      "length": 20,
         | 
| 557 | 
            -
                      "start":  | 
| 484 | 
            +
                      "start": 5213
         | 
| 558 485 | 
             
                    }
         | 
| 559 486 | 
             
                  ]
         | 
| 560 487 | 
             
                }
         | 
| 561 488 | 
             
              },
         | 
| 562 489 | 
             
              "deployedLinkReferences": {
         | 
| 563 | 
            -
                "contracts/types/Blocknumber.sol": {
         | 
| 564 | 
            -
                  "BlocknumberLib": [
         | 
| 565 | 
            -
                    {
         | 
| 566 | 
            -
                      "length": 20,
         | 
| 567 | 
            -
                      "start": 2293
         | 
| 568 | 
            -
                    }
         | 
| 569 | 
            -
                  ]
         | 
| 570 | 
            -
                },
         | 
| 571 490 | 
             
                "contracts/types/NftId.sol": {
         | 
| 572 491 | 
             
                  "NftIdLib": [
         | 
| 573 492 | 
             
                    {
         | 
| 574 493 | 
             
                      "length": 20,
         | 
| 575 | 
            -
                      "start":  | 
| 494 | 
            +
                      "start": 1447
         | 
| 576 495 | 
             
                    },
         | 
| 577 496 | 
             
                    {
         | 
| 578 497 | 
             
                      "length": 20,
         | 
| 579 | 
            -
                      "start":  | 
| 580 | 
            -
                    }
         | 
| 581 | 
            -
                  ]
         | 
| 582 | 
            -
                },
         | 
| 583 | 
            -
                "contracts/types/Timestamp.sol": {
         | 
| 584 | 
            -
                  "TimestampLib": [
         | 
| 585 | 
            -
                    {
         | 
| 586 | 
            -
                      "length": 20,
         | 
| 587 | 
            -
                      "start": 3852
         | 
| 498 | 
            +
                      "start": 3120
         | 
| 588 499 | 
             
                    }
         | 
| 589 500 | 
             
                  ]
         | 
| 590 501 | 
             
                },
         | 
| @@ -592,15 +503,17 @@ | |
| 592 503 | 
             
                  "VersionLib": [
         | 
| 593 504 | 
             
                    {
         | 
| 594 505 | 
             
                      "length": 20,
         | 
| 595 | 
            -
                      "start":  | 
| 506 | 
            +
                      "start": 864
         | 
| 596 507 | 
             
                    },
         | 
| 597 508 | 
             
                    {
         | 
| 598 509 | 
             
                      "length": 20,
         | 
| 599 | 
            -
                      "start":  | 
| 600 | 
            -
                    } | 
| 510 | 
            +
                      "start": 2100
         | 
| 511 | 
            +
                    }
         | 
| 512 | 
            +
                  ],
         | 
| 513 | 
            +
                  "VersionPartLib": [
         | 
| 601 514 | 
             
                    {
         | 
| 602 515 | 
             
                      "length": 20,
         | 
| 603 | 
            -
                      "start":  | 
| 516 | 
            +
                      "start": 3402
         | 
| 604 517 | 
             
                    }
         | 
| 605 518 | 
             
                  ]
         | 
| 606 519 | 
             
                }
         |