@etherisc/gif-next 0.0.2-e016345-525 → 0.0.2-e04dbfc-031
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 +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +137 -58
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +37 -31
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +83 -3
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +449 -248
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -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 +222 -21
- 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 +348 -184
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +100 -13
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +83 -129
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +207 -33
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -81
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +283 -181
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +74 -60
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +33 -68
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +155 -68
- 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 +92 -42
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +188 -46
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +248 -191
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +207 -33
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +149 -131
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +207 -33
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -45
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +113 -47
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +188 -46
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +305 -150
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +207 -33
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +139 -28
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +100 -7
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +163 -53
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +672 -320
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +188 -46
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +374 -197
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +113 -83
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +26 -38
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +422 -352
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +96 -53
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/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 +68 -38
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +189 -35
- 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 +38 -8
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +52 -22
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +91 -68
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +42 -36
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -21
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +188 -46
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +118 -201
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +50 -64
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +38 -80
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +38 -8
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +120 -175
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +51 -21
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +472 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +265 -278
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +86 -56
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +139 -50
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -27
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +157 -112
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +207 -33
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +260 -187
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +72 -74
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +69 -3
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +105 -68
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +48 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +144 -99
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +58 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +215 -187
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +727 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +68 -66
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +122 -78
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +48 -42
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +157 -112
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +131 -81
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +46 -28
- 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 +26 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
- 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 +64 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +548 -429
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +22 -24
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -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 +324 -54
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +51 -21
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +96 -138
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +44 -50
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +113 -4
- 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 +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 +38 -8
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +28 -45
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -8
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- 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/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 +120 -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 +27 -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 +51 -21
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- 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 +2 -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 +118 -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 +27 -16
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +112 -17
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +130 -6
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +191 -74
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +56 -32
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +30 -57
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +185 -54
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +39 -29
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +143 -129
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +33 -23
- 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 +3 -3
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- 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 +3 -3
- 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 +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +30 -6
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/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/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
- 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/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +4 -4
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +43 -26
- package/contracts/accounting/AccountingServiceManager.sol +1 -1
- package/contracts/accounting/IAccountingService.sol +3 -0
- package/contracts/authorization/AccessAdmin.sol +293 -205
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +307 -231
- package/contracts/authorization/IAccessAdmin.sol +69 -36
- package/contracts/authorization/IAuthorization.sol +21 -1
- package/contracts/distribution/BasicDistribution.sol +12 -8
- package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
- package/contracts/distribution/Distribution.sol +14 -55
- package/contracts/distribution/DistributionService.sol +62 -30
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +0 -9
- package/contracts/distribution/IDistributionService.sol +18 -15
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
- package/contracts/examples/fire/FireProduct.sol +4 -3
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -1
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleProduct.sol +29 -4
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
- package/contracts/instance/BundleSet.sol +4 -4
- package/contracts/instance/IInstance.sol +49 -15
- package/contracts/instance/IInstanceService.sol +15 -1
- package/contracts/instance/Instance.sol +80 -23
- package/contracts/instance/InstanceAdmin.sol +269 -104
- package/contracts/instance/InstanceAuthorizationV3.sol +49 -36
- package/contracts/instance/InstanceReader.sol +106 -35
- package/contracts/instance/InstanceService.sol +144 -73
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +11 -12
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +7 -8
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +3 -2
- package/contracts/instance/module/IDistribution.sol +5 -2
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +20 -19
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPoolAuthorization.sol +21 -13
- package/contracts/pool/BundleService.sol +28 -58
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +13 -20
- package/contracts/pool/IPoolService.sol +50 -38
- package/contracts/pool/Pool.sol +9 -9
- package/contracts/pool/PoolLib.sol +309 -0
- package/contracts/pool/PoolService.sol +334 -190
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +28 -9
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +2 -0
- package/contracts/product/BasicProductAuthorization.sol +23 -8
- package/contracts/product/ClaimService.sol +165 -139
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +3 -0
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +11 -6
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +7 -7
- package/contracts/product/PolicyService.sol +112 -184
- package/contracts/product/PolicyServiceLib.sol +119 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +28 -19
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +55 -13
- package/contracts/product/RiskService.sol +76 -29
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +8 -15
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/Registry.sol +7 -2
- package/contracts/registry/RegistryAdmin.sol +143 -342
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +149 -117
- package/contracts/registry/ServiceAuthorizationV3.sol +159 -2
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +27 -19
- package/contracts/shared/ComponentService.sol +119 -116
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/ContractLib.sol +60 -3
- package/contracts/shared/IComponent.sol +3 -4
- package/contracts/shared/IComponentService.sol +4 -10
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +2 -2
- package/contracts/shared/NftOwnable.sol +6 -5
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +42 -19
- package/contracts/shared/RegistryLinked.sol +1 -1
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +45 -92
- package/contracts/staking/IStaking.sol +12 -10
- package/contracts/staking/IStakingService.sol +19 -1
- package/contracts/staking/Staking.sol +57 -26
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
- package/contracts/staking/StakingReader.sol +6 -16
- package/contracts/staking/StakingService.sol +71 -44
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/staking/StakingStore.sol +2 -1
- package/contracts/type/ObjectType.sol +47 -39
- package/contracts/type/RiskId.sol +9 -3
- package/contracts/type/RoleId.sol +24 -4
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +9 -119
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +2 -2
- 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/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- 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
@@ -4,36 +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 {ObjectType, ObjectTypeLib, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
|
10
|
-
import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
11
|
-
import {Seconds} from "../type/Seconds.sol";
|
12
|
-
import {StateId, SCHEDULED, DEPLOYING, DEPLOYED, SKIPPED, ACTIVE, PAUSED} from "../type/StateId.sol";
|
13
|
-
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
14
|
-
|
15
|
-
import {IService} from "../shared/IService.sol";
|
16
|
-
import {IRegisterable} from "../shared/IRegisterable.sol";
|
17
|
-
|
7
|
+
import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
|
8
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
18
9
|
import {IRegistry} from "./IRegistry.sol";
|
10
|
+
import {IRelease} from "./IRelease.sol";
|
19
11
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
12
|
+
import {IService} from "../shared/IService.sol";
|
20
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, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
|
21
18
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
22
19
|
import {Registry} from "./Registry.sol";
|
20
|
+
import {ReleaseAdmin} from "./ReleaseAdmin.sol";
|
23
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";
|
24
26
|
|
25
|
-
|
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.
|
26
34
|
contract ReleaseRegistry is
|
27
35
|
AccessManaged,
|
28
36
|
ReleaseLifecycle,
|
29
37
|
IRegistryLinked
|
30
38
|
{
|
31
|
-
uint256 public constant INITIAL_GIF_VERSION = 3;// first active version
|
39
|
+
uint256 public constant INITIAL_GIF_VERSION = 3;// first active release version
|
32
40
|
|
33
|
-
event LogReleaseCreation(VersionPart
|
34
|
-
event LogReleaseActivation(VersionPart
|
35
|
-
event LogReleaseDisabled(VersionPart
|
36
|
-
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);
|
37
45
|
|
38
46
|
// constructor
|
39
47
|
error ErrorReleaseRegistryNotRegistry(Registry registry);
|
@@ -41,7 +49,7 @@ contract ReleaseRegistry is
|
|
41
49
|
// _verifyServiceAuthorization
|
42
50
|
error ErrorReleaseRegistryNotServiceAuth(address notAuth);
|
43
51
|
error ErrorReleaseRegistryServiceAuthVersionMismatch(IServiceAuthorization auth, VersionPart expected, VersionPart actual);
|
44
|
-
error ErrorReleaseRegistryServiceAuthDomainsZero(IServiceAuthorization auth, VersionPart
|
52
|
+
error ErrorReleaseRegistryServiceAuthDomainsZero(IServiceAuthorization auth, VersionPart release);
|
45
53
|
|
46
54
|
// registerService
|
47
55
|
error ErrorReleaseRegistryServiceAddressMismatch(address expected, address actual);
|
@@ -63,17 +71,21 @@ contract ReleaseRegistry is
|
|
63
71
|
error ErrorReleaseRegistryServiceSelfRegistration(IService service);
|
64
72
|
error ErrorReleaseRegistryServiceOwnerRegistered(IService service, address owner);
|
65
73
|
|
66
|
-
RegistryAdmin public immutable
|
74
|
+
RegistryAdmin public immutable _registryAdmin;
|
67
75
|
Registry public immutable _registry;
|
68
76
|
|
69
|
-
mapping(VersionPart
|
70
|
-
VersionPart [] internal _release; // array of all created releases
|
71
|
-
|
72
|
-
|
77
|
+
mapping(VersionPart release => IRelease.ReleaseInfo info) internal _releaseInfo;
|
78
|
+
VersionPart [] internal _release; // array of all created releases
|
79
|
+
ReleaseAdmin internal _masterReleaseAdmin;
|
80
|
+
|
81
|
+
VersionPart internal _latest; // latest active release
|
82
|
+
VersionPart internal _next; // release version to create and activate
|
73
83
|
|
74
|
-
|
75
|
-
uint256 internal
|
84
|
+
// counters per release
|
85
|
+
uint256 internal _registeredServices = 0;
|
86
|
+
uint256 internal _servicesToRegister = 0;
|
76
87
|
|
88
|
+
// TODO move master relase admin outside constructor (same construction as for registry admin)
|
77
89
|
constructor(Registry registry)
|
78
90
|
AccessManaged(msg.sender)
|
79
91
|
{
|
@@ -84,30 +96,33 @@ contract ReleaseRegistry is
|
|
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(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 releaseAuth = _releaseInfo[releaseVersion].auth;
|
186
|
+
ObjectType expectedDomain = releaseAuth.getServiceDomain(_registeredServices);
|
169
187
|
|
170
188
|
// service can work with release registry and release version
|
171
189
|
(
|
@@ -195,89 +213,82 @@ 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(
|
219
|
+
releaseAuth,
|
200
220
|
service,
|
201
221
|
serviceDomain,
|
202
222
|
releaseVersion);
|
223
|
+
releaseAdmin.setReleaseLocked(true);
|
203
224
|
|
204
225
|
// register service with registry
|
205
226
|
nftId = _registry.registerService(info, serviceVersion, serviceDomain);
|
206
227
|
service.linkToRegisteredNftId();
|
207
228
|
}
|
229
|
+
|
230
|
+
|
208
231
|
// TODO return activated version
|
209
232
|
function activateNextRelease()
|
210
233
|
external
|
211
234
|
restricted // GIF_ADMIN_ROLE
|
212
235
|
{
|
213
|
-
VersionPart
|
236
|
+
VersionPart release = _next;
|
214
237
|
|
215
238
|
// release can transition to ACTIVE state
|
216
|
-
checkTransition(_releaseInfo[
|
239
|
+
checkTransition(_releaseInfo[release].state, RELEASE(), DEPLOYED(), ACTIVE());
|
217
240
|
|
218
|
-
_latest =
|
219
|
-
_releaseInfo[
|
220
|
-
_releaseInfo[
|
241
|
+
_latest = release;
|
242
|
+
_releaseInfo[release].state = ACTIVE();
|
243
|
+
_releaseInfo[release].activatedAt = TimestampLib.blockTimestamp();
|
244
|
+
_releaseInfo[release].disabledAt = TimestampLib.max();
|
221
245
|
|
222
246
|
// grant special roles for registry/staking/pool services
|
223
247
|
// this will enable access to core contracts functions
|
224
248
|
|
225
249
|
// registry service MUST be registered for each release
|
226
|
-
address service = _registry.getServiceAddress(REGISTRY(),
|
250
|
+
address service = _registry.getServiceAddress(REGISTRY(), release);
|
227
251
|
if(service == address(0)) {
|
228
|
-
revert ErrorReleaseRegistryRegistryServiceMissing(
|
252
|
+
revert ErrorReleaseRegistryRegistryServiceMissing(release);
|
229
253
|
}
|
230
254
|
|
231
|
-
|
255
|
+
_registryAdmin.grantServiceRoleForAllVersions(IService(service), REGISTRY());
|
232
256
|
|
233
|
-
service = _registry.getServiceAddress(STAKING(),
|
257
|
+
service = _registry.getServiceAddress(STAKING(), release);
|
234
258
|
if(service != address(0)) {
|
235
|
-
|
259
|
+
_registryAdmin.grantServiceRoleForAllVersions(IService(service), STAKING());
|
236
260
|
}
|
237
261
|
|
238
|
-
service = _registry.getServiceAddress(POOL(),
|
262
|
+
service = _registry.getServiceAddress(POOL(), release);
|
239
263
|
if(service != address(0)) {
|
240
|
-
|
264
|
+
_registryAdmin.grantServiceRoleForAllVersions(IService(service), POOL());
|
241
265
|
}
|
242
266
|
|
243
|
-
|
244
|
-
// TODO test how many service can be locked in one transaction
|
245
|
-
// -> add to docs + each release must test for this -> add to release version tests (in test call with some gas limit?)
|
246
|
-
_setReleaseLocked(version, false);
|
267
|
+
_setReleaseLocked(release, false);
|
247
268
|
|
248
|
-
emit LogReleaseActivation(
|
269
|
+
emit LogReleaseActivation(release);
|
249
270
|
}
|
250
271
|
|
251
|
-
/// @dev stop
|
252
|
-
function
|
253
|
-
|
254
|
-
restricted
|
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();
|
261
|
-
|
262
|
-
_setReleaseLocked(version, true);
|
263
|
-
|
264
|
-
emit LogReleaseDisabled(version);
|
265
|
-
}
|
266
|
-
|
267
|
-
/// @dev resume operations with release services
|
268
|
-
function unpauseRelease(VersionPart version)
|
269
|
-
external
|
270
|
-
restricted // GIF_ADMIN_ROLE
|
272
|
+
/// @dev stop/resume operations with restricted functions
|
273
|
+
function setActive(VersionPart release, bool active)
|
274
|
+
public
|
275
|
+
restricted
|
271
276
|
{
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
277
|
+
StateId state = _releaseInfo[release].state;
|
278
|
+
|
279
|
+
if(active) {
|
280
|
+
checkTransition(state, RELEASE(), PAUSED(), ACTIVE());
|
281
|
+
_releaseInfo[release].state = ACTIVE();
|
282
|
+
_releaseInfo[release].disabledAt = TimestampLib.max();
|
283
|
+
emit LogReleaseEnabled(release);
|
284
|
+
} else {
|
285
|
+
checkTransition(state, RELEASE(), ACTIVE(), PAUSED());
|
286
|
+
_releaseInfo[release].state = PAUSED();
|
287
|
+
_releaseInfo[release].disabledAt = TimestampLib.blockTimestamp();
|
288
|
+
emit LogReleaseDisabled(release);
|
289
|
+
}
|
279
290
|
|
280
|
-
|
291
|
+
_setReleaseLocked(release, !active);
|
281
292
|
}
|
282
293
|
|
283
294
|
//--- view functions ----------------------------------------------------//
|
@@ -290,12 +301,12 @@ contract ReleaseRegistry is
|
|
290
301
|
return Clones.predictDeterministicAddress(implementation, salt, deployer);
|
291
302
|
}
|
292
303
|
|
293
|
-
function isActiveRelease(VersionPart
|
294
|
-
return _releaseInfo[
|
304
|
+
function isActiveRelease(VersionPart release) public view returns(bool) {
|
305
|
+
return _releaseInfo[release].state == ACTIVE();
|
295
306
|
}
|
296
307
|
|
297
|
-
function getReleaseInfo(VersionPart
|
298
|
-
return _releaseInfo[
|
308
|
+
function getReleaseInfo(VersionPart release) external view returns(IRelease.ReleaseInfo memory) {
|
309
|
+
return _releaseInfo[release];
|
299
310
|
}
|
300
311
|
|
301
312
|
/// @dev Returns the number of created releases.
|
@@ -306,7 +317,7 @@ contract ReleaseRegistry is
|
|
306
317
|
|
307
318
|
/// @dev Returns the n-th release version.
|
308
319
|
/// Valid values for idx [0 .. releases() - 1]
|
309
|
-
function getVersion(uint256 idx) external view returns (VersionPart
|
320
|
+
function getVersion(uint256 idx) external view returns (VersionPart release) {
|
310
321
|
// return _releases;
|
311
322
|
return _release[idx];
|
312
323
|
}
|
@@ -321,24 +332,24 @@ contract ReleaseRegistry is
|
|
321
332
|
return _latest;
|
322
333
|
}
|
323
334
|
|
324
|
-
function getState(VersionPart
|
325
|
-
return _releaseInfo[
|
335
|
+
function getState(VersionPart release) external view returns (StateId stateId) {
|
336
|
+
return _releaseInfo[release].state;
|
326
337
|
}
|
327
338
|
|
328
339
|
function getRemainingServicesToRegister() external view returns (uint256 services) {
|
329
340
|
return _servicesToRegister - _registeredServices;
|
330
341
|
}
|
331
342
|
|
332
|
-
function getServiceAuthorization(VersionPart
|
343
|
+
function getServiceAuthorization(VersionPart release)
|
333
344
|
external
|
334
345
|
view
|
335
346
|
returns (IServiceAuthorization serviceAuthorization)
|
336
347
|
{
|
337
|
-
return _releaseInfo[
|
348
|
+
return _releaseInfo[release].auth;
|
338
349
|
}
|
339
350
|
|
340
351
|
function getRegistryAdmin() external view returns (address) {
|
341
|
-
return address(
|
352
|
+
return address(_registryAdmin);
|
342
353
|
}
|
343
354
|
|
344
355
|
//--- IRegistryLinked ------------------------------------------------------//
|
@@ -349,27 +360,48 @@ contract ReleaseRegistry is
|
|
349
360
|
|
350
361
|
//--- private functions ----------------------------------------------------//
|
351
362
|
|
352
|
-
|
353
|
-
function _setReleaseLocked(VersionPart version, bool locked)
|
363
|
+
function _setReleaseLocked(VersionPart release, bool locked)
|
354
364
|
private
|
355
365
|
{
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
366
|
+
ReleaseAdmin(
|
367
|
+
_releaseInfo[release].releaseAdmin).setReleaseLocked(locked);
|
368
|
+
}
|
369
|
+
|
370
|
+
function _cloneNewReleaseAdmin(VersionPart release)
|
371
|
+
private
|
372
|
+
returns (ReleaseAdmin clonedAdmin)
|
373
|
+
{
|
374
|
+
// clone and setup release specific release admin
|
375
|
+
clonedAdmin = ReleaseAdmin(
|
376
|
+
Clones.clone(address(_masterReleaseAdmin)));
|
377
|
+
|
378
|
+
string memory releaseAdminName = string(
|
379
|
+
abi.encodePacked(
|
380
|
+
"ReleaseAdmin_v",
|
381
|
+
release.toString()));
|
382
|
+
|
383
|
+
clonedAdmin.initialize(
|
384
|
+
address(_cloneNewAccessManager()),
|
385
|
+
releaseAdminName);
|
386
|
+
|
387
|
+
clonedAdmin.completeSetup(
|
388
|
+
address(_registry),
|
389
|
+
address(this), // release registry (this contract)
|
390
|
+
release);
|
391
|
+
|
392
|
+
// lock release (remains locked until activation)
|
393
|
+
clonedAdmin.setReleaseLocked(true);
|
394
|
+
}
|
395
|
+
|
369
396
|
|
370
|
-
|
397
|
+
function _cloneNewAccessManager()
|
398
|
+
private
|
399
|
+
returns (address accessManager)
|
400
|
+
{
|
401
|
+
return Clones.clone(address(_registryAdmin.authority()));
|
371
402
|
}
|
372
403
|
|
404
|
+
|
373
405
|
function _verifyServiceAuthorization(
|
374
406
|
IServiceAuthorization serviceAuthorization,
|
375
407
|
VersionPart releaseVersion,
|
@@ -381,7 +413,7 @@ contract ReleaseRegistry is
|
|
381
413
|
{
|
382
414
|
// authorization contract supports IServiceAuthorization interface
|
383
415
|
if(!serviceAuthorization.supportsInterface(type(IServiceAuthorization).interfaceId)) {
|
384
|
-
|
416
|
+
revert ErrorReleaseRegistryNotServiceAuth(address(serviceAuthorization));
|
385
417
|
}
|
386
418
|
|
387
419
|
// authorizaions contract version matches with release version
|