@etherisc/gif-next 3.0.0-1a7e54a-113 → 3.0.0-1b49bd6-565
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 +139 -72
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +110 -116
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +72 -33
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +89 -66
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +122 -101
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +20 -65
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +31 -55
- 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 +20 -10
- 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 +18 -42
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +126 -75
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +41 -65
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +72 -57
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +198 -139
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +140 -150
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +84 -56
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +71 -32
- 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 +166 -104
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +41 -65
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +200 -138
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +41 -65
- 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 +160 -56
- 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 +173 -116
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +41 -65
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +170 -108
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +41 -65
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +580 -134
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +41 -65
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +212 -2
- 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 +159 -102
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +41 -65
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +163 -106
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +177 -120
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +41 -65
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +171 -114
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +41 -65
- 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 +49 -54
- 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 +77 -25
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +83 -44
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +144 -50
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +169 -147
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +43 -67
- 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 +138 -75
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +104 -112
- 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 +53 -58
- 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 +3 -8
- 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 +132 -81
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +41 -65
- 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 +94 -66
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +80 -83
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +82 -67
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +149 -148
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +111 -129
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +88 -73
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +41 -65
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +176 -117
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +129 -139
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +71 -32
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +100 -72
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +94 -86
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +88 -73
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +24 -247
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +233 -165
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +140 -130
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +138 -63
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +110 -112
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +72 -57
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +41 -65
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +182 -115
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +132 -138
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +71 -32
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +71 -32
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +82 -64
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +82 -43
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +84 -56
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +75 -36
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +173 -127
- 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 +122 -128
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +161 -94
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +116 -122
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +72 -57
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +146 -63
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +109 -107
- 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 +155 -56
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +202 -216
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +1 -15
- 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 +314 -96
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +163 -142
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +57 -77
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +285 -244
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +115 -110
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +159 -150
- 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 +127 -185
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +32 -56
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +13 -29
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +84 -39
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +164 -320
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +115 -141
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +421 -169
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +691 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +96 -38
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +82 -226
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +84 -56
- 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 +1 -28
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +1 -12
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +77 -25
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +1 -12
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +71 -32
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +74 -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 +72 -57
- 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 +15 -34
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +3 -14
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +76 -24
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +3 -37
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +70 -31
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -29
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -17
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +74 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +101 -56
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +75 -36
- 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 +170 -109
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +26 -31
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +112 -124
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +5 -22
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +132 -65
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +105 -111
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +212 -204
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +27 -19
- 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 +19 -6
- package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{IVersionable.sol/IVersionable.json → IUpgradeable.sol/IUpgradeable.json} +54 -4
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +63 -86
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{Versionable.sol/Versionable.json → Upgradeable.sol/Upgradeable.json} +54 -4
- package/contracts/accounting/AccountingService.sol +5 -6
- package/contracts/accounting/AccountingServiceManager.sol +4 -6
- package/contracts/accounting/IAccountingService.sol +1 -1
- package/contracts/authorization/AccessAdmin.sol +22 -19
- package/contracts/authorization/AccessAdminLib.sol +14 -11
- package/contracts/authorization/AccessManagerCloneable.sol +24 -48
- 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 +0 -2
- package/contracts/distribution/BasicDistributionAuthorization.sol +5 -4
- package/contracts/distribution/Distribution.sol +0 -2
- package/contracts/distribution/DistributionService.sol +24 -20
- package/contracts/distribution/DistributionServiceManager.sol +4 -6
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +0 -4
- package/contracts/examples/flight/FlightLib.sol +48 -37
- package/contracts/examples/flight/FlightOracle.sol +0 -4
- package/contracts/examples/flight/FlightPool.sol +0 -4
- package/contracts/examples/flight/FlightProduct.sol +120 -15
- package/contracts/examples/flight/FlightProductAuthorization.sol +2 -1
- package/contracts/examples/flight/FlightUSD.sol +3 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleOracle.sol +0 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleProduct.sol +0 -4
- package/contracts/instance/Instance.sol +7 -11
- package/contracts/instance/InstanceAdmin.sol +10 -17
- package/contracts/instance/InstanceAuthorizationV3.sol +4 -2
- package/contracts/instance/InstanceReader.sol +15 -15
- package/contracts/instance/InstanceService.sol +18 -20
- package/contracts/instance/InstanceServiceManager.sol +4 -6
- package/contracts/instance/base/Cloneable.sol +4 -10
- package/contracts/instance/base/ObjectSet.sol +2 -2
- package/contracts/oracle/BasicOracle.sol +0 -2
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -1
- package/contracts/oracle/IOracleService.sol +0 -4
- package/contracts/oracle/Oracle.sol +3 -4
- package/contracts/oracle/OracleService.sol +37 -67
- package/contracts/oracle/OracleServiceManager.sol +4 -6
- package/contracts/pool/BasicPool.sol +2 -4
- package/contracts/pool/BasicPoolAuthorization.sol +5 -4
- package/contracts/pool/BundleService.sol +25 -19
- package/contracts/pool/BundleServiceManager.sol +5 -7
- package/contracts/pool/IPoolService.sol +5 -6
- package/contracts/pool/Pool.sol +1 -3
- package/contracts/pool/PoolLib.sol +5 -102
- package/contracts/pool/PoolService.sol +67 -101
- package/contracts/pool/PoolServiceManager.sol +4 -6
- package/contracts/product/ApplicationService.sol +13 -34
- package/contracts/product/ApplicationServiceManager.sol +4 -6
- package/contracts/product/BasicProduct.sol +0 -2
- package/contracts/product/BasicProductAuthorization.sol +5 -4
- package/contracts/product/ClaimService.sol +10 -34
- package/contracts/product/ClaimServiceManager.sol +5 -7
- package/contracts/product/IPolicyService.sol +0 -1
- package/contracts/product/PolicyService.sol +44 -57
- package/contracts/product/PolicyServiceManager.sol +4 -6
- package/contracts/product/PricingService.sol +7 -8
- package/contracts/product/PricingServiceManager.sol +4 -6
- package/contracts/product/Product.sol +0 -2
- package/contracts/product/RiskService.sol +8 -40
- package/contracts/product/RiskServiceManager.sol +4 -6
- package/contracts/registry/IRegistry.sol +20 -14
- package/contracts/registry/IRegistryService.sol +10 -14
- package/contracts/registry/IRelease.sol +0 -3
- package/contracts/registry/Registry.sol +124 -78
- package/contracts/registry/RegistryAdmin.sol +11 -22
- package/contracts/registry/RegistryAuthorization.sol +4 -3
- package/contracts/registry/RegistryService.sol +99 -82
- package/contracts/registry/RegistryServiceManager.sol +4 -11
- package/contracts/registry/ReleaseAdmin.sol +9 -16
- package/contracts/registry/ReleaseRegistry.sol +64 -74
- package/contracts/registry/ServiceAuthorizationV3.sol +4 -3
- package/contracts/registry/TokenRegistry.sol +6 -15
- package/contracts/shared/Component.sol +27 -22
- package/contracts/shared/ComponentService.sol +45 -130
- package/contracts/shared/ComponentServiceManager.sol +5 -7
- package/contracts/shared/ContractLib.sol +359 -93
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponent.sol +5 -3
- package/contracts/shared/IComponentService.sol +0 -14
- package/contracts/shared/IInstanceLinkedComponent.sol +5 -12
- package/contracts/shared/INftOwnable.sol +0 -2
- package/contracts/shared/IRegisterable.sol +14 -3
- package/contracts/shared/IRegistryLinked.sol +1 -3
- package/contracts/shared/IService.sol +2 -2
- package/contracts/shared/IVersionable.sol +19 -0
- package/contracts/shared/InstanceLinkedComponent.sol +31 -65
- package/contracts/shared/NftOwnable.sol +9 -22
- package/contracts/shared/PolicyHolder.sol +2 -4
- package/contracts/shared/Registerable.sol +37 -20
- package/contracts/shared/RegistryLinked.sol +4 -23
- package/contracts/shared/Service.sol +8 -9
- package/contracts/shared/TokenHandler.sol +4 -1
- package/contracts/shared/Versionable.sol +47 -0
- package/contracts/staking/IStaking.sol +2 -2
- package/contracts/staking/Staking.sol +28 -33
- package/contracts/staking/StakingLib.sol +3 -1
- package/contracts/staking/StakingManager.sol +3 -6
- package/contracts/staking/StakingReader.sol +9 -17
- package/contracts/staking/StakingService.sol +16 -13
- package/contracts/staking/StakingServiceManager.sol +4 -8
- package/contracts/staking/StakingStore.sol +8 -8
- package/contracts/staking/TargetHandler.sol +4 -5
- package/contracts/type/Version.sol +15 -16
- package/contracts/upgradeability/{IVersionable.sol → IUpgradeable.sol} +13 -19
- package/contracts/upgradeability/ProxyManager.sol +46 -54
- package/contracts/upgradeability/{Versionable.sol → Upgradeable.sol} +25 -14
- package/package.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +0 -24
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +0 -40
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +0 -4
| @@ -5,10 +5,9 @@ import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol"; | |
| 5 5 | 
             
            import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
         | 
| 6 6 |  | 
| 7 7 | 
             
            import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
         | 
| 8 | 
            -
            import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
         | 
| 9 8 | 
             
            import {IRegistry} from "./IRegistry.sol";
         | 
| 10 9 | 
             
            import {IRelease} from "./IRelease.sol";
         | 
| 11 | 
            -
            import { | 
| 10 | 
            +
            import {RegistryLinked} from "../shared/RegistryLinked.sol";
         | 
| 12 11 | 
             
            import {IService} from "../shared/IService.sol";
         | 
| 13 12 | 
             
            import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
         | 
| 14 13 |  | 
| @@ -16,7 +15,7 @@ import {ContractLib} from "../shared/ContractLib.sol"; | |
| 16 15 | 
             
            import {NftId} from "../type/NftId.sol";
         | 
| 17 16 | 
             
            import {ObjectType, ObjectTypeLib, COMPONENT, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
         | 
| 18 17 | 
             
            import {RegistryAdmin} from "./RegistryAdmin.sol";
         | 
| 19 | 
            -
            import {Registry} from "./Registry.sol";
         | 
| 18 | 
            +
            import {Registry, GIF_INITIAL_RELEASE} from "./Registry.sol";
         | 
| 20 19 | 
             
            import {ReleaseAdmin} from "./ReleaseAdmin.sol";
         | 
| 21 20 | 
             
            import {ReleaseLifecycle} from "./ReleaseLifecycle.sol";
         | 
| 22 21 | 
             
            import {Seconds} from "../type/Seconds.sol";
         | 
| @@ -34,18 +33,13 @@ import {VersionPart, VersionPartLib} from "../type/Version.sol"; | |
| 34 33 | 
             
            contract ReleaseRegistry is 
         | 
| 35 34 | 
             
                AccessManaged,
         | 
| 36 35 | 
             
                ReleaseLifecycle, 
         | 
| 37 | 
            -
                 | 
| 36 | 
            +
                RegistryLinked
         | 
| 38 37 | 
             
            {
         | 
| 39 | 
            -
                uint256 public constant INITIAL_GIF_VERSION = 3;// first active release version  
         | 
| 40 | 
            -
             | 
| 41 38 | 
             
                event LogReleaseCreation(IAccessAdmin admin, VersionPart release, bytes32 salt); 
         | 
| 42 39 | 
             
                event LogReleaseActivation(VersionPart release);
         | 
| 43 40 | 
             
                event LogReleaseDisabled(VersionPart release);
         | 
| 44 41 | 
             
                event LogReleaseEnabled(VersionPart release);
         | 
| 45 42 |  | 
| 46 | 
            -
                // constructor
         | 
| 47 | 
            -
                error ErrorReleaseRegistryNotRegistry(Registry registry);
         | 
| 48 | 
            -
             | 
| 49 43 | 
             
                // _verifyServiceAuthorization
         | 
| 50 44 | 
             
                error ErrorReleaseRegistryNotServiceAuth(address notAuth);
         | 
| 51 45 | 
             
                error ErrorReleaseRegistryServiceAuthVersionMismatch(IServiceAuthorization auth, VersionPart expected, VersionPart actual);
         | 
| @@ -59,20 +53,19 @@ contract ReleaseRegistry is | |
| 59 53 |  | 
| 60 54 | 
             
                // _verifyService
         | 
| 61 55 | 
             
                error ErrorReleaseRegistryNotService(address notService);
         | 
| 62 | 
            -
                error ErrorReleaseRegistryServiceAuthorityMismatch(IService service, address  | 
| 63 | 
            -
                error ErrorReleaseRegistryServiceVersionMismatch(IService service, VersionPart serviceVersion, VersionPart releaseVersion);
         | 
| 56 | 
            +
                error ErrorReleaseRegistryServiceAuthorityMismatch(IService service, address expectedAuthority, address actualAuthority);
         | 
| 64 57 | 
             
                error ErrorReleaseRegistryServiceDomainMismatch(IService service, ObjectType expectedDomain, ObjectType actualDomain);
         | 
| 65 58 |  | 
| 66 | 
            -
                //  | 
| 59 | 
            +
                // _getAndVerifyServiceInfo
         | 
| 67 60 | 
             
                error ErrorReleaseRegistryServiceInfoAddressInvalid(IService service, address expected);
         | 
| 68 61 | 
             
                error ErrorReleaseRegistryServiceInfoInterceptorInvalid(IService service, bool isInterceptor);
         | 
| 69 62 | 
             
                error ErrorReleaseRegistryServiceInfoTypeInvalid(IService service, ObjectType expected, ObjectType found);
         | 
| 63 | 
            +
                error ErrorReleaseRegistryServiceInfoReleaseMismatch(IService service, VersionPart expected, VersionPart actual);
         | 
| 70 64 | 
             
                error ErrorReleaseRegistryServiceInfoOwnerInvalid(IService service, address expected, address found);
         | 
| 71 65 | 
             
                error ErrorReleaseRegistryServiceSelfRegistration(IService service);
         | 
| 72 66 | 
             
                error ErrorReleaseRegistryServiceOwnerRegistered(IService service, address owner);
         | 
| 73 67 |  | 
| 74 68 | 
             
                RegistryAdmin public immutable _registryAdmin;
         | 
| 75 | 
            -
                Registry public immutable _registry;
         | 
| 76 69 |  | 
| 77 70 | 
             
                mapping(VersionPart release => IRelease.ReleaseInfo info) internal _releaseInfo;
         | 
| 78 71 | 
             
                VersionPart [] internal _release; // array of all created releases    
         | 
| @@ -86,21 +79,18 @@ contract ReleaseRegistry is | |
| 86 79 | 
             
                uint256 internal _servicesToRegister = 0;
         | 
| 87 80 |  | 
| 88 81 | 
             
                // TODO move master relase admin outside constructor (same construction as for registry admin)
         | 
| 89 | 
            -
                constructor( | 
| 82 | 
            +
                constructor()
         | 
| 90 83 | 
             
                    AccessManaged(msg.sender)
         | 
| 91 84 | 
             
                {
         | 
| 92 | 
            -
                     | 
| 93 | 
            -
                        revert ErrorReleaseRegistryNotRegistry(registry);
         | 
| 94 | 
            -
                    }
         | 
| 85 | 
            +
                    IRegistry registry = _getRegistry();
         | 
| 95 86 |  | 
| 96 87 | 
             
                    setAuthority(registry.getAuthority());
         | 
| 97 88 |  | 
| 98 | 
            -
                     | 
| 99 | 
            -
                    _registryAdmin = RegistryAdmin(_registry.getRegistryAdminAddress());
         | 
| 89 | 
            +
                    _registryAdmin = RegistryAdmin(registry.getRegistryAdminAddress());
         | 
| 100 90 | 
             
                    _masterReleaseAdmin = new ReleaseAdmin(
         | 
| 101 91 | 
             
                        _cloneNewAccessManager());
         | 
| 102 92 |  | 
| 103 | 
            -
                    _next = VersionPartLib.toVersionPart( | 
| 93 | 
            +
                    _next = VersionPartLib.toVersionPart(GIF_INITIAL_RELEASE().toInt() - 1);
         | 
| 104 94 | 
             
                }
         | 
| 105 95 |  | 
| 106 96 | 
             
                /// @dev Initiates the creation of a new GIF release by the GIF admin.
         | 
| @@ -118,7 +108,7 @@ contract ReleaseRegistry is | |
| 118 108 | 
             
                    }
         | 
| 119 109 |  | 
| 120 110 | 
             
                    release = VersionPartLib.toVersionPart(release.toInt() + 1);
         | 
| 121 | 
            -
                    _release.push(release);
         | 
| 111 | 
            +
                    _release.push(release); // TODO push only activated releases, _next keeps total release count
         | 
| 122 112 |  | 
| 123 113 | 
             
                    _next = release;
         | 
| 124 114 | 
             
                    _releaseInfo[release].version = release;
         | 
| @@ -184,24 +174,21 @@ contract ReleaseRegistry is | |
| 184 174 | 
             
                    address releaseAuthority = ReleaseAdmin(_releaseInfo[releaseVersion].releaseAdmin).authority();
         | 
| 185 175 | 
             
                    IServiceAuthorization releaseAuthz = _releaseInfo[releaseVersion].auth;
         | 
| 186 176 | 
             
                    ObjectType expectedDomain = releaseAuthz.getServiceDomain(_registeredServices);
         | 
| 177 | 
            +
                    address expectedOwner = msg.sender;
         | 
| 187 178 |  | 
| 188 179 | 
             
                    // service can work with release registry and release version
         | 
| 189 180 | 
             
                    (
         | 
| 190 181 | 
             
                        IRegistry.ObjectInfo memory info,
         | 
| 191 | 
            -
                         | 
| 192 | 
            -
                         | 
| 193 | 
            -
                        //,string memory serviceName
         | 
| 182 | 
            +
                        bytes memory data,
         | 
| 183 | 
            +
                        ObjectType serviceDomain
         | 
| 194 184 | 
             
                    ) = _verifyService(
         | 
| 195 185 | 
             
                        service, 
         | 
| 186 | 
            +
                        expectedOwner,
         | 
| 196 187 | 
             
                        releaseAuthority, 
         | 
| 197 188 | 
             
                        releaseVersion, 
         | 
| 198 189 | 
             
                        expectedDomain
         | 
| 199 190 | 
             
                    );
         | 
| 200 191 |  | 
| 201 | 
            -
                    //_releaseInfo[releaseVersion].addresses.push(address(service)); // TODO get this info from auth contract?
         | 
| 202 | 
            -
                    //_releaseInfo[releaseVersion].domains.push(serviceDomain);
         | 
| 203 | 
            -
                    //_releaseInfo[releaseVersion].names.push(serviceName); // TODO if needed read in _verifyService()
         | 
| 204 | 
            -
             | 
| 205 192 | 
             
                    _registeredServices++; // TODO use releaseInfo.someArray.length instead of _registeredServices
         | 
| 206 193 |  | 
| 207 194 | 
             
                    // release fully deployed
         | 
| @@ -222,7 +209,7 @@ contract ReleaseRegistry is | |
| 222 209 | 
             
                    releaseAdmin.setReleaseLocked(true); 
         | 
| 223 210 |  | 
| 224 211 | 
             
                    // register service with registry
         | 
| 225 | 
            -
                    nftId =  | 
| 212 | 
            +
                    nftId = _getRegistry().registerService(info, expectedOwner, serviceDomain, data);
         | 
| 226 213 | 
             
                    service.linkToRegisteredNftId();
         | 
| 227 214 | 
             
                }
         | 
| 228 215 |  | 
| @@ -245,25 +232,27 @@ contract ReleaseRegistry is | |
| 245 232 | 
             
                    // grant special roles for registry/staking/pool services
         | 
| 246 233 | 
             
                    // this will enable access to core contracts functions
         | 
| 247 234 |  | 
| 235 | 
            +
                    IRegistry registry = _getRegistry();
         | 
| 236 | 
            +
             | 
| 248 237 | 
             
                    // registry service MUST be registered for each release
         | 
| 249 | 
            -
                    address service =  | 
| 238 | 
            +
                    address service = registry.getServiceAddress(REGISTRY(), release);
         | 
| 250 239 | 
             
                    if(service == address(0)) {
         | 
| 251 240 | 
             
                        revert ErrorReleaseRegistryRegistryServiceMissing(release);
         | 
| 252 241 | 
             
                    }
         | 
| 253 242 |  | 
| 254 243 | 
             
                    _registryAdmin.grantServiceRoleForAllVersions(IService(service), REGISTRY());
         | 
| 255 244 |  | 
| 256 | 
            -
                    service =  | 
| 245 | 
            +
                    service = registry.getServiceAddress(STAKING(), release);
         | 
| 257 246 | 
             
                    if(service != address(0)) {
         | 
| 258 247 | 
             
                        _registryAdmin.grantServiceRoleForAllVersions(IService(service), STAKING());
         | 
| 259 248 | 
             
                    }
         | 
| 260 249 |  | 
| 261 | 
            -
                    service =  | 
| 250 | 
            +
                    service = registry.getServiceAddress(COMPONENT(), release);
         | 
| 262 251 | 
             
                    if(service != address(0)) {
         | 
| 263 252 | 
             
                        _registryAdmin.grantServiceRoleForAllVersions(IService(service), COMPONENT());
         | 
| 264 253 | 
             
                    }
         | 
| 265 254 |  | 
| 266 | 
            -
                    service =  | 
| 255 | 
            +
                    service = registry.getServiceAddress(POOL(), release);
         | 
| 267 256 | 
             
                    if(service != address(0)) {
         | 
| 268 257 | 
             
                        _registryAdmin.grantServiceRoleForAllVersions(IService(service), POOL());
         | 
| 269 258 | 
             
                    }
         | 
| @@ -356,12 +345,6 @@ contract ReleaseRegistry is | |
| 356 345 | 
             
                    return address(_registryAdmin);
         | 
| 357 346 | 
             
                }
         | 
| 358 347 |  | 
| 359 | 
            -
                //--- IRegistryLinked ------------------------------------------------------//
         | 
| 360 | 
            -
             | 
| 361 | 
            -
                function getRegistry() external view returns (IRegistry) {
         | 
| 362 | 
            -
                    return _registry;
         | 
| 363 | 
            -
                }
         | 
| 364 | 
            -
             | 
| 365 348 | 
             
                //--- private functions ----------------------------------------------------//
         | 
| 366 349 |  | 
| 367 350 | 
             
                function _setReleaseLocked(VersionPart release, bool locked)
         | 
| @@ -389,12 +372,11 @@ contract ReleaseRegistry is | |
| 389 372 |  | 
| 390 373 | 
             
                    clonedAdmin.initialize(
         | 
| 391 374 | 
             
                        address(_cloneNewAccessManager()),
         | 
| 392 | 
            -
                        releaseAdminName | 
| 375 | 
            +
                        releaseAdminName,
         | 
| 376 | 
            +
                        release);
         | 
| 393 377 |  | 
| 394 378 | 
             
                    clonedAdmin.completeSetup(
         | 
| 395 | 
            -
                        address(_registry), 
         | 
| 396 379 | 
             
                        address(serviceAuthorization),
         | 
| 397 | 
            -
                        release,
         | 
| 398 380 | 
             
                        address(this)); // release registry (this contract)
         | 
| 399 381 |  | 
| 400 382 | 
             
                    // lock release (remains locked until activation)
         | 
| @@ -439,62 +421,65 @@ contract ReleaseRegistry is | |
| 439 421 |  | 
| 440 422 | 
             
                // TODO get service names 
         | 
| 441 423 | 
             
                function _verifyService(
         | 
| 442 | 
            -
                    IService service, | 
| 424 | 
            +
                    IService service,
         | 
| 425 | 
            +
                    address expectedOwner,
         | 
| 443 426 | 
             
                    address expectedAuthority, 
         | 
| 444 | 
            -
                    VersionPart  | 
| 427 | 
            +
                    VersionPart expectedRelease,
         | 
| 445 428 | 
             
                    ObjectType expectedDomain
         | 
| 446 429 | 
             
                )
         | 
| 447 430 | 
             
                    internal
         | 
| 448 431 | 
             
                    view
         | 
| 449 432 | 
             
                    returns(
         | 
| 450 | 
            -
                        IRegistry.ObjectInfo memory  | 
| 451 | 
            -
                         | 
| 452 | 
            -
                         | 
| 433 | 
            +
                        IRegistry.ObjectInfo memory info,
         | 
| 434 | 
            +
                        bytes memory data,
         | 
| 435 | 
            +
                        ObjectType domain
         | 
| 453 436 | 
             
                    )
         | 
| 454 437 | 
             
                {
         | 
| 455 438 | 
             
                    if(!service.supportsInterface(type(IService).interfaceId)) {
         | 
| 456 439 | 
             
                        revert ErrorReleaseRegistryNotService(address(service));
         | 
| 457 440 | 
             
                    }
         | 
| 458 441 |  | 
| 459 | 
            -
                    address  | 
| 460 | 
            -
                     | 
| 461 | 
            -
                    serviceVersion = service.getVersion().toMajorPart();
         | 
| 462 | 
            -
                    serviceDomain = service.getDomain();// checked in registry
         | 
| 463 | 
            -
                    serviceInfo = service.getInitialInfo();
         | 
| 442 | 
            +
                    address authority = service.authority();
         | 
| 443 | 
            +
                    domain = service.getDomain();// checked in registry
         | 
| 464 444 |  | 
| 465 | 
            -
                     | 
| 445 | 
            +
                    (info,, data) = _getAndVerifyServiceInfo(
         | 
| 446 | 
            +
                        service,
         | 
| 447 | 
            +
                        expectedOwner,
         | 
| 448 | 
            +
                        expectedRelease);
         | 
| 466 449 |  | 
| 467 | 
            -
                    if( | 
| 450 | 
            +
                    if(authority != expectedAuthority) {
         | 
| 468 451 | 
             
                        revert ErrorReleaseRegistryServiceAuthorityMismatch(
         | 
| 469 452 | 
             
                            service,
         | 
| 470 | 
            -
                             | 
| 471 | 
            -
                             | 
| 453 | 
            +
                            expectedAuthority,
         | 
| 454 | 
            +
                            authority);
         | 
| 472 455 | 
             
                    }
         | 
| 473 456 |  | 
| 474 | 
            -
                    if( | 
| 475 | 
            -
                        revert ErrorReleaseRegistryServiceVersionMismatch(
         | 
| 476 | 
            -
                            service,
         | 
| 477 | 
            -
                            serviceVersion,
         | 
| 478 | 
            -
                            expectedVersion);            
         | 
| 479 | 
            -
                    }
         | 
| 480 | 
            -
             | 
| 481 | 
            -
                    if(serviceDomain != expectedDomain) {
         | 
| 457 | 
            +
                    if(domain != expectedDomain) {
         | 
| 482 458 | 
             
                        revert ErrorReleaseRegistryServiceDomainMismatch(
         | 
| 483 459 | 
             
                            service,
         | 
| 484 460 | 
             
                            expectedDomain,
         | 
| 485 | 
            -
                             | 
| 461 | 
            +
                            domain);
         | 
| 486 462 | 
             
                    }
         | 
| 487 463 | 
             
                }
         | 
| 488 464 |  | 
| 489 465 |  | 
| 490 | 
            -
                function  | 
| 466 | 
            +
                function _getAndVerifyServiceInfo(
         | 
| 491 467 | 
             
                    IService service,
         | 
| 492 | 
            -
                     | 
| 493 | 
            -
                     | 
| 468 | 
            +
                    address expectedOwner, // assume always valid, can not be 0
         | 
| 469 | 
            +
                    VersionPart expectedRelease
         | 
| 494 470 | 
             
                )
         | 
| 495 471 | 
             
                    internal
         | 
| 496 472 | 
             
                    view
         | 
| 473 | 
            +
                    returns (
         | 
| 474 | 
            +
                        IRegistry.ObjectInfo memory info,
         | 
| 475 | 
            +
                        address initialOwner,
         | 
| 476 | 
            +
                        bytes memory data
         | 
| 477 | 
            +
                    )
         | 
| 497 478 | 
             
                {
         | 
| 479 | 
            +
                    info = service.getInitialInfo();
         | 
| 480 | 
            +
                    initialOwner = service.getOwner();
         | 
| 481 | 
            +
                    data = service.getInitialData();
         | 
| 482 | 
            +
             | 
| 498 483 | 
             
                    if(info.objectAddress != address(service)) {
         | 
| 499 484 | 
             
                        revert ErrorReleaseRegistryServiceInfoAddressInvalid(service, info.objectAddress);
         | 
| 500 485 | 
             
                    }
         | 
| @@ -507,18 +492,23 @@ contract ReleaseRegistry is | |
| 507 492 | 
             
                        revert ErrorReleaseRegistryServiceInfoTypeInvalid(service, SERVICE(), info.objectType);
         | 
| 508 493 | 
             
                    }
         | 
| 509 494 |  | 
| 510 | 
            -
                     | 
| 495 | 
            +
                    if(info.release != expectedRelease) {
         | 
| 496 | 
            +
                        revert ErrorReleaseRegistryServiceInfoReleaseMismatch(
         | 
| 497 | 
            +
                            service,
         | 
| 498 | 
            +
                            expectedRelease,
         | 
| 499 | 
            +
                            info.release);            
         | 
| 500 | 
            +
                    }
         | 
| 511 501 |  | 
| 512 | 
            -
                    if( | 
| 513 | 
            -
                        revert ErrorReleaseRegistryServiceInfoOwnerInvalid(service, expectedOwner,  | 
| 502 | 
            +
                    if(initialOwner != expectedOwner) { // registerable owner protection
         | 
| 503 | 
            +
                        revert ErrorReleaseRegistryServiceInfoOwnerInvalid(service, expectedOwner, initialOwner); 
         | 
| 514 504 | 
             
                    }
         | 
| 515 505 |  | 
| 516 | 
            -
                    if( | 
| 506 | 
            +
                    if(initialOwner == address(service)) {
         | 
| 517 507 | 
             
                        revert ErrorReleaseRegistryServiceSelfRegistration(service);
         | 
| 518 508 | 
             
                    }
         | 
| 519 509 |  | 
| 520 | 
            -
                    if( | 
| 521 | 
            -
                        revert ErrorReleaseRegistryServiceOwnerRegistered(service,  | 
| 510 | 
            +
                    if(_getRegistry().isRegistered(initialOwner)) { 
         | 
| 511 | 
            +
                        revert ErrorReleaseRegistryServiceOwnerRegistered(service, initialOwner);
         | 
| 522 512 | 
             
                    }
         | 
| 523 513 | 
             
                }
         | 
| 524 514 | 
             
            }
         | 
| @@ -21,6 +21,8 @@ import {IRegistryService} from "./IRegistryService.sol"; | |
| 21 21 | 
             
            import {IRiskService} from "../product/IRiskService.sol";
         | 
| 22 22 |  | 
| 23 23 | 
             
            import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
         | 
| 24 | 
            +
            import {VersionPartLib} from "../../contracts/type/Version.sol";
         | 
| 25 | 
            +
            import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
         | 
| 24 26 |  | 
| 25 27 |  | 
| 26 28 | 
             
            contract ServiceAuthorizationV3
         | 
| @@ -31,7 +33,7 @@ contract ServiceAuthorizationV3 | |
| 31 33 | 
             
                      ServiceAuthorization(
         | 
| 32 34 | 
             
                           "ReleaseAdmin",
         | 
| 33 35 | 
             
                           RELEASE(),
         | 
| 34 | 
            -
                            | 
| 36 | 
            +
                           GIF_INITIAL_RELEASE(),
         | 
| 35 37 | 
             
                           commitHash)
         | 
| 36 38 | 
             
                 {}
         | 
| 37 39 |  | 
| @@ -90,8 +92,7 @@ contract ServiceAuthorizationV3 | |
| 90 92 | 
             
                      _authorize(functions, IRegistryService.registerBundle.selector, "registerBundle");
         | 
| 91 93 |  | 
| 92 94 | 
             
                      functions = _authorizeForService(REGISTRY(), COMPONENT());
         | 
| 93 | 
            -
                      _authorize(functions, IRegistryService. | 
| 94 | 
            -
                      _authorize(functions, IRegistryService.registerProductLinkedComponent.selector, "registerProductLinkedComponent");
         | 
| 95 | 
            +
                      _authorize(functions, IRegistryService.registerComponent.selector, "registerComponent");
         | 
| 95 96 |  | 
| 96 97 | 
             
                      functions = _authorizeForService(REGISTRY(), DISTRIBUTION());
         | 
| 97 98 | 
             
                      _authorize(functions, IRegistryService.registerDistributor.selector, "registerDistributor");
         | 
| @@ -5,7 +5,7 @@ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManage | |
| 5 5 | 
             
            import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
         | 
| 6 6 |  | 
| 7 7 | 
             
            import {IRegistry} from "./IRegistry.sol";
         | 
| 8 | 
            -
            import { | 
| 8 | 
            +
            import {RegistryLinked} from "../shared/RegistryLinked.sol";
         | 
| 9 9 | 
             
            import {IStaking} from "../staking/IStaking.sol";
         | 
| 10 10 |  | 
| 11 11 | 
             
            import {ChainId, ChainIdLib} from "../type/ChainId.sol";
         | 
| @@ -16,7 +16,7 @@ import {VersionPart} from "../type/Version.sol"; | |
| 16 16 | 
             
            /// Only whitelisted tokens can be used as default tokens for products, distribution and pools components.
         | 
| 17 17 | 
             
            contract TokenRegistry is
         | 
| 18 18 | 
             
                AccessManaged,
         | 
| 19 | 
            -
                 | 
| 19 | 
            +
                RegistryLinked
         | 
| 20 20 | 
             
            {
         | 
| 21 21 | 
             
                event LogTokenRegistryTokenRegistered(ChainId chainId, address token, uint256 decimals, string symbol);
         | 
| 22 22 | 
             
                event LogTokenRegistryTokenGlobalStateSet(ChainId chainId, address token, bool active);
         | 
| @@ -47,7 +47,6 @@ contract TokenRegistry is | |
| 47 47 | 
             
                mapping(ChainId chainId => mapping(address token => mapping(VersionPart release => bool isActive))) internal _active;
         | 
| 48 48 | 
             
                TokenInfo [] internal _token;
         | 
| 49 49 |  | 
| 50 | 
            -
                IRegistry internal _registry;
         | 
| 51 50 | 
             
                ChainId internal _chainId = ChainIdLib.current();
         | 
| 52 51 | 
             
                IERC20Metadata internal _dipToken;
         | 
| 53 52 |  | 
| @@ -59,14 +58,13 @@ contract TokenRegistry is | |
| 59 58 | 
             
                    _;
         | 
| 60 59 | 
             
                }
         | 
| 61 60 |  | 
| 62 | 
            -
                constructor( | 
| 61 | 
            +
                constructor(IERC20Metadata dipToken)
         | 
| 63 62 | 
             
                    AccessManaged(msg.sender)
         | 
| 64 63 | 
             
                {
         | 
| 65 64 | 
             
                    // set authority
         | 
| 66 | 
            -
                    address authority = RegistryAdmin( | 
| 65 | 
            +
                    address authority = RegistryAdmin(
         | 
| 66 | 
            +
                        _getRegistry().getRegistryAdminAddress()).authority();
         | 
| 67 67 | 
             
                    setAuthority(authority);
         | 
| 68 | 
            -
                    
         | 
| 69 | 
            -
                    _registry = registry;
         | 
| 70 68 |  | 
| 71 69 | 
             
                    // TODO deal with chains without a dip token
         | 
| 72 70 | 
             
                    _dipToken = _verifyOnchainToken(address(dipToken));
         | 
| @@ -180,7 +178,7 @@ contract TokenRegistry is | |
| 180 178 | 
             
                    // verify valid major version
         | 
| 181 179 | 
             
                    if(enforceVersionCheck) {
         | 
| 182 180 | 
             
                        uint256 version = release.toInt();
         | 
| 183 | 
            -
                        if (! | 
| 181 | 
            +
                        if (!_getRegistry().isActiveRelease(release)) {
         | 
| 184 182 | 
             
                            revert ErrorTokenRegistryMajorVersionInvalid(release);
         | 
| 185 183 | 
             
                        }
         | 
| 186 184 | 
             
                    }
         | 
| @@ -228,13 +226,6 @@ contract TokenRegistry is | |
| 228 226 | 
             
                    return address(_dipToken);
         | 
| 229 227 | 
             
                }
         | 
| 230 228 |  | 
| 231 | 
            -
                //--- IRegistryLinked --------------------------------------------------//
         | 
| 232 | 
            -
             | 
| 233 | 
            -
                /// @dev returns the dip token for this chain
         | 
| 234 | 
            -
                function getRegistry() public view returns (IRegistry) {
         | 
| 235 | 
            -
                    return _registry;
         | 
| 236 | 
            -
                }
         | 
| 237 | 
            -
             | 
| 238 229 | 
             
                //--- internal functions ------------------------------------------------//
         | 
| 239 230 |  | 
| 240 231 |  | 
| @@ -12,7 +12,7 @@ import {NftId} from "../type/NftId.sol"; | |
| 12 12 | 
             
            import {ObjectType, COMPONENT} from "../type/ObjectType.sol";
         | 
| 13 13 | 
             
            import {Registerable} from "../shared/Registerable.sol";
         | 
| 14 14 | 
             
            import {TokenHandler} from "../shared/TokenHandler.sol";
         | 
| 15 | 
            -
            import {Version, VersionLib} from "../type/Version.sol";
         | 
| 15 | 
            +
            import {Version, VersionPart, VersionLib} from "../type/Version.sol";
         | 
| 16 16 |  | 
| 17 17 |  | 
| 18 18 | 
             
            abstract contract Component is
         | 
| @@ -23,14 +23,17 @@ abstract contract Component is | |
| 23 23 | 
             
                bytes32 public constant COMPONENT_LOCATION_V1 = 0xffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00;
         | 
| 24 24 |  | 
| 25 25 | 
             
                struct ComponentStorage {
         | 
| 26 | 
            -
                     | 
| 27 | 
            -
                    bool _isInterceptor;
         | 
| 26 | 
            +
                    // slot 0
         | 
| 28 27 | 
             
                    IComponentService _componentService;
         | 
| 28 | 
            +
                    // slot 1
         | 
| 29 | 
            +
                    string _name; // unique (per instance) component name -> make pure to save gas?
         | 
| 30 | 
            +
                    // slot 2
         | 
| 31 | 
            +
                    bytes _data;
         | 
| 29 32 | 
             
                }
         | 
| 30 33 |  | 
| 31 34 |  | 
| 32 35 | 
             
                modifier onlyChainNft() {
         | 
| 33 | 
            -
                    if(msg.sender !=  | 
| 36 | 
            +
                    if(msg.sender != _getRegistry().getChainNftAddress()) {
         | 
| 34 37 | 
             
                        revert ErrorComponentNotChainNft(msg.sender);
         | 
| 35 38 | 
             
                    }
         | 
| 36 39 | 
             
                    _;
         | 
| @@ -44,10 +47,9 @@ abstract contract Component is | |
| 44 47 | 
             
                    }
         | 
| 45 48 | 
             
                }
         | 
| 46 49 |  | 
| 47 | 
            -
             | 
| 50 | 
            +
                /// @dev requires component parent to be registered 
         | 
| 48 51 | 
             
                function __Component_init(
         | 
| 49 52 | 
             
                    address authority,
         | 
| 50 | 
            -
                    address registry,
         | 
| 51 53 | 
             
                    NftId parentNftId,
         | 
| 52 54 | 
             
                    string memory name,
         | 
| 53 55 | 
             
                    ObjectType componentType,
         | 
| @@ -65,7 +67,6 @@ abstract contract Component is | |
| 65 67 |  | 
| 66 68 | 
             
                    __Registerable_init(
         | 
| 67 69 | 
             
                        authority,
         | 
| 68 | 
            -
                        registry, 
         | 
| 69 70 | 
             
                        parentNftId, 
         | 
| 70 71 | 
             
                        componentType, 
         | 
| 71 72 | 
             
                        isInterceptor, 
         | 
| @@ -75,7 +76,6 @@ abstract contract Component is | |
| 75 76 | 
             
                    // set component state
         | 
| 76 77 | 
             
                    ComponentStorage storage $ = _getComponentStorage();
         | 
| 77 78 | 
             
                    $._name = name;
         | 
| 78 | 
            -
                    $._isInterceptor = isInterceptor;
         | 
| 79 79 | 
             
                    $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
         | 
| 80 80 |  | 
| 81 81 | 
             
                    _registerInterface(type(IAccessManaged).interfaceId);
         | 
| @@ -93,6 +93,17 @@ abstract contract Component is | |
| 93 93 | 
             
                    _nftTransferFrom(from, to, tokenId, operator);
         | 
| 94 94 | 
             
                }
         | 
| 95 95 |  | 
| 96 | 
            +
                /// @inheritdoc IComponent
         | 
| 97 | 
            +
                function withdrawFees(Amount amount)
         | 
| 98 | 
            +
                    external
         | 
| 99 | 
            +
                    virtual
         | 
| 100 | 
            +
                    restricted()
         | 
| 101 | 
            +
                    onlyOwner()
         | 
| 102 | 
            +
                    returns (Amount withdrawnAmount)
         | 
| 103 | 
            +
                {
         | 
| 104 | 
            +
                    return _withdrawFees(amount);
         | 
| 105 | 
            +
                }
         | 
| 106 | 
            +
             | 
| 96 107 |  | 
| 97 108 | 
             
                function getWallet() public view virtual returns (address walletAddress) {
         | 
| 98 109 | 
             
                    return getTokenHandler().getWallet();
         | 
| @@ -110,10 +121,6 @@ abstract contract Component is | |
| 110 121 | 
             
                    return getComponentInfo().name;
         | 
| 111 122 | 
             
                }
         | 
| 112 123 |  | 
| 113 | 
            -
                function getVersion() public view virtual returns (Version version) {
         | 
| 114 | 
            -
                    return VersionLib.toVersion(1, 0, 0);
         | 
| 115 | 
            -
                }
         | 
| 116 | 
            -
             | 
| 117 124 | 
             
                function getComponentInfo() public virtual view returns (IComponents.ComponentInfo memory info) {
         | 
| 118 125 | 
             
                    if (isRegistered()) {
         | 
| 119 126 | 
             
                        return _getComponentInfo();
         | 
| @@ -129,17 +136,9 @@ abstract contract Component is | |
| 129 136 | 
             
                }
         | 
| 130 137 |  | 
| 131 138 |  | 
| 132 | 
            -
                function isNftInterceptor() public virtual view returns(bool isInterceptor) {
         | 
| 133 | 
            -
                    if (isRegistered()) {
         | 
| 134 | 
            -
                        return getRegistry().getObjectInfo(address(this)).isInterceptor;
         | 
| 135 | 
            -
                    } else {
         | 
| 136 | 
            -
                        return _getComponentStorage()._isInterceptor;
         | 
| 137 | 
            -
                    }
         | 
| 138 | 
            -
                }
         | 
| 139 | 
            -
             | 
| 140 139 |  | 
| 141 140 | 
             
                function isRegistered() public virtual view returns (bool) {
         | 
| 142 | 
            -
                    return  | 
| 141 | 
            +
                    return _getRegistry().getNftIdForAddress(address(this)).gtz();
         | 
| 143 142 | 
             
                }
         | 
| 144 143 |  | 
| 145 144 |  | 
| @@ -170,6 +169,12 @@ abstract contract Component is | |
| 170 169 | 
             
                    // empty default implementation
         | 
| 171 170 | 
             
                }
         | 
| 172 171 |  | 
| 172 | 
            +
                function _withdrawFees(Amount amount)
         | 
| 173 | 
            +
                    internal
         | 
| 174 | 
            +
                    returns (Amount withdrawnAmount)
         | 
| 175 | 
            +
                {
         | 
| 176 | 
            +
                    return _getComponentStorage()._componentService.withdrawFees(amount);
         | 
| 177 | 
            +
                }
         | 
| 173 178 |  | 
| 174 179 | 
             
                /// @dev Sets the components wallet to the specified address.
         | 
| 175 180 | 
             
                /// Depending on the source of the component information this function needs to be overwritten. 
         | 
| @@ -205,6 +210,6 @@ abstract contract Component is | |
| 205 210 | 
             
                /// @dev returns the service address for the specified domain
         | 
| 206 211 | 
             
                /// gets address via lookup from registry using the major version form the linked instance
         | 
| 207 212 | 
             
                function _getServiceAddress(ObjectType domain) internal view returns (address) {
         | 
| 208 | 
            -
                    return  | 
| 213 | 
            +
                    return _getRegistry().getServiceAddress(domain, getRelease());
         | 
| 209 214 | 
             
                }
         | 
| 210 215 | 
             
            }
         |