@etherisc/gif-next 0.0.2-91b514c-961 → 0.0.2-9272c43-568
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +34 -18
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +18 -10
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +267 -97
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +652 -36
- 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 +222 -47
- 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 +175 -27
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +85 -12
- 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 +23 -7
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +221 -60
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +203 -118
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +88 -44
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +29 -0
- 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 +20 -4
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +220 -59
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +34 -18
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +220 -59
- 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 +27 -11
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +220 -59
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +24 -8
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +220 -59
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +24 -8
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +220 -59
- 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/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +310 -32
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +182 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +322 -72
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +608 -295
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +242 -56
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +477 -289
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +208 -26
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +14 -14
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +68 -12
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +2 -2
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +234 -56
- 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/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +54 -38
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +28 -20
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +220 -59
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +122 -90
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +62 -30
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +104 -22
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +98 -66
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +50 -34
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +50 -58
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +26 -14
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +220 -59
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +92 -76
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +47 -39
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +94 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +508 -18
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +48 -44
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +64 -72
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +33 -21
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +2 -2
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +2 -2
- 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/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- 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 +2 -2
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +378 -249
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +243 -68
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +10 -10
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +384 -186
- 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 +128 -76
- 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 +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +54 -54
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +28 -28
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +16 -45
- 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/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- 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/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/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/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/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +3 -3
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +22 -6
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +12 -4
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +31 -15
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +15 -7
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +3 -3
- 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/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/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/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/UFixed.sol/UFixedLib.dbg.json +1 -1
- 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/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
- 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 +2 -3
- package/contracts/authorization/AccessAdmin.sol +261 -185
- package/contracts/authorization/AccessAdminLib.sol +220 -7
- package/contracts/authorization/Authorization.sol +38 -229
- package/contracts/authorization/IAccess.sol +14 -4
- package/contracts/authorization/IAccessAdmin.sol +19 -45
- package/contracts/authorization/IAuthorization.sol +3 -56
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +247 -33
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +2 -1
- package/contracts/distribution/DistributionService.sol +76 -28
- package/contracts/distribution/IDistributionComponent.sol +3 -1
- package/contracts/distribution/IDistributionService.sol +10 -4
- package/contracts/instance/IInstance.sol +43 -4
- package/contracts/instance/IInstanceService.sol +28 -3
- package/contracts/instance/Instance.sol +80 -39
- package/contracts/instance/InstanceAdmin.sol +162 -229
- package/contracts/instance/InstanceAuthorizationV3.sol +58 -28
- package/contracts/instance/InstanceReader.sol +371 -389
- package/contracts/instance/InstanceService.sol +105 -53
- package/contracts/instance/base/BalanceStore.sol +3 -5
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/OracleService.sol +4 -4
- package/contracts/pool/BasicPoolAuthorization.sol +9 -3
- package/contracts/pool/BundleService.sol +9 -10
- package/contracts/pool/PoolLib.sol +138 -1
- package/contracts/pool/PoolService.sol +13 -186
- package/contracts/product/ApplicationService.sol +30 -5
- package/contracts/product/BasicProductAuthorization.sol +9 -4
- package/contracts/product/ClaimService.sol +19 -20
- package/contracts/product/IPolicyService.sol +0 -1
- package/contracts/product/PolicyService.sol +18 -45
- package/contracts/product/PolicyServiceLib.sol +75 -1
- package/contracts/product/PricingService.sol +22 -25
- package/contracts/registry/RegistryAdmin.sol +27 -97
- package/contracts/registry/RegistryAuthorization.sol +35 -25
- package/contracts/registry/ReleaseAdmin.sol +42 -100
- package/contracts/registry/ReleaseRegistry.sol +12 -9
- package/contracts/registry/ServiceAuthorizationV3.sol +33 -20
- package/contracts/registry/TokenRegistry.sol +2 -4
- package/contracts/shared/ComponentService.sol +29 -5
- package/contracts/shared/ContractLib.sol +9 -45
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/NftOwnable.sol +1 -1
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Service.sol +6 -4
- package/contracts/staking/IStakingService.sol +3 -0
- package/contracts/staking/Staking.sol +4 -5
- package/contracts/staking/StakingService.sol +3 -0
- package/contracts/staking/TargetManagerLib.sol +1 -1
- package/contracts/type/ObjectType.sol +16 -3
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/String.sol +12 -0
- package/contracts/upgradeability/ProxyManager.sol +2 -2
- package/contracts/upgradeability/Versionable.sol +4 -1
- 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/contracts/shared/ComponentVerifyingService.sol +0 -128
@@ -14,6 +14,7 @@ import {RoleIdLib, ADMIN_ROLE, GIF_ADMIN_ROLE, GIF_MANAGER_ROLE} from "../type/R
|
|
14
14
|
import {StakingStore} from "../staking/StakingStore.sol";
|
15
15
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
16
16
|
import {TokenRegistry} from "../registry/TokenRegistry.sol";
|
17
|
+
import {VersionPartLib} from "../type/Version.sol";
|
17
18
|
|
18
19
|
|
19
20
|
contract RegistryAuthorization
|
@@ -39,39 +40,48 @@ 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 STAKING_TH_TARGET_NAME = "
|
43
|
+
string public constant STAKING_TH_TARGET_NAME = "StakingTh";
|
43
44
|
string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
|
44
45
|
|
45
|
-
constructor()
|
46
|
-
Authorization(
|
46
|
+
constructor(string memory commitHash)
|
47
|
+
Authorization(
|
48
|
+
REGISTRY_TARGET_NAME,
|
49
|
+
REGISTRY(),
|
50
|
+
3,
|
51
|
+
commitHash,
|
52
|
+
false, // isComponent
|
53
|
+
false) // includeTokenHandler
|
47
54
|
{ }
|
48
55
|
|
49
56
|
/// @dev Sets up the GIF admin and manager roles.
|
50
57
|
function _setupRoles() internal override {
|
51
58
|
|
52
|
-
//
|
59
|
+
// max number of versioned contracts per generic service
|
60
|
+
uint32 maxReleases = uint32(VersionPartLib.releaseMax().toInt());
|
61
|
+
|
62
|
+
// service roles (for all releases)
|
53
63
|
_addRole(
|
54
|
-
RoleIdLib.
|
64
|
+
RoleIdLib.toGenericServiceRoleId(REGISTRY()),
|
55
65
|
_toRoleInfo({
|
56
66
|
adminRoleId: ADMIN_ROLE(),
|
57
|
-
roleType: RoleType.
|
58
|
-
maxMemberCount:
|
67
|
+
roleType: RoleType.Core,
|
68
|
+
maxMemberCount: maxReleases,
|
59
69
|
name: REGISTRY_SERVICE_ROLE_NAME}));
|
60
70
|
|
61
71
|
_addRole(
|
62
|
-
RoleIdLib.
|
72
|
+
RoleIdLib.toGenericServiceRoleId(STAKING()),
|
63
73
|
_toRoleInfo({
|
64
74
|
adminRoleId: ADMIN_ROLE(),
|
65
|
-
roleType: RoleType.
|
66
|
-
maxMemberCount:
|
75
|
+
roleType: RoleType.Core,
|
76
|
+
maxMemberCount: maxReleases,
|
67
77
|
name: STAKING_SERVICE_ROLE_NAME}));
|
68
78
|
|
69
79
|
_addRole(
|
70
|
-
RoleIdLib.
|
80
|
+
RoleIdLib.toGenericServiceRoleId(POOL()),
|
71
81
|
_toRoleInfo({
|
72
82
|
adminRoleId: ADMIN_ROLE(),
|
73
|
-
roleType: RoleType.
|
74
|
-
maxMemberCount:
|
83
|
+
roleType: RoleType.Core,
|
84
|
+
maxMemberCount: maxReleases,
|
75
85
|
name: POOL_SERVICE_ROLE_NAME}));
|
76
86
|
|
77
87
|
// gif admin role
|
@@ -79,7 +89,7 @@ contract RegistryAuthorization
|
|
79
89
|
GIF_ADMIN_ROLE(),
|
80
90
|
_toRoleInfo({
|
81
91
|
adminRoleId: ADMIN_ROLE(),
|
82
|
-
roleType: RoleType.
|
92
|
+
roleType: RoleType.Core,
|
83
93
|
maxMemberCount: 2, // TODO decide on max member count
|
84
94
|
name: GIF_ADMIN_ROLE_NAME}));
|
85
95
|
|
@@ -88,7 +98,7 @@ contract RegistryAuthorization
|
|
88
98
|
GIF_MANAGER_ROLE(),
|
89
99
|
_toRoleInfo({
|
90
100
|
adminRoleId: ADMIN_ROLE(),
|
91
|
-
roleType: RoleType.
|
101
|
+
roleType: RoleType.Core,
|
92
102
|
maxMemberCount: 1, // TODO decide on max member count
|
93
103
|
name: GIF_MANAGER_ROLE_NAME}));
|
94
104
|
|
@@ -96,13 +106,13 @@ contract RegistryAuthorization
|
|
96
106
|
|
97
107
|
/// @dev Sets up the relevant (non-service) targets for the registry.
|
98
108
|
function _setupTargets() internal override {
|
99
|
-
|
100
|
-
|
101
|
-
|
109
|
+
_addGifTarget(REGISTRY_ADMIN_TARGET_NAME);
|
110
|
+
_addGifTarget(RELEASE_REGISTRY_TARGET_NAME);
|
111
|
+
_addGifTarget(TOKEN_REGISTRY_TARGET_NAME);
|
102
112
|
|
103
|
-
|
104
|
-
|
105
|
-
|
113
|
+
_addGifTarget(STAKING_TARGET_NAME);
|
114
|
+
_addGifTarget(STAKING_TH_TARGET_NAME);
|
115
|
+
_addGifTarget(STAKING_STORE_TARGET_NAME);
|
106
116
|
}
|
107
117
|
|
108
118
|
|
@@ -134,7 +144,7 @@ contract RegistryAuthorization
|
|
134
144
|
// registry service role
|
135
145
|
functions = _authorizeForTarget(
|
136
146
|
REGISTRY_TARGET_NAME,
|
137
|
-
RoleIdLib.
|
147
|
+
RoleIdLib.toGenericServiceRoleId(REGISTRY()));
|
138
148
|
|
139
149
|
_authorize(functions, IRegistry.register.selector, "register");
|
140
150
|
_authorize(functions, IRegistry.registerWithCustomType.selector, "registerWithCustomType");
|
@@ -201,7 +211,7 @@ contract RegistryAuthorization
|
|
201
211
|
// staking service role
|
202
212
|
functions = _authorizeForTarget(
|
203
213
|
STAKING_TARGET_NAME,
|
204
|
-
RoleIdLib.
|
214
|
+
RoleIdLib.toGenericServiceRoleId(STAKING()));
|
205
215
|
|
206
216
|
_authorize(functions, IStaking.registerTarget.selector, "registerTarget");
|
207
217
|
_authorize(functions, IStaking.setLockingPeriod.selector, "setLockingPeriod");
|
@@ -219,7 +229,7 @@ contract RegistryAuthorization
|
|
219
229
|
// pool service role
|
220
230
|
functions = _authorizeForTarget(
|
221
231
|
STAKING_TARGET_NAME,
|
222
|
-
RoleIdLib.
|
232
|
+
RoleIdLib.toGenericServiceRoleId(POOL()));
|
223
233
|
|
224
234
|
_authorize(functions, IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
|
225
235
|
_authorize(functions, IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
|
@@ -232,7 +242,7 @@ contract RegistryAuthorization
|
|
232
242
|
// staking service role
|
233
243
|
functions = _authorizeForTarget(
|
234
244
|
STAKING_TH_TARGET_NAME,
|
235
|
-
RoleIdLib.
|
245
|
+
RoleIdLib.toGenericServiceRoleId(STAKING()));
|
236
246
|
|
237
247
|
_authorize(functions, TokenHandler.approve.selector, "approve");
|
238
248
|
_authorize(functions, TokenHandler.pullToken.selector, "pullToken");
|
@@ -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
|
}
|
@@ -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);
|
@@ -367,7 +366,10 @@ contract ReleaseRegistry is
|
|
367
366
|
_releaseInfo[release].releaseAdmin).setReleaseLocked(locked);
|
368
367
|
}
|
369
368
|
|
370
|
-
function _cloneNewReleaseAdmin(
|
369
|
+
function _cloneNewReleaseAdmin(
|
370
|
+
IServiceAuthorization serviceAuthorization,
|
371
|
+
VersionPart release
|
372
|
+
)
|
371
373
|
private
|
372
374
|
returns (ReleaseAdmin clonedAdmin)
|
373
375
|
{
|
@@ -377,7 +379,7 @@ contract ReleaseRegistry is
|
|
377
379
|
|
378
380
|
string memory releaseAdminName = string(
|
379
381
|
abi.encodePacked(
|
380
|
-
"
|
382
|
+
"ReleaseAdminV",
|
381
383
|
release.toString()));
|
382
384
|
|
383
385
|
clonedAdmin.initialize(
|
@@ -386,8 +388,9 @@ contract ReleaseRegistry is
|
|
386
388
|
|
387
389
|
clonedAdmin.completeSetup(
|
388
390
|
address(_registry),
|
389
|
-
address(
|
390
|
-
release
|
391
|
+
address(serviceAuthorization),
|
392
|
+
release,
|
393
|
+
address(this)); // release registry (this contract)
|
391
394
|
|
392
395
|
// lock release (remains locked until activation)
|
393
396
|
clonedAdmin.setReleaseLocked(true);
|
@@ -412,7 +415,7 @@ contract ReleaseRegistry is
|
|
412
415
|
returns (uint256 serviceDomainsCount)
|
413
416
|
{
|
414
417
|
// authorization contract supports IServiceAuthorization interface
|
415
|
-
if(!
|
418
|
+
if(!ContractLib.supportsInterface(address(serviceAuthorization), type(IServiceAuthorization).interfaceId)) {
|
416
419
|
revert ErrorReleaseRegistryNotServiceAuth(address(serviceAuthorization));
|
417
420
|
}
|
418
421
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {
|
5
|
-
ALL, ACCOUNTING, REGISTRY, RISK, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, STAKING, PRICE
|
5
|
+
ALL, RELEASE, ACCOUNTING, REGISTRY, RISK, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, STAKING, PRICE
|
6
6
|
} from "../../contracts/type/ObjectType.sol";
|
7
7
|
|
8
8
|
import {IAccess} from "../authorization/IAccess.sol";
|
@@ -19,6 +19,7 @@ import {IPoolService} from "../pool/IPoolService.sol";
|
|
19
19
|
import {IStakingService} from "../staking/IStakingService.sol";
|
20
20
|
import {IRegistryService} from "./IRegistryService.sol";
|
21
21
|
import {IRiskService} from "../product/IRiskService.sol";
|
22
|
+
|
22
23
|
import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
|
23
24
|
|
24
25
|
|
@@ -27,27 +28,31 @@ contract ServiceAuthorizationV3
|
|
27
28
|
{
|
28
29
|
|
29
30
|
constructor(string memory commitHash)
|
30
|
-
ServiceAuthorization(
|
31
|
+
ServiceAuthorization(
|
32
|
+
"ReleaseAdmin",
|
33
|
+
RELEASE(),
|
34
|
+
3,
|
35
|
+
commitHash)
|
31
36
|
{}
|
32
37
|
|
33
38
|
function _setupDomains()
|
34
39
|
internal
|
35
40
|
override
|
36
41
|
{
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
42
|
+
_authorizeServiceDomain(REGISTRY(), address(1));
|
43
|
+
_authorizeServiceDomain(STAKING(), address(2));
|
44
|
+
_authorizeServiceDomain(INSTANCE(), address(3));
|
45
|
+
_authorizeServiceDomain(ACCOUNTING(), address(4));
|
46
|
+
_authorizeServiceDomain(COMPONENT(), address(5));
|
47
|
+
_authorizeServiceDomain(DISTRIBUTION(), address(6));
|
48
|
+
_authorizeServiceDomain(PRICE(), address(7));
|
49
|
+
_authorizeServiceDomain(BUNDLE(), address(8));
|
50
|
+
_authorizeServiceDomain(POOL(), address(9));
|
51
|
+
_authorizeServiceDomain(ORACLE(), address(10));
|
52
|
+
_authorizeServiceDomain(RISK(), address(11));
|
53
|
+
_authorizeServiceDomain(POLICY(), address(12));
|
54
|
+
_authorizeServiceDomain(CLAIM(), address(13));
|
55
|
+
_authorizeServiceDomain(APPLICATION(), address(14));
|
51
56
|
}
|
52
57
|
|
53
58
|
|
@@ -55,10 +60,9 @@ contract ServiceAuthorizationV3
|
|
55
60
|
internal
|
56
61
|
override
|
57
62
|
{
|
58
|
-
|
63
|
+
_setupRegistryServiceAuthorization();
|
59
64
|
_setupStakingServiceAuthorization();
|
60
65
|
_setupInstanceServiceAuthorization();
|
61
|
-
_setupInstanceServiceAuthorization();
|
62
66
|
_setupAccountingServiceAuthorization();
|
63
67
|
_setupComponentServiceAuthorization();
|
64
68
|
_setupClaimServiceAuthorization();
|
@@ -74,7 +78,7 @@ contract ServiceAuthorizationV3
|
|
74
78
|
|
75
79
|
/// @dev registry service authorization.
|
76
80
|
/// authorized functions MUST be implemented with a restricted modifier
|
77
|
-
function
|
81
|
+
function _setupRegistryServiceAuthorization()
|
78
82
|
internal
|
79
83
|
{
|
80
84
|
IAccess.FunctionInfo[] storage functions;
|
@@ -131,8 +135,16 @@ contract ServiceAuthorizationV3
|
|
131
135
|
{
|
132
136
|
IAccess.FunctionInfo[] storage functions;
|
133
137
|
functions = _authorizeForService(INSTANCE(), ALL());
|
134
|
-
_authorize(functions, IInstanceService.
|
138
|
+
_authorize(functions, IInstanceService.createRole.selector, "createRole");
|
139
|
+
_authorize(functions, IInstanceService.setRoleActive.selector, "setRoleActive");
|
140
|
+
_authorize(functions, IInstanceService.grantRole.selector, "grantRole");
|
141
|
+
_authorize(functions, IInstanceService.revokeRole.selector, "revokeRole");
|
142
|
+
|
143
|
+
_authorize(functions, IInstanceService.createTarget.selector, "createTarget");
|
144
|
+
_authorize(functions, IInstanceService.authorizeFunctions.selector, "authorizeFunctions");
|
145
|
+
_authorize(functions, IInstanceService.unauthorizeFunctions.selector, "unauthorizeFunctions");
|
135
146
|
_authorize(functions, IInstanceService.setTargetLocked.selector, "setTargetLocked");
|
147
|
+
_authorize(functions, IInstanceService.setInstanceLocked.selector, "setInstanceLocked");
|
136
148
|
|
137
149
|
_authorize(functions, IInstanceService.createInstance.selector, "createInstance");
|
138
150
|
_authorize(functions, IInstanceService.upgradeInstanceReader.selector, "upgradeInstanceReader");
|
@@ -322,6 +334,7 @@ contract ServiceAuthorizationV3
|
|
322
334
|
_authorize(functions, IPolicyService.createPolicy.selector, "createPolicy");
|
323
335
|
_authorize(functions, IPolicyService.collectPremium.selector, "collectPremium");
|
324
336
|
_authorize(functions, IPolicyService.activate.selector, "activate");
|
337
|
+
_authorize(functions, IPolicyService.adjustActivation.selector, "adjustActivation");
|
325
338
|
_authorize(functions, IPolicyService.expire.selector, "expire");
|
326
339
|
_authorize(functions, IPolicyService.expirePolicy.selector, "expirePolicy");
|
327
340
|
_authorize(functions, IPolicyService.close.selector, "close");
|
@@ -3,15 +3,13 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
5
5
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
|
-
import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
|
7
|
-
|
8
|
-
import {REGISTRY} from "../type/ObjectType.sol";
|
9
|
-
import {VersionPart} from "../type/Version.sol";
|
10
6
|
|
11
7
|
import {IRegistry} from "./IRegistry.sol";
|
12
8
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
9
|
+
|
13
10
|
import {ReleaseRegistry} from "./ReleaseRegistry.sol";
|
14
11
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
12
|
+
import {VersionPart} from "../type/Version.sol";
|
15
13
|
|
16
14
|
/// @dev The TokenRegistry contract is used to whitelist/manage ERC-20 of tokens per major release.
|
17
15
|
/// Only whitelisted tokens can be used as default tokens for products, distribution and pools components.
|