@etherisc/gif-next 0.0.2-fca9315-260 → 0.0.2-fd4931b-974
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 +8 -13
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1410 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1343 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +799 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +366 -367
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +808 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +68 -54
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +267 -1594
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +285 -211
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +412 -2526
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +480 -166
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +132 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +610 -421
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +438 -399
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +348 -106
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3468 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +6 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +58 -75
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{ISetup.sol/ISetup.json → IComponents.sol/IComponents.json} +2 -2
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1091 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +723 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +257 -288
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +565 -186
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1044 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1559 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1411 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +719 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +820 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +699 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1264 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +787 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IApplicationService.sol/IApplicationService.json} +211 -212
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +753 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +237 -302
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +530 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +351 -311
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IProductService.sol/IProductService.json} +112 -172
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1132 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +731 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +969 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +755 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → product/Product.sol/Product.json} +857 -214
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +673 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +675 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +158 -13
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +337 -225
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +277 -30
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +74 -61
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +465 -267
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +334 -93
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +634 -69
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +448 -50
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/Component.sol/Component.json} +321 -280
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1461 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +765 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +215 -226
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → shared/IComponent.sol/IComponent.json} +205 -228
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +854 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Component.sol/Component.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +203 -160
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +27 -29
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +8 -29
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +71 -160
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1030 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +581 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +314 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +102 -35
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +310 -74
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +125 -60
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +172 -160
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1770 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → staking/IStakingService.sol/IStakingService.json} +261 -238
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2500 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +844 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +263 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +960 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +694 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +308 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +16 -3
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +185 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +148 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
- package/contracts/distribution/Distribution.sol +263 -0
- package/contracts/distribution/DistributionService.sol +298 -0
- package/contracts/{instance/service → distribution}/DistributionServiceManager.sol +15 -12
- package/contracts/distribution/IDistributionComponent.sol +66 -0
- package/contracts/distribution/IDistributionService.sol +81 -0
- package/contracts/instance/BundleManager.sol +15 -14
- package/contracts/instance/IInstance.sol +49 -44
- package/contracts/instance/IInstanceService.sol +57 -15
- package/contracts/instance/Instance.sol +138 -179
- package/contracts/instance/InstanceAccessManager.sol +406 -161
- package/contracts/instance/InstanceAuthorizationsLib.sol +336 -0
- package/contracts/instance/InstanceReader.sol +135 -62
- package/contracts/instance/InstanceService.sol +240 -305
- package/contracts/instance/InstanceServiceManager.sol +12 -22
- package/contracts/instance/InstanceStore.sol +260 -0
- package/contracts/instance/base/BalanceStore.sol +118 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +12 -14
- package/contracts/instance/module/IAccess.sol +24 -18
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/IComponents.sol +52 -0
- package/contracts/instance/module/IDistribution.sol +7 -4
- package/contracts/instance/module/IPolicy.sol +56 -17
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/pool/IBundleService.sol +106 -0
- package/contracts/pool/IPoolComponent.sol +112 -0
- package/contracts/pool/IPoolService.sol +147 -0
- package/contracts/pool/Pool.sol +299 -0
- package/contracts/pool/PoolService.sol +424 -0
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +254 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/ClaimService.sol +437 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +62 -0
- package/contracts/product/IClaimService.sol +93 -0
- package/contracts/product/IPolicyService.sol +78 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +42 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +473 -0
- package/contracts/product/PolicyServiceManager.sol +42 -0
- package/contracts/product/PricingService.sol +301 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/product/Product.sol +377 -0
- package/contracts/product/ProductService.sol +124 -0
- package/contracts/product/ProductServiceManager.sol +42 -0
- package/contracts/registry/ChainNft.sol +15 -1
- package/contracts/registry/IRegistry.sol +38 -18
- package/contracts/registry/IRegistryService.sol +41 -38
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +193 -82
- package/contracts/registry/RegistryAccessManager.sol +72 -121
- package/contracts/registry/RegistryService.sol +164 -98
- package/contracts/registry/RegistryServiceManager.sol +28 -18
- package/contracts/registry/ReleaseManager.sol +390 -192
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +263 -56
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/shared/Component.sol +286 -0
- package/contracts/shared/ComponentService.sol +595 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +111 -0
- package/contracts/shared/ERC165.sol +14 -12
- package/contracts/shared/IComponent.sol +74 -0
- package/contracts/shared/IComponentService.sol +91 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +14 -10
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +12 -11
- package/contracts/shared/IPolicyHolder.sol +45 -0
- package/contracts/shared/IRegisterable.sol +3 -3
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +6 -4
- package/contracts/shared/IVersionable.sol +5 -48
- package/contracts/shared/InstanceLinkedComponent.sol +145 -0
- package/contracts/shared/KeyValueStore.sol +130 -0
- package/contracts/{instance/base → shared}/Lifecycle.sol +28 -7
- package/contracts/shared/NftIdSetManager.sol +69 -0
- package/contracts/shared/NftOwnable.sol +64 -85
- package/contracts/shared/PolicyHolder.sol +101 -0
- package/contracts/shared/ProxyManager.sol +126 -25
- package/contracts/shared/Registerable.sol +19 -30
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +37 -20
- package/contracts/shared/TokenHandler.sol +37 -6
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/staking/IStaking.sol +113 -0
- package/contracts/staking/IStakingService.sol +122 -0
- package/contracts/staking/Staking.sol +348 -0
- package/contracts/staking/StakingManager.sol +52 -0
- package/contracts/staking/StakingReader.sol +92 -0
- package/contracts/staking/StakingService.sol +294 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/TargetManagerLib.sol +141 -0
- package/contracts/type/Amount.sol +114 -0
- package/contracts/{types → type}/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/{types → type}/Fee.sol +32 -22
- package/contracts/{types → type}/NftId.sol +17 -11
- package/contracts/{types → type}/NftIdSet.sol +1 -1
- package/contracts/{types → type}/ObjectType.sol +26 -9
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +4 -0
- package/contracts/type/RoleId.sol +143 -0
- package/contracts/type/Seconds.sol +63 -0
- package/contracts/{types → type}/StateId.sol +24 -6
- package/contracts/{types → type}/Timestamp.sol +18 -13
- package/contracts/{types → type}/UFixed.sol +1 -0
- package/contracts/{types → type}/Version.sol +1 -0
- package/package.json +3 -3
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +0 -455
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1102
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -449
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -772
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -437
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1227
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -505
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -806
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -437
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -856
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -437
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -313
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -608
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/contracts/components/Component.sol +0 -216
- package/contracts/components/Distribution.sol +0 -150
- package/contracts/components/IComponent.sol +0 -43
- package/contracts/components/IDistributionComponent.sol +0 -47
- package/contracts/components/IPoolComponent.sol +0 -60
- package/contracts/components/IProductComponent.sol +0 -39
- package/contracts/components/Pool.sol +0 -227
- package/contracts/components/Product.sol +0 -265
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/base/ComponentService.sol +0 -134
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/module/ISetup.sol +0 -46
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/BundleService.sol +0 -293
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/DistributionService.sol +0 -106
- package/contracts/instance/service/IBundleService.sol +0 -44
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPolicyService.sol +0 -94
- package/contracts/instance/service/IPoolService.sol +0 -20
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -538
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -110
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -234
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -25
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/test/Usdc.sol +0 -26
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/RoleId.sol +0 -90
- /package/contracts/{types → type}/AddressSet.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/RiskId.sol +0 -0
@@ -1,54 +1,54 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
4
|
+
// import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
5
|
|
6
|
-
import {NftId} from "../
|
7
|
-
import {ObjectType} from "../
|
8
|
-
import {RoleId} from "../
|
6
|
+
import {NftId} from "../type/NftId.sol";
|
7
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
8
|
+
import {RoleId} from "../type/RoleId.sol";
|
9
9
|
import {IService} from "../shared/IService.sol";
|
10
10
|
import {IRegistry} from "./IRegistry.sol";
|
11
11
|
|
12
12
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
13
|
-
import {IComponent} from "../
|
13
|
+
import {IComponent} from "../shared/IComponent.sol";
|
14
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
15
|
+
|
14
16
|
|
15
17
|
interface IRegistryService is
|
16
|
-
IService
|
17
|
-
IAccessManaged
|
18
|
+
IService
|
18
19
|
{
|
19
|
-
error
|
20
|
-
|
21
|
-
|
22
|
-
error
|
23
|
-
error
|
24
|
-
error
|
25
|
-
error
|
26
|
-
error
|
27
|
-
|
28
|
-
error
|
29
|
-
error
|
30
|
-
error
|
31
|
-
error
|
32
|
-
error
|
33
|
-
error
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
);
|
47
|
-
|
48
|
-
// TODO used by service -> add owner arg
|
49
|
-
function registerInstance(IRegisterable instance, address owner)
|
20
|
+
error ErrorRegistryServiceNotRegistryOwner();
|
21
|
+
|
22
|
+
error ErrorRegistryServiceNotService(address notService);
|
23
|
+
error ErrorRegistryServiceNotInstance(address notInstance);
|
24
|
+
error ErrorRegistryServiceNotComponent(address notComponent);
|
25
|
+
error ErrorRegistryServiceNotProduct(address notProduct);
|
26
|
+
error ErrorRegistryServiceNotPool(address notPool);
|
27
|
+
error ErrorRegistryServiceNotDistribution(address notDistribution);
|
28
|
+
|
29
|
+
error ErrorRegistryServiceRegisterableAddressInvalid(IRegisterable registerable, address found);
|
30
|
+
error ErrorRegistryServiceRegisterableTypeInvalid(IRegisterable registerable, ObjectType expected, ObjectType found);
|
31
|
+
error ErrorRegistryServiceRegisterableOwnerInvalid(IRegisterable registerable, address expected, address found);
|
32
|
+
error ErrorRegistryServiceRegisterableOwnerZero(IRegisterable registerable);
|
33
|
+
error ErrorRegistryServiceRegisterableOwnerRegistered(IRegisterable registerable, address owner);
|
34
|
+
error ErrorRegistryServiceRegisterableSelfRegistration(IRegisterable registerable);
|
35
|
+
|
36
|
+
error ErrorRegistryServiceObjectTypeInvalid(ObjectType expected, ObjectType found);
|
37
|
+
error ErrorRegistryServiceObjectOwnerRegistered(ObjectType objectType, address owner);
|
38
|
+
error ErrorRegistryServiceObjectOwnerZero(ObjectType objectType);
|
39
|
+
|
40
|
+
error ErrorRegistryServiceInvalidInitialOwner(address initialOwner);
|
41
|
+
error ErrorRegistryServiceInvalidAddress(address registerableAddress);
|
42
|
+
|
43
|
+
function registerStake(IRegistry.ObjectInfo memory info)
|
44
|
+
external returns(NftId nftId);
|
45
|
+
|
46
|
+
function registerInstance(IRegisterable instance, address owner)
|
50
47
|
external returns(IRegistry.ObjectInfo memory info);
|
51
48
|
|
49
|
+
function registerComponent(IComponent component, ObjectType objectType, address owner)
|
50
|
+
external returns(IRegistry.ObjectInfo memory info);
|
51
|
+
|
52
52
|
function registerProduct(IComponent product, address owner)
|
53
53
|
external returns(IRegistry.ObjectInfo memory info);
|
54
54
|
|
@@ -58,8 +58,11 @@ interface IRegistryService is
|
|
58
58
|
function registerDistribution(IComponent distribution, address owner)
|
59
59
|
external returns(IRegistry.ObjectInfo memory info);
|
60
60
|
|
61
|
+
function registerDistributor(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
|
62
|
+
|
61
63
|
function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
|
62
64
|
|
63
65
|
function registerBundle(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
|
66
|
+
|
64
67
|
}
|
65
68
|
|
@@ -1,16 +1,16 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
4
5
|
|
5
|
-
import {NftId,
|
6
|
-
import {VersionPart} from "../
|
7
|
-
import {ObjectType, PROTOCOL, REGISTRY, TOKEN, SERVICE, INSTANCE, STAKE, PRODUCT, DISTRIBUTION, ORACLE, POOL, POLICY, BUNDLE} from "../
|
8
|
-
|
9
|
-
import {ERC165} from "../shared/ERC165.sol";
|
6
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
7
|
+
import {VersionPart} from "../type/Version.sol";
|
8
|
+
import {ObjectType, PROTOCOL, REGISTRY, TOKEN, SERVICE, INSTANCE, STAKE, STAKING, PRODUCT, DISTRIBUTION, DISTRIBUTOR, ORACLE, POOL, POLICY, BUNDLE} from "../type/ObjectType.sol";
|
10
9
|
|
11
10
|
import {ChainNft} from "./ChainNft.sol";
|
12
11
|
import {IRegistry} from "./IRegistry.sol";
|
13
12
|
import {ReleaseManager} from "./ReleaseManager.sol";
|
13
|
+
import {TokenRegistry} from "./TokenRegistry.sol";
|
14
14
|
|
15
15
|
// IMPORTANT
|
16
16
|
// Each NFT minted by registry is accosiated with:
|
@@ -23,11 +23,11 @@ import {ReleaseManager} from "./ReleaseManager.sol";
|
|
23
23
|
// 4) state object by regular service (POLICY, BUNDLE, STAKE)
|
24
24
|
|
25
25
|
contract Registry is
|
26
|
-
ERC165,
|
27
26
|
IRegistry
|
28
27
|
{
|
29
28
|
address public constant NFT_LOCK_ADDRESS = address(0x1);
|
30
29
|
uint256 public constant REGISTRY_TOKEN_SEQUENCE_ID = 2;
|
30
|
+
uint256 public constant STAKING_TOKEN_SEQUENCE_ID = 3;
|
31
31
|
string public constant EMPTY_URI = "";
|
32
32
|
|
33
33
|
mapping(NftId nftId => ObjectInfo info) private _info;
|
@@ -43,27 +43,28 @@ contract Registry is
|
|
43
43
|
mapping(ObjectType objectType => mapping(
|
44
44
|
ObjectType parentType => bool)) private _coreObjectCombinations;
|
45
45
|
|
46
|
-
NftId
|
47
|
-
ChainNft
|
46
|
+
NftId immutable _registryNftId;
|
47
|
+
ChainNft immutable _chainNft;
|
48
48
|
|
49
|
-
ReleaseManager
|
49
|
+
ReleaseManager immutable _releaseManager;
|
50
|
+
address private _tokenRegistryAddress;
|
51
|
+
address private _stakingAddress;
|
50
52
|
|
51
53
|
modifier onlyRegistryService() {
|
52
54
|
if(!_releaseManager.isActiveRegistryService(msg.sender)) {
|
53
|
-
revert
|
55
|
+
revert ErrorRegistryCallerNotRegistryService();
|
54
56
|
}
|
55
57
|
_;
|
56
58
|
}
|
57
59
|
|
58
60
|
modifier onlyReleaseManager() {
|
59
61
|
if(msg.sender != address(_releaseManager)) {
|
60
|
-
revert
|
62
|
+
revert ErrorRegistryCallerNotReleaseManager();
|
61
63
|
}
|
62
64
|
_;
|
63
65
|
}
|
64
66
|
|
65
|
-
constructor()
|
66
|
-
{
|
67
|
+
constructor() {
|
67
68
|
_releaseManager = ReleaseManager(msg.sender);
|
68
69
|
|
69
70
|
// deploy NFT
|
@@ -71,12 +72,60 @@ contract Registry is
|
|
71
72
|
|
72
73
|
// initial registry setup
|
73
74
|
_registerProtocol();
|
74
|
-
_registerRegistry();
|
75
|
+
_registryNftId = _registerRegistry();
|
75
76
|
|
76
77
|
// set object types and object parent relations
|
77
78
|
_setupValidCoreTypesAndCombinations();
|
79
|
+
}
|
80
|
+
|
81
|
+
|
82
|
+
function setTokenRegistry(
|
83
|
+
address tokenRegistry
|
84
|
+
)
|
85
|
+
external
|
86
|
+
onlyReleaseManager
|
87
|
+
{
|
88
|
+
if (_tokenRegistryAddress != address(0)) {
|
89
|
+
revert TokenRegistryAlreadySet(tokenRegistry);
|
90
|
+
}
|
78
91
|
|
79
|
-
|
92
|
+
if (address(tokenRegistry) == address(0)) {
|
93
|
+
revert TokenRegistryZero();
|
94
|
+
}
|
95
|
+
|
96
|
+
_tokenRegistryAddress = tokenRegistry;
|
97
|
+
}
|
98
|
+
|
99
|
+
|
100
|
+
function registerStaking(
|
101
|
+
address stakingAddress,
|
102
|
+
address stakingOwner
|
103
|
+
)
|
104
|
+
external
|
105
|
+
onlyReleaseManager
|
106
|
+
returns(NftId stakingNftId)
|
107
|
+
{
|
108
|
+
// staking contract for same chain may only be registered once
|
109
|
+
if (_stakingAddress != address(0)) {
|
110
|
+
revert StakingAlreadyRegistered(_stakingAddress);
|
111
|
+
}
|
112
|
+
|
113
|
+
_stakingAddress = stakingAddress;
|
114
|
+
uint256 stakingId = _chainNft.calculateTokenId(STAKING_TOKEN_SEQUENCE_ID);
|
115
|
+
stakingNftId = NftIdLib.toNftId(stakingId);
|
116
|
+
|
117
|
+
_nftIdByAddress[_stakingAddress] = stakingNftId;
|
118
|
+
_info[stakingNftId] = ObjectInfo({
|
119
|
+
nftId: stakingNftId,
|
120
|
+
parentNftId: _registryNftId,
|
121
|
+
objectType: STAKING(),
|
122
|
+
isInterceptor: false,
|
123
|
+
objectAddress: _stakingAddress,
|
124
|
+
initialOwner: stakingOwner,
|
125
|
+
data: ""
|
126
|
+
});
|
127
|
+
|
128
|
+
_chainNft.mint(stakingOwner, stakingId);
|
80
129
|
}
|
81
130
|
|
82
131
|
function registerService(
|
@@ -88,7 +137,16 @@ contract Registry is
|
|
88
137
|
onlyReleaseManager
|
89
138
|
returns(NftId nftId)
|
90
139
|
{
|
140
|
+
address service = info.objectAddress;
|
91
141
|
/* must be guaranteed by release manager
|
142
|
+
if(service == address(0)) {
|
143
|
+
revert();
|
144
|
+
}
|
145
|
+
|
146
|
+
if(version.eqz()) {
|
147
|
+
revert();
|
148
|
+
}
|
149
|
+
|
92
150
|
if(info.objectType != SERVICE()) {
|
93
151
|
revert();
|
94
152
|
}
|
@@ -98,11 +156,15 @@ contract Registry is
|
|
98
156
|
info.initialOwner == NFT_LOCK_ADDRESS <- if services are access managed
|
99
157
|
*/
|
100
158
|
|
101
|
-
if(
|
102
|
-
revert
|
159
|
+
if(domain.eqz()) {
|
160
|
+
revert ErrorRegistryDomainZero(service);
|
103
161
|
}
|
104
162
|
|
105
|
-
_service[version][domain]
|
163
|
+
if(_service[version][domain] > address(0)) {
|
164
|
+
revert ErrorRegistryDomainAlreadyRegistered(service, version, domain);
|
165
|
+
}
|
166
|
+
|
167
|
+
_service[version][domain] = service;
|
106
168
|
|
107
169
|
nftId = _register(info);
|
108
170
|
|
@@ -117,23 +179,17 @@ contract Registry is
|
|
117
179
|
ObjectType objectType = info.objectType;
|
118
180
|
ObjectType parentType = _info[info.parentNftId].objectType;
|
119
181
|
|
120
|
-
// TODO do not need it here -> SERVICE is no longer part of _coreContractCombinations
|
121
|
-
// no service registrations
|
122
|
-
if(objectType == SERVICE()) {
|
123
|
-
revert ServiceRegistration();
|
124
|
-
}
|
125
|
-
|
126
182
|
// only valid core types combinations
|
127
183
|
if(info.objectAddress == address(0))
|
128
184
|
{
|
129
185
|
if(_coreObjectCombinations[objectType][parentType] == false) {
|
130
|
-
revert
|
186
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
131
187
|
}
|
132
188
|
}
|
133
189
|
else
|
134
190
|
{
|
135
191
|
if(_coreContractCombinations[objectType][parentType] == false) {
|
136
|
-
revert
|
192
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
137
193
|
}
|
138
194
|
}
|
139
195
|
|
@@ -149,16 +205,15 @@ contract Registry is
|
|
149
205
|
ObjectType parentType = _info[info.parentNftId].objectType;
|
150
206
|
|
151
207
|
if(_coreTypes[objectType]) {
|
152
|
-
revert
|
208
|
+
revert ErrorRegistryCoreTypeRegistration();
|
153
209
|
}
|
154
210
|
|
155
211
|
if(
|
156
|
-
|
157
212
|
parentType == PROTOCOL() ||
|
158
213
|
parentType == REGISTRY() ||
|
159
214
|
parentType == SERVICE()
|
160
215
|
) {
|
161
|
-
revert
|
216
|
+
revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
|
162
217
|
}
|
163
218
|
|
164
219
|
_register(info);
|
@@ -190,7 +245,7 @@ contract Registry is
|
|
190
245
|
return _releaseManager.getReleaseInfo(version);
|
191
246
|
}
|
192
247
|
|
193
|
-
function getObjectCount() external view
|
248
|
+
function getObjectCount() external view returns (uint256) {
|
194
249
|
return _chainNft.totalSupply();
|
195
250
|
}
|
196
251
|
|
@@ -198,11 +253,11 @@ contract Registry is
|
|
198
253
|
return _registryNftId;
|
199
254
|
}
|
200
255
|
|
201
|
-
function getNftId(address object) external view
|
256
|
+
function getNftId(address object) external view returns (NftId id) {
|
202
257
|
return _nftIdByAddress[object];
|
203
258
|
}
|
204
259
|
|
205
|
-
function ownerOf(NftId nftId) public view
|
260
|
+
function ownerOf(NftId nftId) public view returns (address) {
|
206
261
|
return _chainNft.ownerOf(nftId.toInt());
|
207
262
|
}
|
208
263
|
|
@@ -210,50 +265,78 @@ contract Registry is
|
|
210
265
|
return _chainNft.ownerOf(_nftIdByAddress[contractAddress].toInt());
|
211
266
|
}
|
212
267
|
|
213
|
-
function getObjectInfo(NftId nftId) external view
|
268
|
+
function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory) {
|
214
269
|
return _info[nftId];
|
215
270
|
}
|
216
271
|
|
217
|
-
function getObjectInfo(address object) external view
|
272
|
+
function getObjectInfo(address object) external view returns (ObjectInfo memory) {
|
218
273
|
return _info[_nftIdByAddress[object]];
|
219
274
|
}
|
220
275
|
|
221
|
-
function isRegistered(NftId nftId) public view
|
276
|
+
function isRegistered(NftId nftId) public view returns (bool) {
|
222
277
|
return _info[nftId].objectType.gtz();
|
223
278
|
}
|
224
279
|
|
225
|
-
function isRegistered(address object) external view
|
280
|
+
function isRegistered(address object) external view returns (bool) {
|
226
281
|
return _nftIdByAddress[object].gtz();
|
227
282
|
}
|
228
283
|
|
229
|
-
function isRegisteredService(address object) external view
|
284
|
+
function isRegisteredService(address object) external view returns (bool) {
|
230
285
|
return _info[_nftIdByAddress[object]].objectType == SERVICE();
|
231
286
|
}
|
232
287
|
|
288
|
+
function isRegisteredComponent(address object) external view returns (bool) {
|
289
|
+
NftId objectParentNftId = _info[_nftIdByAddress[object]].parentNftId;
|
290
|
+
return _info[objectParentNftId].objectType == INSTANCE();
|
291
|
+
}
|
292
|
+
|
233
293
|
function isValidRelease(VersionPart version) external view returns (bool)
|
234
294
|
{
|
235
295
|
return _releaseManager.isValidRelease(version);
|
236
296
|
}
|
237
297
|
|
298
|
+
function getStakingAddress() external view returns (address staking) {
|
299
|
+
return _stakingAddress;
|
300
|
+
}
|
301
|
+
|
302
|
+
function getTokenRegistryAddress() external view returns (address tokenRegistry) {
|
303
|
+
return _tokenRegistryAddress;
|
304
|
+
}
|
305
|
+
|
238
306
|
function getServiceAddress(
|
239
307
|
ObjectType serviceDomain,
|
240
308
|
VersionPart releaseVersion
|
241
309
|
) external view returns (address service)
|
242
310
|
{
|
243
|
-
// TODO how can I get service address while release is not validated/activated ?!! -> user will check validity of release on its own
|
244
|
-
//if(_releaseManager.isValidRelease(releaseVersion)) {
|
245
311
|
service = _service[releaseVersion][serviceDomain];
|
246
|
-
//}
|
247
312
|
}
|
248
313
|
|
249
|
-
function
|
250
|
-
return
|
314
|
+
function getReleaseAccessManagerAddress(VersionPart version) external view returns (address) {
|
315
|
+
return address(_releaseManager.getReleaseAccessManager(version));
|
316
|
+
}
|
317
|
+
|
318
|
+
function getReleaseManagerAddress() external view returns (address) {
|
319
|
+
return address(_releaseManager);
|
320
|
+
}
|
321
|
+
|
322
|
+
function getChainNftAddress() external view override returns (address) {
|
323
|
+
return address(_chainNft);
|
251
324
|
}
|
252
325
|
|
253
326
|
function getOwner() public view returns (address owner) {
|
254
327
|
return ownerOf(address(this));
|
255
328
|
}
|
256
329
|
|
330
|
+
// IERC165
|
331
|
+
|
332
|
+
function supportsInterface(bytes4 interfaceId) external pure returns (bool) {
|
333
|
+
if(interfaceId == type(IERC165).interfaceId || interfaceId == type(IRegistry).interfaceId) {
|
334
|
+
return true;
|
335
|
+
}
|
336
|
+
|
337
|
+
return false;
|
338
|
+
}
|
339
|
+
|
257
340
|
// Internals
|
258
341
|
|
259
342
|
/// @dev registry protects only against tampering existing records, registering with invalid types pairs and 0 parent address
|
@@ -263,52 +346,63 @@ contract Registry is
|
|
263
346
|
returns(NftId nftId)
|
264
347
|
{
|
265
348
|
ObjectType objectType = info.objectType;
|
349
|
+
bool isInterceptor = info.isInterceptor;
|
350
|
+
address objectAddress = info.objectAddress;
|
351
|
+
address owner = info.initialOwner;
|
352
|
+
|
266
353
|
NftId parentNftId = info.parentNftId;
|
267
354
|
ObjectInfo memory parentInfo = _info[parentNftId];
|
268
355
|
ObjectType parentType = parentInfo.objectType; // see function header
|
269
356
|
address parentAddress = parentInfo.objectAddress;
|
270
357
|
|
271
358
|
// parent is contract -> need to check? -> check before minting
|
359
|
+
// special case: staking: to protocol possible as well
|
272
360
|
// special case: global registry nft as parent when not on mainnet -> global registry address is 0
|
273
361
|
// special case: when parentNftId == _chainNft.mint(), check for zero parent address before mint
|
274
362
|
// special case: when parentNftId == _chainNft.mint() && objectAddress == initialOwner
|
275
|
-
if(
|
276
|
-
|
363
|
+
if(objectType != STAKE()) {
|
364
|
+
if(parentAddress == address(0)) {
|
365
|
+
revert ErrorRegistryParentAddressZero();
|
366
|
+
}
|
277
367
|
}
|
278
368
|
|
279
|
-
address
|
369
|
+
address interceptorAddress = _getInterceptor(
|
370
|
+
isInterceptor,
|
371
|
+
objectType,
|
372
|
+
objectAddress,
|
373
|
+
parentInfo.isInterceptor,
|
374
|
+
parentAddress);
|
280
375
|
|
281
|
-
|
282
|
-
|
283
|
-
uint256 mintedTokenId = _chainNft.mint(
|
284
|
-
info.initialOwner,
|
285
|
-
interceptor,
|
286
|
-
EMPTY_URI);
|
287
|
-
nftId = toNftId(mintedTokenId);
|
288
|
-
|
289
|
-
// TODO move nftId out of info struct
|
290
|
-
// getters by nftId -> return struct without nftId
|
291
|
-
// getters by address -> return nftId AND struct
|
376
|
+
uint256 tokenId = _chainNft.getNextTokenId();
|
377
|
+
nftId = NftIdLib.toNftId(tokenId);
|
292
378
|
info.nftId = nftId;
|
293
379
|
_info[nftId] = info;
|
294
380
|
|
295
|
-
if(
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
if(_nftIdByAddress[contractAddress].gtz()) {
|
300
|
-
revert ContractAlreadyRegistered(contractAddress);
|
381
|
+
if(objectAddress > address(0)) {
|
382
|
+
if(_nftIdByAddress[objectAddress].gtz()) {
|
383
|
+
revert ErrorRegistryContractAlreadyRegistered(objectAddress);
|
301
384
|
}
|
302
385
|
|
303
|
-
_nftIdByAddress[
|
386
|
+
_nftIdByAddress[objectAddress] = nftId;
|
304
387
|
}
|
305
388
|
|
306
|
-
emit LogRegistration(nftId, parentNftId, objectType,
|
389
|
+
emit LogRegistration(nftId, parentNftId, objectType, isInterceptor, objectAddress, owner);
|
390
|
+
|
391
|
+
// calls nft receiver(1) and interceptor(2)
|
392
|
+
uint256 mintedTokenId = _chainNft.mint(
|
393
|
+
owner,
|
394
|
+
interceptorAddress,
|
395
|
+
EMPTY_URI);
|
396
|
+
|
397
|
+
assert(mintedTokenId == tokenId);
|
307
398
|
}
|
308
399
|
|
309
400
|
/// @dev obtain interceptor address for this nft if applicable, address(0) otherwise
|
401
|
+
/// special case: STAKES (parent may be any type) -> no intercept call
|
402
|
+
/// default case:
|
310
403
|
function _getInterceptor(
|
311
404
|
bool isInterceptor,
|
405
|
+
ObjectType objectType,
|
312
406
|
address objectAddress,
|
313
407
|
bool parentIsInterceptor,
|
314
408
|
address parentObjectAddress
|
@@ -317,6 +411,11 @@ contract Registry is
|
|
317
411
|
view
|
318
412
|
returns (address interceptor)
|
319
413
|
{
|
414
|
+
// no intercepting calls for stakes
|
415
|
+
if (objectType == STAKE()) {
|
416
|
+
return address(0);
|
417
|
+
}
|
418
|
+
|
320
419
|
if (objectAddress == address(0)) {
|
321
420
|
if (parentIsInterceptor) {
|
322
421
|
return parentObjectAddress;
|
@@ -339,11 +438,11 @@ contract Registry is
|
|
339
438
|
private
|
340
439
|
{
|
341
440
|
uint256 protocolId = _chainNft.PROTOCOL_NFT_ID();
|
342
|
-
NftId protocolNftId = toNftId(protocolId);
|
441
|
+
NftId protocolNftId = NftIdLib.toNftId(protocolId);
|
343
442
|
|
344
443
|
_info[protocolNftId] = ObjectInfo({
|
345
444
|
nftId: protocolNftId,
|
346
|
-
parentNftId:
|
445
|
+
parentNftId: NftIdLib.zero(),
|
347
446
|
objectType: PROTOCOL(),
|
348
447
|
isInterceptor: false,
|
349
448
|
objectAddress: address(0),
|
@@ -358,19 +457,20 @@ contract Registry is
|
|
358
457
|
/// might also register the global registry when not on mainnet
|
359
458
|
function _registerRegistry()
|
360
459
|
private
|
460
|
+
returns (NftId registryNftId)
|
361
461
|
{
|
362
462
|
uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
|
363
|
-
|
463
|
+
registryNftId = NftIdLib.toNftId(registryId);
|
364
464
|
NftId parentNftId;
|
365
465
|
|
366
466
|
if(registryId != _chainNft.GLOBAL_REGISTRY_ID())
|
367
467
|
{// we're not the global registry
|
368
468
|
_registerGlobalRegistry();
|
369
|
-
parentNftId = toNftId(_chainNft.GLOBAL_REGISTRY_ID());
|
469
|
+
parentNftId = NftIdLib.toNftId(_chainNft.GLOBAL_REGISTRY_ID());
|
370
470
|
}
|
371
471
|
else
|
372
472
|
{// we are global registry
|
373
|
-
parentNftId = toNftId(_chainNft.PROTOCOL_NFT_ID());
|
473
|
+
parentNftId = NftIdLib.toNftId(_chainNft.PROTOCOL_NFT_ID());
|
374
474
|
}
|
375
475
|
|
376
476
|
_info[registryNftId] = ObjectInfo({
|
@@ -383,7 +483,6 @@ contract Registry is
|
|
383
483
|
data: ""
|
384
484
|
});
|
385
485
|
_nftIdByAddress[address(this)] = registryNftId;
|
386
|
-
_registryNftId = registryNftId;
|
387
486
|
|
388
487
|
_chainNft.mint(NFT_LOCK_ADDRESS, registryId);
|
389
488
|
}
|
@@ -393,11 +492,11 @@ contract Registry is
|
|
393
492
|
private
|
394
493
|
{
|
395
494
|
uint256 globalRegistryId = _chainNft.GLOBAL_REGISTRY_ID();
|
396
|
-
NftId globalRegistryNftId = toNftId(globalRegistryId);
|
495
|
+
NftId globalRegistryNftId = NftIdLib.toNftId(globalRegistryId);
|
397
496
|
|
398
497
|
_info[globalRegistryNftId] = ObjectInfo({
|
399
498
|
nftId: globalRegistryNftId,
|
400
|
-
parentNftId: toNftId(_chainNft.PROTOCOL_NFT_ID()),
|
499
|
+
parentNftId: NftIdLib.toNftId(_chainNft.PROTOCOL_NFT_ID()),
|
401
500
|
objectType: REGISTRY(),
|
402
501
|
isInterceptor: false,
|
403
502
|
objectAddress: address(0),
|
@@ -424,29 +523,41 @@ contract Registry is
|
|
424
523
|
_coreTypes[PRODUCT()] = true;
|
425
524
|
_coreTypes[POOL()] = true;
|
426
525
|
_coreTypes[DISTRIBUTION()] = true;
|
526
|
+
_coreTypes[DISTRIBUTOR()] = true;
|
527
|
+
_coreTypes[ORACLE()] = true;
|
427
528
|
_coreTypes[POLICY()] = true;
|
428
529
|
_coreTypes[BUNDLE()] = true;
|
530
|
+
_coreTypes[STAKING()] = true;
|
429
531
|
_coreTypes[STAKE()] = true;
|
430
|
-
|
431
|
-
|
432
|
-
|
532
|
+
|
533
|
+
uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
|
534
|
+
if(registryId == _chainNft.GLOBAL_REGISTRY_ID()) {
|
535
|
+
// we are global registry
|
536
|
+
// object is registry from different chain
|
537
|
+
// parent is global registry, this contract
|
538
|
+
_coreContractCombinations[REGISTRY()][REGISTRY()] = true; // only for global regstry
|
539
|
+
//_coreObjectCombinations[REGISTRY()][REGISTRY()] = true;
|
540
|
+
} else {
|
541
|
+
// we are not global registry
|
542
|
+
// object is local registry, this contract
|
543
|
+
// parent is global registry, object with 0 address or registry from mainnet???
|
544
|
+
}
|
545
|
+
_coreContractCombinations[STAKING()][REGISTRY()] = true; // only for chain staking contract
|
433
546
|
_coreContractCombinations[TOKEN()][REGISTRY()] = true;
|
434
547
|
//_coreContractCombinations[SERVICE()][REGISTRY()] = true;// do not need it here -> registerService() registers exactly this combination
|
435
|
-
|
436
|
-
// registry as parent, ONLY approved
|
437
548
|
_coreContractCombinations[INSTANCE()][REGISTRY()] = true;
|
438
549
|
|
439
|
-
// instance as parent, ONLY approved
|
440
550
|
_coreContractCombinations[PRODUCT()][INSTANCE()] = true;
|
441
551
|
_coreContractCombinations[DISTRIBUTION()][INSTANCE()] = true;
|
442
552
|
_coreContractCombinations[ORACLE()][INSTANCE()] = true;
|
443
553
|
_coreContractCombinations[POOL()][INSTANCE()] = true;
|
444
554
|
|
445
|
-
|
555
|
+
_coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
|
446
556
|
_coreObjectCombinations[POLICY()][PRODUCT()] = true;
|
447
|
-
|
448
|
-
// pool as parent, ONLY approved
|
449
557
|
_coreObjectCombinations[BUNDLE()][POOL()] = true;
|
450
|
-
|
558
|
+
|
559
|
+
// staking
|
560
|
+
_coreObjectCombinations[STAKE()][PROTOCOL()] = true;
|
561
|
+
_coreObjectCombinations[STAKE()][INSTANCE()] = true;
|
451
562
|
}
|
452
563
|
}
|