@etherisc/gif-next 0.0.2-f1b01e0-214 → 0.0.2-f1e6957-384
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 +76 -341
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +100 -32
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +111 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +52 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +367 -126
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1546 -211
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +261 -59
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +258 -82
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +97 -14
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +52 -27
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +264 -64
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +20 -11
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +368 -139
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +160 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +19 -10
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +228 -15
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +81 -52
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +263 -63
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +109 -68
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +263 -63
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +74 -33
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +263 -63
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +35 -26
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +85 -60
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +263 -63
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +264 -78
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +263 -63
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +359 -33
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +297 -3
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +407 -97
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +756 -392
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +231 -75
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +492 -424
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +323 -29
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1444 -2133
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
- 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 +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +25 -16
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +277 -60
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +19 -10
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -10
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +83 -38
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +116 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +37 -36
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +263 -63
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +294 -117
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +180 -27
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +19 -10
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +220 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +19 -10
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +88 -22
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +324 -65
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +216 -59
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +113 -43
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +19 -10
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +263 -63
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +128 -70
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +29 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +19 -10
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +203 -18
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +508 -18
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +138 -72
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +93 -72
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -50
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +19 -10
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +231 -46
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -43
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- 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 +71 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +537 -300
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +330 -71
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +41 -12
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +96 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +543 -226
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +167 -103
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +19 -10
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +169 -174
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +130 -64
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +76 -41
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -10
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +84 -105
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -10
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -10
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1384 -128
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +94 -114
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1472 -185
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +73 -72
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +139 -64
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +293 -149
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +128 -164
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +96 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1617 -817
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +140 -78
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -2
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +6 -6
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -27
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +15 -3
- package/contracts/accounting/IAccountingService.sol +2 -0
- package/contracts/authorization/AccessAdmin.sol +292 -317
- package/contracts/authorization/AccessAdminLib.sol +517 -22
- package/contracts/authorization/AccessManagerCloneable.sol +0 -18
- package/contracts/authorization/Authorization.sol +64 -239
- package/contracts/authorization/IAccess.sol +23 -14
- package/contracts/authorization/IAccessAdmin.sol +25 -53
- package/contracts/authorization/IAuthorization.sol +3 -57
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +3 -4
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +9 -8
- package/contracts/distribution/DistributionService.sol +98 -35
- package/contracts/distribution/IDistributionComponent.sol +3 -1
- package/contracts/distribution/IDistributionService.sol +20 -8
- package/contracts/examples/fire/FireProduct.sol +6 -6
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -19
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +55 -5
- package/contracts/instance/IInstanceService.sol +37 -6
- package/contracts/instance/Instance.sol +103 -56
- package/contracts/instance/InstanceAdmin.sol +151 -294
- package/contracts/instance/InstanceAuthorizationV3.sol +106 -66
- package/contracts/instance/InstanceReader.sol +350 -394
- package/contracts/instance/InstanceService.sol +180 -125
- package/contracts/instance/InstanceStore.sol +153 -128
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/instance/module/IComponents.sol +0 -2
- package/contracts/oracle/BasicOracle.sol +2 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/Oracle.sol +4 -6
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -16
- package/contracts/pool/BasicPoolAuthorization.sol +10 -5
- package/contracts/pool/BundleService.sol +34 -43
- package/contracts/pool/IBundleService.sol +14 -13
- package/contracts/pool/IPoolService.sol +7 -2
- package/contracts/pool/Pool.sol +6 -18
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +40 -181
- package/contracts/product/ApplicationService.sol +64 -11
- package/contracts/product/BasicProduct.sol +2 -3
- package/contracts/product/BasicProductAuthorization.sol +11 -4
- package/contracts/product/ClaimService.sol +99 -105
- package/contracts/product/IApplicationService.sol +21 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +9 -2
- package/contracts/product/IRiskService.sol +18 -3
- package/contracts/product/PolicyService.sol +40 -59
- package/contracts/product/PolicyServiceLib.sol +79 -5
- package/contracts/product/PricingService.sol +22 -25
- package/contracts/product/Product.sol +40 -16
- package/contracts/product/RiskService.sol +50 -15
- package/contracts/registry/IRegistry.sol +11 -9
- package/contracts/registry/IRelease.sol +6 -3
- package/contracts/registry/Registry.sol +15 -9
- package/contracts/registry/RegistryAdmin.sol +33 -118
- package/contracts/registry/RegistryAuthorization.sol +139 -69
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +52 -106
- package/contracts/registry/ReleaseRegistry.sol +20 -12
- package/contracts/registry/ServiceAuthorizationV3.sol +43 -32
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +8 -8
- package/contracts/shared/ComponentService.sol +245 -262
- package/contracts/shared/ContractLib.sol +106 -75
- package/contracts/shared/IComponent.sol +1 -1
- package/contracts/shared/IComponentService.sol +12 -13
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InstanceLinkedComponent.sol +6 -9
- package/contracts/shared/NftOwnable.sol +3 -1
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Service.sol +6 -4
- package/contracts/staking/IStaking.sol +261 -70
- package/contracts/staking/IStakingService.sol +39 -84
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +468 -217
- package/contracts/staking/StakingLib.sol +38 -124
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +62 -71
- package/contracts/staking/StakingService.sol +42 -185
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1093 -331
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +17 -22
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +16 -3
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +19 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -2
- package/contracts/type/UFixed.sol +1 -0
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
| @@ -5,11 +5,13 @@ import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165C | |
| 5 5 | 
             
            import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
         | 
| 6 6 | 
             
            import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
         | 
| 7 7 |  | 
| 8 | 
            -
            // import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
         | 
| 9 | 
            -
            import {IRegistry} from "../registry/IRegistry.sol";
         | 
| 10 8 | 
             
            import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
         | 
| 9 | 
            +
            import {IRegistry} from "../registry/IRegistry.sol";
         | 
| 10 | 
            +
            import {IService} from "../shared/IService.sol";
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            import {ChainId} from "../type/ChainId.sol";
         | 
| 11 13 | 
             
            import {NftId} from "../type/NftId.sol";
         | 
| 12 | 
            -
            import {ObjectType, PRODUCT, DISTRIBUTION, ORACLE, POOL | 
| 14 | 
            +
            import {ObjectType, INSTANCE, PRODUCT, DISTRIBUTION, ORACLE, POOL} from "../type/ObjectType.sol";
         | 
| 13 15 | 
             
            import {VersionPart} from "../type/Version.sol";
         | 
| 14 16 |  | 
| 15 17 | 
             
            interface ITargetHelper {
         | 
| @@ -21,44 +23,18 @@ interface IInstanceAdminHelper { | |
| 21 23 | 
             
            }
         | 
| 22 24 |  | 
| 23 25 | 
             
            interface ITokenRegistryHelper {
         | 
| 24 | 
            -
                function isActive( | 
| 26 | 
            +
                function isActive(ChainId chainId, address token, VersionPart release) external view returns (bool);
         | 
| 25 27 | 
             
            }
         | 
| 26 28 |  | 
| 27 29 | 
             
            library ContractLib {
         | 
| 28 30 |  | 
| 29 | 
            -
                error  | 
| 30 | 
            -
                error  | 
| 31 | 
            -
                error  | 
| 31 | 
            +
                error ErrorContractLibCallerNotRegistered(address target);
         | 
| 32 | 
            +
                error ErrorContractLibCallerNotComponent(NftId componentNftId, ObjectType objectType);
         | 
| 33 | 
            +
                error ErrorContractLibParentNotInstance(NftId componentNftId, NftId parentNftId);
         | 
| 34 | 
            +
                error ErrorContractLibParentNotProduct(NftId componentNftId, NftId parentNftId);
         | 
| 32 35 | 
             
                error ErrorContractLibComponentTypeMismatch(NftId componentNftId, ObjectType expectedType, ObjectType actualType);
         | 
| 33 36 | 
             
                error ErrorContractLibComponentInactive(NftId componentNftId);
         | 
| 34 37 |  | 
| 35 | 
            -
                function getAndVerifyComponent(
         | 
| 36 | 
            -
                    IRegistry registry, 
         | 
| 37 | 
            -
                    address target,
         | 
| 38 | 
            -
                    ObjectType expectedType,
         | 
| 39 | 
            -
                    bool onlyActive
         | 
| 40 | 
            -
                )
         | 
| 41 | 
            -
                    external
         | 
| 42 | 
            -
                    view
         | 
| 43 | 
            -
                    returns (
         | 
| 44 | 
            -
                        IRegistry.ObjectInfo memory info, 
         | 
| 45 | 
            -
                        address instance
         | 
| 46 | 
            -
                    )
         | 
| 47 | 
            -
                {
         | 
| 48 | 
            -
                    // check target is component
         | 
| 49 | 
            -
                    info = _getObjectInfo(registry, target);
         | 
| 50 | 
            -
                    if(info.objectType != expectedType) {
         | 
| 51 | 
            -
                        revert ErrorContractLibComponentTypeMismatch(
         | 
| 52 | 
            -
                            info.nftId,
         | 
| 53 | 
            -
                            expectedType,
         | 
| 54 | 
            -
                            info.objectType);
         | 
| 55 | 
            -
                    }
         | 
| 56 | 
            -
             | 
| 57 | 
            -
                    // get instance and check component is active
         | 
| 58 | 
            -
                    instance = _getInstance(registry, info);
         | 
| 59 | 
            -
                    _checkComponentActive(instance, target, info.nftId, onlyActive);
         | 
| 60 | 
            -
                }
         | 
| 61 | 
            -
             | 
| 62 38 |  | 
| 63 39 | 
             
                function getInfoAndInstance(
         | 
| 64 40 | 
             
                    IRegistry registry,
         | 
| @@ -73,34 +49,42 @@ library ContractLib { | |
| 73 49 | 
             
                    )
         | 
| 74 50 | 
             
                {
         | 
| 75 51 | 
             
                    info = registry.getObjectInfo(componentNftId);
         | 
| 76 | 
            -
                     | 
| 77 | 
            -
                    _checkComponentActive(instance, info.objectAddress, info.nftId, onlyActive);
         | 
| 52 | 
            +
                    return _getAndVerifyComponentAndInstance(registry, info, info.objectType, onlyActive);
         | 
| 78 53 | 
             
                }
         | 
| 79 54 |  | 
| 80 55 |  | 
| 81 | 
            -
                function  | 
| 56 | 
            +
                function getAndVerifyAnyComponent(
         | 
| 82 57 | 
             
                    IRegistry registry, 
         | 
| 83 | 
            -
                    address  | 
| 58 | 
            +
                    address caller,
         | 
| 59 | 
            +
                    bool onlyActive
         | 
| 84 60 | 
             
                )
         | 
| 85 61 | 
             
                    external
         | 
| 86 62 | 
             
                    view
         | 
| 87 63 | 
             
                    returns (
         | 
| 88 | 
            -
                        IRegistry.ObjectInfo memory  | 
| 64 | 
            +
                        IRegistry.ObjectInfo memory callerInfo, 
         | 
| 65 | 
            +
                        address instance
         | 
| 89 66 | 
             
                    )
         | 
| 90 67 | 
             
                {
         | 
| 91 | 
            -
                    // check  | 
| 92 | 
            -
                     | 
| 93 | 
            -
                    if( | 
| 94 | 
            -
                         | 
| 95 | 
            -
             | 
| 96 | 
            -
             | 
| 68 | 
            +
                    // check caller is component
         | 
| 69 | 
            +
                    callerInfo = _getAndVerifyObjectInfo(registry, caller);
         | 
| 70 | 
            +
                    if(!(callerInfo.objectType == PRODUCT()
         | 
| 71 | 
            +
                        || callerInfo.objectType == POOL()
         | 
| 72 | 
            +
                        || callerInfo.objectType == DISTRIBUTION()
         | 
| 73 | 
            +
                        || callerInfo.objectType == ORACLE())
         | 
| 74 | 
            +
                    ) {
         | 
| 75 | 
            +
                        revert ErrorContractLibCallerNotComponent(
         | 
| 76 | 
            +
                            callerInfo.nftId,
         | 
| 77 | 
            +
                            callerInfo.objectType);
         | 
| 97 78 | 
             
                    }
         | 
| 79 | 
            +
             | 
| 80 | 
            +
                    return _getAndVerifyComponentAndInstance(registry, callerInfo, callerInfo.objectType, onlyActive);
         | 
| 98 81 | 
             
                }
         | 
| 99 82 |  | 
| 100 83 |  | 
| 101 | 
            -
                function  | 
| 84 | 
            +
                function getAndVerifyComponent(
         | 
| 102 85 | 
             
                    IRegistry registry, 
         | 
| 103 | 
            -
                    address  | 
| 86 | 
            +
                    address caller,
         | 
| 87 | 
            +
                    ObjectType expectedType,
         | 
| 104 88 | 
             
                    bool onlyActive
         | 
| 105 89 | 
             
                )
         | 
| 106 90 | 
             
                    external
         | 
| @@ -110,21 +94,8 @@ library ContractLib { | |
| 110 94 | 
             
                        address instance
         | 
| 111 95 | 
             
                    )
         | 
| 112 96 | 
             
                {
         | 
| 113 | 
            -
                     | 
| 114 | 
            -
                     | 
| 115 | 
            -
                    if(!(info.objectType == PRODUCT()
         | 
| 116 | 
            -
                        || info.objectType == POOL()
         | 
| 117 | 
            -
                        || info.objectType == DISTRIBUTION()
         | 
| 118 | 
            -
                        || info.objectType == ORACLE())
         | 
| 119 | 
            -
                    ) {
         | 
| 120 | 
            -
                        revert ErrorContractLibNotComponent(
         | 
| 121 | 
            -
                            info.nftId,
         | 
| 122 | 
            -
                            info.objectType);
         | 
| 123 | 
            -
                    }
         | 
| 124 | 
            -
             | 
| 125 | 
            -
                    // get instance and check component is active
         | 
| 126 | 
            -
                    instance = _getInstance(registry, info);
         | 
| 127 | 
            -
                    _checkComponentActive(instance, target, info.nftId, onlyActive);
         | 
| 97 | 
            +
                    info = _getAndVerifyObjectInfo(registry, caller);
         | 
| 98 | 
            +
                    return _getAndVerifyComponentAndInstance(registry, info, expectedType, onlyActive);
         | 
| 128 99 | 
             
                }
         | 
| 129 100 |  | 
| 130 101 |  | 
| @@ -144,8 +115,8 @@ library ContractLib { | |
| 144 115 |  | 
| 145 116 | 
             
                function isActiveToken(
         | 
| 146 117 | 
             
                    address tokenRegistryAddress,
         | 
| 118 | 
            +
                    ChainId chainId, 
         | 
| 147 119 | 
             
                    address token,
         | 
| 148 | 
            -
                    uint256 chainId, 
         | 
| 149 120 | 
             
                    VersionPart release
         | 
| 150 121 | 
             
                )
         | 
| 151 122 | 
             
                    external 
         | 
| @@ -157,6 +128,7 @@ library ContractLib { | |
| 157 128 | 
             
                            chainId, token, release);
         | 
| 158 129 | 
             
                }
         | 
| 159 130 |  | 
| 131 | 
            +
             | 
| 160 132 | 
             
                function isPolicyHolder(address target) external view returns (bool) {
         | 
| 161 133 | 
             
                    return ERC165Checker.supportsInterface(target, type(IPolicyHolder).interfaceId);
         | 
| 162 134 | 
             
                }
         | 
| @@ -198,6 +170,15 @@ library ContractLib { | |
| 198 170 | 
             
                }
         | 
| 199 171 |  | 
| 200 172 |  | 
| 173 | 
            +
                function isService(address service) public view returns (bool) {
         | 
| 174 | 
            +
                    if (!isContract(service)) {
         | 
| 175 | 
            +
                        return false;
         | 
| 176 | 
            +
                    }
         | 
| 177 | 
            +
             | 
| 178 | 
            +
                    return supportsInterface(service, type(IService).interfaceId);
         | 
| 179 | 
            +
                }
         | 
| 180 | 
            +
             | 
| 181 | 
            +
             | 
| 201 182 | 
             
                function isRegistry(address registry) public view returns (bool) {
         | 
| 202 183 | 
             
                    if (!isContract(registry)) {
         | 
| 203 184 | 
             
                        return false;
         | 
| @@ -224,6 +205,37 @@ library ContractLib { | |
| 224 205 | 
             
                }
         | 
| 225 206 |  | 
| 226 207 |  | 
| 208 | 
            +
                function _getAndVerifyComponentAndInstance(
         | 
| 209 | 
            +
                    IRegistry registry, 
         | 
| 210 | 
            +
                    IRegistry.ObjectInfo memory info,
         | 
| 211 | 
            +
                    ObjectType expectedType,
         | 
| 212 | 
            +
                    bool onlyActive
         | 
| 213 | 
            +
                )
         | 
| 214 | 
            +
                    internal
         | 
| 215 | 
            +
                    view
         | 
| 216 | 
            +
                    returns (
         | 
| 217 | 
            +
                        IRegistry.ObjectInfo memory, 
         | 
| 218 | 
            +
                        address instance
         | 
| 219 | 
            +
                    )
         | 
| 220 | 
            +
                {
         | 
| 221 | 
            +
                    if(info.objectType != expectedType) {
         | 
| 222 | 
            +
                        revert ErrorContractLibComponentTypeMismatch(
         | 
| 223 | 
            +
                            info.nftId,
         | 
| 224 | 
            +
                            expectedType,
         | 
| 225 | 
            +
                            info.objectType);
         | 
| 226 | 
            +
                    }
         | 
| 227 | 
            +
             | 
| 228 | 
            +
                    // get instance and check component is active
         | 
| 229 | 
            +
                    instance = getAndVerifyInstance(registry, info);
         | 
| 230 | 
            +
                    _checkComponentActive(instance, info.objectAddress, info.nftId, onlyActive);
         | 
| 231 | 
            +
             | 
| 232 | 
            +
                    return (
         | 
| 233 | 
            +
                        info,
         | 
| 234 | 
            +
                        instance
         | 
| 235 | 
            +
                    );
         | 
| 236 | 
            +
                }
         | 
| 237 | 
            +
             | 
| 238 | 
            +
             | 
| 227 239 | 
             
                function _checkComponentActive(
         | 
| 228 240 | 
             
                    address instance, 
         | 
| 229 241 | 
             
                    address target, 
         | 
| @@ -244,36 +256,55 @@ library ContractLib { | |
| 244 256 | 
             
                }
         | 
| 245 257 |  | 
| 246 258 |  | 
| 247 | 
            -
                function  | 
| 259 | 
            +
                /// @dev Given an object info the function returns the instance address.
         | 
| 260 | 
            +
                /// The info may represent a product or any other component.
         | 
| 261 | 
            +
                /// If the parent of the provided info is not registered with the correct type, the function reverts.
         | 
| 262 | 
            +
                function getAndVerifyInstance(
         | 
| 248 263 | 
             
                    IRegistry registry,
         | 
| 249 264 | 
             
                    IRegistry.ObjectInfo memory info
         | 
| 250 265 | 
             
                )
         | 
| 251 | 
            -
                     | 
| 266 | 
            +
                    public
         | 
| 252 267 | 
             
                    view
         | 
| 253 268 | 
             
                    returns (address instance)
         | 
| 254 269 | 
             
                {
         | 
| 270 | 
            +
                    // get instance for product case
         | 
| 255 271 | 
             
                    if (info.objectType == PRODUCT()) {
         | 
| 256 | 
            -
                         | 
| 272 | 
            +
                        // verify that parent of product is registered instance
         | 
| 273 | 
            +
                        IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(info.parentNftId);
         | 
| 274 | 
            +
                        if (instanceInfo.objectType != INSTANCE()) {
         | 
| 275 | 
            +
                            revert ErrorContractLibParentNotInstance(
         | 
| 276 | 
            +
                                info.nftId,
         | 
| 277 | 
            +
                                info.parentNftId);
         | 
| 278 | 
            +
                        }
         | 
| 279 | 
            +
             | 
| 280 | 
            +
                        // we have verified that parent object is a registerd instance -> we return the instance address
         | 
| 281 | 
            +
                        return instanceInfo.objectAddress;
         | 
| 282 | 
            +
                    }
         | 
| 283 | 
            +
             | 
| 284 | 
            +
                    // not product: verify parent is registered product
         | 
| 285 | 
            +
                    info = registry.getObjectInfo(info.parentNftId);
         | 
| 286 | 
            +
                    if (info.objectType != PRODUCT()) {
         | 
| 287 | 
            +
                        revert ErrorContractLibParentNotProduct(
         | 
| 288 | 
            +
                            info.nftId,
         | 
| 257 289 | 
             
                            info.parentNftId);
         | 
| 258 | 
            -
                    } | 
| 259 | 
            -
             | 
| 260 | 
            -
                     | 
| 261 | 
            -
             | 
| 262 | 
            -
                                info.parentNftId).parentNftId);
         | 
| 290 | 
            +
                    }
         | 
| 291 | 
            +
             | 
| 292 | 
            +
                    // we have verified that parent is registerd product -> we can rely on registry that its parent is an instance
         | 
| 293 | 
            +
                    return registry.getObjectAddress(info.parentNftId);
         | 
| 263 294 | 
             
                }
         | 
| 264 295 |  | 
| 265 296 |  | 
| 266 | 
            -
                function  | 
| 297 | 
            +
                function _getAndVerifyObjectInfo(
         | 
| 267 298 | 
             
                    IRegistry registry, 
         | 
| 268 | 
            -
                    address  | 
| 299 | 
            +
                    address caller
         | 
| 269 300 | 
             
                )
         | 
| 270 301 | 
             
                    internal
         | 
| 271 302 | 
             
                    view
         | 
| 272 303 | 
             
                    returns (IRegistry.ObjectInfo memory info)
         | 
| 273 304 | 
             
                {
         | 
| 274 | 
            -
                    NftId componentNftId = registry.getNftIdForAddress( | 
| 305 | 
            +
                    NftId componentNftId = registry.getNftIdForAddress(caller);
         | 
| 275 306 | 
             
                    if (componentNftId.eqz()) {
         | 
| 276 | 
            -
                        revert  | 
| 307 | 
            +
                        revert ErrorContractLibCallerNotRegistered(caller);
         | 
| 277 308 | 
             
                    }
         | 
| 278 309 |  | 
| 279 310 | 
             
                    info = registry.getObjectInfo(componentNftId);
         | 
| @@ -40,7 +40,7 @@ interface IComponent is | |
| 40 40 | 
             
                function getTokenHandler() external view returns (TokenHandler tokenHandler);
         | 
| 41 41 |  | 
| 42 42 | 
             
                /// @dev defines the wallet address used to hold the ERC20 tokens related to this component
         | 
| 43 | 
            -
                /// the default address is the  | 
| 43 | 
            +
                /// the default address is the token handler address
         | 
| 44 44 | 
             
                function getWallet() external view returns (address walletAddress);
         | 
| 45 45 |  | 
| 46 46 | 
             
                /// @dev returns true iff this compoent intercepts nft minting and transfers for objects registered by this component
         | 
| @@ -16,22 +16,20 @@ import {VersionPart} from "../type/Version.sol"; | |
| 16 16 | 
             
            interface IComponentService is 
         | 
| 17 17 | 
             
                IService
         | 
| 18 18 | 
             
            {
         | 
| 19 | 
            +
                // registerProduct
         | 
| 20 | 
            +
                error ErrorComponentServiceCallerNotInstance(address caller);
         | 
| 21 | 
            +
                error ErrorComponentServiceNotProduct(address product);
         | 
| 19 22 | 
             
                error ErrorComponentServiceTokenInvalid(address token);
         | 
| 20 23 |  | 
| 21 | 
            -
                 | 
| 22 | 
            -
                error  | 
| 24 | 
            +
                // registerComponent
         | 
| 25 | 
            +
                error ErrorComponentServiceCallerNotProduct(address caller);
         | 
| 23 26 | 
             
                error ErrorComponentServiceNotComponent(address component);
         | 
| 24 | 
            -
             | 
| 25 | 
            -
                error  | 
| 26 | 
            -
                error  | 
| 27 | 
            -
                error  | 
| 28 | 
            -
                error  | 
| 29 | 
            -
                error  | 
| 30 | 
            -
                error ErrorComponentServiceParentNotProduct(NftId nftId, ObjectType objectType);
         | 
| 31 | 
            -
             | 
| 32 | 
            -
                error ErrorComponentServiceNotRegistered(address instanceAddress);
         | 
| 33 | 
            -
                error ErrorComponentServiceNotInstance(address instanceAddress, ObjectType objectType);
         | 
| 34 | 
            -
                error ErrorComponentServiceInstanceVersionMismatch(address instanceAddress, VersionPart instanceVersion);
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                error ErrorComponentServiceNotInstanceLinkedComponent(address component);
         | 
| 29 | 
            +
                error ErrorComponentServiceComponentTypeNotSupported(address component, ObjectType invalid);
         | 
| 30 | 
            +
                error ErrorComponentServiceComponentParentInvalid(address component, NftId required, NftId actual);
         | 
| 31 | 
            +
                error ErrorComponentServiceComponentReleaseMismatch(address component, VersionPart serviceRelease, VersionPart componentRelease);
         | 
| 32 | 
            +
                error ErrorComponentServiceComponentAlreadyRegistered(address component);
         | 
| 35 33 |  | 
| 36 34 | 
             
                error ErrorProductServiceNoDistributionExpected(NftId productNftId);
         | 
| 37 35 | 
             
                error ErrorProductServiceDistributionAlreadyRegistered(NftId productNftId, NftId distributionNftId);
         | 
| @@ -47,6 +45,7 @@ interface IComponentService is | |
| 47 45 | 
             
                error ErrorComponentServiceWithdrawAmountExceedsLimit(Amount withdrawnAmount, Amount withdrawLimit);
         | 
| 48 46 | 
             
                error ErrorComponentServiceWalletAllowanceTooSmall(address wallet, address spender, uint256 allowance, uint256 amount);
         | 
| 49 47 |  | 
| 48 | 
            +
                event LogComponentServiceComponentLocked(address component, bool locked);
         | 
| 50 49 | 
             
                event LogComponentServiceRegistered(NftId instanceNftId, NftId componentNftId, ObjectType componentType, address component, address token, address initialOwner); 
         | 
| 51 50 | 
             
                event LogComponentServiceWalletAddressChanged(NftId componentNftId, address currentWallet, address newWallet);
         | 
| 52 51 | 
             
                event LogComponentServiceWalletTokensTransferred(NftId componentNftId, address currentWallet, address newWallet, uint256 currentBalance);
         | 
| @@ -11,6 +11,8 @@ interface INftOwnable is | |
| 11 11 | 
             
                IERC165,
         | 
| 12 12 | 
             
                IRegistryLinked
         | 
| 13 13 | 
             
            {
         | 
| 14 | 
            +
                event LogNftOwnableNftLinkedToAddress(NftId nftId, address owner);
         | 
| 15 | 
            +
                
         | 
| 14 16 | 
             
                error ErrorNftOwnableInitialOwnerZero();
         | 
| 15 17 | 
             
                error ErrorNftOwnableNotOwner(address account);
         | 
| 16 18 | 
             
                error ErrorNftOwnableInvalidType(NftId nftId, ObjectType expectedObjectType);
         | 
| @@ -6,7 +6,6 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana | |
| 6 6 | 
             
            import {INftOwnable} from "./INftOwnable.sol";
         | 
| 7 7 | 
             
            import {IRelease} from "../registry/IRelease.sol";
         | 
| 8 8 | 
             
            import {IRegistry} from "../registry/IRegistry.sol";
         | 
| 9 | 
            -
            import {VersionPart} from "../type/Version.sol";
         | 
| 10 9 |  | 
| 11 10 | 
             
            /// @title IRegisterable
         | 
| 12 11 | 
             
            /// @dev Marks contracts that are intended to be registered in the registry.
         | 
| @@ -52,12 +52,12 @@ abstract contract InstanceLinkedComponent is | |
| 52 52 | 
             
                }
         | 
| 53 53 |  | 
| 54 54 | 
             
                /// @inheritdoc IInstanceLinkedComponent
         | 
| 55 | 
            -
                function getInstance() public view override returns (IInstance instance) {
         | 
| 55 | 
            +
                function getInstance() public view virtual override returns (IInstance instance) {
         | 
| 56 56 | 
             
                    return _getInstanceLinkedComponentStorage()._instance;
         | 
| 57 57 | 
             
                }
         | 
| 58 58 |  | 
| 59 59 | 
             
                /// @inheritdoc IInstanceLinkedComponent
         | 
| 60 | 
            -
                function getAuthorization() external view returns (IAuthorization authorization) {
         | 
| 60 | 
            +
                function getAuthorization() external view virtual returns (IAuthorization authorization) {
         | 
| 61 61 | 
             
                    return _getInstanceLinkedComponentStorage()._initialAuthorization;
         | 
| 62 62 | 
             
                }
         | 
| 63 63 |  | 
| @@ -67,15 +67,14 @@ abstract contract InstanceLinkedComponent is | |
| 67 67 | 
             
                    }
         | 
| 68 68 | 
             
                }
         | 
| 69 69 |  | 
| 70 | 
            -
                function  | 
| 70 | 
            +
                function __InstanceLinkedComponent_init(
         | 
| 71 71 | 
             
                    address registry,
         | 
| 72 72 | 
             
                    NftId parentNftId,
         | 
| 73 73 | 
             
                    string memory name,
         | 
| 74 74 | 
             
                    ObjectType componentType,
         | 
| 75 75 | 
             
                    IAuthorization authorization,
         | 
| 76 76 | 
             
                    bool isInterceptor,
         | 
| 77 | 
            -
                    address initialOwner | 
| 78 | 
            -
                    bytes memory componentData // data that will saved with the component info in the instance store
         | 
| 77 | 
            +
                    address initialOwner
         | 
| 79 78 | 
             
                )
         | 
| 80 79 | 
             
                    internal
         | 
| 81 80 | 
             
                    virtual
         | 
| @@ -93,7 +92,7 @@ abstract contract InstanceLinkedComponent is | |
| 93 92 | 
             
                        IRegistry(registry).getObjectAddress(instanceNftId));
         | 
| 94 93 |  | 
| 95 94 | 
             
                    // set component specific parameters
         | 
| 96 | 
            -
                     | 
| 95 | 
            +
                    __Component_init(
         | 
| 97 96 | 
             
                        $._instance.authority(), // instance linked components need to point to instance admin
         | 
| 98 97 | 
             
                        registry, 
         | 
| 99 98 | 
             
                        parentNftId, 
         | 
| @@ -101,8 +100,7 @@ abstract contract InstanceLinkedComponent is | |
| 101 100 | 
             
                        componentType, 
         | 
| 102 101 | 
             
                        isInterceptor, 
         | 
| 103 102 | 
             
                        initialOwner, 
         | 
| 104 | 
            -
                        "" | 
| 105 | 
            -
                        componentData);
         | 
| 103 | 
            +
                        ""); // registry data
         | 
| 106 104 |  | 
| 107 105 | 
             
                    // set instance linked specific parameters
         | 
| 108 106 | 
             
                    $._instanceReader = $._instance.getInstanceReader();
         | 
| @@ -110,7 +108,6 @@ abstract contract InstanceLinkedComponent is | |
| 110 108 | 
             
                    $._componentService = IComponentService(_getServiceAddress(COMPONENT())); 
         | 
| 111 109 |  | 
| 112 110 | 
             
                    // register interfaces
         | 
| 113 | 
            -
                    _registerInterface(type(IAccessManaged).interfaceId);
         | 
| 114 111 | 
             
                    _registerInterface(type(IInstanceLinkedComponent).interfaceId);
         | 
| 115 112 | 
             
                }
         | 
| 116 113 |  | 
| @@ -41,7 +41,7 @@ contract NftOwnable is | |
| 41 41 | 
             
                }
         | 
| 42 42 |  | 
| 43 43 | 
             
                function _checkNftType(NftId nftId, ObjectType expectedObjectType) internal view {
         | 
| 44 | 
            -
                    if(!getRegistry().isObjectType(nftId, expectedObjectType)) {
         | 
| 44 | 
            +
                    if(expectedObjectType.eqz() || !getRegistry().isObjectType(nftId, expectedObjectType)) {
         | 
| 45 45 | 
             
                        revert ErrorNftOwnableInvalidType(nftId, expectedObjectType);
         | 
| 46 46 | 
             
                    }
         | 
| 47 47 | 
             
                }
         | 
| @@ -114,6 +114,8 @@ contract NftOwnable is | |
| 114 114 |  | 
| 115 115 | 
             
                    $._nftId = getRegistry().getNftIdForAddress(nftOwnableAddress);
         | 
| 116 116 |  | 
| 117 | 
            +
                    emit LogNftOwnableNftLinkedToAddress($._nftId, getOwner());
         | 
| 118 | 
            +
             | 
| 117 119 | 
             
                    return $._nftId;
         | 
| 118 120 | 
             
                }
         | 
| 119 121 |  | 
| @@ -3,12 +3,13 @@ pragma solidity ^0.8.20; | |
| 3 3 |  | 
| 4 4 | 
             
            import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
         | 
| 5 5 |  | 
| 6 | 
            +
            import {IPolicyHolder} from "./IPolicyHolder.sol";
         | 
| 7 | 
            +
             | 
| 6 8 | 
             
            import {Amount} from "../type/Amount.sol";
         | 
| 7 9 | 
             
            import {ClaimId} from "../type/ClaimId.sol";
         | 
| 8 10 | 
             
            import {InitializableERC165} from "./InitializableERC165.sol";
         | 
| 9 | 
            -
            import {IPolicyHolder} from "./IPolicyHolder.sol";
         | 
| 10 11 | 
             
            import {NftId} from "../type/NftId.sol";
         | 
| 11 | 
            -
            import {PayoutId | 
| 12 | 
            +
            import {PayoutId} from "../type/PayoutId.sol";
         | 
| 12 13 | 
             
            import {RegistryLinked} from "./RegistryLinked.sol";
         | 
| 13 14 | 
             
            import {Timestamp} from "../type/Timestamp.sol";
         | 
| 14 15 |  | 
| @@ -1,16 +1,15 @@ | |
| 1 1 | 
             
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 | 
            -
            import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
         | 
| 5 4 | 
             
            import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
         | 
| 6 5 |  | 
| 7 6 | 
             
            import {IRegistry} from "../registry/IRegistry.sol";
         | 
| 8 7 | 
             
            import {IService} from "./IService.sol";
         | 
| 9 8 | 
             
            import {IVersionable} from "../upgradeability/IVersionable.sol";
         | 
| 10 | 
            -
            import {ObjectType,  | 
| 9 | 
            +
            import {ObjectType, SERVICE} from "../type/ObjectType.sol";
         | 
| 11 10 | 
             
            import {Registerable} from "./Registerable.sol";
         | 
| 12 11 | 
             
            import {RoleId, RoleIdLib} from "../type/RoleId.sol";
         | 
| 13 | 
            -
            import {Version, VersionLib | 
| 12 | 
            +
            import {Version, VersionLib} from "../type/Version.sol";
         | 
| 14 13 | 
             
            import {Versionable} from "../upgradeability/Versionable.sol";
         | 
| 15 14 |  | 
| 16 15 |  | 
| @@ -53,12 +52,15 @@ abstract contract Service is | |
| 53 52 | 
             
                    return VersionLib.toVersion(3, 0, 0);
         | 
| 54 53 | 
             
                }
         | 
| 55 54 |  | 
| 55 | 
            +
             | 
| 56 56 | 
             
                function getRoleId() external virtual view returns(RoleId serviceRoleId) {
         | 
| 57 | 
            -
                    return RoleIdLib. | 
| 57 | 
            +
                    return RoleIdLib.toServiceRoleId(_getDomain(), getRelease());
         | 
| 58 58 | 
             
                }
         | 
| 59 59 |  | 
| 60 | 
            +
                //--- internal functions --------------------------------------------------------//
         | 
| 60 61 | 
             
                function _getDomain() internal virtual pure returns (ObjectType);
         | 
| 61 62 |  | 
| 63 | 
            +
             | 
| 62 64 | 
             
                function _getServiceAddress(ObjectType domain) internal view returns (address) {
         | 
| 63 65 | 
             
                    return getRegistry().getServiceAddress(domain, getRelease());
         | 
| 64 66 | 
             
                }
         |