@etherisc/gif-next 0.0.2-ccfa4c7-304 → 0.0.2-cd48412-522
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 +63 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +91 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +272 -102
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +662 -46
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +227 -52
- 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 +180 -32
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +90 -17
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +64 -152
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +226 -65
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -98
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +378 -149
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +140 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -97
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +232 -19
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -110
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +225 -64
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -134
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +225 -64
- 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 +83 -177
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +225 -64
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +37 -71
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -148
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +225 -64
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -190
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +225 -64
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +368 -34
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +295 -5
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +419 -96
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +591 -343
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +194 -73
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +569 -513
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +321 -31
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +80 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1316 -2015
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
- 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 +29 -41
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +239 -61
- 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 +19 -31
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -31
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +83 -38
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +96 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -79
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +225 -64
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +124 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -41
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -41
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +338 -79
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +121 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +238 -52
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +96 -42
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -58
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +225 -64
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +113 -75
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +187 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +50 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -52
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +224 -18
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +118 -72
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +114 -112
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +99 -69
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -52
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +258 -44
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +84 -42
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +71 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +385 -243
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +266 -70
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +41 -12
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +76 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +389 -191
- 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 +149 -97
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +19 -31
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +209 -190
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +113 -63
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +76 -41
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -31
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +118 -123
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -31
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -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 +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -31
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
- 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 +29 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1385 -150
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +97 -117
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1471 -213
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +77 -76
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +123 -72
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +296 -152
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +131 -167
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +84 -54
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1615 -815
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +153 -91
- 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 +10 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
- 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 +6 -6
- 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 +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +65 -27
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +15 -3
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +264 -188
- package/contracts/authorization/AccessAdminLib.sol +222 -9
- package/contracts/authorization/Authorization.sol +38 -234
- package/contracts/authorization/IAccess.sol +25 -7
- package/contracts/authorization/IAccessAdmin.sol +19 -45
- package/contracts/authorization/IAuthorization.sol +3 -57
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +248 -34
- package/contracts/distribution/BasicDistribution.sol +7 -8
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +12 -56
- package/contracts/distribution/DistributionService.sol +126 -63
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +20 -8
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +6 -10
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -8
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -23
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +57 -6
- package/contracts/instance/IInstanceService.sol +42 -7
- package/contracts/instance/Instance.sol +112 -57
- package/contracts/instance/InstanceAdmin.sol +164 -235
- package/contracts/instance/InstanceAuthorizationV3.sol +101 -61
- package/contracts/instance/InstanceReader.sol +354 -392
- package/contracts/instance/InstanceService.sol +186 -134
- package/contracts/instance/InstanceStore.sol +153 -128
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +15 -6
- package/contracts/instance/module/IDistribution.sol +17 -7
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +3 -6
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +4 -8
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -18
- package/contracts/pool/BasicPoolAuthorization.sol +10 -5
- package/contracts/pool/BundleService.sol +34 -43
- package/contracts/pool/IBundleService.sol +14 -13
- package/contracts/pool/IPoolService.sol +7 -2
- package/contracts/pool/Pool.sol +6 -20
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +41 -184
- package/contracts/product/ApplicationService.sol +69 -11
- package/contracts/product/BasicProduct.sol +2 -5
- package/contracts/product/BasicProductAuthorization.sol +11 -4
- package/contracts/product/ClaimService.sol +99 -105
- package/contracts/product/IApplicationService.sol +23 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +9 -2
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IRiskService.sol +21 -3
- package/contracts/product/PolicyService.sol +40 -59
- package/contracts/product/PolicyServiceLib.sol +79 -5
- package/contracts/product/PricingService.sol +33 -31
- package/contracts/product/Product.sol +40 -18
- package/contracts/product/RiskService.sol +57 -12
- package/contracts/registry/IRegistry.sol +15 -9
- package/contracts/registry/IRelease.sol +6 -3
- package/contracts/registry/Registry.sol +15 -9
- package/contracts/registry/RegistryAdmin.sol +33 -100
- package/contracts/registry/RegistryAuthorization.sol +121 -52
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +42 -100
- package/contracts/registry/ReleaseRegistry.sol +20 -12
- package/contracts/registry/ServiceAuthorizationV3.sol +43 -32
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +16 -33
- package/contracts/shared/ComponentService.sol +249 -247
- package/contracts/shared/ContractLib.sol +106 -75
- package/contracts/shared/IComponent.sol +1 -4
- package/contracts/shared/IComponentService.sol +17 -16
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InstanceLinkedComponent.sol +6 -11
- package/contracts/shared/NftOwnable.sol +3 -1
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Service.sol +6 -4
- package/contracts/staking/IStaking.sol +262 -70
- package/contracts/staking/IStakingService.sol +39 -84
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +470 -219
- package/contracts/staking/StakingLib.sol +38 -124
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +62 -71
- package/contracts/staking/StakingService.sol +42 -185
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1093 -331
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +15 -15
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +16 -3
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +19 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -2
- package/contracts/type/UFixed.sol +28 -10
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +25 -11
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -6,20 +6,21 @@ import {IRegistry} from "../registry/IRegistry.sol";
|
|
6
6
|
import {IStaking} from "../staking/IStaking.sol";
|
7
7
|
|
8
8
|
import {Authorization} from "../authorization/Authorization.sol";
|
9
|
-
import {POOL, REGISTRY, STAKING} from "../../contracts/type/ObjectType.sol";
|
9
|
+
import {COMPONENT, POOL, REGISTRY, STAKING} from "../../contracts/type/ObjectType.sol";
|
10
10
|
import {PUBLIC_ROLE} from "../type/RoleId.sol";
|
11
11
|
import {ReleaseRegistry} from "./ReleaseRegistry.sol";
|
12
12
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
13
13
|
import {RoleIdLib, ADMIN_ROLE, GIF_ADMIN_ROLE, GIF_MANAGER_ROLE} from "../type/RoleId.sol";
|
14
14
|
import {StakingStore} from "../staking/StakingStore.sol";
|
15
|
+
import {TargetHandler} from "../staking/TargetHandler.sol";
|
15
16
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
16
17
|
import {TokenRegistry} from "../registry/TokenRegistry.sol";
|
18
|
+
import {VersionPartLib} from "../type/Version.sol";
|
17
19
|
|
18
20
|
|
19
21
|
contract RegistryAuthorization
|
20
22
|
is Authorization
|
21
23
|
{
|
22
|
-
|
23
24
|
/// @dev gif core roles
|
24
25
|
string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
|
25
26
|
string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
|
@@ -39,39 +40,57 @@ contract RegistryAuthorization
|
|
39
40
|
string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
|
40
41
|
|
41
42
|
string public constant STAKING_TARGET_NAME = "Staking";
|
42
|
-
string public constant
|
43
|
+
string public constant STAKING_TARGET_HANDLER_NAME = "TargetHandler";
|
43
44
|
string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
|
45
|
+
string public constant STAKING_TH_TARGET_NAME = "StakingTh";
|
44
46
|
|
45
|
-
constructor()
|
46
|
-
Authorization(
|
47
|
+
constructor(string memory commitHash)
|
48
|
+
Authorization(
|
49
|
+
REGISTRY_TARGET_NAME,
|
50
|
+
REGISTRY(),
|
51
|
+
3,
|
52
|
+
commitHash,
|
53
|
+
false, // isComponent
|
54
|
+
false) // includeTokenHandler
|
47
55
|
{ }
|
48
56
|
|
49
57
|
/// @dev Sets up the GIF admin and manager roles.
|
50
58
|
function _setupRoles() internal override {
|
51
59
|
|
52
|
-
//
|
60
|
+
// max number of versioned contracts per generic service
|
61
|
+
uint32 maxReleases = uint32(VersionPartLib.releaseMax().toInt());
|
62
|
+
|
63
|
+
// service roles (for all releases)
|
53
64
|
_addRole(
|
54
|
-
RoleIdLib.
|
65
|
+
RoleIdLib.toGenericServiceRoleId(REGISTRY()),
|
55
66
|
_toRoleInfo({
|
56
67
|
adminRoleId: ADMIN_ROLE(),
|
57
|
-
roleType: RoleType.
|
58
|
-
maxMemberCount:
|
68
|
+
roleType: RoleType.Core,
|
69
|
+
maxMemberCount: maxReleases,
|
59
70
|
name: REGISTRY_SERVICE_ROLE_NAME}));
|
60
71
|
|
61
72
|
_addRole(
|
62
|
-
RoleIdLib.
|
73
|
+
RoleIdLib.toGenericServiceRoleId(STAKING()),
|
63
74
|
_toRoleInfo({
|
64
75
|
adminRoleId: ADMIN_ROLE(),
|
65
|
-
roleType: RoleType.
|
66
|
-
maxMemberCount:
|
76
|
+
roleType: RoleType.Core,
|
77
|
+
maxMemberCount: maxReleases,
|
67
78
|
name: STAKING_SERVICE_ROLE_NAME}));
|
68
79
|
|
69
80
|
_addRole(
|
70
|
-
RoleIdLib.
|
81
|
+
RoleIdLib.toGenericServiceRoleId(COMPONENT()),
|
82
|
+
_toRoleInfo({
|
83
|
+
adminRoleId: ADMIN_ROLE(),
|
84
|
+
roleType: RoleType.Core,
|
85
|
+
maxMemberCount: maxReleases,
|
86
|
+
name: COMPONENT_SERVICE_ROLE_NAME}));
|
87
|
+
|
88
|
+
_addRole(
|
89
|
+
RoleIdLib.toGenericServiceRoleId(POOL()),
|
71
90
|
_toRoleInfo({
|
72
91
|
adminRoleId: ADMIN_ROLE(),
|
73
|
-
roleType: RoleType.
|
74
|
-
maxMemberCount:
|
92
|
+
roleType: RoleType.Core,
|
93
|
+
maxMemberCount: maxReleases,
|
75
94
|
name: POOL_SERVICE_ROLE_NAME}));
|
76
95
|
|
77
96
|
// gif admin role
|
@@ -79,7 +98,7 @@ contract RegistryAuthorization
|
|
79
98
|
GIF_ADMIN_ROLE(),
|
80
99
|
_toRoleInfo({
|
81
100
|
adminRoleId: ADMIN_ROLE(),
|
82
|
-
roleType: RoleType.
|
101
|
+
roleType: RoleType.Core,
|
83
102
|
maxMemberCount: 2, // TODO decide on max member count
|
84
103
|
name: GIF_ADMIN_ROLE_NAME}));
|
85
104
|
|
@@ -88,7 +107,7 @@ contract RegistryAuthorization
|
|
88
107
|
GIF_MANAGER_ROLE(),
|
89
108
|
_toRoleInfo({
|
90
109
|
adminRoleId: ADMIN_ROLE(),
|
91
|
-
roleType: RoleType.
|
110
|
+
roleType: RoleType.Core,
|
92
111
|
maxMemberCount: 1, // TODO decide on max member count
|
93
112
|
name: GIF_MANAGER_ROLE_NAME}));
|
94
113
|
|
@@ -96,13 +115,14 @@ contract RegistryAuthorization
|
|
96
115
|
|
97
116
|
/// @dev Sets up the relevant (non-service) targets for the registry.
|
98
117
|
function _setupTargets() internal override {
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
118
|
+
_addGifTarget(REGISTRY_ADMIN_TARGET_NAME);
|
119
|
+
_addGifTarget(RELEASE_REGISTRY_TARGET_NAME);
|
120
|
+
_addGifTarget(TOKEN_REGISTRY_TARGET_NAME);
|
121
|
+
|
122
|
+
_addGifTarget(STAKING_TARGET_NAME);
|
123
|
+
_addGifTarget(STAKING_TARGET_HANDLER_NAME);
|
124
|
+
_addGifTarget(STAKING_STORE_TARGET_NAME);
|
125
|
+
_addGifTarget(STAKING_TH_TARGET_NAME);
|
106
126
|
}
|
107
127
|
|
108
128
|
|
@@ -118,8 +138,9 @@ contract RegistryAuthorization
|
|
118
138
|
|
119
139
|
// staking
|
120
140
|
_setupStakingAuthorization();
|
121
|
-
|
141
|
+
_setupStakingTargetHandlerAuthorization();
|
122
142
|
_setupStakingStoreAuthorization();
|
143
|
+
_setupStakingThAuthorization();
|
123
144
|
}
|
124
145
|
|
125
146
|
event LogAccessAdminDebug(string message, string custom, uint256 value);
|
@@ -134,7 +155,7 @@ contract RegistryAuthorization
|
|
134
155
|
// registry service role
|
135
156
|
functions = _authorizeForTarget(
|
136
157
|
REGISTRY_TARGET_NAME,
|
137
|
-
RoleIdLib.
|
158
|
+
RoleIdLib.toGenericServiceRoleId(REGISTRY()));
|
138
159
|
|
139
160
|
_authorize(functions, IRegistry.register.selector, "register");
|
140
161
|
_authorize(functions, IRegistry.registerWithCustomType.selector, "registerWithCustomType");
|
@@ -191,52 +212,78 @@ contract RegistryAuthorization
|
|
191
212
|
function _setupStakingAuthorization() internal {
|
192
213
|
IAccess.FunctionInfo[] storage functions;
|
193
214
|
|
194
|
-
// staking public role
|
215
|
+
// staking public role (protected by owner)
|
195
216
|
functions = _authorizeForTarget(
|
196
217
|
STAKING_TARGET_NAME,
|
197
218
|
PUBLIC_ROLE());
|
198
219
|
|
220
|
+
// unpermissioned functions
|
221
|
+
_authorize(functions, IStaking.updateTargetLimit.selector, "updateTargetLimit");
|
222
|
+
_authorize(functions, IStaking.createStake.selector, "createStake");
|
223
|
+
|
224
|
+
// owner functions (permissioned to staking owner)
|
225
|
+
_authorize(functions, IStaking.setSupportInfo.selector, "setSupportInfo");
|
226
|
+
_authorize(functions, IStaking.setUpdateTriggers.selector, "setUpdateTriggers");
|
227
|
+
_authorize(functions, IStaking.setProtocolLockingPeriod.selector, "setProtocolLockingPeriod");
|
228
|
+
_authorize(functions, IStaking.setProtocolRewardRate.selector, "setProtocolRewardRate");
|
229
|
+
_authorize(functions, IStaking.setStakingRate.selector, "setStakingRate");
|
230
|
+
_authorize(functions, IStaking.setStakingService.selector, "setStakingService");
|
231
|
+
_authorize(functions, IStaking.setStakingReader.selector, "setStakingReader");
|
232
|
+
_authorize(functions, IStaking.addToken.selector, "addToken");
|
233
|
+
|
234
|
+
// target owner functions (permissioned to target owner)
|
235
|
+
_authorize(functions, IStaking.setTargetLimits.selector, "setTargetLimits");
|
236
|
+
|
237
|
+
// staker functions (may be permissioned to nft holders)
|
238
|
+
_authorize(functions, IStaking.stake.selector, "stake");
|
239
|
+
_authorize(functions, IStaking.unstake.selector, "unstake");
|
240
|
+
_authorize(functions, IStaking.restake.selector, "restake");
|
241
|
+
_authorize(functions, IStaking.updateRewards.selector, "updateRewards");
|
242
|
+
_authorize(functions, IStaking.claimRewards.selector, "claimRewards");
|
243
|
+
|
244
|
+
// reward reserve functions and token handler
|
199
245
|
_authorize(functions, IStaking.approveTokenHandler.selector, "approveTokenHandler");
|
246
|
+
_authorize(functions, IStaking.refillRewardReserves.selector, "refillRewardReserves");
|
247
|
+
_authorize(functions, IStaking.withdrawRewardReserves.selector, "withdrawRewardReserves");
|
200
248
|
|
201
249
|
// staking service role
|
202
250
|
functions = _authorizeForTarget(
|
203
251
|
STAKING_TARGET_NAME,
|
204
|
-
RoleIdLib.
|
252
|
+
RoleIdLib.toGenericServiceRoleId(STAKING()));
|
205
253
|
|
206
254
|
_authorize(functions, IStaking.registerTarget.selector, "registerTarget");
|
207
255
|
_authorize(functions, IStaking.setLockingPeriod.selector, "setLockingPeriod");
|
208
256
|
_authorize(functions, IStaking.setRewardRate.selector, "setRewardRate");
|
209
257
|
_authorize(functions, IStaking.setMaxStakedAmount.selector, "setMaxStakedAmount");
|
210
|
-
_authorize(functions, IStaking.
|
211
|
-
_authorize(functions, IStaking.
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
258
|
+
_authorize(functions, IStaking.refillRewardReservesByService.selector, "refillRewardReservesByService");
|
259
|
+
_authorize(functions, IStaking.withdrawRewardReservesByService.selector, "withdrawRewardReservesByService");
|
260
|
+
|
261
|
+
// pool service role
|
262
|
+
functions = _authorizeForTarget(
|
263
|
+
STAKING_TARGET_NAME,
|
264
|
+
RoleIdLib.toGenericServiceRoleId(COMPONENT()));
|
265
|
+
|
266
|
+
_authorize(functions, IStaking.addTargetToken.selector, "addTargetToken");
|
218
267
|
|
219
268
|
// pool service role
|
220
269
|
functions = _authorizeForTarget(
|
221
270
|
STAKING_TARGET_NAME,
|
222
|
-
RoleIdLib.
|
271
|
+
RoleIdLib.toGenericServiceRoleId(POOL()));
|
223
272
|
|
224
273
|
_authorize(functions, IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
|
225
274
|
_authorize(functions, IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
|
226
275
|
}
|
227
276
|
|
228
277
|
|
229
|
-
function
|
278
|
+
function _setupStakingTargetHandlerAuthorization() internal {
|
230
279
|
IAccess.FunctionInfo[] storage functions;
|
231
280
|
|
232
281
|
// staking service role
|
233
282
|
functions = _authorizeForTarget(
|
234
|
-
|
235
|
-
|
283
|
+
STAKING_TARGET_HANDLER_NAME,
|
284
|
+
getTargetRole(getTarget(STAKING_TARGET_NAME)));
|
236
285
|
|
237
|
-
_authorize(functions,
|
238
|
-
_authorize(functions, TokenHandler.pullToken.selector, "pullToken");
|
239
|
-
_authorize(functions, TokenHandler.pushToken.selector, "pushToken");
|
286
|
+
_authorize(functions, TargetHandler.setUpdateTriggers.selector, "setUpdateTriggers");
|
240
287
|
}
|
241
288
|
|
242
289
|
|
@@ -248,20 +295,42 @@ contract RegistryAuthorization
|
|
248
295
|
STAKING_STORE_TARGET_NAME,
|
249
296
|
getTargetRole(getTarget(STAKING_TARGET_NAME)));
|
250
297
|
|
298
|
+
_authorize(functions, StakingStore.setTargetLimits.selector, "setTargetLimits");
|
299
|
+
_authorize(functions, StakingStore.updateTargetLimit.selector, "updateTargetLimit");
|
300
|
+
_authorize(functions, StakingStore.setStakingReader.selector, "setStakingReader");
|
301
|
+
_authorize(functions, StakingStore.setTargetLimitHandler.selector, "setTargetLimitHandler");
|
302
|
+
_authorize(functions, StakingStore.setSupportInfo.selector, "setSupportInfo");
|
303
|
+
_authorize(functions, StakingStore.addToken.selector, "addToken");
|
304
|
+
_authorize(functions, StakingStore.addTargetToken.selector, "addTargetToken");
|
251
305
|
_authorize(functions, StakingStore.setStakingRate.selector, "setStakingRate");
|
252
306
|
_authorize(functions, StakingStore.createTarget.selector, "createTarget");
|
253
|
-
_authorize(functions, StakingStore.
|
254
|
-
_authorize(functions, StakingStore.
|
255
|
-
_authorize(functions, StakingStore.
|
307
|
+
_authorize(functions, StakingStore.setLockingPeriod.selector, "setLockingPeriod");
|
308
|
+
_authorize(functions, StakingStore.setRewardRate.selector, "setRewardRate");
|
309
|
+
_authorize(functions, StakingStore.setMaxStakedAmount.selector, "setMaxStakedAmount");
|
310
|
+
_authorize(functions, StakingStore.refillRewardReserves.selector, "refillRewardReserves");
|
311
|
+
_authorize(functions, StakingStore.withdrawRewardReserves.selector, "withdrawRewardReserves");
|
256
312
|
_authorize(functions, StakingStore.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
|
257
313
|
_authorize(functions, StakingStore.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
|
258
|
-
_authorize(functions, StakingStore.
|
259
|
-
_authorize(functions, StakingStore.
|
260
|
-
_authorize(functions, StakingStore.
|
261
|
-
_authorize(functions, StakingStore.restakeRewards.selector, "restakeRewards");
|
314
|
+
_authorize(functions, StakingStore.createStake.selector, "createStake");
|
315
|
+
_authorize(functions, StakingStore.stake.selector, "stake");
|
316
|
+
_authorize(functions, StakingStore.unstake.selector, "unstake");
|
262
317
|
_authorize(functions, StakingStore.updateRewards.selector, "updateRewards");
|
263
|
-
_authorize(functions, StakingStore.
|
264
|
-
_authorize(functions, StakingStore.
|
318
|
+
_authorize(functions, StakingStore.restakeRewards.selector, "restakeRewards");
|
319
|
+
_authorize(functions, StakingStore.claimRewards.selector, "claimRewards");
|
320
|
+
}
|
321
|
+
|
322
|
+
|
323
|
+
function _setupStakingThAuthorization() internal {
|
324
|
+
IAccess.FunctionInfo[] storage functions;
|
325
|
+
|
326
|
+
// staking service role
|
327
|
+
functions = _authorizeForTarget(
|
328
|
+
STAKING_TH_TARGET_NAME,
|
329
|
+
RoleIdLib.toGenericServiceRoleId(STAKING()));
|
330
|
+
|
331
|
+
_authorize(functions, TokenHandler.approve.selector, "approve");
|
332
|
+
_authorize(functions, TokenHandler.pullToken.selector, "pullToken");
|
333
|
+
_authorize(functions, TokenHandler.pushToken.selector, "pushToken");
|
265
334
|
}
|
266
335
|
}
|
267
336
|
|
@@ -1,16 +1,20 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
5
|
-
import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
|
6
|
-
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
7
4
|
import {IAccess} from "../authorization/IAccess.sol";
|
5
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
8
6
|
import {IService} from "../shared/IService.sol";
|
9
7
|
import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
|
10
|
-
|
11
|
-
import {
|
8
|
+
|
9
|
+
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
10
|
+
import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
|
11
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
12
|
+
import {ObjectType, ObjectTypeLib, RELEASE} from "../type/ObjectType.sol";
|
13
|
+
import {RoleId, ADMIN_ROLE, RELEASE_REGISTRY_ROLE} from "../type/RoleId.sol";
|
14
|
+
import {Str} from "../type/String.sol";
|
12
15
|
import {VersionPart} from "../type/Version.sol";
|
13
16
|
|
17
|
+
|
14
18
|
/// @dev The ReleaseAdmin contract implements the central authorization for the services of a specific release.
|
15
19
|
/// There is one ReleaseAdmin contract per major GIF release.
|
16
20
|
/// Locking/unlocking of all services of a release is implemented in function setReleaseLocked.
|
@@ -25,11 +29,13 @@ contract ReleaseAdmin is
|
|
25
29
|
error ErrorReleaseAdminReleaseLockAlreadySetTo(bool locked);
|
26
30
|
|
27
31
|
/// @dev release core roles
|
28
|
-
string public constant RELEASE_REGISTRY_ROLE_NAME = "
|
32
|
+
string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistry_Role";
|
29
33
|
|
30
34
|
/// @dev release core targets
|
31
35
|
string public constant RELEASE_ADMIN_TARGET_NAME = "ReleaseAdmin";
|
32
36
|
|
37
|
+
IServiceAuthorization internal _serviceAuthorization;
|
38
|
+
|
33
39
|
|
34
40
|
modifier onlyReleaseRegistry() {
|
35
41
|
(bool isMember, ) = _authority.hasRole(RELEASE_REGISTRY_ROLE().toInt(), msg.sender);
|
@@ -39,6 +45,7 @@ contract ReleaseAdmin is
|
|
39
45
|
_;
|
40
46
|
}
|
41
47
|
|
48
|
+
|
42
49
|
// @dev Only used for master release admin
|
43
50
|
constructor(address accessManager) {
|
44
51
|
initialize(
|
@@ -49,32 +56,40 @@ contract ReleaseAdmin is
|
|
49
56
|
|
50
57
|
function completeSetup(
|
51
58
|
address registry,
|
52
|
-
address
|
53
|
-
VersionPart release
|
59
|
+
address authorization,
|
60
|
+
VersionPart release,
|
61
|
+
address releaseRegistry
|
54
62
|
)
|
55
63
|
external
|
56
64
|
reinitializer(uint64(release.toInt()))
|
57
65
|
{
|
58
66
|
|
59
67
|
// checks
|
60
|
-
|
68
|
+
AccessAdminLib.checkRegistry(registry);
|
61
69
|
|
62
70
|
AccessManagerCloneable(
|
63
71
|
authority()).completeSetup(
|
64
72
|
registry,
|
65
|
-
release);
|
73
|
+
release);
|
74
|
+
|
75
|
+
IServiceAuthorization serviceAuthorization = IServiceAuthorization(authorization);
|
76
|
+
_checkAuthorization(address(serviceAuthorization), RELEASE(), release, true, true);
|
77
|
+
_serviceAuthorization = serviceAuthorization;
|
66
78
|
|
67
79
|
// link nft ownability to registry
|
68
80
|
_linkToNftOwnable(registry);
|
69
81
|
|
82
|
+
// setup release contract
|
70
83
|
_setupReleaseRegistry(releaseRegistry);
|
84
|
+
|
85
|
+
// relase services will be authorized one by one via authorizeService()
|
71
86
|
}
|
72
87
|
|
88
|
+
|
73
89
|
/// @dev Sets up authorizaion for specified service.
|
74
90
|
/// For all authorized services its authorized functions are enabled.
|
75
91
|
/// Permissioned function: Access is restricted to release registry.
|
76
92
|
function authorizeService(
|
77
|
-
IServiceAuthorization serviceAuthorization,
|
78
93
|
IService service,
|
79
94
|
ObjectType serviceDomain,
|
80
95
|
VersionPart release
|
@@ -83,9 +98,20 @@ contract ReleaseAdmin is
|
|
83
98
|
restricted()
|
84
99
|
{
|
85
100
|
_createServiceTargetAndRole(service, serviceDomain, release);
|
86
|
-
|
101
|
+
|
102
|
+
// authorize functions of service
|
103
|
+
Str serviceTarget = _serviceAuthorization.getServiceTarget(serviceDomain);
|
104
|
+
RoleId[] memory authorizedRoles = _serviceAuthorization.getAuthorizedRoles(serviceTarget);
|
105
|
+
|
106
|
+
for (uint256 i = 0; i < authorizedRoles.length; i++) {
|
107
|
+
_authorizeFunctions(
|
108
|
+
IAuthorization(address(_serviceAuthorization)),
|
109
|
+
serviceTarget,
|
110
|
+
authorizedRoles[i]);
|
111
|
+
}
|
87
112
|
}
|
88
113
|
|
114
|
+
|
89
115
|
/// @dev Locks/unlocks all release targets.
|
90
116
|
/// For all authorized services of release its authorized functions are disabled/enabled.
|
91
117
|
/// Permissioned function: Access is restricted to release registry.
|
@@ -106,6 +132,7 @@ contract ReleaseAdmin is
|
|
106
132
|
emit LogReleaseAdminReleaseLockChanged(getRelease(), locked);
|
107
133
|
}
|
108
134
|
|
135
|
+
|
109
136
|
/// @dev Lock/unlock specific service of release.
|
110
137
|
/// Permissioned function: Access is restricted to release registry.
|
111
138
|
function setServiceLocked(IService service, bool locked)
|
@@ -123,13 +150,6 @@ contract ReleaseAdmin is
|
|
123
150
|
emit LogReleaseAdminServiceLockChanged(service.getRelease(), address(service), locked);
|
124
151
|
}
|
125
152
|
|
126
|
-
//--- view functions ----------------------------------------------------//
|
127
|
-
|
128
|
-
/*
|
129
|
-
function getReleaseAdminRole() external view returns (RoleId) {
|
130
|
-
return GIF_ADMIN_ROLE();
|
131
|
-
}
|
132
|
-
*/
|
133
153
|
//--- private functions -------------------------------------------------//
|
134
154
|
|
135
155
|
function _createServiceTargetAndRole(
|
@@ -145,85 +165,7 @@ contract ReleaseAdmin is
|
|
145
165
|
string memory serviceTargetName = ObjectTypeLib.toVersionedName(
|
146
166
|
baseName, "Service", release);
|
147
167
|
|
148
|
-
|
149
|
-
address(service),
|
150
|
-
serviceTargetName,
|
151
|
-
true,
|
152
|
-
false);
|
153
|
-
|
154
|
-
// create service role
|
155
|
-
RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
|
156
|
-
serviceDomain,
|
157
|
-
release);
|
158
|
-
|
159
|
-
if(!roleExists(serviceRoleId)) {
|
160
|
-
_createRole(
|
161
|
-
serviceRoleId,
|
162
|
-
AccessAdminLib.toRole({
|
163
|
-
adminRoleId: ADMIN_ROLE(),
|
164
|
-
roleType: RoleType.Contract,
|
165
|
-
maxMemberCount: 1,
|
166
|
-
name: ObjectTypeLib.toVersionedName(
|
167
|
-
baseName,
|
168
|
-
"ServiceRole",
|
169
|
-
release)}));
|
170
|
-
}
|
171
|
-
|
172
|
-
_grantRoleToAccount(
|
173
|
-
serviceRoleId,
|
174
|
-
address(service));
|
175
|
-
}
|
176
|
-
|
177
|
-
|
178
|
-
function _authorizeServiceFunctions(
|
179
|
-
IServiceAuthorization serviceAuthorization,
|
180
|
-
IService service,
|
181
|
-
ObjectType serviceDomain,
|
182
|
-
VersionPart release
|
183
|
-
)
|
184
|
-
private
|
185
|
-
{
|
186
|
-
ObjectType authorizedDomain;
|
187
|
-
RoleId authorizedRoleId;
|
188
|
-
|
189
|
-
ObjectType[] memory authorizedDomains = serviceAuthorization.getAuthorizedDomains(serviceDomain);
|
190
|
-
|
191
|
-
for (uint256 i = 0; i < authorizedDomains.length; i++) {
|
192
|
-
authorizedDomain = authorizedDomains[i];
|
193
|
-
|
194
|
-
// derive authorized role from authorized domain
|
195
|
-
if (authorizedDomain == ALL()) {
|
196
|
-
authorizedRoleId = PUBLIC_ROLE();
|
197
|
-
} else {
|
198
|
-
authorizedRoleId = RoleIdLib.roleForTypeAndVersion(
|
199
|
-
authorizedDomain,
|
200
|
-
release);
|
201
|
-
}
|
202
|
-
|
203
|
-
if(!roleExists(authorizedRoleId)) {
|
204
|
-
// create role for authorized domain
|
205
|
-
_createRole(
|
206
|
-
authorizedRoleId,
|
207
|
-
AccessAdminLib.toRole({
|
208
|
-
adminRoleId: ADMIN_ROLE(),
|
209
|
-
roleType: RoleType.Contract,
|
210
|
-
maxMemberCount: 1,
|
211
|
-
name: ObjectTypeLib.toVersionedName(
|
212
|
-
ObjectTypeLib.toName(authorizedDomain),
|
213
|
-
"Role",
|
214
|
-
release)}));
|
215
|
-
}
|
216
|
-
|
217
|
-
// get authorized functions for authorized domain
|
218
|
-
IAccess.FunctionInfo[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
|
219
|
-
serviceDomain,
|
220
|
-
authorizedDomain);
|
221
|
-
|
222
|
-
_authorizeTargetFunctions(
|
223
|
-
address(service),
|
224
|
-
authorizedRoleId,
|
225
|
-
authorizatedFunctions);
|
226
|
-
}
|
168
|
+
_createUncheckedTarget(address(service), serviceTargetName, TargetType.Service);
|
227
169
|
}
|
228
170
|
|
229
171
|
//--- private initialization functions -------------------------------------------//
|
@@ -232,7 +174,7 @@ contract ReleaseAdmin is
|
|
232
174
|
private
|
233
175
|
onlyInitializing()
|
234
176
|
{
|
235
|
-
|
177
|
+
_createManagedTarget(address(this), RELEASE_ADMIN_TARGET_NAME, IAccess.TargetType.Core);
|
236
178
|
|
237
179
|
_createRole(
|
238
180
|
RELEASE_REGISTRY_ROLE(),
|
@@ -246,7 +188,7 @@ contract ReleaseAdmin is
|
|
246
188
|
functions = new FunctionInfo[](2);
|
247
189
|
functions[0] = AccessAdminLib.toFunction(ReleaseAdmin.authorizeService.selector, "authorizeService");
|
248
190
|
functions[1] = AccessAdminLib.toFunction(ReleaseAdmin.setServiceLocked.selector, "setServiceLocked");
|
249
|
-
_authorizeTargetFunctions(address(this), RELEASE_REGISTRY_ROLE(), functions);
|
191
|
+
_authorizeTargetFunctions(address(this), RELEASE_REGISTRY_ROLE(), functions, true);
|
250
192
|
|
251
193
|
_grantRoleToAccount(RELEASE_REGISTRY_ROLE(), releaseRegistry);
|
252
194
|
}
|
@@ -14,7 +14,7 @@ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol"
|
|
14
14
|
|
15
15
|
import {ContractLib} from "../shared/ContractLib.sol";
|
16
16
|
import {NftId} from "../type/NftId.sol";
|
17
|
-
import {ObjectType, ObjectTypeLib, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
|
17
|
+
import {ObjectType, ObjectTypeLib, COMPONENT, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
|
18
18
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
19
19
|
import {Registry} from "./Registry.sol";
|
20
20
|
import {ReleaseAdmin} from "./ReleaseAdmin.sol";
|
@@ -150,7 +150,7 @@ contract ReleaseRegistry is
|
|
150
150
|
uint256 serviceDomainsCount = _verifyServiceAuthorization(serviceAuthorization, releaseVersion, salt);
|
151
151
|
|
152
152
|
// create and initialize release admin
|
153
|
-
releaseAdmin = _cloneNewReleaseAdmin(releaseVersion);
|
153
|
+
releaseAdmin = _cloneNewReleaseAdmin(serviceAuthorization, releaseVersion);
|
154
154
|
releaseSalt = salt;
|
155
155
|
|
156
156
|
// ensures unique salt
|
@@ -182,8 +182,8 @@ contract ReleaseRegistry is
|
|
182
182
|
checkTransition(_releaseInfo[releaseVersion].state, RELEASE(), DEPLOYING(), DEPLOYED());
|
183
183
|
|
184
184
|
address releaseAuthority = ReleaseAdmin(_releaseInfo[releaseVersion].releaseAdmin).authority();
|
185
|
-
IServiceAuthorization
|
186
|
-
ObjectType expectedDomain =
|
185
|
+
IServiceAuthorization releaseAuthz = _releaseInfo[releaseVersion].auth;
|
186
|
+
ObjectType expectedDomain = releaseAuthz.getServiceDomain(_registeredServices);
|
187
187
|
|
188
188
|
// service can work with release registry and release version
|
189
189
|
(
|
@@ -216,7 +216,6 @@ contract ReleaseRegistry is
|
|
216
216
|
ReleaseAdmin releaseAdmin = ReleaseAdmin(_releaseInfo[releaseVersion].releaseAdmin);
|
217
217
|
releaseAdmin.setReleaseLocked(false);
|
218
218
|
releaseAdmin.authorizeService(
|
219
|
-
releaseAuth,
|
220
219
|
service,
|
221
220
|
serviceDomain,
|
222
221
|
releaseVersion);
|
@@ -240,7 +239,7 @@ contract ReleaseRegistry is
|
|
240
239
|
|
241
240
|
_latest = release;
|
242
241
|
_releaseInfo[release].state = ACTIVE();
|
243
|
-
_releaseInfo[release].activatedAt = TimestampLib.
|
242
|
+
_releaseInfo[release].activatedAt = TimestampLib.current();
|
244
243
|
_releaseInfo[release].disabledAt = TimestampLib.max();
|
245
244
|
|
246
245
|
// grant special roles for registry/staking/pool services
|
@@ -259,6 +258,11 @@ contract ReleaseRegistry is
|
|
259
258
|
_registryAdmin.grantServiceRoleForAllVersions(IService(service), STAKING());
|
260
259
|
}
|
261
260
|
|
261
|
+
service = _registry.getServiceAddress(COMPONENT(), release);
|
262
|
+
if(service != address(0)) {
|
263
|
+
_registryAdmin.grantServiceRoleForAllVersions(IService(service), COMPONENT());
|
264
|
+
}
|
265
|
+
|
262
266
|
service = _registry.getServiceAddress(POOL(), release);
|
263
267
|
if(service != address(0)) {
|
264
268
|
_registryAdmin.grantServiceRoleForAllVersions(IService(service), POOL());
|
@@ -284,7 +288,7 @@ contract ReleaseRegistry is
|
|
284
288
|
} else {
|
285
289
|
checkTransition(state, RELEASE(), ACTIVE(), PAUSED());
|
286
290
|
_releaseInfo[release].state = PAUSED();
|
287
|
-
_releaseInfo[release].disabledAt = TimestampLib.
|
291
|
+
_releaseInfo[release].disabledAt = TimestampLib.current();
|
288
292
|
emit LogReleaseDisabled(release);
|
289
293
|
}
|
290
294
|
|
@@ -367,7 +371,10 @@ contract ReleaseRegistry is
|
|
367
371
|
_releaseInfo[release].releaseAdmin).setReleaseLocked(locked);
|
368
372
|
}
|
369
373
|
|
370
|
-
function _cloneNewReleaseAdmin(
|
374
|
+
function _cloneNewReleaseAdmin(
|
375
|
+
IServiceAuthorization serviceAuthorization,
|
376
|
+
VersionPart release
|
377
|
+
)
|
371
378
|
private
|
372
379
|
returns (ReleaseAdmin clonedAdmin)
|
373
380
|
{
|
@@ -377,7 +384,7 @@ contract ReleaseRegistry is
|
|
377
384
|
|
378
385
|
string memory releaseAdminName = string(
|
379
386
|
abi.encodePacked(
|
380
|
-
"
|
387
|
+
"ReleaseAdminV",
|
381
388
|
release.toString()));
|
382
389
|
|
383
390
|
clonedAdmin.initialize(
|
@@ -386,8 +393,9 @@ contract ReleaseRegistry is
|
|
386
393
|
|
387
394
|
clonedAdmin.completeSetup(
|
388
395
|
address(_registry),
|
389
|
-
address(
|
390
|
-
release
|
396
|
+
address(serviceAuthorization),
|
397
|
+
release,
|
398
|
+
address(this)); // release registry (this contract)
|
391
399
|
|
392
400
|
// lock release (remains locked until activation)
|
393
401
|
clonedAdmin.setReleaseLocked(true);
|
@@ -412,7 +420,7 @@ contract ReleaseRegistry is
|
|
412
420
|
returns (uint256 serviceDomainsCount)
|
413
421
|
{
|
414
422
|
// authorization contract supports IServiceAuthorization interface
|
415
|
-
if(!
|
423
|
+
if(!ContractLib.supportsInterface(address(serviceAuthorization), type(IServiceAuthorization).interfaceId)) {
|
416
424
|
revert ErrorReleaseRegistryNotServiceAuth(address(serviceAuthorization));
|
417
425
|
}
|
418
426
|
|