@etherisc/gif-next 0.0.2-d911522 → 0.0.2-dc7e4cb-141
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +125 -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/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 +1554 -348
- 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 +10 -0
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +10 -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/test/Usdc.sol/USDC.dbg.json +4 -0
- package/artifacts/contracts/test/Usdc.sol/USDC.json +338 -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 +2 -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 +98 -59
- 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/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 +10 -0
- package/contracts/instance/module/risk/RiskModule.sol +8 -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/test/Usdc.sol +26 -0
- package/contracts/types/AddressSet.sol +58 -0
- package/contracts/types/Blocknumber.sol +76 -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 +115 -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 +78 -76
- package/contracts/types/Version.sol +95 -0
- package/package.json +19 -5
- 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
@@ -44,15 +44,41 @@
|
|
44
44
|
},
|
45
45
|
{
|
46
46
|
"inputs": [],
|
47
|
-
"name": "
|
47
|
+
"name": "ROUNDING_DOWN",
|
48
48
|
"outputs": [
|
49
49
|
{
|
50
|
-
"internalType": "
|
50
|
+
"internalType": "uint8",
|
51
51
|
"name": "",
|
52
|
-
"type": "
|
52
|
+
"type": "uint8"
|
53
53
|
}
|
54
54
|
],
|
55
|
-
"stateMutability": "
|
55
|
+
"stateMutability": "pure",
|
56
|
+
"type": "function"
|
57
|
+
},
|
58
|
+
{
|
59
|
+
"inputs": [],
|
60
|
+
"name": "ROUNDING_HALF_UP",
|
61
|
+
"outputs": [
|
62
|
+
{
|
63
|
+
"internalType": "uint8",
|
64
|
+
"name": "",
|
65
|
+
"type": "uint8"
|
66
|
+
}
|
67
|
+
],
|
68
|
+
"stateMutability": "pure",
|
69
|
+
"type": "function"
|
70
|
+
},
|
71
|
+
{
|
72
|
+
"inputs": [],
|
73
|
+
"name": "ROUNDING_UP",
|
74
|
+
"outputs": [
|
75
|
+
{
|
76
|
+
"internalType": "uint8",
|
77
|
+
"name": "",
|
78
|
+
"type": "uint8"
|
79
|
+
}
|
80
|
+
],
|
81
|
+
"stateMutability": "pure",
|
56
82
|
"type": "function"
|
57
83
|
},
|
58
84
|
{
|
@@ -189,14 +215,19 @@
|
|
189
215
|
"internalType": "UFixed",
|
190
216
|
"name": "a",
|
191
217
|
"type": "uint256"
|
218
|
+
},
|
219
|
+
{
|
220
|
+
"internalType": "UFixed",
|
221
|
+
"name": "b",
|
222
|
+
"type": "uint256"
|
192
223
|
}
|
193
224
|
],
|
194
|
-
"name": "
|
225
|
+
"name": "gt",
|
195
226
|
"outputs": [
|
196
227
|
{
|
197
|
-
"internalType": "
|
198
|
-
"name": "",
|
199
|
-
"type": "
|
228
|
+
"internalType": "bool",
|
229
|
+
"name": "isGreaterThan",
|
230
|
+
"type": "bool"
|
200
231
|
}
|
201
232
|
],
|
202
233
|
"stateMutability": "pure",
|
@@ -210,17 +241,17 @@
|
|
210
241
|
"type": "uint256"
|
211
242
|
},
|
212
243
|
{
|
213
|
-
"internalType": "
|
214
|
-
"name": "
|
215
|
-
"type": "
|
244
|
+
"internalType": "UFixed",
|
245
|
+
"name": "b",
|
246
|
+
"type": "uint256"
|
216
247
|
}
|
217
248
|
],
|
218
|
-
"name": "
|
249
|
+
"name": "gte",
|
219
250
|
"outputs": [
|
220
251
|
{
|
221
|
-
"internalType": "
|
222
|
-
"name": "",
|
223
|
-
"type": "
|
252
|
+
"internalType": "bool",
|
253
|
+
"name": "isGreaterThan",
|
254
|
+
"type": "bool"
|
224
255
|
}
|
225
256
|
],
|
226
257
|
"stateMutability": "pure",
|
@@ -232,18 +263,13 @@
|
|
232
263
|
"internalType": "UFixed",
|
233
264
|
"name": "a",
|
234
265
|
"type": "uint256"
|
235
|
-
},
|
236
|
-
{
|
237
|
-
"internalType": "UFixed",
|
238
|
-
"name": "b",
|
239
|
-
"type": "uint256"
|
240
266
|
}
|
241
267
|
],
|
242
|
-
"name": "
|
268
|
+
"name": "gtz",
|
243
269
|
"outputs": [
|
244
270
|
{
|
245
271
|
"internalType": "bool",
|
246
|
-
"name": "
|
272
|
+
"name": "isZero",
|
247
273
|
"type": "bool"
|
248
274
|
}
|
249
275
|
],
|
@@ -263,7 +289,7 @@
|
|
263
289
|
"type": "uint256"
|
264
290
|
}
|
265
291
|
],
|
266
|
-
"name": "
|
292
|
+
"name": "lt",
|
267
293
|
"outputs": [
|
268
294
|
{
|
269
295
|
"internalType": "bool",
|
@@ -280,13 +306,18 @@
|
|
280
306
|
"internalType": "UFixed",
|
281
307
|
"name": "a",
|
282
308
|
"type": "uint256"
|
309
|
+
},
|
310
|
+
{
|
311
|
+
"internalType": "UFixed",
|
312
|
+
"name": "b",
|
313
|
+
"type": "uint256"
|
283
314
|
}
|
284
315
|
],
|
285
|
-
"name": "
|
316
|
+
"name": "lte",
|
286
317
|
"outputs": [
|
287
318
|
{
|
288
319
|
"internalType": "bool",
|
289
|
-
"name": "
|
320
|
+
"name": "isGreaterThan",
|
290
321
|
"type": "bool"
|
291
322
|
}
|
292
323
|
],
|
@@ -296,12 +327,17 @@
|
|
296
327
|
{
|
297
328
|
"inputs": [
|
298
329
|
{
|
299
|
-
"internalType": "
|
330
|
+
"internalType": "UFixed",
|
300
331
|
"name": "a",
|
301
332
|
"type": "uint256"
|
333
|
+
},
|
334
|
+
{
|
335
|
+
"internalType": "UFixed",
|
336
|
+
"name": "b",
|
337
|
+
"type": "uint256"
|
302
338
|
}
|
303
339
|
],
|
304
|
-
"name": "
|
340
|
+
"name": "mul",
|
305
341
|
"outputs": [
|
306
342
|
{
|
307
343
|
"internalType": "UFixed",
|
@@ -315,17 +351,17 @@
|
|
315
351
|
{
|
316
352
|
"inputs": [
|
317
353
|
{
|
318
|
-
"internalType": "
|
354
|
+
"internalType": "UFixed",
|
319
355
|
"name": "a",
|
320
356
|
"type": "uint256"
|
321
357
|
},
|
322
358
|
{
|
323
|
-
"internalType": "
|
324
|
-
"name": "
|
325
|
-
"type": "
|
359
|
+
"internalType": "UFixed",
|
360
|
+
"name": "b",
|
361
|
+
"type": "uint256"
|
326
362
|
}
|
327
363
|
],
|
328
|
-
"name": "
|
364
|
+
"name": "sub",
|
329
365
|
"outputs": [
|
330
366
|
{
|
331
367
|
"internalType": "UFixed",
|
@@ -342,19 +378,14 @@
|
|
342
378
|
"internalType": "UFixed",
|
343
379
|
"name": "a",
|
344
380
|
"type": "uint256"
|
345
|
-
},
|
346
|
-
{
|
347
|
-
"internalType": "UFixed",
|
348
|
-
"name": "b",
|
349
|
-
"type": "uint256"
|
350
381
|
}
|
351
382
|
],
|
352
|
-
"name": "
|
383
|
+
"name": "toInt",
|
353
384
|
"outputs": [
|
354
385
|
{
|
355
|
-
"internalType": "
|
356
|
-
"name": "
|
357
|
-
"type": "
|
386
|
+
"internalType": "uint256",
|
387
|
+
"name": "",
|
388
|
+
"type": "uint256"
|
358
389
|
}
|
359
390
|
],
|
360
391
|
"stateMutability": "pure",
|
@@ -368,17 +399,17 @@
|
|
368
399
|
"type": "uint256"
|
369
400
|
},
|
370
401
|
{
|
371
|
-
"internalType": "
|
372
|
-
"name": "
|
373
|
-
"type": "
|
402
|
+
"internalType": "uint8",
|
403
|
+
"name": "rounding",
|
404
|
+
"type": "uint8"
|
374
405
|
}
|
375
406
|
],
|
376
|
-
"name": "
|
407
|
+
"name": "toIntWithRounding",
|
377
408
|
"outputs": [
|
378
409
|
{
|
379
|
-
"internalType": "
|
380
|
-
"name": "
|
381
|
-
"type": "
|
410
|
+
"internalType": "uint256",
|
411
|
+
"name": "",
|
412
|
+
"type": "uint256"
|
382
413
|
}
|
383
414
|
],
|
384
415
|
"stateMutability": "pure",
|
@@ -387,17 +418,17 @@
|
|
387
418
|
{
|
388
419
|
"inputs": [
|
389
420
|
{
|
390
|
-
"internalType": "
|
421
|
+
"internalType": "uint256",
|
391
422
|
"name": "a",
|
392
423
|
"type": "uint256"
|
393
424
|
},
|
394
425
|
{
|
395
|
-
"internalType": "
|
396
|
-
"name": "
|
397
|
-
"type": "
|
426
|
+
"internalType": "int8",
|
427
|
+
"name": "exp",
|
428
|
+
"type": "int8"
|
398
429
|
}
|
399
430
|
],
|
400
|
-
"name": "
|
431
|
+
"name": "toUFixed",
|
401
432
|
"outputs": [
|
402
433
|
{
|
403
434
|
"internalType": "UFixed",
|
@@ -411,17 +442,25 @@
|
|
411
442
|
{
|
412
443
|
"inputs": [
|
413
444
|
{
|
414
|
-
"internalType": "
|
445
|
+
"internalType": "uint256",
|
415
446
|
"name": "a",
|
416
447
|
"type": "uint256"
|
417
|
-
}
|
448
|
+
}
|
449
|
+
],
|
450
|
+
"name": "toUFixed",
|
451
|
+
"outputs": [
|
418
452
|
{
|
419
453
|
"internalType": "UFixed",
|
420
|
-
"name": "
|
454
|
+
"name": "",
|
421
455
|
"type": "uint256"
|
422
456
|
}
|
423
457
|
],
|
424
|
-
"
|
458
|
+
"stateMutability": "pure",
|
459
|
+
"type": "function"
|
460
|
+
},
|
461
|
+
{
|
462
|
+
"inputs": [],
|
463
|
+
"name": "zero",
|
425
464
|
"outputs": [
|
426
465
|
{
|
427
466
|
"internalType": "UFixed",
|
@@ -433,8 +472,8 @@
|
|
433
472
|
"type": "function"
|
434
473
|
}
|
435
474
|
],
|
436
|
-
"bytecode": "0x61147f610053600b82828239805160001a607314610046577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106101415760003560e01c8063a391c15b116100c2578063d05b045211610086578063d05b0452146103e0578063dd45daa114610410578063ea6515c414610440578063eb646d7114610470578063f30ed5981461048e578063f70dd33e146104ac57610141565b8063a391c15b146102f0578063b477332914610320578063b67d77c514610350578063c8a4ac9c14610380578063cc8b7b73146103b057610141565b806332148d731161010957806332148d7314610200578063753b14a514610230578063771602f7146102605780637a858b971461029057806392ae8ce0146102c057610141565b8063059f8b1614610146578063118fc88c146101645780631a12cd471461019457806321e5749b146101b2578063313ce567146101e2575b600080fd5b61014e6104dc565b60405161015b9190610b3f565b60405180910390f35b61017e60048036038101906101799190610b8b565b6104f0565b60405161018b9190610be6565b60405180910390f35b61019c610504565b6040516101a99190610c1d565b60405180910390f35b6101cc60048036038101906101c79190610b8b565b610509565b6040516101d99190610be6565b60405180910390f35b6101ea61051d565b6040516101f79190610b3f565b60405180910390f35b61021a60048036038101906102159190610b8b565b610529565b6040516102279190610be6565b60405180910390f35b61024a60048036038101906102459190610c38565b61053d565b6040516102579190610be6565b60405180910390f35b61027a60048036038101906102759190610b8b565b61054f565b6040516102879190610ca0565b60405180910390f35b6102aa60048036038101906102a59190610c38565b610563565b6040516102b79190610be6565b60405180910390f35b6102da60048036038101906102d59190610ce7565b610575565b6040516102e79190610ca0565b60405180910390f35b61030a60048036038101906103059190610b8b565b61059a565b6040516103179190610ca0565b60405180910390f35b61033a60048036038101906103359190610b8b565b6105ae565b6040516103479190610be6565b60405180910390f35b61036a60048036038101906103659190610b8b565b6105c2565b6040516103779190610ca0565b60405180910390f35b61039a60048036038101906103959190610b8b565b6105d6565b6040516103a79190610ca0565b60405180910390f35b6103ca60048036038101906103c59190610b8b565b6105ea565b6040516103d79190610ca0565b60405180910390f35b6103fa60048036038101906103f59190610c38565b6105fe565b6040516104079190610b3f565b60405180910390f35b61042a60048036038101906104259190610d40565b610612565b6040516104379190610ca0565b60405180910390f35b61045a60048036038101906104559190610b8b565b6106f4565b6040516104679190610be6565b60405180910390f35b610478610708565b6040516104859190610b3f565b60405180910390f35b610496610728565b6040516104a39190610df7565b60405180910390f35b6104c660048036038101906104c19190610e37565b61072d565b6040516104d39190610b3f565b60405180910390f35b601260000b600a6104ed9190610fd9565b81565b60006104fc838361081e565b905092915050565b601281565b6000610515838361082b565b905092915050565b6000601260ff16905090565b60006105358383610838565b905092915050565b600061054882610845565b9050919050565b600061055b8383610851565b905092915050565b600061056e82610867565b9050919050565b6000601260000b600a6105889190610fd9565b826105939190611024565b9050919050565b60006105a68383610873565b905092915050565b60006105ba83836108d2565b905092915050565b60006105ce83836108e0565b905092915050565b60006105e2838361093f565b905092915050565b60006105f6838361095c565b905092915050565b600061060b82600261072d565b9050919050565b6000808260126106229190611066565b60000b1215610666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065d9061111c565b60405180910390fd5b60126002610674919061113c565b60000b8260126106849190611066565b60000b13156106c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bf906111c5565b60405180910390fd5b8160126106d59190611066565b600a6106e191906111f2565b836106ec9190611024565b905092915050565b60006107008383610991565b905092915050565b6002601260000b600a61071b9190610fd9565b610725919061126c565b81565b600281565b600060028081111561074257610741610d80565b5b82600281111561075557610754610d80565b5b036107a65761079f6002601260000b600a6107709190610fd9565b61077a919061126c565b84610785919061129d565b6001601260000b600a6107989190610fd9565b600061099f565b9050610818565b600060028111156107ba576107b9610d80565b5b8260028111156107cd576107cc610d80565b5b036107f7576107f0836001601260000b600a6107e99190610fd9565b600061099f565b9050610818565b610815836001601260000b600a61080e9190610fd9565b600161099f565b90505b92915050565b6000818310905092915050565b6000818311905092915050565b6000818314905092915050565b60008082149050919050565b6000818361085f919061129d565b905092915050565b60008082119050919050565b60008082116108b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ae9061131d565b60405180910390fd5b6108ca83670de0b6b3a764000084610a15565b905092915050565b600081831015905092915050565b60006108ec83836108d2565b61092b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092290611389565b60405180910390fd5b818361093791906113a9565b905092915050565b60006109548383670de0b6b3a7640000610a15565b905092915050565b6000610968838361082b565b1561097e5761097783836108e0565b905061098b565b61098882846108e0565b90505b92915050565b600081831115905092915050565b6000806109ad868686610a15565b9050600160028111156109c3576109c2610d80565b5b8360028111156109d6576109d5610d80565b5b1480156109f45750600084806109ef576109ee61123d565b5b868809115b15610a0957600181610a06919061129d565b90505b80915050949350505050565b6000806000801985870985870292508281108382030391505060008103610a5057838281610a4657610a4561123d565b5b0492505050610b1f565b808411610a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8990611429565b60405180910390fd5b60008486880990508281118203915080830392506000600186190186169050808604955080840493506001818260000304019050808302841793506000600287600302189050808702600203810290508087026002038102905080870260020381029050808702600203810290508087026002038102905080870260020381029050808502955050505050505b9392505050565b6000819050919050565b610b3981610b26565b82525050565b6000602082019050610b546000830184610b30565b92915050565b600080fd5b610b6881610b26565b8114610b7357600080fd5b50565b600081359050610b8581610b5f565b92915050565b60008060408385031215610ba257610ba1610b5a565b5b6000610bb085828601610b76565b9250506020610bc185828601610b76565b9150509250929050565b60008115159050919050565b610be081610bcb565b82525050565b6000602082019050610bfb6000830184610bd7565b92915050565b60008160000b9050919050565b610c1781610c01565b82525050565b6000602082019050610c326000830184610c0e565b92915050565b600060208284031215610c4e57610c4d610b5a565b5b6000610c5c84828501610b76565b91505092915050565b6000819050919050565b6000610c8a610c85610c8084610b26565b610c65565b610b26565b9050919050565b610c9a81610c6f565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b610cc481610b26565b8114610ccf57600080fd5b50565b600081359050610ce181610cbb565b92915050565b600060208284031215610cfd57610cfc610b5a565b5b6000610d0b84828501610cd2565b91505092915050565b610d1d81610c01565b8114610d2857600080fd5b50565b600081359050610d3a81610d14565b92915050565b60008060408385031215610d5757610d56610b5a565b5b6000610d6585828601610cd2565b9250506020610d7685828601610d2b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60038110610dc057610dbf610d80565b5b50565b6000819050610dd182610daf565b919050565b6000610de182610dc3565b9050919050565b610df181610dd6565b82525050565b6000602082019050610e0c6000830184610de8565b92915050565b60038110610e1f57600080fd5b50565b600081359050610e3181610e12565b92915050565b60008060408385031215610e4e57610e4d610b5a565b5b6000610e5c85828601610b76565b9250506020610e6d85828601610e22565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115610efd57808604811115610ed957610ed8610e77565b5b6001851615610ee85780820291505b8081029050610ef685610ea6565b9450610ebd565b94509492505050565b600082610f165760019050610fd2565b81610f245760009050610fd2565b8160018114610f3a5760028114610f4457610f73565b6001915050610fd2565b60ff841115610f5657610f55610e77565b5b8360020a915084821115610f6d57610f6c610e77565b5b50610fd2565b5060208310610133831016604e8410600b8410161715610fa85782820a905083811115610fa357610fa2610e77565b5b610fd2565b610fb58484846001610eb3565b92509050818404811115610fcc57610fcb610e77565b5b81810290505b9392505050565b6000610fe482610b26565b9150610fef83610b26565b925061101c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610f06565b905092915050565b600061102f82610b26565b915061103a83610b26565b925082820261104881610b26565b9150828204841483151761105f5761105e610e77565b5b5092915050565b600061107182610c01565b915061107c83610c01565b925082820190507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808112607f821317156110b9576110b8610e77565b5b92915050565b600082825260208201905092915050565b7f4552524f523a464d2d3031303a4558504f4e454e545f544f4f5f534d414c4c00600082015250565b6000611106601f836110bf565b9150611111826110d0565b602082019050919050565b60006020820190508181036000830152611135816110f9565b9050919050565b600061114782610c01565b915061115283610c01565b925082820261116081610c01565b915080821461117257611171610e77565b5b5092915050565b7f4552524f523a464d2d3031313a4558504f4e454e545f544f4f5f4c4152474500600082015250565b60006111af601f836110bf565b91506111ba82611179565b602082019050919050565b600060208201905081810360008301526111de816111a2565b9050919050565b600060ff82169050919050565b60006111fd82610b26565b9150611208836111e5565b92506112357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610f06565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061127782610b26565b915061128283610b26565b9250826112925761129161123d565b5b828204905092915050565b60006112a882610b26565b91506112b383610b26565b92508282019050808211156112cb576112ca610e77565b5b92915050565b7f4552524f523a55464d2d3032303a44495649534f525f5a45524f000000000000600082015250565b6000611307601a836110bf565b9150611312826112d1565b602082019050919050565b60006020820190508181036000830152611336816112fa565b9050919050565b7f4552524f523a55464d2d3031303a4e454741544956455f524553554c54000000600082015250565b6000611373601d836110bf565b915061137e8261133d565b602082019050919050565b600060208201905081810360008301526113a281611366565b9050919050565b60006113b482610b26565b91506113bf83610b26565b92508282039050818111156113d7576113d6610e77565b5b92915050565b7f4d6174683a206d756c446976206f766572666c6f770000000000000000000000600082015250565b60006114136015836110bf565b915061141e826113dd565b602082019050919050565b6000602082019050818103600083015261144281611406565b905091905056fea2646970667358221220a79031ff9896c283cf59d6d16d72edaffbec2a580e23470a5ecc007dabdbca1864736f6c63430008140033",
|
437
|
-
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106101415760003560e01c8063a391c15b116100c2578063d05b045211610086578063d05b0452146103e0578063dd45daa114610410578063ea6515c414610440578063eb646d7114610470578063f30ed5981461048e578063f70dd33e146104ac57610141565b8063a391c15b146102f0578063b477332914610320578063b67d77c514610350578063c8a4ac9c14610380578063cc8b7b73146103b057610141565b806332148d731161010957806332148d7314610200578063753b14a514610230578063771602f7146102605780637a858b971461029057806392ae8ce0146102c057610141565b8063059f8b1614610146578063118fc88c146101645780631a12cd471461019457806321e5749b146101b2578063313ce567146101e2575b600080fd5b61014e6104dc565b60405161015b9190610b3f565b60405180910390f35b61017e60048036038101906101799190610b8b565b6104f0565b60405161018b9190610be6565b60405180910390f35b61019c610504565b6040516101a99190610c1d565b60405180910390f35b6101cc60048036038101906101c79190610b8b565b610509565b6040516101d99190610be6565b60405180910390f35b6101ea61051d565b6040516101f79190610b3f565b60405180910390f35b61021a60048036038101906102159190610b8b565b610529565b6040516102279190610be6565b60405180910390f35b61024a60048036038101906102459190610c38565b61053d565b6040516102579190610be6565b60405180910390f35b61027a60048036038101906102759190610b8b565b61054f565b6040516102879190610ca0565b60405180910390f35b6102aa60048036038101906102a59190610c38565b610563565b6040516102b79190610be6565b60405180910390f35b6102da60048036038101906102d59190610ce7565b610575565b6040516102e79190610ca0565b60405180910390f35b61030a60048036038101906103059190610b8b565b61059a565b6040516103179190610ca0565b60405180910390f35b61033a60048036038101906103359190610b8b565b6105ae565b6040516103479190610be6565b60405180910390f35b61036a60048036038101906103659190610b8b565b6105c2565b6040516103779190610ca0565b60405180910390f35b61039a60048036038101906103959190610b8b565b6105d6565b6040516103a79190610ca0565b60405180910390f35b6103ca60048036038101906103c59190610b8b565b6105ea565b6040516103d79190610ca0565b60405180910390f35b6103fa60048036038101906103f59190610c38565b6105fe565b6040516104079190610b3f565b60405180910390f35b61042a60048036038101906104259190610d40565b610612565b6040516104379190610ca0565b60405180910390f35b61045a60048036038101906104559190610b8b565b6106f4565b6040516104679190610be6565b60405180910390f35b610478610708565b6040516104859190610b3f565b60405180910390f35b610496610728565b6040516104a39190610df7565b60405180910390f35b6104c660048036038101906104c19190610e37565b61072d565b6040516104d39190610b3f565b60405180910390f35b601260000b600a6104ed9190610fd9565b81565b60006104fc838361081e565b905092915050565b601281565b6000610515838361082b565b905092915050565b6000601260ff16905090565b60006105358383610838565b905092915050565b600061054882610845565b9050919050565b600061055b8383610851565b905092915050565b600061056e82610867565b9050919050565b6000601260000b600a6105889190610fd9565b826105939190611024565b9050919050565b60006105a68383610873565b905092915050565b60006105ba83836108d2565b905092915050565b60006105ce83836108e0565b905092915050565b60006105e2838361093f565b905092915050565b60006105f6838361095c565b905092915050565b600061060b82600261072d565b9050919050565b6000808260126106229190611066565b60000b1215610666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065d9061111c565b60405180910390fd5b60126002610674919061113c565b60000b8260126106849190611066565b60000b13156106c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bf906111c5565b60405180910390fd5b8160126106d59190611066565b600a6106e191906111f2565b836106ec9190611024565b905092915050565b60006107008383610991565b905092915050565b6002601260000b600a61071b9190610fd9565b610725919061126c565b81565b600281565b600060028081111561074257610741610d80565b5b82600281111561075557610754610d80565b5b036107a65761079f6002601260000b600a6107709190610fd9565b61077a919061126c565b84610785919061129d565b6001601260000b600a6107989190610fd9565b600061099f565b9050610818565b600060028111156107ba576107b9610d80565b5b8260028111156107cd576107cc610d80565b5b036107f7576107f0836001601260000b600a6107e99190610fd9565b600061099f565b9050610818565b610815836001601260000b600a61080e9190610fd9565b600161099f565b90505b92915050565b6000818310905092915050565b6000818311905092915050565b6000818314905092915050565b60008082149050919050565b6000818361085f919061129d565b905092915050565b60008082119050919050565b60008082116108b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ae9061131d565b60405180910390fd5b6108ca83670de0b6b3a764000084610a15565b905092915050565b600081831015905092915050565b60006108ec83836108d2565b61092b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092290611389565b60405180910390fd5b818361093791906113a9565b905092915050565b60006109548383670de0b6b3a7640000610a15565b905092915050565b6000610968838361082b565b1561097e5761097783836108e0565b905061098b565b61098882846108e0565b90505b92915050565b600081831115905092915050565b6000806109ad868686610a15565b9050600160028111156109c3576109c2610d80565b5b8360028111156109d6576109d5610d80565b5b1480156109f45750600084806109ef576109ee61123d565b5b868809115b15610a0957600181610a06919061129d565b90505b80915050949350505050565b6000806000801985870985870292508281108382030391505060008103610a5057838281610a4657610a4561123d565b5b0492505050610b1f565b808411610a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8990611429565b60405180910390fd5b60008486880990508281118203915080830392506000600186190186169050808604955080840493506001818260000304019050808302841793506000600287600302189050808702600203810290508087026002038102905080870260020381029050808702600203810290508087026002038102905080870260020381029050808502955050505050505b9392505050565b6000819050919050565b610b3981610b26565b82525050565b6000602082019050610b546000830184610b30565b92915050565b600080fd5b610b6881610b26565b8114610b7357600080fd5b50565b600081359050610b8581610b5f565b92915050565b60008060408385031215610ba257610ba1610b5a565b5b6000610bb085828601610b76565b9250506020610bc185828601610b76565b9150509250929050565b60008115159050919050565b610be081610bcb565b82525050565b6000602082019050610bfb6000830184610bd7565b92915050565b60008160000b9050919050565b610c1781610c01565b82525050565b6000602082019050610c326000830184610c0e565b92915050565b600060208284031215610c4e57610c4d610b5a565b5b6000610c5c84828501610b76565b91505092915050565b6000819050919050565b6000610c8a610c85610c8084610b26565b610c65565b610b26565b9050919050565b610c9a81610c6f565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b610cc481610b26565b8114610ccf57600080fd5b50565b600081359050610ce181610cbb565b92915050565b600060208284031215610cfd57610cfc610b5a565b5b6000610d0b84828501610cd2565b91505092915050565b610d1d81610c01565b8114610d2857600080fd5b50565b600081359050610d3a81610d14565b92915050565b60008060408385031215610d5757610d56610b5a565b5b6000610d6585828601610cd2565b9250506020610d7685828601610d2b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60038110610dc057610dbf610d80565b5b50565b6000819050610dd182610daf565b919050565b6000610de182610dc3565b9050919050565b610df181610dd6565b82525050565b6000602082019050610e0c6000830184610de8565b92915050565b60038110610e1f57600080fd5b50565b600081359050610e3181610e12565b92915050565b60008060408385031215610e4e57610e4d610b5a565b5b6000610e5c85828601610b76565b9250506020610e6d85828601610e22565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115610efd57808604811115610ed957610ed8610e77565b5b6001851615610ee85780820291505b8081029050610ef685610ea6565b9450610ebd565b94509492505050565b600082610f165760019050610fd2565b81610f245760009050610fd2565b8160018114610f3a5760028114610f4457610f73565b6001915050610fd2565b60ff841115610f5657610f55610e77565b5b8360020a915084821115610f6d57610f6c610e77565b5b50610fd2565b5060208310610133831016604e8410600b8410161715610fa85782820a905083811115610fa357610fa2610e77565b5b610fd2565b610fb58484846001610eb3565b92509050818404811115610fcc57610fcb610e77565b5b81810290505b9392505050565b6000610fe482610b26565b9150610fef83610b26565b925061101c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610f06565b905092915050565b600061102f82610b26565b915061103a83610b26565b925082820261104881610b26565b9150828204841483151761105f5761105e610e77565b5b5092915050565b600061107182610c01565b915061107c83610c01565b925082820190507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808112607f821317156110b9576110b8610e77565b5b92915050565b600082825260208201905092915050565b7f4552524f523a464d2d3031303a4558504f4e454e545f544f4f5f534d414c4c00600082015250565b6000611106601f836110bf565b9150611111826110d0565b602082019050919050565b60006020820190508181036000830152611135816110f9565b9050919050565b600061114782610c01565b915061115283610c01565b925082820261116081610c01565b915080821461117257611171610e77565b5b5092915050565b7f4552524f523a464d2d3031313a4558504f4e454e545f544f4f5f4c4152474500600082015250565b60006111af601f836110bf565b91506111ba82611179565b602082019050919050565b600060208201905081810360008301526111de816111a2565b9050919050565b600060ff82169050919050565b60006111fd82610b26565b9150611208836111e5565b92506112357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610f06565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061127782610b26565b915061128283610b26565b9250826112925761129161123d565b5b828204905092915050565b60006112a882610b26565b91506112b383610b26565b92508282019050808211156112cb576112ca610e77565b5b92915050565b7f4552524f523a55464d2d3032303a44495649534f525f5a45524f000000000000600082015250565b6000611307601a836110bf565b9150611312826112d1565b602082019050919050565b60006020820190508181036000830152611336816112fa565b9050919050565b7f4552524f523a55464d2d3031303a4e454741544956455f524553554c54000000600082015250565b6000611373601d836110bf565b915061137e8261133d565b602082019050919050565b600060208201905081810360008301526113a281611366565b9050919050565b60006113b482610b26565b91506113bf83610b26565b92508282039050818111156113d7576113d6610e77565b5b92915050565b7f4d6174683a206d756c446976206f766572666c6f770000000000000000000000600082015250565b60006114136015836110bf565b915061141e826113dd565b602082019050919050565b6000602082019050818103600083015261144281611406565b905091905056fea2646970667358221220a79031ff9896c283cf59d6d16d72edaffbec2a580e23470a5ecc007dabdbca1864736f6c63430008140033",
|
475
|
+
"bytecode": "0x610a2a61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106101625760003560e01c80637a858b97116100cd578063bc1b392d11610086578063bc1b392d146102c7578063bdbb4630146102ce578063c8a4ac9c146102d5578063cc8b7b73146102e8578063ea6515c4146102fb578063eb646d711461030e57600080fd5b80637a858b971461025f57806389fa8ed71461027257806393aa872514610287578063a391c15b1461028e578063b4773329146102a1578063b67d77c5146102b457600080fd5b8063313ce5671161011f578063313ce567146101f957806332148d731461020057806344aa68361461021357806345ebb61e14610226578063753b14a514610239578063771602f71461024c57600080fd5b8063059f8b161461016757806308c76ec414610182578063118fc88c146101955780631488c845146101b85780631a12cd47146101cb57806321e5749b146101e6575b600080fd5b61016f610316565b6040519081526020015b60405180910390f35b61016f610190366004610797565b610325565b6101a86101a33660046107cd565b6103ad565b6040519015158152602001610179565b61016f6101c63660046107ef565b6103ba565b6101d3601281565b60405160009190910b8152602001610179565b6101a86101f43660046107cd565b61049c565b601261016f565b6101a861020e3660046107cd565b6104a6565b61016f61022136600461081a565b6104b0565b61016f61023436600461081a565b6104bd565b6101a861024736600461081a565b6104d5565b61016f61025a3660046107cd565b6104de565b6101a861026d36600461081a565b6104ea565b60025b60405160ff9091168152602001610179565b6000610275565b61016f61029c3660046107cd565b6104f4565b6101a86102af3660046107cd565b610500565b61016f6102c23660046107cd565b61050b565b600061016f565b6001610275565b61016f6102e33660046107cd565b610517565b61016f6102f63660046107cd565b610523565b6101a86103093660046107cd565b61052f565b61016f61053a565b6103226012600a61092d565b81565b600060011960ff8316016103745761036d60026103446012600a61092d565b61034e919061094f565b6103589085610971565b60016103666012600a61092d565b6000610552565b90506103a7565b60ff821661038e5761036d8360016103666012600a61092d565b61036d8360016103a06012600a61092d565b6001610552565b92915050565b60008282115b9392505050565b6000806103c8836012610984565b60000b121561041e5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a464d2d3031303a4558504f4e454e545f544f4f5f534d414c4c0060448201526064015b60405180910390fd5b604061042b836012610984565b60000b131561047c5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a464d2d3031313a4558504f4e454e545f544f4f5f4c41524745006044820152606401610415565b610487826012610984565b61049290600a6109a5565b6103b390846109b4565b60008282106103b3565b60008183146103b3565b60006103a7826002610325565b60006104cb6012600a61092d565b6103a790836109b4565b600081156103a7565b60006103b383836105af565b60008115156103a7565b60006103b383836105bb565b6000828211156103b3565b60006103b3838361061f565b60006103b3838361067b565b60006103b38383610690565b6000828210156103b3565b60026105486012600a61092d565b610322919061094f565b6000806105608686866106ae565b90506001836002811115610576576105766109cb565b14801561059357506000848061058e5761058e610939565b868809115b156105a6576105a3600182610971565b90505b95945050505050565b60006103b38284610971565b600080821161060c5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a55464d2d3032303a44495649534f525f5a45524f0000000000006044820152606401610415565b6103b383670de0b6b3a7640000846106ae565b6000828211156106715760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a55464d2d3031303a4e454741544956455f524553554c540000006044820152606401610415565b6103b382846109e1565b60006103b38383670de0b6b3a76400006106ae565b6000828210156106a45761036d838361061f565b6103b3828461061f565b60008080600019858709858702925082811083820303915050806000036106e8578382816106de576106de610939565b04925050506103b3565b80841161072f5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401610415565b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b600080604083850312156107aa57600080fd5b82359150602083013560ff811681146107c257600080fd5b809150509250929050565b600080604083850312156107e057600080fd5b50508035926020909101359150565b6000806040838503121561080257600080fd5b8235915060208301358060000b81146107c257600080fd5b60006020828403121561082c57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561088457816000190482111561086a5761086a610833565b8085161561087757918102915b93841c939080029061084e565b509250929050565b60008261089b575060016103a7565b816108a8575060006103a7565b81600181146108be57600281146108c8576108e4565b60019150506103a7565b60ff8411156108d9576108d9610833565b50506001821b6103a7565b5060208310610133831016604e8410600b8410161715610907575081810a6103a7565b6109118383610849565b806000190482111561092557610925610833565b029392505050565b60006103b3838361088c565b634e487b7160e01b600052601260045260246000fd5b60008261096c57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156103a7576103a7610833565b600081810b9083900b01607f8113607f19821217156103a7576103a7610833565b60006103b360ff84168361088c565b80820281158282048414176103a7576103a7610833565b634e487b7160e01b600052602160045260246000fd5b818103818111156103a7576103a761083356fea2646970667358221220fb084aab1469254041156892d0f0d9cc43b94e6c38b151c477083dab1d1e70aa64736f6c63430008140033",
|
476
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106101625760003560e01c80637a858b97116100cd578063bc1b392d11610086578063bc1b392d146102c7578063bdbb4630146102ce578063c8a4ac9c146102d5578063cc8b7b73146102e8578063ea6515c4146102fb578063eb646d711461030e57600080fd5b80637a858b971461025f57806389fa8ed71461027257806393aa872514610287578063a391c15b1461028e578063b4773329146102a1578063b67d77c5146102b457600080fd5b8063313ce5671161011f578063313ce567146101f957806332148d731461020057806344aa68361461021357806345ebb61e14610226578063753b14a514610239578063771602f71461024c57600080fd5b8063059f8b161461016757806308c76ec414610182578063118fc88c146101955780631488c845146101b85780631a12cd47146101cb57806321e5749b146101e6575b600080fd5b61016f610316565b6040519081526020015b60405180910390f35b61016f610190366004610797565b610325565b6101a86101a33660046107cd565b6103ad565b6040519015158152602001610179565b61016f6101c63660046107ef565b6103ba565b6101d3601281565b60405160009190910b8152602001610179565b6101a86101f43660046107cd565b61049c565b601261016f565b6101a861020e3660046107cd565b6104a6565b61016f61022136600461081a565b6104b0565b61016f61023436600461081a565b6104bd565b6101a861024736600461081a565b6104d5565b61016f61025a3660046107cd565b6104de565b6101a861026d36600461081a565b6104ea565b60025b60405160ff9091168152602001610179565b6000610275565b61016f61029c3660046107cd565b6104f4565b6101a86102af3660046107cd565b610500565b61016f6102c23660046107cd565b61050b565b600061016f565b6001610275565b61016f6102e33660046107cd565b610517565b61016f6102f63660046107cd565b610523565b6101a86103093660046107cd565b61052f565b61016f61053a565b6103226012600a61092d565b81565b600060011960ff8316016103745761036d60026103446012600a61092d565b61034e919061094f565b6103589085610971565b60016103666012600a61092d565b6000610552565b90506103a7565b60ff821661038e5761036d8360016103666012600a61092d565b61036d8360016103a06012600a61092d565b6001610552565b92915050565b60008282115b9392505050565b6000806103c8836012610984565b60000b121561041e5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a464d2d3031303a4558504f4e454e545f544f4f5f534d414c4c0060448201526064015b60405180910390fd5b604061042b836012610984565b60000b131561047c5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a464d2d3031313a4558504f4e454e545f544f4f5f4c41524745006044820152606401610415565b610487826012610984565b61049290600a6109a5565b6103b390846109b4565b60008282106103b3565b60008183146103b3565b60006103a7826002610325565b60006104cb6012600a61092d565b6103a790836109b4565b600081156103a7565b60006103b383836105af565b60008115156103a7565b60006103b383836105bb565b6000828211156103b3565b60006103b3838361061f565b60006103b3838361067b565b60006103b38383610690565b6000828210156103b3565b60026105486012600a61092d565b610322919061094f565b6000806105608686866106ae565b90506001836002811115610576576105766109cb565b14801561059357506000848061058e5761058e610939565b868809115b156105a6576105a3600182610971565b90505b95945050505050565b60006103b38284610971565b600080821161060c5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a55464d2d3032303a44495649534f525f5a45524f0000000000006044820152606401610415565b6103b383670de0b6b3a7640000846106ae565b6000828211156106715760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a55464d2d3031303a4e454741544956455f524553554c540000006044820152606401610415565b6103b382846109e1565b60006103b38383670de0b6b3a76400006106ae565b6000828210156106a45761036d838361061f565b6103b3828461061f565b60008080600019858709858702925082811083820303915050806000036106e8578382816106de576106de610939565b04925050506103b3565b80841161072f5760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401610415565b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b600080604083850312156107aa57600080fd5b82359150602083013560ff811681146107c257600080fd5b809150509250929050565b600080604083850312156107e057600080fd5b50508035926020909101359150565b6000806040838503121561080257600080fd5b8235915060208301358060000b81146107c257600080fd5b60006020828403121561082c57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561088457816000190482111561086a5761086a610833565b8085161561087757918102915b93841c939080029061084e565b509250929050565b60008261089b575060016103a7565b816108a8575060006103a7565b81600181146108be57600281146108c8576108e4565b60019150506103a7565b60ff8411156108d9576108d9610833565b50506001821b6103a7565b5060208310610133831016604e8410600b8410161715610907575081810a6103a7565b6109118383610849565b806000190482111561092557610925610833565b029392505050565b60006103b3838361088c565b634e487b7160e01b600052601260045260246000fd5b60008261096c57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156103a7576103a7610833565b600081810b9083900b01607f8113607f19821217156103a7576103a7610833565b60006103b360ff84168361088c565b80820281158282048414176103a7576103a7610833565b634e487b7160e01b600052602160045260246000fd5b818103818111156103a7576103a761083356fea2646970667358221220fb084aab1469254041156892d0f0d9cc43b94e6c38b151c477083dab1d1e70aa64736f6c63430008140033",
|
438
477
|
"linkReferences": {},
|
439
478
|
"deployedLinkReferences": {}
|
440
479
|
}
|
@@ -0,0 +1,139 @@
|
|
1
|
+
{
|
2
|
+
"_format": "hh-sol-artifact-1",
|
3
|
+
"contractName": "VersionLib",
|
4
|
+
"sourceName": "contracts/types/Version.sol",
|
5
|
+
"abi": [
|
6
|
+
{
|
7
|
+
"inputs": [
|
8
|
+
{
|
9
|
+
"internalType": "Version",
|
10
|
+
"name": "version",
|
11
|
+
"type": "uint24"
|
12
|
+
}
|
13
|
+
],
|
14
|
+
"name": "toInt",
|
15
|
+
"outputs": [
|
16
|
+
{
|
17
|
+
"internalType": "uint256",
|
18
|
+
"name": "",
|
19
|
+
"type": "uint256"
|
20
|
+
}
|
21
|
+
],
|
22
|
+
"stateMutability": "pure",
|
23
|
+
"type": "function"
|
24
|
+
},
|
25
|
+
{
|
26
|
+
"inputs": [
|
27
|
+
{
|
28
|
+
"internalType": "Version",
|
29
|
+
"name": "version",
|
30
|
+
"type": "uint24"
|
31
|
+
}
|
32
|
+
],
|
33
|
+
"name": "toMajorPart",
|
34
|
+
"outputs": [
|
35
|
+
{
|
36
|
+
"internalType": "VersionPart",
|
37
|
+
"name": "major",
|
38
|
+
"type": "uint8"
|
39
|
+
}
|
40
|
+
],
|
41
|
+
"stateMutability": "pure",
|
42
|
+
"type": "function"
|
43
|
+
},
|
44
|
+
{
|
45
|
+
"inputs": [
|
46
|
+
{
|
47
|
+
"internalType": "uint256",
|
48
|
+
"name": "major",
|
49
|
+
"type": "uint256"
|
50
|
+
},
|
51
|
+
{
|
52
|
+
"internalType": "uint256",
|
53
|
+
"name": "minor",
|
54
|
+
"type": "uint256"
|
55
|
+
},
|
56
|
+
{
|
57
|
+
"internalType": "uint256",
|
58
|
+
"name": "patch",
|
59
|
+
"type": "uint256"
|
60
|
+
}
|
61
|
+
],
|
62
|
+
"name": "toVersion",
|
63
|
+
"outputs": [
|
64
|
+
{
|
65
|
+
"internalType": "Version",
|
66
|
+
"name": "",
|
67
|
+
"type": "uint24"
|
68
|
+
}
|
69
|
+
],
|
70
|
+
"stateMutability": "pure",
|
71
|
+
"type": "function"
|
72
|
+
},
|
73
|
+
{
|
74
|
+
"inputs": [
|
75
|
+
{
|
76
|
+
"internalType": "uint256",
|
77
|
+
"name": "versionPart",
|
78
|
+
"type": "uint256"
|
79
|
+
}
|
80
|
+
],
|
81
|
+
"name": "toVersionPart",
|
82
|
+
"outputs": [
|
83
|
+
{
|
84
|
+
"internalType": "VersionPart",
|
85
|
+
"name": "",
|
86
|
+
"type": "uint8"
|
87
|
+
}
|
88
|
+
],
|
89
|
+
"stateMutability": "pure",
|
90
|
+
"type": "function"
|
91
|
+
},
|
92
|
+
{
|
93
|
+
"inputs": [
|
94
|
+
{
|
95
|
+
"internalType": "Version",
|
96
|
+
"name": "version",
|
97
|
+
"type": "uint24"
|
98
|
+
}
|
99
|
+
],
|
100
|
+
"name": "toVersionParts",
|
101
|
+
"outputs": [
|
102
|
+
{
|
103
|
+
"internalType": "VersionPart",
|
104
|
+
"name": "major",
|
105
|
+
"type": "uint8"
|
106
|
+
},
|
107
|
+
{
|
108
|
+
"internalType": "VersionPart",
|
109
|
+
"name": "minor",
|
110
|
+
"type": "uint8"
|
111
|
+
},
|
112
|
+
{
|
113
|
+
"internalType": "VersionPart",
|
114
|
+
"name": "patch",
|
115
|
+
"type": "uint8"
|
116
|
+
}
|
117
|
+
],
|
118
|
+
"stateMutability": "pure",
|
119
|
+
"type": "function"
|
120
|
+
},
|
121
|
+
{
|
122
|
+
"inputs": [],
|
123
|
+
"name": "zeroVersion",
|
124
|
+
"outputs": [
|
125
|
+
{
|
126
|
+
"internalType": "Version",
|
127
|
+
"name": "",
|
128
|
+
"type": "uint24"
|
129
|
+
}
|
130
|
+
],
|
131
|
+
"stateMutability": "pure",
|
132
|
+
"type": "function"
|
133
|
+
}
|
134
|
+
],
|
135
|
+
"bytecode": "0x61030c61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061006c5760003560e01c806304b8f6c5146100715780632efe01131461008d57806349a7111a146100a057806355601007146100d75780638e4ad86c146100fb578063c9e66e291461011e575b600080fd5b60005b60405162ffffff90911681526020015b60405180910390f35b61007461009b366004610213565b610135565b6100b36100ae36600461023f565b6101d6565b6040805160ff94851681529284166020840152921691810191909152606001610084565b6100ed6100e536600461023f565b62ffffff1690565b604051908152602001610084565b61010c61010936600461026b565b90565b60405160ff9091168152602001610084565b61010c61012c36600461023f565b60101c60ff1690565b600061010084108015610149575061010083105b8015610156575061010082105b6101b15760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5652532d3031303a56455253494f4e5f504152545f544f4f5f42604482015261494760f01b606482015260840160405180910390fd5b816101c4600885901b601087901b61029a565b6101ce919061029a565b949350505050565b600080808360ff601082901c166101ed83836102b3565b915061ffff600883901c16600061020481856102b3565b92989197509195509350505050565b60008060006060848603121561022857600080fd5b505081359360208301359350604090920135919050565b60006020828403121561025157600080fd5b813562ffffff8116811461026457600080fd5b9392505050565b60006020828403121561027d57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102ad576102ad610284565b92915050565b62ffffff8281168282160390808211156102cf576102cf610284565b509291505056fea2646970667358221220ba37649b9b622a7a14f84638f29a11cfa2b93f381baaceb770e1fea23e6fae7964736f6c63430008140033",
|
136
|
+
"deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061006c5760003560e01c806304b8f6c5146100715780632efe01131461008d57806349a7111a146100a057806355601007146100d75780638e4ad86c146100fb578063c9e66e291461011e575b600080fd5b60005b60405162ffffff90911681526020015b60405180910390f35b61007461009b366004610213565b610135565b6100b36100ae36600461023f565b6101d6565b6040805160ff94851681529284166020840152921691810191909152606001610084565b6100ed6100e536600461023f565b62ffffff1690565b604051908152602001610084565b61010c61010936600461026b565b90565b60405160ff9091168152602001610084565b61010c61012c36600461023f565b60101c60ff1690565b600061010084108015610149575061010083105b8015610156575061010082105b6101b15760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5652532d3031303a56455253494f4e5f504152545f544f4f5f42604482015261494760f01b606482015260840160405180910390fd5b816101c4600885901b601087901b61029a565b6101ce919061029a565b949350505050565b600080808360ff601082901c166101ed83836102b3565b915061ffff600883901c16600061020481856102b3565b92989197509195509350505050565b60008060006060848603121561022857600080fd5b505081359360208301359350604090920135919050565b60006020828403121561025157600080fd5b813562ffffff8116811461026457600080fd5b9392505050565b60006020828403121561027d57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102ad576102ad610284565b92915050565b62ffffff8281168282160390808211156102cf576102cf610284565b509291505056fea2646970667358221220ba37649b9b622a7a14f84638f29a11cfa2b93f381baaceb770e1fea23e6fae7964736f6c63430008140033",
|
137
|
+
"linkReferences": {},
|
138
|
+
"deployedLinkReferences": {}
|
139
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
{
|
2
|
+
"_format": "hh-sol-artifact-1",
|
3
|
+
"contractName": "VersionPartLib",
|
4
|
+
"sourceName": "contracts/types/Version.sol",
|
5
|
+
"abi": [
|
6
|
+
{
|
7
|
+
"inputs": [
|
8
|
+
{
|
9
|
+
"internalType": "VersionPart",
|
10
|
+
"name": "x",
|
11
|
+
"type": "uint8"
|
12
|
+
}
|
13
|
+
],
|
14
|
+
"name": "toInt",
|
15
|
+
"outputs": [
|
16
|
+
{
|
17
|
+
"internalType": "uint256",
|
18
|
+
"name": "",
|
19
|
+
"type": "uint256"
|
20
|
+
}
|
21
|
+
],
|
22
|
+
"stateMutability": "pure",
|
23
|
+
"type": "function"
|
24
|
+
}
|
25
|
+
],
|
26
|
+
"bytecode": "0x60b9610039600b82828239805160001a60731461002c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c8063ac43d834146038575b600080fd5b60496043366004605b565b60ff1690565b60405190815260200160405180910390f35b600060208284031215606c57600080fd5b813560ff81168114607c57600080fd5b939250505056fea2646970667358221220f9eff042249ef4290a2228b4a1d7046915ad93d6defe14b8c405ef07df444fa264736f6c63430008140033",
|
27
|
+
"deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361060335760003560e01c8063ac43d834146038575b600080fd5b60496043366004605b565b60ff1690565b60405190815260200160405180910390f35b600060208284031215606c57600080fd5b813560ff81168114607c57600080fd5b939250505056fea2646970667358221220f9eff042249ef4290a2228b4a1d7046915ad93d6defe14b8c405ef07df444fa264736f6c63430008140033",
|
28
|
+
"linkReferences": {},
|
29
|
+
"deployedLinkReferences": {}
|
30
|
+
}
|
@@ -0,0 +1,89 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
6
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
7
|
+
import {Registerable} from "../shared/Registerable.sol";
|
8
|
+
|
9
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
10
|
+
import {IInstance} from "../instance/IInstance.sol";
|
11
|
+
import {IServiceLinked} from "../instance/IServiceLinked.sol";
|
12
|
+
|
13
|
+
import {IInstance} from "../instance/IInstance.sol";
|
14
|
+
import {IComponent, IComponentModule} from "../instance/module/component/IComponent.sol";
|
15
|
+
import {IComponentOwnerService} from "../instance/service/IComponentOwnerService.sol";
|
16
|
+
import {IBaseComponent} from "./IBaseComponent.sol";
|
17
|
+
import {NftId} from "../types/NftId.sol";
|
18
|
+
|
19
|
+
abstract contract BaseComponent is
|
20
|
+
Registerable,
|
21
|
+
IBaseComponent
|
22
|
+
{
|
23
|
+
IComponentOwnerService internal _componentOwnerService;
|
24
|
+
|
25
|
+
address internal _deployer;
|
26
|
+
address internal _wallet;
|
27
|
+
IERC20Metadata internal _token;
|
28
|
+
IInstance internal _instance;
|
29
|
+
|
30
|
+
constructor(
|
31
|
+
address registry,
|
32
|
+
NftId instanceNftId,
|
33
|
+
address token
|
34
|
+
)
|
35
|
+
Registerable(registry, instanceNftId)
|
36
|
+
{
|
37
|
+
IRegistry.ObjectInfo memory instanceInfo = _registry.getObjectInfo(instanceNftId);
|
38
|
+
_instance = IInstance(instanceInfo.objectAddress);
|
39
|
+
require(
|
40
|
+
_instance.supportsInterface(type(IInstance).interfaceId),
|
41
|
+
""
|
42
|
+
);
|
43
|
+
|
44
|
+
_componentOwnerService = _instance.getComponentOwnerService();
|
45
|
+
_wallet = address(this);
|
46
|
+
_token = IERC20Metadata(token);
|
47
|
+
}
|
48
|
+
|
49
|
+
// from registerable
|
50
|
+
function register() public override(IRegisterable, Registerable) returns (NftId componentId) {
|
51
|
+
require(msg.sender == getOwner(), "");
|
52
|
+
require(
|
53
|
+
address(_registry) != address(0),
|
54
|
+
"ERROR:COB-001:REGISTRY_ZERO"
|
55
|
+
);
|
56
|
+
require(
|
57
|
+
_registry.isRegistered(address(_instance)),
|
58
|
+
"ERROR:COB:INSTANCE_NOT_REGISTERED"
|
59
|
+
);
|
60
|
+
|
61
|
+
componentId = _componentOwnerService.register(this);
|
62
|
+
}
|
63
|
+
|
64
|
+
// from component contract
|
65
|
+
function lock() external onlyOwner override {
|
66
|
+
_componentOwnerService.lock(this);
|
67
|
+
}
|
68
|
+
|
69
|
+
function unlock() external onlyOwner override {
|
70
|
+
_componentOwnerService.unlock(this);
|
71
|
+
}
|
72
|
+
|
73
|
+
function getWallet()
|
74
|
+
external
|
75
|
+
view
|
76
|
+
override
|
77
|
+
returns (address walletAddress)
|
78
|
+
{
|
79
|
+
return _wallet;
|
80
|
+
}
|
81
|
+
|
82
|
+
function getToken() external view override returns (IERC20Metadata token) {
|
83
|
+
return _token;
|
84
|
+
}
|
85
|
+
|
86
|
+
function getInstance() external view override returns (IInstance instance) {
|
87
|
+
return _instance;
|
88
|
+
}
|
89
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
6
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
7
|
+
import {IInstanceLinked} from "../instance/IInstanceLinked.sol";
|
8
|
+
|
9
|
+
interface IBaseComponent is IRegisterable, IInstanceLinked {
|
10
|
+
|
11
|
+
function lock() external;
|
12
|
+
|
13
|
+
function unlock() external;
|
14
|
+
|
15
|
+
function getToken() external view returns (IERC20Metadata token);
|
16
|
+
|
17
|
+
function getWallet() external view returns (address walletAddress);
|
18
|
+
|
19
|
+
}
|