@etherisc/gif-next 3.0.0-1b49bd6-565 → 3.0.0-1bd1936-188
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/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +72 -139
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +116 -110
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +33 -72
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +66 -89
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +101 -122
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +65 -20
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +55 -31
- 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 +10 -20
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +42 -18
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +75 -126
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +65 -41
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -72
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +139 -198
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +150 -140
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +56 -84
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -71
- 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 +104 -166
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +138 -200
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +60 -30
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +152 -173
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +65 -41
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +108 -170
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +164 -211
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +65 -41
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.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 +102 -159
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +106 -163
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +120 -177
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +114 -171
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +54 -49
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +25 -77
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +44 -83
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +50 -144
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +147 -169
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +36 -36
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +75 -138
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -104
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +58 -53
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.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 +8 -3
- 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 +81 -132
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
- 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 +66 -94
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +83 -80
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -82
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +148 -149
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +129 -111
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +73 -88
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +117 -176
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +139 -129
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +32 -71
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +72 -100
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +86 -94
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +73 -88
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +247 -24
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +165 -233
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +130 -140
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +63 -138
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +112 -110
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +57 -72
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +115 -182
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +138 -132
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +32 -71
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +32 -71
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +64 -82
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -82
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +56 -84
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +36 -75
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +127 -173
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +128 -122
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +94 -161
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +122 -116
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +57 -72
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +63 -146
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +107 -109
- 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 +56 -155
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +216 -202
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -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 +96 -314
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +142 -163
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -57
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +244 -285
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +110 -115
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +150 -159
- 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 +185 -127
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +29 -13
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +39 -84
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +320 -164
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -115
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +38 -96
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -96
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +226 -82
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +56 -84
- 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 +28 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +25 -77
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +32 -71
- 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 +57 -72
- 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 +34 -15
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -76
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +31 -70
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +29 -42
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +17 -30
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +56 -101
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +36 -75
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +109 -170
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -26
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +124 -112
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +65 -132
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +111 -105
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +204 -212
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +19 -27
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
- 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/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
- 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/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/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.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 +4 -4
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- 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/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +86 -63
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
- package/contracts/accounting/AccountingService.sol +6 -5
- package/contracts/accounting/AccountingServiceManager.sol +6 -4
- package/contracts/accounting/IAccountingService.sol +1 -1
- package/contracts/authorization/AccessAdmin.sol +19 -22
- package/contracts/authorization/AccessAdminLib.sol +9 -12
- package/contracts/authorization/AccessManagerCloneable.sol +48 -24
- package/contracts/authorization/Authorization.sol +2 -2
- package/contracts/authorization/IAccessAdmin.sol +3 -3
- package/contracts/authorization/IServiceAuthorization.sol +1 -1
- package/contracts/authorization/ServiceAuthorization.sol +4 -4
- package/contracts/distribution/BasicDistribution.sol +2 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
- package/contracts/distribution/Distribution.sol +2 -0
- package/contracts/distribution/DistributionService.sol +20 -24
- package/contracts/distribution/DistributionServiceManager.sol +6 -4
- package/contracts/examples/fire/FirePool.sol +4 -0
- package/contracts/examples/fire/FireProduct.sol +4 -0
- package/contracts/examples/flight/FlightLib.sol +5 -1
- package/contracts/examples/flight/FlightOracle.sol +8 -0
- package/contracts/examples/flight/FlightPool.sol +4 -0
- package/contracts/examples/flight/FlightProduct.sol +29 -4
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
- package/contracts/instance/Instance.sol +11 -7
- package/contracts/instance/InstanceAdmin.sol +17 -10
- package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
- package/contracts/instance/InstanceReader.sol +15 -15
- package/contracts/instance/InstanceService.sol +20 -18
- package/contracts/instance/InstanceServiceManager.sol +6 -4
- package/contracts/instance/base/Cloneable.sol +10 -4
- package/contracts/instance/base/ObjectSet.sol +2 -2
- package/contracts/oracle/BasicOracle.sol +2 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
- package/contracts/oracle/IOracleService.sol +4 -0
- package/contracts/oracle/Oracle.sol +4 -3
- package/contracts/oracle/OracleService.sol +67 -37
- package/contracts/oracle/OracleServiceManager.sol +6 -4
- package/contracts/pool/BasicPool.sol +4 -2
- package/contracts/pool/BasicPoolAuthorization.sol +4 -5
- package/contracts/pool/BundleService.sol +19 -25
- package/contracts/pool/BundleServiceManager.sol +7 -5
- package/contracts/pool/IPoolService.sol +6 -5
- package/contracts/pool/Pool.sol +3 -1
- package/contracts/pool/PoolLib.sol +102 -5
- package/contracts/pool/PoolService.sol +101 -67
- package/contracts/pool/PoolServiceManager.sol +6 -4
- package/contracts/product/ApplicationService.sol +34 -13
- package/contracts/product/ApplicationServiceManager.sol +6 -4
- package/contracts/product/BasicProduct.sol +2 -0
- package/contracts/product/BasicProductAuthorization.sol +4 -5
- package/contracts/product/ClaimService.sol +34 -10
- package/contracts/product/ClaimServiceManager.sol +7 -5
- package/contracts/product/IPolicyService.sol +1 -0
- package/contracts/product/PolicyService.sol +57 -44
- package/contracts/product/PolicyServiceManager.sol +6 -4
- package/contracts/product/PricingService.sol +8 -7
- package/contracts/product/PricingServiceManager.sol +6 -4
- package/contracts/product/Product.sol +2 -0
- package/contracts/product/RiskService.sol +40 -8
- package/contracts/product/RiskServiceManager.sol +6 -4
- package/contracts/registry/IRegistry.sol +14 -20
- package/contracts/registry/IRegistryService.sol +14 -10
- package/contracts/registry/IRelease.sol +3 -0
- package/contracts/registry/Registry.sol +78 -124
- package/contracts/registry/RegistryAdmin.sol +22 -11
- package/contracts/registry/RegistryAuthorization.sol +3 -4
- package/contracts/registry/RegistryService.sol +82 -99
- package/contracts/registry/RegistryServiceManager.sol +11 -4
- package/contracts/registry/ReleaseAdmin.sol +16 -9
- package/contracts/registry/ReleaseRegistry.sol +74 -64
- package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
- package/contracts/registry/TokenRegistry.sol +15 -6
- package/contracts/shared/Component.sol +22 -27
- package/contracts/shared/ComponentService.sol +130 -45
- package/contracts/shared/ComponentServiceManager.sol +7 -5
- package/contracts/shared/ContractLib.sol +93 -359
- package/contracts/shared/IComponent.sol +3 -5
- package/contracts/shared/IComponentService.sol +14 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +7 -3
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +3 -14
- package/contracts/shared/IRegistryLinked.sol +3 -1
- package/contracts/shared/IService.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +64 -29
- package/contracts/shared/NftOwnable.sol +22 -9
- package/contracts/shared/PolicyHolder.sol +4 -2
- package/contracts/shared/Registerable.sol +20 -37
- package/contracts/shared/RegistryLinked.sol +23 -4
- package/contracts/shared/Service.sol +9 -8
- package/contracts/shared/TokenHandler.sol +1 -4
- package/contracts/staking/IStaking.sol +2 -2
- package/contracts/staking/Staking.sol +33 -28
- package/contracts/staking/StakingLib.sol +1 -3
- package/contracts/staking/StakingManager.sol +6 -3
- package/contracts/staking/StakingReader.sol +17 -9
- package/contracts/staking/StakingService.sol +13 -16
- package/contracts/staking/StakingServiceManager.sol +8 -4
- package/contracts/staking/StakingStore.sol +8 -8
- package/contracts/staking/TargetHandler.sol +5 -4
- package/contracts/type/Version.sol +16 -15
- package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
- package/contracts/upgradeability/ProxyManager.sol +54 -46
- package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
- package/package.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
- package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
- package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
- package/contracts/shared/IVersionable.sol +0 -19
- package/contracts/shared/Versionable.sol +0 -47
| @@ -20,6 +20,7 @@ interface IPolicyService is IService { | |
| 20 20 | 
             
                event LogPolicyServicePolicyClosed(NftId policyNftId);
         | 
| 21 21 |  | 
| 22 22 | 
             
                error LogPolicyServiceMaxPremiumAmountExceeded(NftId policyNftId, Amount maxPremiumAmount, Amount premiumAmount);
         | 
| 23 | 
            +
                error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
         | 
| 23 24 | 
             
                error ErrorPolicyServicePolicyStateNotApplied(NftId applicationNftId);
         | 
| 24 25 | 
             
                error ErrorPolicyServicePolicyStateNotCollateralized(NftId applicationNftId);
         | 
| 25 26 | 
             
                error ErrorPolicyServicePolicyAlreadyActivated(NftId policyNftId);
         | 
| @@ -45,20 +45,21 @@ contract PolicyService is | |
| 45 45 | 
             
                )
         | 
| 46 46 | 
             
                    internal
         | 
| 47 47 | 
             
                    virtual override
         | 
| 48 | 
            -
                     | 
| 48 | 
            +
                    initializer
         | 
| 49 49 | 
             
                {
         | 
| 50 50 | 
             
                    (
         | 
| 51 | 
            -
                        address authority
         | 
| 52 | 
            -
             | 
| 51 | 
            +
                        address authority,
         | 
| 52 | 
            +
                        address registry
         | 
| 53 | 
            +
                    ) = abi.decode(data, (address, address));
         | 
| 53 54 |  | 
| 54 | 
            -
                    __Service_init(authority, owner);
         | 
| 55 | 
            +
                    __Service_init(authority, registry, owner);
         | 
| 55 56 |  | 
| 56 57 | 
             
                    VersionPart majorVersion = getVersion().toMajorPart();
         | 
| 57 | 
            -
                    _accountingService = IAccountingService( | 
| 58 | 
            -
                    _componentService = IComponentService( | 
| 59 | 
            -
                    _poolService = IPoolService( | 
| 60 | 
            -
                    _distributionService = IDistributionService( | 
| 61 | 
            -
                    _pricingService = IPricingService( | 
| 58 | 
            +
                    _accountingService = IAccountingService(getRegistry().getServiceAddress(ACCOUNTING(), majorVersion));
         | 
| 59 | 
            +
                    _componentService = IComponentService(getRegistry().getServiceAddress(COMPONENT(), majorVersion));
         | 
| 60 | 
            +
                    _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), majorVersion));
         | 
| 61 | 
            +
                    _distributionService = IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), majorVersion));
         | 
| 62 | 
            +
                    _pricingService = IPricingService(getRegistry().getServiceAddress(PRICE(), majorVersion));
         | 
| 62 63 |  | 
| 63 64 | 
             
                    _registerInterface(type(IPolicyService).interfaceId);
         | 
| 64 65 | 
             
                }
         | 
| @@ -73,8 +74,7 @@ contract PolicyService is | |
| 73 74 | 
             
                    nonReentrant()
         | 
| 74 75 | 
             
                {
         | 
| 75 76 | 
             
                    // checks
         | 
| 76 | 
            -
                    ( | 
| 77 | 
            -
                        applicationNftId, getRelease());
         | 
| 77 | 
            +
                    (IInstance instance,,) = _getAndVerifyCallerForPolicy(applicationNftId);
         | 
| 78 78 |  | 
| 79 79 | 
             
                    // check policy is in state applied
         | 
| 80 80 | 
             
                    if (instance.getInstanceReader().getPolicyState(applicationNftId) != APPLIED()) {
         | 
| @@ -105,10 +105,10 @@ contract PolicyService is | |
| 105 105 | 
             
                {
         | 
| 106 106 | 
             
                    // checks
         | 
| 107 107 | 
             
                    (
         | 
| 108 | 
            +
                        IInstance instance,
         | 
| 108 109 | 
             
                        NftId productNftId,
         | 
| 109 | 
            -
                        IPolicy.PolicyInfo memory applicationInfo | 
| 110 | 
            -
             | 
| 111 | 
            -
                    ) = _getAndVerifyCallerAndInfoForPolicy(applicationNftId);
         | 
| 110 | 
            +
                        IPolicy.PolicyInfo memory applicationInfo
         | 
| 111 | 
            +
                    ) = _getAndVerifyCallerForPolicy(applicationNftId);
         | 
| 112 112 |  | 
| 113 113 | 
             
                    // check policy is in state applied
         | 
| 114 114 | 
             
                    InstanceReader instanceReader = instance.getInstanceReader();
         | 
| @@ -173,7 +173,7 @@ contract PolicyService is | |
| 173 173 | 
             
                    }
         | 
| 174 174 |  | 
| 175 175 | 
             
                    // link policy to risk and bundle
         | 
| 176 | 
            -
                    NftId poolNftId =  | 
| 176 | 
            +
                    NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
         | 
| 177 177 | 
             
                    instance.getRiskSet().linkPolicy(productNftId, riskId, applicationNftId);
         | 
| 178 178 | 
             
                    instance.getBundleSet().linkPolicy(poolNftId, bundleNftId, applicationNftId);
         | 
| 179 179 |  | 
| @@ -198,10 +198,10 @@ contract PolicyService is | |
| 198 198 | 
             
                {
         | 
| 199 199 | 
             
                    // checks
         | 
| 200 200 | 
             
                    (
         | 
| 201 | 
            +
                        IInstance instance,
         | 
| 201 202 | 
             
                        NftId productNftId,
         | 
| 202 | 
            -
                        IPolicy.PolicyInfo memory policyInfo | 
| 203 | 
            -
             | 
| 204 | 
            -
                    ) = _getAndVerifyCallerAndInfoForPolicy(policyNftId);
         | 
| 203 | 
            +
                        IPolicy.PolicyInfo memory policyInfo
         | 
| 204 | 
            +
                    ) = _getAndVerifyCallerForPolicy(policyNftId);
         | 
| 205 205 |  | 
| 206 206 | 
             
                    // check policy is in state collateralized
         | 
| 207 207 | 
             
                    InstanceReader instanceReader = instance.getInstanceReader();
         | 
| @@ -218,7 +218,7 @@ contract PolicyService is | |
| 218 218 | 
             
                    IPolicy.PremiumInfo memory premium = instanceReader.getPremiumInfo(policyNftId);
         | 
| 219 219 | 
             
                    instanceReader.getTokenHandler(
         | 
| 220 220 | 
             
                        productNftId).checkBalanceAndAllowance(
         | 
| 221 | 
            -
                             | 
| 221 | 
            +
                            getRegistry().ownerOf(policyNftId), 
         | 
| 222 222 | 
             
                            premium.premiumAmount, 
         | 
| 223 223 | 
             
                            false);
         | 
| 224 224 |  | 
| @@ -226,7 +226,7 @@ contract PolicyService is | |
| 226 226 | 
             
                    // _checkPremiumBalanceAndAllowance(
         | 
| 227 227 | 
             
                    //     tokenHandler.TOKEN(), 
         | 
| 228 228 | 
             
                    //     address(tokenHandler),
         | 
| 229 | 
            -
                    //      | 
| 229 | 
            +
                    //     getRegistry().ownerOf(policyNftId), 
         | 
| 230 230 | 
             
                    //     premium.premiumAmount);
         | 
| 231 231 |  | 
| 232 232 | 
             
                    // effects
         | 
| @@ -263,10 +263,9 @@ contract PolicyService is | |
| 263 263 | 
             
                {
         | 
| 264 264 | 
             
                    // checks
         | 
| 265 265 | 
             
                    (
         | 
| 266 | 
            -
                         | 
| 267 | 
            -
                        IPolicy.PolicyInfo memory policyInfo | 
| 268 | 
            -
             | 
| 269 | 
            -
                    ) = _getAndVerifyCallerAndInfoForPolicy(policyNftId);
         | 
| 266 | 
            +
                        IInstance instance,,
         | 
| 267 | 
            +
                        IPolicy.PolicyInfo memory policyInfo
         | 
| 268 | 
            +
                    ) = _getAndVerifyCallerForPolicy(policyNftId);
         | 
| 270 269 |  | 
| 271 270 | 
             
                    // effects
         | 
| 272 271 | 
             
                    policyInfo = PolicyServiceLib.activate(policyNftId, policyInfo, activateAt);
         | 
| @@ -292,10 +291,9 @@ contract PolicyService is | |
| 292 291 | 
             
                {
         | 
| 293 292 | 
             
                    // checks
         | 
| 294 293 | 
             
                    (
         | 
| 295 | 
            -
                         | 
| 296 | 
            -
                        IPolicy.PolicyInfo memory policyInfo | 
| 297 | 
            -
             | 
| 298 | 
            -
                    ) = _getAndVerifyCallerAndInfoForPolicy(policyNftId);
         | 
| 294 | 
            +
                        IInstance instance,,
         | 
| 295 | 
            +
                        IPolicy.PolicyInfo memory policyInfo
         | 
| 296 | 
            +
                    ) = _getAndVerifyCallerForPolicy(policyNftId);
         | 
| 299 297 |  | 
| 300 298 | 
             
                    if (policyInfo.activatedAt.eqz()) {
         | 
| 301 299 | 
             
                        revert ErrorPolicyServicePolicyNotActivated(policyNftId);
         | 
| @@ -335,10 +333,9 @@ contract PolicyService is | |
| 335 333 | 
             
                {
         | 
| 336 334 | 
             
                    // checks
         | 
| 337 335 | 
             
                    (
         | 
| 338 | 
            -
                         | 
| 339 | 
            -
                        IPolicy.PolicyInfo memory policyInfo | 
| 340 | 
            -
             | 
| 341 | 
            -
                    ) = _getAndVerifyCallerAndInfoForPolicy(policyNftId);
         | 
| 336 | 
            +
                        IInstance instance,,
         | 
| 337 | 
            +
                        IPolicy.PolicyInfo memory policyInfo
         | 
| 338 | 
            +
                    ) = _getAndVerifyCallerForPolicy(policyNftId);
         | 
| 342 339 |  | 
| 343 340 | 
             
                    // more checks, effects + interactions
         | 
| 344 341 | 
             
                    return _expire(
         | 
| @@ -388,10 +385,10 @@ contract PolicyService is | |
| 388 385 | 
             
                {
         | 
| 389 386 | 
             
                    // checks
         | 
| 390 387 | 
             
                    (
         | 
| 388 | 
            +
                        IInstance instance,
         | 
| 391 389 | 
             
                        NftId productNftId,
         | 
| 392 | 
            -
                        IPolicy.PolicyInfo memory policyInfo | 
| 393 | 
            -
             | 
| 394 | 
            -
                    ) = _getAndVerifyCallerAndInfoForPolicy(policyNftId);
         | 
| 390 | 
            +
                        IPolicy.PolicyInfo memory policyInfo
         | 
| 391 | 
            +
                    ) = _getAndVerifyCallerForPolicy(policyNftId);
         | 
| 395 392 | 
             
                    InstanceReader instanceReader = instance.getInstanceReader();
         | 
| 396 393 |  | 
| 397 394 | 
             
                    // check policy is in a closeable state
         | 
| @@ -421,7 +418,7 @@ contract PolicyService is | |
| 421 418 | 
             
                    instance.getProductStore().updatePolicy(policyNftId, policyInfo, CLOSED());
         | 
| 422 419 |  | 
| 423 420 | 
             
                    // unlink policy from risk and bundle
         | 
| 424 | 
            -
                    NftId poolNftId =  | 
| 421 | 
            +
                    NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
         | 
| 425 422 | 
             
                    instance.getRiskSet().unlinkPolicy(productNftId, riskId, policyNftId);
         | 
| 426 423 | 
             
                    instance.getBundleSet().unlinkPolicy(poolNftId, bundleNftId, policyNftId);
         | 
| 427 424 |  | 
| @@ -503,7 +500,7 @@ contract PolicyService is | |
| 503 500 | 
             
                    internal
         | 
| 504 501 | 
             
                    virtual
         | 
| 505 502 | 
             
                {
         | 
| 506 | 
            -
                    address policyHolder =  | 
| 503 | 
            +
                    address policyHolder = getRegistry().ownerOf(policyNftId);
         | 
| 507 504 |  | 
| 508 505 | 
             
                    (
         | 
| 509 506 | 
             
                        ,
         | 
| @@ -577,7 +574,7 @@ contract PolicyService is | |
| 577 574 | 
             
                    view 
         | 
| 578 575 | 
             
                    returns (IPolicyHolder policyHolder)
         | 
| 579 576 | 
             
                {
         | 
| 580 | 
            -
                    address policyHolderAddress =  | 
| 577 | 
            +
                    address policyHolderAddress = getRegistry().ownerOf(policyNftId);
         | 
| 581 578 | 
             
                    policyHolder = IPolicyHolder(policyHolderAddress);
         | 
| 582 579 |  | 
| 583 580 | 
             
                    if (!ContractLib.isPolicyHolder(policyHolderAddress)) {
         | 
| @@ -609,20 +606,36 @@ contract PolicyService is | |
| 609 606 | 
             
                    }
         | 
| 610 607 | 
             
                }
         | 
| 611 608 |  | 
| 612 | 
            -
             | 
| 609 | 
            +
             | 
| 610 | 
            +
                function  _getAndVerifyCallerForPolicy(NftId policyNftId)
         | 
| 613 611 | 
             
                    internal
         | 
| 614 612 | 
             
                    virtual
         | 
| 615 613 | 
             
                    view
         | 
| 616 614 | 
             
                    returns (
         | 
| 615 | 
            +
                        IInstance instance,
         | 
| 617 616 | 
             
                        NftId productNftId,
         | 
| 618 | 
            -
                        IPolicy.PolicyInfo memory policyInfo | 
| 619 | 
            -
                        IInstance instance
         | 
| 617 | 
            +
                        IPolicy.PolicyInfo memory policyInfo
         | 
| 620 618 | 
             
                    )
         | 
| 621 619 | 
             
                {
         | 
| 622 | 
            -
                    ( | 
| 623 | 
            -
                         | 
| 624 | 
            -
             | 
| 620 | 
            +
                    (
         | 
| 621 | 
            +
                        IRegistry.ObjectInfo memory productInfo, 
         | 
| 622 | 
            +
                        address instanceAddress
         | 
| 623 | 
            +
                    ) = ContractLib.getAndVerifyComponent(
         | 
| 624 | 
            +
                        getRegistry(), 
         | 
| 625 | 
            +
                        msg.sender, // caller contract 
         | 
| 626 | 
            +
                        PRODUCT(), // caller must be product
         | 
| 627 | 
            +
                        true); // only active caller
         | 
| 628 | 
            +
             | 
| 629 | 
            +
                    productNftId = productInfo.nftId; // calling product nft id
         | 
| 630 | 
            +
                    instance = IInstance(instanceAddress);
         | 
| 625 631 | 
             
                    policyInfo = instance.getInstanceReader().getPolicyInfo(policyNftId);
         | 
| 632 | 
            +
             | 
| 633 | 
            +
                    if (policyInfo.productNftId != productNftId) {
         | 
| 634 | 
            +
                        revert ErrorPolicyServicePolicyProductMismatch(
         | 
| 635 | 
            +
                            policyNftId, 
         | 
| 636 | 
            +
                            productNftId,
         | 
| 637 | 
            +
                            policyInfo.productNftId);
         | 
| 638 | 
            +
                    }
         | 
| 626 639 | 
             
                }
         | 
| 627 640 |  | 
| 628 641 |  | 
| @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 | 
            -
            import { | 
| 4 | 
            +
            import {IVersionable} from "../upgradeability/IVersionable.sol";
         | 
| 5 5 | 
             
            import {ProxyManager} from "../upgradeability/ProxyManager.sol";
         | 
| 6 6 | 
             
            import {PolicyService} from "./PolicyService.sol";
         | 
| 7 7 |  | 
| @@ -12,17 +12,19 @@ contract PolicyServiceManager is ProxyManager { | |
| 12 12 | 
             
                /// @dev initializes proxy manager with product service implementation 
         | 
| 13 13 | 
             
                constructor(
         | 
| 14 14 | 
             
                    address authority, 
         | 
| 15 | 
            +
                    address registry,
         | 
| 15 16 | 
             
                    bytes32 salt
         | 
| 16 17 | 
             
                ) 
         | 
| 17 18 | 
             
                {
         | 
| 18 19 | 
             
                    PolicyService svc = new PolicyService{salt: salt}();
         | 
| 19 | 
            -
                    bytes memory data = abi.encode(authority);
         | 
| 20 | 
            -
                     | 
| 20 | 
            +
                    bytes memory data = abi.encode(authority, registry);
         | 
| 21 | 
            +
                    IVersionable versionable = initialize(
         | 
| 22 | 
            +
                        registry,
         | 
| 21 23 | 
             
                        address(svc), 
         | 
| 22 24 | 
             
                        data,
         | 
| 23 25 | 
             
                        salt);
         | 
| 24 26 |  | 
| 25 | 
            -
                    _policyService = PolicyService(address( | 
| 27 | 
            +
                    _policyService = PolicyService(address(versionable));
         | 
| 26 28 | 
             
                }
         | 
| 27 29 |  | 
| 28 30 | 
             
                //--- view functions ----------------------------------------------------//
         | 
| @@ -36,13 +36,14 @@ contract PricingService is | |
| 36 36 | 
             
                )
         | 
| 37 37 | 
             
                    internal
         | 
| 38 38 | 
             
                    virtual override
         | 
| 39 | 
            -
                     | 
| 39 | 
            +
                    initializer()
         | 
| 40 40 | 
             
                {
         | 
| 41 41 | 
             
                    (
         | 
| 42 | 
            -
                        address authority
         | 
| 43 | 
            -
             | 
| 42 | 
            +
                        address authority,
         | 
| 43 | 
            +
                        address registry
         | 
| 44 | 
            +
                    ) = abi.decode(data, (address, address));
         | 
| 44 45 |  | 
| 45 | 
            -
                    __Service_init(authority, owner);
         | 
| 46 | 
            +
                    __Service_init(authority, registry, owner);
         | 
| 46 47 |  | 
| 47 48 | 
             
                    _distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
         | 
| 48 49 |  | 
| @@ -77,11 +78,11 @@ contract PricingService is | |
| 77 78 | 
             
                        // verify product
         | 
| 78 79 | 
             
                        (
         | 
| 79 80 | 
             
                            IRegistry.ObjectInfo memory registryInfo, 
         | 
| 80 | 
            -
                             | 
| 81 | 
            -
                        ) = ContractLib.getInfoAndInstance( | 
| 81 | 
            +
                            address instanceAddress
         | 
| 82 | 
            +
                        ) = ContractLib.getInfoAndInstance(getRegistry(), productNftId, false);
         | 
| 82 83 |  | 
| 83 84 | 
             
                        // get instance reader from local instance variable
         | 
| 84 | 
            -
                        reader =  | 
| 85 | 
            +
                        reader = IInstance(instanceAddress).getInstanceReader();
         | 
| 85 86 |  | 
| 86 87 | 
             
                        NftId riskProductNftId = reader.getRiskInfo(riskId).productNftId;
         | 
| 87 88 | 
             
                        if (productNftId != riskProductNftId) {
         | 
| @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 | 
            -
            import { | 
| 4 | 
            +
            import {IVersionable} from "../upgradeability/IVersionable.sol";
         | 
| 5 5 | 
             
            import {ProxyManager} from "../upgradeability/ProxyManager.sol";
         | 
| 6 6 | 
             
            import {PricingService} from "./PricingService.sol";
         | 
| 7 7 |  | 
| @@ -12,17 +12,19 @@ contract PricingServiceManager is ProxyManager { | |
| 12 12 | 
             
                /// @dev initializes proxy manager with pricing service implementation and deploys instance
         | 
| 13 13 | 
             
                constructor(
         | 
| 14 14 | 
             
                    address authority, 
         | 
| 15 | 
            +
                    address registry,
         | 
| 15 16 | 
             
                    bytes32 salt
         | 
| 16 17 | 
             
                )
         | 
| 17 18 | 
             
                {
         | 
| 18 19 | 
             
                    PricingService pricingSrv = new PricingService{salt: salt}();
         | 
| 19 | 
            -
                    bytes memory data = abi.encode(authority);
         | 
| 20 | 
            -
                     | 
| 20 | 
            +
                    bytes memory data = abi.encode(authority, registry);
         | 
| 21 | 
            +
                    IVersionable versionable = initialize(
         | 
| 22 | 
            +
                        registry,
         | 
| 21 23 | 
             
                        address(pricingSrv), 
         | 
| 22 24 | 
             
                        data,
         | 
| 23 25 | 
             
                        salt);
         | 
| 24 26 |  | 
| 25 | 
            -
                    _pricingService = PricingService(address( | 
| 27 | 
            +
                    _pricingService = PricingService(address(versionable));
         | 
| 26 28 | 
             
                }
         | 
| 27 29 |  | 
| 28 30 | 
             
                //--- view functions ----------------------------------------------------//
         | 
| @@ -134,6 +134,7 @@ abstract contract Product is | |
| 134 134 |  | 
| 135 135 |  | 
| 136 136 | 
             
                function __Product_init(
         | 
| 137 | 
            +
                    address registry,
         | 
| 137 138 | 
             
                    NftId instanceNftId,
         | 
| 138 139 | 
             
                    string memory name,
         | 
| 139 140 | 
             
                    IComponents.ProductInfo memory productInfo,
         | 
| @@ -146,6 +147,7 @@ abstract contract Product is | |
| 146 147 | 
             
                    onlyInitializing()
         | 
| 147 148 | 
             
                {
         | 
| 148 149 | 
             
                    __InstanceLinkedComponent_init(
         | 
| 150 | 
            +
                        registry, 
         | 
| 149 151 | 
             
                        instanceNftId, 
         | 
| 150 152 | 
             
                        name, 
         | 
| 151 153 | 
             
                        PRODUCT(), 
         | 
| @@ -26,14 +26,15 @@ contract RiskService is | |
| 26 26 | 
             
                    bytes memory data
         | 
| 27 27 | 
             
                )
         | 
| 28 28 | 
             
                    internal
         | 
| 29 | 
            +
                    initializer
         | 
| 29 30 | 
             
                    virtual override
         | 
| 30 | 
            -
                    onlyInitializing()
         | 
| 31 31 | 
             
                {
         | 
| 32 32 | 
             
                    (
         | 
| 33 | 
            -
                        address authority
         | 
| 34 | 
            -
             | 
| 33 | 
            +
                        address authority,
         | 
| 34 | 
            +
                        address registry
         | 
| 35 | 
            +
                    ) = abi.decode(data, (address, address));
         | 
| 35 36 |  | 
| 36 | 
            -
                    __Service_init(authority, owner);
         | 
| 37 | 
            +
                    __Service_init(authority, registry, owner);
         | 
| 37 38 | 
             
                    _registerInterface(type(IRiskService).interfaceId);
         | 
| 38 39 | 
             
                }
         | 
| 39 40 |  | 
| @@ -48,7 +49,7 @@ contract RiskService is | |
| 48 49 | 
             
                    returns (RiskId riskId)
         | 
| 49 50 | 
             
                {
         | 
| 50 51 | 
             
                    // checks
         | 
| 51 | 
            -
                    (NftId productNftId, IInstance instance) =  | 
| 52 | 
            +
                    (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
         | 
| 52 53 |  | 
| 53 54 | 
             
                    // effects
         | 
| 54 55 | 
             
                    riskId = RiskIdLib.toRiskId(productNftId, id);
         | 
| @@ -79,7 +80,7 @@ contract RiskService is | |
| 79 80 | 
             
                    restricted()
         | 
| 80 81 | 
             
                {
         | 
| 81 82 | 
             
                    // checks
         | 
| 82 | 
            -
                    (NftId productNftId, IInstance instance) =  | 
| 83 | 
            +
                    (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
         | 
| 83 84 |  | 
| 84 85 | 
             
                    // effects
         | 
| 85 86 | 
             
                    InstanceReader instanceReader = instance.getInstanceReader();
         | 
| @@ -106,7 +107,7 @@ contract RiskService is | |
| 106 107 | 
             
                    restricted()
         | 
| 107 108 | 
             
                {
         | 
| 108 109 | 
             
                    // checks
         | 
| 109 | 
            -
                    (NftId productNftId, IInstance instance) =  | 
| 110 | 
            +
                    (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
         | 
| 110 111 |  | 
| 111 112 | 
             
                    if (!instance.getRiskSet().hasRisk(productNftId, riskId)) {
         | 
| 112 113 | 
             
                        revert ErrorRiskServiceUnknownRisk(productNftId, riskId);
         | 
| @@ -134,7 +135,7 @@ contract RiskService is | |
| 134 135 | 
             
                    restricted()
         | 
| 135 136 | 
             
                {
         | 
| 136 137 | 
             
                    // checks
         | 
| 137 | 
            -
                    (NftId productNftId, IInstance instance) =  | 
| 138 | 
            +
                    (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
         | 
| 138 139 | 
             
                    (bool exists, bool active) = instance.getRiskSet().checkRisk(productNftId, riskId);
         | 
| 139 140 |  | 
| 140 141 | 
             
                    if (!exists) {
         | 
| @@ -151,6 +152,37 @@ contract RiskService is | |
| 151 152 | 
             
                    emit LogRiskServiceRiskClosed(productNftId, riskId);
         | 
| 152 153 | 
             
                }
         | 
| 153 154 |  | 
| 155 | 
            +
                function _getAndVerifyActiveComponent(ObjectType expectedType) 
         | 
| 156 | 
            +
                    internal 
         | 
| 157 | 
            +
                    view 
         | 
| 158 | 
            +
                    returns (
         | 
| 159 | 
            +
                        NftId componentNftId,
         | 
| 160 | 
            +
                        IInstance instance
         | 
| 161 | 
            +
                    )
         | 
| 162 | 
            +
                {
         | 
| 163 | 
            +
                    IRegistry.ObjectInfo memory info;
         | 
| 164 | 
            +
                    address instanceAddress;
         | 
| 165 | 
            +
                    bool isActive = true;
         | 
| 166 | 
            +
             | 
| 167 | 
            +
                    if (expectedType != COMPONENT()) {
         | 
| 168 | 
            +
                        (info, instanceAddress) = ContractLib.getAndVerifyComponent(
         | 
| 169 | 
            +
                            getRegistry(),
         | 
| 170 | 
            +
                            msg.sender, // caller
         | 
| 171 | 
            +
                            expectedType,
         | 
| 172 | 
            +
                            isActive); 
         | 
| 173 | 
            +
                    } else {
         | 
| 174 | 
            +
                        (info, instanceAddress) = ContractLib.getAndVerifyAnyComponent(
         | 
| 175 | 
            +
                            getRegistry(),
         | 
| 176 | 
            +
                            msg.sender,
         | 
| 177 | 
            +
                            isActive); 
         | 
| 178 | 
            +
                    }
         | 
| 179 | 
            +
             | 
| 180 | 
            +
                    // get component nft id and instance
         | 
| 181 | 
            +
                    componentNftId = info.nftId;
         | 
| 182 | 
            +
                    instance = IInstance(instanceAddress);
         | 
| 183 | 
            +
                }
         | 
| 184 | 
            +
             | 
| 185 | 
            +
             | 
| 154 186 | 
             
                function _getDomain() internal pure override returns(ObjectType) {
         | 
| 155 187 | 
             
                    return RISK();
         | 
| 156 188 | 
             
                }
         | 
| @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 | 
            -
            import { | 
| 4 | 
            +
            import {IVersionable} from "../upgradeability/IVersionable.sol";
         | 
| 5 5 | 
             
            import {ProxyManager} from "../upgradeability/ProxyManager.sol";
         | 
| 6 6 | 
             
            import {RiskService} from "./RiskService.sol";
         | 
| 7 7 |  | 
| @@ -12,17 +12,19 @@ contract RiskServiceManager is ProxyManager { | |
| 12 12 | 
             
                /// @dev initializes proxy manager with product service implementation 
         | 
| 13 13 | 
             
                constructor(
         | 
| 14 14 | 
             
                    address authority, 
         | 
| 15 | 
            +
                    address registry,
         | 
| 15 16 | 
             
                    bytes32 salt
         | 
| 16 17 | 
             
                ) 
         | 
| 17 18 | 
             
                {
         | 
| 18 19 | 
             
                    RiskService svc = new RiskService{salt: salt}();
         | 
| 19 | 
            -
                    bytes memory data = abi.encode(authority);
         | 
| 20 | 
            -
                     | 
| 20 | 
            +
                    bytes memory data = abi.encode(authority, registry);
         | 
| 21 | 
            +
                    IVersionable versionable = initialize(
         | 
| 22 | 
            +
                        registry,
         | 
| 21 23 | 
             
                        address(svc), 
         | 
| 22 24 | 
             
                        data,
         | 
| 23 25 | 
             
                        salt);
         | 
| 24 26 |  | 
| 25 | 
            -
                    _riskService = RiskService(address( | 
| 27 | 
            +
                    _riskService = RiskService(address(versionable));
         | 
| 26 28 | 
             
                }
         | 
| 27 29 |  | 
| 28 30 | 
             
                //--- view functions ----------------------------------------------------//
         | 
| @@ -19,8 +19,8 @@ interface IRegistry is | |
| 19 19 | 
             
                IERC165
         | 
| 20 20 | 
             
            {
         | 
| 21 21 |  | 
| 22 | 
            -
                event LogRegistryObjectRegistered(NftId nftId, NftId parentNftId, ObjectType objectType,  | 
| 23 | 
            -
                event LogRegistryServiceRegistered(VersionPart  | 
| 22 | 
            +
                event LogRegistryObjectRegistered(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
         | 
| 23 | 
            +
                event LogRegistryServiceRegistered(VersionPart majorVersion, ObjectType domain);
         | 
| 24 24 | 
             
                event LogRegistryChainRegistryRegistered(NftId nftId, uint256 chainId, address chainRegistryAddress);
         | 
| 25 25 |  | 
| 26 26 | 
             
                // initialize
         | 
| @@ -49,7 +49,6 @@ interface IRegistry is | |
| 49 49 | 
             
                error ErrorRegistryCoreTypeRegistration();
         | 
| 50 50 |  | 
| 51 51 | 
             
                // _register()
         | 
| 52 | 
            -
                error ErrorRegistryReleaseMismatch(VersionPart objectrelease, VersionPart parentRelease, VersionPart senderRelease);
         | 
| 53 52 | 
             
                error ErrorRegistryGlobalRegistryAsParent(address objectAddress, ObjectType objectType);
         | 
| 54 53 | 
             
                error ErrorRegistryTypeCombinationInvalid(address objectAddress, ObjectType objectType, ObjectType parentType);
         | 
| 55 54 | 
             
                error ErrorRegistryContractAlreadyRegistered(address objectAddress);
         | 
| @@ -59,10 +58,13 @@ interface IRegistry is | |
| 59 58 | 
             
                    NftId nftId;
         | 
| 60 59 | 
             
                    NftId parentNftId;
         | 
| 61 60 | 
             
                    ObjectType objectType;
         | 
| 62 | 
            -
                    VersionPart release;
         | 
| 63 61 | 
             
                    bool isInterceptor;
         | 
| 64 62 | 
             
                    // slot 1
         | 
| 65 63 | 
             
                    address objectAddress;
         | 
| 64 | 
            +
                    // slot 2
         | 
| 65 | 
            +
                    address initialOwner;
         | 
| 66 | 
            +
                    // slot 3
         | 
| 67 | 
            +
                    bytes data;
         | 
| 66 68 | 
             
                }
         | 
| 67 69 |  | 
| 68 70 | 
             
                /// @dev Registers a registry contract for a specified chain.
         | 
| @@ -70,30 +72,28 @@ interface IRegistry is | |
| 70 72 | 
             
                function registerRegistry(
         | 
| 71 73 | 
             
                    NftId nftId, 
         | 
| 72 74 | 
             
                    uint256 chainId, 
         | 
| 73 | 
            -
                    address chainRegistryAddress | 
| 74 | 
            -
                    VersionPart release
         | 
| 75 | 
            +
                    address chainRegistryAddress
         | 
| 75 76 | 
             
                ) external;
         | 
| 76 77 |  | 
| 77 78 | 
             
                /// @dev Register a service with using the provided domain and version.
         | 
| 78 79 | 
             
                /// The function returns a newly minted service NFT ID.
         | 
| 79 80 | 
             
                /// May only be used to register services.
         | 
| 80 81 | 
             
                function registerService(
         | 
| 81 | 
            -
                    ObjectInfo memory  | 
| 82 | 
            -
                     | 
| 83 | 
            -
                    ObjectType  | 
| 84 | 
            -
                    bytes memory data
         | 
| 82 | 
            +
                    ObjectInfo memory serviceInfo, 
         | 
| 83 | 
            +
                    VersionPart serviceVersion, 
         | 
| 84 | 
            +
                    ObjectType serviceDomain
         | 
| 85 85 | 
             
                ) external returns(NftId nftId);
         | 
| 86 86 |  | 
| 87 87 | 
             
                /// @dev Register an object with a known core type.
         | 
| 88 88 | 
             
                /// The function returns a newly minted object NFT ID.
         | 
| 89 89 | 
             
                /// May not be used to register services.
         | 
| 90 | 
            -
                function register(ObjectInfo memory info | 
| 90 | 
            +
                function register(ObjectInfo memory info) external returns (NftId nftId);
         | 
| 91 91 |  | 
| 92 92 | 
             
                /// @dev Register an object with a custom type.
         | 
| 93 93 | 
             
                /// The function returns a newly minted object NFT ID.
         | 
| 94 94 | 
             
                /// This function is reserved for GIF releases > 3.
         | 
| 95 95 | 
             
                /// May not be used to register known core types.
         | 
| 96 | 
            -
                function registerWithCustomType(ObjectInfo memory info | 
| 96 | 
            +
                function registerWithCustomType(ObjectInfo memory info) external returns (NftId nftId);
         | 
| 97 97 |  | 
| 98 98 | 
             
                function getInitialRelease() external view returns (VersionPart);
         | 
| 99 99 |  | 
| @@ -126,15 +126,9 @@ interface IRegistry is | |
| 126 126 |  | 
| 127 127 | 
             
                function getParentNftId(NftId nftId) external view returns (NftId parentNftId);
         | 
| 128 128 |  | 
| 129 | 
            -
                function  | 
| 129 | 
            +
                function isObjectType(NftId nftId, ObjectType expectedObjectType) external view returns (bool);
         | 
| 130 130 |  | 
| 131 | 
            -
                function  | 
| 132 | 
            -
             | 
| 133 | 
            -
                function isObjectType(NftId nftId, ObjectType expectedObjectType, VersionPart expectedRelease) external view returns (bool);
         | 
| 134 | 
            -
             | 
| 135 | 
            -
                function isObjectType(address contractAddress, ObjectType expectedObjectType, VersionPart expectedRelease) external view returns (bool);
         | 
| 136 | 
            -
             | 
| 137 | 
            -
                function getObjectRelease(NftId nftId) external view returns (VersionPart release);
         | 
| 131 | 
            +
                function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool);
         | 
| 138 132 |  | 
| 139 133 | 
             
                function getObjectAddress(NftId nftId) external view returns (address objectAddress);
         | 
| 140 134 |  | 
| @@ -19,12 +19,13 @@ interface IRegistryService is | |
| 19 19 | 
             
            {
         | 
| 20 20 | 
             
                 error ErrorRegistryServiceNotRegistryOwner();
         | 
| 21 21 |  | 
| 22 | 
            -
                  | 
| 23 | 
            -
                 error  | 
| 24 | 
            -
                 error  | 
| 22 | 
            +
                 error ErrorRegistryServiceNotService(address notService);
         | 
| 23 | 
            +
                 error ErrorRegistryServiceNotInstance(address notInstance);
         | 
| 24 | 
            +
                 error ErrorRegistryServiceNotProduct(address notProduct);
         | 
| 25 | 
            +
                 error ErrorRegistryServiceNotComponent(address notComponent);
         | 
| 26 | 
            +
                 error ErrorRegistryServiceNotProductLinkedComponent(address notProductLinkedComponent);
         | 
| 25 27 |  | 
| 26 28 | 
             
                 error ErrorRegistryServiceRegisterableAddressInvalid(IRegisterable registerable, address found);
         | 
| 27 | 
            -
                 error ErrorRegistryServiceRegisterableParentInvalid(IRegisterable registerable, NftId expected, NftId found);
         | 
| 28 29 | 
             
                 error ErrorRegistryServiceRegisterableTypeInvalid(IRegisterable registerable, ObjectType expected, ObjectType found);
         | 
| 29 30 | 
             
                 error ErrorRegistryServiceRegisterableOwnerInvalid(IRegisterable registerable, address expected, address found);
         | 
| 30 31 | 
             
                 error ErrorRegistryServiceRegisterableOwnerZero(IRegisterable registerable);   
         | 
| @@ -39,20 +40,23 @@ interface IRegistryService is | |
| 39 40 | 
             
                 error ErrorRegistryServiceInvalidInitialOwner(address initialOwner);
         | 
| 40 41 | 
             
                 error ErrorRegistryServiceInvalidAddress(address registerableAddress);
         | 
| 41 42 |  | 
| 42 | 
            -
                 function registerStake(IRegistry.ObjectInfo memory info | 
| 43 | 
            +
                 function registerStake(IRegistry.ObjectInfo memory info)
         | 
| 43 44 | 
             
                      external returns(NftId nftId); 
         | 
| 44 45 |  | 
| 45 | 
            -
                 function registerInstance(IRegisterable instance, address  | 
| 46 | 
            +
                 function registerInstance(IRegisterable instance, address owner)
         | 
| 46 47 | 
             
                      external returns(IRegistry.ObjectInfo memory info); 
         | 
| 47 48 |  | 
| 48 | 
            -
                 function  | 
| 49 | 
            +
                 function registerProduct(IComponent product, address owner)
         | 
| 49 50 | 
             
                      external returns(IRegistry.ObjectInfo memory info);
         | 
| 50 51 |  | 
| 51 | 
            -
                 function  | 
| 52 | 
            +
                 function registerProductLinkedComponent(IComponent component, ObjectType objectType, address owner)
         | 
| 53 | 
            +
                      external returns(IRegistry.ObjectInfo memory info);
         | 
| 54 | 
            +
             | 
| 55 | 
            +
                 function registerDistributor(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
         | 
| 52 56 |  | 
| 53 | 
            -
                 function registerPolicy(IRegistry.ObjectInfo memory info | 
| 57 | 
            +
                 function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
         | 
| 54 58 |  | 
| 55 | 
            -
                 function registerBundle(IRegistry.ObjectInfo memory info | 
| 59 | 
            +
                 function registerBundle(IRegistry.ObjectInfo memory info) external returns(NftId nftId); 
         | 
| 56 60 |  | 
| 57 61 | 
             
            }
         | 
| 58 62 |  |