@etherisc/gif-next 0.0.2-95b223b-528 → 0.0.2-95f0eec-843
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 +57 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +134 -59
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +93 -49
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +85 -9
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +640 -269
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +409 -33
- 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 +525 -213
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
- 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 +105 -153
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +58 -95
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +533 -218
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +149 -81
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +45 -82
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +379 -79
- 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 +145 -114
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +355 -52
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +183 -144
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
- 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 +163 -169
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +380 -45
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +94 -68
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +175 -141
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +355 -52
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +259 -146
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +380 -45
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +474 -48
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +377 -10
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +485 -83
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +999 -334
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +380 -52
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +724 -412
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +381 -77
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +82 -56
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +434 -358
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +96 -53
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +77 -49
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
- 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 +49 -21
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +61 -33
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +120 -68
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +98 -54
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +102 -82
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +355 -52
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +304 -226
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +119 -75
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +200 -89
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +59 -31
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +333 -169
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +72 -44
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +574 -360
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +145 -73
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +292 -62
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +105 -45
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +87 -59
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +171 -174
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +120 -84
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +234 -3
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +63 -17
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +160 -68
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +70 -42
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +150 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +278 -187
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +128 -84
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +135 -126
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +102 -74
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +81 -53
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +218 -76
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +102 -46
- 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 +51 -16
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/{authorization/AccessAdmin.sol/IAccessManagedChecker.json → registry/IRelease.sol/IRelease.json} +6 -6
- 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 +89 -54
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +728 -480
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +75 -39
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +78 -42
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +385 -63
- 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 +15 -15
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +60 -32
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +211 -250
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +104 -68
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +178 -34
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +49 -21
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +131 -153
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +49 -21
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +139 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +56 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +60 -32
- 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 +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +137 -62
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +51 -11
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +268 -39
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +163 -10
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +341 -103
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +112 -50
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +90 -61
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +218 -58
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +95 -47
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +162 -148
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +60 -50
- 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/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 +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +30 -6
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +64 -26
- 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 +18 -7
- package/contracts/accounting/AccountingServiceManager.sol +1 -1
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +419 -254
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +142 -262
- package/contracts/authorization/IAccess.sol +25 -7
- package/contracts/authorization/IAccessAdmin.sol +87 -80
- package/contracts/authorization/IAuthorization.sol +9 -42
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +247 -33
- package/contracts/distribution/BasicDistribution.sol +13 -11
- package/contracts/distribution/BasicDistributionAuthorization.sol +29 -9
- package/contracts/distribution/Distribution.sol +18 -58
- package/contracts/distribution/DistributionService.sol +168 -77
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +34 -19
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
- package/contracts/examples/fire/FireProduct.sol +2 -7
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -5
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleProduct.sol +26 -11
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
- package/contracts/instance/BundleSet.sol +4 -4
- package/contracts/instance/IInstance.sol +91 -17
- package/contracts/instance/IInstanceService.sol +50 -4
- package/contracts/instance/Instance.sol +159 -52
- package/contracts/instance/InstanceAdmin.sol +265 -170
- package/contracts/instance/InstanceAuthorizationV3.sol +75 -34
- package/contracts/instance/InstanceReader.sol +415 -379
- package/contracts/instance/InstanceService.sol +251 -144
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/RiskSet.sol +11 -12
- package/contracts/instance/base/BalanceStore.sol +3 -5
- package/contracts/instance/base/ObjectLifecycle.sol +0 -3
- package/contracts/instance/base/ObjectSet.sol +7 -8
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +16 -5
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +4 -0
- package/contracts/oracle/BasicOracle.sol +1 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +1 -3
- package/contracts/oracle/OracleService.sol +20 -19
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +2 -15
- package/contracts/pool/BasicPoolAuthorization.sol +29 -16
- package/contracts/pool/BundleService.sol +55 -94
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +27 -32
- package/contracts/pool/IPoolService.sol +57 -40
- package/contracts/pool/Pool.sol +11 -23
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +192 -193
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +85 -17
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +0 -2
- package/contracts/product/BasicProductAuthorization.sol +31 -9
- package/contracts/product/ClaimService.sol +127 -169
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +23 -1
- package/contracts/product/IClaimService.sol +2 -3
- package/contracts/product/IPolicyService.sol +20 -8
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IRiskService.sol +11 -7
- package/contracts/product/PolicyService.sol +104 -195
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +38 -35
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +30 -21
- package/contracts/product/RiskService.sol +85 -29
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/IRegistry.sol +21 -19
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +19 -8
- package/contracts/registry/RegistryAdmin.sol +100 -369
- package/contracts/registry/RegistryAuthorization.sol +284 -0
- package/contracts/registry/RegistryService.sol +4 -4
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +150 -116
- package/contracts/registry/ServiceAuthorizationV3.sol +159 -22
- package/contracts/registry/TokenRegistry.sol +12 -13
- package/contracts/shared/Component.sol +17 -26
- package/contracts/shared/ComponentService.sol +263 -283
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ContractLib.sol +163 -76
- package/contracts/shared/IComponent.sol +1 -5
- package/contracts/shared/IComponentService.sol +21 -26
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +15 -5
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +4 -7
- package/contracts/shared/NftOwnable.sol +8 -6
- package/contracts/shared/PolicyHolder.sol +4 -3
- package/contracts/shared/Registerable.sol +42 -19
- package/contracts/shared/RegistryLinked.sol +1 -1
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +45 -92
- package/contracts/staking/IStaking.sol +41 -19
- package/contracts/staking/IStakingService.sol +21 -8
- package/contracts/staking/Staking.sol +159 -69
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
- package/contracts/staking/StakingReader.sol +28 -19
- package/contracts/staking/StakingService.sol +74 -46
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/staking/StakingStore.sol +3 -2
- package/contracts/staking/TargetManagerLib.sol +1 -1
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/ObjectType.sol +69 -52
- package/contracts/type/RiskId.sol +9 -3
- package/contracts/type/RoleId.sol +63 -45
- package/contracts/type/Seconds.sol +4 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +27 -10
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +2 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
@@ -12,6 +12,7 @@ import {ObjectType, ObjectTypeLib, PROTOCOL, REGISTRY, SERVICE, INSTANCE, STAKE,
|
|
12
12
|
|
13
13
|
import {ChainNft} from "./ChainNft.sol";
|
14
14
|
import {IRegistry} from "./IRegistry.sol";
|
15
|
+
import {IRelease} from "./IRelease.sol";
|
15
16
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
16
17
|
import {IStaking} from "../staking/IStaking.sol";
|
17
18
|
import {ReleaseRegistry} from "./ReleaseRegistry.sol";
|
@@ -171,7 +172,7 @@ contract Registry is
|
|
171
172
|
revert ErrorRegistryChainRegistryNftIdInvalid(nftId, chainId);
|
172
173
|
}
|
173
174
|
|
174
|
-
emit
|
175
|
+
emit LogRegistryChainRegistryRegistered(nftId, chainId, registryAddress);
|
175
176
|
|
176
177
|
_registerRegistryForNft(
|
177
178
|
chainId,
|
@@ -230,7 +231,7 @@ contract Registry is
|
|
230
231
|
|
231
232
|
_service[version][domain] = service;
|
232
233
|
|
233
|
-
emit
|
234
|
+
emit LogRegistryServiceRegistered(version, domain);
|
234
235
|
|
235
236
|
nftId = _register(info);
|
236
237
|
}
|
@@ -245,6 +246,11 @@ contract Registry is
|
|
245
246
|
address objectAddress = info.objectAddress;
|
246
247
|
ObjectType objectType = info.objectType;
|
247
248
|
|
249
|
+
// specialized functions have to be used to register registries and services
|
250
|
+
if(objectType == REGISTRY() || objectType == STAKING() || objectType == SERVICE()) {
|
251
|
+
revert ErrorRegistryObjectTypeNotSupported(objectType);
|
252
|
+
}
|
253
|
+
|
248
254
|
// this indidirectly enforces that the parent is registered
|
249
255
|
// parentType would be zero for a non-registered parent which is never a valid type combination
|
250
256
|
ObjectType parentType = _info[info.parentNftId].objectType;
|
@@ -252,13 +258,13 @@ contract Registry is
|
|
252
258
|
// check type combinations for core objects
|
253
259
|
if(objectAddress == address(0)) {
|
254
260
|
if(_coreObjectCombinations[objectType][parentType] == false) {
|
255
|
-
revert
|
261
|
+
revert ErrorRegistryTypeCombinationInvalid(objectAddress, objectType, parentType);
|
256
262
|
}
|
257
263
|
}
|
258
264
|
// check type combinations for contract objects
|
259
265
|
else {
|
260
266
|
if(_coreContractCombinations[objectType][parentType] == false) {
|
261
|
-
revert
|
267
|
+
revert ErrorRegistryTypeCombinationInvalid(objectAddress, objectType, parentType);
|
262
268
|
}
|
263
269
|
}
|
264
270
|
|
@@ -283,9 +289,10 @@ contract Registry is
|
|
283
289
|
objectType == ObjectTypeLib.zero() ||
|
284
290
|
parentType == ObjectTypeLib.zero() ||
|
285
291
|
parentType == PROTOCOL() ||
|
292
|
+
parentType == STAKING() ||
|
286
293
|
parentType == SERVICE()
|
287
294
|
) {
|
288
|
-
revert
|
295
|
+
revert ErrorRegistryTypeCombinationInvalid(info.objectAddress, objectType, parentType);
|
289
296
|
}
|
290
297
|
|
291
298
|
nftId = _register(info);
|
@@ -307,8 +314,8 @@ contract Registry is
|
|
307
314
|
return _releaseRegistry.getLatestVersion();
|
308
315
|
}
|
309
316
|
|
310
|
-
function getReleaseInfo(VersionPart
|
311
|
-
return _releaseRegistry.getReleaseInfo(
|
317
|
+
function getReleaseInfo(VersionPart release) external view returns (IRelease.ReleaseInfo memory) {
|
318
|
+
return _releaseRegistry.getReleaseInfo(release);
|
312
319
|
}
|
313
320
|
|
314
321
|
function chainIds() public view returns (uint256) {
|
@@ -355,6 +362,10 @@ contract Registry is
|
|
355
362
|
return _info[nftId];
|
356
363
|
}
|
357
364
|
|
365
|
+
function getParentNftId(NftId nftId) external view returns (NftId parentNftId) {
|
366
|
+
return _info[nftId].parentNftId;
|
367
|
+
}
|
368
|
+
|
358
369
|
function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool) {
|
359
370
|
NftId nftId = _nftIdByAddress[contractAddress];
|
360
371
|
return isObjectType(nftId, expectedObjectType);
|
@@ -490,7 +501,7 @@ contract Registry is
|
|
490
501
|
_info[nftId] = info;
|
491
502
|
_setAddressForNftId(nftId, objectAddress);
|
492
503
|
|
493
|
-
emit
|
504
|
+
emit LogRegistryObjectRegistered(nftId, parentNftId, objectType, isInterceptor, objectAddress, owner);
|
494
505
|
|
495
506
|
// calls nft receiver(1) and interceptor(2)
|
496
507
|
uint256 mintedTokenId = CHAIN_NFT.mint(
|
@@ -1,24 +1,23 @@
|
|
1
1
|
// SPDX-License-Identifier: UNLICENSED
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {IAccess} from "../authorization/IAccess.sol";
|
4
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
6
5
|
import {IRegistry} from "./IRegistry.sol";
|
7
6
|
import {IService} from "../shared/IService.sol";
|
8
|
-
import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
|
9
7
|
import {IStaking} from "../staking/IStaking.sol";
|
10
|
-
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {
|
16
|
-
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, REGISTRY} from "../type/ObjectType.sol";
|
13
|
+
import {RoleId, RoleIdLib, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE} from "../type/RoleId.sol";
|
14
|
+
import {Str} from "../type/String.sol";
|
17
15
|
import {VersionPart} from "../type/Version.sol";
|
18
16
|
|
19
17
|
/*
|
20
18
|
1) GIF_MANAGER_ROLE
|
21
19
|
- can have arbitrary number of members
|
20
|
+
- responsible for release preparation
|
22
21
|
- responsible for services registrations
|
23
22
|
- responsible for token registration and activation
|
24
23
|
|
@@ -26,29 +25,31 @@ import {VersionPart} from "../type/Version.sol";
|
|
26
25
|
- admin of GIF_MANAGER_ROLE
|
27
26
|
- MUST have 1 member at any time
|
28
27
|
- granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
|
29
|
-
- responsible for creation and
|
28
|
+
- responsible for creation, activation and locking/unlocking of releases
|
30
29
|
*/
|
30
|
+
|
31
|
+
/// @dev The RegistryAdmin contract implements the central authorization for the GIF core contracts.
|
32
|
+
/// These are the release independent registry and staking contracts and their respective helper contracts.
|
33
|
+
/// The RegistryAdmin also manages the access from service contracts to the GIF core contracts
|
31
34
|
contract RegistryAdmin is
|
32
35
|
AccessAdmin
|
33
36
|
{
|
37
|
+
/// @dev gif core roles
|
34
38
|
string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
|
35
39
|
string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
|
36
|
-
string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
|
37
|
-
string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
|
38
|
-
string public constant REGISTRY_SERVICE_ROLE_NAME = "RegistryServiceRole";
|
39
|
-
string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
|
40
|
-
string public constant STAKING_ROLE_NAME = "StakingRole";
|
41
40
|
|
41
|
+
/// @dev gif core targets
|
42
|
+
string public constant REGISTRY_ADMIN_TARGET_NAME = "RegistryAdmin";
|
42
43
|
string public constant REGISTRY_TARGET_NAME = "Registry";
|
43
44
|
string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
|
44
|
-
string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
|
45
45
|
string public constant STAKING_TARGET_NAME = "Staking";
|
46
46
|
string public constant STAKING_TH_TARGET_NAME = "StakingTH";
|
47
47
|
string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
|
48
|
+
string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
|
49
|
+
string public constant TOKEN_HANDLER_TARGET_NAME = "TokenHandler";
|
48
50
|
|
49
|
-
|
50
|
-
|
51
|
-
mapping(address service => VersionPart majorVersion) private _ServiceRelease;
|
51
|
+
// completeSetup
|
52
|
+
error ErrorRegistryAdminNotRegistry(address registry);
|
52
53
|
|
53
54
|
address internal _registry;
|
54
55
|
address private _releaseRegistry;
|
@@ -56,402 +57,132 @@ contract RegistryAdmin is
|
|
56
57
|
address private _staking;
|
57
58
|
address private _stakingStore;
|
58
59
|
|
59
|
-
constructor()
|
60
|
+
constructor() {
|
61
|
+
initialize(
|
62
|
+
address(new AccessManagerCloneable()),
|
63
|
+
"RegistryAdmin");
|
64
|
+
}
|
65
|
+
|
60
66
|
|
61
67
|
function completeSetup(
|
62
|
-
|
68
|
+
address registry,
|
69
|
+
address authorization,
|
70
|
+
VersionPart release,
|
63
71
|
address gifAdmin,
|
64
72
|
address gifManager
|
65
73
|
)
|
66
|
-
|
67
|
-
|
74
|
+
public
|
75
|
+
virtual
|
76
|
+
reinitializer(type(uint8).max)
|
68
77
|
onlyDeployer()
|
69
78
|
{
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
79
|
+
// checks
|
80
|
+
AccessAdminLib.checkRegistry(registry);
|
81
|
+
|
82
|
+
AccessManagerCloneable(
|
83
|
+
authority()).completeSetup(
|
84
|
+
registry,
|
85
|
+
release);
|
86
|
+
|
87
|
+
_checkAuthorization(authorization, REGISTRY(), release, false, true);
|
88
|
+
|
89
|
+
_registry = registry;
|
90
|
+
_authorization = IAuthorization(authorization);
|
91
|
+
|
92
|
+
IRegistry registryContract = IRegistry(registry);
|
93
|
+
_releaseRegistry = registryContract.getReleaseRegistryAddress();
|
94
|
+
_tokenRegistry = registryContract.getTokenRegistryAddress();
|
95
|
+
_staking = registryContract.getStakingAddress();
|
74
96
|
_stakingStore = address(
|
75
97
|
IStaking(_staking).getStakingStore());
|
76
98
|
|
77
|
-
//
|
78
|
-
|
99
|
+
// link nft ownability to registry
|
100
|
+
_linkToNftOwnable(_registry);
|
79
101
|
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
_setupReleaseRegistry();
|
84
|
-
_setupRegistry();
|
85
|
-
_setupStaking();
|
86
|
-
}
|
102
|
+
// setup registry core targets
|
103
|
+
_createCoreTargets(_authorization.getMainTargetName());
|
87
104
|
|
105
|
+
// setup non-contract roles
|
106
|
+
_createRoles(_authorization);
|
107
|
+
_grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
|
108
|
+
_grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
|
88
109
|
|
89
|
-
|
90
|
-
|
91
|
-
/// Permissioned function: Access is restricted to release manager.
|
92
|
-
function authorizeService(
|
93
|
-
IServiceAuthorization serviceAuthorization,
|
94
|
-
IService service,
|
95
|
-
ObjectType serviceDomain,
|
96
|
-
VersionPart releaseVersion
|
97
|
-
)
|
98
|
-
external
|
99
|
-
restricted()
|
100
|
-
{
|
101
|
-
_createServiceTargetAndRole(service, serviceDomain, releaseVersion);
|
102
|
-
_authorizeServiceFunctions(serviceAuthorization, service, serviceDomain, releaseVersion);
|
110
|
+
// authorize functions of registry and staking contracts
|
111
|
+
_createTargetAuthorizations(_authorization);
|
103
112
|
}
|
104
113
|
|
105
|
-
function grantServiceRole(
|
106
|
-
IService service,
|
107
|
-
ObjectType domain,
|
108
|
-
VersionPart version
|
109
|
-
)
|
110
|
-
external
|
111
|
-
restricted()
|
112
|
-
{
|
113
|
-
_grantRoleToAccount(
|
114
|
-
RoleIdLib.roleForTypeAndVersion(
|
115
|
-
domain,
|
116
|
-
version),
|
117
|
-
address(service));
|
118
|
-
}
|
119
114
|
|
120
|
-
function grantServiceRoleForAllVersions(
|
115
|
+
function grantServiceRoleForAllVersions(
|
116
|
+
IService service,
|
117
|
+
ObjectType domain
|
118
|
+
)
|
121
119
|
external
|
122
120
|
restricted()
|
123
121
|
{
|
124
122
|
_grantRoleToAccount(
|
125
|
-
RoleIdLib.
|
123
|
+
RoleIdLib.toGenericServiceRoleId(domain),
|
126
124
|
address(service));
|
127
125
|
}
|
128
126
|
|
129
|
-
function setServiceLocked(IService service, bool locked)
|
130
|
-
external
|
131
|
-
restricted()
|
132
|
-
{
|
133
|
-
_setTargetClosed(address(service), locked);
|
134
|
-
}
|
135
|
-
|
136
|
-
/*function transferAdmin(address to)
|
137
|
-
external
|
138
|
-
restricted // only with GIF_ADMIN_ROLE or nft owner
|
139
|
-
{
|
140
|
-
_accessManager.revoke(GIF_ADMIN_ROLE, );
|
141
|
-
_accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
|
142
|
-
}*/
|
143
|
-
|
144
127
|
//--- view functions ----------------------------------------------------//
|
145
128
|
|
146
|
-
function getGifAdminRole() external
|
129
|
+
function getGifAdminRole() external pure returns (RoleId) {
|
147
130
|
return GIF_ADMIN_ROLE();
|
148
131
|
}
|
149
132
|
|
150
|
-
function getGifManagerRole() external
|
133
|
+
function getGifManagerRole() external pure returns (RoleId) {
|
151
134
|
return GIF_MANAGER_ROLE();
|
152
135
|
}
|
153
136
|
|
154
|
-
//--- private functions
|
155
|
-
|
156
|
-
function _createServiceTargetAndRole(
|
157
|
-
IService service,
|
158
|
-
ObjectType serviceDomain,
|
159
|
-
VersionPart releaseVersion
|
160
|
-
)
|
161
|
-
private
|
162
|
-
{
|
163
|
-
string memory baseName = ObjectTypeLib.toName(serviceDomain);
|
164
|
-
uint256 versionInt = releaseVersion.toInt();
|
165
|
-
|
166
|
-
// create service target
|
167
|
-
string memory serviceTargetName = ObjectTypeLib.toVersionedName(
|
168
|
-
baseName, "Service", versionInt);
|
169
|
-
|
170
|
-
_createTarget(
|
171
|
-
address(service),
|
172
|
-
serviceTargetName,
|
173
|
-
true,
|
174
|
-
false);
|
175
|
-
|
176
|
-
_setTargetClosed(address(service), true);
|
177
|
-
|
178
|
-
// create service role
|
179
|
-
RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
|
180
|
-
serviceDomain,
|
181
|
-
releaseVersion);
|
182
|
-
|
183
|
-
_createRole(
|
184
|
-
serviceRoleId,
|
185
|
-
toRole({
|
186
|
-
adminRoleId: ADMIN_ROLE(),
|
187
|
-
roleType: RoleType.Contract,
|
188
|
-
maxMemberCount: 1,
|
189
|
-
name: ObjectTypeLib.toVersionedName(
|
190
|
-
baseName,
|
191
|
-
"ServiceRole",
|
192
|
-
versionInt)}));
|
193
|
-
|
194
|
-
_grantRoleToAccount(
|
195
|
-
serviceRoleId,
|
196
|
-
address(service));
|
197
|
-
}
|
198
|
-
|
137
|
+
//--- private initialization functions -------------------------------------------//
|
199
138
|
|
200
|
-
function
|
201
|
-
|
202
|
-
IService service,
|
203
|
-
ObjectType serviceDomain,
|
204
|
-
VersionPart releaseVersion
|
205
|
-
)
|
206
|
-
private
|
139
|
+
function _createRoles(IAuthorization authorization)
|
140
|
+
internal
|
207
141
|
{
|
208
|
-
|
209
|
-
RoleId authorizedRoleId;
|
142
|
+
RoleId[] memory roles = authorization.getRoles();
|
210
143
|
|
211
|
-
|
144
|
+
for(uint256 i = 0; i < roles.length; i++) {
|
145
|
+
RoleId roleId = roles[i];
|
146
|
+
RoleInfo memory roleInfo = authorization.getRoleInfo(roleId);
|
212
147
|
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
authorizedRoleId = PUBLIC_ROLE();
|
219
|
-
} else {
|
220
|
-
authorizedRoleId = RoleIdLib.roleForTypeAndVersion(
|
221
|
-
authorizedDomain,
|
222
|
-
releaseVersion);
|
148
|
+
// create role if not exists
|
149
|
+
if (!roleExists(roleInfo.name.toString())) {
|
150
|
+
_createRole(
|
151
|
+
roleId,
|
152
|
+
roleInfo);
|
223
153
|
}
|
224
|
-
|
225
|
-
// get authorized functions for authorized domain
|
226
|
-
IAccess.FunctionInfo[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
|
227
|
-
serviceDomain,
|
228
|
-
authorizedDomain);
|
229
|
-
|
230
|
-
_authorizeTargetFunctions(
|
231
|
-
address(service),
|
232
|
-
authorizedRoleId,
|
233
|
-
authorizatedFunctions);
|
234
154
|
}
|
235
155
|
}
|
236
156
|
|
237
|
-
//--- private initialization functions -------------------------------------------//
|
238
|
-
|
239
|
-
function _setupGifAdminRole(address gifAdmin)
|
240
|
-
private
|
241
|
-
onlyInitializing()
|
242
|
-
{
|
243
|
-
|
244
|
-
_createRole(
|
245
|
-
GIF_ADMIN_ROLE(),
|
246
|
-
toRole({
|
247
|
-
adminRoleId: ADMIN_ROLE(),
|
248
|
-
roleType: RoleType.Gif,
|
249
|
-
maxMemberCount: 2, // TODO decide on max member count
|
250
|
-
name: GIF_ADMIN_ROLE_NAME}));
|
251
|
-
|
252
|
-
// for Registry
|
253
|
-
FunctionInfo[] memory functions;
|
254
|
-
functions = new FunctionInfo[](1);
|
255
|
-
functions[0] = toFunction(IRegistry.registerRegistry.selector, "registerRegistry");
|
256
|
-
_authorizeTargetFunctions(_registry, GIF_ADMIN_ROLE(), functions);
|
257
|
-
|
258
|
-
// for ReleaseRegistry
|
259
|
-
functions = new FunctionInfo[](4);
|
260
|
-
functions[0] = toFunction(ReleaseRegistry.createNextRelease.selector, "createNextRelease");
|
261
|
-
functions[1] = toFunction(ReleaseRegistry.activateNextRelease.selector, "activateNextRelease");
|
262
|
-
functions[2] = toFunction(ReleaseRegistry.pauseRelease.selector, "pauseRelease");
|
263
|
-
functions[3] = toFunction(ReleaseRegistry.unpauseRelease.selector, "unpauseRelease");
|
264
|
-
_authorizeTargetFunctions(_releaseRegistry, GIF_ADMIN_ROLE(), functions);
|
265
|
-
|
266
|
-
_grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
|
267
|
-
}
|
268
|
-
|
269
|
-
function _setupGifManagerRole(address gifManager)
|
270
|
-
private
|
271
|
-
onlyInitializing()
|
272
|
-
{
|
273
|
-
|
274
|
-
_createRole(
|
275
|
-
GIF_MANAGER_ROLE(),
|
276
|
-
toRole({
|
277
|
-
adminRoleId: ADMIN_ROLE(),
|
278
|
-
roleType: RoleType.Gif,
|
279
|
-
maxMemberCount: 1,
|
280
|
-
name: GIF_MANAGER_ROLE_NAME}));
|
281
|
-
|
282
|
-
// for TokenRegistry
|
283
|
-
FunctionInfo[] memory functions;
|
284
|
-
functions = new FunctionInfo[](5);
|
285
|
-
functions[0] = toFunction(TokenRegistry.registerToken.selector, "registerToken");
|
286
|
-
functions[1] = toFunction(TokenRegistry.registerRemoteToken.selector, "registerRemoteToken");
|
287
|
-
functions[2] = toFunction(TokenRegistry.setActive.selector, "setActive");
|
288
|
-
functions[3] = toFunction(TokenRegistry.setActiveForVersion.selector, "setActiveForVersion");
|
289
|
-
// TODO find a better way (only needed for testing)
|
290
|
-
functions[4] = toFunction(TokenRegistry.setActiveWithVersionCheck.selector, "setActiveWithVersionCheck");
|
291
|
-
_authorizeTargetFunctions(_tokenRegistry, GIF_MANAGER_ROLE(), functions);
|
292
|
-
|
293
|
-
// for ReleaseRegistry
|
294
|
-
functions = new FunctionInfo[](2);
|
295
|
-
functions[0] = toFunction(ReleaseRegistry.prepareNextRelease.selector, "prepareNextRelease");
|
296
|
-
functions[1] = toFunction(ReleaseRegistry.registerService.selector, "registerService");
|
297
|
-
_authorizeTargetFunctions(_releaseRegistry, GIF_MANAGER_ROLE(), functions);
|
298
|
-
|
299
|
-
_grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
|
300
|
-
}
|
301
|
-
|
302
157
|
|
303
|
-
function
|
304
|
-
|
305
|
-
onlyInitializing()
|
158
|
+
function _createCoreTargets(string memory registryTargetName)
|
159
|
+
internal
|
306
160
|
{
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
maxMemberCount: 1,
|
317
|
-
name: RELEASE_REGISTRY_ROLE_NAME}));
|
318
|
-
|
319
|
-
FunctionInfo[] memory functions;
|
320
|
-
functions = new FunctionInfo[](4);
|
321
|
-
functions[0] = toFunction(RegistryAdmin.authorizeService.selector, "authorizeService");
|
322
|
-
functions[1] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
|
323
|
-
functions[2] = toFunction(RegistryAdmin.grantServiceRole.selector, "grantServiceRole");
|
324
|
-
functions[3] = toFunction(RegistryAdmin.setServiceLocked.selector, "setServiceLocked");
|
325
|
-
_authorizeTargetFunctions(address(this), releaseRegistryRoleId, functions);
|
326
|
-
|
327
|
-
_grantRoleToAccount(releaseRegistryRoleId, _releaseRegistry);
|
161
|
+
// registry
|
162
|
+
_createUncheckedTarget(_registry, registryTargetName, TargetType.Core);
|
163
|
+
_createUncheckedTarget(address(this), REGISTRY_ADMIN_TARGET_NAME, TargetType.Core);
|
164
|
+
_createUncheckedTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, TargetType.Core);
|
165
|
+
_createUncheckedTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, TargetType.Core);
|
166
|
+
|
167
|
+
// staking
|
168
|
+
_createUncheckedTarget(_staking, STAKING_TARGET_NAME, TargetType.Core);
|
169
|
+
_createUncheckedTarget(_stakingStore, STAKING_STORE_TARGET_NAME, TargetType.Core);
|
328
170
|
}
|
329
171
|
|
330
172
|
|
331
|
-
function
|
173
|
+
function _createTargetAuthorizations(IAuthorization authorization)
|
332
174
|
internal
|
333
|
-
virtual
|
334
|
-
onlyInitializing()
|
335
175
|
{
|
336
|
-
|
337
|
-
|
338
|
-
// registry function authorization for registry service
|
339
|
-
RoleId registryServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(REGISTRY());
|
340
|
-
_createRole(
|
341
|
-
registryServiceRoleId,
|
342
|
-
toRole({
|
343
|
-
adminRoleId: ADMIN_ROLE(),
|
344
|
-
roleType: RoleType.Contract,
|
345
|
-
maxMemberCount: MAX_NUM_RELEASES,
|
346
|
-
name: REGISTRY_SERVICE_ROLE_NAME}));
|
347
|
-
|
348
|
-
// authorize registry service
|
349
|
-
FunctionInfo[] memory functions;
|
350
|
-
functions = new FunctionInfo[](2);
|
351
|
-
functions[0] = toFunction(IRegistry.register.selector, "register");
|
352
|
-
functions[1] = toFunction(IRegistry.registerWithCustomType.selector, "registerWithCustomType");
|
353
|
-
_authorizeTargetFunctions(_registry, registryServiceRoleId, functions);
|
354
|
-
|
355
|
-
// authorize release registry
|
356
|
-
RoleId releaseRegistryRoleId = RoleIdLib.roleForType(RELEASE());
|
357
|
-
functions = new FunctionInfo[](1);
|
358
|
-
functions[0] = toFunction(IRegistry.registerService.selector, "registerService");
|
359
|
-
_authorizeTargetFunctions(_registry, releaseRegistryRoleId, functions);
|
360
|
-
}
|
176
|
+
Str[] memory targets = authorization.getTargets();
|
177
|
+
Str target;
|
361
178
|
|
179
|
+
for(uint256 i = 0; i < targets.length; i++) {
|
180
|
+
target = targets[i];
|
181
|
+
RoleId[] memory authorizedRoles = authorization.getAuthorizedRoles(target);
|
362
182
|
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
_createTarget(_staking, STAKING_TARGET_NAME, true, false);
|
368
|
-
_createTarget(address(IStaking(_staking).getTokenHandler()), STAKING_TH_TARGET_NAME, true, false);
|
369
|
-
_createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
|
370
|
-
|
371
|
-
// staking function authorization for public role
|
372
|
-
FunctionInfo[] memory functions;
|
373
|
-
functions = new FunctionInfo[](1);
|
374
|
-
functions[0] = toFunction(Staking.approveTokenHandler.selector, "approveTokenHandler");
|
375
|
-
_authorizeTargetFunctions(_staking, PUBLIC_ROLE(), functions); // only owner protected
|
376
|
-
|
377
|
-
// staking function authorization for staking service
|
378
|
-
RoleId stakingServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(STAKING());
|
379
|
-
_createRole(
|
380
|
-
stakingServiceRoleId,
|
381
|
-
toRole({
|
382
|
-
adminRoleId: ADMIN_ROLE(),
|
383
|
-
roleType: RoleType.Contract,
|
384
|
-
maxMemberCount: MAX_NUM_RELEASES,
|
385
|
-
name: STAKING_SERVICE_ROLE_NAME}));
|
386
|
-
|
387
|
-
functions = new FunctionInfo[](12);
|
388
|
-
functions[0] = toFunction(IStaking.registerTarget.selector, "registerTarget");
|
389
|
-
functions[1] = toFunction(IStaking.setLockingPeriod.selector, "setLockingPeriod");
|
390
|
-
functions[2] = toFunction(IStaking.setRewardRate.selector, "setRewardRate");
|
391
|
-
functions[3] = toFunction(IStaking.refillRewardReserves.selector, "refillRewardReserves");
|
392
|
-
functions[4] = toFunction(IStaking.withdrawRewardReserves.selector, "withdrawRewardReserves");
|
393
|
-
functions[5] = toFunction(IStaking.createStake.selector, "createStake");
|
394
|
-
functions[6] = toFunction(IStaking.stake.selector, "stake");
|
395
|
-
functions[7] = toFunction(IStaking.unstake.selector, "unstake");
|
396
|
-
functions[8] = toFunction(IStaking.restake.selector, "restake");
|
397
|
-
functions[9] = toFunction(IStaking.updateRewards.selector, "updateRewards");
|
398
|
-
functions[10] = toFunction(IStaking.claimRewards.selector, "claimRewards");
|
399
|
-
_authorizeTargetFunctions(_staking, stakingServiceRoleId, functions);
|
400
|
-
|
401
|
-
// grant token handler authorizations
|
402
|
-
IStaking staking = IStaking(_staking);
|
403
|
-
functions = new FunctionInfo[](2);
|
404
|
-
functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
|
405
|
-
functions[1] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
|
406
|
-
|
407
|
-
_authorizeTargetFunctions(
|
408
|
-
address(staking.getTokenHandler()),
|
409
|
-
stakingServiceRoleId,
|
410
|
-
functions);
|
411
|
-
|
412
|
-
// staking function authorization for pool service
|
413
|
-
RoleId poolServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(POOL());
|
414
|
-
_createRole(
|
415
|
-
poolServiceRoleId,
|
416
|
-
toRole({
|
417
|
-
adminRoleId: ADMIN_ROLE(),
|
418
|
-
roleType: RoleType.Contract,
|
419
|
-
maxMemberCount: MAX_NUM_RELEASES,
|
420
|
-
name: POOL_SERVICE_ROLE_NAME}));
|
421
|
-
|
422
|
-
// staking function authorizations
|
423
|
-
functions = new FunctionInfo[](2);
|
424
|
-
functions[0] = toFunction(IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
|
425
|
-
functions[1] = toFunction(IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
|
426
|
-
_authorizeTargetFunctions(_staking, poolServiceRoleId, functions);
|
427
|
-
|
428
|
-
// staking store function authorizations
|
429
|
-
RoleId stakingRoleId = RoleIdLib.roleForType(STAKING());
|
430
|
-
_createRole(
|
431
|
-
stakingRoleId,
|
432
|
-
toRole({
|
433
|
-
adminRoleId: ADMIN_ROLE(),
|
434
|
-
roleType: RoleType.Contract,
|
435
|
-
maxMemberCount: 1,
|
436
|
-
name: STAKING_ROLE_NAME}));
|
437
|
-
|
438
|
-
functions = new FunctionInfo[](14);
|
439
|
-
functions[0] = toFunction(StakingStore.setStakingRate.selector, "setStakingRate");
|
440
|
-
functions[1] = toFunction(StakingStore.createTarget.selector, "createTarget");
|
441
|
-
functions[2] = toFunction(StakingStore.updateTarget.selector, "updateTarget");
|
442
|
-
functions[3] = toFunction(StakingStore.increaseReserves.selector, "increaseReserves");
|
443
|
-
functions[4] = toFunction(StakingStore.decreaseReserves.selector, "decreaseReserves");
|
444
|
-
functions[5] = toFunction(StakingStore.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
|
445
|
-
functions[6] = toFunction(StakingStore.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
|
446
|
-
functions[7] = toFunction(StakingStore.create.selector, "create");
|
447
|
-
functions[8] = toFunction(StakingStore.update.selector, "update");
|
448
|
-
functions[9] = toFunction(StakingStore.increaseStake.selector, "increaseStake");
|
449
|
-
functions[10] = toFunction(StakingStore.restakeRewards.selector, "restakeRewards");
|
450
|
-
functions[11] = toFunction(StakingStore.updateRewards.selector, "updateRewards");
|
451
|
-
functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
|
452
|
-
functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
|
453
|
-
_authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
|
454
|
-
|
455
|
-
_grantRoleToAccount(stakingRoleId, _staking);
|
183
|
+
for(uint256 j = 0; j < authorizedRoles.length; j++) {
|
184
|
+
_authorizeFunctions(authorization, target, authorizedRoles[j]);
|
185
|
+
}
|
186
|
+
}
|
456
187
|
}
|
457
188
|
}
|