@etherisc/gif-next 0.0.2-f13c010-035 → 0.0.2-f13d67f-541
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 +90 -317
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +810 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +729 -287
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +438 -35
- 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 +560 -220
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +191 -21
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +132 -300
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +427 -53
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +64 -173
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +585 -231
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +190 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -135
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +401 -78
- 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 +160 -224
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +426 -52
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +308 -337
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +426 -52
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +408 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1198 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +849 -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 +2185 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -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 +215 -257
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -165
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +278 -233
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +946 -466
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +551 -50
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +417 -17
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +615 -105
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1121 -374
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +379 -68
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1127 -557
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +434 -81
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +119 -49
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1286 -1925
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- 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 +83 -175
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +425 -54
- 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 +48 -74
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -111
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +157 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +154 -46
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +106 -173
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +426 -52
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +317 -344
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -92
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +219 -146
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +63 -128
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +380 -214
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +76 -159
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +621 -413
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +186 -66
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +327 -62
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +143 -43
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +199 -223
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +426 -52
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +294 -189
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +151 -83
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +268 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +181 -19
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +167 -56
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +175 -181
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +258 -22
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +296 -194
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +169 -77
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +139 -114
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +131 -59
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +193 -217
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +338 -87
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +141 -41
- 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 +78 -19
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- 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 +116 -57
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +848 -479
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +89 -37
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +119 -39
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
- 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 +398 -64
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +66 -96
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +308 -542
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +155 -83
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +544 -4
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +48 -60
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +171 -356
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +48 -74
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +139 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +56 -3
- 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 +66 -110
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +137 -62
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +51 -11
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +289 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +70 -30
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1446 -164
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +214 -110
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1583 -296
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +160 -69
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +257 -162
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +122 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1632 -818
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +160 -88
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +11 -11
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
- 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 +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- 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 +49 -50
- 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 +69 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +64 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -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/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +69 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +95 -25
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +274 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +47 -0
- package/contracts/authorization/AccessAdmin.sol +389 -306
- package/contracts/authorization/AccessAdminLib.sol +678 -0
- package/contracts/authorization/AccessManagerCloneable.sol +128 -4
- package/contracts/authorization/Authorization.sol +161 -260
- package/contracts/authorization/IAccess.sol +29 -12
- package/contracts/authorization/IAccessAdmin.sol +89 -84
- package/contracts/authorization/IAuthorization.sol +9 -43
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +19 -18
- package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
- package/contracts/distribution/Distribution.sol +45 -85
- package/contracts/distribution/DistributionService.sol +192 -99
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +38 -24
- package/contracts/examples/fire/FirePool.sol +21 -8
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +38 -20
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/flight/FlightLib.sol +279 -0
- package/contracts/examples/flight/FlightOracle.sol +168 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +470 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
- package/contracts/examples/flight/FlightUSD.sol +26 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +39 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +32 -6
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +132 -46
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +109 -19
- package/contracts/instance/IInstanceService.sol +61 -14
- package/contracts/instance/Instance.sol +184 -65
- package/contracts/instance/InstanceAdmin.sol +221 -193
- package/contracts/instance/InstanceAuthorizationV3.sol +153 -72
- package/contracts/instance/InstanceReader.sol +447 -314
- package/contracts/instance/InstanceService.sol +315 -214
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +152 -116
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +126 -0
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +6 -8
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +19 -10
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -7
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/oracle/BasicOracle.sol +3 -6
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleService.sol +12 -12
- package/contracts/oracle/Oracle.sol +5 -9
- package/contracts/oracle/OracleService.sol +98 -79
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +26 -19
- package/contracts/pool/BasicPoolAuthorization.sol +34 -10
- package/contracts/pool/BundleService.sol +75 -182
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +28 -55
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +65 -62
- package/contracts/pool/Pool.sol +111 -115
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +299 -229
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +93 -25
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +10 -15
- package/contracts/product/BasicProductAuthorization.sol +33 -11
- package/contracts/product/ClaimService.sol +221 -207
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +28 -3
- package/contracts/product/IClaimService.sol +18 -5
- package/contracts/product/IPolicyService.sol +34 -12
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +25 -10
- package/contracts/product/PolicyService.sol +260 -306
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +52 -46
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +106 -70
- package/contracts/product/RiskService.sol +130 -37
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +25 -24
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +31 -12
- package/contracts/registry/RegistryAdmin.sol +94 -369
- package/contracts/registry/RegistryAuthorization.sol +337 -0
- package/contracts/registry/RegistryService.sol +4 -4
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +199 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +158 -134
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -52
- package/contracts/registry/TokenRegistry.sol +61 -59
- package/contracts/shared/Component.sol +58 -119
- package/contracts/shared/ComponentService.sol +400 -395
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ContractLib.sol +277 -3
- package/contracts/shared/IComponent.sol +2 -18
- package/contracts/shared/IComponentService.sol +28 -38
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +15 -5
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +63 -44
- package/contracts/shared/NftOwnable.sol +8 -6
- package/contracts/shared/PolicyHolder.sol +4 -3
- package/contracts/shared/Registerable.sol +41 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +264 -105
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +270 -72
- package/contracts/staking/IStakingService.sol +45 -75
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +522 -222
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +58 -77
- package/contracts/staking/StakingService.sol +62 -148
- package/contracts/staking/StakingServiceManager.sol +6 -4
- package/contracts/staking/StakingStore.sol +1093 -330
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +17 -22
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +70 -68
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/RiskId.sol +26 -8
- package/contracts/type/RoleId.sol +63 -45
- package/contracts/type/Seconds.sol +23 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/String.sol +42 -0
- package/contracts/type/Timestamp.sol +14 -8
- package/contracts/type/UFixed.sol +35 -127
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +27 -13
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +4 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.json +0 -206
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentServiceHelperLib.sol +0 -118
- package/contracts/shared/ComponentVerifyingService.sol +0 -126
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
| @@ -4,35 +4,44 @@ pragma solidity ^0.8.20; | |
| 4 4 | 
             
            import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
         | 
| 5 5 | 
             
            import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
         | 
| 6 6 |  | 
| 7 | 
            -
            import { | 
| 8 | 
            -
            import { | 
| 9 | 
            -
            import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
         | 
| 10 | 
            -
            import {Seconds} from "../type/Seconds.sol";
         | 
| 11 | 
            -
            import {StateId, SCHEDULED, DEPLOYING, DEPLOYED, SKIPPED, ACTIVE, PAUSED} from "../type/StateId.sol";
         | 
| 12 | 
            -
            import {VersionPart, VersionPartLib} from "../type/Version.sol";
         | 
| 13 | 
            -
             | 
| 14 | 
            -
            import {IService} from "../shared/IService.sol";
         | 
| 15 | 
            -
            import {IRegisterable} from "../shared/IRegisterable.sol";
         | 
| 16 | 
            -
             | 
| 7 | 
            +
            import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
         | 
| 8 | 
            +
            import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
         | 
| 17 9 | 
             
            import {IRegistry} from "./IRegistry.sol";
         | 
| 10 | 
            +
            import {IRelease} from "./IRelease.sol";
         | 
| 18 11 | 
             
            import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
         | 
| 12 | 
            +
            import {IService} from "../shared/IService.sol";
         | 
| 19 13 | 
             
            import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            import {ContractLib} from "../shared/ContractLib.sol";
         | 
| 16 | 
            +
            import {NftId} from "../type/NftId.sol";
         | 
| 17 | 
            +
            import {ObjectType, ObjectTypeLib, COMPONENT, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
         | 
| 20 18 | 
             
            import {RegistryAdmin} from "./RegistryAdmin.sol";
         | 
| 21 19 | 
             
            import {Registry} from "./Registry.sol";
         | 
| 20 | 
            +
            import {ReleaseAdmin} from "./ReleaseAdmin.sol";
         | 
| 22 21 | 
             
            import {ReleaseLifecycle} from "./ReleaseLifecycle.sol";
         | 
| 22 | 
            +
            import {Seconds} from "../type/Seconds.sol";
         | 
| 23 | 
            +
            import {StateId, SCHEDULED, DEPLOYING, DEPLOYED, SKIPPED, ACTIVE, PAUSED} from "../type/StateId.sol";
         | 
| 24 | 
            +
            import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
         | 
| 25 | 
            +
            import {VersionPart, VersionPartLib} from "../type/Version.sol";
         | 
| 23 26 |  | 
| 24 | 
            -
             | 
| 27 | 
            +
            /// @dev The ReleaseRegistry manages the lifecycle of major GIF releases and their services.
         | 
| 28 | 
            +
            /// The creation of a new GIF release is a multi-step process:
         | 
| 29 | 
            +
            /// 1. The creation of a new GIF release is initiated by the GIF admin.
         | 
| 30 | 
            +
            /// 2. A GIF manager then prepares the release by setting up the service authorization contract.
         | 
| 31 | 
            +
            /// 3. The GIF manager deploys and registers all related service contracts with the release registry.
         | 
| 32 | 
            +
            /// 4. The GIF admin verifies and activates the release.
         | 
| 33 | 
            +
            /// 3. The GIF admin may pause and resume a release.
         | 
| 25 34 | 
             
            contract ReleaseRegistry is 
         | 
| 26 35 | 
             
                AccessManaged,
         | 
| 27 36 | 
             
                ReleaseLifecycle, 
         | 
| 28 37 | 
             
                IRegistryLinked
         | 
| 29 38 | 
             
            {
         | 
| 30 | 
            -
                uint256 public constant INITIAL_GIF_VERSION = 3;// first active version  
         | 
| 39 | 
            +
                uint256 public constant INITIAL_GIF_VERSION = 3;// first active release version  
         | 
| 31 40 |  | 
| 32 | 
            -
                event LogReleaseCreation(VersionPart  | 
| 33 | 
            -
                event LogReleaseActivation(VersionPart  | 
| 34 | 
            -
                event LogReleaseDisabled(VersionPart  | 
| 35 | 
            -
                event LogReleaseEnabled(VersionPart  | 
| 41 | 
            +
                event LogReleaseCreation(IAccessAdmin admin, VersionPart release, bytes32 salt); 
         | 
| 42 | 
            +
                event LogReleaseActivation(VersionPart release);
         | 
| 43 | 
            +
                event LogReleaseDisabled(VersionPart release);
         | 
| 44 | 
            +
                event LogReleaseEnabled(VersionPart release);
         | 
| 36 45 |  | 
| 37 46 | 
             
                // constructor
         | 
| 38 47 | 
             
                error ErrorReleaseRegistryNotRegistry(Registry registry);
         | 
| @@ -40,7 +49,7 @@ contract ReleaseRegistry is | |
| 40 49 | 
             
                // _verifyServiceAuthorization
         | 
| 41 50 | 
             
                error ErrorReleaseRegistryNotServiceAuth(address notAuth);
         | 
| 42 51 | 
             
                error ErrorReleaseRegistryServiceAuthVersionMismatch(IServiceAuthorization auth, VersionPart expected, VersionPart actual);
         | 
| 43 | 
            -
                error ErrorReleaseRegistryServiceAuthDomainsZero(IServiceAuthorization auth, VersionPart  | 
| 52 | 
            +
                error ErrorReleaseRegistryServiceAuthDomainsZero(IServiceAuthorization auth, VersionPart release);
         | 
| 44 53 |  | 
| 45 54 | 
             
                // registerService
         | 
| 46 55 | 
             
                error ErrorReleaseRegistryServiceAddressMismatch(address expected, address actual);
         | 
| @@ -62,52 +71,58 @@ contract ReleaseRegistry is | |
| 62 71 | 
             
                error ErrorReleaseRegistryServiceSelfRegistration(IService service);
         | 
| 63 72 | 
             
                error ErrorReleaseRegistryServiceOwnerRegistered(IService service, address owner);
         | 
| 64 73 |  | 
| 65 | 
            -
                RegistryAdmin public immutable  | 
| 74 | 
            +
                RegistryAdmin public immutable _registryAdmin;
         | 
| 66 75 | 
             
                Registry public immutable _registry;
         | 
| 67 76 |  | 
| 68 | 
            -
                mapping(VersionPart  | 
| 69 | 
            -
                VersionPart [] internal _release; // array of all created releases
         | 
| 70 | 
            -
                 | 
| 71 | 
            -
                VersionPart internal _next; // version to create and activate 
         | 
| 77 | 
            +
                mapping(VersionPart release => IRelease.ReleaseInfo info) internal _releaseInfo;
         | 
| 78 | 
            +
                VersionPart [] internal _release; // array of all created releases    
         | 
| 79 | 
            +
                ReleaseAdmin internal _masterReleaseAdmin;
         | 
| 72 80 |  | 
| 73 | 
            -
                 | 
| 74 | 
            -
                 | 
| 81 | 
            +
                VersionPart internal _latest; // latest active release
         | 
| 82 | 
            +
                VersionPart internal _next; // release version to create and activate 
         | 
| 75 83 |  | 
| 84 | 
            +
                // counters per release
         | 
| 85 | 
            +
                uint256 internal _registeredServices = 0;
         | 
| 86 | 
            +
                uint256 internal _servicesToRegister = 0;
         | 
| 87 | 
            +
             | 
| 88 | 
            +
                // TODO move master relase admin outside constructor (same construction as for registry admin)
         | 
| 76 89 | 
             
                constructor(Registry registry)
         | 
| 77 90 | 
             
                    AccessManaged(msg.sender)
         | 
| 78 91 | 
             
                {
         | 
| 79 | 
            -
                     | 
| 80 | 
            -
                    if(!_isRegistry(address(registry))) {
         | 
| 92 | 
            +
                    if (!ContractLib.isRegistry(address(registry))) {
         | 
| 81 93 | 
             
                        revert ErrorReleaseRegistryNotRegistry(registry);
         | 
| 82 94 | 
             
                    }
         | 
| 83 95 |  | 
| 84 96 | 
             
                    setAuthority(registry.getAuthority());
         | 
| 85 97 |  | 
| 86 98 | 
             
                    _registry = registry;
         | 
| 87 | 
            -
                     | 
| 99 | 
            +
                    _registryAdmin = RegistryAdmin(_registry.getRegistryAdminAddress());
         | 
| 100 | 
            +
                    _masterReleaseAdmin = new ReleaseAdmin(
         | 
| 101 | 
            +
                        _cloneNewAccessManager());
         | 
| 88 102 |  | 
| 89 103 | 
             
                    _next = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION - 1);
         | 
| 90 104 | 
             
                }
         | 
| 91 105 |  | 
| 92 | 
            -
                /// @dev  | 
| 93 | 
            -
                ///  | 
| 106 | 
            +
                /// @dev Initiates the creation of a new GIF release by the GIF admin.
         | 
| 107 | 
            +
                /// Sets previous release into SKIPPED state if it was created but not activated.
         | 
| 108 | 
            +
                /// Sets the new release into state SCHEDULED.
         | 
| 94 109 | 
             
                function createNextRelease()
         | 
| 95 110 | 
             
                    external
         | 
| 96 111 | 
             
                    restricted() // GIF_ADMIN_ROLE
         | 
| 97 112 | 
             
                    returns(VersionPart)
         | 
| 98 113 | 
             
                {
         | 
| 99 | 
            -
                    VersionPart  | 
| 114 | 
            +
                    VersionPart release = _next;
         | 
| 100 115 |  | 
| 101 | 
            -
                    if(isValidTransition(RELEASE(), _releaseInfo[ | 
| 102 | 
            -
                        _releaseInfo[ | 
| 116 | 
            +
                    if(isValidTransition(RELEASE(), _releaseInfo[release].state, SKIPPED())) {
         | 
| 117 | 
            +
                        _releaseInfo[release].state = SKIPPED();
         | 
| 103 118 | 
             
                    }
         | 
| 104 119 |  | 
| 105 | 
            -
                     | 
| 106 | 
            -
                    _release.push( | 
| 120 | 
            +
                    release = VersionPartLib.toVersionPart(release.toInt() + 1);
         | 
| 121 | 
            +
                    _release.push(release);
         | 
| 107 122 |  | 
| 108 | 
            -
                    _next =  | 
| 109 | 
            -
                    _releaseInfo[ | 
| 110 | 
            -
                    _releaseInfo[ | 
| 123 | 
            +
                    _next = release;
         | 
| 124 | 
            +
                    _releaseInfo[release].version = release;
         | 
| 125 | 
            +
                    _releaseInfo[release].state = getInitialState(RELEASE());
         | 
| 111 126 | 
             
                    _servicesToRegister = 0;
         | 
| 112 127 | 
             
                    _registeredServices = 0;
         | 
| 113 128 |  | 
| @@ -121,7 +136,7 @@ contract ReleaseRegistry is | |
| 121 136 | 
             
                    external
         | 
| 122 137 | 
             
                    restricted() // GIF_MANAGER_ROLE
         | 
| 123 138 | 
             
                    returns(
         | 
| 124 | 
            -
                         | 
| 139 | 
            +
                        ReleaseAdmin releaseAdmin, 
         | 
| 125 140 | 
             
                        VersionPart releaseVersion, 
         | 
| 126 141 | 
             
                        bytes32 releaseSalt
         | 
| 127 142 | 
             
                    )
         | 
| @@ -131,10 +146,13 @@ contract ReleaseRegistry is | |
| 131 146 | 
             
                    // release can transition into DEPLOYING state
         | 
| 132 147 | 
             
                    checkTransition(_releaseInfo[releaseVersion].state, RELEASE(), SCHEDULED(), DEPLOYING());
         | 
| 133 148 |  | 
| 149 | 
            +
                    // verify authorizations
         | 
| 134 150 | 
             
                    uint256 serviceDomainsCount = _verifyServiceAuthorization(serviceAuthorization, releaseVersion, salt);
         | 
| 135 151 |  | 
| 136 | 
            -
                     | 
| 152 | 
            +
                    // create and initialize release admin
         | 
| 153 | 
            +
                    releaseAdmin = _cloneNewReleaseAdmin(serviceAuthorization, releaseVersion);
         | 
| 137 154 | 
             
                    releaseSalt = salt;
         | 
| 155 | 
            +
             | 
| 138 156 | 
             
                    // ensures unique salt
         | 
| 139 157 | 
             
                    // TODO CreateX have clones capability also
         | 
| 140 158 | 
             
                    // what would releaseSalt look like if used with CreateX in pemissioned mode?
         | 
| @@ -148,9 +166,9 @@ contract ReleaseRegistry is | |
| 148 166 | 
             
                    _releaseInfo[releaseVersion].salt = releaseSalt;
         | 
| 149 167 | 
             
                    // TODO allow for the same serviceAuthorization address to be used for multiple releases?
         | 
| 150 168 | 
             
                    _releaseInfo[releaseVersion].auth = serviceAuthorization;
         | 
| 151 | 
            -
                     | 
| 169 | 
            +
                    _releaseInfo[releaseVersion].releaseAdmin = address(releaseAdmin);
         | 
| 152 170 |  | 
| 153 | 
            -
                    emit LogReleaseCreation(releaseVersion, releaseSalt);
         | 
| 171 | 
            +
                    emit LogReleaseCreation(releaseAdmin, releaseVersion, releaseSalt);
         | 
| 154 172 | 
             
                }
         | 
| 155 173 |  | 
| 156 174 | 
             
                function registerService(IService service) 
         | 
| @@ -163,9 +181,9 @@ contract ReleaseRegistry is | |
| 163 181 | 
             
                    // release can transition to DEPLOYED state
         | 
| 164 182 | 
             
                    checkTransition(_releaseInfo[releaseVersion].state, RELEASE(), DEPLOYING(), DEPLOYED());
         | 
| 165 183 |  | 
| 166 | 
            -
                    address releaseAuthority =  | 
| 167 | 
            -
                    IServiceAuthorization  | 
| 168 | 
            -
                    ObjectType expectedDomain =  | 
| 184 | 
            +
                    address releaseAuthority = ReleaseAdmin(_releaseInfo[releaseVersion].releaseAdmin).authority();
         | 
| 185 | 
            +
                    IServiceAuthorization releaseAuthz = _releaseInfo[releaseVersion].auth;
         | 
| 186 | 
            +
                    ObjectType expectedDomain = releaseAuthz.getServiceDomain(_registeredServices);
         | 
| 169 187 |  | 
| 170 188 | 
             
                    // service can work with release registry and release version
         | 
| 171 189 | 
             
                    (
         | 
| @@ -195,89 +213,86 @@ contract ReleaseRegistry is | |
| 195 213 | 
             
                    // revert ErrorReleaseRegistryServiceAddressMismatch()
         | 
| 196 214 |  | 
| 197 215 | 
             
                    // setup service authorization
         | 
| 198 | 
            -
                     | 
| 199 | 
            -
             | 
| 216 | 
            +
                    ReleaseAdmin releaseAdmin = ReleaseAdmin(_releaseInfo[releaseVersion].releaseAdmin);
         | 
| 217 | 
            +
                    releaseAdmin.setReleaseLocked(false);
         | 
| 218 | 
            +
                    releaseAdmin.authorizeService(
         | 
| 200 219 | 
             
                        service,
         | 
| 201 220 | 
             
                        serviceDomain,
         | 
| 202 221 | 
             
                        releaseVersion);
         | 
| 222 | 
            +
                    releaseAdmin.setReleaseLocked(true); 
         | 
| 203 223 |  | 
| 204 224 | 
             
                    // register service with registry
         | 
| 205 225 | 
             
                    nftId = _registry.registerService(info, serviceVersion, serviceDomain);
         | 
| 206 226 | 
             
                    service.linkToRegisteredNftId();
         | 
| 207 227 | 
             
                }
         | 
| 228 | 
            +
             | 
| 229 | 
            +
             | 
| 208 230 | 
             
                // TODO return activated version
         | 
| 209 231 | 
             
                function activateNextRelease() 
         | 
| 210 232 | 
             
                    external 
         | 
| 211 233 | 
             
                    restricted // GIF_ADMIN_ROLE
         | 
| 212 234 | 
             
                {
         | 
| 213 | 
            -
                    VersionPart  | 
| 235 | 
            +
                    VersionPart release = _next;
         | 
| 214 236 |  | 
| 215 237 | 
             
                    // release can transition to ACTIVE state
         | 
| 216 | 
            -
                    checkTransition(_releaseInfo[ | 
| 238 | 
            +
                    checkTransition(_releaseInfo[release].state, RELEASE(), DEPLOYED(), ACTIVE());
         | 
| 217 239 |  | 
| 218 | 
            -
                    _latest =  | 
| 219 | 
            -
                    _releaseInfo[ | 
| 220 | 
            -
                    _releaseInfo[ | 
| 240 | 
            +
                    _latest = release;
         | 
| 241 | 
            +
                    _releaseInfo[release].state = ACTIVE();
         | 
| 242 | 
            +
                    _releaseInfo[release].activatedAt = TimestampLib.current();
         | 
| 243 | 
            +
                    _releaseInfo[release].disabledAt = TimestampLib.max();
         | 
| 221 244 |  | 
| 222 245 | 
             
                    // grant special roles for registry/staking/pool services
         | 
| 223 246 | 
             
                    // this will enable access to core contracts functions
         | 
| 224 247 |  | 
| 225 248 | 
             
                    // registry service MUST be registered for each release
         | 
| 226 | 
            -
                    address service = _registry.getServiceAddress(REGISTRY(),  | 
| 249 | 
            +
                    address service = _registry.getServiceAddress(REGISTRY(), release);
         | 
| 227 250 | 
             
                    if(service == address(0)) {
         | 
| 228 | 
            -
                        revert ErrorReleaseRegistryRegistryServiceMissing( | 
| 251 | 
            +
                        revert ErrorReleaseRegistryRegistryServiceMissing(release);
         | 
| 229 252 | 
             
                    }
         | 
| 230 253 |  | 
| 231 | 
            -
                     | 
| 254 | 
            +
                    _registryAdmin.grantServiceRoleForAllVersions(IService(service), REGISTRY());
         | 
| 232 255 |  | 
| 233 | 
            -
                    service = _registry.getServiceAddress(STAKING(),  | 
| 256 | 
            +
                    service = _registry.getServiceAddress(STAKING(), release);
         | 
| 234 257 | 
             
                    if(service != address(0)) {
         | 
| 235 | 
            -
                         | 
| 258 | 
            +
                        _registryAdmin.grantServiceRoleForAllVersions(IService(service), STAKING());
         | 
| 236 259 | 
             
                    }
         | 
| 237 260 |  | 
| 238 | 
            -
                    service = _registry.getServiceAddress( | 
| 261 | 
            +
                    service = _registry.getServiceAddress(COMPONENT(), release);
         | 
| 239 262 | 
             
                    if(service != address(0)) {
         | 
| 240 | 
            -
                         | 
| 263 | 
            +
                        _registryAdmin.grantServiceRoleForAllVersions(IService(service), COMPONENT());
         | 
| 241 264 | 
             
                    }
         | 
| 242 265 |  | 
| 243 | 
            -
                     | 
| 244 | 
            -
                     | 
| 245 | 
            -
             | 
| 246 | 
            -
                     | 
| 247 | 
            -
             | 
| 248 | 
            -
                    emit LogReleaseActivation(version);
         | 
| 249 | 
            -
                }
         | 
| 250 | 
            -
             | 
| 251 | 
            -
                /// @dev stop all operations with release services
         | 
| 252 | 
            -
                function pauseRelease(VersionPart version)
         | 
| 253 | 
            -
                    external 
         | 
| 254 | 
            -
                    restricted // GIF_ADMIN_ROLE
         | 
| 255 | 
            -
                {
         | 
| 256 | 
            -
                    // release can transition to PAUSED state
         | 
| 257 | 
            -
                    checkTransition(_releaseInfo[version].state, RELEASE(), ACTIVE(), PAUSED());
         | 
| 258 | 
            -
             | 
| 259 | 
            -
                    _releaseInfo[version].state = PAUSED();
         | 
| 260 | 
            -
                    _releaseInfo[version].disabledAt = TimestampLib.blockTimestamp();
         | 
| 266 | 
            +
                    service = _registry.getServiceAddress(POOL(), release);
         | 
| 267 | 
            +
                    if(service != address(0)) {
         | 
| 268 | 
            +
                        _registryAdmin.grantServiceRoleForAllVersions(IService(service), POOL());
         | 
| 269 | 
            +
                    }
         | 
| 261 270 |  | 
| 262 | 
            -
                    _setReleaseLocked( | 
| 271 | 
            +
                    _setReleaseLocked(release, false);
         | 
| 263 272 |  | 
| 264 | 
            -
                    emit  | 
| 273 | 
            +
                    emit LogReleaseActivation(release);
         | 
| 265 274 | 
             
                }
         | 
| 266 275 |  | 
| 267 | 
            -
                /// @dev resume operations with  | 
| 268 | 
            -
                function  | 
| 269 | 
            -
                     | 
| 270 | 
            -
                    restricted | 
| 276 | 
            +
                /// @dev stop/resume operations with restricted functions
         | 
| 277 | 
            +
                function setActive(VersionPart release, bool active) 
         | 
| 278 | 
            +
                    public
         | 
| 279 | 
            +
                    restricted
         | 
| 271 280 | 
             
                {
         | 
| 272 | 
            -
                     | 
| 273 | 
            -
             | 
| 274 | 
            -
                    
         | 
| 275 | 
            -
             | 
| 276 | 
            -
             | 
| 277 | 
            -
             | 
| 278 | 
            -
             | 
| 281 | 
            +
                    StateId state = _releaseInfo[release].state;
         | 
| 282 | 
            +
             | 
| 283 | 
            +
                    if(active) {
         | 
| 284 | 
            +
                        checkTransition(state, RELEASE(), PAUSED(), ACTIVE());
         | 
| 285 | 
            +
                        _releaseInfo[release].state = ACTIVE();
         | 
| 286 | 
            +
                        _releaseInfo[release].disabledAt = TimestampLib.max();
         | 
| 287 | 
            +
                        emit LogReleaseEnabled(release);
         | 
| 288 | 
            +
                    } else {
         | 
| 289 | 
            +
                        checkTransition(state, RELEASE(), ACTIVE(), PAUSED());
         | 
| 290 | 
            +
                        _releaseInfo[release].state = PAUSED();
         | 
| 291 | 
            +
                        _releaseInfo[release].disabledAt = TimestampLib.current();
         | 
| 292 | 
            +
                        emit LogReleaseDisabled(release);
         | 
| 293 | 
            +
                    }
         | 
| 279 294 |  | 
| 280 | 
            -
                     | 
| 295 | 
            +
                    _setReleaseLocked(release, !active);
         | 
| 281 296 | 
             
                }
         | 
| 282 297 |  | 
| 283 298 | 
             
                //--- view functions ----------------------------------------------------//
         | 
| @@ -290,12 +305,12 @@ contract ReleaseRegistry is | |
| 290 305 | 
             
                    return Clones.predictDeterministicAddress(implementation, salt, deployer);
         | 
| 291 306 | 
             
                }
         | 
| 292 307 |  | 
| 293 | 
            -
                function isActiveRelease(VersionPart  | 
| 294 | 
            -
                    return _releaseInfo[ | 
| 308 | 
            +
                function isActiveRelease(VersionPart release) public view returns(bool) {
         | 
| 309 | 
            +
                    return _releaseInfo[release].state == ACTIVE();
         | 
| 295 310 | 
             
                }
         | 
| 296 311 |  | 
| 297 | 
            -
                function getReleaseInfo(VersionPart  | 
| 298 | 
            -
                    return _releaseInfo[ | 
| 312 | 
            +
                function getReleaseInfo(VersionPart release) external view returns(IRelease.ReleaseInfo memory) {
         | 
| 313 | 
            +
                    return _releaseInfo[release];
         | 
| 299 314 | 
             
                }
         | 
| 300 315 |  | 
| 301 316 | 
             
                /// @dev Returns the number of created releases.
         | 
| @@ -306,7 +321,7 @@ contract ReleaseRegistry is | |
| 306 321 |  | 
| 307 322 | 
             
                /// @dev Returns the n-th release version.
         | 
| 308 323 | 
             
                /// Valid values for idx [0 .. releases() - 1]
         | 
| 309 | 
            -
                function getVersion(uint256 idx) external view returns (VersionPart  | 
| 324 | 
            +
                function getVersion(uint256 idx) external view returns (VersionPart release) {
         | 
| 310 325 | 
             
                    // return _releases;
         | 
| 311 326 | 
             
                    return _release[idx];
         | 
| 312 327 | 
             
                }
         | 
| @@ -321,24 +336,24 @@ contract ReleaseRegistry is | |
| 321 336 | 
             
                    return _latest;
         | 
| 322 337 | 
             
                }
         | 
| 323 338 |  | 
| 324 | 
            -
                function getState(VersionPart  | 
| 325 | 
            -
                    return _releaseInfo[ | 
| 339 | 
            +
                function getState(VersionPart release) external view returns (StateId stateId) {
         | 
| 340 | 
            +
                    return _releaseInfo[release].state;
         | 
| 326 341 | 
             
                }
         | 
| 327 342 |  | 
| 328 343 | 
             
                function getRemainingServicesToRegister() external view returns (uint256 services) {
         | 
| 329 344 | 
             
                    return _servicesToRegister - _registeredServices;
         | 
| 330 345 | 
             
                }
         | 
| 331 346 |  | 
| 332 | 
            -
                function getServiceAuthorization(VersionPart  | 
| 347 | 
            +
                function getServiceAuthorization(VersionPart release)
         | 
| 333 348 | 
             
                    external
         | 
| 334 349 | 
             
                    view
         | 
| 335 350 | 
             
                    returns (IServiceAuthorization serviceAuthorization)
         | 
| 336 351 | 
             
                {
         | 
| 337 | 
            -
                    return _releaseInfo[ | 
| 352 | 
            +
                    return _releaseInfo[release].auth;
         | 
| 338 353 | 
             
                }
         | 
| 339 354 |  | 
| 340 355 | 
             
                function getRegistryAdmin() external view returns (address) {
         | 
| 341 | 
            -
                    return address( | 
| 356 | 
            +
                    return address(_registryAdmin);
         | 
| 342 357 | 
             
                }
         | 
| 343 358 |  | 
| 344 359 | 
             
                //--- IRegistryLinked ------------------------------------------------------//
         | 
| @@ -349,27 +364,52 @@ contract ReleaseRegistry is | |
| 349 364 |  | 
| 350 365 | 
             
                //--- private functions ----------------------------------------------------//
         | 
| 351 366 |  | 
| 352 | 
            -
                 | 
| 353 | 
            -
                function _setReleaseLocked(VersionPart version, bool locked)
         | 
| 367 | 
            +
                function _setReleaseLocked(VersionPart release, bool locked)
         | 
| 354 368 | 
             
                    private
         | 
| 355 369 | 
             
                {
         | 
| 356 | 
            -
                     | 
| 357 | 
            -
             | 
| 358 | 
            -
             | 
| 359 | 
            -
             | 
| 360 | 
            -
             | 
| 361 | 
            -
                     | 
| 362 | 
            -
                     | 
| 363 | 
            -
             | 
| 364 | 
            -
             | 
| 365 | 
            -
             | 
| 366 | 
            -
             | 
| 367 | 
            -
             | 
| 368 | 
            -
                     | 
| 370 | 
            +
                    ReleaseAdmin(
         | 
| 371 | 
            +
                        _releaseInfo[release].releaseAdmin).setReleaseLocked(locked);
         | 
| 372 | 
            +
                }
         | 
| 373 | 
            +
             | 
| 374 | 
            +
                function _cloneNewReleaseAdmin(
         | 
| 375 | 
            +
                    IServiceAuthorization serviceAuthorization,
         | 
| 376 | 
            +
                    VersionPart release
         | 
| 377 | 
            +
                )
         | 
| 378 | 
            +
                    private
         | 
| 379 | 
            +
                    returns (ReleaseAdmin clonedAdmin)
         | 
| 380 | 
            +
                {
         | 
| 381 | 
            +
                    // clone and setup release specific release admin
         | 
| 382 | 
            +
                    clonedAdmin = ReleaseAdmin(
         | 
| 383 | 
            +
                        Clones.clone(address(_masterReleaseAdmin)));
         | 
| 384 | 
            +
             | 
| 385 | 
            +
                    string memory releaseAdminName = string(
         | 
| 386 | 
            +
                        abi.encodePacked(
         | 
| 387 | 
            +
                            "ReleaseAdminV", 
         | 
| 388 | 
            +
                            release.toString()));
         | 
| 389 | 
            +
             | 
| 390 | 
            +
                    clonedAdmin.initialize(
         | 
| 391 | 
            +
                        address(_cloneNewAccessManager()),
         | 
| 392 | 
            +
                        releaseAdminName);
         | 
| 393 | 
            +
             | 
| 394 | 
            +
                    clonedAdmin.completeSetup(
         | 
| 395 | 
            +
                        address(_registry), 
         | 
| 396 | 
            +
                        address(serviceAuthorization),
         | 
| 397 | 
            +
                        release,
         | 
| 398 | 
            +
                        address(this)); // release registry (this contract)
         | 
| 399 | 
            +
             | 
| 400 | 
            +
                    // lock release (remains locked until activation)
         | 
| 401 | 
            +
                    clonedAdmin.setReleaseLocked(true);
         | 
| 402 | 
            +
                }
         | 
| 403 | 
            +
             | 
| 369 404 |  | 
| 370 | 
            -
             | 
| 405 | 
            +
                function _cloneNewAccessManager()
         | 
| 406 | 
            +
                    private
         | 
| 407 | 
            +
                    returns (address accessManager)
         | 
| 408 | 
            +
                {
         | 
| 409 | 
            +
                    return Clones.clone(address(_registryAdmin.authority()));
         | 
| 371 410 | 
             
                }
         | 
| 372 411 |  | 
| 412 | 
            +
             | 
| 373 413 | 
             
                function _verifyServiceAuthorization(
         | 
| 374 414 | 
             
                    IServiceAuthorization serviceAuthorization,
         | 
| 375 415 | 
             
                    VersionPart releaseVersion,
         | 
| @@ -380,8 +420,8 @@ contract ReleaseRegistry is | |
| 380 420 | 
             
                    returns (uint256 serviceDomainsCount)
         | 
| 381 421 | 
             
                {
         | 
| 382 422 | 
             
                    // authorization contract supports IServiceAuthorization interface
         | 
| 383 | 
            -
                    if(! | 
| 384 | 
            -
             | 
| 423 | 
            +
                    if(!ContractLib.supportsInterface(address(serviceAuthorization), type(IServiceAuthorization).interfaceId)) {
         | 
| 424 | 
            +
                        revert ErrorReleaseRegistryNotServiceAuth(address(serviceAuthorization));
         | 
| 385 425 | 
             
                    }
         | 
| 386 426 |  | 
| 387 427 | 
             
                    // authorizaions contract version matches with release version
         | 
| @@ -481,21 +521,5 @@ contract ReleaseRegistry is | |
| 481 521 | 
             
                        revert ErrorReleaseRegistryServiceOwnerRegistered(service, owner);
         | 
| 482 522 | 
             
                    }
         | 
| 483 523 | 
             
                }
         | 
| 484 | 
            -
             | 
| 485 | 
            -
                /// @dev returns true iff a the address passes some simple proxy tests.
         | 
| 486 | 
            -
                function _isRegistry(address registryAddress) internal view returns (bool) {
         | 
| 487 | 
            -
             | 
| 488 | 
            -
                    // zero address is certainly not registry
         | 
| 489 | 
            -
                    if (registryAddress == address(0)) {
         | 
| 490 | 
            -
                        return false;
         | 
| 491 | 
            -
                    }
         | 
| 492 | 
            -
                    // TODO try catch and return false in case of revert or just panic
         | 
| 493 | 
            -
                    // check if contract returns a zero nft id for its own address
         | 
| 494 | 
            -
                    if (IRegistry(registryAddress).getNftIdForAddress(registryAddress).eqz()) {
         | 
| 495 | 
            -
                        return false;
         | 
| 496 | 
            -
                    }
         | 
| 497 | 
            -
             | 
| 498 | 
            -
                    return true;
         | 
| 499 | 
            -
                }
         | 
| 500 524 | 
             
            }
         | 
| 501 525 |  |