@etherisc/gif-next 0.0.2-9e6b423-414 → 0.0.2-9f51324-299
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/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +2 -2
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +2 -2
- 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 +97 -267
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +36 -652
- 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 +47 -222
- 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 +27 -175
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +12 -85
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +16 -246
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +27 -420
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +3 -3
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +60 -221
- 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 +114 -167
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +60 -72
- 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 +0 -29
- 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 +2 -2
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +59 -220
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2 -2
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +59 -220
- 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 +3 -3
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +59 -220
- 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 +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +59 -220
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +59 -220
- 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 +32 -310
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +0 -182
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +72 -322
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +292 -605
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +56 -242
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +290 -478
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +26 -208
- 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 +2 -2
- 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 +56 -234
- 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 +2 -2
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +2 -2
- 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 +59 -220
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +108 -92
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +55 -31
- 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 +26 -92
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +2 -2
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +2 -2
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +36 -60
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +19 -15
- 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 +59 -220
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +78 -78
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +40 -40
- 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 +2 -2
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +26 -82
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +2 -2
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +2 -2
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +2 -2
- 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 +249 -378
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +68 -243
- 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 +186 -384
- 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 +76 -128
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +26 -437
- 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/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +45 -16
- 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/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +8 -8
- 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 +5 -5
- 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 +2 -2
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +2 -2
- 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 +218 -39
- 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 +2 -50
- 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/authorization/AccessAdmin.sol +185 -261
- package/contracts/authorization/AccessAdminLib.sol +7 -220
- package/contracts/authorization/Authorization.sol +229 -38
- package/contracts/authorization/IAccess.sol +4 -14
- package/contracts/authorization/IAccessAdmin.sol +45 -19
- package/contracts/authorization/IAuthorization.sol +56 -3
- package/contracts/authorization/IServiceAuthorization.sol +17 -55
- package/contracts/authorization/ServiceAuthorization.sol +33 -247
- package/contracts/distribution/BasicDistributionAuthorization.sol +4 -11
- package/contracts/distribution/Distribution.sol +1 -2
- package/contracts/distribution/DistributionService.sol +33 -75
- package/contracts/distribution/IDistributionComponent.sol +1 -3
- package/contracts/distribution/IDistributionService.sol +4 -10
- package/contracts/instance/IInstance.sol +4 -43
- package/contracts/instance/IInstanceService.sol +3 -28
- package/contracts/instance/Instance.sol +39 -80
- package/contracts/instance/InstanceAdmin.sol +229 -162
- package/contracts/instance/InstanceAuthorizationV3.sol +28 -58
- package/contracts/instance/InstanceReader.sol +389 -371
- package/contracts/instance/InstanceService.sol +53 -105
- package/contracts/oracle/BasicOracleAuthorization.sol +2 -18
- package/contracts/pool/BasicPoolAuthorization.sol +3 -9
- package/contracts/pool/BundleService.sol +9 -8
- package/contracts/pool/PoolLib.sol +0 -44
- package/contracts/product/ApplicationService.sol +26 -4
- package/contracts/product/BasicProductAuthorization.sol +4 -9
- package/contracts/product/ClaimService.sol +20 -11
- package/contracts/product/PolicyService.sol +2 -2
- package/contracts/product/PolicyServiceLib.sol +0 -20
- package/contracts/registry/RegistryAdmin.sol +97 -27
- package/contracts/registry/RegistryAuthorization.sol +25 -35
- package/contracts/registry/ReleaseAdmin.sol +100 -42
- package/contracts/registry/ReleaseRegistry.sol +9 -12
- package/contracts/registry/ServiceAuthorizationV3.sol +20 -32
- package/contracts/registry/TokenRegistry.sol +4 -2
- package/contracts/shared/ComponentService.sol +5 -22
- package/contracts/shared/ContractLib.sol +45 -9
- package/contracts/shared/IRegisterable.sol +1 -0
- package/contracts/shared/Service.sol +4 -6
- package/contracts/staking/Staking.sol +5 -4
- package/contracts/staking/TargetManagerLib.sol +1 -1
- package/contracts/type/ObjectType.sol +3 -16
- package/contracts/type/RoleId.sol +59 -57
- package/contracts/type/String.sol +0 -12
- package/contracts/upgradeability/ProxyManager.sol +2 -2
- package/contracts/upgradeability/Versionable.sol +1 -4
- package/package.json +1 -1
@@ -8,12 +8,13 @@ import {IRegistry} from "../registry/IRegistry.sol";
|
|
8
8
|
import {IInstance} from "./IInstance.sol";
|
9
9
|
|
10
10
|
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
11
|
-
import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
|
12
11
|
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {
|
16
|
-
import {
|
12
|
+
import {NftId} from "../type/NftId.sol";
|
13
|
+
import {ObjectType, INSTANCE, ORACLE} from "../type/ObjectType.sol";
|
14
|
+
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
15
|
+
import {Str, StrLib} from "../type/String.sol";
|
16
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
17
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
17
18
|
|
18
19
|
|
19
20
|
contract InstanceAdmin is
|
@@ -25,22 +26,29 @@ contract InstanceAdmin is
|
|
25
26
|
string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
|
26
27
|
string public constant RISK_SET_TARGET_NAME = "RiskSet";
|
27
28
|
|
28
|
-
//
|
29
|
+
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
|
30
|
+
|
29
31
|
error ErrorInstanceAdminNotInstanceService(address caller);
|
30
32
|
|
31
|
-
|
32
|
-
error
|
33
|
+
error ErrorInstanceAdminNotRegistered(address instance);
|
34
|
+
error ErrorInstanceAdminNotInstance(address instance);
|
35
|
+
error ErrorInstanceAdminAlreadyAuthorized(address instance);
|
36
|
+
|
37
|
+
error ErrorInstanceAdminNotComponentRole(RoleId roleId);
|
38
|
+
error ErrorInstanceAdminRoleAlreadyExists(RoleId roleId);
|
39
|
+
error ErrorInstanceAdminRoleTypeNotContract(RoleId roleId, IAccess.RoleType roleType);
|
40
|
+
|
41
|
+
error ErrorInstanceAdminReleaseMismatch();
|
42
|
+
error ErrorInstanceAdminExpectedTargetMissing(string targetName);
|
33
43
|
|
34
44
|
IInstance internal _instance;
|
35
45
|
IRegistry internal _registry;
|
36
46
|
VersionPart internal _release;
|
37
|
-
|
38
|
-
uint64 internal _customRoleIdNext;
|
47
|
+
uint64 internal _customIdNext;
|
39
48
|
|
40
49
|
mapping(address target => RoleId roleId) internal _targetRoleId;
|
41
50
|
uint64 internal _components;
|
42
51
|
|
43
|
-
|
44
52
|
modifier onlyInstanceService() {
|
45
53
|
if (msg.sender != _registry.getServiceAddress(INSTANCE(), getRelease())) {
|
46
54
|
revert ErrorInstanceAdminNotInstanceService(msg.sender);
|
@@ -61,23 +69,24 @@ contract InstanceAdmin is
|
|
61
69
|
/// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
|
62
70
|
function completeSetup(
|
63
71
|
address registry,
|
72
|
+
address instance,
|
64
73
|
address authorization,
|
65
|
-
VersionPart release
|
66
|
-
address instance
|
74
|
+
VersionPart release
|
67
75
|
)
|
68
76
|
external
|
69
77
|
reinitializer(uint64(release.toInt()))
|
70
78
|
onlyDeployer()
|
71
79
|
{
|
72
80
|
// checks
|
73
|
-
|
81
|
+
_checkRegistry(registry);
|
82
|
+
_checkIsRegistered(registry, instance, INSTANCE());
|
74
83
|
|
75
84
|
AccessManagerCloneable(
|
76
85
|
authority()).completeSetup(
|
77
86
|
registry,
|
78
87
|
release);
|
79
88
|
|
80
|
-
_checkAuthorization(authorization, INSTANCE(), release,
|
89
|
+
_checkAuthorization(authorization, INSTANCE(), release, true);
|
81
90
|
|
82
91
|
// effects
|
83
92
|
_registry = IRegistry(registry);
|
@@ -86,63 +95,29 @@ contract InstanceAdmin is
|
|
86
95
|
_instance = IInstance(instance);
|
87
96
|
_authorization = IAuthorization(authorization);
|
88
97
|
_components = 0;
|
89
|
-
|
98
|
+
_customIdNext = CUSTOM_ROLE_ID_MIN;
|
90
99
|
|
91
100
|
// link nft ownability to instance
|
92
101
|
_linkToNftOwnable(instance);
|
93
102
|
|
94
|
-
//
|
95
|
-
|
103
|
+
// create instance role and target
|
104
|
+
_setupInstance(instance);
|
96
105
|
|
97
|
-
//
|
98
|
-
_setupServiceRoles(_authorization);
|
106
|
+
// add instance authorization
|
99
107
|
_createRoles(_authorization);
|
100
|
-
|
101
|
-
|
108
|
+
// _createTargets(_authorization);
|
109
|
+
_setupInstanceHelperTargetsWithRoles();
|
102
110
|
_createTargetAuthorizations(_authorization);
|
103
111
|
}
|
104
112
|
|
105
113
|
|
106
|
-
|
107
|
-
/// Service addresses used for the granting are determined by the registry and the release of this instance.
|
108
|
-
function _setupServiceRoles(IAuthorization authorization)
|
114
|
+
function _createTargets(IAuthorization authorization)
|
109
115
|
internal
|
110
116
|
{
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
RoleId serviceRoleId = authorization.getServiceRole(serviceDomain);
|
116
|
-
string memory serviceRoleName = authorization.getRoleName(serviceRoleId);
|
117
|
-
|
118
|
-
// create service role if missing
|
119
|
-
if (!roleExists(serviceRoleId)) {
|
120
|
-
_createRole(
|
121
|
-
serviceRoleId,
|
122
|
-
AccessAdminLib.toRole(
|
123
|
-
ADMIN_ROLE(),
|
124
|
-
IAccess.RoleType.Contract,
|
125
|
-
1,
|
126
|
-
serviceRoleName));
|
127
|
-
}
|
128
|
-
|
129
|
-
// grant service role to service
|
130
|
-
address service = _registry.getServiceAddress(serviceDomain, _release);
|
131
|
-
_grantRoleToAccount(
|
132
|
-
serviceRoleId,
|
133
|
-
service);
|
134
|
-
}
|
135
|
-
}
|
136
|
-
|
137
|
-
|
138
|
-
function _createInstanceTargets(string memory instanceTargetName)
|
139
|
-
internal
|
140
|
-
{
|
141
|
-
_createManagedTarget(address(_instance), instanceTargetName, TargetType.Instance);
|
142
|
-
_createManagedTarget(address(this), INSTANCE_ADMIN_TARGET_NAME, TargetType.Instance);
|
143
|
-
_createManagedTarget(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME, TargetType.Instance);
|
144
|
-
_createManagedTarget(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME, TargetType.Instance);
|
145
|
-
_createManagedTarget(address(_instance.getRiskSet()), RISK_SET_TARGET_NAME, TargetType.Instance);
|
117
|
+
_createTargetWithRole(address(this), INSTANCE_ADMIN_TARGET_NAME, authorization.getTargetRole(StrLib.toStr(INSTANCE_ADMIN_TARGET_NAME)));
|
118
|
+
_createTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME, authorization.getTargetRole(StrLib.toStr(INSTANCE_STORE_TARGET_NAME)));
|
119
|
+
_createTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME, authorization.getTargetRole(StrLib.toStr(BUNDLE_SET_TARGET_NAME)));
|
120
|
+
_createTargetWithRole(address(_instance.getRiskSet()), RISK_SET_TARGET_NAME, authorization.getTargetRole(StrLib.toStr(RISK_SET_TARGET_NAME)));
|
146
121
|
}
|
147
122
|
|
148
123
|
|
@@ -156,19 +131,19 @@ contract InstanceAdmin is
|
|
156
131
|
restricted()
|
157
132
|
{
|
158
133
|
// checks
|
159
|
-
|
134
|
+
_checkIsRegistered(address(getRegistry()), componentAddress, expectedType);
|
160
135
|
|
161
136
|
IInstanceLinkedComponent component = IInstanceLinkedComponent(componentAddress);
|
162
137
|
IAuthorization authorization = component.getAuthorization();
|
163
|
-
_checkAuthorization(address(authorization), expectedType, getRelease(), false
|
138
|
+
_checkAuthorization(address(authorization), expectedType, getRelease(), false);
|
164
139
|
|
165
140
|
// effects
|
141
|
+
// setup target and role for component (including token handler if applicable)
|
142
|
+
_setupComponentAndTokenHandler(component, expectedType);
|
143
|
+
|
144
|
+
// create other roles and function authorizations
|
166
145
|
_createRoles(authorization);
|
167
|
-
_createManagedTarget(componentAddress, authorization.getMainTargetName(), TargetType.Component);
|
168
146
|
_createTargetAuthorizations(authorization);
|
169
|
-
|
170
|
-
// increase component count
|
171
|
-
_components++;
|
172
147
|
}
|
173
148
|
|
174
149
|
function getRelease()
|
@@ -181,45 +156,38 @@ contract InstanceAdmin is
|
|
181
156
|
}
|
182
157
|
|
183
158
|
|
184
|
-
|
185
|
-
function
|
186
|
-
string memory name,
|
187
|
-
RoleId adminRoleId,
|
188
|
-
uint32 maxMemberCount
|
189
|
-
)
|
190
|
-
external
|
191
|
-
restricted()
|
192
|
-
returns (RoleId roleId)
|
193
|
-
{
|
194
|
-
// check role does not yet exist
|
195
|
-
if (roleExists(name)) {
|
196
|
-
revert ErrorAccessAdminRoleAlreadyCreated(
|
197
|
-
getRoleForName(name),
|
198
|
-
name);
|
199
|
-
}
|
159
|
+
// create instance role and target
|
160
|
+
function _setupInstance(address instance) internal {
|
200
161
|
|
201
|
-
// create
|
202
|
-
|
162
|
+
// create instance role
|
163
|
+
RoleId instanceRoleId = _authorization.getTargetRole(
|
164
|
+
_authorization.getMainTarget());
|
203
165
|
|
204
|
-
// create role
|
205
166
|
_createRole(
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
167
|
+
instanceRoleId,
|
168
|
+
_authorization.getRoleInfo(instanceRoleId));
|
169
|
+
|
170
|
+
// create instance target
|
171
|
+
_createTarget(
|
172
|
+
instance,
|
173
|
+
_authorization.getMainTargetName(),
|
174
|
+
true, // checkAuthority
|
175
|
+
false); // custom
|
176
|
+
|
177
|
+
// assign instance role to instance
|
178
|
+
_grantRoleToAccount(
|
179
|
+
instanceRoleId,
|
180
|
+
instance);
|
212
181
|
}
|
213
182
|
|
183
|
+
/// @dev Creates a custom role
|
184
|
+
// TODO implement
|
185
|
+
// function createRole()
|
186
|
+
// external
|
187
|
+
// restricted()
|
188
|
+
// {
|
214
189
|
|
215
|
-
|
216
|
-
function setRoleActive(RoleId roleId, bool active)
|
217
|
-
external
|
218
|
-
restricted()
|
219
|
-
{
|
220
|
-
_setRoleActive(roleId, active);
|
221
|
-
}
|
222
|
-
|
190
|
+
// }
|
223
191
|
|
224
192
|
/// @dev Grants the provided role to the specified account
|
225
193
|
function grantRole(
|
@@ -232,62 +200,6 @@ contract InstanceAdmin is
|
|
232
200
|
}
|
233
201
|
|
234
202
|
|
235
|
-
/// @dev Revokes the provided role from the specified account
|
236
|
-
function revokeRole(
|
237
|
-
RoleId roleId,
|
238
|
-
address account)
|
239
|
-
external
|
240
|
-
restricted()
|
241
|
-
{
|
242
|
-
_revokeRoleFromAccount(roleId, account);
|
243
|
-
}
|
244
|
-
|
245
|
-
|
246
|
-
/// @dev Create a new custom target.
|
247
|
-
/// The target needs to be an access managed contract.
|
248
|
-
function createTarget(
|
249
|
-
address target,
|
250
|
-
string memory name
|
251
|
-
)
|
252
|
-
external
|
253
|
-
restricted()
|
254
|
-
returns (RoleId contractRoleId)
|
255
|
-
{
|
256
|
-
return _createManagedTarget(
|
257
|
-
target,
|
258
|
-
name,
|
259
|
-
TargetType.Custom);
|
260
|
-
}
|
261
|
-
|
262
|
-
|
263
|
-
/// @dev Add function authorizations for the specified component or custom target.
|
264
|
-
function authorizeFunctions(
|
265
|
-
address target,
|
266
|
-
RoleId roleId,
|
267
|
-
IAccess.FunctionInfo[] memory functions
|
268
|
-
)
|
269
|
-
external
|
270
|
-
restricted()
|
271
|
-
{
|
272
|
-
_checkComponentOrCustomTarget(target);
|
273
|
-
_authorizeTargetFunctions(target, roleId, functions, true);
|
274
|
-
}
|
275
|
-
|
276
|
-
|
277
|
-
/// @dev Removes function authorizations for the specified component or custom target.
|
278
|
-
function unauthorizeFunctions(
|
279
|
-
address target,
|
280
|
-
IAccess.FunctionInfo[] memory functions
|
281
|
-
)
|
282
|
-
external
|
283
|
-
restricted()
|
284
|
-
{
|
285
|
-
_checkComponentOrCustomTarget(target);
|
286
|
-
_authorizeTargetFunctions(target, ADMIN_ROLE(), functions, false);
|
287
|
-
}
|
288
|
-
|
289
|
-
|
290
|
-
/// @dev locks the instance and all its releated targets including component and custom targets.
|
291
203
|
function setInstanceLocked(bool locked)
|
292
204
|
external
|
293
205
|
// not restricted(): need to operate on locked instances to unlock instance
|
@@ -334,6 +246,100 @@ contract InstanceAdmin is
|
|
334
246
|
|
335
247
|
// ------------------- Internal functions ------------------- //
|
336
248
|
|
249
|
+
function _setupComponentAndTokenHandler(
|
250
|
+
IInstanceLinkedComponent component,
|
251
|
+
ObjectType componentType
|
252
|
+
)
|
253
|
+
internal
|
254
|
+
{
|
255
|
+
|
256
|
+
IAuthorization authorization = component.getAuthorization();
|
257
|
+
string memory targetName = authorization.getMainTargetName();
|
258
|
+
|
259
|
+
// create component role and target
|
260
|
+
RoleId componentRoleId = _createComponentRoleId(component, authorization);
|
261
|
+
|
262
|
+
// create component's target
|
263
|
+
_createTarget(
|
264
|
+
address(component),
|
265
|
+
targetName,
|
266
|
+
true, // checkAuthority
|
267
|
+
false); // custom
|
268
|
+
|
269
|
+
// create component's token handler target if app
|
270
|
+
if (componentType != ORACLE()) {
|
271
|
+
NftId componentNftId = _registry.getNftIdForAddress(address(component));
|
272
|
+
address tokenHandler = address(
|
273
|
+
_instance.getInstanceReader().getComponentInfo(
|
274
|
+
componentNftId).tokenHandler);
|
275
|
+
|
276
|
+
_createTarget(
|
277
|
+
tokenHandler,
|
278
|
+
authorization.getTokenHandlerName(),
|
279
|
+
true,
|
280
|
+
false);
|
281
|
+
|
282
|
+
// token handler does not require its own role
|
283
|
+
// token handler is not calling other components
|
284
|
+
}
|
285
|
+
|
286
|
+
// assign component role to component
|
287
|
+
_grantRoleToAccount(
|
288
|
+
componentRoleId,
|
289
|
+
address(component));
|
290
|
+
}
|
291
|
+
|
292
|
+
|
293
|
+
function _createComponentRoleId(
|
294
|
+
IInstanceLinkedComponent component,
|
295
|
+
IAuthorization authorization
|
296
|
+
)
|
297
|
+
internal
|
298
|
+
returns (RoleId componentRoleId)
|
299
|
+
{
|
300
|
+
// checks
|
301
|
+
// check component is not yet authorized
|
302
|
+
if (_targetRoleId[address(component)].gtz()) {
|
303
|
+
revert ErrorInstanceAdminAlreadyAuthorized(address(component));
|
304
|
+
}
|
305
|
+
|
306
|
+
// check generic component role
|
307
|
+
RoleId genericComponentRoleId = authorization.getTargetRole(
|
308
|
+
authorization.getMainTarget());
|
309
|
+
|
310
|
+
if (!genericComponentRoleId.isComponentRole()) {
|
311
|
+
revert ErrorInstanceAdminNotComponentRole(genericComponentRoleId);
|
312
|
+
}
|
313
|
+
|
314
|
+
// check component role does not exist
|
315
|
+
componentRoleId = toComponentRole(
|
316
|
+
genericComponentRoleId,
|
317
|
+
_components);
|
318
|
+
|
319
|
+
if (roleExists(componentRoleId)) {
|
320
|
+
revert ErrorInstanceAdminRoleAlreadyExists(componentRoleId);
|
321
|
+
}
|
322
|
+
|
323
|
+
// check role info
|
324
|
+
IAccess.RoleInfo memory roleInfo = authorization.getRoleInfo(
|
325
|
+
genericComponentRoleId);
|
326
|
+
|
327
|
+
if (roleInfo.roleType != IAccess.RoleType.Contract) {
|
328
|
+
revert ErrorInstanceAdminRoleTypeNotContract(
|
329
|
+
componentRoleId,
|
330
|
+
roleInfo.roleType);
|
331
|
+
}
|
332
|
+
|
333
|
+
// effects
|
334
|
+
_targetRoleId[address(component)] = componentRoleId;
|
335
|
+
_components++;
|
336
|
+
|
337
|
+
_createRole(
|
338
|
+
componentRoleId,
|
339
|
+
roleInfo);
|
340
|
+
}
|
341
|
+
|
342
|
+
|
337
343
|
function _createRoles(IAuthorization authorization)
|
338
344
|
internal
|
339
345
|
{
|
@@ -341,8 +347,12 @@ contract InstanceAdmin is
|
|
341
347
|
RoleId mainTargetRoleId = authorization.getTargetRole(
|
342
348
|
authorization.getMainTarget());
|
343
349
|
|
350
|
+
RoleId roleId;
|
351
|
+
RoleInfo memory roleInfo;
|
352
|
+
|
344
353
|
for(uint256 i = 0; i < roles.length; i++) {
|
345
|
-
|
354
|
+
|
355
|
+
roleId = roles[i];
|
346
356
|
|
347
357
|
// skip main target role, create role if not exists
|
348
358
|
if (roleId != mainTargetRoleId && !roleExists(roleId)) {
|
@@ -354,6 +364,16 @@ contract InstanceAdmin is
|
|
354
364
|
}
|
355
365
|
|
356
366
|
|
367
|
+
function toComponentRole(RoleId roleId, uint64 componentIdx)
|
368
|
+
internal
|
369
|
+
pure
|
370
|
+
returns (RoleId)
|
371
|
+
{
|
372
|
+
return RoleIdLib.toRoleId(
|
373
|
+
RoleIdLib.toInt(roleId) + componentIdx);
|
374
|
+
}
|
375
|
+
|
376
|
+
|
357
377
|
function _createTargetAuthorizations(IAuthorization authorization)
|
358
378
|
internal
|
359
379
|
{
|
@@ -363,21 +383,68 @@ contract InstanceAdmin is
|
|
363
383
|
for(uint256 i = 0; i < targets.length; i++) {
|
364
384
|
target = targets[i];
|
365
385
|
RoleId[] memory authorizedRoles = authorization.getAuthorizedRoles(target);
|
386
|
+
RoleId authorizedRole;
|
366
387
|
|
367
388
|
for(uint256 j = 0; j < authorizedRoles.length; j++) {
|
368
|
-
|
389
|
+
authorizedRole = authorizedRoles[j];
|
390
|
+
|
391
|
+
_authorizeTargetFunctions(
|
392
|
+
getTargetForName(target),
|
393
|
+
authorizedRole,
|
394
|
+
authorization.getAuthorizedFunctions(
|
395
|
+
target,
|
396
|
+
authorizedRole));
|
369
397
|
}
|
370
398
|
}
|
371
399
|
}
|
372
400
|
|
401
|
+
function _checkAndCreateTargetWithRole(
|
402
|
+
address target,
|
403
|
+
string memory targetName
|
404
|
+
)
|
405
|
+
internal
|
406
|
+
{
|
407
|
+
// check that target name is defined in authorization specification
|
408
|
+
Str name = StrLib.toStr(targetName);
|
409
|
+
if (!_authorization.targetExists(name)) {
|
410
|
+
revert ErrorInstanceAdminExpectedTargetMissing(targetName);
|
411
|
+
}
|
412
|
+
|
413
|
+
// create named target
|
414
|
+
_createTarget(
|
415
|
+
target,
|
416
|
+
targetName,
|
417
|
+
false, // check authority TODO check normal targets, don't check service targets (they share authority with release admin)
|
418
|
+
false);
|
419
|
+
|
420
|
+
// assign target role if defined
|
421
|
+
RoleId targetRoleId = _authorization.getTargetRole(name);
|
422
|
+
if (targetRoleId != RoleIdLib.zero()) {
|
423
|
+
_grantRoleToAccount(targetRoleId, target);
|
424
|
+
}
|
425
|
+
}
|
373
426
|
|
374
|
-
function
|
427
|
+
function _setupInstanceHelperTargetsWithRoles()
|
375
428
|
internal
|
376
|
-
view
|
377
429
|
{
|
378
|
-
|
379
|
-
|
380
|
-
|
430
|
+
|
431
|
+
// create module targets
|
432
|
+
_checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
|
433
|
+
_checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
|
434
|
+
_checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
|
435
|
+
_checkAndCreateTargetWithRole(address(_instance.getRiskSet()), RISK_SET_TARGET_NAME);
|
436
|
+
|
437
|
+
// create targets for services that need to access the instance targets
|
438
|
+
ObjectType[] memory serviceDomains = _authorization.getServiceDomains();
|
439
|
+
VersionPart release = _authorization.getRelease();
|
440
|
+
ObjectType serviceDomain;
|
441
|
+
|
442
|
+
for (uint256 i = 0; i < serviceDomains.length; i++) {
|
443
|
+
serviceDomain = serviceDomains[i];
|
444
|
+
|
445
|
+
_checkAndCreateTargetWithRole(
|
446
|
+
_registry.getServiceAddress(serviceDomain, release),
|
447
|
+
_authorization.getServiceTarget(serviceDomain).toString());
|
381
448
|
}
|
382
449
|
}
|
383
450
|
}
|
@@ -2,15 +2,14 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IAccess} from "../authorization/IAccess.sol";
|
5
|
-
import {IInstance} from "../instance/Instance.sol";
|
6
5
|
|
7
|
-
import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
|
8
6
|
import {Authorization} from "../authorization/Authorization.sol";
|
9
7
|
import {ACCOUNTING, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, RISK} from "../../contracts/type/ObjectType.sol";
|
10
8
|
import {BundleSet} from "../instance/BundleSet.sol";
|
9
|
+
import {Instance} from "../instance/Instance.sol";
|
11
10
|
import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
12
11
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
13
|
-
import {
|
12
|
+
import {PUBLIC_ROLE} from "../type/RoleId.sol";
|
14
13
|
import {RiskSet} from "../instance/RiskSet.sol";
|
15
14
|
|
16
15
|
|
@@ -19,7 +18,6 @@ contract InstanceAuthorizationV3
|
|
19
18
|
{
|
20
19
|
|
21
20
|
string public constant INSTANCE_ROLE_NAME = "InstanceRole";
|
22
|
-
string public constant INSTANCE_OWNER_ROLE_NAME = "InstanceOwnerRole";
|
23
21
|
|
24
22
|
string public constant INSTANCE_TARGET_NAME = "Instance";
|
25
23
|
string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
@@ -28,41 +26,22 @@ contract InstanceAuthorizationV3
|
|
28
26
|
string public constant RISK_SET_TARGET_NAME = "RiskSet";
|
29
27
|
|
30
28
|
constructor()
|
31
|
-
Authorization(
|
32
|
-
INSTANCE_TARGET_NAME,
|
33
|
-
INSTANCE(),
|
34
|
-
3,
|
35
|
-
COMMIT_HASH,
|
36
|
-
false,
|
37
|
-
false)
|
29
|
+
Authorization(INSTANCE_TARGET_NAME, INSTANCE(), false, false)
|
38
30
|
{ }
|
39
31
|
|
40
32
|
function _setupServiceTargets() internal virtual override {
|
41
33
|
// service targets relevant to instance
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
}
|
54
|
-
|
55
|
-
function _setupRoles()
|
56
|
-
internal
|
57
|
-
override
|
58
|
-
{
|
59
|
-
_addRole(
|
60
|
-
INSTANCE_OWNER_ROLE(),
|
61
|
-
AccessAdminLib.toRole(
|
62
|
-
ADMIN_ROLE(),
|
63
|
-
RoleType.Custom,
|
64
|
-
0, // max member count special case: instance nft owner is sole role owner
|
65
|
-
INSTANCE_OWNER_ROLE_NAME));
|
34
|
+
_addServiceTargetWithRole(INSTANCE());
|
35
|
+
_addServiceTargetWithRole(ACCOUNTING());
|
36
|
+
_addServiceTargetWithRole(COMPONENT());
|
37
|
+
_addServiceTargetWithRole(DISTRIBUTION());
|
38
|
+
_addServiceTargetWithRole(ORACLE());
|
39
|
+
_addServiceTargetWithRole(POOL());
|
40
|
+
_addServiceTargetWithRole(BUNDLE());
|
41
|
+
_addServiceTargetWithRole(RISK());
|
42
|
+
_addServiceTargetWithRole(APPLICATION());
|
43
|
+
_addServiceTargetWithRole(POLICY());
|
44
|
+
_addServiceTargetWithRole(CLAIM());
|
66
45
|
}
|
67
46
|
|
68
47
|
function _setupTargets()
|
@@ -70,6 +49,7 @@ contract InstanceAuthorizationV3
|
|
70
49
|
override
|
71
50
|
{
|
72
51
|
// instance supporting targets
|
52
|
+
// _addGifContractTarget(INSTANCE_ADMIN_TARGET_NAME);
|
73
53
|
_addTarget(INSTANCE_ADMIN_TARGET_NAME);
|
74
54
|
_addTarget(INSTANCE_STORE_TARGET_NAME);
|
75
55
|
_addTarget(BUNDLE_SET_TARGET_NAME);
|
@@ -132,27 +112,25 @@ contract InstanceAuthorizationV3
|
|
132
112
|
|
133
113
|
// authorize instance service role
|
134
114
|
functions = _authorizeForTarget(INSTANCE_TARGET_NAME, PUBLIC_ROLE());
|
135
|
-
_authorize(functions,
|
136
|
-
_authorize(functions,
|
115
|
+
_authorize(functions, Instance.registerProduct.selector, "registerProduct");
|
116
|
+
_authorize(functions, Instance.upgradeInstanceReader.selector, "upgradeInstanceReader");
|
137
117
|
|
138
118
|
// staking
|
139
|
-
_authorize(functions,
|
140
|
-
_authorize(functions,
|
141
|
-
_authorize(functions,
|
142
|
-
_authorize(functions,
|
119
|
+
_authorize(functions, Instance.setStakingLockingPeriod.selector, "setStakingLockingPeriod");
|
120
|
+
_authorize(functions, Instance.setStakingRewardRate.selector, "setStakingRewardRate");
|
121
|
+
_authorize(functions, Instance.refillStakingRewardReserves.selector, "refillStakingRewardReserves");
|
122
|
+
_authorize(functions, Instance.withdrawStakingRewardReserves.selector, "withdrawStakingRewardReserves");
|
143
123
|
|
144
124
|
// custom authz
|
145
|
-
_authorize(functions,
|
146
|
-
_authorize(functions,
|
147
|
-
_authorize(functions,
|
148
|
-
_authorize(functions,
|
149
|
-
_authorize(functions,
|
150
|
-
_authorize(functions, IInstance.authorizeFunctions.selector, "authorizeFunctions");
|
151
|
-
_authorize(functions, IInstance.unauthorizeFunctions.selector, "unauthorizeFunctions");
|
125
|
+
_authorize(functions, Instance.createRole.selector, "createRole");
|
126
|
+
_authorize(functions, Instance.grantRole.selector, "grantRole");
|
127
|
+
_authorize(functions, Instance.revokeRole.selector, "revokeRole");
|
128
|
+
_authorize(functions, Instance.createTarget.selector, "createTarget");
|
129
|
+
_authorize(functions, Instance.setTargetFunctionRole.selector, "setTargetFunctionRole");
|
152
130
|
|
153
131
|
// authorize instance service role
|
154
132
|
functions = _authorizeForTarget(INSTANCE_TARGET_NAME, getServiceRole(INSTANCE()));
|
155
|
-
_authorize(functions,
|
133
|
+
_authorize(functions, Instance.setInstanceReader.selector, "setInstanceReader");
|
156
134
|
}
|
157
135
|
|
158
136
|
|
@@ -163,16 +141,8 @@ contract InstanceAuthorizationV3
|
|
163
141
|
|
164
142
|
// authorize component service role
|
165
143
|
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(INSTANCE()));
|
166
|
-
_authorize(functions, InstanceAdmin.createRole.selector, "createRole");
|
167
|
-
_authorize(functions, InstanceAdmin.setRoleActive.selector, "setRoleActive");
|
168
|
-
_authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
|
169
|
-
_authorize(functions, InstanceAdmin.revokeRole.selector, "revokeRole");
|
170
|
-
|
171
|
-
_authorize(functions, InstanceAdmin.createTarget.selector, "createTarget");
|
172
|
-
_authorize(functions, InstanceAdmin.authorizeFunctions.selector, "authorizeFunctions");
|
173
|
-
_authorize(functions, InstanceAdmin.unauthorizeFunctions.selector, "unauthorizeFunctions");
|
174
|
-
_authorize(functions, InstanceAdmin.setTargetLocked.selector, "setTargetLocked");
|
175
144
|
_authorize(functions, InstanceAdmin.setInstanceLocked.selector, "setInstanceLocked");
|
145
|
+
_authorize(functions, InstanceAdmin.setTargetLocked.selector, "setTargetLocked");
|
176
146
|
|
177
147
|
// authorize component service role
|
178
148
|
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(COMPONENT()));
|