@etherisc/gif-next 3.0.0-a511887-523 → 3.0.0-a73fc6f-862
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 +10 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +64 -193
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +62 -157
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +33 -126
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +63 -130
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +145 -100
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +84 -20
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +55 -31
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +3 -45
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +42 -18
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +67 -158
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +65 -41
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +49 -112
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +197 -227
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +93 -184
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +48 -124
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +104 -106
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +76 -187
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +122 -233
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1353 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2289 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +74 -193
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +73 -192
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +81 -200
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +81 -200
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
- 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/IBaseStore.sol/IBaseStore.json +50 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +18 -118
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +92 -118
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +34 -181
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +149 -207
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +236 -75
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +117 -167
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +59 -148
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +82 -32
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +68 -18
- 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/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +67 -158
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +52 -128
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +26 -113
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +53 -116
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +69 -184
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +68 -159
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +56 -119
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +96 -199
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +80 -171
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +31 -106
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +55 -131
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +38 -113
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +56 -119
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +20 -25
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +107 -210
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +81 -172
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +50 -165
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +62 -153
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +49 -112
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +96 -211
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +85 -176
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +19 -106
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +19 -106
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +38 -113
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +26 -113
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +48 -124
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +19 -106
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +101 -204
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +78 -169
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +71 -186
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +69 -160
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +49 -112
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +46 -161
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +60 -151
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +62 -155
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +185 -219
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +102 -314
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +145 -207
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -57
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +213 -302
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +55 -162
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +150 -208
- 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 +146 -181
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -46
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +31 -124
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +323 -198
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +91 -166
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +44 -24
- 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/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +633 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +30 -136
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +234 -113
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +48 -124
- 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 +2 -44
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +2 -44
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +17 -117
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +2 -44
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +19 -106
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +49 -112
- 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 +4 -46
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +4 -46
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +16 -116
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +4 -46
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +18 -105
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +29 -42
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +17 -30
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +64 -132
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +31 -106
- 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 +111 -195
- 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 +71 -156
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -46
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +54 -157
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +58 -149
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +200 -274
- 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/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -2
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- 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/Fee.sol/FeeLib.json +2 -2
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
- 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 +23 -4
- 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 +4 -0
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
- 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 +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +40 -109
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
- package/contracts/accounting/AccountingService.sol +18 -30
- package/contracts/accounting/AccountingServiceManager.sol +3 -3
- package/contracts/accounting/IAccountingService.sol +7 -8
- package/contracts/authorization/AccessAdmin.sol +22 -44
- package/contracts/authorization/AccessAdminLib.sol +20 -3
- package/contracts/authorization/AccessManagerCloneable.sol +51 -24
- package/contracts/authorization/Authorization.sol +2 -2
- package/contracts/authorization/IAccessAdmin.sol +3 -2
- package/contracts/authorization/IServiceAuthorization.sol +1 -1
- package/contracts/authorization/ServiceAuthorization.sol +4 -4
- package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
- package/contracts/distribution/DistributionService.sol +13 -14
- package/contracts/distribution/DistributionServiceManager.sol +3 -3
- package/contracts/distribution/IDistributionService.sol +4 -3
- package/contracts/examples/flight/FlightLib.sol +337 -0
- package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
- package/contracts/examples/flight/FlightNft.sol +234 -0
- package/contracts/examples/flight/FlightOracle.sol +226 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +687 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
- package/contracts/examples/flight/FlightProductManager.sol +49 -0
- package/contracts/examples/flight/FlightUSD.sol +28 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/instance/BaseStore.sol +4 -0
- package/contracts/instance/IBaseStore.sol +8 -0
- package/contracts/instance/IInstance.sol +1 -1
- package/contracts/instance/IInstanceService.sol +2 -0
- package/contracts/instance/Instance.sol +6 -3
- package/contracts/instance/InstanceAdmin.sol +14 -10
- package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
- package/contracts/instance/InstanceReader.sol +41 -7
- package/contracts/instance/InstanceService.sol +8 -4
- package/contracts/instance/InstanceServiceManager.sol +3 -3
- package/contracts/oracle/BasicOracle.sol +1 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
- package/contracts/oracle/IOracleService.sol +12 -12
- package/contracts/oracle/Oracle.sol +4 -5
- package/contracts/oracle/OracleService.sol +1 -1
- package/contracts/oracle/OracleServiceManager.sol +3 -3
- package/contracts/pool/BasicPoolAuthorization.sol +4 -5
- package/contracts/pool/BundleService.sol +6 -6
- package/contracts/pool/BundleServiceManager.sol +3 -3
- package/contracts/pool/IBundleService.sol +1 -1
- package/contracts/pool/IPoolService.sol +1 -1
- package/contracts/pool/PoolLib.sol +4 -7
- package/contracts/pool/PoolService.sol +4 -4
- package/contracts/pool/PoolServiceManager.sol +3 -3
- package/contracts/product/ApplicationService.sol +5 -4
- 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/IPolicyService.sol +1 -1
- package/contracts/product/PolicyService.sol +2 -2
- package/contracts/product/PolicyServiceLib.sol +5 -3
- 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/ChainNft.sol +1 -1
- package/contracts/registry/IRegistry.sol +14 -20
- package/contracts/registry/IRegistryService.sol +14 -10
- package/contracts/registry/IRelease.sol +3 -0
- package/contracts/registry/Registry.sol +78 -124
- package/contracts/registry/RegistryAdmin.sol +23 -11
- package/contracts/registry/RegistryAuthorization.sol +1 -2
- package/contracts/registry/RegistryService.sol +78 -96
- package/contracts/registry/RegistryServiceManager.sol +3 -3
- package/contracts/registry/ReleaseAdmin.sol +19 -14
- package/contracts/registry/ReleaseRegistry.sol +50 -52
- package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
- package/contracts/shared/Component.sol +17 -24
- package/contracts/shared/ComponentService.sol +106 -28
- package/contracts/shared/ComponentServiceManager.sol +3 -3
- package/contracts/shared/EcdsaChecker.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponent.sol +3 -5
- package/contracts/shared/IComponentService.sol +15 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +9 -9
- package/contracts/shared/IRegisterable.sol +3 -8
- package/contracts/shared/IRegistryLinked.sol +1 -3
- package/contracts/shared/IService.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +126 -40
- package/contracts/shared/NftOwnable.sol +14 -1
- package/contracts/shared/PolicyHolder.sol +2 -2
- package/contracts/shared/Registerable.sol +18 -36
- package/contracts/shared/RegistryLinked.sol +4 -11
- package/contracts/shared/Service.sol +5 -6
- package/contracts/shared/TokenHandler.sol +1 -4
- package/contracts/staking/IStaking.sol +4 -2
- package/contracts/staking/IStakingService.sol +1 -1
- package/contracts/staking/Staking.sol +18 -7
- package/contracts/staking/StakingManager.sol +3 -3
- package/contracts/staking/StakingService.sol +8 -11
- package/contracts/staking/StakingServiceManager.sol +4 -3
- package/contracts/staking/StakingStore.sol +8 -10
- package/contracts/type/ObjectType.sol +2 -31
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/Seconds.sol +4 -0
- package/contracts/type/String.sol +30 -0
- package/contracts/type/Timestamp.sol +10 -1
- package/contracts/type/Version.sol +16 -15
- package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
- package/contracts/upgradeability/ProxyManager.sol +50 -46
- package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
- package/package.json +2 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
- package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
- package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
- package/contracts/shared/IVersionable.sol +0 -19
- package/contracts/shared/Versionable.sol +0 -47
@@ -1,18 +1,16 @@
|
|
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";
|
4
5
|
import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
|
5
6
|
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";
|
13
12
|
|
14
|
-
import {
|
15
|
-
import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, POLICY, BUNDLE, STAKE, STAKING} from "../../contracts/type/ObjectType.sol";
|
13
|
+
import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE} from "../../contracts/type/ObjectType.sol";
|
16
14
|
import {NftId, NftIdLib} from "../../contracts/type/NftId.sol";
|
17
15
|
import {Service} from "../shared/Service.sol";
|
18
16
|
|
@@ -23,6 +21,8 @@ contract RegistryService is
|
|
23
21
|
// TODO update to real hash when registry is stable
|
24
22
|
bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
|
25
23
|
|
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
|
+
|
45
|
+
function registerStaking(IRegisterable staking, address owner)
|
46
46
|
external
|
47
47
|
virtual
|
48
48
|
restricted()
|
@@ -50,16 +50,12 @@ contract RegistryService is
|
|
50
50
|
IRegistry.ObjectInfo memory info
|
51
51
|
)
|
52
52
|
{
|
53
|
-
|
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);
|
53
|
+
info = _getAndVerifyContractInfo(staking, STAKING(), owner);
|
54
|
+
info.nftId = getRegistry().register(info);
|
59
55
|
}
|
60
56
|
|
61
57
|
|
62
|
-
function registerInstance(IRegisterable instance, address
|
58
|
+
function registerInstance(IRegisterable instance, address owner)
|
63
59
|
external
|
64
60
|
virtual
|
65
61
|
restricted()
|
@@ -67,21 +63,19 @@ contract RegistryService is
|
|
67
63
|
IRegistry.ObjectInfo memory info
|
68
64
|
)
|
69
65
|
{
|
70
|
-
|
66
|
+
if(!instance.supportsInterface(type(IInstance).interfaceId)) {
|
67
|
+
revert ErrorRegistryServiceNotInstance(address(instance));
|
68
|
+
}
|
71
69
|
|
72
|
-
|
73
|
-
|
74
|
-
(info, owner, data) = _getAndVerifyContractInfo(instance, getRegistry().getNftId(), INSTANCE(), expectedOwner);
|
75
|
-
info.nftId = getRegistry().register(info, owner, data);
|
70
|
+
info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
|
71
|
+
info.nftId = getRegistry().register(info);
|
76
72
|
|
77
73
|
instance.linkToRegisteredNftId(); // asume safe
|
78
74
|
}
|
79
75
|
|
80
|
-
function
|
81
|
-
|
82
|
-
|
83
|
-
ObjectType expectedType,
|
84
|
-
address expectedOwner
|
76
|
+
function registerProduct(
|
77
|
+
IComponent product,
|
78
|
+
address initialOwner
|
85
79
|
)
|
86
80
|
external
|
87
81
|
virtual
|
@@ -90,75 +84,83 @@ contract RegistryService is
|
|
90
84
|
IRegistry.ObjectInfo memory info
|
91
85
|
)
|
92
86
|
{
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
(info, owner, data) = _getAndVerifyContractInfo(component, expectedParentNftId, expectedType, expectedOwner);
|
100
|
-
info.nftId = getRegistry().register(info, owner, data);
|
87
|
+
if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
|
88
|
+
revert ErrorRegistryServiceNotProduct(address(product));
|
89
|
+
}
|
90
|
+
|
91
|
+
info = _getAndVerifyContractInfo(product, PRODUCT(), initialOwner);
|
92
|
+
info.nftId = getRegistry().register(info);
|
101
93
|
}
|
102
94
|
|
103
|
-
function
|
95
|
+
function registerProductLinkedComponent(
|
96
|
+
IComponent component,
|
97
|
+
ObjectType objectType,
|
98
|
+
address initialOwner
|
99
|
+
)
|
104
100
|
external
|
105
101
|
virtual
|
106
102
|
restricted()
|
107
|
-
returns(
|
103
|
+
returns(
|
104
|
+
IRegistry.ObjectInfo memory info
|
105
|
+
)
|
108
106
|
{
|
109
|
-
|
110
|
-
|
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);
|
111
118
|
}
|
112
119
|
|
113
|
-
function
|
120
|
+
function registerDistributor(IRegistry.ObjectInfo memory info)
|
114
121
|
external
|
115
122
|
virtual
|
116
123
|
restricted()
|
117
124
|
returns(NftId nftId)
|
118
125
|
{
|
119
|
-
_verifyObjectInfo(info,
|
120
|
-
nftId = getRegistry().register(info
|
126
|
+
_verifyObjectInfo(info, DISTRIBUTOR());
|
127
|
+
nftId = getRegistry().register(info);
|
121
128
|
}
|
122
129
|
|
123
|
-
function
|
130
|
+
function registerPolicy(IRegistry.ObjectInfo memory info)
|
124
131
|
external
|
125
132
|
virtual
|
126
133
|
restricted()
|
127
134
|
returns(NftId nftId)
|
128
135
|
{
|
129
|
-
_verifyObjectInfo(info,
|
130
|
-
nftId = getRegistry().register(info
|
136
|
+
_verifyObjectInfo(info, POLICY());
|
137
|
+
nftId = getRegistry().register(info);
|
131
138
|
}
|
132
139
|
|
133
|
-
function
|
140
|
+
function registerBundle(IRegistry.ObjectInfo memory info)
|
134
141
|
external
|
135
142
|
virtual
|
136
143
|
restricted()
|
137
144
|
returns(NftId nftId)
|
138
145
|
{
|
139
|
-
_verifyObjectInfo(info,
|
140
|
-
nftId = getRegistry().register(info
|
146
|
+
_verifyObjectInfo(info, BUNDLE());
|
147
|
+
nftId = getRegistry().register(info);
|
141
148
|
}
|
142
149
|
|
143
|
-
|
144
|
-
|
145
|
-
|
150
|
+
function registerStake(IRegistry.ObjectInfo memory info)
|
151
|
+
external
|
152
|
+
virtual
|
153
|
+
restricted()
|
154
|
+
returns(NftId nftId)
|
146
155
|
{
|
147
|
-
|
148
|
-
|
149
|
-
}
|
156
|
+
_verifyObjectInfo(info, STAKE());
|
157
|
+
nftId = getRegistry().register(info);
|
150
158
|
}
|
151
159
|
|
152
|
-
|
153
|
-
|
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
|
160
|
+
// Internal
|
161
|
+
|
159
162
|
function _getAndVerifyContractInfo(
|
160
163
|
IRegisterable registerable,
|
161
|
-
NftId expectedParent,
|
162
164
|
ObjectType expectedType, // assume can be valid only
|
163
165
|
address expectedOwner // assume can be 0 when given by other service
|
164
166
|
)
|
@@ -166,62 +168,40 @@ contract RegistryService is
|
|
166
168
|
virtual
|
167
169
|
view
|
168
170
|
returns(
|
169
|
-
IRegistry.ObjectInfo memory info
|
170
|
-
address initialOwner,
|
171
|
-
bytes memory data
|
171
|
+
IRegistry.ObjectInfo memory info
|
172
172
|
)
|
173
173
|
{
|
174
174
|
info = registerable.getInitialInfo();
|
175
|
-
data = registerable.getInitialData();
|
176
|
-
initialOwner = registerable.getOwner();
|
177
175
|
|
178
176
|
if(info.objectAddress != address(registerable)) {
|
179
177
|
revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
|
180
178
|
}
|
181
179
|
|
182
|
-
if(
|
183
|
-
|
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
|
-
}
|
180
|
+
if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
|
181
|
+
revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
|
192
182
|
}
|
193
183
|
|
194
|
-
|
195
|
-
// exact parent is important
|
196
|
-
if(info.parentNftId != expectedParent) {
|
197
|
-
revert ErrorRegistryServiceRegisterableParentInvalid(registerable, expectedParent, info.parentNftId);
|
198
|
-
}
|
199
|
-
}
|
184
|
+
address owner = info.initialOwner;
|
200
185
|
|
201
|
-
if(
|
202
|
-
|
203
|
-
if(initialOwner != expectedOwner) { // registerable owner protection
|
204
|
-
revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, initialOwner);
|
205
|
-
}
|
186
|
+
if(owner != expectedOwner) { // registerable owner protection
|
187
|
+
revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
|
206
188
|
}
|
207
189
|
|
208
|
-
if(
|
190
|
+
if(owner == address(registerable)) {
|
209
191
|
revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
|
210
192
|
}
|
211
193
|
|
212
|
-
|
213
|
-
if(initialOwner == address(0)) {
|
194
|
+
if(owner == address(0)) {
|
214
195
|
revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
|
215
196
|
}
|
216
197
|
|
217
|
-
if(getRegistry().isRegistered(
|
218
|
-
revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable,
|
198
|
+
if(getRegistry().isRegistered(owner)) {
|
199
|
+
revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
|
219
200
|
}
|
220
201
|
}
|
221
202
|
|
222
203
|
function _verifyObjectInfo(
|
223
204
|
IRegistry.ObjectInfo memory info,
|
224
|
-
address initialOwner,
|
225
205
|
ObjectType expectedType
|
226
206
|
)
|
227
207
|
internal
|
@@ -236,18 +216,20 @@ contract RegistryService is
|
|
236
216
|
revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
|
237
217
|
}
|
238
218
|
|
239
|
-
|
219
|
+
address owner = info.initialOwner;
|
220
|
+
|
221
|
+
if(owner == address(0)) {
|
240
222
|
revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
|
241
223
|
}
|
242
224
|
|
243
|
-
if(
|
244
|
-
revert ErrorRegistryServiceInvalidInitialOwner(
|
225
|
+
if(owner == msg.sender) {
|
226
|
+
revert ErrorRegistryServiceInvalidInitialOwner(owner);
|
245
227
|
}
|
246
228
|
|
247
|
-
if(getRegistry().isRegistered(
|
248
|
-
ObjectType ownerType = getRegistry().getObjectInfo(
|
229
|
+
if(getRegistry().isRegistered(owner)) {
|
230
|
+
ObjectType ownerType = getRegistry().getObjectInfo(owner).objectType;
|
249
231
|
if(ownerType == REGISTRY() || ownerType == STAKING() || ownerType == SERVICE() || ownerType == INSTANCE()) {
|
250
|
-
revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType,
|
232
|
+
revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
|
251
233
|
}
|
252
234
|
}
|
253
235
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
5
|
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {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
|
+
IVersionable versionable = initialize(
|
36
36
|
registry,
|
37
37
|
address(srv),
|
38
38
|
data,
|
39
39
|
salt);
|
40
40
|
|
41
|
-
_registryService = RegistryService(address(
|
41
|
+
_registryService = RegistryService(address(versionable));
|
42
42
|
}
|
43
43
|
|
44
44
|
//--- view functions ----------------------------------------------------//
|
@@ -10,10 +10,9 @@ 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";
|
14
13
|
import {RoleId, ADMIN_ROLE, RELEASE_REGISTRY_ROLE} from "../type/RoleId.sol";
|
15
14
|
import {Str} from "../type/String.sol";
|
16
|
-
import {
|
15
|
+
import {VersionPart} from "../type/Version.sol";
|
17
16
|
|
18
17
|
|
19
18
|
/// @dev The ReleaseAdmin contract implements the central authorization for the services of a specific release.
|
@@ -47,35 +46,40 @@ contract ReleaseAdmin is
|
|
47
46
|
}
|
48
47
|
|
49
48
|
|
50
|
-
|
49
|
+
// @dev Only used for master release admin
|
51
50
|
constructor(address accessManager) {
|
52
51
|
initialize(
|
53
52
|
accessManager,
|
54
|
-
"MasterReleaseAdmin"
|
55
|
-
GIF_INITIAL_RELEASE());
|
53
|
+
"MasterReleaseAdmin");
|
56
54
|
}
|
57
55
|
|
58
56
|
|
59
57
|
function completeSetup(
|
60
58
|
address registry,
|
61
59
|
address authorization,
|
60
|
+
VersionPart release,
|
62
61
|
address releaseRegistry
|
63
62
|
)
|
64
63
|
external
|
65
|
-
|
64
|
+
reinitializer(uint64(release.toInt()))
|
66
65
|
{
|
67
66
|
// checks
|
68
67
|
AccessAdminLib.checkRegistry(registry);
|
69
68
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
__RegistryLinked_init(registry);
|
69
|
+
AccessManagerCloneable(
|
70
|
+
authority()).completeSetup(
|
71
|
+
registry,
|
72
|
+
release);
|
76
73
|
|
77
74
|
IServiceAuthorization serviceAuthorization = IServiceAuthorization(authorization);
|
78
|
-
|
75
|
+
AccessAdminLib.checkAuthorization(
|
76
|
+
address(_authorization),
|
77
|
+
address(serviceAuthorization),
|
78
|
+
RELEASE(),
|
79
|
+
release,
|
80
|
+
true, // expectServiceAuthorization
|
81
|
+
true); // checkAlreadyInitialized);
|
82
|
+
|
79
83
|
_serviceAuthorization = serviceAuthorization;
|
80
84
|
|
81
85
|
// link nft ownability to registry
|
@@ -176,7 +180,8 @@ contract ReleaseAdmin is
|
|
176
180
|
//--- private initialization functions -------------------------------------------//
|
177
181
|
|
178
182
|
function _setupReleaseRegistry(address releaseRegistry)
|
179
|
-
private
|
183
|
+
private
|
184
|
+
onlyInitializing()
|
180
185
|
{
|
181
186
|
|
182
187
|
_createRole(
|
@@ -5,6 +5,7 @@ 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";
|
8
9
|
import {IRegistry} from "./IRegistry.sol";
|
9
10
|
import {IRelease} from "./IRelease.sol";
|
10
11
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
@@ -15,7 +16,7 @@ import {ContractLib} from "../shared/ContractLib.sol";
|
|
15
16
|
import {NftId} from "../type/NftId.sol";
|
16
17
|
import {ObjectType, ObjectTypeLib, COMPONENT, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
|
17
18
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
18
|
-
import {Registry
|
19
|
+
import {Registry} from "./Registry.sol";
|
19
20
|
import {ReleaseAdmin} from "./ReleaseAdmin.sol";
|
20
21
|
import {ReleaseLifecycle} from "./ReleaseLifecycle.sol";
|
21
22
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -35,6 +36,8 @@ contract ReleaseRegistry is
|
|
35
36
|
ReleaseLifecycle,
|
36
37
|
IRegistryLinked
|
37
38
|
{
|
39
|
+
uint256 public constant INITIAL_GIF_VERSION = 3;// first active release version
|
40
|
+
|
38
41
|
event LogReleaseCreation(IAccessAdmin admin, VersionPart release, bytes32 salt);
|
39
42
|
event LogReleaseActivation(VersionPart release);
|
40
43
|
event LogReleaseDisabled(VersionPart release);
|
@@ -56,14 +59,14 @@ contract ReleaseRegistry is
|
|
56
59
|
|
57
60
|
// _verifyService
|
58
61
|
error ErrorReleaseRegistryNotService(address notService);
|
59
|
-
error ErrorReleaseRegistryServiceAuthorityMismatch(IService service, address
|
62
|
+
error ErrorReleaseRegistryServiceAuthorityMismatch(IService service, address serviceAuthority, address releaseAuthority);
|
63
|
+
error ErrorReleaseRegistryServiceVersionMismatch(IService service, VersionPart serviceVersion, VersionPart releaseVersion);
|
60
64
|
error ErrorReleaseRegistryServiceDomainMismatch(IService service, ObjectType expectedDomain, ObjectType actualDomain);
|
61
65
|
|
62
|
-
//
|
66
|
+
// _verifyServiceInfo
|
63
67
|
error ErrorReleaseRegistryServiceInfoAddressInvalid(IService service, address expected);
|
64
68
|
error ErrorReleaseRegistryServiceInfoInterceptorInvalid(IService service, bool isInterceptor);
|
65
69
|
error ErrorReleaseRegistryServiceInfoTypeInvalid(IService service, ObjectType expected, ObjectType found);
|
66
|
-
error ErrorReleaseRegistryServiceInfoReleaseMismatch(IService service, VersionPart expected, VersionPart actual);
|
67
70
|
error ErrorReleaseRegistryServiceInfoOwnerInvalid(IService service, address expected, address found);
|
68
71
|
error ErrorReleaseRegistryServiceSelfRegistration(IService service);
|
69
72
|
error ErrorReleaseRegistryServiceOwnerRegistered(IService service, address owner);
|
@@ -97,7 +100,7 @@ contract ReleaseRegistry is
|
|
97
100
|
_masterReleaseAdmin = new ReleaseAdmin(
|
98
101
|
_cloneNewAccessManager());
|
99
102
|
|
100
|
-
_next = VersionPartLib.toVersionPart(
|
103
|
+
_next = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION - 1);
|
101
104
|
}
|
102
105
|
|
103
106
|
/// @dev Initiates the creation of a new GIF release by the GIF admin.
|
@@ -181,21 +184,24 @@ contract ReleaseRegistry is
|
|
181
184
|
address releaseAuthority = ReleaseAdmin(_releaseInfo[releaseVersion].releaseAdmin).authority();
|
182
185
|
IServiceAuthorization releaseAuthz = _releaseInfo[releaseVersion].auth;
|
183
186
|
ObjectType expectedDomain = releaseAuthz.getServiceDomain(_registeredServices);
|
184
|
-
address expectedOwner = msg.sender;
|
185
187
|
|
186
188
|
// service can work with release registry and release version
|
187
189
|
(
|
188
190
|
IRegistry.ObjectInfo memory info,
|
189
|
-
|
190
|
-
|
191
|
+
ObjectType serviceDomain,
|
192
|
+
VersionPart serviceVersion
|
193
|
+
//,string memory serviceName
|
191
194
|
) = _verifyService(
|
192
195
|
service,
|
193
|
-
expectedOwner,
|
194
196
|
releaseAuthority,
|
195
197
|
releaseVersion,
|
196
198
|
expectedDomain
|
197
199
|
);
|
198
200
|
|
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
|
+
|
199
205
|
_registeredServices++; // TODO use releaseInfo.someArray.length instead of _registeredServices
|
200
206
|
|
201
207
|
// release fully deployed
|
@@ -216,7 +222,7 @@ contract ReleaseRegistry is
|
|
216
222
|
releaseAdmin.setReleaseLocked(true);
|
217
223
|
|
218
224
|
// register service with registry
|
219
|
-
nftId = _registry.registerService(info,
|
225
|
+
nftId = _registry.registerService(info, serviceVersion, serviceDomain);
|
220
226
|
service.linkToRegisteredNftId();
|
221
227
|
}
|
222
228
|
|
@@ -383,12 +389,12 @@ contract ReleaseRegistry is
|
|
383
389
|
|
384
390
|
clonedAdmin.initialize(
|
385
391
|
address(_cloneNewAccessManager()),
|
386
|
-
releaseAdminName
|
387
|
-
release);
|
392
|
+
releaseAdminName);
|
388
393
|
|
389
394
|
clonedAdmin.completeSetup(
|
390
395
|
address(_registry),
|
391
396
|
address(serviceAuthorization),
|
397
|
+
release,
|
392
398
|
address(this)); // release registry (this contract)
|
393
399
|
|
394
400
|
// lock release (remains locked until activation)
|
@@ -433,65 +439,62 @@ contract ReleaseRegistry is
|
|
433
439
|
|
434
440
|
// TODO get service names
|
435
441
|
function _verifyService(
|
436
|
-
IService service,
|
437
|
-
address expectedOwner,
|
442
|
+
IService service,
|
438
443
|
address expectedAuthority,
|
439
|
-
VersionPart
|
444
|
+
VersionPart expectedVersion,
|
440
445
|
ObjectType expectedDomain
|
441
446
|
)
|
442
447
|
internal
|
443
448
|
view
|
444
449
|
returns(
|
445
|
-
IRegistry.ObjectInfo memory
|
446
|
-
|
447
|
-
|
450
|
+
IRegistry.ObjectInfo memory serviceInfo,
|
451
|
+
ObjectType serviceDomain,
|
452
|
+
VersionPart serviceVersion
|
448
453
|
)
|
449
454
|
{
|
450
455
|
if(!service.supportsInterface(type(IService).interfaceId)) {
|
451
456
|
revert ErrorReleaseRegistryNotService(address(service));
|
452
457
|
}
|
453
458
|
|
454
|
-
address
|
455
|
-
|
459
|
+
address owner = msg.sender;
|
460
|
+
address serviceAuthority = service.authority();
|
461
|
+
serviceVersion = service.getVersion().toMajorPart();
|
462
|
+
serviceDomain = service.getDomain();// checked in registry
|
463
|
+
serviceInfo = service.getInitialInfo();
|
456
464
|
|
457
|
-
(
|
458
|
-
service,
|
459
|
-
expectedOwner,
|
460
|
-
expectedRelease);
|
465
|
+
_verifyServiceInfo(service, serviceInfo, owner);
|
461
466
|
|
462
|
-
if(
|
467
|
+
if(serviceAuthority != expectedAuthority) {
|
463
468
|
revert ErrorReleaseRegistryServiceAuthorityMismatch(
|
464
469
|
service,
|
465
|
-
|
466
|
-
|
470
|
+
serviceAuthority,
|
471
|
+
expectedAuthority);
|
467
472
|
}
|
468
473
|
|
469
|
-
if(
|
474
|
+
if(serviceVersion != expectedVersion) {
|
475
|
+
revert ErrorReleaseRegistryServiceVersionMismatch(
|
476
|
+
service,
|
477
|
+
serviceVersion,
|
478
|
+
expectedVersion);
|
479
|
+
}
|
480
|
+
|
481
|
+
if(serviceDomain != expectedDomain) {
|
470
482
|
revert ErrorReleaseRegistryServiceDomainMismatch(
|
471
483
|
service,
|
472
484
|
expectedDomain,
|
473
|
-
|
485
|
+
serviceDomain);
|
474
486
|
}
|
475
487
|
}
|
476
488
|
|
477
489
|
|
478
|
-
function
|
490
|
+
function _verifyServiceInfo(
|
479
491
|
IService service,
|
480
|
-
|
481
|
-
|
492
|
+
IRegistry.ObjectInfo memory info,
|
493
|
+
address expectedOwner // assume always valid, can not be 0
|
482
494
|
)
|
483
495
|
internal
|
484
496
|
view
|
485
|
-
returns (
|
486
|
-
IRegistry.ObjectInfo memory info,
|
487
|
-
address initialOwner,
|
488
|
-
bytes memory data
|
489
|
-
)
|
490
497
|
{
|
491
|
-
info = service.getInitialInfo();
|
492
|
-
initialOwner = service.getOwner();
|
493
|
-
data = service.getInitialData();
|
494
|
-
|
495
498
|
if(info.objectAddress != address(service)) {
|
496
499
|
revert ErrorReleaseRegistryServiceInfoAddressInvalid(service, info.objectAddress);
|
497
500
|
}
|
@@ -504,23 +507,18 @@ contract ReleaseRegistry is
|
|
504
507
|
revert ErrorReleaseRegistryServiceInfoTypeInvalid(service, SERVICE(), info.objectType);
|
505
508
|
}
|
506
509
|
|
507
|
-
|
508
|
-
revert ErrorReleaseRegistryServiceInfoReleaseMismatch(
|
509
|
-
service,
|
510
|
-
expectedRelease,
|
511
|
-
info.release);
|
512
|
-
}
|
510
|
+
address owner = info.initialOwner;
|
513
511
|
|
514
|
-
if(
|
515
|
-
revert ErrorReleaseRegistryServiceInfoOwnerInvalid(service, expectedOwner,
|
512
|
+
if(owner != expectedOwner) { // registerable owner protection
|
513
|
+
revert ErrorReleaseRegistryServiceInfoOwnerInvalid(service, expectedOwner, owner);
|
516
514
|
}
|
517
515
|
|
518
|
-
if(
|
516
|
+
if(owner == address(service)) {
|
519
517
|
revert ErrorReleaseRegistryServiceSelfRegistration(service);
|
520
518
|
}
|
521
519
|
|
522
|
-
if(_registry.isRegistered(
|
523
|
-
revert ErrorReleaseRegistryServiceOwnerRegistered(service,
|
520
|
+
if(_registry.isRegistered(owner)) {
|
521
|
+
revert ErrorReleaseRegistryServiceOwnerRegistered(service, owner);
|
524
522
|
}
|
525
523
|
}
|
526
524
|
}
|
@@ -21,8 +21,6 @@ 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";
|
26
24
|
|
27
25
|
|
28
26
|
contract ServiceAuthorizationV3
|
@@ -33,7 +31,7 @@ contract ServiceAuthorizationV3
|
|
33
31
|
ServiceAuthorization(
|
34
32
|
"ReleaseAdmin",
|
35
33
|
RELEASE(),
|
36
|
-
|
34
|
+
3,
|
37
35
|
commitHash)
|
38
36
|
{}
|
39
37
|
|
@@ -92,7 +90,8 @@ contract ServiceAuthorizationV3
|
|
92
90
|
_authorize(functions, IRegistryService.registerBundle.selector, "registerBundle");
|
93
91
|
|
94
92
|
functions = _authorizeForService(REGISTRY(), COMPONENT());
|
95
|
-
_authorize(functions, IRegistryService.
|
93
|
+
_authorize(functions, IRegistryService.registerProduct.selector, "registerProduct");
|
94
|
+
_authorize(functions, IRegistryService.registerProductLinkedComponent.selector, "registerProductLinkedComponent");
|
96
95
|
|
97
96
|
functions = _authorizeForService(REGISTRY(), DISTRIBUTION());
|
98
97
|
_authorize(functions, IRegistryService.registerDistributor.selector, "registerDistributor");
|