@etherisc/gif-next 0.0.2-c40f9a5 → 0.0.2-c576a00-897
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +109 -0
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +4 -0
- package/artifacts/contracts/components/{Component.sol/Component.json → BaseComponent.sol/BaseComponent.json} +48 -53
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +4 -0
- package/artifacts/contracts/components/{IPool.sol/IPoolComponent.json → IBaseComponent.sol/IBaseComponent.json} +48 -53
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +356 -0
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/components/{IProduct.sol → IProductComponent.sol}/IProductComponent.json +139 -52
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +218 -44
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +144 -70
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +2 -2
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +2 -2
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +2 -2
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +2 -2
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
- package/artifacts/contracts/experiment/kvstore/BundleModuleStore.sol/BundleModuleStore.dbg.json +4 -0
- package/artifacts/contracts/experiment/kvstore/BundleModuleStore.sol/BundleModuleStore.json +543 -0
- package/artifacts/contracts/experiment/kvstore/IBundle.sol/IBundle.dbg.json +4 -0
- package/artifacts/contracts/experiment/kvstore/IBundle.sol/IBundle.json +10 -0
- package/artifacts/contracts/experiment/kvstore/KeyMapper.sol/KeyMapper.dbg.json +4 -0
- package/artifacts/contracts/experiment/kvstore/KeyMapper.sol/KeyMapper.json +185 -0
- package/artifacts/contracts/experiment/kvstore/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/experiment/kvstore/KeyValueStore.sol/KeyValueStore.json +383 -0
- package/artifacts/contracts/experiment/kvstore/KvStore.sol/KvStore.dbg.json +4 -0
- package/artifacts/contracts/experiment/kvstore/KvStore.sol/KvStore.json +1064 -0
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +4 -0
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +59 -0
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +4 -0
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +124 -0
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +4 -0
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +74 -0
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +4 -0
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +124 -0
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +4 -0
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +207 -0
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +2 -2
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1414 -289
- package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +4 -0
- package/artifacts/contracts/instance/{component/IComponent.sol → IInstanceLinked.sol}/IInstanceLinked.json +1 -1
- package/artifacts/contracts/instance/IServiceLinked.sol/IServiceLinked.dbg.json +4 -0
- package/artifacts/contracts/instance/{access/IAccess.sol/IAccessComponentTypeRoles.json → IServiceLinked.sol/IServiceLinked.json} +14 -14
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +1715 -345
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/{component/ComponentModule.sol/ComponentModule.json → InstanceBase.sol/InstanceBase.json} +128 -142
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +4 -0
- package/artifacts/contracts/instance/{access → module/access}/Access.sol/AccessModule.json +85 -152
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/instance/{access → module/access}/IAccess.sol/IAccess.json +1 -1
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +4 -0
- package/artifacts/contracts/instance/{access → module/access}/IAccess.sol/IAccessModule.json +96 -99
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +276 -0
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +4 -0
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.json +10 -0
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +276 -0
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +10 -0
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +4 -0
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +10 -0
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +10 -0
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +188 -0
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/instance/{component → module/component}/IComponent.sol/IComponent.json +1 -1
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +4 -0
- package/artifacts/contracts/instance/{component → module/component}/IComponent.sol/IComponentModule.json +40 -97
- package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.json +134 -0
- package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycleModule.json +182 -0
- package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.json +221 -0
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +4 -0
- package/artifacts/contracts/instance/{policy → module/policy}/IPolicy.sol/IPolicy.json +1 -1
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +4 -0
- package/artifacts/contracts/instance/{policy → module/policy}/IPolicy.sol/IPolicyModule.json +142 -112
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +4 -0
- package/artifacts/contracts/instance/{policy → module/policy}/PolicyModule.sol/PolicyModule.json +142 -112
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +4 -0
- package/artifacts/contracts/instance/{pool → module/pool}/IPoolModule.sol/IPool.json +1 -1
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +4 -0
- package/artifacts/contracts/instance/{pool → module/pool}/IPoolModule.sol/IPoolModule.json +57 -57
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +4 -0
- package/artifacts/contracts/instance/{pool → module/pool}/PoolModule.sol/PoolModule.json +50 -63
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +4 -0
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.json +10 -0
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +167 -0
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +185 -0
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +4 -0
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +10 -0
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +533 -0
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +4 -0
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +76 -0
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +533 -0
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +491 -0
- package/artifacts/contracts/instance/service/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ComponentServiceBase.sol/ComponentServiceBase.json +300 -0
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +364 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +376 -0
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +477 -0
- package/artifacts/contracts/instance/service/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/instance/{component/IComponent.sol/IComponentContract.json → service/IService.sol/IService.json} +148 -27
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +471 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +673 -0
- package/artifacts/contracts/instance/service/ServiceBase.sol/ServiceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ServiceBase.sol/ServiceBase.json +300 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +65 -2
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +103 -77
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +24 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +194 -69
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +35 -0
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +4 -0
- package/artifacts/contracts/{registry/IRegistry.sol → shared/IOwnable.sol}/IOwnable.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
- package/artifacts/contracts/{registry/IRegistry.sol → shared/IRegisterable.sol}/IRegisterable.json +18 -63
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +164 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
- package/artifacts/contracts/{registry/Registry.sol → shared/Registerable.sol}/Registerable.json +18 -63
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +164 -0
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +4 -0
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +119 -0
- package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +4 -0
- package/artifacts/contracts/test/TestPool.sol/TestPool.json +387 -0
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +4 -0
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +393 -0
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +4 -0
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +137 -0
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +4 -0
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +82 -0
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +4 -0
- package/artifacts/contracts/test/TestService.sol/TestService.json +379 -0
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +4 -0
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +338 -0
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +4 -0
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +218 -0
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +4 -0
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +206 -0
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +40 -2
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +2 -2
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +218 -0
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +10 -0
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +92 -0
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +92 -0
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +64 -2
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +58 -58
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/types/Version.sol/VersionLib.json +139 -0
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +30 -0
- package/contracts/components/BaseComponent.sol +89 -0
- package/contracts/components/IBaseComponent.sol +19 -0
- package/contracts/components/IPoolComponent.sol +57 -0
- package/contracts/components/IProductComponent.sol +19 -0
- package/contracts/components/Pool.sol +161 -16
- package/contracts/components/Product.sol +77 -26
- package/contracts/experiment/errors/Require.sol +10 -5
- package/contracts/experiment/errors/Revert.sol +13 -8
- package/contracts/experiment/inheritance/A.sol +8 -11
- package/contracts/experiment/inheritance/B.sol +10 -5
- package/contracts/experiment/inheritance/C.sol +11 -5
- package/contracts/experiment/inheritance/IA.sol +2 -7
- package/contracts/experiment/inheritance/IB.sol +3 -2
- package/contracts/experiment/inheritance/IC.sol +4 -3
- package/contracts/experiment/kvstore/BundleModuleStore.sol +93 -0
- package/contracts/experiment/kvstore/IBundle.sol +22 -0
- package/contracts/experiment/kvstore/KeyMapper.sol +40 -0
- package/contracts/experiment/kvstore/KeyValueStore.sol +156 -0
- package/contracts/experiment/kvstore/KvStore.sol +195 -0
- package/contracts/experiment/statemachine/Dummy.sol +27 -0
- package/contracts/experiment/statemachine/ISM.sol +25 -0
- package/contracts/experiment/statemachine/README.md +112 -0
- package/contracts/experiment/statemachine/SM.sol +57 -0
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +31 -0
- package/contracts/experiment/types/TypeA.sol +14 -9
- package/contracts/experiment/types/TypeB.sol +14 -9
- package/contracts/instance/IInstance.sol +41 -8
- package/contracts/instance/IInstanceLinked.sol +8 -0
- package/contracts/instance/IServiceLinked.sol +12 -0
- package/contracts/instance/Instance.sol +46 -44
- package/contracts/instance/InstanceBase.sol +71 -0
- package/contracts/instance/module/access/Access.sol +149 -0
- package/contracts/instance/module/access/IAccess.sol +53 -0
- package/contracts/instance/module/bundle/BundleModule.sol +228 -0
- package/contracts/instance/module/bundle/IBundle.sol +53 -0
- package/contracts/instance/module/compensation/CompensationModule.sol +8 -0
- package/contracts/instance/module/compensation/ICompensation.sol +10 -0
- package/contracts/instance/module/component/ComponentModule.sol +103 -0
- package/contracts/instance/module/component/IComponent.sol +53 -0
- package/contracts/instance/module/lifecycle/ILifecycle.sol +47 -0
- package/contracts/instance/module/lifecycle/LifecycleModule.sol +89 -0
- package/contracts/instance/module/policy/IPolicy.sol +60 -0
- package/contracts/instance/module/policy/PolicyModule.sol +84 -0
- package/contracts/instance/module/pool/IPoolModule.sol +41 -0
- package/contracts/instance/module/pool/PoolModule.sol +87 -0
- package/contracts/instance/module/risk/IRisk.sol +39 -0
- package/contracts/instance/module/risk/RiskModule.sol +55 -0
- package/contracts/instance/module/treasury/ITreasury.sol +103 -0
- package/contracts/instance/module/treasury/TokenHandler.sol +48 -0
- package/contracts/instance/module/treasury/TreasuryModule.sol +152 -0
- package/contracts/instance/service/ComponentOwnerService.sol +171 -0
- package/contracts/instance/service/ComponentServiceBase.sol +41 -0
- package/contracts/instance/service/IComponentOwnerService.sol +22 -0
- package/contracts/instance/service/IPoolService.sol +30 -0
- package/contracts/instance/service/IProductService.sol +58 -0
- package/contracts/instance/service/IService.sol +15 -0
- package/contracts/instance/service/PoolService.sol +123 -0
- package/contracts/instance/service/ProductService.sol +355 -0
- package/contracts/instance/service/ServiceBase.sol +39 -0
- package/contracts/registry/ChainNft.sol +80 -94
- package/contracts/registry/IChainNft.sol +10 -7
- package/contracts/registry/IRegistry.sol +38 -51
- package/contracts/registry/IRegistryLinked.sol +8 -0
- package/contracts/registry/Registry.sol +310 -111
- package/contracts/shared/ERC165.sol +21 -0
- package/contracts/shared/IOwnable.sol +6 -0
- package/contracts/shared/IRegisterable.sol +24 -0
- package/contracts/shared/IVersionable.sol +52 -0
- package/contracts/shared/Registerable.sol +86 -0
- package/contracts/shared/Versionable.sol +89 -0
- package/contracts/test/TestFee.sol +25 -0
- package/contracts/test/TestPool.sol +22 -0
- package/contracts/test/TestProduct.sol +44 -0
- package/contracts/test/TestRegisterable.sol +19 -0
- package/contracts/test/TestRoleId.sol +14 -0
- package/contracts/test/TestService.sol +32 -0
- package/contracts/test/TestToken.sol +26 -0
- package/contracts/test/TestVersion.sol +44 -0
- package/contracts/test/TestVersionable.sol +17 -0
- package/contracts/types/AddressSet.sol +58 -0
- package/contracts/types/Blocknumber.sol +92 -18
- package/contracts/types/ChainId.sol +18 -10
- package/contracts/types/Fee.sol +51 -0
- package/contracts/types/NftId.sol +33 -11
- package/contracts/types/NftIdSet.sol +60 -0
- package/contracts/types/ObjectType.sol +119 -0
- package/contracts/types/RiskId.sol +26 -0
- package/contracts/types/RoleId.sol +36 -0
- package/contracts/types/StateId.sol +95 -0
- package/contracts/types/Timestamp.sol +85 -17
- package/contracts/types/UFixed.sol +67 -72
- package/contracts/types/Version.sol +95 -0
- package/package.json +14 -4
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
- package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.json +0 -35
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
- package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -147
- package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
- package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
- package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
- package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
- package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
- package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
- package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -167
- package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
- package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
- package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
- package/contracts/components/Component.sol +0 -62
- package/contracts/components/IPool.sol +0 -9
- package/contracts/components/IProduct.sol +0 -12
- package/contracts/instance/access/Access.sol +0 -218
- package/contracts/instance/access/IAccess.sol +0 -83
- package/contracts/instance/component/ComponentModule.sol +0 -248
- package/contracts/instance/component/IComponent.sol +0 -95
- package/contracts/instance/policy/IPolicy.sol +0 -66
- package/contracts/instance/policy/PolicyModule.sol +0 -107
- package/contracts/instance/pool/IPoolModule.sol +0 -41
- package/contracts/instance/pool/PoolModule.sol +0 -86
- package/contracts/instance/product/IProductService.sol +0 -46
- package/contracts/instance/product/ProductService.sol +0 -108
@@ -0,0 +1,543 @@
|
|
1
|
+
{
|
2
|
+
"_format": "hh-sol-artifact-1",
|
3
|
+
"contractName": "BundleModuleStore",
|
4
|
+
"sourceName": "contracts/experiment/kvstore/BundleModuleStore.sol",
|
5
|
+
"abi": [
|
6
|
+
{
|
7
|
+
"inputs": [],
|
8
|
+
"stateMutability": "nonpayable",
|
9
|
+
"type": "constructor"
|
10
|
+
},
|
11
|
+
{
|
12
|
+
"inputs": [],
|
13
|
+
"name": "ID_MASK",
|
14
|
+
"outputs": [
|
15
|
+
{
|
16
|
+
"internalType": "bytes32",
|
17
|
+
"name": "",
|
18
|
+
"type": "bytes32"
|
19
|
+
}
|
20
|
+
],
|
21
|
+
"stateMutability": "view",
|
22
|
+
"type": "function"
|
23
|
+
},
|
24
|
+
{
|
25
|
+
"inputs": [],
|
26
|
+
"name": "ID_SHIFT",
|
27
|
+
"outputs": [
|
28
|
+
{
|
29
|
+
"internalType": "uint8",
|
30
|
+
"name": "",
|
31
|
+
"type": "uint8"
|
32
|
+
}
|
33
|
+
],
|
34
|
+
"stateMutability": "view",
|
35
|
+
"type": "function"
|
36
|
+
},
|
37
|
+
{
|
38
|
+
"inputs": [],
|
39
|
+
"name": "TYPE_MASK",
|
40
|
+
"outputs": [
|
41
|
+
{
|
42
|
+
"internalType": "bytes32",
|
43
|
+
"name": "",
|
44
|
+
"type": "bytes32"
|
45
|
+
}
|
46
|
+
],
|
47
|
+
"stateMutability": "view",
|
48
|
+
"type": "function"
|
49
|
+
},
|
50
|
+
{
|
51
|
+
"inputs": [],
|
52
|
+
"name": "TYPE_SHIFT",
|
53
|
+
"outputs": [
|
54
|
+
{
|
55
|
+
"internalType": "uint8",
|
56
|
+
"name": "",
|
57
|
+
"type": "uint8"
|
58
|
+
}
|
59
|
+
],
|
60
|
+
"stateMutability": "view",
|
61
|
+
"type": "function"
|
62
|
+
},
|
63
|
+
{
|
64
|
+
"inputs": [
|
65
|
+
{
|
66
|
+
"components": [
|
67
|
+
{
|
68
|
+
"internalType": "NftId",
|
69
|
+
"name": "nftId",
|
70
|
+
"type": "uint96"
|
71
|
+
},
|
72
|
+
{
|
73
|
+
"internalType": "NftId",
|
74
|
+
"name": "poolNftId",
|
75
|
+
"type": "uint96"
|
76
|
+
},
|
77
|
+
{
|
78
|
+
"internalType": "StateId",
|
79
|
+
"name": "state",
|
80
|
+
"type": "uint8"
|
81
|
+
},
|
82
|
+
{
|
83
|
+
"internalType": "bytes",
|
84
|
+
"name": "filter",
|
85
|
+
"type": "bytes"
|
86
|
+
},
|
87
|
+
{
|
88
|
+
"internalType": "uint256",
|
89
|
+
"name": "capitalAmount",
|
90
|
+
"type": "uint256"
|
91
|
+
},
|
92
|
+
{
|
93
|
+
"internalType": "uint256",
|
94
|
+
"name": "lockedAmount",
|
95
|
+
"type": "uint256"
|
96
|
+
},
|
97
|
+
{
|
98
|
+
"internalType": "uint256",
|
99
|
+
"name": "balanceAmount",
|
100
|
+
"type": "uint256"
|
101
|
+
},
|
102
|
+
{
|
103
|
+
"internalType": "Timestamp",
|
104
|
+
"name": "expiredAt",
|
105
|
+
"type": "uint40"
|
106
|
+
},
|
107
|
+
{
|
108
|
+
"internalType": "Timestamp",
|
109
|
+
"name": "closedAt",
|
110
|
+
"type": "uint40"
|
111
|
+
}
|
112
|
+
],
|
113
|
+
"internalType": "struct IBundle.BundleInfo",
|
114
|
+
"name": "info",
|
115
|
+
"type": "tuple"
|
116
|
+
}
|
117
|
+
],
|
118
|
+
"name": "createBundleInfo",
|
119
|
+
"outputs": [
|
120
|
+
{
|
121
|
+
"internalType": "bytes32",
|
122
|
+
"name": "key",
|
123
|
+
"type": "bytes32"
|
124
|
+
}
|
125
|
+
],
|
126
|
+
"stateMutability": "nonpayable",
|
127
|
+
"type": "function"
|
128
|
+
},
|
129
|
+
{
|
130
|
+
"inputs": [
|
131
|
+
{
|
132
|
+
"internalType": "uint256",
|
133
|
+
"name": "bundleId",
|
134
|
+
"type": "uint256"
|
135
|
+
},
|
136
|
+
{
|
137
|
+
"internalType": "uint256",
|
138
|
+
"name": "amount",
|
139
|
+
"type": "uint256"
|
140
|
+
},
|
141
|
+
{
|
142
|
+
"internalType": "bytes",
|
143
|
+
"name": "filter",
|
144
|
+
"type": "bytes"
|
145
|
+
}
|
146
|
+
],
|
147
|
+
"name": "createBundleInfo",
|
148
|
+
"outputs": [
|
149
|
+
{
|
150
|
+
"components": [
|
151
|
+
{
|
152
|
+
"internalType": "NftId",
|
153
|
+
"name": "nftId",
|
154
|
+
"type": "uint96"
|
155
|
+
},
|
156
|
+
{
|
157
|
+
"internalType": "NftId",
|
158
|
+
"name": "poolNftId",
|
159
|
+
"type": "uint96"
|
160
|
+
},
|
161
|
+
{
|
162
|
+
"internalType": "StateId",
|
163
|
+
"name": "state",
|
164
|
+
"type": "uint8"
|
165
|
+
},
|
166
|
+
{
|
167
|
+
"internalType": "bytes",
|
168
|
+
"name": "filter",
|
169
|
+
"type": "bytes"
|
170
|
+
},
|
171
|
+
{
|
172
|
+
"internalType": "uint256",
|
173
|
+
"name": "capitalAmount",
|
174
|
+
"type": "uint256"
|
175
|
+
},
|
176
|
+
{
|
177
|
+
"internalType": "uint256",
|
178
|
+
"name": "lockedAmount",
|
179
|
+
"type": "uint256"
|
180
|
+
},
|
181
|
+
{
|
182
|
+
"internalType": "uint256",
|
183
|
+
"name": "balanceAmount",
|
184
|
+
"type": "uint256"
|
185
|
+
},
|
186
|
+
{
|
187
|
+
"internalType": "Timestamp",
|
188
|
+
"name": "expiredAt",
|
189
|
+
"type": "uint40"
|
190
|
+
},
|
191
|
+
{
|
192
|
+
"internalType": "Timestamp",
|
193
|
+
"name": "closedAt",
|
194
|
+
"type": "uint40"
|
195
|
+
}
|
196
|
+
],
|
197
|
+
"internalType": "struct IBundle.BundleInfo",
|
198
|
+
"name": "info",
|
199
|
+
"type": "tuple"
|
200
|
+
}
|
201
|
+
],
|
202
|
+
"stateMutability": "view",
|
203
|
+
"type": "function"
|
204
|
+
},
|
205
|
+
{
|
206
|
+
"inputs": [
|
207
|
+
{
|
208
|
+
"internalType": "bytes32",
|
209
|
+
"name": "key",
|
210
|
+
"type": "bytes32"
|
211
|
+
}
|
212
|
+
],
|
213
|
+
"name": "getBundleInfo",
|
214
|
+
"outputs": [
|
215
|
+
{
|
216
|
+
"components": [
|
217
|
+
{
|
218
|
+
"internalType": "NftId",
|
219
|
+
"name": "nftId",
|
220
|
+
"type": "uint96"
|
221
|
+
},
|
222
|
+
{
|
223
|
+
"internalType": "NftId",
|
224
|
+
"name": "poolNftId",
|
225
|
+
"type": "uint96"
|
226
|
+
},
|
227
|
+
{
|
228
|
+
"internalType": "StateId",
|
229
|
+
"name": "state",
|
230
|
+
"type": "uint8"
|
231
|
+
},
|
232
|
+
{
|
233
|
+
"internalType": "bytes",
|
234
|
+
"name": "filter",
|
235
|
+
"type": "bytes"
|
236
|
+
},
|
237
|
+
{
|
238
|
+
"internalType": "uint256",
|
239
|
+
"name": "capitalAmount",
|
240
|
+
"type": "uint256"
|
241
|
+
},
|
242
|
+
{
|
243
|
+
"internalType": "uint256",
|
244
|
+
"name": "lockedAmount",
|
245
|
+
"type": "uint256"
|
246
|
+
},
|
247
|
+
{
|
248
|
+
"internalType": "uint256",
|
249
|
+
"name": "balanceAmount",
|
250
|
+
"type": "uint256"
|
251
|
+
},
|
252
|
+
{
|
253
|
+
"internalType": "Timestamp",
|
254
|
+
"name": "expiredAt",
|
255
|
+
"type": "uint40"
|
256
|
+
},
|
257
|
+
{
|
258
|
+
"internalType": "Timestamp",
|
259
|
+
"name": "closedAt",
|
260
|
+
"type": "uint40"
|
261
|
+
}
|
262
|
+
],
|
263
|
+
"internalType": "struct IBundle.BundleInfo",
|
264
|
+
"name": "",
|
265
|
+
"type": "tuple"
|
266
|
+
}
|
267
|
+
],
|
268
|
+
"stateMutability": "view",
|
269
|
+
"type": "function"
|
270
|
+
},
|
271
|
+
{
|
272
|
+
"inputs": [],
|
273
|
+
"name": "getStore",
|
274
|
+
"outputs": [
|
275
|
+
{
|
276
|
+
"internalType": "contract KeyValueStore",
|
277
|
+
"name": "",
|
278
|
+
"type": "address"
|
279
|
+
}
|
280
|
+
],
|
281
|
+
"stateMutability": "view",
|
282
|
+
"type": "function"
|
283
|
+
},
|
284
|
+
{
|
285
|
+
"inputs": [
|
286
|
+
{
|
287
|
+
"internalType": "NftId",
|
288
|
+
"name": "bundleNftId",
|
289
|
+
"type": "uint96"
|
290
|
+
}
|
291
|
+
],
|
292
|
+
"name": "toBundleKey32",
|
293
|
+
"outputs": [
|
294
|
+
{
|
295
|
+
"internalType": "bytes32",
|
296
|
+
"name": "key",
|
297
|
+
"type": "bytes32"
|
298
|
+
}
|
299
|
+
],
|
300
|
+
"stateMutability": "pure",
|
301
|
+
"type": "function"
|
302
|
+
},
|
303
|
+
{
|
304
|
+
"inputs": [
|
305
|
+
{
|
306
|
+
"internalType": "ObjectType",
|
307
|
+
"name": "objectType",
|
308
|
+
"type": "uint8"
|
309
|
+
},
|
310
|
+
{
|
311
|
+
"internalType": "KeyId",
|
312
|
+
"name": "id",
|
313
|
+
"type": "bytes31"
|
314
|
+
}
|
315
|
+
],
|
316
|
+
"name": "toKey",
|
317
|
+
"outputs": [
|
318
|
+
{
|
319
|
+
"components": [
|
320
|
+
{
|
321
|
+
"internalType": "ObjectType",
|
322
|
+
"name": "objectType",
|
323
|
+
"type": "uint8"
|
324
|
+
},
|
325
|
+
{
|
326
|
+
"internalType": "KeyId",
|
327
|
+
"name": "id",
|
328
|
+
"type": "bytes31"
|
329
|
+
}
|
330
|
+
],
|
331
|
+
"internalType": "struct KeyMapper.Key",
|
332
|
+
"name": "",
|
333
|
+
"type": "tuple"
|
334
|
+
}
|
335
|
+
],
|
336
|
+
"stateMutability": "pure",
|
337
|
+
"type": "function"
|
338
|
+
},
|
339
|
+
{
|
340
|
+
"inputs": [
|
341
|
+
{
|
342
|
+
"internalType": "bytes32",
|
343
|
+
"name": "key",
|
344
|
+
"type": "bytes32"
|
345
|
+
}
|
346
|
+
],
|
347
|
+
"name": "toKey",
|
348
|
+
"outputs": [
|
349
|
+
{
|
350
|
+
"components": [
|
351
|
+
{
|
352
|
+
"internalType": "ObjectType",
|
353
|
+
"name": "objectType",
|
354
|
+
"type": "uint8"
|
355
|
+
},
|
356
|
+
{
|
357
|
+
"internalType": "KeyId",
|
358
|
+
"name": "id",
|
359
|
+
"type": "bytes31"
|
360
|
+
}
|
361
|
+
],
|
362
|
+
"internalType": "struct KeyMapper.Key",
|
363
|
+
"name": "",
|
364
|
+
"type": "tuple"
|
365
|
+
}
|
366
|
+
],
|
367
|
+
"stateMutability": "pure",
|
368
|
+
"type": "function"
|
369
|
+
},
|
370
|
+
{
|
371
|
+
"inputs": [
|
372
|
+
{
|
373
|
+
"components": [
|
374
|
+
{
|
375
|
+
"internalType": "ObjectType",
|
376
|
+
"name": "objectType",
|
377
|
+
"type": "uint8"
|
378
|
+
},
|
379
|
+
{
|
380
|
+
"internalType": "KeyId",
|
381
|
+
"name": "id",
|
382
|
+
"type": "bytes31"
|
383
|
+
}
|
384
|
+
],
|
385
|
+
"internalType": "struct KeyMapper.Key",
|
386
|
+
"name": "key",
|
387
|
+
"type": "tuple"
|
388
|
+
}
|
389
|
+
],
|
390
|
+
"name": "toKey32",
|
391
|
+
"outputs": [
|
392
|
+
{
|
393
|
+
"internalType": "bytes32",
|
394
|
+
"name": "",
|
395
|
+
"type": "bytes32"
|
396
|
+
}
|
397
|
+
],
|
398
|
+
"stateMutability": "pure",
|
399
|
+
"type": "function"
|
400
|
+
},
|
401
|
+
{
|
402
|
+
"inputs": [
|
403
|
+
{
|
404
|
+
"internalType": "ObjectType",
|
405
|
+
"name": "objectType",
|
406
|
+
"type": "uint8"
|
407
|
+
},
|
408
|
+
{
|
409
|
+
"internalType": "KeyId",
|
410
|
+
"name": "id",
|
411
|
+
"type": "bytes31"
|
412
|
+
}
|
413
|
+
],
|
414
|
+
"name": "toKey32",
|
415
|
+
"outputs": [
|
416
|
+
{
|
417
|
+
"internalType": "bytes32",
|
418
|
+
"name": "",
|
419
|
+
"type": "bytes32"
|
420
|
+
}
|
421
|
+
],
|
422
|
+
"stateMutability": "pure",
|
423
|
+
"type": "function"
|
424
|
+
},
|
425
|
+
{
|
426
|
+
"inputs": [
|
427
|
+
{
|
428
|
+
"internalType": "NftId",
|
429
|
+
"name": "nftId",
|
430
|
+
"type": "uint96"
|
431
|
+
}
|
432
|
+
],
|
433
|
+
"name": "toKeyId",
|
434
|
+
"outputs": [
|
435
|
+
{
|
436
|
+
"internalType": "KeyId",
|
437
|
+
"name": "keyId",
|
438
|
+
"type": "bytes31"
|
439
|
+
}
|
440
|
+
],
|
441
|
+
"stateMutability": "pure",
|
442
|
+
"type": "function"
|
443
|
+
},
|
444
|
+
{
|
445
|
+
"inputs": [
|
446
|
+
{
|
447
|
+
"components": [
|
448
|
+
{
|
449
|
+
"internalType": "NftId",
|
450
|
+
"name": "nftId",
|
451
|
+
"type": "uint96"
|
452
|
+
},
|
453
|
+
{
|
454
|
+
"internalType": "NftId",
|
455
|
+
"name": "poolNftId",
|
456
|
+
"type": "uint96"
|
457
|
+
},
|
458
|
+
{
|
459
|
+
"internalType": "StateId",
|
460
|
+
"name": "state",
|
461
|
+
"type": "uint8"
|
462
|
+
},
|
463
|
+
{
|
464
|
+
"internalType": "bytes",
|
465
|
+
"name": "filter",
|
466
|
+
"type": "bytes"
|
467
|
+
},
|
468
|
+
{
|
469
|
+
"internalType": "uint256",
|
470
|
+
"name": "capitalAmount",
|
471
|
+
"type": "uint256"
|
472
|
+
},
|
473
|
+
{
|
474
|
+
"internalType": "uint256",
|
475
|
+
"name": "lockedAmount",
|
476
|
+
"type": "uint256"
|
477
|
+
},
|
478
|
+
{
|
479
|
+
"internalType": "uint256",
|
480
|
+
"name": "balanceAmount",
|
481
|
+
"type": "uint256"
|
482
|
+
},
|
483
|
+
{
|
484
|
+
"internalType": "Timestamp",
|
485
|
+
"name": "expiredAt",
|
486
|
+
"type": "uint40"
|
487
|
+
},
|
488
|
+
{
|
489
|
+
"internalType": "Timestamp",
|
490
|
+
"name": "closedAt",
|
491
|
+
"type": "uint40"
|
492
|
+
}
|
493
|
+
],
|
494
|
+
"internalType": "struct IBundle.BundleInfo",
|
495
|
+
"name": "info",
|
496
|
+
"type": "tuple"
|
497
|
+
}
|
498
|
+
],
|
499
|
+
"name": "updateBundleInfo",
|
500
|
+
"outputs": [],
|
501
|
+
"stateMutability": "nonpayable",
|
502
|
+
"type": "function"
|
503
|
+
}
|
504
|
+
],
|
505
|
+
"bytecode": "0x608060405234801561001057600080fd5b5060405161001d9061007e565b604051809103906000f080158015610039573d6000803e3d6000fd5b506000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061008b565b611b1980611a3483390190565b61199a8061009a6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063837dd0cb11610097578063c2722ecc11610066578063c2722ecc146102d2578063d92bb60d146102f0578063da3fe4121461030e578063f48016ce1461032c576100f5565b8063837dd0cb14610212578063a13df2ab14610242578063a4dc7d8614610272578063bc12c099146102a2576100f5565b806329e9b226116100d357806329e9b2261461017857806340a8cd9e146101965780635651ed82146101c657806360fa775b146101e2576100f5565b80630f94cc50146100fa578063198e89ee14610118578063229660f014610148575b600080fd5b61010261035c565b60405161010f9190610aee565b60405180910390f35b610132600480360381019061012d9190610e59565b610386565b60405161013f9190610aee565b60405180910390f35b610162600480360381019061015d9190610f76565b610451565b60405161016f9190610aee565b60405180910390f35b61018061046c565b60405161018d9190610fb2565b60405180910390f35b6101b060048036038101906101ab9190610fcd565b610471565b6040516101bd919061101b565b60405180910390f35b6101e060048036038101906101db9190610e59565b610518565b005b6101fc60048036038101906101f79190611062565b6105d9565b604051610209919061127f565b60405180910390f35b61022c600480360381019061022791906112a1565b6106a1565b604051610239919061132e565b60405180910390f35b61025c60048036038101906102579190610fcd565b6106cd565b6040516102699190610aee565b60405180910390f35b61028c60048036038101906102879190611062565b6106ef565b604051610299919061132e565b60405180910390f35b6102bc60048036038101906102b791906113a9565b610798565b6040516102c9919061127f565b60405180910390f35b6102da61090f565b6040516102e79190611492565b60405180910390f35b6102f8610938565b6040516103059190610aee565b60405180910390f35b610316610963565b6040516103239190610fb2565b60405180910390f35b610346600480360381019061034191906112a1565b610978565b6040516103539190610aee565b60405180910390f35b60ff60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681565b600061039582600001516106cd565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635dee4788826103dc6109d0565b856040516020016103ed919061127f565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161041a93929190611506565b600060405180830381600087803b15801561043457600080fd5b505af1158015610448573d6000803e3d6000fd5b50505050919050565b600061046582600001518360200151610978565b9050919050565b60f881565b600080826bffffffffffffffffffffffff1673__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__6308dc895e90916040518263ffffffff1660e01b81526004016104bb9190611553565b602060405180830381865af41580156104d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fc919061159a565b6bffffffffffffffffffffffff1690508060081b915050919050565b600061052782600001516106cd565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663212788f98284604051602001610577919061127f565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016105a39291906115c7565b600060405180830381600087803b1580156105bd57600080fd5b505af11580156105d1573d6000803e3d6000fd5b505050505050565b6105e1610a3b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166354f6127f846040518263ffffffff1660e01b815260040161063d9190610aee565b600060405180830381865afa15801561065a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906106839190611667565b9050808060200190518101906106999190611800565b915050919050565b6106a9610ab4565b60405180604001604052808460ff1681526020018360ff1916815250905092915050565b60006106e86106da6109d0565b6106e384610471565b610978565b9050919050565b6106f7610ab4565b600060f860ff1660ff60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916841660001c901c9050600060f860ff166101006107429190611886565b60ff1660ff60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916198516901b905060405180604001604052808360ff1681526020018260ff191681525092505050919050565b6107a0610a3b565b600062278d0090506040518061012001604052806107bd886109e1565b6bffffffffffffffffffffffff1681526020016107dc6201e2406109e1565b6bffffffffffffffffffffffff1681526020016107f76109eb565b60ff16815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152602001868152602001600081526020018681526020016108646109fc565b64ffffffffff1673__$d53880c81dc91c20799140d711e5ab8718$__63ef6c0d789091856040518363ffffffff1660e01b81526004016108a59291906118da565b602060405180830381865af41580156108c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e69190611903565b64ffffffffff1681526020016108fa610a0c565b64ffffffffff16815250915050949350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60ff60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161981565b60f860ff166101006109759190611886565b81565b6000808360ff16905060008360081c7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905060008160f860ff1684901b6109bf9190611930565b90508060001b935050505092915050565b60006109dc60d2610a1d565b905090565b6000819050919050565b60006109f76064610a27565b905090565b6000610a0742610a31565b905090565b6000610a186000610a31565b905090565b6000819050919050565b6000819050919050565b6000819050919050565b60405180610120016040528060006bffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600060ff16815260200160608152602001600081526020016000815260200160008152602001600064ffffffffff168152602001600064ffffffffff1681525090565b6040518060400160405280600060ff168152602001600060ff191681525090565b6000819050919050565b610ae881610ad5565b82525050565b6000602082019050610b036000830184610adf565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610b6b82610b22565b810181811067ffffffffffffffff82111715610b8a57610b89610b33565b5b80604052505050565b6000610b9d610b09565b9050610ba98282610b62565b919050565b600080fd5b60006bffffffffffffffffffffffff82169050919050565b610bd481610bb3565b8114610bdf57600080fd5b50565b600081359050610bf181610bcb565b92915050565b600060ff82169050919050565b610c0d81610bf7565b8114610c1857600080fd5b50565b600081359050610c2a81610c04565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff821115610c5557610c54610b33565b5b610c5e82610b22565b9050602081019050919050565b82818337600083830152505050565b6000610c8d610c8884610c3a565b610b93565b905082815260208101848484011115610ca957610ca8610c35565b5b610cb4848285610c6b565b509392505050565b600082601f830112610cd157610cd0610c30565b5b8135610ce1848260208601610c7a565b91505092915050565b6000819050919050565b610cfd81610cea565b8114610d0857600080fd5b50565b600081359050610d1a81610cf4565b92915050565b600064ffffffffff82169050919050565b610d3a81610d20565b8114610d4557600080fd5b50565b600081359050610d5781610d31565b92915050565b60006101208284031215610d7457610d73610b1d565b5b610d7f610120610b93565b90506000610d8f84828501610be2565b6000830152506020610da384828501610be2565b6020830152506040610db784828501610c1b565b604083015250606082013567ffffffffffffffff811115610ddb57610dda610bae565b5b610de784828501610cbc565b6060830152506080610dfb84828501610d0b565b60808301525060a0610e0f84828501610d0b565b60a08301525060c0610e2384828501610d0b565b60c08301525060e0610e3784828501610d48565b60e083015250610100610e4c84828501610d48565b6101008301525092915050565b600060208284031215610e6f57610e6e610b13565b5b600082013567ffffffffffffffff811115610e8d57610e8c610b18565b5b610e9984828501610d5d565b91505092915050565b610eab81610bf7565b8114610eb657600080fd5b50565b600081359050610ec881610ea2565b92915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082169050919050565b610f0381610ece565b8114610f0e57600080fd5b50565b600081359050610f2081610efa565b92915050565b600060408284031215610f3c57610f3b610b1d565b5b610f466040610b93565b90506000610f5684828501610eb9565b6000830152506020610f6a84828501610f11565b60208301525092915050565b600060408284031215610f8c57610f8b610b13565b5b6000610f9a84828501610f26565b91505092915050565b610fac81610bf7565b82525050565b6000602082019050610fc76000830184610fa3565b92915050565b600060208284031215610fe357610fe2610b13565b5b6000610ff184828501610be2565b91505092915050565b600061100582610ece565b9050919050565b61101581610ffa565b82525050565b6000602082019050611030600083018461100c565b92915050565b61103f81610ad5565b811461104a57600080fd5b50565b60008135905061105c81611036565b92915050565b60006020828403121561107857611077610b13565b5b60006110868482850161104d565b91505092915050565b6000819050919050565b60006110b46110af6110aa84610bb3565b61108f565b610bb3565b9050919050565b6110c481611099565b82525050565b60006110e56110e06110db84610bf7565b61108f565b610bf7565b9050919050565b6110f5816110ca565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561113557808201518184015260208101905061111a565b60008484015250505050565b600061114c826110fb565b6111568185611106565b9350611166818560208601611117565b61116f81610b22565b840191505092915050565b61118381610cea565b82525050565b60006111a461119f61119a84610d20565b61108f565b610d20565b9050919050565b6111b481611189565b82525050565b6000610120830160008301516111d360008601826110bb565b5060208301516111e660208601826110bb565b5060408301516111f960408601826110ec565b50606083015184820360608601526112118282611141565b9150506080830151611226608086018261117a565b5060a083015161123960a086018261117a565b5060c083015161124c60c086018261117a565b5060e083015161125f60e08601826111ab565b506101008301516112746101008601826111ab565b508091505092915050565b6000602082019050818103600083015261129981846111ba565b905092915050565b600080604083850312156112b8576112b7610b13565b5b60006112c685828601610eb9565b92505060206112d785828601610f11565b9150509250929050565b6112ea816110ca565b82525050565b6112f981610ffa565b82525050565b60408201600082015161131560008501826112e1565b50602082015161132860208501826112f0565b50505050565b600060408201905061134360008301846112ff565b92915050565b600080fd5b600080fd5b60008083601f84011261136957611368610c30565b5b8235905067ffffffffffffffff81111561138657611385611349565b5b6020830191508360018202830111156113a2576113a161134e565b5b9250929050565b600080600080606085870312156113c3576113c2610b13565b5b60006113d187828801610d0b565b94505060206113e287828801610d0b565b935050604085013567ffffffffffffffff81111561140357611402610b18565b5b61140f87828801611353565b925092505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061145861145361144e8461141d565b61108f565b61141d565b9050919050565b600061146a8261143d565b9050919050565b600061147c8261145f565b9050919050565b61148c81611471565b82525050565b60006020820190506114a76000830184611483565b92915050565b6114b6816110ca565b82525050565b600082825260208201905092915050565b60006114d8826110fb565b6114e281856114bc565b93506114f2818560208601611117565b6114fb81610b22565b840191505092915050565b600060608201905061151b6000830186610adf565b61152860208301856114ad565b818103604083015261153a81846114cd565b9050949350505050565b61154d81611099565b82525050565b60006020820190506115686000830184611544565b92915050565b61157781610bb3565b811461158257600080fd5b50565b6000815190506115948161156e565b92915050565b6000602082840312156115b0576115af610b13565b5b60006115be84828501611585565b91505092915050565b60006040820190506115dc6000830185610adf565b81810360208301526115ee81846114cd565b90509392505050565b600061160a61160584610c3a565b610b93565b90508281526020810184848401111561162657611625610c35565b5b611631848285611117565b509392505050565b600082601f83011261164e5761164d610c30565b5b815161165e8482602086016115f7565b91505092915050565b60006020828403121561167d5761167c610b13565b5b600082015167ffffffffffffffff81111561169b5761169a610b18565b5b6116a784828501611639565b91505092915050565b6000815190506116bf81610bcb565b92915050565b6000815190506116d481610c04565b92915050565b6000815190506116e981610cf4565b92915050565b6000815190506116fe81610d31565b92915050565b6000610120828403121561171b5761171a610b1d565b5b611726610120610b93565b90506000611736848285016116b0565b600083015250602061174a848285016116b0565b602083015250604061175e848285016116c5565b604083015250606082015167ffffffffffffffff81111561178257611781610bae565b5b61178e84828501611639565b60608301525060806117a2848285016116da565b60808301525060a06117b6848285016116da565b60a08301525060c06117ca848285016116da565b60c08301525060e06117de848285016116ef565b60e0830152506101006117f3848285016116ef565b6101008301525092915050565b60006020828403121561181657611815610b13565b5b600082015167ffffffffffffffff81111561183457611833610b18565b5b61184084828501611704565b91505092915050565b600061ffff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061189182611849565b915061189c83611849565b9250828203905061ffff8111156118b6576118b5611857565b5b92915050565b6118c581611189565b82525050565b6118d481610cea565b82525050565b60006040820190506118ef60008301856118bc565b6118fc60208301846118cb565b9392505050565b60006020828403121561191957611918610b13565b5b6000611927848285016116ef565b91505092915050565b600061193b82610cea565b915061194683610cea565b925082820190508082111561195e5761195d611857565b5b9291505056fea26469706673582212200fce5b8fd6e72939af465a8629ed2a123c6740ce0f8e244569033768bfe1b81e64736f6c63430008140033608060405234801561001057600080fd5b50611af9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638eaa6ac01161008c578063bb5b27e111610066578063bb5b27e114610283578063ecc86d00146102b3578063ee1ce841146102cf578063eea457c8146102ed576100ea565b80638eaa6ac0146101f3578063a5961b4c14610223578063b028ee1314610253576100ea565b8063426a0c88116100c8578063426a0c881461015957806345414df11461017757806354f6127f146101a75780635dee4788146101d7576100ea565b80630505c8c9146100ef578063212788f91461010d57806338a699a414610129575b600080fd5b6100f761031d565b6040516101049190610c8d565b60405180910390f35b61012760048036038101906101229190610e38565b61032c565b005b610143600480360381019061013e9190610e94565b61033d565b6040516101509190610edc565b60405180910390f35b6101616103ae565b60405161016e9190610c8d565b60405180910390f35b610191600480360381019061018c9190610ef7565b6103bd565b60405161019e9190610fbf565b60405180910390f35b6101c160048036038101906101bc9190610e94565b6103da565b6040516101ce9190611036565b60405180910390f35b6101f160048036038101906101ec9190611084565b610481565b005b61020d60048036038101906102089190610e94565b610673565b60405161021a9190611260565b60405180910390f35b61023d60048036038101906102389190610e94565b610804565b60405161024a91906112d7565b60405180910390f35b61026d60048036038101906102689190611393565b6108f2565b60405161027a9190611036565b60405180910390f35b61029d60048036038101906102989190611412565b61091b565b6040516102aa919061144e565b60405180910390f35b6102cd60048036038101906102c89190611495565b610943565b005b6102d7610b55565b6040516102e49190611527565b60405180910390f35b61030760048036038101906103029190611393565b610b62565b604051610314919061144e565b60405180910390f35b6000610327610b92565b905090565b6103398282600180610943565b5050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008084815260200190815260200160002060000160000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60006103b8610ba3565b905090565b6060818060200190518101906103d391906115b2565b9050919050565b606060008083815260200190815260200160002060010180546103fc9061162a565b80601f01602080910402602001604051908101604052809291908181526020018280546104289061162a565b80156104755780601f1061044a57610100808354040283529160200191610475565b820191906000526020600020905b81548152906001019060200180831161045857829003601f168201915b50505050509050919050565b60008060008581526020019081526020016000206000019050600073ffffffffffffffffffffffffffffffffffffffff168160000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461052d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610524906116a7565b60405180910390fd5b6000339050600061053c610bb4565b9050848360000160006101000a81548160ff021916908360ff160217905550818360000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808360000160156101000a81548163ffffffff021916908363ffffffff160217905550808360000160196101000a81548163ffffffff021916908363ffffffff1602179055508360008088815260200190815260200160002060010190816106069190611869565b5060018690806001815401808255809150506001900390600052602060002001600090919091909150557fc83c5f6b50f8ff37501f857e58e080a5842f6e8775ccfba956f2047ab6a9a35e8686846040516106639392919061194a565b60405180910390a1505050505050565b61067b610bd8565b600080838152602001908152602001600020604051806040016040529081600082016040518060800160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160159054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160199054906101000a900463ffffffff1663ffffffff1663ffffffff1681525050815260200160018201805461077b9061162a565b80601f01602080910402602001604051908101604052809291908181526020018280546107a79061162a565b80156107f45780601f106107c9576101008083540402835291602001916107f4565b820191906000526020600020905b8154815290600101906020018083116107d757829003601f168201915b5050505050815250509050919050565b61080c610bf8565b6000808381526020019081526020016000206000016040518060800160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160159054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160199054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050919050565b6060816040516020016109059190610fbf565b6040516020818303038152906040529050919050565b60006001828154811061093157610930611981565b5b90600052602060002001549050919050565b8260008086815260200190815260200160002060010190816109659190611869565b506000610970610bb4565b905082801561097c5750815b15610b025760008060008781526020019081526020016000206000019050600073ffffffffffffffffffffffffffffffffffffffff168160000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a24906119fc565b60405180910390fd5b8215610a96577f01e2a32423aae515ef6611a2ca406f2478536c74f7c875f9d6129997ee76ef68868260000160009054906101000a900460ff16338460000160159054906101000a900463ffffffff16604051610a8d9493929190611a2b565b60405180910390a15b338160000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818160000160156101000a81548163ffffffff021916908363ffffffff16021790555050610b4e565b8115610b4d577f01e2a32423aae515ef6611a2ca406f2478536c74f7c875f9d6129997ee76ef6885610b32610b92565b3384604051610b449493929190611a2b565b60405180910390a15b5b5050505050565b6000600180549050905090565b600081604051602001610b759190611aac565b604051602081830303815290604052805190602001209050919050565b6000610b9e60c8610bc4565b905090565b6000610baf6065610bc4565b905090565b6000610bbf43610bce565b905090565b6000819050919050565b6000819050919050565b6040518060400160405280610beb610bf8565b8152602001606081525090565b6040518060800160405280600060ff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600063ffffffff168152602001600063ffffffff1681525090565b600060ff82169050919050565b6000819050919050565b6000610c77610c72610c6d84610c45565b610c52565b610c45565b9050919050565b610c8781610c5c565b82525050565b6000602082019050610ca26000830184610c7e565b92915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610ccf81610cbc565b8114610cda57600080fd5b50565b600081359050610cec81610cc6565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610d4582610cfc565b810181811067ffffffffffffffff82111715610d6457610d63610d0d565b5b80604052505050565b6000610d77610ca8565b9050610d838282610d3c565b919050565b600067ffffffffffffffff821115610da357610da2610d0d565b5b610dac82610cfc565b9050602081019050919050565b82818337600083830152505050565b6000610ddb610dd684610d88565b610d6d565b905082815260208101848484011115610df757610df6610cf7565b5b610e02848285610db9565b509392505050565b600082601f830112610e1f57610e1e610cf2565b5b8135610e2f848260208601610dc8565b91505092915050565b60008060408385031215610e4f57610e4e610cb2565b5b6000610e5d85828601610cdd565b925050602083013567ffffffffffffffff811115610e7e57610e7d610cb7565b5b610e8a85828601610e0a565b9150509250929050565b600060208284031215610eaa57610ea9610cb2565b5b6000610eb884828501610cdd565b91505092915050565b60008115159050919050565b610ed681610ec1565b82525050565b6000602082019050610ef16000830184610ecd565b92915050565b600060208284031215610f0d57610f0c610cb2565b5b600082013567ffffffffffffffff811115610f2b57610f2a610cb7565b5b610f3784828501610e0a565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610f7a578082015181840152602081019050610f5f565b60008484015250505050565b6000610f9182610f40565b610f9b8185610f4b565b9350610fab818560208601610f5c565b610fb481610cfc565b840191505092915050565b60006020820190508181036000830152610fd98184610f86565b905092915050565b600081519050919050565b600082825260208201905092915050565b600061100882610fe1565b6110128185610fec565b9350611022818560208601610f5c565b61102b81610cfc565b840191505092915050565b600060208201905081810360008301526110508184610ffd565b905092915050565b61106181610c45565b811461106c57600080fd5b50565b60008135905061107e81611058565b92915050565b60008060006060848603121561109d5761109c610cb2565b5b60006110ab86828701610cdd565b93505060206110bc8682870161106f565b925050604084013567ffffffffffffffff8111156110dd576110dc610cb7565b5b6110e986828701610e0a565b9150509250925092565b6110fc81610c5c565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061112d82611102565b9050919050565b61113d81611122565b82525050565b600063ffffffff82169050919050565b600061116e61116961116484611143565b610c52565b611143565b9050919050565b61117e81611153565b82525050565b60808201600082015161119a60008501826110f3565b5060208201516111ad6020850182611134565b5060408201516111c06040850182611175565b5060608201516111d36060850182611175565b50505050565b600082825260208201905092915050565b60006111f582610fe1565b6111ff81856111d9565b935061120f818560208601610f5c565b61121881610cfc565b840191505092915050565b600060a08301600083015161123b6000860182611184565b506020830151848203608086015261125382826111ea565b9150508091505092915050565b6000602082019050818103600083015261127a8184611223565b905092915050565b60808201600082015161129860008501826110f3565b5060208201516112ab6020850182611134565b5060408201516112be6040850182611175565b5060608201516112d16060850182611175565b50505050565b60006080820190506112ec6000830184611282565b92915050565b600067ffffffffffffffff82111561130d5761130c610d0d565b5b61131682610cfc565b9050602081019050919050565b6000611336611331846112f2565b610d6d565b90508281526020810184848401111561135257611351610cf7565b5b61135d848285610db9565b509392505050565b600082601f83011261137a57611379610cf2565b5b813561138a848260208601611323565b91505092915050565b6000602082840312156113a9576113a8610cb2565b5b600082013567ffffffffffffffff8111156113c7576113c6610cb7565b5b6113d384828501611365565b91505092915050565b6000819050919050565b6113ef816113dc565b81146113fa57600080fd5b50565b60008135905061140c816113e6565b92915050565b60006020828403121561142857611427610cb2565b5b6000611436848285016113fd565b91505092915050565b61144881610cbc565b82525050565b6000602082019050611463600083018461143f565b92915050565b61147281610ec1565b811461147d57600080fd5b50565b60008135905061148f81611469565b92915050565b600080600080608085870312156114af576114ae610cb2565b5b60006114bd87828801610cdd565b945050602085013567ffffffffffffffff8111156114de576114dd610cb7565b5b6114ea87828801610e0a565b93505060406114fb87828801611480565b925050606061150c87828801611480565b91505092959194509250565b611521816113dc565b82525050565b600060208201905061153c6000830184611518565b92915050565b6000611555611550846112f2565b610d6d565b90508281526020810184848401111561157157611570610cf7565b5b61157c848285610f5c565b509392505050565b600082601f83011261159957611598610cf2565b5b81516115a9848260208601611542565b91505092915050565b6000602082840312156115c8576115c7610cb2565b5b600082015167ffffffffffffffff8111156115e6576115e5610cb7565b5b6115f284828501611584565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061164257607f821691505b602082108103611655576116546115fb565b5b50919050565b7f4552524f525f414c52454144595f435245415445440000000000000000000000600082015250565b6000611691601583610f4b565b915061169c8261165b565b602082019050919050565b600060208201905081810360008301526116c081611684565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026117297fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826116ec565b61173386836116ec565b95508019841693508086168417925050509392505050565b600061176661176161175c846113dc565b610c52565b6113dc565b9050919050565b6000819050919050565b6117808361174b565b61179461178c8261176d565b8484546116f9565b825550505050565b600090565b6117a961179c565b6117b4818484611777565b505050565b5b818110156117d8576117cd6000826117a1565b6001810190506117ba565b5050565b601f82111561181d576117ee816116c7565b6117f7846116dc565b81016020851015611806578190505b61181a611812856116dc565b8301826117b9565b50505b505050565b600082821c905092915050565b600061184060001984600802611822565b1980831691505092915050565b6000611859838361182f565b9150826002028217905092915050565b61187282610fe1565b67ffffffffffffffff81111561188b5761188a610d0d565b5b611895825461162a565b6118a08282856117dc565b600060209050601f8311600181146118d357600084156118c1578287015190505b6118cb858261184d565b865550611933565b601f1984166118e1866116c7565b60005b82811015611909578489015182556001820191506020850194506020810190506118e4565b868310156119265784890151611922601f89168261182f565b8355505b6001600288020188555050505b505050505050565b61194481611122565b82525050565b600060608201905061195f600083018661143f565b61196c6020830185610c7e565b611979604083018461193b565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552524f525f4e4f545f4558495354494e470000000000000000000000000000600082015250565b60006119e6601283610f4b565b91506119f1826119b0565b602082019050919050565b60006020820190508181036000830152611a15816119d9565b9050919050565b611a2581611153565b82525050565b6000608082019050611a40600083018761143f565b611a4d6020830186610c7e565b611a5a604083018561193b565b611a676060830184611a1c565b95945050505050565b600081905092915050565b6000611a8682610f40565b611a908185611a70565b9350611aa0818560208601610f5c565b80840191505092915050565b6000611ab88284611a7b565b91508190509291505056fea2646970667358221220d11cbdec198c6f8b80ab39c446016619955d7d5088ac05bbc15f3272e07ec4ed64736f6c63430008140033",
|
506
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063837dd0cb11610097578063c2722ecc11610066578063c2722ecc146102d2578063d92bb60d146102f0578063da3fe4121461030e578063f48016ce1461032c576100f5565b8063837dd0cb14610212578063a13df2ab14610242578063a4dc7d8614610272578063bc12c099146102a2576100f5565b806329e9b226116100d357806329e9b2261461017857806340a8cd9e146101965780635651ed82146101c657806360fa775b146101e2576100f5565b80630f94cc50146100fa578063198e89ee14610118578063229660f014610148575b600080fd5b61010261035c565b60405161010f9190610aee565b60405180910390f35b610132600480360381019061012d9190610e59565b610386565b60405161013f9190610aee565b60405180910390f35b610162600480360381019061015d9190610f76565b610451565b60405161016f9190610aee565b60405180910390f35b61018061046c565b60405161018d9190610fb2565b60405180910390f35b6101b060048036038101906101ab9190610fcd565b610471565b6040516101bd919061101b565b60405180910390f35b6101e060048036038101906101db9190610e59565b610518565b005b6101fc60048036038101906101f79190611062565b6105d9565b604051610209919061127f565b60405180910390f35b61022c600480360381019061022791906112a1565b6106a1565b604051610239919061132e565b60405180910390f35b61025c60048036038101906102579190610fcd565b6106cd565b6040516102699190610aee565b60405180910390f35b61028c60048036038101906102879190611062565b6106ef565b604051610299919061132e565b60405180910390f35b6102bc60048036038101906102b791906113a9565b610798565b6040516102c9919061127f565b60405180910390f35b6102da61090f565b6040516102e79190611492565b60405180910390f35b6102f8610938565b6040516103059190610aee565b60405180910390f35b610316610963565b6040516103239190610fb2565b60405180910390f35b610346600480360381019061034191906112a1565b610978565b6040516103539190610aee565b60405180910390f35b60ff60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681565b600061039582600001516106cd565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635dee4788826103dc6109d0565b856040516020016103ed919061127f565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161041a93929190611506565b600060405180830381600087803b15801561043457600080fd5b505af1158015610448573d6000803e3d6000fd5b50505050919050565b600061046582600001518360200151610978565b9050919050565b60f881565b600080826bffffffffffffffffffffffff1673__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__6308dc895e90916040518263ffffffff1660e01b81526004016104bb9190611553565b602060405180830381865af41580156104d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fc919061159a565b6bffffffffffffffffffffffff1690508060081b915050919050565b600061052782600001516106cd565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663212788f98284604051602001610577919061127f565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016105a39291906115c7565b600060405180830381600087803b1580156105bd57600080fd5b505af11580156105d1573d6000803e3d6000fd5b505050505050565b6105e1610a3b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166354f6127f846040518263ffffffff1660e01b815260040161063d9190610aee565b600060405180830381865afa15801561065a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906106839190611667565b9050808060200190518101906106999190611800565b915050919050565b6106a9610ab4565b60405180604001604052808460ff1681526020018360ff1916815250905092915050565b60006106e86106da6109d0565b6106e384610471565b610978565b9050919050565b6106f7610ab4565b600060f860ff1660ff60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916841660001c901c9050600060f860ff166101006107429190611886565b60ff1660ff60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916198516901b905060405180604001604052808360ff1681526020018260ff191681525092505050919050565b6107a0610a3b565b600062278d0090506040518061012001604052806107bd886109e1565b6bffffffffffffffffffffffff1681526020016107dc6201e2406109e1565b6bffffffffffffffffffffffff1681526020016107f76109eb565b60ff16815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152602001868152602001600081526020018681526020016108646109fc565b64ffffffffff1673__$d53880c81dc91c20799140d711e5ab8718$__63ef6c0d789091856040518363ffffffff1660e01b81526004016108a59291906118da565b602060405180830381865af41580156108c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e69190611903565b64ffffffffff1681526020016108fa610a0c565b64ffffffffff16815250915050949350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60ff60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161981565b60f860ff166101006109759190611886565b81565b6000808360ff16905060008360081c7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905060008160f860ff1684901b6109bf9190611930565b90508060001b935050505092915050565b60006109dc60d2610a1d565b905090565b6000819050919050565b60006109f76064610a27565b905090565b6000610a0742610a31565b905090565b6000610a186000610a31565b905090565b6000819050919050565b6000819050919050565b6000819050919050565b60405180610120016040528060006bffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff168152602001600060ff16815260200160608152602001600081526020016000815260200160008152602001600064ffffffffff168152602001600064ffffffffff1681525090565b6040518060400160405280600060ff168152602001600060ff191681525090565b6000819050919050565b610ae881610ad5565b82525050565b6000602082019050610b036000830184610adf565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610b6b82610b22565b810181811067ffffffffffffffff82111715610b8a57610b89610b33565b5b80604052505050565b6000610b9d610b09565b9050610ba98282610b62565b919050565b600080fd5b60006bffffffffffffffffffffffff82169050919050565b610bd481610bb3565b8114610bdf57600080fd5b50565b600081359050610bf181610bcb565b92915050565b600060ff82169050919050565b610c0d81610bf7565b8114610c1857600080fd5b50565b600081359050610c2a81610c04565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff821115610c5557610c54610b33565b5b610c5e82610b22565b9050602081019050919050565b82818337600083830152505050565b6000610c8d610c8884610c3a565b610b93565b905082815260208101848484011115610ca957610ca8610c35565b5b610cb4848285610c6b565b509392505050565b600082601f830112610cd157610cd0610c30565b5b8135610ce1848260208601610c7a565b91505092915050565b6000819050919050565b610cfd81610cea565b8114610d0857600080fd5b50565b600081359050610d1a81610cf4565b92915050565b600064ffffffffff82169050919050565b610d3a81610d20565b8114610d4557600080fd5b50565b600081359050610d5781610d31565b92915050565b60006101208284031215610d7457610d73610b1d565b5b610d7f610120610b93565b90506000610d8f84828501610be2565b6000830152506020610da384828501610be2565b6020830152506040610db784828501610c1b565b604083015250606082013567ffffffffffffffff811115610ddb57610dda610bae565b5b610de784828501610cbc565b6060830152506080610dfb84828501610d0b565b60808301525060a0610e0f84828501610d0b565b60a08301525060c0610e2384828501610d0b565b60c08301525060e0610e3784828501610d48565b60e083015250610100610e4c84828501610d48565b6101008301525092915050565b600060208284031215610e6f57610e6e610b13565b5b600082013567ffffffffffffffff811115610e8d57610e8c610b18565b5b610e9984828501610d5d565b91505092915050565b610eab81610bf7565b8114610eb657600080fd5b50565b600081359050610ec881610ea2565b92915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082169050919050565b610f0381610ece565b8114610f0e57600080fd5b50565b600081359050610f2081610efa565b92915050565b600060408284031215610f3c57610f3b610b1d565b5b610f466040610b93565b90506000610f5684828501610eb9565b6000830152506020610f6a84828501610f11565b60208301525092915050565b600060408284031215610f8c57610f8b610b13565b5b6000610f9a84828501610f26565b91505092915050565b610fac81610bf7565b82525050565b6000602082019050610fc76000830184610fa3565b92915050565b600060208284031215610fe357610fe2610b13565b5b6000610ff184828501610be2565b91505092915050565b600061100582610ece565b9050919050565b61101581610ffa565b82525050565b6000602082019050611030600083018461100c565b92915050565b61103f81610ad5565b811461104a57600080fd5b50565b60008135905061105c81611036565b92915050565b60006020828403121561107857611077610b13565b5b60006110868482850161104d565b91505092915050565b6000819050919050565b60006110b46110af6110aa84610bb3565b61108f565b610bb3565b9050919050565b6110c481611099565b82525050565b60006110e56110e06110db84610bf7565b61108f565b610bf7565b9050919050565b6110f5816110ca565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561113557808201518184015260208101905061111a565b60008484015250505050565b600061114c826110fb565b6111568185611106565b9350611166818560208601611117565b61116f81610b22565b840191505092915050565b61118381610cea565b82525050565b60006111a461119f61119a84610d20565b61108f565b610d20565b9050919050565b6111b481611189565b82525050565b6000610120830160008301516111d360008601826110bb565b5060208301516111e660208601826110bb565b5060408301516111f960408601826110ec565b50606083015184820360608601526112118282611141565b9150506080830151611226608086018261117a565b5060a083015161123960a086018261117a565b5060c083015161124c60c086018261117a565b5060e083015161125f60e08601826111ab565b506101008301516112746101008601826111ab565b508091505092915050565b6000602082019050818103600083015261129981846111ba565b905092915050565b600080604083850312156112b8576112b7610b13565b5b60006112c685828601610eb9565b92505060206112d785828601610f11565b9150509250929050565b6112ea816110ca565b82525050565b6112f981610ffa565b82525050565b60408201600082015161131560008501826112e1565b50602082015161132860208501826112f0565b50505050565b600060408201905061134360008301846112ff565b92915050565b600080fd5b600080fd5b60008083601f84011261136957611368610c30565b5b8235905067ffffffffffffffff81111561138657611385611349565b5b6020830191508360018202830111156113a2576113a161134e565b5b9250929050565b600080600080606085870312156113c3576113c2610b13565b5b60006113d187828801610d0b565b94505060206113e287828801610d0b565b935050604085013567ffffffffffffffff81111561140357611402610b18565b5b61140f87828801611353565b925092505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061145861145361144e8461141d565b61108f565b61141d565b9050919050565b600061146a8261143d565b9050919050565b600061147c8261145f565b9050919050565b61148c81611471565b82525050565b60006020820190506114a76000830184611483565b92915050565b6114b6816110ca565b82525050565b600082825260208201905092915050565b60006114d8826110fb565b6114e281856114bc565b93506114f2818560208601611117565b6114fb81610b22565b840191505092915050565b600060608201905061151b6000830186610adf565b61152860208301856114ad565b818103604083015261153a81846114cd565b9050949350505050565b61154d81611099565b82525050565b60006020820190506115686000830184611544565b92915050565b61157781610bb3565b811461158257600080fd5b50565b6000815190506115948161156e565b92915050565b6000602082840312156115b0576115af610b13565b5b60006115be84828501611585565b91505092915050565b60006040820190506115dc6000830185610adf565b81810360208301526115ee81846114cd565b90509392505050565b600061160a61160584610c3a565b610b93565b90508281526020810184848401111561162657611625610c35565b5b611631848285611117565b509392505050565b600082601f83011261164e5761164d610c30565b5b815161165e8482602086016115f7565b91505092915050565b60006020828403121561167d5761167c610b13565b5b600082015167ffffffffffffffff81111561169b5761169a610b18565b5b6116a784828501611639565b91505092915050565b6000815190506116bf81610bcb565b92915050565b6000815190506116d481610c04565b92915050565b6000815190506116e981610cf4565b92915050565b6000815190506116fe81610d31565b92915050565b6000610120828403121561171b5761171a610b1d565b5b611726610120610b93565b90506000611736848285016116b0565b600083015250602061174a848285016116b0565b602083015250604061175e848285016116c5565b604083015250606082015167ffffffffffffffff81111561178257611781610bae565b5b61178e84828501611639565b60608301525060806117a2848285016116da565b60808301525060a06117b6848285016116da565b60a08301525060c06117ca848285016116da565b60c08301525060e06117de848285016116ef565b60e0830152506101006117f3848285016116ef565b6101008301525092915050565b60006020828403121561181657611815610b13565b5b600082015167ffffffffffffffff81111561183457611833610b18565b5b61184084828501611704565b91505092915050565b600061ffff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061189182611849565b915061189c83611849565b9250828203905061ffff8111156118b6576118b5611857565b5b92915050565b6118c581611189565b82525050565b6118d481610cea565b82525050565b60006040820190506118ef60008301856118bc565b6118fc60208301846118cb565b9392505050565b60006020828403121561191957611918610b13565b5b6000611927848285016116ef565b91505092915050565b600061193b82610cea565b915061194683610cea565b925082820190508082111561195e5761195d611857565b5b9291505056fea26469706673582212200fce5b8fd6e72939af465a8629ed2a123c6740ce0f8e244569033768bfe1b81e64736f6c63430008140033",
|
507
|
+
"linkReferences": {
|
508
|
+
"contracts/types/NftId.sol": {
|
509
|
+
"NftIdLib": [
|
510
|
+
{
|
511
|
+
"length": 20,
|
512
|
+
"start": 1311
|
513
|
+
}
|
514
|
+
]
|
515
|
+
},
|
516
|
+
"contracts/types/Timestamp.sol": {
|
517
|
+
"TimestampLib": [
|
518
|
+
{
|
519
|
+
"length": 20,
|
520
|
+
"start": 2311
|
521
|
+
}
|
522
|
+
]
|
523
|
+
}
|
524
|
+
},
|
525
|
+
"deployedLinkReferences": {
|
526
|
+
"contracts/types/NftId.sol": {
|
527
|
+
"NftIdLib": [
|
528
|
+
{
|
529
|
+
"length": 20,
|
530
|
+
"start": 1157
|
531
|
+
}
|
532
|
+
]
|
533
|
+
},
|
534
|
+
"contracts/types/Timestamp.sol": {
|
535
|
+
"TimestampLib": [
|
536
|
+
{
|
537
|
+
"length": 20,
|
538
|
+
"start": 2157
|
539
|
+
}
|
540
|
+
]
|
541
|
+
}
|
542
|
+
}
|
543
|
+
}
|