@etherisc/gif-next 0.0.2-f2df3e2-873 → 0.0.2-f347f00-614
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 +2 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +238 -167
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +117 -111
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +49 -312
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +36 -105
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +225 -2171
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +177 -41
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +378 -2689
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +643 -345
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +262 -182
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +122 -105
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3598 -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 +1 -54
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- 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/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → oracle/Oracle.sol/Oracle.json} +255 -276
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +65 -48
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +193 -103
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +290 -56
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +298 -109
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +96 -186
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IClaimService.sol/IClaimService.json} +93 -258
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +63 -141
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +283 -118
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +11 -61
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +179 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +310 -53
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +124 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +415 -43
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1896 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +367 -73
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +762 -103
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +166 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +182 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1554 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +139 -85
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +27 -95
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1184 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +110 -84
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
- 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 +3 -10
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +17 -6
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -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 +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -35
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +17 -6
- 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/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -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 +345 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/ClaimId.sol/ClaimIdLib.json +5 -5
- 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 +209 -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/type/ObjectType.sol/ObjectTypeLib.json +186 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/PayoutId.sol/PayoutIdLib.json +5 -5
- 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/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -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/type/RoleId.sol/RoleIdLib.json +266 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -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/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +20 -7
- 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/{components → distribution}/Distribution.sol +41 -64
- package/contracts/distribution/DistributionService.sol +297 -0
- package/contracts/distribution/DistributionServiceManager.sol +42 -0
- package/contracts/{components → distribution}/IDistributionComponent.sol +11 -16
- package/contracts/{instance/service → distribution}/IDistributionService.sol +19 -37
- package/contracts/instance/BundleManager.sol +5 -5
- package/contracts/instance/IInstance.sol +51 -66
- package/contracts/instance/IInstanceService.sol +51 -22
- package/contracts/instance/Instance.sol +137 -184
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
- package/contracts/instance/InstanceReader.sol +130 -55
- package/contracts/instance/InstanceService.sol +258 -297
- package/contracts/instance/InstanceServiceManager.sol +11 -21
- package/contracts/instance/InstanceStore.sol +269 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +7 -9
- package/contracts/instance/module/IAccess.sol +4 -12
- package/contracts/instance/module/IBundle.sol +6 -9
- package/contracts/instance/module/IComponents.sol +21 -10
- package/contracts/instance/module/IDistribution.sol +7 -6
- package/contracts/instance/module/IPolicy.sol +22 -15
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
- package/contracts/oracle/IOracle.sol +20 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +145 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/{instance/service → pool}/IBundleService.sol +33 -23
- package/contracts/{components → pool}/IPoolComponent.sol +16 -17
- package/contracts/{instance/service → pool}/IPoolService.sol +72 -21
- package/contracts/{components → pool}/Pool.sol +52 -55
- package/contracts/pool/PoolService.sol +452 -0
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +254 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
- package/contracts/product/ClaimService.sol +442 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
- package/contracts/product/IClaimService.sol +99 -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 +475 -0
- package/contracts/product/PolicyServiceManager.sol +42 -0
- package/contracts/product/PricingService.sol +300 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/{components → product}/Product.sol +89 -83
- package/contracts/product/ProductService.sol +124 -0
- package/contracts/product/ProductServiceManager.sol +42 -0
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +44 -21
- package/contracts/registry/IRegistryService.sol +37 -36
- package/contracts/registry/IServiceAuthorization.sol +35 -0
- package/contracts/registry/Registry.sol +192 -83
- package/contracts/registry/RegistryAdmin.sol +333 -0
- package/contracts/registry/RegistryService.sol +71 -87
- package/contracts/registry/RegistryServiceManager.sol +21 -30
- package/contracts/registry/ReleaseManager.sol +394 -197
- package/contracts/registry/ServiceAuthorization.sol +83 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/AccessAdmin.sol +750 -0
- package/contracts/shared/AccessManagerCustom.sol +741 -0
- package/contracts/shared/AccessManagerExtended.sol +481 -0
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
- package/contracts/shared/Component.sol +281 -0
- package/contracts/shared/ComponentService.sol +617 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/IAccessAdmin.sol +162 -0
- package/contracts/shared/IAccessManagerExtended.sol +74 -0
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
- package/contracts/{components → shared}/IComponent.sol +23 -29
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +2 -2
- package/contracts/shared/IPolicyHolder.sol +29 -10
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +11 -2
- package/contracts/shared/IVersionable.sol +1 -1
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +144 -0
- package/contracts/shared/KeyValueStore.sol +127 -0
- package/contracts/{instance/base → shared}/Lifecycle.sol +18 -5
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +3 -16
- package/contracts/shared/PolicyHolder.sol +40 -19
- package/contracts/shared/ProxyManager.sol +34 -4
- package/contracts/shared/Registerable.sol +13 -12
- package/contracts/shared/RegistryLinked.sol +0 -5
- package/contracts/shared/Service.sol +32 -21
- package/contracts/shared/TokenHandler.sol +27 -2
- package/contracts/shared/Versionable.sol +1 -1
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +153 -0
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +513 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +411 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +613 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +128 -0
- package/contracts/{types → type}/Blocknumber.sol +20 -3
- package/contracts/{types → type}/Fee.sol +24 -22
- package/contracts/{types → type}/NftId.sol +14 -16
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +241 -0
- package/contracts/{types → type}/Referral.sol +1 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +201 -0
- package/contracts/{types → type}/Seconds.sol +27 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +27 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +6 -2
- package/contracts/{types → type}/Version.sol +1 -1
- 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/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/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
- 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 -532
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- 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/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1060
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -681
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1266
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1040
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1774
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.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 -1511
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -741
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- 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 -383
- 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 -596
- 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 -104
- 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/Amount.sol/AmountLib.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -185
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- 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/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
- 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 -288
- 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 -166
- 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/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
- 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/RoleId.sol/RoleIdLib.json +0 -156
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
- 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 -253
- package/contracts/components/IProductComponent.sol +0 -40
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/instance/Cloneable.sol +0 -51
- package/contracts/instance/InstanceAccessManager.sol +0 -527
- package/contracts/instance/base/ComponentService.sol +0 -121
- package/contracts/instance/base/KeyValueStore.sol +0 -180
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -355
- package/contracts/instance/service/BundleService.sol +0 -436
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -239
- package/contracts/instance/service/DistributionService.sol +0 -431
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IClaimService.sol +0 -92
- package/contracts/instance/service/IPolicyService.sol +0 -137
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -541
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -303
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -210
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- 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/Amount.sol +0 -65
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -157
- package/contracts/types/RoleId.sol +0 -97
- /package/contracts/{types → type}/ClaimId.sol +0 -0
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/PayoutId.sol +0 -0
- /package/contracts/{types → type}/UFixed.sol +0 -0
| @@ -3,53 +3,53 @@ pragma solidity ^0.8.20; | |
| 3 3 |  | 
| 4 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 18 | 
             
                 IService
         | 
| 17 | 
            -
                 // TODO cleanup
         | 
| 18 | 
            -
                 // IAccessManaged 
         | 
| 19 19 | 
             
            {
         | 
| 20 | 
            -
                 error  | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
                 error  | 
| 24 | 
            -
                 error  | 
| 25 | 
            -
                 error  | 
| 26 | 
            -
                 error  | 
| 27 | 
            -
                 error  | 
| 28 | 
            -
             | 
| 29 | 
            -
                 error  | 
| 30 | 
            -
                 error  | 
| 31 | 
            -
                 error  | 
| 32 | 
            -
                 error  | 
| 33 | 
            -
                 error  | 
| 34 | 
            -
                 error  | 
| 35 | 
            -
             | 
| 36 | 
            -
                  | 
| 37 | 
            -
                  | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
                  | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
                      returns(
         | 
| 46 | 
            -
             | 
| 47 | 
            -
                      );
         | 
| 48 | 
            -
             | 
| 49 | 
            -
                 // TODO used by service -> add owner arg 
         | 
| 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 ErrorRegistryServiceObjectAddressNotZero(ObjectType objectType);
         | 
| 37 | 
            +
                 error ErrorRegistryServiceObjectTypeInvalid(ObjectType expected, ObjectType found);
         | 
| 38 | 
            +
                 error ErrorRegistryServiceObjectOwnerRegistered(ObjectType objectType, address owner);
         | 
| 39 | 
            +
                 error ErrorRegistryServiceObjectOwnerZero(ObjectType objectType);
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                 error ErrorRegistryServiceInvalidInitialOwner(address initialOwner);
         | 
| 42 | 
            +
                 error ErrorRegistryServiceInvalidAddress(address registerableAddress);
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                 function registerStake(IRegistry.ObjectInfo memory info)
         | 
| 45 | 
            +
                      external returns(NftId nftId); 
         | 
| 46 | 
            +
             | 
| 50 47 | 
             
                 function registerInstance(IRegisterable instance, address owner)
         | 
| 51 48 | 
             
                      external returns(IRegistry.ObjectInfo memory info); 
         | 
| 52 49 |  | 
| 50 | 
            +
                 function registerComponent(IComponent component, ObjectType objectType, address owner)
         | 
| 51 | 
            +
                      external returns(IRegistry.ObjectInfo memory info);
         | 
| 52 | 
            +
             | 
| 53 53 | 
             
                 function registerProduct(IComponent product, address owner)
         | 
| 54 54 | 
             
                      external returns(IRegistry.ObjectInfo memory info);
         | 
| 55 55 |  | 
| @@ -64,5 +64,6 @@ interface IRegistryService is | |
| 64 64 | 
             
                 function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
         | 
| 65 65 |  | 
| 66 66 | 
             
                 function registerBundle(IRegistry.ObjectInfo memory info) external returns(NftId nftId); 
         | 
| 67 | 
            +
             | 
| 67 68 | 
             
            }
         | 
| 68 69 |  | 
| @@ -0,0 +1,35 @@ | |
| 1 | 
            +
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 | 
            +
            pragma solidity ^0.8.20;
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            import {IAccessAdmin} from "../shared/IAccessAdmin.sol";
         | 
| 5 | 
            +
            import {ObjectType} from "../../contracts/type/ObjectType.sol";
         | 
| 6 | 
            +
            import {VersionPart} from "../../contracts/type/Version.sol";
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            interface IServiceAuthorization {
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                 /// @dev Returns the commit hash representing the deployed release
         | 
| 11 | 
            +
                 function getCommitHash()
         | 
| 12 | 
            +
                      external
         | 
| 13 | 
            +
                      view
         | 
| 14 | 
            +
                      returns(string memory commitHash);
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                 /// @dev Returns the release (VersionPart) for which the service authorizations are defined by this contract.
         | 
| 17 | 
            +
                 function getRelease()
         | 
| 18 | 
            +
                      external
         | 
| 19 | 
            +
                      view
         | 
| 20 | 
            +
                      returns(VersionPart release);
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                 /// @dev Returns the full list of service domains for this release.
         | 
| 23 | 
            +
                 /// Services need to be registered for the release in revers order of this list.
         | 
| 24 | 
            +
                 function getServiceDomains() external view returns(ObjectType[] memory serviceDomains);
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                 /// @dev Returns the expected service address for the provided domain.
         | 
| 27 | 
            +
                 function getServiceAddress(ObjectType serviceDomain) external view returns(address service);
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                 /// @dev Given the service domain this function returns the list of other service domains that are authorized to access this service.
         | 
| 30 | 
            +
                 function getAuthorizedDomains(ObjectType serviceDomain) external view returns(ObjectType[] memory authorizatedDomains);
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                 /// @dev For the given service domain and authorized domain the function returns the list of authorized functions
         | 
| 33 | 
            +
                 function getAuthorizedFunctions(ObjectType serviceDomain, ObjectType authorizedDomain) external view returns(IAccessAdmin.Function[] memory authorizatedFunctions);
         | 
| 34 | 
            +
            }
         | 
| 35 | 
            +
             | 
| @@ -2,14 +2,20 @@ | |
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 4 | 
             
            import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
         | 
| 5 | 
            +
            import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
         | 
| 5 6 |  | 
| 6 | 
            -
            import { | 
| 7 | 
            -
             | 
| 8 | 
            -
            import { | 
| 7 | 
            +
            import {InitializableCustom} from "../shared/InitializableCustom.sol";
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            import {NftId, NftIdLib} from "../type/NftId.sol";
         | 
| 10 | 
            +
            import {VersionPart} from "../type/Version.sol";
         | 
| 11 | 
            +
            import {ObjectType, PROTOCOL, REGISTRY, TOKEN, SERVICE, INSTANCE, STAKE, STAKING, PRODUCT, DISTRIBUTION, DISTRIBUTOR, ORACLE, POOL, POLICY, BUNDLE} from "../type/ObjectType.sol";
         | 
| 9 12 |  | 
| 10 13 | 
             
            import {ChainNft} from "./ChainNft.sol";
         | 
| 11 14 | 
             
            import {IRegistry} from "./IRegistry.sol";
         | 
| 15 | 
            +
            import {IRegisterable} from "../shared/IRegisterable.sol";
         | 
| 12 16 | 
             
            import {ReleaseManager} from "./ReleaseManager.sol";
         | 
| 17 | 
            +
            import {TokenRegistry} from "./TokenRegistry.sol";
         | 
| 18 | 
            +
            import {RegistryAdmin} from "./RegistryAdmin.sol";
         | 
| 13 19 |  | 
| 14 20 | 
             
            // IMPORTANT
         | 
| 15 21 | 
             
            // Each NFT minted by registry is accosiated with:
         | 
| @@ -22,10 +28,12 @@ import {ReleaseManager} from "./ReleaseManager.sol"; | |
| 22 28 | 
             
            // 4) state object by regular service (POLICY, BUNDLE, STAKE)
         | 
| 23 29 |  | 
| 24 30 | 
             
            contract Registry is
         | 
| 31 | 
            +
                InitializableCustom,
         | 
| 25 32 | 
             
                IRegistry
         | 
| 26 33 | 
             
            {
         | 
| 27 | 
            -
                address public  | 
| 34 | 
            +
                address public NFT_LOCK_ADDRESS = address(0x1);
         | 
| 28 35 | 
             
                uint256 public constant REGISTRY_TOKEN_SEQUENCE_ID = 2;
         | 
| 36 | 
            +
                uint256 public constant STAKING_TOKEN_SEQUENCE_ID = 3;
         | 
| 29 37 | 
             
                string public constant EMPTY_URI = "";
         | 
| 30 38 |  | 
| 31 39 | 
             
                mapping(NftId nftId => ObjectInfo info) private _info;
         | 
| @@ -41,40 +49,66 @@ contract Registry is | |
| 41 49 | 
             
                mapping(ObjectType objectType => mapping(
         | 
| 42 50 | 
             
                        ObjectType parentType => bool)) private _coreObjectCombinations;
         | 
| 43 51 |  | 
| 44 | 
            -
                 | 
| 45 | 
            -
                ChainNft  | 
| 52 | 
            +
                RegistryAdmin public immutable _admin;
         | 
| 53 | 
            +
                ChainNft public immutable _chainNft;
         | 
| 54 | 
            +
             | 
| 55 | 
            +
                NftId public immutable _protocolNftId;
         | 
| 56 | 
            +
                NftId public immutable _registryNftId;
         | 
| 57 | 
            +
                NftId public _stakingNftId;
         | 
| 46 58 |  | 
| 47 | 
            -
                 | 
| 59 | 
            +
                address public _tokenRegistryAddress;
         | 
| 60 | 
            +
                address public _stakingAddress;
         | 
| 61 | 
            +
                ReleaseManager public _releaseManager;
         | 
| 48 62 |  | 
| 49 63 | 
             
                modifier onlyRegistryService() {
         | 
| 50 64 | 
             
                    if(!_releaseManager.isActiveRegistryService(msg.sender)) {
         | 
| 51 | 
            -
                        revert  | 
| 65 | 
            +
                        revert ErrorRegistryCallerNotRegistryService();
         | 
| 52 66 | 
             
                    }
         | 
| 53 67 | 
             
                    _;
         | 
| 54 68 | 
             
                }
         | 
| 55 69 |  | 
| 70 | 
            +
             | 
| 56 71 | 
             
                modifier onlyReleaseManager() {
         | 
| 57 72 | 
             
                    if(msg.sender != address(_releaseManager)) {
         | 
| 58 | 
            -
                        revert  | 
| 73 | 
            +
                        revert ErrorRegistryCallerNotReleaseManager();
         | 
| 59 74 | 
             
                    }
         | 
| 60 75 | 
             
                    _;
         | 
| 61 76 | 
             
                }
         | 
| 62 77 |  | 
| 63 | 
            -
                constructor()
         | 
| 64 | 
            -
                {
         | 
| 65 | 
            -
                    _releaseManager = ReleaseManager(msg.sender);
         | 
| 66 78 |  | 
| 79 | 
            +
                constructor(RegistryAdmin admin) 
         | 
| 80 | 
            +
                    InitializableCustom() 
         | 
| 81 | 
            +
                {
         | 
| 82 | 
            +
                    _admin = admin;
         | 
| 67 83 | 
             
                    // deploy NFT 
         | 
| 68 84 | 
             
                    _chainNft = new ChainNft(address(this));
         | 
| 69 85 |  | 
| 70 86 | 
             
                    // initial registry setup
         | 
| 71 | 
            -
                    _registerProtocol();
         | 
| 72 | 
            -
                    _registerRegistry();
         | 
| 87 | 
            +
                    _protocolNftId = _registerProtocol();
         | 
| 88 | 
            +
                    _registryNftId = _registerRegistry();
         | 
| 73 89 |  | 
| 74 90 | 
             
                    // set object types and object parent relations
         | 
| 75 91 | 
             
                    _setupValidCoreTypesAndCombinations();
         | 
| 76 92 | 
             
                }
         | 
| 77 93 |  | 
| 94 | 
            +
             | 
| 95 | 
            +
                /// @dev wires release manager and token to registry (this contract).
         | 
| 96 | 
            +
                /// MUST be called by release manager.
         | 
| 97 | 
            +
                function initialize(
         | 
| 98 | 
            +
                    address releaseManager,
         | 
| 99 | 
            +
                    address tokenRegistry,
         | 
| 100 | 
            +
                    address staking
         | 
| 101 | 
            +
                )
         | 
| 102 | 
            +
                    external
         | 
| 103 | 
            +
                    initializer()
         | 
| 104 | 
            +
                {
         | 
| 105 | 
            +
                    _releaseManager = ReleaseManager(releaseManager);
         | 
| 106 | 
            +
                    _tokenRegistryAddress = tokenRegistry;
         | 
| 107 | 
            +
                    _stakingAddress = staking;
         | 
| 108 | 
            +
             | 
| 109 | 
            +
                    _stakingNftId = _registerStaking();
         | 
| 110 | 
            +
                }
         | 
| 111 | 
            +
             | 
| 78 112 | 
             
                function registerService(
         | 
| 79 113 | 
             
                    ObjectInfo memory info, 
         | 
| 80 114 | 
             
                    VersionPart version, 
         | 
| @@ -84,7 +118,16 @@ contract Registry is | |
| 84 118 | 
             
                    onlyReleaseManager
         | 
| 85 119 | 
             
                    returns(NftId nftId)
         | 
| 86 120 | 
             
                {
         | 
| 121 | 
            +
                    address service = info.objectAddress;
         | 
| 87 122 | 
             
                    /* must be guaranteed by release manager
         | 
| 123 | 
            +
                    if(service == address(0)) {
         | 
| 124 | 
            +
                        revert();
         | 
| 125 | 
            +
                    }
         | 
| 126 | 
            +
             | 
| 127 | 
            +
                    if(version.eqz()) {
         | 
| 128 | 
            +
                        revert();
         | 
| 129 | 
            +
                    }
         | 
| 130 | 
            +
             | 
| 88 131 | 
             
                    if(info.objectType != SERVICE()) {
         | 
| 89 132 | 
             
                        revert();
         | 
| 90 133 | 
             
                    }
         | 
| @@ -94,11 +137,15 @@ contract Registry is | |
| 94 137 | 
             
                    info.initialOwner == NFT_LOCK_ADDRESS <- if services are access managed
         | 
| 95 138 | 
             
                    */
         | 
| 96 139 |  | 
| 97 | 
            -
                    if( | 
| 98 | 
            -
                        revert  | 
| 140 | 
            +
                    if(domain.eqz()) {
         | 
| 141 | 
            +
                        revert ErrorRegistryDomainZero(service);
         | 
| 99 142 | 
             
                    }
         | 
| 100 143 |  | 
| 101 | 
            -
                    _service[version][domain]  | 
| 144 | 
            +
                    if(_service[version][domain] > address(0)) {
         | 
| 145 | 
            +
                        revert ErrorRegistryDomainAlreadyRegistered(service, version, domain);
         | 
| 146 | 
            +
                    }
         | 
| 147 | 
            +
                    
         | 
| 148 | 
            +
                    _service[version][domain] = service;
         | 
| 102 149 |  | 
| 103 150 | 
             
                    nftId = _register(info);
         | 
| 104 151 |  | 
| @@ -113,23 +160,17 @@ contract Registry is | |
| 113 160 | 
             
                    ObjectType objectType = info.objectType;
         | 
| 114 161 | 
             
                    ObjectType parentType = _info[info.parentNftId].objectType;
         | 
| 115 162 |  | 
| 116 | 
            -
                    // TODO do not need it here -> SERVICE is no longer part of _coreContractCombinations
         | 
| 117 | 
            -
                    // no service registrations
         | 
| 118 | 
            -
                    if(objectType == SERVICE()) {
         | 
| 119 | 
            -
                        revert ServiceRegistration();
         | 
| 120 | 
            -
                    }
         | 
| 121 | 
            -
             | 
| 122 163 | 
             
                    // only valid core types combinations
         | 
| 123 164 | 
             
                    if(info.objectAddress == address(0)) 
         | 
| 124 165 | 
             
                    {
         | 
| 125 166 | 
             
                        if(_coreObjectCombinations[objectType][parentType] == false) {
         | 
| 126 | 
            -
                            revert  | 
| 167 | 
            +
                            revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
         | 
| 127 168 | 
             
                        }
         | 
| 128 169 | 
             
                    }
         | 
| 129 170 | 
             
                    else
         | 
| 130 171 | 
             
                    {
         | 
| 131 172 | 
             
                        if(_coreContractCombinations[objectType][parentType] == false) {
         | 
| 132 | 
            -
                            revert  | 
| 173 | 
            +
                            revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
         | 
| 133 174 | 
             
                        }
         | 
| 134 175 | 
             
                    }
         | 
| 135 176 |  | 
| @@ -145,7 +186,7 @@ contract Registry is | |
| 145 186 | 
             
                    ObjectType parentType = _info[info.parentNftId].objectType;
         | 
| 146 187 |  | 
| 147 188 | 
             
                    if(_coreTypes[objectType]) {
         | 
| 148 | 
            -
                        revert  | 
| 189 | 
            +
                        revert ErrorRegistryCoreTypeRegistration();
         | 
| 149 190 | 
             
                    }
         | 
| 150 191 |  | 
| 151 192 | 
             
                    if(
         | 
| @@ -153,7 +194,7 @@ contract Registry is | |
| 153 194 | 
             
                        parentType == REGISTRY() ||
         | 
| 154 195 | 
             
                        parentType == SERVICE()
         | 
| 155 196 | 
             
                    ) {
         | 
| 156 | 
            -
                        revert  | 
| 197 | 
            +
                        revert ErrorRegistryTypesCombinationInvalid(objectType, parentType);
         | 
| 157 198 | 
             
                    }
         | 
| 158 199 |  | 
| 159 200 | 
             
                    _register(info);
         | 
| @@ -165,13 +206,7 @@ contract Registry is | |
| 165 206 | 
             
                    return _releaseManager.getInitialVersion();
         | 
| 166 207 | 
             
                }
         | 
| 167 208 |  | 
| 168 | 
            -
                 | 
| 169 | 
            -
                // need to be thought trough, not yet clear if necessary
         | 
| 170 | 
            -
                // need to answer question: what is the latest version during the upgrade process?
         | 
| 171 | 
            -
                // likely setting up a new gif version does not fit into a single tx
         | 
| 172 | 
            -
                // in this case we might want to have a period where the latest version is
         | 
| 173 | 
            -
                // in the process of being set up while the latest active version is 1 major release smaller
         | 
| 174 | 
            -
                /// @dev latest GIF major version (might not yet be active)
         | 
| 209 | 
            +
                /// @dev next GIF release version to be released
         | 
| 175 210 | 
             
                function getNextVersion() external view returns (VersionPart) {
         | 
| 176 211 | 
             
                    return _releaseManager.getNextVersion();
         | 
| 177 212 | 
             
                }
         | 
| @@ -189,14 +224,14 @@ contract Registry is | |
| 189 224 | 
             
                    return _chainNft.totalSupply();
         | 
| 190 225 | 
             
                }
         | 
| 191 226 |  | 
| 192 | 
            -
                function getReleaseManagerAddress() external view returns (address) {
         | 
| 193 | 
            -
                    return address(_releaseManager);
         | 
| 194 | 
            -
                }
         | 
| 195 | 
            -
             | 
| 196 227 | 
             
                function getNftId() external view returns (NftId nftId) {
         | 
| 197 228 | 
             
                    return _registryNftId;
         | 
| 198 229 | 
             
                }
         | 
| 199 230 |  | 
| 231 | 
            +
                function getProtocolNftId() external view returns (NftId nftId) {
         | 
| 232 | 
            +
                    return _protocolNftId;
         | 
| 233 | 
            +
                }
         | 
| 234 | 
            +
             | 
| 200 235 | 
             
                function getNftId(address object) external view returns (NftId id) {
         | 
| 201 236 | 
             
                    return _nftIdByAddress[object];
         | 
| 202 237 | 
             
                }
         | 
| @@ -234,9 +269,19 @@ contract Registry is | |
| 234 269 | 
             
                    return _info[objectParentNftId].objectType == INSTANCE();
         | 
| 235 270 | 
             
                }
         | 
| 236 271 |  | 
| 237 | 
            -
                function  | 
| 272 | 
            +
                function isActiveRelease(VersionPart version) external view returns (bool)
         | 
| 238 273 | 
             
                {
         | 
| 239 | 
            -
                    return _releaseManager. | 
| 274 | 
            +
                    return _releaseManager.isActiveRelease(version);
         | 
| 275 | 
            +
                }
         | 
| 276 | 
            +
             | 
| 277 | 
            +
                function getStakingAddress() external view returns (address staking) {
         | 
| 278 | 
            +
                    //return getObjectInfo(_stakingNftId).objectAddress;
         | 
| 279 | 
            +
                    //return _info[_stakingNftId].objectAddress;
         | 
| 280 | 
            +
                    return _stakingAddress;
         | 
| 281 | 
            +
                }
         | 
| 282 | 
            +
             | 
| 283 | 
            +
                function getTokenRegistryAddress() external view returns (address tokenRegistry) {
         | 
| 284 | 
            +
                    return _tokenRegistryAddress;
         | 
| 240 285 | 
             
                }
         | 
| 241 286 |  | 
| 242 287 | 
             
                function getServiceAddress(
         | 
| @@ -244,16 +289,29 @@ contract Registry is | |
| 244 289 | 
             
                    VersionPart releaseVersion
         | 
| 245 290 | 
             
                ) external view returns (address service)
         | 
| 246 291 | 
             
                {
         | 
| 247 | 
            -
                     | 
| 248 | 
            -
             | 
| 249 | 
            -
             | 
| 250 | 
            -
             | 
| 292 | 
            +
                    service =  _service[releaseVersion][serviceDomain]; 
         | 
| 293 | 
            +
                }
         | 
| 294 | 
            +
             | 
| 295 | 
            +
                function getReleaseAccessManagerAddress(VersionPart version) external view returns (address) {
         | 
| 296 | 
            +
                    return address(_releaseManager.getReleaseAccessManager(version));
         | 
| 297 | 
            +
                }
         | 
| 298 | 
            +
             | 
| 299 | 
            +
                function getReleaseManagerAddress() external view returns (address) {
         | 
| 300 | 
            +
                    return address(_releaseManager);
         | 
| 251 301 | 
             
                }
         | 
| 252 302 |  | 
| 253 303 | 
             
                function getChainNftAddress() external view override returns (address) {
         | 
| 254 304 | 
             
                    return address(_chainNft);
         | 
| 255 305 | 
             
                }
         | 
| 256 306 |  | 
| 307 | 
            +
                function getRegistryAdminAddress() external view returns (address) {
         | 
| 308 | 
            +
                    return address(_admin);
         | 
| 309 | 
            +
                }
         | 
| 310 | 
            +
             | 
| 311 | 
            +
                function getAuthority() external view returns (address) {
         | 
| 312 | 
            +
                    return _admin.authority();
         | 
| 313 | 
            +
                }
         | 
| 314 | 
            +
             | 
| 257 315 | 
             
                function getOwner() public view returns (address owner) {
         | 
| 258 316 | 
             
                    return ownerOf(address(this));
         | 
| 259 317 | 
             
                }
         | 
| @@ -277,59 +335,76 @@ contract Registry is | |
| 277 335 | 
             
                    returns(NftId nftId)
         | 
| 278 336 | 
             
                {
         | 
| 279 337 | 
             
                    ObjectType objectType = info.objectType;
         | 
| 338 | 
            +
                    bool isInterceptor = info.isInterceptor;
         | 
| 339 | 
            +
                    address objectAddress = info.objectAddress;
         | 
| 340 | 
            +
                    address owner = info.initialOwner;
         | 
| 341 | 
            +
             | 
| 280 342 | 
             
                    NftId parentNftId = info.parentNftId;
         | 
| 281 343 | 
             
                    ObjectInfo memory parentInfo = _info[parentNftId];
         | 
| 282 344 | 
             
                    ObjectType parentType = parentInfo.objectType; // see function header
         | 
| 283 345 | 
             
                    address parentAddress = parentInfo.objectAddress;
         | 
| 284 346 |  | 
| 285 347 | 
             
                    // parent is contract -> need to check? -> check before minting
         | 
| 348 | 
            +
                    // special case: staking: to protocol possible as well
         | 
| 286 349 | 
             
                    // special case: global registry nft as parent when not on mainnet -> global registry address is 0
         | 
| 287 350 | 
             
                    // special case: when parentNftId == _chainNft.mint(), check for zero parent address before mint
         | 
| 288 351 | 
             
                    // special case: when parentNftId == _chainNft.mint() && objectAddress == initialOwner
         | 
| 289 | 
            -
                    if( | 
| 290 | 
            -
                         | 
| 352 | 
            +
                    if(objectType != STAKE()) {
         | 
| 353 | 
            +
                        if(parentAddress == address(0)) {
         | 
| 354 | 
            +
                            revert ErrorRegistryParentAddressZero();
         | 
| 355 | 
            +
                        }
         | 
| 291 356 | 
             
                    }
         | 
| 292 357 |  | 
| 293 | 
            -
                    address  | 
| 294 | 
            -
             | 
| 295 | 
            -
             | 
| 358 | 
            +
                    address interceptorAddress = _getInterceptor(
         | 
| 359 | 
            +
                        isInterceptor, 
         | 
| 360 | 
            +
                        objectType, 
         | 
| 361 | 
            +
                        objectAddress, 
         | 
| 362 | 
            +
                        parentInfo.isInterceptor, 
         | 
| 363 | 
            +
                        parentAddress);
         | 
| 296 364 |  | 
| 365 | 
            +
                    uint256 tokenId = _chainNft.getNextTokenId();
         | 
| 366 | 
            +
                    nftId = NftIdLib.toNftId(tokenId);
         | 
| 297 367 | 
             
                    info.nftId = nftId;
         | 
| 298 368 | 
             
                    _info[nftId] = info;
         | 
| 299 369 |  | 
| 300 | 
            -
                    if( | 
| 301 | 
            -
             | 
| 302 | 
            -
             | 
| 303 | 
            -
             | 
| 304 | 
            -
                        if(_nftIdByAddress[contractAddress].gtz()) { 
         | 
| 305 | 
            -
                            revert ContractAlreadyRegistered(contractAddress);
         | 
| 370 | 
            +
                    if(objectAddress > address(0)) {
         | 
| 371 | 
            +
                        if(_nftIdByAddress[objectAddress].gtz()) { 
         | 
| 372 | 
            +
                            revert ErrorRegistryContractAlreadyRegistered(objectAddress);
         | 
| 306 373 | 
             
                        }
         | 
| 307 374 |  | 
| 308 | 
            -
                        _nftIdByAddress[ | 
| 375 | 
            +
                        _nftIdByAddress[objectAddress] = nftId;
         | 
| 309 376 | 
             
                    }
         | 
| 310 377 |  | 
| 311 | 
            -
                    emit LogRegistration(nftId, parentNftId, objectType,  | 
| 378 | 
            +
                    emit LogRegistration(nftId, parentNftId, objectType, isInterceptor, objectAddress, owner);
         | 
| 312 379 |  | 
| 313 380 | 
             
                    // calls nft receiver(1) and interceptor(2)
         | 
| 314 381 | 
             
                    uint256 mintedTokenId = _chainNft.mint(
         | 
| 315 | 
            -
                         | 
| 316 | 
            -
                         | 
| 382 | 
            +
                        owner,
         | 
| 383 | 
            +
                        interceptorAddress,
         | 
| 317 384 | 
             
                        EMPTY_URI);
         | 
| 318 | 
            -
             | 
| 319 | 
            -
                    
         | 
| 385 | 
            +
             | 
| 386 | 
            +
                    assert(mintedTokenId == tokenId);        
         | 
| 320 387 | 
             
                }
         | 
| 321 388 |  | 
| 322 389 | 
             
                /// @dev obtain interceptor address for this nft if applicable, address(0) otherwise
         | 
| 390 | 
            +
                /// special case: STAKES (parent may be any type) -> no intercept call
         | 
| 391 | 
            +
                /// default case: 
         | 
| 323 392 | 
             
                function _getInterceptor(
         | 
| 324 393 | 
             
                    bool isInterceptor, 
         | 
| 394 | 
            +
                    ObjectType objectType,
         | 
| 325 395 | 
             
                    address objectAddress,
         | 
| 326 396 | 
             
                    bool parentIsInterceptor,
         | 
| 327 397 | 
             
                    address parentObjectAddress
         | 
| 328 398 | 
             
                )
         | 
| 329 399 | 
             
                    internal 
         | 
| 330 | 
            -
                     | 
| 400 | 
            +
                    pure 
         | 
| 331 401 | 
             
                    returns (address interceptor) 
         | 
| 332 402 | 
             
                {
         | 
| 403 | 
            +
                    // no intercepting calls for stakes
         | 
| 404 | 
            +
                    if (objectType == STAKE()) {
         | 
| 405 | 
            +
                        return address(0);
         | 
| 406 | 
            +
                    }
         | 
| 407 | 
            +
             | 
| 333 408 | 
             
                    if (objectAddress == address(0)) {
         | 
| 334 409 | 
             
                        if (parentIsInterceptor) {
         | 
| 335 410 | 
             
                            return parentObjectAddress;
         | 
| @@ -350,13 +425,14 @@ contract Registry is | |
| 350 425 | 
             
                /// @dev protocol registration used to anchor the dip ecosystem relations
         | 
| 351 426 | 
             
                function _registerProtocol() 
         | 
| 352 427 | 
             
                    private
         | 
| 428 | 
            +
                    returns (NftId protocolNftId)
         | 
| 353 429 | 
             
                {
         | 
| 354 430 | 
             
                    uint256 protocolId = _chainNft.PROTOCOL_NFT_ID();
         | 
| 355 | 
            -
                     | 
| 431 | 
            +
                    protocolNftId = NftIdLib.toNftId(protocolId);
         | 
| 356 432 |  | 
| 357 433 | 
             
                    _info[protocolNftId] = ObjectInfo({
         | 
| 358 434 | 
             
                        nftId: protocolNftId,
         | 
| 359 | 
            -
                        parentNftId:  | 
| 435 | 
            +
                        parentNftId: NftIdLib.zero(),
         | 
| 360 436 | 
             
                        objectType: PROTOCOL(),
         | 
| 361 437 | 
             
                        isInterceptor: false, 
         | 
| 362 438 | 
             
                        objectAddress: address(0),
         | 
| @@ -371,19 +447,20 @@ contract Registry is | |
| 371 447 | 
             
                /// might also register the global registry when not on mainnet
         | 
| 372 448 | 
             
                function _registerRegistry() 
         | 
| 373 449 | 
             
                    private
         | 
| 450 | 
            +
                    returns (NftId registryNftId)
         | 
| 374 451 | 
             
                {
         | 
| 375 452 | 
             
                    uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
         | 
| 376 | 
            -
                     | 
| 453 | 
            +
                    registryNftId = NftIdLib.toNftId(registryId);
         | 
| 377 454 | 
             
                    NftId parentNftId;
         | 
| 378 455 |  | 
| 379 456 | 
             
                    if(registryId != _chainNft.GLOBAL_REGISTRY_ID()) 
         | 
| 380 457 | 
             
                    {// we're not the global registry
         | 
| 381 458 | 
             
                        _registerGlobalRegistry();
         | 
| 382 | 
            -
                        parentNftId = toNftId(_chainNft.GLOBAL_REGISTRY_ID());
         | 
| 459 | 
            +
                        parentNftId = NftIdLib.toNftId(_chainNft.GLOBAL_REGISTRY_ID());
         | 
| 383 460 | 
             
                    }
         | 
| 384 461 | 
             
                    else 
         | 
| 385 462 | 
             
                    {// we are global registry
         | 
| 386 | 
            -
                        parentNftId =  | 
| 463 | 
            +
                        parentNftId = _protocolNftId;
         | 
| 387 464 | 
             
                    }
         | 
| 388 465 |  | 
| 389 466 | 
             
                    _info[registryNftId] = ObjectInfo({
         | 
| @@ -395,9 +472,8 @@ contract Registry is | |
| 395 472 | 
             
                        initialOwner: NFT_LOCK_ADDRESS,
         | 
| 396 473 | 
             
                        data: "" 
         | 
| 397 474 | 
             
                    });
         | 
| 398 | 
            -
                    _nftIdByAddress[address(this)] = registryNftId;
         | 
| 399 | 
            -
                    _registryNftId = registryNftId;
         | 
| 400 475 |  | 
| 476 | 
            +
                    _nftIdByAddress[address(this)] = registryNftId;
         | 
| 401 477 | 
             
                    _chainNft.mint(NFT_LOCK_ADDRESS, registryId);
         | 
| 402 478 | 
             
                }
         | 
| 403 479 |  | 
| @@ -406,11 +482,11 @@ contract Registry is | |
| 406 482 | 
             
                    private
         | 
| 407 483 | 
             
                {
         | 
| 408 484 | 
             
                    uint256 globalRegistryId = _chainNft.GLOBAL_REGISTRY_ID();
         | 
| 409 | 
            -
                    NftId globalRegistryNftId = toNftId(globalRegistryId);
         | 
| 485 | 
            +
                    NftId globalRegistryNftId = NftIdLib.toNftId(globalRegistryId);
         | 
| 410 486 |  | 
| 411 487 | 
             
                    _info[globalRegistryNftId] = ObjectInfo({
         | 
| 412 488 | 
             
                        nftId: globalRegistryNftId,
         | 
| 413 | 
            -
                        parentNftId: toNftId(_chainNft.PROTOCOL_NFT_ID()),
         | 
| 489 | 
            +
                        parentNftId: NftIdLib.toNftId(_chainNft.PROTOCOL_NFT_ID()),
         | 
| 414 490 | 
             
                        objectType: REGISTRY(),
         | 
| 415 491 | 
             
                        isInterceptor: false,
         | 
| 416 492 | 
             
                        objectAddress: address(0),
         | 
| @@ -420,13 +496,36 @@ contract Registry is | |
| 420 496 |  | 
| 421 497 | 
             
                    _chainNft.mint(NFT_LOCK_ADDRESS, globalRegistryId);
         | 
| 422 498 | 
             
                }
         | 
| 499 | 
            +
                // depends on _registryNftId and _stakingAddress
         | 
| 500 | 
            +
                function _registerStaking()
         | 
| 501 | 
            +
                    private
         | 
| 502 | 
            +
                    returns (NftId stakingNftId)
         | 
| 503 | 
            +
                {
         | 
| 504 | 
            +
                    address stakingOwner = IRegisterable(_stakingAddress).getOwner();
         | 
| 505 | 
            +
                    uint256 stakingId = _chainNft.calculateTokenId(STAKING_TOKEN_SEQUENCE_ID);
         | 
| 506 | 
            +
                    stakingNftId = NftIdLib.toNftId(stakingId);
         | 
| 507 | 
            +
             | 
| 508 | 
            +
                    _info[stakingNftId] = ObjectInfo({
         | 
| 509 | 
            +
                        nftId: stakingNftId,
         | 
| 510 | 
            +
                        parentNftId: _registryNftId,
         | 
| 511 | 
            +
                        objectType: STAKING(),
         | 
| 512 | 
            +
                        isInterceptor: false,
         | 
| 513 | 
            +
                        objectAddress: _stakingAddress, 
         | 
| 514 | 
            +
                        initialOwner: stakingOwner,
         | 
| 515 | 
            +
                        data: "" 
         | 
| 516 | 
            +
                    });
         | 
| 517 | 
            +
             | 
| 518 | 
            +
                    _nftIdByAddress[_stakingAddress] = stakingNftId;
         | 
| 519 | 
            +
                    // reverts if nftId was already minted
         | 
| 520 | 
            +
                    _chainNft.mint(stakingOwner, stakingId);
         | 
| 521 | 
            +
                }
         | 
| 423 522 |  | 
| 424 523 | 
             
                /// @dev defines which object - parent types relations are allowed to register
         | 
| 425 524 | 
             
                // IMPORTANT: 
         | 
| 426 525 | 
             
                // 1) EACH object type MUST have only one parent type across ALL mappings
         | 
| 427 526 | 
             
                // 2) DO NOT use object type (e.g. POLCY, BUNDLE, STAKE) as parent type
         | 
| 428 527 | 
             
                // 3) DO NOT use REGISTRY as object type
         | 
| 429 | 
            -
                // 2) DO NOT use PROTOCOL and " | 
| 528 | 
            +
                // 2) DO NOT use PROTOCOL and "ObjectTypeLib.zero"
         | 
| 430 529 | 
             
                function _setupValidCoreTypesAndCombinations() 
         | 
| 431 530 | 
             
                    private 
         | 
| 432 531 | 
             
                {
         | 
| @@ -437,31 +536,41 @@ contract Registry is | |
| 437 536 | 
             
                    _coreTypes[PRODUCT()] = true;
         | 
| 438 537 | 
             
                    _coreTypes[POOL()] = true;
         | 
| 439 538 | 
             
                    _coreTypes[DISTRIBUTION()] = true;
         | 
| 539 | 
            +
                    _coreTypes[DISTRIBUTOR()] = true;
         | 
| 540 | 
            +
                    _coreTypes[ORACLE()] = true;
         | 
| 440 541 | 
             
                    _coreTypes[POLICY()] = true;
         | 
| 441 542 | 
             
                    _coreTypes[BUNDLE()] = true;
         | 
| 543 | 
            +
                    _coreTypes[STAKING()] = true;
         | 
| 442 544 | 
             
                    _coreTypes[STAKE()] = true;
         | 
| 443 | 
            -
             | 
| 444 | 
            -
                     | 
| 445 | 
            -
                     | 
| 545 | 
            +
             | 
| 546 | 
            +
                    uint256 registryId = _chainNft.calculateTokenId(REGISTRY_TOKEN_SEQUENCE_ID);
         | 
| 547 | 
            +
                    if(registryId == _chainNft.GLOBAL_REGISTRY_ID()) {
         | 
| 548 | 
            +
                        // we are global registry
         | 
| 549 | 
            +
                        // object is registry from different chain
         | 
| 550 | 
            +
                        // parent is global registry, this contract
         | 
| 551 | 
            +
                        _coreContractCombinations[REGISTRY()][REGISTRY()] = true; // only for global regstry
         | 
| 552 | 
            +
                        //_coreObjectCombinations[REGISTRY()][REGISTRY()] = true;
         | 
| 553 | 
            +
                    } else {
         | 
| 554 | 
            +
                        // we are not global registry
         | 
| 555 | 
            +
                        // object is local registry, this contract
         | 
| 556 | 
            +
                        // parent is global registry, object with 0 address or registry from mainnet???
         | 
| 557 | 
            +
                    }
         | 
| 558 | 
            +
                    _coreContractCombinations[STAKING()][REGISTRY()] = true; // only for chain staking contract
         | 
| 446 559 | 
             
                    _coreContractCombinations[TOKEN()][REGISTRY()] = true;
         | 
| 447 560 | 
             
                    //_coreContractCombinations[SERVICE()][REGISTRY()] = true;// do not need it here -> registerService() registers exactly this combination
         | 
| 448 | 
            -
             | 
| 449 | 
            -
                    // registry as parent, ONLY approved
         | 
| 450 561 | 
             
                    _coreContractCombinations[INSTANCE()][REGISTRY()] = true;
         | 
| 451 562 |  | 
| 452 | 
            -
                    // instance as parent, ONLY approved
         | 
| 453 563 | 
             
                    _coreContractCombinations[PRODUCT()][INSTANCE()] = true;
         | 
| 454 564 | 
             
                    _coreContractCombinations[DISTRIBUTION()][INSTANCE()] = true;
         | 
| 455 565 | 
             
                    _coreContractCombinations[ORACLE()][INSTANCE()] = true;
         | 
| 456 566 | 
             
                    _coreContractCombinations[POOL()][INSTANCE()] = true;
         | 
| 457 567 |  | 
| 458 568 | 
             
                    _coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
         | 
| 459 | 
            -
             | 
| 460 | 
            -
                    // product as parent, ONLY approved
         | 
| 461 569 | 
             
                    _coreObjectCombinations[POLICY()][PRODUCT()] = true;
         | 
| 462 | 
            -
             | 
| 463 | 
            -
                    // pool as parent, ONLY approved
         | 
| 464 570 | 
             
                    _coreObjectCombinations[BUNDLE()][POOL()] = true;
         | 
| 465 | 
            -
             | 
| 571 | 
            +
             | 
| 572 | 
            +
                    // staking
         | 
| 573 | 
            +
                    _coreObjectCombinations[STAKE()][PROTOCOL()] = true;
         | 
| 574 | 
            +
                    _coreObjectCombinations[STAKE()][INSTANCE()] = true;
         | 
| 466 575 | 
             
                }
         | 
| 467 576 | 
             
            }
         |