@etherisc/gif-next 0.0.2-ed4dd55 → 0.0.2-f08d150-296
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +125 -0
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +4 -0
- package/artifacts/contracts/components/{IPool.sol/IPoolComponent.json → BaseComponent.sol/BaseComponent.json} +55 -60
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +4 -0
- package/artifacts/contracts/{instance/component/IComponent.sol/IComponentContract.json → components/IBaseComponent.sol/IBaseComponent.json} +54 -59
- 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/IProductComponent.sol/IProductComponent.json +279 -0
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +225 -33
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +154 -62
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +4 -0
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +105 -0
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +4 -0
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +105 -0
- 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 +1249 -275
- 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/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +1560 -373
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +300 -0
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/{product/ProductService.sol/ProductModule.json → base/IInstanceBase.sol/IInstanceBase.json} +18 -30
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +511 -0
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.json +115 -0
- package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/instance/base/IService.sol/IService.json +300 -0
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/{component/ComponentModule.sol/ComponentModule.json → base/InstanceBase.sol/InstanceBase.json} +140 -141
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +692 -0
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +169 -0
- package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.json +10 -0
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +300 -0
- 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 +296 -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 +296 -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 +54 -111
- 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 +146 -116
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +4 -0
- package/artifacts/contracts/instance/{policy → module/policy}/PolicyModule.sol/PolicyModule.json +146 -116
- 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 +63 -63
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +149 -0
- 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 +523 -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/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/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 +115 -89
- 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 +244 -77
- 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 +22 -67
- 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 +23 -68
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{instance/pool/PoolModule.sol/PoolModule.json → shared/Versionable.sol/Versionable.json} +72 -70
- 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 +116 -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 +4 -0
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +174 -0
- 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/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +111 -0
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +148 -5
- 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/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +30 -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 +4 -0
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +236 -0
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +4 -0
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +479 -0
- 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 +88 -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 +79 -27
- package/contracts/experiment/errors/Require.sol +38 -0
- package/contracts/experiment/errors/Revert.sol +44 -0
- 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 +40 -8
- package/contracts/instance/IInstanceLinked.sol +8 -0
- package/contracts/instance/Instance.sol +47 -42
- package/contracts/instance/base/ComponentServiceBase.sol +42 -0
- package/contracts/instance/base/IInstanceBase.sol +14 -0
- package/contracts/instance/base/IKeyValueStore.sol +49 -0
- package/contracts/instance/base/ILifecycle.sol +30 -0
- package/contracts/instance/base/IService.sol +15 -0
- package/contracts/instance/base/InstanceBase.sol +80 -0
- package/contracts/instance/base/KeyValueStore.sol +156 -0
- package/contracts/instance/base/Lifecycle.sol +95 -0
- package/contracts/instance/base/ModuleBase.sol +52 -0
- package/contracts/instance/base/ServiceBase.sol +37 -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 +136 -0
- package/contracts/instance/module/bundle/IBundle.sol +58 -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 +95 -0
- package/contracts/instance/module/component/IComponent.sol +53 -0
- package/contracts/instance/module/policy/IPolicy.sol +60 -0
- package/contracts/instance/module/policy/PolicyModule.sol +76 -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 +170 -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/PoolService.sol +123 -0
- package/contracts/instance/service/ProductService.sol +354 -0
- package/contracts/registry/ChainNft.sol +80 -94
- package/contracts/registry/IChainNft.sol +10 -7
- package/contracts/registry/IRegistry.sol +40 -51
- package/contracts/registry/IRegistryLinked.sol +8 -0
- package/contracts/registry/Registry.sol +312 -107
- 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 +118 -0
- package/contracts/types/ChainId.sol +24 -10
- package/contracts/types/Fee.sol +51 -0
- package/contracts/types/Key32.sol +45 -0
- package/contracts/types/NftId.sol +55 -8
- package/contracts/types/NftIdSet.sol +60 -0
- package/contracts/types/ObjectType.sol +115 -0
- package/contracts/types/RoleId.sol +38 -0
- package/contracts/types/StateId.sol +101 -0
- package/contracts/types/Timestamp.sol +123 -0
- package/contracts/types/UFixed.sol +209 -0
- 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/Component.json +0 -179
- 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/components/IProduct.sol/IProductComponent.json +0 -192
- 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/IAccessComponentTypeRoles.json +0 -50
- 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 -105
- 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/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -125
- 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 -11
- package/contracts/instance/access/Access.sol +0 -218
- package/contracts/instance/access/IAccess.sol +0 -83
- package/contracts/instance/component/ComponentModule.sol +0 -259
- package/contracts/instance/component/IComponent.sol +0 -94
- package/contracts/instance/policy/IPolicy.sol +0 -66
- package/contracts/instance/policy/PolicyModule.sol +0 -106
- package/contracts/instance/pool/IPoolModule.sol +0 -40
- package/contracts/instance/pool/PoolModule.sol +0 -83
- package/contracts/instance/product/IProductService.sol +0 -45
- package/contracts/instance/product/ProductService.sol +0 -105
@@ -4,13 +4,13 @@ pragma solidity ^0.8.19;
|
|
4
4
|
import {ERC721, ERC721Enumerable} from "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
|
5
5
|
import {IChainNft} from "./IChainNft.sol";
|
6
6
|
|
7
|
-
contract ChainNft is
|
8
|
-
ERC721Enumerable,
|
9
|
-
IChainNft
|
10
|
-
{
|
7
|
+
contract ChainNft is ERC721Enumerable, IChainNft {
|
11
8
|
string public constant NAME = "Dezentralized Insurance Protocol Registry";
|
12
9
|
string public constant SYMBOL = "DIPR";
|
13
10
|
|
11
|
+
uint256 public constant PROTOCOL_NFT_ID = 1101;
|
12
|
+
uint256 public constant GLOBAL_REGISTRY_ID = 2101;
|
13
|
+
|
14
14
|
// remember token uri
|
15
15
|
mapping(uint256 tokenId => string uri) private _uri;
|
16
16
|
|
@@ -18,22 +18,18 @@ contract ChainNft is
|
|
18
18
|
address private _registry;
|
19
19
|
|
20
20
|
// only used for _getNextTokenId
|
21
|
-
uint256 internal _chainIdInt;
|
21
|
+
uint256 internal _chainIdInt;
|
22
22
|
uint256 internal _chainIdDigits;
|
23
23
|
uint256 internal _chainIdMultiplier;
|
24
24
|
uint256 internal _idNext;
|
25
25
|
uint256 internal _totalMinted;
|
26
26
|
|
27
|
-
|
28
27
|
modifier onlyRegistry() {
|
29
28
|
require(msg.sender == _registry, "ERROR:NFT-001:CALLER_NOT_REGISTRY");
|
30
29
|
_;
|
31
30
|
}
|
32
31
|
|
33
|
-
|
34
|
-
constructor(address registry)
|
35
|
-
ERC721(NAME, SYMBOL)
|
36
|
-
{
|
32
|
+
constructor(address registry) ERC721(NAME, SYMBOL) {
|
37
33
|
require(registry != address(0), "ERROR:NFT-010:REGISTRY_ZERO");
|
38
34
|
|
39
35
|
_registry = registry;
|
@@ -41,129 +37,119 @@ contract ChainNft is
|
|
41
37
|
_chainIdInt = block.chainid;
|
42
38
|
_chainIdDigits = _countDigits(_chainIdInt);
|
43
39
|
_chainIdMultiplier = 10 ** _chainIdDigits;
|
44
|
-
|
45
|
-
// on mainnet/goerli start /1 (reserved for protocol nft) on other chains with 2
|
46
|
-
if(block.chainid == 1 || block.chainid == 5) {
|
47
|
-
_idNext = 1;
|
48
|
-
} else {
|
49
|
-
_idNext = 2;
|
50
|
-
}
|
40
|
+
_idNext = 3;
|
51
41
|
}
|
52
42
|
|
53
|
-
|
43
|
+
/**
|
44
|
+
* @dev mints the next token to register new objects
|
45
|
+
*/
|
54
46
|
function mint(
|
55
47
|
address to,
|
56
48
|
string memory uri
|
57
|
-
)
|
58
|
-
external
|
59
|
-
override
|
60
|
-
onlyRegistry
|
61
|
-
returns(uint256 tokenId)
|
62
|
-
{
|
49
|
+
) external override onlyRegistry returns (uint256 tokenId) {
|
63
50
|
tokenId = _getNextTokenId();
|
64
|
-
_totalMinted++;
|
65
|
-
|
66
|
-
_safeMint(to, tokenId);
|
67
51
|
|
68
|
-
if(bytes(uri).length > 0) {
|
52
|
+
if (bytes(uri).length > 0) {
|
69
53
|
_uri[tokenId] = uri;
|
70
54
|
}
|
55
|
+
|
56
|
+
_safeMint(to, tokenId);
|
57
|
+
_totalMinted++;
|
71
58
|
}
|
72
59
|
|
60
|
+
/**
|
61
|
+
* @dev mints a token for a specified token id
|
62
|
+
* not part of the IRegistry interface only needed for
|
63
|
+
* initial registry setup (protocol and global registry objects)
|
64
|
+
*/
|
65
|
+
function mint(address to, uint256 tokenId) external onlyRegistry {
|
66
|
+
_totalMinted++;
|
67
|
+
_safeMint(to, tokenId);
|
68
|
+
}
|
73
69
|
|
74
|
-
function burn(uint256 tokenId)
|
75
|
-
external
|
76
|
-
override
|
77
|
-
onlyRegistry
|
78
|
-
{
|
70
|
+
function burn(uint256 tokenId) external override onlyRegistry {
|
79
71
|
_requireMinted(tokenId);
|
80
72
|
_burn(tokenId);
|
81
73
|
delete _uri[tokenId];
|
82
74
|
}
|
83
75
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
onlyRegistry
|
89
|
-
{
|
76
|
+
function setURI(
|
77
|
+
uint256 tokenId,
|
78
|
+
string memory uri
|
79
|
+
) external override onlyRegistry {
|
90
80
|
require(bytes(uri).length > 0, "ERROR:CRG-011:URI_EMPTY");
|
91
81
|
|
92
82
|
_requireMinted(tokenId);
|
93
83
|
_uri[tokenId] = uri;
|
94
84
|
}
|
95
85
|
|
96
|
-
|
97
|
-
function exists(uint256 tokenId)
|
98
|
-
external
|
99
|
-
view
|
100
|
-
override
|
101
|
-
returns(bool)
|
102
|
-
{
|
86
|
+
function exists(uint256 tokenId) external view override returns (bool) {
|
103
87
|
return _exists(tokenId);
|
104
88
|
}
|
105
89
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
view
|
110
|
-
override
|
111
|
-
returns(string memory)
|
112
|
-
{
|
90
|
+
function tokenURI(
|
91
|
+
uint256 tokenId
|
92
|
+
) public view override returns (string memory) {
|
113
93
|
_requireMinted(tokenId);
|
114
94
|
return _uri[tokenId];
|
115
95
|
}
|
116
96
|
|
117
|
-
|
118
|
-
function getRegistryAddress()
|
119
|
-
external
|
120
|
-
view
|
121
|
-
override
|
122
|
-
returns(address)
|
123
|
-
{
|
97
|
+
function getRegistryAddress() external view override returns (address) {
|
124
98
|
return _registry;
|
125
99
|
}
|
126
100
|
|
127
|
-
function totalMinted() external override
|
101
|
+
function totalMinted() external view override returns (uint256) {
|
128
102
|
return _totalMinted;
|
129
103
|
}
|
130
104
|
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
105
|
+
/**
|
106
|
+
* @dev token id calculation based on an index value that is supposed
|
107
|
+
* to increase with every minted token
|
108
|
+
*
|
109
|
+
* requirement: each chain registry produces token ids that
|
110
|
+
* are guaranteed to not collide with any token id genereated
|
111
|
+
* on a different chain
|
112
|
+
*
|
113
|
+
* format concat(counter,chainid,2 digits for len-of-chain-id)
|
114
|
+
* restriction chainid up to 99 digits
|
115
|
+
* decode: from right to left:
|
116
|
+
* - 2 right most digits encode length of chainid
|
117
|
+
* - move number of digits to left as determined above (-> chainid)
|
118
|
+
* - the reminder to the left is the counter
|
119
|
+
*
|
120
|
+
* special cases
|
121
|
+
* 1101 -> decentralized insurance protocol
|
122
|
+
* 2102 -> global registry
|
123
|
+
* 2xxxxx -> chain registry, where xxxxx = <chain-part>
|
124
|
+
*
|
125
|
+
* examples
|
126
|
+
* 1101
|
127
|
+
* ^^ ^
|
128
|
+
* || +- 1-digit chain id
|
129
|
+
* |+-- chain id = 1 (mainnet)
|
130
|
+
* +-- 1st token id on mainnet
|
131
|
+
* (1 * 10 ** 1 + 1) * 100 + 1
|
132
|
+
* 42987654321010
|
133
|
+
* ^ ^ ^
|
134
|
+
* | | +- 10-digit chain id
|
135
|
+
* | +-- chain id = 9876543210 (hypothetical chainid)
|
136
|
+
* +-- 42nd token id on this chain
|
137
|
+
* (42 * 10 ** 10 + 9876543210) * 100 + 10
|
138
|
+
* (index * 10 ** digits + chainid) * 100 + digits (1 < digits < 100)
|
139
|
+
*/
|
140
|
+
function calculateTokenId(uint256 idIndex) public view returns (uint256 id) {
|
141
|
+
id =
|
142
|
+
(idIndex * _chainIdMultiplier + _chainIdInt) *
|
143
|
+
100 +
|
144
|
+
_chainIdDigits;
|
159
145
|
}
|
160
146
|
|
147
|
+
function _getNextTokenId() private returns (uint256 id) {
|
148
|
+
id = calculateTokenId(_idNext);
|
149
|
+
_idNext++;
|
150
|
+
}
|
161
151
|
|
162
|
-
function _countDigits(uint256 num)
|
163
|
-
private
|
164
|
-
pure
|
165
|
-
returns (uint256 count)
|
166
|
-
{
|
152
|
+
function _countDigits(uint256 num) private pure returns (uint256 count) {
|
167
153
|
count = 0;
|
168
154
|
while (num != 0) {
|
169
155
|
count++;
|
@@ -3,16 +3,19 @@ pragma solidity ^0.8.19;
|
|
3
3
|
|
4
4
|
import {IERC721Enumerable} from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol";
|
5
5
|
|
6
|
-
interface IChainNft is
|
7
|
-
|
8
|
-
|
6
|
+
interface IChainNft is IERC721Enumerable {
|
7
|
+
function mint(
|
8
|
+
address to,
|
9
|
+
string memory uri
|
10
|
+
) external returns (uint256 tokenId);
|
9
11
|
|
10
|
-
function mint(address to, string memory uri) external returns(uint256 tokenId);
|
11
12
|
function burn(uint256 tokenId) external;
|
13
|
+
|
12
14
|
function setURI(uint256 tokenId, string memory uri) external;
|
13
15
|
|
14
|
-
function exists(uint256 tokenId) external view returns(bool);
|
15
|
-
|
16
|
+
function exists(uint256 tokenId) external view returns (bool);
|
17
|
+
|
18
|
+
function totalMinted() external view returns (uint256);
|
16
19
|
|
17
|
-
function getRegistryAddress() external view returns(address registry);
|
20
|
+
function getRegistryAddress() external view returns (address registry);
|
18
21
|
}
|
@@ -1,68 +1,57 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.19;
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
}
|
4
|
+
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
5
|
+
|
6
|
+
import {NftId} from "../types/NftId.sol";
|
7
|
+
import {ObjectType} from "../types/ObjectType.sol";
|
8
|
+
import {VersionPart} from "../types/Version.sol";
|
9
|
+
import {IChainNft} from "./IChainNft.sol";
|
10
|
+
|
11
|
+
interface IRegistry is IERC165 {
|
12
|
+
struct ObjectInfo {
|
13
|
+
NftId nftId;
|
14
|
+
NftId parentNftId;
|
15
|
+
ObjectType objectType;
|
16
|
+
address objectAddress;
|
17
|
+
address initialOwner;
|
18
|
+
bytes data;
|
19
|
+
}
|
7
20
|
|
8
|
-
|
21
|
+
function register(address objectAddress) external returns (NftId nftId);
|
9
22
|
|
10
|
-
|
23
|
+
function registerObjectForInstance(
|
24
|
+
NftId parentNftid,
|
25
|
+
ObjectType objectType,
|
26
|
+
address initialOwner,
|
27
|
+
bytes memory data
|
28
|
+
) external returns (NftId nftId);
|
11
29
|
|
12
|
-
function
|
13
|
-
}
|
30
|
+
function getServiceAddress(string memory serviceName, VersionPart majorVersion) external view returns (address serviceAddress);
|
14
31
|
|
15
|
-
|
16
|
-
IOwnable,
|
17
|
-
IRegistryLinked
|
18
|
-
{
|
19
|
-
|
20
|
-
function register() external returns(uint256 nftId);
|
21
|
-
|
22
|
-
function getNftId() external view returns(uint256 nftId);
|
23
|
-
function getParentNftId() external view returns(uint256 parentNftId);
|
24
|
-
function getType() external view returns(uint256 objectType);
|
25
|
-
function getData() external view returns(bytes memory data);
|
26
|
-
function isRegisterable() external pure returns(bool);
|
27
|
-
function getInitialOwner() external view returns(address initialOwner);
|
28
|
-
|
29
|
-
function isRegistered() external view returns(bool);
|
30
|
-
}
|
32
|
+
function getObjectCount() external view returns (uint256);
|
31
33
|
|
34
|
+
function getNftId() external view returns (NftId nftId);
|
32
35
|
|
33
|
-
|
36
|
+
function getNftId(
|
37
|
+
address objectAddress
|
38
|
+
) external view returns (NftId nftId);
|
34
39
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
uint256 objectType;
|
39
|
-
address objectAddress;
|
40
|
-
address initialOwner;
|
41
|
-
}
|
40
|
+
function getObjectInfo(
|
41
|
+
NftId nftId
|
42
|
+
) external view returns (ObjectInfo memory info);
|
42
43
|
|
43
|
-
function
|
44
|
-
|
45
|
-
|
46
|
-
function ORACLE() external pure returns(uint256);
|
47
|
-
function POOL() external pure returns(uint256);
|
48
|
-
function POLICY() external pure returns(uint256);
|
49
|
-
function BUNDLE() external pure returns(uint256);
|
44
|
+
function getName(
|
45
|
+
NftId nftId
|
46
|
+
) external view returns (string memory name);
|
50
47
|
|
51
|
-
function
|
52
|
-
function registerObjectForInstance(
|
53
|
-
uint256 parentNftid,
|
54
|
-
uint256 objectType,
|
55
|
-
address initialOwner
|
56
|
-
)
|
57
|
-
external returns(uint256 nftId);
|
48
|
+
function getProtocolOwner() external view returns (address);
|
58
49
|
|
59
|
-
function
|
50
|
+
function getOwner(NftId nftId) external view returns (address ownerAddress);
|
60
51
|
|
61
|
-
function
|
62
|
-
function getInfo(uint256 nftId) external view returns(RegistryInfo memory info);
|
63
|
-
function getOwner(uint256 nftId) external view returns(address ownerAddress);
|
52
|
+
function isRegistered(NftId nftId) external view returns (bool);
|
64
53
|
|
65
|
-
function isRegistered(address objectAddress) external view returns(bool);
|
54
|
+
function isRegistered(address objectAddress) external view returns (bool);
|
66
55
|
|
67
|
-
function
|
56
|
+
function getChainNft() external view returns (IChainNft);
|
68
57
|
}
|