@etherisc/gif-next 3.0.0-a35a440-562 → 3.0.0-a511887-523
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +168 -53
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +154 -63
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +107 -20
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +114 -59
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +96 -96
- 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 +45 -3
- 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 +158 -67
- 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 +112 -49
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +227 -112
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +184 -93
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +124 -48
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +106 -19
- 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 +187 -76
- 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 +224 -113
- 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/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +193 -74
- 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 +192 -73
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +200 -81
- 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 +200 -81
- 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 +2 -2
- 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 +118 -18
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +118 -31
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +181 -34
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +192 -146
- 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 +75 -177
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +167 -56
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +148 -59
- 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 +2 -2
- 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/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +158 -67
- 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 +128 -52
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +113 -26
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +116 -53
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +184 -69
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +159 -68
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +119 -56
- 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 +199 -84
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +171 -80
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +106 -19
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +131 -55
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +113 -26
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +119 -56
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +25 -20
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +210 -95
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +172 -81
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +165 -50
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +153 -62
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +112 -49
- 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 +211 -96
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +176 -85
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +106 -19
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +106 -19
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +113 -26
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +113 -26
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +124 -48
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +106 -19
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +204 -89
- 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 +169 -78
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +186 -71
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +160 -69
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +112 -49
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +161 -46
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +151 -60
- 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 +219 -185
- 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 +192 -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 +302 -213
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +162 -55
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +192 -146
- 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 +173 -144
- 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 +46 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +124 -31
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +198 -298
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +166 -91
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +24 -44
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +136 -30
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +113 -209
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +124 -48
- 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 +44 -2
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +44 -2
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -17
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +44 -2
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +106 -19
- 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 +112 -49
- 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 +46 -4
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +46 -4
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +116 -16
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +46 -4
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +105 -18
- 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 +132 -39
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +106 -19
- 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 +195 -86
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +156 -71
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +46 -4
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +157 -42
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +149 -58
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +274 -200
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -2
- 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 +25 -22
- 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 +4 -23
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -21
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +2 -21
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +4 -36
- 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 +109 -40
- 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 +2 -2
- package/contracts/accounting/AccountingServiceManager.sol +3 -3
- package/contracts/accounting/IAccountingService.sol +1 -1
- package/contracts/authorization/AccessAdmin.sol +19 -16
- package/contracts/authorization/AccessManagerCloneable.sol +24 -48
- package/contracts/authorization/Authorization.sol +2 -2
- package/contracts/authorization/IAccessAdmin.sol +2 -3
- package/contracts/authorization/IServiceAuthorization.sol +1 -1
- package/contracts/authorization/ServiceAuthorization.sol +4 -4
- package/contracts/distribution/BasicDistributionAuthorization.sol +5 -4
- package/contracts/distribution/DistributionService.sol +11 -8
- package/contracts/distribution/DistributionServiceManager.sol +3 -3
- package/contracts/instance/IInstance.sol +1 -1
- package/contracts/instance/Instance.sol +3 -6
- package/contracts/instance/InstanceAdmin.sol +9 -14
- package/contracts/instance/InstanceAuthorizationV3.sol +4 -2
- package/contracts/instance/InstanceReader.sol +3 -25
- package/contracts/instance/InstanceService.sol +4 -4
- package/contracts/instance/InstanceServiceManager.sol +3 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -1
- package/contracts/oracle/IOracleService.sol +12 -12
- package/contracts/oracle/Oracle.sol +3 -2
- package/contracts/oracle/OracleService.sol +1 -1
- package/contracts/oracle/OracleServiceManager.sol +3 -3
- package/contracts/pool/BasicPoolAuthorization.sol +5 -4
- package/contracts/pool/BundleService.sol +5 -5
- package/contracts/pool/BundleServiceManager.sol +3 -3
- package/contracts/pool/PoolLib.sol +7 -4
- package/contracts/pool/PoolService.sol +3 -3
- package/contracts/pool/PoolServiceManager.sol +3 -3
- package/contracts/product/ApplicationService.sol +4 -5
- package/contracts/product/ApplicationServiceManager.sol +3 -3
- package/contracts/product/BasicProductAuthorization.sol +7 -7
- package/contracts/product/ClaimService.sol +1 -1
- package/contracts/product/ClaimServiceManager.sol +3 -3
- package/contracts/product/PolicyService.sol +1 -1
- package/contracts/product/PolicyServiceManager.sol +3 -3
- package/contracts/product/PricingService.sol +1 -1
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/RiskService.sol +1 -1
- package/contracts/product/RiskServiceManager.sol +3 -3
- 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 +9 -15
- package/contracts/registry/RegistryAuthorization.sol +2 -1
- package/contracts/registry/RegistryService.sol +96 -78
- package/contracts/registry/RegistryServiceManager.sol +3 -3
- package/contracts/registry/ReleaseAdmin.sol +14 -12
- package/contracts/registry/ReleaseRegistry.sol +52 -50
- package/contracts/registry/ServiceAuthorizationV3.sol +4 -3
- package/contracts/shared/Component.sol +24 -17
- package/contracts/shared/ComponentService.sol +28 -101
- package/contracts/shared/ComponentServiceManager.sol +3 -3
- package/contracts/shared/IComponent.sol +5 -3
- package/contracts/shared/IComponentService.sol +0 -14
- package/contracts/shared/IInstanceLinkedComponent.sol +4 -7
- package/contracts/shared/IRegisterable.sol +8 -3
- package/contracts/shared/IRegistryLinked.sol +3 -1
- package/contracts/shared/IService.sol +2 -2
- package/contracts/shared/IVersionable.sol +19 -0
- package/contracts/shared/InstanceLinkedComponent.sol +39 -124
- package/contracts/shared/NftOwnable.sol +1 -14
- package/contracts/shared/PolicyHolder.sol +2 -2
- package/contracts/shared/Registerable.sol +36 -18
- package/contracts/shared/RegistryLinked.sol +11 -4
- package/contracts/shared/Service.sol +6 -5
- 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 +7 -17
- package/contracts/staking/StakingManager.sol +3 -3
- package/contracts/staking/StakingService.sol +10 -7
- package/contracts/staking/StakingServiceManager.sol +3 -4
- package/contracts/staking/StakingStore.sol +10 -8
- package/contracts/type/ObjectType.sol +31 -2
- package/contracts/type/Referral.sol +0 -6
- package/contracts/type/Seconds.sol +0 -4
- package/contracts/type/String.sol +0 -30
- package/contracts/type/Timestamp.sol +1 -10
- package/contracts/type/Version.sol +15 -16
- package/contracts/upgradeability/{IVersionable.sol → IUpgradeable.sol} +13 -19
- package/contracts/upgradeability/ProxyManager.sol +46 -50
- package/contracts/upgradeability/{Versionable.sol → Upgradeable.sol} +25 -14
- package/package.json +1 -2
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +0 -4
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +0 -500
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +0 -4
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +0 -229
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +0 -4
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +0 -1198
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +0 -849
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +0 -4
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +0 -1466
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +0 -4
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +0 -844
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +0 -4
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +0 -2324
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +0 -4
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +0 -844
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +0 -4
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +0 -586
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +0 -4
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +0 -901
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +0 -4
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +0 -33
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/examples/flight/FlightLib.sol +0 -311
- package/contracts/examples/flight/FlightMessageVerifier.sol +0 -128
- package/contracts/examples/flight/FlightOracle.sol +0 -167
- package/contracts/examples/flight/FlightOracleAuthorization.sol +0 -34
- package/contracts/examples/flight/FlightPool.sol +0 -89
- package/contracts/examples/flight/FlightPoolAuthorization.sol +0 -37
- package/contracts/examples/flight/FlightProduct.sol +0 -626
- package/contracts/examples/flight/FlightProductAuthorization.sol +0 -44
- package/contracts/examples/flight/FlightUSD.sol +0 -28
- package/contracts/examples/flight/originalV1.sol +0 -396
- package/contracts/shared/EcdsaChecker.sol +0 -5
- package/contracts/type/RequestIdSet.sol +0 -62
@@ -1,16 +1,18 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IComponent} from "../../contracts/shared/IComponent.sol";
|
5
4
|
import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
|
6
5
|
import {IInstance} from "../instance/IInstance.sol";
|
6
|
+
import {IInstanceLinkedComponent} from "../../contracts/shared/IInstanceLinkedComponent.sol";
|
7
7
|
import {IPoolComponent} from "../../contracts/pool/IPoolComponent.sol";
|
8
8
|
import {IProductComponent} from "../../contracts/product/IProductComponent.sol";
|
9
9
|
import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
|
10
10
|
import {IRegistry} from "./IRegistry.sol";
|
11
11
|
import {IRegistryService} from "./IRegistryService.sol";
|
12
|
+
import {IStaking} from "../../contracts/staking/IStaking.sol";
|
12
13
|
|
13
|
-
import {
|
14
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
15
|
+
import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, POLICY, BUNDLE, STAKE, STAKING} from "../../contracts/type/ObjectType.sol";
|
14
16
|
import {NftId, NftIdLib} from "../../contracts/type/NftId.sol";
|
15
17
|
import {Service} from "../shared/Service.sol";
|
16
18
|
|
@@ -21,8 +23,6 @@ contract RegistryService is
|
|
21
23
|
// TODO update to real hash when registry is stable
|
22
24
|
bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
|
23
25
|
|
24
|
-
// from Versionable
|
25
|
-
|
26
26
|
/// @dev top level initializer
|
27
27
|
function _initialize(
|
28
28
|
address owner,
|
@@ -41,8 +41,8 @@ contract RegistryService is
|
|
41
41
|
_registerInterface(type(IRegistryService).interfaceId);
|
42
42
|
}
|
43
43
|
|
44
|
-
|
45
|
-
function registerStaking(IRegisterable staking, address
|
44
|
+
// TODO register have no combos with STAKING; decide on parentNftId arg
|
45
|
+
function registerStaking(IRegisterable staking, address expectedOwner)
|
46
46
|
external
|
47
47
|
virtual
|
48
48
|
restricted()
|
@@ -50,12 +50,16 @@ contract RegistryService is
|
|
50
50
|
IRegistry.ObjectInfo memory info
|
51
51
|
)
|
52
52
|
{
|
53
|
-
|
54
|
-
|
53
|
+
_checkInterface(staking, type(IStaking).interfaceId);
|
54
|
+
|
55
|
+
address owner;
|
56
|
+
bytes memory data;
|
57
|
+
(info, owner, data) = _getAndVerifyContractInfo(staking, NftIdLib.zero(), STAKING(), expectedOwner);
|
58
|
+
info.nftId = getRegistry().register(info, owner, data);
|
55
59
|
}
|
56
60
|
|
57
61
|
|
58
|
-
function registerInstance(IRegisterable instance, address
|
62
|
+
function registerInstance(IRegisterable instance, address expectedOwner)
|
59
63
|
external
|
60
64
|
virtual
|
61
65
|
restricted()
|
@@ -63,19 +67,21 @@ contract RegistryService is
|
|
63
67
|
IRegistry.ObjectInfo memory info
|
64
68
|
)
|
65
69
|
{
|
66
|
-
|
67
|
-
revert ErrorRegistryServiceNotInstance(address(instance));
|
68
|
-
}
|
70
|
+
_checkInterface(instance, type(IInstance).interfaceId);
|
69
71
|
|
70
|
-
|
71
|
-
|
72
|
+
address owner;
|
73
|
+
bytes memory data;
|
74
|
+
(info, owner, data) = _getAndVerifyContractInfo(instance, getRegistry().getNftId(), INSTANCE(), expectedOwner);
|
75
|
+
info.nftId = getRegistry().register(info, owner, data);
|
72
76
|
|
73
77
|
instance.linkToRegisteredNftId(); // asume safe
|
74
78
|
}
|
75
79
|
|
76
|
-
function
|
77
|
-
|
78
|
-
|
80
|
+
function registerComponent(
|
81
|
+
IRegisterable component,
|
82
|
+
NftId expectedParentNftId,
|
83
|
+
ObjectType expectedType,
|
84
|
+
address expectedOwner
|
79
85
|
)
|
80
86
|
external
|
81
87
|
virtual
|
@@ -84,83 +90,75 @@ contract RegistryService is
|
|
84
90
|
IRegistry.ObjectInfo memory info
|
85
91
|
)
|
86
92
|
{
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
+
_checkInterface(
|
94
|
+
component,
|
95
|
+
type(IInstanceLinkedComponent).interfaceId);
|
96
|
+
|
97
|
+
address owner;
|
98
|
+
bytes memory data;
|
99
|
+
(info, owner, data) = _getAndVerifyContractInfo(component, expectedParentNftId, expectedType, expectedOwner);
|
100
|
+
info.nftId = getRegistry().register(info, owner, data);
|
93
101
|
}
|
94
102
|
|
95
|
-
function
|
96
|
-
IComponent component,
|
97
|
-
ObjectType objectType,
|
98
|
-
address initialOwner
|
99
|
-
)
|
100
|
-
external
|
101
|
-
virtual
|
102
|
-
restricted()
|
103
|
-
returns(
|
104
|
-
IRegistry.ObjectInfo memory info
|
105
|
-
)
|
106
|
-
{
|
107
|
-
// CAN revert if no ERC165 support -> will revert with empty message
|
108
|
-
if(!component.supportsInterface(type(IComponent).interfaceId)) {
|
109
|
-
revert ErrorRegistryServiceNotComponent(address(component));
|
110
|
-
}
|
111
|
-
|
112
|
-
if (!(objectType == DISTRIBUTION() || objectType == ORACLE() || objectType == POOL())) {
|
113
|
-
revert ErrorRegistryServiceNotProductLinkedComponent(address(component));
|
114
|
-
}
|
115
|
-
|
116
|
-
info = _getAndVerifyContractInfo(component, objectType, initialOwner);
|
117
|
-
info.nftId = getRegistry().register(info);
|
118
|
-
}
|
119
|
-
|
120
|
-
function registerDistributor(IRegistry.ObjectInfo memory info)
|
103
|
+
function registerDistributor(IRegistry.ObjectInfo memory info, address owner, bytes memory data)
|
121
104
|
external
|
122
105
|
virtual
|
123
106
|
restricted()
|
124
107
|
returns(NftId nftId)
|
125
108
|
{
|
126
|
-
_verifyObjectInfo(info, DISTRIBUTOR());
|
127
|
-
nftId = getRegistry().register(info);
|
109
|
+
_verifyObjectInfo(info, owner, DISTRIBUTOR());
|
110
|
+
nftId = getRegistry().register(info, owner, data);
|
128
111
|
}
|
129
112
|
|
130
|
-
function registerPolicy(IRegistry.ObjectInfo memory info)
|
113
|
+
function registerPolicy(IRegistry.ObjectInfo memory info, address owner, bytes memory data)
|
131
114
|
external
|
132
115
|
virtual
|
133
116
|
restricted()
|
134
117
|
returns(NftId nftId)
|
135
118
|
{
|
136
|
-
_verifyObjectInfo(info, POLICY());
|
137
|
-
nftId = getRegistry().register(info);
|
119
|
+
_verifyObjectInfo(info, owner, POLICY());
|
120
|
+
nftId = getRegistry().register(info, owner, data);
|
138
121
|
}
|
139
122
|
|
140
|
-
function registerBundle(IRegistry.ObjectInfo memory info)
|
123
|
+
function registerBundle(IRegistry.ObjectInfo memory info, address owner, bytes memory data)
|
141
124
|
external
|
142
125
|
virtual
|
143
126
|
restricted()
|
144
127
|
returns(NftId nftId)
|
145
128
|
{
|
146
|
-
_verifyObjectInfo(info, BUNDLE());
|
147
|
-
nftId = getRegistry().register(info);
|
129
|
+
_verifyObjectInfo(info, owner, BUNDLE());
|
130
|
+
nftId = getRegistry().register(info, owner, data);
|
148
131
|
}
|
149
132
|
|
150
|
-
function registerStake(IRegistry.ObjectInfo memory info)
|
133
|
+
function registerStake(IRegistry.ObjectInfo memory info, address owner, bytes memory data)
|
151
134
|
external
|
152
135
|
virtual
|
153
136
|
restricted()
|
154
137
|
returns(NftId nftId)
|
155
138
|
{
|
156
|
-
_verifyObjectInfo(info, STAKE());
|
157
|
-
nftId = getRegistry().register(info);
|
139
|
+
_verifyObjectInfo(info, owner, STAKE());
|
140
|
+
nftId = getRegistry().register(info, owner, data);
|
158
141
|
}
|
159
142
|
|
160
143
|
// Internal
|
161
144
|
|
145
|
+
function _checkInterface(IRegisterable registerable, bytes4 interfaceId) internal view
|
146
|
+
{
|
147
|
+
if(!ContractLib.supportsInterface(address(registerable), interfaceId)) {
|
148
|
+
revert ErrorRegistryServiceInterfaceNotSupported(address(registerable), interfaceId);
|
149
|
+
}
|
150
|
+
}
|
151
|
+
|
152
|
+
/// @dev Based on the provided component address, parent, type and owner this function reverts iff:
|
153
|
+
/// - the component address does not match with address stored in component's initial info
|
154
|
+
/// - the component type does not match with the required type
|
155
|
+
/// - the component parent does not match with the required parent (when required parent is not zero)
|
156
|
+
/// - the component initialOwner does not match with the required owner (when required owner is not zero)
|
157
|
+
/// - the component initialOwner is zero (redundant, consider deleting)
|
158
|
+
/// - the component initialOwner is already registered
|
162
159
|
function _getAndVerifyContractInfo(
|
163
160
|
IRegisterable registerable,
|
161
|
+
NftId expectedParent,
|
164
162
|
ObjectType expectedType, // assume can be valid only
|
165
163
|
address expectedOwner // assume can be 0 when given by other service
|
166
164
|
)
|
@@ -168,40 +166,62 @@ contract RegistryService is
|
|
168
166
|
virtual
|
169
167
|
view
|
170
168
|
returns(
|
171
|
-
IRegistry.ObjectInfo memory info
|
169
|
+
IRegistry.ObjectInfo memory info,
|
170
|
+
address initialOwner,
|
171
|
+
bytes memory data
|
172
172
|
)
|
173
173
|
{
|
174
174
|
info = registerable.getInitialInfo();
|
175
|
+
data = registerable.getInitialData();
|
176
|
+
initialOwner = registerable.getOwner();
|
175
177
|
|
176
178
|
if(info.objectAddress != address(registerable)) {
|
177
179
|
revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
|
178
180
|
}
|
179
181
|
|
180
|
-
if(
|
181
|
-
|
182
|
+
if(expectedType != COMPONENT()) {
|
183
|
+
// exact match
|
184
|
+
if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
|
185
|
+
revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
|
186
|
+
}
|
187
|
+
} else {
|
188
|
+
// match any component except product
|
189
|
+
if(!(info.objectType == DISTRIBUTION() || info.objectType == ORACLE() || info.objectType == POOL())) {
|
190
|
+
revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
|
191
|
+
}
|
182
192
|
}
|
183
193
|
|
184
|
-
|
194
|
+
if(expectedParent.gtz()) {
|
195
|
+
// exact parent is important
|
196
|
+
if(info.parentNftId != expectedParent) {
|
197
|
+
revert ErrorRegistryServiceRegisterableParentInvalid(registerable, expectedParent, info.parentNftId);
|
198
|
+
}
|
199
|
+
}
|
185
200
|
|
186
|
-
if(
|
187
|
-
|
201
|
+
if(expectedOwner > address(0)) {
|
202
|
+
// exact owner is important
|
203
|
+
if(initialOwner != expectedOwner) { // registerable owner protection
|
204
|
+
revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, initialOwner);
|
205
|
+
}
|
188
206
|
}
|
189
207
|
|
190
|
-
if(
|
208
|
+
if(initialOwner == address(registerable)) {
|
191
209
|
revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
|
192
210
|
}
|
193
211
|
|
194
|
-
|
212
|
+
// redundant, checked by chainNft
|
213
|
+
if(initialOwner == address(0)) {
|
195
214
|
revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
|
196
215
|
}
|
197
216
|
|
198
|
-
if(getRegistry().isRegistered(
|
199
|
-
revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable,
|
217
|
+
if(getRegistry().isRegistered(initialOwner)) {
|
218
|
+
revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, initialOwner);
|
200
219
|
}
|
201
220
|
}
|
202
221
|
|
203
222
|
function _verifyObjectInfo(
|
204
223
|
IRegistry.ObjectInfo memory info,
|
224
|
+
address initialOwner,
|
205
225
|
ObjectType expectedType
|
206
226
|
)
|
207
227
|
internal
|
@@ -216,20 +236,18 @@ contract RegistryService is
|
|
216
236
|
revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
|
217
237
|
}
|
218
238
|
|
219
|
-
|
220
|
-
|
221
|
-
if(owner == address(0)) {
|
239
|
+
if(initialOwner == address(0)) {
|
222
240
|
revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
|
223
241
|
}
|
224
242
|
|
225
|
-
if(
|
226
|
-
revert ErrorRegistryServiceInvalidInitialOwner(
|
243
|
+
if(initialOwner == msg.sender) {
|
244
|
+
revert ErrorRegistryServiceInvalidInitialOwner(initialOwner);
|
227
245
|
}
|
228
246
|
|
229
|
-
if(getRegistry().isRegistered(
|
230
|
-
ObjectType ownerType = getRegistry().getObjectInfo(
|
247
|
+
if(getRegistry().isRegistered(initialOwner)) {
|
248
|
+
ObjectType ownerType = getRegistry().getObjectInfo(initialOwner).objectType;
|
231
249
|
if(ownerType == REGISTRY() || ownerType == STAKING() || ownerType == SERVICE() || ownerType == INSTANCE()) {
|
232
|
-
revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType,
|
250
|
+
revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, initialOwner);
|
233
251
|
}
|
234
252
|
}
|
235
253
|
}
|
@@ -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 {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
|
5
5
|
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {RegistryService} from "./RegistryService.sol";
|
7
7
|
|
@@ -32,13 +32,13 @@ contract RegistryServiceManager is
|
|
32
32
|
|
33
33
|
RegistryService srv = new RegistryService{ salt: salt }();
|
34
34
|
bytes memory data = abi.encode(authority, registry);
|
35
|
-
|
35
|
+
IUpgradeable upgradeable = initialize(
|
36
36
|
registry,
|
37
37
|
address(srv),
|
38
38
|
data,
|
39
39
|
salt);
|
40
40
|
|
41
|
-
_registryService = RegistryService(address(
|
41
|
+
_registryService = RegistryService(address(upgradeable));
|
42
42
|
}
|
43
43
|
|
44
44
|
//--- view functions ----------------------------------------------------//
|
@@ -10,9 +10,10 @@ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
|
10
10
|
import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
|
11
11
|
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
12
12
|
import {ObjectType, ObjectTypeLib, RELEASE} from "../type/ObjectType.sol";
|
13
|
+
import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
|
13
14
|
import {RoleId, ADMIN_ROLE, RELEASE_REGISTRY_ROLE} from "../type/RoleId.sol";
|
14
15
|
import {Str} from "../type/String.sol";
|
15
|
-
import {VersionPart} from "../type/Version.sol";
|
16
|
+
import {VersionPartLib, VersionPart} from "../type/Version.sol";
|
16
17
|
|
17
18
|
|
18
19
|
/// @dev The ReleaseAdmin contract implements the central authorization for the services of a specific release.
|
@@ -46,33 +47,35 @@ contract ReleaseAdmin is
|
|
46
47
|
}
|
47
48
|
|
48
49
|
|
49
|
-
|
50
|
+
/// @dev Only used for master release admin
|
50
51
|
constructor(address accessManager) {
|
51
52
|
initialize(
|
52
53
|
accessManager,
|
53
|
-
"MasterReleaseAdmin"
|
54
|
+
"MasterReleaseAdmin",
|
55
|
+
GIF_INITIAL_RELEASE());
|
54
56
|
}
|
55
57
|
|
56
58
|
|
57
59
|
function completeSetup(
|
58
60
|
address registry,
|
59
61
|
address authorization,
|
60
|
-
VersionPart release,
|
61
62
|
address releaseRegistry
|
62
63
|
)
|
63
64
|
external
|
64
|
-
|
65
|
+
//onlyDeployer()
|
65
66
|
{
|
66
67
|
// checks
|
67
68
|
AccessAdminLib.checkRegistry(registry);
|
68
69
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
70
|
+
// effects
|
71
|
+
//AccessManagerCloneable(
|
72
|
+
// authority()).completeSetup(
|
73
|
+
// registry);
|
74
|
+
|
75
|
+
__RegistryLinked_init(registry);
|
73
76
|
|
74
77
|
IServiceAuthorization serviceAuthorization = IServiceAuthorization(authorization);
|
75
|
-
_checkAuthorization(address(serviceAuthorization), RELEASE(),
|
78
|
+
_checkAuthorization(address(serviceAuthorization), RELEASE(), getRelease(), true, true);
|
76
79
|
_serviceAuthorization = serviceAuthorization;
|
77
80
|
|
78
81
|
// link nft ownability to registry
|
@@ -173,8 +176,7 @@ contract ReleaseAdmin is
|
|
173
176
|
//--- private initialization functions -------------------------------------------//
|
174
177
|
|
175
178
|
function _setupReleaseRegistry(address releaseRegistry)
|
176
|
-
private
|
177
|
-
onlyInitializing()
|
179
|
+
private
|
178
180
|
{
|
179
181
|
|
180
182
|
_createRole(
|
@@ -5,7 +5,6 @@ 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
10
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
@@ -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";
|
@@ -36,8 +35,6 @@ contract ReleaseRegistry is
|
|
36
35
|
ReleaseLifecycle,
|
37
36
|
IRegistryLinked
|
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);
|
@@ -59,14 +56,14 @@ contract ReleaseRegistry is
|
|
59
56
|
|
60
57
|
// _verifyService
|
61
58
|
error ErrorReleaseRegistryNotService(address notService);
|
62
|
-
error ErrorReleaseRegistryServiceAuthorityMismatch(IService service, address
|
63
|
-
error ErrorReleaseRegistryServiceVersionMismatch(IService service, VersionPart serviceVersion, VersionPart releaseVersion);
|
59
|
+
error ErrorReleaseRegistryServiceAuthorityMismatch(IService service, address expectedAuthority, address actualAuthority);
|
64
60
|
error ErrorReleaseRegistryServiceDomainMismatch(IService service, ObjectType expectedDomain, ObjectType actualDomain);
|
65
61
|
|
66
|
-
//
|
62
|
+
// _getAndVerifyServiceInfo
|
67
63
|
error ErrorReleaseRegistryServiceInfoAddressInvalid(IService service, address expected);
|
68
64
|
error ErrorReleaseRegistryServiceInfoInterceptorInvalid(IService service, bool isInterceptor);
|
69
65
|
error ErrorReleaseRegistryServiceInfoTypeInvalid(IService service, ObjectType expected, ObjectType found);
|
66
|
+
error ErrorReleaseRegistryServiceInfoReleaseMismatch(IService service, VersionPart expected, VersionPart actual);
|
70
67
|
error ErrorReleaseRegistryServiceInfoOwnerInvalid(IService service, address expected, address found);
|
71
68
|
error ErrorReleaseRegistryServiceSelfRegistration(IService service);
|
72
69
|
error ErrorReleaseRegistryServiceOwnerRegistered(IService service, address owner);
|
@@ -100,7 +97,7 @@ contract ReleaseRegistry is
|
|
100
97
|
_masterReleaseAdmin = new ReleaseAdmin(
|
101
98
|
_cloneNewAccessManager());
|
102
99
|
|
103
|
-
_next = VersionPartLib.toVersionPart(
|
100
|
+
_next = VersionPartLib.toVersionPart(GIF_INITIAL_RELEASE().toInt() - 1);
|
104
101
|
}
|
105
102
|
|
106
103
|
/// @dev Initiates the creation of a new GIF release by the GIF admin.
|
@@ -184,24 +181,21 @@ contract ReleaseRegistry is
|
|
184
181
|
address releaseAuthority = ReleaseAdmin(_releaseInfo[releaseVersion].releaseAdmin).authority();
|
185
182
|
IServiceAuthorization releaseAuthz = _releaseInfo[releaseVersion].auth;
|
186
183
|
ObjectType expectedDomain = releaseAuthz.getServiceDomain(_registeredServices);
|
184
|
+
address expectedOwner = msg.sender;
|
187
185
|
|
188
186
|
// service can work with release registry and release version
|
189
187
|
(
|
190
188
|
IRegistry.ObjectInfo memory info,
|
191
|
-
|
192
|
-
|
193
|
-
//,string memory serviceName
|
189
|
+
bytes memory data,
|
190
|
+
ObjectType serviceDomain
|
194
191
|
) = _verifyService(
|
195
192
|
service,
|
193
|
+
expectedOwner,
|
196
194
|
releaseAuthority,
|
197
195
|
releaseVersion,
|
198
196
|
expectedDomain
|
199
197
|
);
|
200
198
|
|
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
199
|
_registeredServices++; // TODO use releaseInfo.someArray.length instead of _registeredServices
|
206
200
|
|
207
201
|
// release fully deployed
|
@@ -222,7 +216,7 @@ contract ReleaseRegistry is
|
|
222
216
|
releaseAdmin.setReleaseLocked(true);
|
223
217
|
|
224
218
|
// register service with registry
|
225
|
-
nftId = _registry.registerService(info,
|
219
|
+
nftId = _registry.registerService(info, expectedOwner, serviceDomain, data);
|
226
220
|
service.linkToRegisteredNftId();
|
227
221
|
}
|
228
222
|
|
@@ -389,12 +383,12 @@ contract ReleaseRegistry is
|
|
389
383
|
|
390
384
|
clonedAdmin.initialize(
|
391
385
|
address(_cloneNewAccessManager()),
|
392
|
-
releaseAdminName
|
386
|
+
releaseAdminName,
|
387
|
+
release);
|
393
388
|
|
394
389
|
clonedAdmin.completeSetup(
|
395
390
|
address(_registry),
|
396
391
|
address(serviceAuthorization),
|
397
|
-
release,
|
398
392
|
address(this)); // release registry (this contract)
|
399
393
|
|
400
394
|
// lock release (remains locked until activation)
|
@@ -439,62 +433,65 @@ contract ReleaseRegistry is
|
|
439
433
|
|
440
434
|
// TODO get service names
|
441
435
|
function _verifyService(
|
442
|
-
IService service,
|
436
|
+
IService service,
|
437
|
+
address expectedOwner,
|
443
438
|
address expectedAuthority,
|
444
|
-
VersionPart
|
439
|
+
VersionPart expectedRelease,
|
445
440
|
ObjectType expectedDomain
|
446
441
|
)
|
447
442
|
internal
|
448
443
|
view
|
449
444
|
returns(
|
450
|
-
IRegistry.ObjectInfo memory
|
451
|
-
|
452
|
-
|
445
|
+
IRegistry.ObjectInfo memory info,
|
446
|
+
bytes memory data,
|
447
|
+
ObjectType domain
|
453
448
|
)
|
454
449
|
{
|
455
450
|
if(!service.supportsInterface(type(IService).interfaceId)) {
|
456
451
|
revert ErrorReleaseRegistryNotService(address(service));
|
457
452
|
}
|
458
453
|
|
459
|
-
address
|
460
|
-
|
461
|
-
serviceVersion = service.getVersion().toMajorPart();
|
462
|
-
serviceDomain = service.getDomain();// checked in registry
|
463
|
-
serviceInfo = service.getInitialInfo();
|
454
|
+
address authority = service.authority();
|
455
|
+
domain = service.getDomain();// checked in registry
|
464
456
|
|
465
|
-
|
457
|
+
(info,, data) = _getAndVerifyServiceInfo(
|
458
|
+
service,
|
459
|
+
expectedOwner,
|
460
|
+
expectedRelease);
|
466
461
|
|
467
|
-
if(
|
462
|
+
if(authority != expectedAuthority) {
|
468
463
|
revert ErrorReleaseRegistryServiceAuthorityMismatch(
|
469
464
|
service,
|
470
|
-
|
471
|
-
|
465
|
+
expectedAuthority,
|
466
|
+
authority);
|
472
467
|
}
|
473
468
|
|
474
|
-
if(
|
475
|
-
revert ErrorReleaseRegistryServiceVersionMismatch(
|
476
|
-
service,
|
477
|
-
serviceVersion,
|
478
|
-
expectedVersion);
|
479
|
-
}
|
480
|
-
|
481
|
-
if(serviceDomain != expectedDomain) {
|
469
|
+
if(domain != expectedDomain) {
|
482
470
|
revert ErrorReleaseRegistryServiceDomainMismatch(
|
483
471
|
service,
|
484
472
|
expectedDomain,
|
485
|
-
|
473
|
+
domain);
|
486
474
|
}
|
487
475
|
}
|
488
476
|
|
489
477
|
|
490
|
-
function
|
478
|
+
function _getAndVerifyServiceInfo(
|
491
479
|
IService service,
|
492
|
-
|
493
|
-
|
480
|
+
address expectedOwner, // assume always valid, can not be 0
|
481
|
+
VersionPart expectedRelease
|
494
482
|
)
|
495
483
|
internal
|
496
484
|
view
|
485
|
+
returns (
|
486
|
+
IRegistry.ObjectInfo memory info,
|
487
|
+
address initialOwner,
|
488
|
+
bytes memory data
|
489
|
+
)
|
497
490
|
{
|
491
|
+
info = service.getInitialInfo();
|
492
|
+
initialOwner = service.getOwner();
|
493
|
+
data = service.getInitialData();
|
494
|
+
|
498
495
|
if(info.objectAddress != address(service)) {
|
499
496
|
revert ErrorReleaseRegistryServiceInfoAddressInvalid(service, info.objectAddress);
|
500
497
|
}
|
@@ -507,18 +504,23 @@ contract ReleaseRegistry is
|
|
507
504
|
revert ErrorReleaseRegistryServiceInfoTypeInvalid(service, SERVICE(), info.objectType);
|
508
505
|
}
|
509
506
|
|
510
|
-
|
507
|
+
if(info.release != expectedRelease) {
|
508
|
+
revert ErrorReleaseRegistryServiceInfoReleaseMismatch(
|
509
|
+
service,
|
510
|
+
expectedRelease,
|
511
|
+
info.release);
|
512
|
+
}
|
511
513
|
|
512
|
-
if(
|
513
|
-
revert ErrorReleaseRegistryServiceInfoOwnerInvalid(service, expectedOwner,
|
514
|
+
if(initialOwner != expectedOwner) { // registerable owner protection
|
515
|
+
revert ErrorReleaseRegistryServiceInfoOwnerInvalid(service, expectedOwner, initialOwner);
|
514
516
|
}
|
515
517
|
|
516
|
-
if(
|
518
|
+
if(initialOwner == address(service)) {
|
517
519
|
revert ErrorReleaseRegistryServiceSelfRegistration(service);
|
518
520
|
}
|
519
521
|
|
520
|
-
if(_registry.isRegistered(
|
521
|
-
revert ErrorReleaseRegistryServiceOwnerRegistered(service,
|
522
|
+
if(_registry.isRegistered(initialOwner)) {
|
523
|
+
revert ErrorReleaseRegistryServiceOwnerRegistered(service, initialOwner);
|
522
524
|
}
|
523
525
|
}
|
524
526
|
}
|
@@ -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");
|