@etherisc/gif-next 0.0.2-cc253b3 → 0.0.2-cd89a0b-062
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 +193 -6
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +4 -0
- package/artifacts/contracts/components/{IProduct.sol/IProductComponent.json → BaseComponent.sol/BaseComponent.json} +88 -67
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +445 -0
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +4 -0
- package/artifacts/contracts/components/{IPool.sol/IPoolComponent.json → IBaseComponent.sol/IBaseComponent.json} +69 -71
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +343 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +474 -0
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +373 -0
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +445 -56
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +324 -53
- 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 +1575 -295
- 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 +1894 -374
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +393 -0
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +113 -0
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +560 -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/{component/ComponentModule.sol/ComponentModule.json → base/IService.sol/IService.json} +171 -154
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +456 -0
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +710 -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 +380 -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 +297 -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 +297 -0
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +117 -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/{product/IProductService.sol/IProductService.json → module/component/IComponent.sol/IComponentModule.json} +56 -53
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +10 -0
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +4 -0
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.json +10 -0
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +10 -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 +159 -106
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +4 -0
- package/artifacts/contracts/instance/{policy → module/policy}/PolicyModule.sol/PolicyModule.json +159 -106
- 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 +74 -59
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +4 -0
- package/artifacts/contracts/instance/{pool → module/pool}/PoolModule.sol/PoolModule.json +64 -62
- 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 +113 -0
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +131 -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 +638 -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 +638 -0
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +690 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +526 -0
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +389 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +369 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +484 -0
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +674 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +649 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +964 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +194 -2
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +5 -0
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +351 -72
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +668 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +567 -79
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +885 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +460 -0
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
- 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/shared/IRegisterable.sol/IRegisterable.json +124 -0
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +205 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +132 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +344 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
- package/artifacts/contracts/{registry/Registry.sol → shared/Registerable.sol}/Registerable.json +71 -77
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +228 -0
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +4 -0
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +445 -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 +602 -0
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +4 -0
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +632 -0
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +4 -0
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +191 -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 +472 -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 +270 -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 +257 -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 +91 -6
- 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/ReferralId.sol/ReferralIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +99 -0
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -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 +177 -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 +79 -0
- package/contracts/components/Distribution.sol +155 -0
- package/contracts/components/IBaseComponent.sol +19 -0
- package/contracts/components/IDistributionComponent.sol +47 -0
- package/contracts/components/IPoolComponent.sol +65 -0
- package/contracts/components/IProductComponent.sol +39 -0
- package/contracts/components/Pool.sol +235 -18
- package/contracts/components/Product.sol +268 -35
- 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/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 +42 -8
- package/contracts/instance/IInstanceLinked.sol +8 -0
- package/contracts/instance/Instance.sol +62 -41
- package/contracts/instance/base/ComponentServiceBase.sol +49 -0
- package/contracts/instance/base/IInstanceBase.sol +23 -0
- package/contracts/instance/base/IKeyValueStore.sol +50 -0
- package/contracts/instance/base/ILifecycle.sol +30 -0
- package/contracts/instance/base/IService.sol +15 -0
- package/contracts/instance/base/InstanceBase.sol +89 -0
- package/contracts/instance/base/KeyValueStore.sol +161 -0
- package/contracts/instance/base/Lifecycle.sol +100 -0
- package/contracts/instance/base/ModuleBase.sol +57 -0
- package/contracts/instance/base/ServiceBase.sol +43 -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 +134 -0
- package/contracts/instance/module/bundle/IBundle.sol +53 -0
- package/contracts/instance/module/component/ComponentModule.sol +71 -0
- package/contracts/instance/module/component/IComponent.sol +28 -0
- package/contracts/instance/module/distribution/DistributionModule.sol +17 -0
- package/contracts/instance/module/distribution/IDistribution.sol +10 -0
- package/contracts/instance/module/policy/IPolicy.sol +63 -0
- package/contracts/instance/module/policy/PolicyModule.sol +91 -0
- package/contracts/instance/module/pool/IPoolModule.sol +41 -0
- package/contracts/instance/module/pool/PoolModule.sol +95 -0
- package/contracts/instance/module/risk/IRisk.sol +26 -0
- package/contracts/instance/module/risk/RiskModule.sol +62 -0
- package/contracts/instance/module/treasury/ITreasury.sol +84 -0
- package/contracts/instance/module/treasury/TokenHandler.sol +48 -0
- package/contracts/instance/module/treasury/TreasuryModule.sol +131 -0
- package/contracts/instance/service/ComponentOwnerService.sol +272 -0
- package/contracts/instance/service/DistributionService.sol +54 -0
- package/contracts/instance/service/IComponentOwnerService.sol +20 -0
- package/contracts/instance/service/IDistributionService.sol +12 -0
- package/contracts/instance/service/IPoolService.sol +37 -0
- package/contracts/instance/service/IProductService.sol +107 -0
- package/contracts/instance/service/PoolService.sol +149 -0
- package/contracts/instance/service/ProductService.sol +509 -0
- package/contracts/registry/ChainNft.sol +111 -97
- package/contracts/registry/IChainNft.sol +13 -9
- package/contracts/registry/IRegistry.sol +59 -56
- package/contracts/registry/IRegistryService.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +6 -0
- package/contracts/registry/Registry.sol +429 -121
- package/contracts/registry/RegistryService.sol +375 -0
- package/contracts/registry/RegistryServiceManager.sol +52 -0
- package/contracts/shared/ContractDeployerLib.sol +72 -0
- package/contracts/shared/ERC165.sol +21 -0
- package/contracts/shared/IOwnable.sol +6 -0
- package/contracts/shared/IRegisterable.sol +22 -0
- package/contracts/shared/IVersionable.sol +96 -0
- package/contracts/shared/NftOwnable.sol +87 -0
- package/contracts/shared/ProxyManager.sol +103 -0
- package/contracts/shared/Registerable.sol +117 -0
- package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
- package/contracts/shared/Versionable.sol +147 -0
- package/contracts/test/TestDistribution.sol +22 -0
- package/contracts/test/TestFee.sol +25 -0
- package/contracts/test/TestPool.sol +27 -0
- package/contracts/test/TestProduct.sol +74 -0
- package/contracts/test/TestRegisterable.sol +18 -0
- package/contracts/test/TestRoleId.sol +14 -0
- package/contracts/test/TestService.sol +26 -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 +56 -0
- package/contracts/types/Key32.sol +45 -0
- package/contracts/types/NftId.sol +55 -9
- package/contracts/types/NftIdSet.sol +60 -0
- package/contracts/types/ObjectType.sol +131 -0
- package/contracts/types/ReferralId.sol +48 -0
- package/contracts/types/RiskId.sol +43 -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 +104 -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/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 -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/IComponentContract.json +0 -179
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
- 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/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/IRegisterable.json +0 -166
- 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
@@ -1,16 +1,22 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {ERC721, ERC721Enumerable} from "@openzeppelin5/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
|
5
|
+
import {IERC721} from "@openzeppelin5/contracts/token/ERC721/IERC721.sol";
|
3
6
|
|
4
|
-
import {ERC721, ERC721Enumerable} from "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
|
5
7
|
import {IChainNft} from "./IChainNft.sol";
|
8
|
+
import {ITransferInterceptor} from "./ITransferInterceptor.sol";
|
6
9
|
|
7
|
-
contract ChainNft is
|
8
|
-
ERC721Enumerable,
|
9
|
-
IChainNft
|
10
|
-
{
|
10
|
+
contract ChainNft is ERC721Enumerable, IChainNft {
|
11
11
|
string public constant NAME = "Dezentralized Insurance Protocol Registry";
|
12
12
|
string public constant SYMBOL = "DIPR";
|
13
13
|
|
14
|
+
uint256 public constant PROTOCOL_NFT_ID = 1101;
|
15
|
+
uint256 public constant GLOBAL_REGISTRY_ID = 2101;
|
16
|
+
|
17
|
+
// remember interceptors
|
18
|
+
mapping(uint256 tokenId => address interceptor) private _interceptor;
|
19
|
+
|
14
20
|
// remember token uri
|
15
21
|
mapping(uint256 tokenId => string uri) private _uri;
|
16
22
|
|
@@ -18,22 +24,18 @@ contract ChainNft is
|
|
18
24
|
address private _registry;
|
19
25
|
|
20
26
|
// only used for _getNextTokenId
|
21
|
-
uint256 internal _chainIdInt;
|
27
|
+
uint256 internal _chainIdInt;
|
22
28
|
uint256 internal _chainIdDigits;
|
23
29
|
uint256 internal _chainIdMultiplier;
|
24
30
|
uint256 internal _idNext;
|
25
31
|
uint256 internal _totalMinted;
|
26
32
|
|
27
|
-
|
28
33
|
modifier onlyRegistry() {
|
29
34
|
require(msg.sender == _registry, "ERROR:NFT-001:CALLER_NOT_REGISTRY");
|
30
35
|
_;
|
31
36
|
}
|
32
37
|
|
33
|
-
|
34
|
-
constructor(address registry)
|
35
|
-
ERC721(NAME, SYMBOL)
|
36
|
-
{
|
38
|
+
constructor(address registry) ERC721(NAME, SYMBOL) {
|
37
39
|
require(registry != address(0), "ERROR:NFT-010:REGISTRY_ZERO");
|
38
40
|
|
39
41
|
_registry = registry;
|
@@ -41,129 +43,141 @@ contract ChainNft is
|
|
41
43
|
_chainIdInt = block.chainid;
|
42
44
|
_chainIdDigits = _countDigits(_chainIdInt);
|
43
45
|
_chainIdMultiplier = 10 ** _chainIdDigits;
|
46
|
+
_idNext = 4;
|
47
|
+
}
|
44
48
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
49
|
+
/**
|
50
|
+
* @dev mints a token for a specified token id
|
51
|
+
* not part of the IRegistry interface only needed for
|
52
|
+
* initial registry setup (protocol and global registry objects)
|
53
|
+
*/
|
54
|
+
function mint(address to, uint256 tokenId) external onlyRegistry {
|
55
|
+
_totalMinted++;
|
56
|
+
_safeMint(to, tokenId);
|
51
57
|
}
|
52
58
|
|
53
59
|
|
60
|
+
/**
|
61
|
+
* @dev mints the next token to register new objects
|
62
|
+
* non-zero transferInterceptors are recorded and called during nft token transfers.
|
63
|
+
* the contract receiving such a notification may decides to revert or record the transfer
|
64
|
+
*/
|
54
65
|
function mint(
|
55
66
|
address to,
|
67
|
+
address interceptor,
|
56
68
|
string memory uri
|
57
|
-
)
|
58
|
-
external
|
59
|
-
override
|
60
|
-
onlyRegistry
|
61
|
-
returns(uint256 tokenId)
|
62
|
-
{
|
69
|
+
) public onlyRegistry returns (uint256 tokenId) {
|
63
70
|
tokenId = _getNextTokenId();
|
64
|
-
_totalMinted++;
|
65
71
|
|
66
|
-
|
72
|
+
if (interceptor != address(0)) {
|
73
|
+
_interceptor[tokenId] = interceptor;
|
74
|
+
}
|
67
75
|
|
68
|
-
if(bytes(uri).length > 0) {
|
76
|
+
if (bytes(uri).length > 0) {
|
69
77
|
_uri[tokenId] = uri;
|
70
78
|
}
|
79
|
+
|
80
|
+
_safeMint(to, tokenId);
|
81
|
+
_totalMinted++;
|
82
|
+
}
|
83
|
+
|
84
|
+
|
85
|
+
/**
|
86
|
+
* @dev amend the open zeppelin transferFrom function by an interceptor call if such an interceptor is defined for the nft token id
|
87
|
+
* this allows distribution, product and pool components to be notified when distributors, policies and bundles are transferred.
|
88
|
+
*/
|
89
|
+
function transferFrom(address from, address to, uint256 tokenId) public override (ERC721, IERC721) {
|
90
|
+
super.transferFrom(from, to, tokenId);
|
91
|
+
|
92
|
+
if (_interceptor[tokenId] != address(0)) {
|
93
|
+
ITransferInterceptor(_interceptor[tokenId]).nftTransferFrom(from, to, tokenId);
|
94
|
+
}
|
71
95
|
}
|
72
96
|
|
73
97
|
|
74
|
-
function burn(uint256 tokenId)
|
75
|
-
|
76
|
-
override
|
77
|
-
onlyRegistry
|
78
|
-
{
|
79
|
-
_requireMinted(tokenId);
|
98
|
+
function burn(uint256 tokenId) external override onlyRegistry {
|
99
|
+
_requireOwned(tokenId);
|
80
100
|
_burn(tokenId);
|
81
101
|
delete _uri[tokenId];
|
82
102
|
}
|
83
103
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
onlyRegistry
|
89
|
-
{
|
104
|
+
function setURI(
|
105
|
+
uint256 tokenId,
|
106
|
+
string memory uri
|
107
|
+
) external override onlyRegistry {
|
90
108
|
require(bytes(uri).length > 0, "ERROR:CRG-011:URI_EMPTY");
|
91
109
|
|
92
|
-
|
110
|
+
_requireOwned(tokenId);
|
93
111
|
_uri[tokenId] = uri;
|
94
112
|
}
|
95
113
|
|
96
|
-
|
97
|
-
|
98
|
-
external
|
99
|
-
view
|
100
|
-
override
|
101
|
-
returns(bool)
|
102
|
-
{
|
103
|
-
return _exists(tokenId);
|
114
|
+
function exists(uint256 tokenId) external view override returns (bool) {
|
115
|
+
return _ownerOf(tokenId) != address(0);
|
104
116
|
}
|
105
117
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
override
|
111
|
-
returns(string memory)
|
112
|
-
{
|
113
|
-
_requireMinted(tokenId);
|
118
|
+
function tokenURI(
|
119
|
+
uint256 tokenId
|
120
|
+
) public view override returns (string memory) {
|
121
|
+
_requireOwned(tokenId);
|
114
122
|
return _uri[tokenId];
|
115
123
|
}
|
116
124
|
|
117
|
-
|
118
|
-
function getRegistryAddress()
|
119
|
-
external
|
120
|
-
view
|
121
|
-
override
|
122
|
-
returns(address)
|
123
|
-
{
|
125
|
+
function getRegistryAddress() external view override returns (address) {
|
124
126
|
return _registry;
|
125
127
|
}
|
126
128
|
|
127
|
-
function totalMinted() external override
|
129
|
+
function totalMinted() external view override returns (uint256) {
|
128
130
|
return _totalMinted;
|
129
131
|
}
|
130
132
|
|
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
|
-
|
133
|
+
/**
|
134
|
+
* @dev token id calculation based on an index value that is supposed
|
135
|
+
* to increase with every minted token
|
136
|
+
*
|
137
|
+
* requirement: each chain registry produces token ids that
|
138
|
+
* are guaranteed to not collide with any token id genereated
|
139
|
+
* on a different chain
|
140
|
+
*
|
141
|
+
* format concat(counter,chainid,2 digits for len-of-chain-id)
|
142
|
+
* restriction chainid up to 99 digits
|
143
|
+
* decode: from right to left:
|
144
|
+
* - 2 right most digits encode length of chainid
|
145
|
+
* - move number of digits to left as determined above (-> chainid)
|
146
|
+
* - the reminder to the left is the counter
|
147
|
+
*
|
148
|
+
* special cases
|
149
|
+
* 1101 -> decentralized insurance protocol
|
150
|
+
* 2102 -> global registry
|
151
|
+
* 2xxxxx -> chain registry, where xxxxx = <chain-part>
|
152
|
+
*
|
153
|
+
* examples
|
154
|
+
* 1101
|
155
|
+
* ^^ ^
|
156
|
+
* || +- 1-digit chain id
|
157
|
+
* |+-- chain id = 1 (mainnet)
|
158
|
+
* +-- 1st token id on mainnet
|
159
|
+
* (1 * 10 ** 1 + 1) * 100 + 1
|
160
|
+
* 42987654321010
|
161
|
+
* ^ ^ ^
|
162
|
+
* | | +- 10-digit chain id
|
163
|
+
* | +-- chain id = 9876543210 (hypothetical chainid)
|
164
|
+
* +-- 42nd token id on this chain
|
165
|
+
* (42 * 10 ** 10 + 9876543210) * 100 + 10
|
166
|
+
* (index * 10 ** digits + chainid) * 100 + digits (1 < digits < 100)
|
167
|
+
*/
|
168
|
+
function calculateTokenId(uint256 idIndex) public view returns (uint256 id) {
|
169
|
+
id =
|
170
|
+
(idIndex * _chainIdMultiplier + _chainIdInt) *
|
171
|
+
100 +
|
172
|
+
_chainIdDigits;
|
159
173
|
}
|
160
174
|
|
175
|
+
function _getNextTokenId() private returns (uint256 id) {
|
176
|
+
id = calculateTokenId(_idNext);
|
177
|
+
_idNext++;
|
178
|
+
}
|
161
179
|
|
162
|
-
function _countDigits(uint256 num)
|
163
|
-
private
|
164
|
-
pure
|
165
|
-
returns (uint256 count)
|
166
|
-
{
|
180
|
+
function _countDigits(uint256 num) private pure returns (uint256 count) {
|
167
181
|
count = 0;
|
168
182
|
while (num != 0) {
|
169
183
|
count++;
|
@@ -1,18 +1,22 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC721Enumerable} from "@
|
4
|
+
import {IERC721Enumerable} from "@openzeppelin5/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
|
+
address interceptor,
|
10
|
+
string memory uri
|
11
|
+
) external returns (uint256 tokenId);
|
9
12
|
|
10
|
-
function mint(address to, string memory uri) external returns(uint256 tokenId);
|
11
13
|
function burn(uint256 tokenId) external;
|
14
|
+
|
12
15
|
function setURI(uint256 tokenId, string memory uri) external;
|
13
16
|
|
14
|
-
function exists(uint256 tokenId) external view returns(bool);
|
15
|
-
|
17
|
+
function exists(uint256 tokenId) external view returns (bool);
|
18
|
+
|
19
|
+
function totalMinted() external view returns (uint256);
|
16
20
|
|
17
|
-
function getRegistryAddress() external view returns(address registry);
|
21
|
+
function getRegistryAddress() external view returns (address registry);
|
18
22
|
}
|
@@ -1,70 +1,73 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IERC165} from "@openzeppelin5/contracts/utils/introspection/IERC165.sol";
|
5
|
+
|
6
|
+
import {IOwnable} from "../shared/IOwnable.sol";
|
4
7
|
import {NftId} from "../types/NftId.sol";
|
8
|
+
import {ObjectType} from "../types/ObjectType.sol";
|
9
|
+
import {VersionPart} from "../types/Version.sol";
|
10
|
+
import {IChainNft} from "./IChainNft.sol";
|
5
11
|
|
6
|
-
interface IOwnable {
|
7
|
-
function getOwner() external view returns(address owner);
|
8
|
-
}
|
12
|
+
interface IRegistry is IERC165, IOwnable {
|
9
13
|
|
10
|
-
|
14
|
+
event LogRegistration(NftId indexed nftId, NftId parentNftId, ObjectType objectType, address objectAddress, address initialOwner);
|
11
15
|
|
12
|
-
event
|
16
|
+
event LogServiceNameRegistration(string serviceName, VersionPart majorVersion);
|
13
17
|
|
14
|
-
|
15
|
-
}
|
18
|
+
event LogApproval(NftId indexed nftId, ObjectType objectType);
|
16
19
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
20
|
+
struct ObjectInfo {
|
21
|
+
NftId nftId;
|
22
|
+
NftId parentNftId;
|
23
|
+
ObjectType objectType;
|
24
|
+
bool isInterceptor;
|
25
|
+
address objectAddress;
|
26
|
+
address initialOwner;
|
27
|
+
bytes data;
|
28
|
+
}// TODO delete nftId and initialOwner(if not used) from struct
|
21
29
|
|
22
|
-
function register() external returns(NftId nftId);
|
30
|
+
function register(ObjectInfo memory info) external returns (NftId nftId);
|
23
31
|
|
24
|
-
function
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
function isRegisterable() external pure returns(bool);
|
29
|
-
function getInitialOwner() external view returns(address initialOwner);
|
32
|
+
function registerFrom(
|
33
|
+
address from,
|
34
|
+
ObjectInfo memory info
|
35
|
+
) external returns (NftId nftId);
|
30
36
|
|
31
|
-
function
|
32
|
-
|
37
|
+
function approve(
|
38
|
+
NftId registrar,
|
39
|
+
ObjectType object,
|
40
|
+
ObjectType parent
|
41
|
+
) external;
|
33
42
|
|
43
|
+
function allowance(
|
44
|
+
NftId registrar,
|
45
|
+
ObjectType object
|
46
|
+
) external view returns (bool);
|
34
47
|
|
35
|
-
|
48
|
+
function getObjectCount() external view returns (uint256);
|
36
49
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
function
|
47
|
-
|
48
|
-
function
|
49
|
-
|
50
|
-
function
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
function
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
function getObjectCount() external view returns(uint256);
|
62
|
-
|
63
|
-
function getNftId(address objectAddress) external view returns(NftId nftId);
|
64
|
-
function getInfo(NftId nftId) external view returns(RegistryInfo memory info);
|
65
|
-
function getOwner(NftId nftId) external view returns(address ownerAddress);
|
66
|
-
|
67
|
-
function isRegistered(address objectAddress) external view returns(bool);
|
68
|
-
|
69
|
-
function getNftAddress() external view returns(address nft);
|
70
|
-
}
|
50
|
+
//nftIdOf
|
51
|
+
function getNftId(address objectAddress) external view returns (NftId nftId);
|
52
|
+
|
53
|
+
function ownerOf(NftId nftId) external view returns (address);
|
54
|
+
|
55
|
+
function ownerOf(address contractAddress) external view returns (address);
|
56
|
+
// infoOf()
|
57
|
+
function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory info);
|
58
|
+
// infoOf()
|
59
|
+
function getObjectInfo(address object) external view returns (ObjectInfo memory info);
|
60
|
+
|
61
|
+
function isRegistered(NftId nftId) external view returns (bool);
|
62
|
+
|
63
|
+
function isRegistered(address contractAddress) external view returns (bool);
|
64
|
+
|
65
|
+
function getServiceName(NftId nftId) external view returns (string memory name);
|
66
|
+
|
67
|
+
function getServiceAddress(
|
68
|
+
string memory serviceName,
|
69
|
+
VersionPart majorVersion
|
70
|
+
) external view returns (address serviceAddress);
|
71
|
+
|
72
|
+
function getChainNft() external view returns (IChainNft);
|
73
|
+
}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {NftId} from "../../contracts/types/NftId.sol";
|
5
|
+
import {ObjectType} from "../../contracts/types/ObjectType.sol";
|
6
|
+
import {RoleId} from "../../contracts/types/RoleId.sol";
|
7
|
+
import {IService} from "../../contracts/instance/base/IService.sol";
|
8
|
+
import {IRegistry} from "../../contracts/registry/IRegistry.sol";
|
9
|
+
|
10
|
+
import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
|
11
|
+
import {IBaseComponent} from "../../contracts/components/IBaseComponent.sol";
|
12
|
+
|
13
|
+
interface IRegistryService is IService {
|
14
|
+
|
15
|
+
function registerToken(address tokenAddress) external returns(NftId nftId);
|
16
|
+
|
17
|
+
function registerService(IService service) external returns(IRegistry.ObjectInfo memory info, bytes memory data);
|
18
|
+
|
19
|
+
function registerComponent(IBaseComponent component, ObjectType componentType, address owner)
|
20
|
+
external returns(IRegistry.ObjectInfo memory info, bytes memory data);
|
21
|
+
|
22
|
+
function registerInstance(IRegisterable instance)
|
23
|
+
external returns(IRegistry.ObjectInfo memory info, bytes memory data);
|
24
|
+
|
25
|
+
function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId); // -> easy to upgrade
|
26
|
+
|
27
|
+
function registerBundle(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
|
28
|
+
}
|
29
|
+
|