@etherisc/gif-next 0.0.2-f1f3b2c-994 → 0.0.2-f2273b3-211
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 +27 -6
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +163 -55
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +200 -16
- 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 +94 -14
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +107 -15
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +2 -2
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +8 -8
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +175 -216
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +206 -27
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +113 -130
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +275 -171
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +111 -65
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +100 -112
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +148 -72
- 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 +158 -195
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +206 -27
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +336 -295
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +203 -28
- 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 +215 -168
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +156 -153
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +282 -193
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +717 -292
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
- 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/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +158 -57
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +211 -82
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +386 -117
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +150 -90
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +590 -204
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +129 -157
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +75 -45
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +445 -375
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- 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 +3 -3
- 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 +132 -173
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +180 -29
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +94 -106
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +108 -125
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +151 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +95 -41
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +107 -152
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +206 -27
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +156 -326
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +79 -101
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +84 -135
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +94 -145
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +192 -229
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +107 -163
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +330 -368
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +119 -69
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +130 -54
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +71 -41
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +228 -186
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +206 -27
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +272 -173
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +100 -78
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +89 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +170 -19
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +139 -54
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +105 -52
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +211 -164
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +55 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +235 -170
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +102 -64
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +181 -116
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +89 -51
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +224 -182
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +112 -63
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +80 -38
- 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 +98 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
- 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/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +142 -38
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +277 -213
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +181 -74
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -33
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +3 -3
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +337 -65
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +12 -12
- 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 +105 -104
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +483 -485
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +99 -73
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +55 -2
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +454 -5
- 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 +92 -86
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +446 -276
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +94 -106
- 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/INftOwnable.sol/INftOwnable.json +16 -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 +148 -0
- 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 +55 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +107 -124
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.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 +18 -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 +152 -38
- 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 +55 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
- 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 +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +113 -136
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +130 -16
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +49 -49
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +203 -206
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +3 -3
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +93 -51
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -57
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +181 -55
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +77 -39
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +130 -130
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -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 +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 +2 -2
- 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 +62 -5
- 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 +47 -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 +44 -12
- 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 +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +216 -125
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +321 -205
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +14 -8
- package/contracts/authorization/IAuthorization.sol +27 -7
- package/contracts/authorization/IServiceAuthorization.sol +1 -1
- package/contracts/authorization/ServiceAuthorization.sol +4 -4
- package/contracts/distribution/BasicDistribution.sol +15 -12
- package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
- package/contracts/distribution/Distribution.sol +41 -47
- package/contracts/distribution/DistributionService.sol +100 -78
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +19 -19
- package/contracts/examples/fire/FirePool.sol +25 -10
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +40 -13
- package/contracts/examples/fire/FireProductAuthorization.sol +3 -3
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +11 -4
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +37 -7
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +49 -23
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +17 -10
- package/contracts/instance/IInstanceService.sol +9 -29
- package/contracts/instance/Instance.sol +52 -34
- package/contracts/instance/InstanceAdmin.sol +249 -100
- package/contracts/instance/InstanceAuthorizationV3.sol +54 -45
- package/contracts/instance/InstanceReader.sol +174 -32
- package/contracts/instance/InstanceService.sol +85 -146
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +10 -7
- package/contracts/instance/module/IDistribution.sol +2 -1
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +5 -16
- package/contracts/oracle/OracleService.sol +107 -78
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +33 -24
- package/contracts/pool/BasicPoolAuthorization.sol +27 -9
- package/contracts/pool/BundleService.sol +88 -154
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +15 -43
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +58 -64
- package/contracts/pool/Pool.sol +112 -120
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +436 -242
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +24 -16
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +10 -12
- package/contracts/product/BasicProductAuthorization.sol +24 -11
- package/contracts/product/ClaimService.sol +202 -151
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +26 -11
- package/contracts/product/IPricingService.sol +9 -9
- package/contracts/product/IProductComponent.sol +10 -1
- package/contracts/product/PolicyService.sol +248 -252
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +30 -26
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +106 -60
- package/contracts/product/RiskService.sol +74 -25
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +10 -11
- package/contracts/registry/IRegistry.sol +14 -15
- package/contracts/registry/IRegistryService.sol +6 -4
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +29 -6
- package/contracts/registry/RegistryAdmin.sol +132 -226
- package/contracts/registry/RegistryService.sol +40 -58
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +139 -124
- package/contracts/registry/ServiceAuthorizationV3.sol +97 -48
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +69 -118
- package/contracts/shared/ComponentService.sol +422 -371
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +27 -15
- package/contracts/shared/ContractLib.sol +224 -9
- package/contracts/shared/IComponent.sol +8 -20
- package/contracts/shared/IComponentService.sol +41 -37
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +68 -42
- package/contracts/shared/Lifecycle.sol +7 -7
- package/contracts/shared/NftOwnable.sol +26 -6
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +53 -19
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +9 -31
- package/contracts/shared/TokenHandler.sol +274 -72
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +6 -10
- package/contracts/staking/IStakingService.sol +12 -4
- package/contracts/staking/StakeManagerLib.sol +69 -20
- package/contracts/staking/Staking.sol +73 -41
- package/contracts/staking/StakingReader.sol +1 -16
- package/contracts/staking/StakingService.sol +70 -24
- package/contracts/staking/StakingServiceManager.sol +5 -4
- 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 +48 -21
- package/contracts/type/RiskId.sol +23 -6
- package/contracts/type/RoleId.sol +23 -15
- 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 +15 -5
- package/contracts/upgradeability/ProxyManager.sol +2 -1
- package/package.json +3 -3
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- 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/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/module/IAccess.sol +0 -46
@@ -4,6 +4,7 @@ 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 {ContractLib} from "../shared/ContractLib.sol";
|
7
8
|
import {NftId} from "../type/NftId.sol";
|
8
9
|
import {ObjectType, ObjectTypeLib, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
|
9
10
|
import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
@@ -12,30 +13,37 @@ import {StateId, SCHEDULED, DEPLOYING, DEPLOYED, SKIPPED, ACTIVE, PAUSED} from "
|
|
12
13
|
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
13
14
|
|
14
15
|
import {IService} from "../shared/IService.sol";
|
15
|
-
|
16
|
+
|
17
|
+
import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
|
18
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
16
19
|
|
17
20
|
import {IRegistry} from "./IRegistry.sol";
|
21
|
+
import {IRelease} from "./IRelease.sol";
|
18
22
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
19
23
|
import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
|
20
24
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
21
25
|
import {Registry} from "./Registry.sol";
|
22
26
|
import {ReleaseLifecycle} from "./ReleaseLifecycle.sol";
|
23
|
-
|
24
|
-
|
25
|
-
|
27
|
+
import {ReleaseAdmin} from "./ReleaseAdmin.sol";
|
28
|
+
|
29
|
+
/// @dev The ReleaseRegistry manages the lifecycle of major GIF releases and their services.
|
30
|
+
/// The creation of a new GIF release is a multi-step process:
|
31
|
+
/// 1. The creation of a new GIF release is initiated by the GIF admin.
|
32
|
+
/// 2. A GIF manager then prepares the release by setting up the service authorization contract.
|
33
|
+
/// 3. The GIF manager deploys and registers all related service contracts with the release registry.
|
34
|
+
/// 4. The GIF admin verifies and activates the release.
|
35
|
+
/// 3. The GIF admin may pause and resume a release.
|
26
36
|
contract ReleaseRegistry is
|
27
37
|
AccessManaged,
|
28
38
|
ReleaseLifecycle,
|
29
39
|
IRegistryLinked
|
30
40
|
{
|
31
|
-
|
32
|
-
|
33
|
-
uint256 public constant INITIAL_GIF_VERSION = 3;// first active version
|
41
|
+
uint256 public constant INITIAL_GIF_VERSION = 3;// first active release version
|
34
42
|
|
35
|
-
event LogReleaseCreation(VersionPart
|
36
|
-
event LogReleaseActivation(VersionPart
|
37
|
-
event LogReleaseDisabled(VersionPart
|
38
|
-
event LogReleaseEnabled(VersionPart
|
43
|
+
event LogReleaseCreation(IAccessAdmin admin, VersionPart release, bytes32 salt);
|
44
|
+
event LogReleaseActivation(VersionPart release);
|
45
|
+
event LogReleaseDisabled(VersionPart release);
|
46
|
+
event LogReleaseEnabled(VersionPart release);
|
39
47
|
|
40
48
|
// constructor
|
41
49
|
error ErrorReleaseRegistryNotRegistry(Registry registry);
|
@@ -43,7 +51,7 @@ contract ReleaseRegistry is
|
|
43
51
|
// _verifyServiceAuthorization
|
44
52
|
error ErrorReleaseRegistryNotServiceAuth(address notAuth);
|
45
53
|
error ErrorReleaseRegistryServiceAuthVersionMismatch(IServiceAuthorization auth, VersionPart expected, VersionPart actual);
|
46
|
-
error ErrorReleaseRegistryServiceAuthDomainsZero(IServiceAuthorization auth, VersionPart
|
54
|
+
error ErrorReleaseRegistryServiceAuthDomainsZero(IServiceAuthorization auth, VersionPart release);
|
47
55
|
|
48
56
|
// registerService
|
49
57
|
error ErrorReleaseRegistryServiceAddressMismatch(address expected, address actual);
|
@@ -65,25 +73,24 @@ contract ReleaseRegistry is
|
|
65
73
|
error ErrorReleaseRegistryServiceSelfRegistration(IService service);
|
66
74
|
error ErrorReleaseRegistryServiceOwnerRegistered(IService service, address owner);
|
67
75
|
|
68
|
-
Seconds public constant MIN_DISABLE_DELAY = Seconds.wrap(60 * 24 * 365); // 1 year
|
69
|
-
|
70
76
|
RegistryAdmin public immutable _admin;
|
71
77
|
Registry public immutable _registry;
|
72
78
|
|
73
|
-
mapping(VersionPart
|
74
|
-
|
79
|
+
mapping(VersionPart release => IRelease.ReleaseInfo info) internal _releaseInfo;
|
80
|
+
VersionPart [] internal _release; // array of all created releases
|
81
|
+
ReleaseAdmin internal _masterReleaseAdmin;
|
75
82
|
|
76
|
-
VersionPart internal _latest; // latest active
|
77
|
-
VersionPart internal _next; // version to create and activate
|
83
|
+
VersionPart internal _latest; // latest active release
|
84
|
+
VersionPart internal _next; // release version to create and activate
|
78
85
|
|
79
|
-
|
80
|
-
uint256 internal
|
86
|
+
// counters per release
|
87
|
+
uint256 internal _registeredServices = 0;
|
88
|
+
uint256 internal _servicesToRegister = 0;
|
81
89
|
|
82
90
|
constructor(Registry registry)
|
83
91
|
AccessManaged(msg.sender)
|
84
92
|
{
|
85
|
-
|
86
|
-
if(!_isRegistry(address(registry))) {
|
93
|
+
if (!ContractLib.isRegistry(address(registry))) {
|
87
94
|
revert ErrorReleaseRegistryNotRegistry(registry);
|
88
95
|
}
|
89
96
|
|
@@ -92,27 +99,31 @@ contract ReleaseRegistry is
|
|
92
99
|
_registry = registry;
|
93
100
|
_admin = RegistryAdmin(_registry.getRegistryAdminAddress());
|
94
101
|
|
102
|
+
_masterReleaseAdmin = new ReleaseAdmin();
|
103
|
+
|
95
104
|
_next = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION - 1);
|
96
105
|
}
|
97
106
|
|
98
|
-
/// @dev
|
99
|
-
///
|
107
|
+
/// @dev Initiates the creation of a new GIF release by the GIF admin.
|
108
|
+
/// Sets previous release into SKIPPED state if it was created but not activated.
|
109
|
+
/// Sets the new release into state SCHEDULED.
|
100
110
|
function createNextRelease()
|
101
111
|
external
|
102
112
|
restricted() // GIF_ADMIN_ROLE
|
103
113
|
returns(VersionPart)
|
104
114
|
{
|
105
|
-
VersionPart
|
115
|
+
VersionPart release = _next;
|
106
116
|
|
107
|
-
if(isValidTransition(RELEASE(), _releaseInfo[
|
108
|
-
_releaseInfo[
|
117
|
+
if(isValidTransition(RELEASE(), _releaseInfo[release].state, SKIPPED())) {
|
118
|
+
_releaseInfo[release].state = SKIPPED();
|
109
119
|
}
|
110
120
|
|
111
|
-
|
121
|
+
release = VersionPartLib.toVersionPart(release.toInt() + 1);
|
122
|
+
_release.push(release);
|
112
123
|
|
113
|
-
_next =
|
114
|
-
_releaseInfo[
|
115
|
-
_releaseInfo[
|
124
|
+
_next = release;
|
125
|
+
_releaseInfo[release].version = release;
|
126
|
+
_releaseInfo[release].state = getInitialState(RELEASE());
|
116
127
|
_servicesToRegister = 0;
|
117
128
|
_registeredServices = 0;
|
118
129
|
|
@@ -126,7 +137,7 @@ contract ReleaseRegistry is
|
|
126
137
|
external
|
127
138
|
restricted() // GIF_MANAGER_ROLE
|
128
139
|
returns(
|
129
|
-
|
140
|
+
ReleaseAdmin releaseAdmin,
|
130
141
|
VersionPart releaseVersion,
|
131
142
|
bytes32 releaseSalt
|
132
143
|
)
|
@@ -136,10 +147,13 @@ contract ReleaseRegistry is
|
|
136
147
|
// release can transition into DEPLOYING state
|
137
148
|
checkTransition(_releaseInfo[releaseVersion].state, RELEASE(), SCHEDULED(), DEPLOYING());
|
138
149
|
|
150
|
+
// verify authorizations
|
139
151
|
uint256 serviceDomainsCount = _verifyServiceAuthorization(serviceAuthorization, releaseVersion, salt);
|
140
152
|
|
141
|
-
|
153
|
+
// create and initialize release admin
|
154
|
+
releaseAdmin = _cloneNewReleaseAdmin(releaseVersion);
|
142
155
|
releaseSalt = salt;
|
156
|
+
|
143
157
|
// ensures unique salt
|
144
158
|
// TODO CreateX have clones capability also
|
145
159
|
// what would releaseSalt look like if used with CreateX in pemissioned mode?
|
@@ -153,9 +167,9 @@ contract ReleaseRegistry is
|
|
153
167
|
_releaseInfo[releaseVersion].salt = releaseSalt;
|
154
168
|
// TODO allow for the same serviceAuthorization address to be used for multiple releases?
|
155
169
|
_releaseInfo[releaseVersion].auth = serviceAuthorization;
|
156
|
-
|
170
|
+
_releaseInfo[releaseVersion].releaseAdmin = address(releaseAdmin);
|
157
171
|
|
158
|
-
emit LogReleaseCreation(releaseVersion, releaseSalt);
|
172
|
+
emit LogReleaseCreation(releaseAdmin, releaseVersion, releaseSalt);
|
159
173
|
}
|
160
174
|
|
161
175
|
function registerService(IService service)
|
@@ -168,9 +182,9 @@ contract ReleaseRegistry is
|
|
168
182
|
// release can transition to DEPLOYED state
|
169
183
|
checkTransition(_releaseInfo[releaseVersion].state, RELEASE(), DEPLOYING(), DEPLOYED());
|
170
184
|
|
171
|
-
address releaseAuthority =
|
172
|
-
IServiceAuthorization
|
173
|
-
ObjectType expectedDomain =
|
185
|
+
address releaseAuthority = ReleaseAdmin(_releaseInfo[releaseVersion].releaseAdmin).authority();
|
186
|
+
IServiceAuthorization releaseAuth = _releaseInfo[releaseVersion].auth;
|
187
|
+
ObjectType expectedDomain = releaseAuth.getServiceDomain(_registeredServices);
|
174
188
|
|
175
189
|
// service can work with release registry and release version
|
176
190
|
(
|
@@ -200,90 +214,82 @@ contract ReleaseRegistry is
|
|
200
214
|
// revert ErrorReleaseRegistryServiceAddressMismatch()
|
201
215
|
|
202
216
|
// setup service authorization
|
203
|
-
|
204
|
-
|
217
|
+
ReleaseAdmin releaseAdmin = ReleaseAdmin(_releaseInfo[releaseVersion].releaseAdmin);
|
218
|
+
releaseAdmin.setReleaseLocked(false);
|
219
|
+
releaseAdmin.authorizeService(
|
220
|
+
releaseAuth,
|
205
221
|
service,
|
206
222
|
serviceDomain,
|
207
223
|
releaseVersion);
|
224
|
+
releaseAdmin.setReleaseLocked(true);
|
208
225
|
|
209
226
|
// register service with registry
|
210
227
|
nftId = _registry.registerService(info, serviceVersion, serviceDomain);
|
211
228
|
service.linkToRegisteredNftId();
|
212
229
|
}
|
230
|
+
|
231
|
+
|
213
232
|
// TODO return activated version
|
214
233
|
function activateNextRelease()
|
215
234
|
external
|
216
235
|
restricted // GIF_ADMIN_ROLE
|
217
236
|
{
|
218
|
-
VersionPart
|
237
|
+
VersionPart release = _next;
|
219
238
|
|
220
239
|
// release can transition to ACTIVE state
|
221
|
-
checkTransition(_releaseInfo[
|
240
|
+
checkTransition(_releaseInfo[release].state, RELEASE(), DEPLOYED(), ACTIVE());
|
222
241
|
|
223
|
-
_latest =
|
224
|
-
|
225
|
-
_releaseInfo[
|
226
|
-
_releaseInfo[
|
242
|
+
_latest = release;
|
243
|
+
_releaseInfo[release].state = ACTIVE();
|
244
|
+
_releaseInfo[release].activatedAt = TimestampLib.blockTimestamp();
|
245
|
+
_releaseInfo[release].disabledAt = TimestampLib.max();
|
227
246
|
|
228
247
|
// grant special roles for registry/staking/pool services
|
229
248
|
// this will enable access to core contracts functions
|
230
249
|
|
231
250
|
// registry service MUST be registered for each release
|
232
|
-
address service = _registry.getServiceAddress(REGISTRY(),
|
251
|
+
address service = _registry.getServiceAddress(REGISTRY(), release);
|
233
252
|
if(service == address(0)) {
|
234
|
-
revert ErrorReleaseRegistryRegistryServiceMissing(
|
253
|
+
revert ErrorReleaseRegistryRegistryServiceMissing(release);
|
235
254
|
}
|
236
255
|
|
237
256
|
_admin.grantServiceRoleForAllVersions(IService(service), REGISTRY());
|
238
257
|
|
239
|
-
service = _registry.getServiceAddress(STAKING(),
|
258
|
+
service = _registry.getServiceAddress(STAKING(), release);
|
240
259
|
if(service != address(0)) {
|
241
260
|
_admin.grantServiceRoleForAllVersions(IService(service), STAKING());
|
242
261
|
}
|
243
262
|
|
244
|
-
service = _registry.getServiceAddress(POOL(),
|
263
|
+
service = _registry.getServiceAddress(POOL(), release);
|
245
264
|
if(service != address(0)) {
|
246
265
|
_admin.grantServiceRoleForAllVersions(IService(service), POOL());
|
247
266
|
}
|
248
267
|
|
249
|
-
|
250
|
-
// TODO test how many service can be locked in one transaction
|
251
|
-
// -> add to docs + each release must test for this -> add to release version tests (in test call with some gas limit?)
|
252
|
-
_setReleaseLocked(version, false);
|
268
|
+
_setReleaseLocked(release, false);
|
253
269
|
|
254
|
-
emit LogReleaseActivation(
|
270
|
+
emit LogReleaseActivation(release);
|
255
271
|
}
|
256
272
|
|
257
|
-
/// @dev stop
|
258
|
-
function
|
259
|
-
|
260
|
-
restricted
|
273
|
+
/// @dev stop/resume operations with restricted functions
|
274
|
+
function setActive(VersionPart release, bool active)
|
275
|
+
public
|
276
|
+
restricted
|
261
277
|
{
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
external
|
276
|
-
restricted // GIF_ADMIN_ROLE
|
277
|
-
{
|
278
|
-
// release can transition to ACTIVE state
|
279
|
-
checkTransition(_releaseInfo[version].state, RELEASE(), PAUSED(), ACTIVE());
|
280
|
-
|
281
|
-
_releaseInfo[version].state = ACTIVE();
|
282
|
-
_releaseInfo[version].disabledAt = zeroTimestamp();
|
283
|
-
|
284
|
-
_setReleaseLocked(version, false);
|
278
|
+
StateId state = _releaseInfo[release].state;
|
279
|
+
|
280
|
+
if(active) {
|
281
|
+
checkTransition(state, RELEASE(), PAUSED(), ACTIVE());
|
282
|
+
_releaseInfo[release].state = ACTIVE();
|
283
|
+
_releaseInfo[release].disabledAt = TimestampLib.max();
|
284
|
+
emit LogReleaseEnabled(release);
|
285
|
+
} else {
|
286
|
+
checkTransition(state, RELEASE(), ACTIVE(), PAUSED());
|
287
|
+
_releaseInfo[release].state = PAUSED();
|
288
|
+
_releaseInfo[release].disabledAt = TimestampLib.blockTimestamp();
|
289
|
+
emit LogReleaseDisabled(release);
|
290
|
+
}
|
285
291
|
|
286
|
-
|
292
|
+
_setReleaseLocked(release, !active);
|
287
293
|
}
|
288
294
|
|
289
295
|
//--- view functions ----------------------------------------------------//
|
@@ -296,40 +302,51 @@ contract ReleaseRegistry is
|
|
296
302
|
return Clones.predictDeterministicAddress(implementation, salt, deployer);
|
297
303
|
}
|
298
304
|
|
299
|
-
function isActiveRelease(VersionPart
|
300
|
-
return _releaseInfo[
|
305
|
+
function isActiveRelease(VersionPart release) public view returns(bool) {
|
306
|
+
return _releaseInfo[release].state == ACTIVE();
|
301
307
|
}
|
302
308
|
|
303
|
-
function getReleaseInfo(VersionPart
|
304
|
-
return _releaseInfo[
|
309
|
+
function getReleaseInfo(VersionPart release) external view returns(IRelease.ReleaseInfo memory) {
|
310
|
+
return _releaseInfo[release];
|
305
311
|
}
|
306
312
|
|
313
|
+
/// @dev Returns the number of created releases.
|
314
|
+
/// Releases might be in another state than ACTIVE.
|
307
315
|
function releases() external view returns (uint) {
|
308
|
-
return
|
316
|
+
return _release.length;
|
317
|
+
}
|
318
|
+
|
319
|
+
/// @dev Returns the n-th release version.
|
320
|
+
/// Valid values for idx [0 .. releases() - 1]
|
321
|
+
function getVersion(uint256 idx) external view returns (VersionPart release) {
|
322
|
+
// return _releases;
|
323
|
+
return _release[idx];
|
309
324
|
}
|
310
325
|
|
311
326
|
function getNextVersion() public view returns(VersionPart) {
|
312
327
|
return _next;
|
313
328
|
}
|
314
329
|
|
330
|
+
/// @dev Returns the latest activated relase version.
|
331
|
+
/// There is no guarantee that the release is not currently paused.
|
315
332
|
function getLatestVersion() external view returns(VersionPart) {
|
316
333
|
return _latest;
|
317
334
|
}
|
318
335
|
|
319
|
-
function getState(VersionPart
|
320
|
-
return _releaseInfo[
|
336
|
+
function getState(VersionPart release) external view returns (StateId stateId) {
|
337
|
+
return _releaseInfo[release].state;
|
321
338
|
}
|
322
339
|
|
323
340
|
function getRemainingServicesToRegister() external view returns (uint256 services) {
|
324
341
|
return _servicesToRegister - _registeredServices;
|
325
342
|
}
|
326
343
|
|
327
|
-
function getServiceAuthorization(VersionPart
|
344
|
+
function getServiceAuthorization(VersionPart release)
|
328
345
|
external
|
329
346
|
view
|
330
347
|
returns (IServiceAuthorization serviceAuthorization)
|
331
348
|
{
|
332
|
-
return _releaseInfo[
|
349
|
+
return _releaseInfo[release].auth;
|
333
350
|
}
|
334
351
|
|
335
352
|
function getRegistryAdmin() external view returns (address) {
|
@@ -344,27 +361,41 @@ contract ReleaseRegistry is
|
|
344
361
|
|
345
362
|
//--- private functions ----------------------------------------------------//
|
346
363
|
|
347
|
-
|
348
|
-
function _setReleaseLocked(VersionPart version, bool locked)
|
364
|
+
function _setReleaseLocked(VersionPart release, bool locked)
|
349
365
|
private
|
350
366
|
{
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
367
|
+
ReleaseAdmin(
|
368
|
+
_releaseInfo[release].releaseAdmin).setReleaseLocked(locked);
|
369
|
+
}
|
370
|
+
|
371
|
+
|
372
|
+
function _cloneNewReleaseAdmin(VersionPart release)
|
373
|
+
private
|
374
|
+
returns (ReleaseAdmin clonedAdmin)
|
375
|
+
{
|
376
|
+
AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
|
377
|
+
Clones.clone(
|
378
|
+
_masterReleaseAdmin.authority()
|
379
|
+
)
|
380
|
+
);
|
364
381
|
|
365
|
-
|
382
|
+
clonedAdmin = ReleaseAdmin(
|
383
|
+
Clones.clone(
|
384
|
+
address(_masterReleaseAdmin)
|
385
|
+
)
|
386
|
+
);
|
387
|
+
|
388
|
+
clonedAdmin.initialize(clonedAccessManager);
|
389
|
+
clonedAdmin.completeSetup(
|
390
|
+
address(_registry),
|
391
|
+
address(this), // release registry (this contract)
|
392
|
+
release);
|
393
|
+
|
394
|
+
// lock release (remains locked until activation)
|
395
|
+
clonedAdmin.setReleaseLocked(true);
|
366
396
|
}
|
367
397
|
|
398
|
+
|
368
399
|
function _verifyServiceAuthorization(
|
369
400
|
IServiceAuthorization serviceAuthorization,
|
370
401
|
VersionPart releaseVersion,
|
@@ -476,21 +507,5 @@ contract ReleaseRegistry is
|
|
476
507
|
revert ErrorReleaseRegistryServiceOwnerRegistered(service, owner);
|
477
508
|
}
|
478
509
|
}
|
479
|
-
|
480
|
-
/// @dev returns true iff a the address passes some simple proxy tests.
|
481
|
-
function _isRegistry(address registryAddress) internal view returns (bool) {
|
482
|
-
|
483
|
-
// zero address is certainly not registry
|
484
|
-
if (registryAddress == address(0)) {
|
485
|
-
return false;
|
486
|
-
}
|
487
|
-
// TODO try catch and return false in case of revert or just panic
|
488
|
-
// check if contract returns a zero nft id for its own address
|
489
|
-
if (IRegistry(registryAddress).getNftIdForAddress(registryAddress).eqz()) {
|
490
|
-
return false;
|
491
|
-
}
|
492
|
-
|
493
|
-
return true;
|
494
|
-
}
|
495
510
|
}
|
496
511
|
|