@etherisc/gif-next 0.0.2-7d7c399-079 → 0.0.2-7d91021-862
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +91 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +603 -280
- 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 +8 -39
- 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 +487 -207
- 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 +66 -154
- 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 +21 -98
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +512 -204
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +147 -77
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -97
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +358 -82
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -110
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +355 -52
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -142
- 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 +128 -178
- 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 +39 -73
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -148
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +355 -52
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +360 -193
- 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/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +472 -28
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +345 -12
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +510 -85
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +892 -408
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +327 -64
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +674 -494
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +377 -64
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -55
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1328 -2007
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +141 -85
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +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 +33 -45
- 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 +19 -31
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -31
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +87 -42
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +96 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -79
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +355 -52
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +280 -209
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +117 -71
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +174 -87
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -41
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +306 -166
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -41
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +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 +547 -340
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +145 -71
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +273 -50
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +103 -41
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -58
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +137 -139
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +113 -87
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +208 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +45 -23
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +133 -65
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +50 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -52
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +231 -19
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +245 -161
- 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 +126 -80
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +116 -114
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +100 -70
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -52
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +279 -43
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +91 -41
- 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 +52 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +90 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +713 -414
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +47 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +76 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +784 -427
- 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 +188 -124
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +19 -31
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +206 -252
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +110 -72
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +130 -39
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -31
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +111 -157
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -31
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/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 +19 -31
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +62 -161
- 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 +1453 -153
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +187 -107
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1565 -239
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +129 -70
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +229 -157
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +87 -53
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1633 -819
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +159 -87
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +10 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +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 +9 -4
- 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 +45 -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 +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +56 -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 +65 -27
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +15 -3
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +396 -275
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +40 -31
- package/contracts/authorization/Authorization.sol +142 -262
- package/contracts/authorization/IAccess.sol +25 -7
- package/contracts/authorization/IAccessAdmin.sol +83 -79
- package/contracts/authorization/IAuthorization.sol +9 -43
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +248 -34
- package/contracts/distribution/BasicDistribution.sol +14 -13
- package/contracts/distribution/BasicDistributionAuthorization.sol +29 -9
- package/contracts/distribution/Distribution.sol +22 -64
- package/contracts/distribution/DistributionService.sol +166 -75
- 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 +7 -12
- 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 +94 -27
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/BundleSet.sol +4 -4
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +103 -13
- package/contracts/instance/IInstanceService.sol +54 -7
- package/contracts/instance/Instance.sol +177 -61
- package/contracts/instance/InstanceAdmin.sol +249 -196
- package/contracts/instance/InstanceAuthorizationV3.sol +117 -67
- package/contracts/instance/InstanceReader.sol +398 -382
- package/contracts/instance/InstanceService.sol +283 -173
- package/contracts/instance/InstanceStore.sol +153 -128
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +14 -5
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/instance/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 +15 -6
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +3 -6
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +4 -8
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -18
- package/contracts/pool/BasicPoolAuthorization.sol +29 -16
- package/contracts/pool/BundleService.sol +57 -96
- package/contracts/pool/IBundleService.sol +27 -32
- package/contracts/pool/IPoolService.sol +57 -40
- package/contracts/pool/Pool.sol +15 -29
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +189 -190
- package/contracts/product/ApplicationService.sol +85 -17
- package/contracts/product/BasicProduct.sol +2 -5
- package/contracts/product/BasicProductAuthorization.sol +31 -9
- package/contracts/product/ClaimService.sol +112 -194
- package/contracts/product/IApplicationService.sol +24 -2
- package/contracts/product/IClaimService.sol +6 -6
- package/contracts/product/IPolicyService.sol +20 -8
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IRiskService.sol +25 -10
- package/contracts/product/PolicyService.sol +110 -201
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PricingService.sol +33 -31
- package/contracts/product/Product.sol +61 -33
- package/contracts/product/RiskService.sol +63 -25
- package/contracts/registry/IRegistry.sol +17 -9
- package/contracts/registry/IRelease.sol +6 -3
- package/contracts/registry/Registry.sol +19 -9
- package/contracts/registry/RegistryAdmin.sol +100 -253
- package/contracts/registry/RegistryAuthorization.sol +336 -0
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +62 -112
- package/contracts/registry/ReleaseRegistry.sol +57 -43
- package/contracts/registry/ServiceAuthorizationV3.sol +131 -31
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +19 -35
- package/contracts/shared/ComponentService.sol +281 -290
- package/contracts/shared/ContractLib.sol +137 -77
- package/contracts/shared/IComponent.sol +1 -4
- package/contracts/shared/IComponentService.sol +21 -26
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +8 -13
- package/contracts/shared/NftOwnable.sol +4 -2
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Registerable.sol +1 -4
- package/contracts/shared/Service.sol +6 -4
- package/contracts/shared/TokenHandler.sol +44 -91
- package/contracts/staking/IStaking.sol +266 -72
- package/contracts/staking/IStakingService.sol +45 -75
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +475 -204
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +58 -77
- package/contracts/staking/StakingService.sol +62 -180
- package/contracts/staking/StakingServiceManager.sol +6 -4
- package/contracts/staking/StakingStore.sol +1093 -330
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +15 -15
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +69 -52
- package/contracts/type/RiskId.sol +4 -3
- package/contracts/type/RoleId.sol +60 -45
- package/contracts/type/Seconds.sol +19 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -2
- package/contracts/type/UFixed.sol +28 -10
- package/contracts/type/Version.sol +39 -0
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +25 -11
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +2 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
- 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 -485
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -1,81 +1,53 @@
|
|
1
1
|
// SPDX-License-Identifier: UNLICENSED
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
|
5
|
-
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
6
|
-
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
4
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
7
5
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
8
6
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
9
|
-
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
10
7
|
import {IRegistry} from "../registry/IRegistry.sol";
|
11
8
|
import {IInstance} from "./IInstance.sol";
|
12
|
-
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {
|
16
|
-
import {
|
9
|
+
|
10
|
+
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
11
|
+
import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
|
12
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
13
|
+
import {ObjectType, INSTANCE} from "../type/ObjectType.sol";
|
14
|
+
import {RoleId, ADMIN_ROLE} from "../type/RoleId.sol";
|
15
|
+
import {Str} from "../type/String.sol";
|
16
|
+
import {VersionPart} from "../type/Version.sol";
|
17
|
+
import {INSTANCE_TARGET_NAME, INSTANCE_ADMIN_TARGET_NAME, INSTANCE_STORE_TARGET_NAME, PRODUCT_STORE_TARGET_NAME, BUNDLE_SET_TARGET_NAME, RISK_SET_TARGET_NAME} from "./TargetNames.sol";
|
17
18
|
|
18
19
|
|
19
20
|
contract InstanceAdmin is
|
20
21
|
AccessAdmin
|
21
22
|
{
|
22
|
-
|
23
|
-
|
24
|
-
string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
|
25
|
-
string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
|
26
|
-
string public constant RISK_SET_TAGET_NAME = "RiskSet";
|
27
|
-
|
28
|
-
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
|
23
|
+
// onlyInstanceService
|
24
|
+
error ErrorInstanceAdminNotInstanceService(address caller);
|
29
25
|
|
30
|
-
|
31
|
-
error
|
32
|
-
error ErrorInstanceAdminNotRegistered(address target);
|
33
|
-
error ErrorInstanceAdminAlreadyAuthorized(address target);
|
34
|
-
error ErrorInstanceAdminReleaseMismatch();
|
35
|
-
error ErrorInstanceAdminExpectedTargetMissing(string targetName);
|
26
|
+
// authorizeFunctions
|
27
|
+
error ErrorInstanceAdminNotComponentOrCustomTarget(address target);
|
36
28
|
|
37
29
|
IInstance internal _instance;
|
38
30
|
IRegistry internal _registry;
|
39
|
-
|
31
|
+
VersionPart internal _release;
|
40
32
|
|
41
|
-
|
33
|
+
uint64 internal _customRoleIdNext;
|
42
34
|
|
35
|
+
mapping(address target => RoleId roleId) internal _targetRoleId;
|
36
|
+
uint64 internal _components;
|
43
37
|
|
44
|
-
|
45
|
-
|
46
|
-
|
38
|
+
|
39
|
+
modifier onlyInstanceService() {
|
40
|
+
if (msg.sender != _registry.getServiceAddress(INSTANCE(), getRelease())) {
|
41
|
+
revert ErrorInstanceAdminNotInstanceService(msg.sender);
|
47
42
|
}
|
48
43
|
_;
|
49
44
|
}
|
50
45
|
|
51
46
|
/// @dev Only used for master instance admin.
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
initialize(new AccessManagerCloneable());
|
57
|
-
|
58
|
-
_instanceAuthorization = IAuthorization(instanceAuthorization);
|
59
|
-
|
60
|
-
_disableInitializers();
|
61
|
-
}
|
62
|
-
|
63
|
-
|
64
|
-
function initialize(
|
65
|
-
AccessManagerCloneable clonedAccessManager,
|
66
|
-
IRegistry registry,
|
67
|
-
VersionPart release
|
68
|
-
)
|
69
|
-
external
|
70
|
-
initializer()
|
71
|
-
{
|
72
|
-
__AccessAdmin_init(clonedAccessManager);
|
73
|
-
|
74
|
-
clonedAccessManager.completeSetup(
|
75
|
-
address(registry),
|
76
|
-
release);
|
77
|
-
|
78
|
-
_registry = registry;
|
47
|
+
constructor(address accessManager) {
|
48
|
+
initialize(
|
49
|
+
accessManager,
|
50
|
+
"MasterInstanceAdmin");
|
79
51
|
}
|
80
52
|
|
81
53
|
|
@@ -83,96 +55,167 @@ contract InstanceAdmin is
|
|
83
55
|
/// Important: Initialization of instance admin is only complete after calling this function.
|
84
56
|
/// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
|
85
57
|
function completeSetup(
|
86
|
-
address
|
87
|
-
address authorization
|
58
|
+
address registry,
|
59
|
+
address authorization,
|
60
|
+
VersionPart release,
|
61
|
+
address instance
|
88
62
|
)
|
89
63
|
external
|
90
|
-
reinitializer(uint64(
|
64
|
+
reinitializer(uint64(release.toInt()))
|
91
65
|
onlyDeployer()
|
92
66
|
{
|
93
|
-
|
67
|
+
// checks
|
68
|
+
AccessAdminLib.checkIsRegistered(registry, instance, INSTANCE());
|
69
|
+
|
70
|
+
AccessManagerCloneable(
|
71
|
+
authority()).completeSetup(
|
72
|
+
registry,
|
73
|
+
release);
|
74
|
+
|
75
|
+
_checkAuthorization(authorization, INSTANCE(), release, false, true);
|
76
|
+
|
77
|
+
// effects
|
78
|
+
_registry = IRegistry(registry);
|
79
|
+
_release = release;
|
80
|
+
|
94
81
|
_instance = IInstance(instance);
|
95
|
-
|
82
|
+
_authorization = IAuthorization(authorization);
|
83
|
+
_components = 0;
|
84
|
+
_customRoleIdNext = 0;
|
85
|
+
|
86
|
+
// link nft ownability to instance
|
87
|
+
_linkToNftOwnable(instance);
|
88
|
+
|
89
|
+
// setup instance targets
|
90
|
+
_createInstanceTargets(_authorization.getMainTargetName());
|
91
|
+
|
92
|
+
// setup non-contract roles
|
93
|
+
_setupServiceRoles(_authorization);
|
94
|
+
_createRoles(_authorization);
|
95
|
+
|
96
|
+
// authorize functions of instance contracts
|
97
|
+
_createTargetAuthorizations(_authorization);
|
98
|
+
}
|
99
|
+
|
100
|
+
|
101
|
+
/// @dev grants the service roles to the service addresses based on the authorization specification.
|
102
|
+
/// Service addresses used for the granting are determined by the registry and the release of this instance.
|
103
|
+
function _setupServiceRoles(IAuthorization authorization)
|
104
|
+
internal
|
105
|
+
{
|
106
|
+
ObjectType[] memory serviceDomains = authorization.getServiceDomains();
|
96
107
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
108
|
+
for(uint256 i = 0; i < serviceDomains.length; i++) {
|
109
|
+
ObjectType serviceDomain = serviceDomains[i];
|
110
|
+
RoleId serviceRoleId = authorization.getServiceRole(serviceDomain);
|
111
|
+
string memory serviceRoleName = authorization.getRoleName(serviceRoleId);
|
101
112
|
|
102
|
-
|
113
|
+
// create service role if missing
|
114
|
+
if (!roleExists(serviceRoleId)) {
|
115
|
+
_createRole(
|
116
|
+
serviceRoleId,
|
117
|
+
AccessAdminLib.toRole(
|
118
|
+
ADMIN_ROLE(),
|
119
|
+
IAccess.RoleType.Contract,
|
120
|
+
1,
|
121
|
+
serviceRoleName));
|
122
|
+
}
|
103
123
|
|
104
|
-
|
105
|
-
|
106
|
-
|
124
|
+
// grant service role to service
|
125
|
+
address service = _registry.getServiceAddress(serviceDomain, _release);
|
126
|
+
_grantRoleToAccount(
|
127
|
+
serviceRoleId,
|
128
|
+
service);
|
107
129
|
}
|
130
|
+
}
|
108
131
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
132
|
+
|
133
|
+
function _createInstanceTargets(string memory instanceTargetName)
|
134
|
+
internal
|
135
|
+
{
|
136
|
+
_createManagedTarget(address(_instance), instanceTargetName, TargetType.Instance);
|
137
|
+
_createManagedTarget(address(this), INSTANCE_ADMIN_TARGET_NAME, TargetType.Instance);
|
138
|
+
_createManagedTarget(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME, TargetType.Instance);
|
139
|
+
_createManagedTarget(address(_instance.getProductStore()), PRODUCT_STORE_TARGET_NAME, TargetType.Instance);
|
140
|
+
_createManagedTarget(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME, TargetType.Instance);
|
141
|
+
_createManagedTarget(address(_instance.getRiskSet()), RISK_SET_TARGET_NAME, TargetType.Instance);
|
113
142
|
}
|
114
143
|
|
115
144
|
|
116
145
|
/// @dev Initializes the authorization for the specified component.
|
117
146
|
/// Important: The component MUST be registered.
|
118
147
|
function initializeComponentAuthorization(
|
119
|
-
|
148
|
+
address componentAddress,
|
149
|
+
ObjectType expectedType
|
120
150
|
)
|
121
151
|
external
|
152
|
+
restricted()
|
122
153
|
{
|
123
|
-
//
|
154
|
+
// checks
|
155
|
+
AccessAdminLib.checkIsRegistered(address(getRegistry()), componentAddress, expectedType);
|
124
156
|
|
125
|
-
|
126
|
-
|
127
|
-
// get authorization specification
|
157
|
+
IInstanceLinkedComponent component = IInstanceLinkedComponent(componentAddress);
|
128
158
|
IAuthorization authorization = component.getAuthorization();
|
129
|
-
|
130
|
-
_checkTargetIsReadyForAuthorization(address(component));
|
131
|
-
|
159
|
+
_checkAuthorization(address(authorization), expectedType, getRelease(), false, false);
|
132
160
|
|
133
|
-
//
|
161
|
+
// effects
|
134
162
|
_createRoles(authorization);
|
135
|
-
|
136
|
-
// create component target
|
137
|
-
_createTarget(
|
138
|
-
address(component),
|
139
|
-
targetName,
|
140
|
-
true, // checkAuthority
|
141
|
-
false); // custom
|
142
|
-
|
143
|
-
_createTarget(
|
144
|
-
address(component.getTokenHandler()),
|
145
|
-
string(abi.encodePacked(targetName, "TH")),
|
146
|
-
true,
|
147
|
-
false);
|
148
|
-
|
149
|
-
FunctionInfo[] memory functions = new FunctionInfo[](3);
|
150
|
-
functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
|
151
|
-
functions[1] = toFunction(TokenHandler.collectTokensToThreeRecipients.selector, "collectTokensToThreeRecipients");
|
152
|
-
functions[2] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
|
153
|
-
|
154
|
-
// FIXME: make this a bit nicer and work with IAuthorization. Use a specific role, not public - access to TokenHandler must be restricted
|
155
|
-
_authorizeTargetFunctions(
|
156
|
-
address(component.getTokenHandler()),
|
157
|
-
getPublicRole(),
|
158
|
-
functions);
|
159
|
-
|
160
|
-
_grantRoleToAccount(
|
161
|
-
authorization.getTargetRole(
|
162
|
-
authorization.getMainTarget()),
|
163
|
-
address(component));
|
164
|
-
|
163
|
+
_createManagedTarget(componentAddress, authorization.getMainTargetName(), TargetType.Component);
|
165
164
|
_createTargetAuthorizations(authorization);
|
165
|
+
|
166
|
+
// increase component count
|
167
|
+
_components++;
|
166
168
|
}
|
167
169
|
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
170
|
+
function getRelease()
|
171
|
+
public
|
172
|
+
view
|
173
|
+
override
|
174
|
+
returns (VersionPart release)
|
175
|
+
{
|
176
|
+
return _release;
|
177
|
+
}
|
178
|
+
|
179
|
+
|
180
|
+
/// @dev Creates a custom role.
|
181
|
+
function createRole(
|
182
|
+
string memory name,
|
183
|
+
RoleId adminRoleId,
|
184
|
+
uint32 maxMemberCount
|
185
|
+
)
|
186
|
+
external
|
187
|
+
restricted()
|
188
|
+
returns (RoleId roleId)
|
189
|
+
{
|
190
|
+
// check role does not yet exist
|
191
|
+
if (roleExists(name)) {
|
192
|
+
revert ErrorAccessAdminRoleAlreadyCreated(
|
193
|
+
getRoleForName(name),
|
194
|
+
name);
|
195
|
+
}
|
196
|
+
|
197
|
+
// create roleId
|
198
|
+
roleId = AccessAdminLib.getCustomRoleId(_customRoleIdNext++);
|
199
|
+
|
200
|
+
// create role
|
201
|
+
_createRole(
|
202
|
+
roleId,
|
203
|
+
AccessAdminLib.toRole(
|
204
|
+
adminRoleId,
|
205
|
+
IAccess.RoleType.Custom,
|
206
|
+
maxMemberCount,
|
207
|
+
name));
|
208
|
+
}
|
209
|
+
|
210
|
+
|
211
|
+
/// @dev Activtes/pauses the specified role.
|
212
|
+
function setRoleActive(RoleId roleId, bool active)
|
213
|
+
external
|
214
|
+
restricted()
|
215
|
+
{
|
216
|
+
_setRoleActive(roleId, active);
|
217
|
+
}
|
174
218
|
|
175
|
-
// }
|
176
219
|
|
177
220
|
/// @dev Grants the provided role to the specified account
|
178
221
|
function grantRole(
|
@@ -185,26 +228,96 @@ contract InstanceAdmin is
|
|
185
228
|
}
|
186
229
|
|
187
230
|
|
231
|
+
/// @dev Revokes the provided role from the specified account
|
232
|
+
function revokeRole(
|
233
|
+
RoleId roleId,
|
234
|
+
address account)
|
235
|
+
external
|
236
|
+
restricted()
|
237
|
+
{
|
238
|
+
_revokeRoleFromAccount(roleId, account);
|
239
|
+
}
|
240
|
+
|
241
|
+
|
242
|
+
/// @dev Create a new custom target.
|
243
|
+
/// The target needs to be an access managed contract.
|
244
|
+
function createTarget(
|
245
|
+
address target,
|
246
|
+
string memory name
|
247
|
+
)
|
248
|
+
external
|
249
|
+
restricted()
|
250
|
+
returns (RoleId contractRoleId)
|
251
|
+
{
|
252
|
+
return _createManagedTarget(
|
253
|
+
target,
|
254
|
+
name,
|
255
|
+
TargetType.Custom);
|
256
|
+
}
|
257
|
+
|
258
|
+
|
259
|
+
/// @dev Add function authorizations for the specified component or custom target.
|
260
|
+
function authorizeFunctions(
|
261
|
+
address target,
|
262
|
+
RoleId roleId,
|
263
|
+
IAccess.FunctionInfo[] memory functions
|
264
|
+
)
|
265
|
+
external
|
266
|
+
restricted()
|
267
|
+
{
|
268
|
+
_checkComponentOrCustomTarget(target);
|
269
|
+
_authorizeTargetFunctions(target, roleId, functions, true);
|
270
|
+
}
|
271
|
+
|
272
|
+
|
273
|
+
/// @dev Removes function authorizations for the specified component or custom target.
|
274
|
+
function unauthorizeFunctions(
|
275
|
+
address target,
|
276
|
+
IAccess.FunctionInfo[] memory functions
|
277
|
+
)
|
278
|
+
external
|
279
|
+
restricted()
|
280
|
+
{
|
281
|
+
_checkComponentOrCustomTarget(target);
|
282
|
+
_authorizeTargetFunctions(target, ADMIN_ROLE(), functions, false);
|
283
|
+
}
|
284
|
+
|
285
|
+
|
286
|
+
/// @dev locks the instance and all its releated targets including component and custom targets.
|
188
287
|
function setInstanceLocked(bool locked)
|
189
288
|
external
|
190
|
-
|
289
|
+
// not restricted(): need to operate on locked instances to unlock instance
|
290
|
+
onlyInstanceService()
|
191
291
|
{
|
192
292
|
AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
|
193
|
-
|
194
|
-
if(accessManager.isLocked() == locked) {
|
195
|
-
revert ErrorInstanceAdminInstanceAlreadyLocked();
|
196
|
-
}
|
197
293
|
accessManager.setLocked(locked);
|
198
294
|
}
|
199
295
|
|
296
|
+
|
200
297
|
function setTargetLocked(address target, bool locked)
|
201
298
|
external
|
202
|
-
restricted()
|
299
|
+
// not restricted(): might need to operate on targets while instance is locked
|
300
|
+
onlyInstanceService()
|
203
301
|
{
|
204
|
-
|
302
|
+
_setTargetLocked(target, locked);
|
205
303
|
}
|
206
304
|
|
207
305
|
|
306
|
+
function setComponentLocked(address target, bool locked)
|
307
|
+
external
|
308
|
+
restricted()
|
309
|
+
{
|
310
|
+
_setTargetLocked(target, locked);
|
311
|
+
}
|
312
|
+
|
313
|
+
/// @dev Returns the number of components that have been registered with this instance.
|
314
|
+
function components()
|
315
|
+
external
|
316
|
+
view
|
317
|
+
returns (uint64)
|
318
|
+
{
|
319
|
+
return _components;
|
320
|
+
}
|
208
321
|
|
209
322
|
/// @dev Returns the instance authorization specification used to set up this instance admin.
|
210
323
|
function getInstanceAuthorization()
|
@@ -212,36 +325,23 @@ contract InstanceAdmin is
|
|
212
325
|
view
|
213
326
|
returns (IAuthorization instanceAuthorizaion)
|
214
327
|
{
|
215
|
-
return
|
328
|
+
return _authorization;
|
216
329
|
}
|
217
330
|
|
218
331
|
// ------------------- Internal functions ------------------- //
|
219
332
|
|
220
|
-
function _checkTargetIsReadyForAuthorization(address target)
|
221
|
-
internal
|
222
|
-
view
|
223
|
-
{
|
224
|
-
if (!_registry.isRegistered(target)) {
|
225
|
-
revert ErrorInstanceAdminNotRegistered(target);
|
226
|
-
}
|
227
|
-
|
228
|
-
if (targetExists(target)) {
|
229
|
-
revert ErrorInstanceAdminAlreadyAuthorized(target);
|
230
|
-
}
|
231
|
-
}
|
232
|
-
|
233
|
-
|
234
333
|
function _createRoles(IAuthorization authorization)
|
235
334
|
internal
|
236
335
|
{
|
237
336
|
RoleId[] memory roles = authorization.getRoles();
|
238
|
-
RoleId
|
239
|
-
|
337
|
+
RoleId mainTargetRoleId = authorization.getTargetRole(
|
338
|
+
authorization.getMainTarget());
|
240
339
|
|
241
340
|
for(uint256 i = 0; i < roles.length; i++) {
|
242
|
-
roleId = roles[i];
|
341
|
+
RoleId roleId = roles[i];
|
243
342
|
|
244
|
-
if
|
343
|
+
// skip main target role, create role if not exists
|
344
|
+
if (roleId != mainTargetRoleId && !roleExists(roleId)) {
|
245
345
|
_createRole(
|
246
346
|
roleId,
|
247
347
|
authorization.getRoleInfo(roleId));
|
@@ -259,68 +359,21 @@ contract InstanceAdmin is
|
|
259
359
|
for(uint256 i = 0; i < targets.length; i++) {
|
260
360
|
target = targets[i];
|
261
361
|
RoleId[] memory authorizedRoles = authorization.getAuthorizedRoles(target);
|
262
|
-
RoleId authorizedRole;
|
263
362
|
|
264
363
|
for(uint256 j = 0; j < authorizedRoles.length; j++) {
|
265
|
-
|
266
|
-
|
267
|
-
_authorizeTargetFunctions(
|
268
|
-
getTargetForName(target),
|
269
|
-
authorizedRole,
|
270
|
-
authorization.getAuthorizedFunctions(
|
271
|
-
target,
|
272
|
-
authorizedRole));
|
364
|
+
_authorizeFunctions(authorization, target, authorizedRoles[j]);
|
273
365
|
}
|
274
366
|
}
|
275
367
|
}
|
276
368
|
|
277
|
-
function _checkAndCreateTargetWithRole(
|
278
|
-
address target,
|
279
|
-
string memory targetName
|
280
|
-
)
|
281
|
-
internal
|
282
|
-
{
|
283
|
-
// check that target name is defined in authorization specification
|
284
|
-
Str name = StrLib.toStr(targetName);
|
285
|
-
if (!_instanceAuthorization.targetExists(name)) {
|
286
|
-
revert ErrorInstanceAdminExpectedTargetMissing(targetName);
|
287
|
-
}
|
288
369
|
|
289
|
-
|
290
|
-
_createTarget(
|
291
|
-
target,
|
292
|
-
targetName,
|
293
|
-
false, // check authority TODO check normal targets, don't check service targets (they share authority with release admin)
|
294
|
-
false);
|
295
|
-
|
296
|
-
// assign target role if defined
|
297
|
-
RoleId targetRoleId = _instanceAuthorization.getTargetRole(name);
|
298
|
-
if (targetRoleId != RoleIdLib.zero()) {
|
299
|
-
_grantRoleToAccount(targetRoleId, target);
|
300
|
-
}
|
301
|
-
}
|
302
|
-
|
303
|
-
function _createModuleTargetsWithRoles()
|
370
|
+
function _checkComponentOrCustomTarget(address target)
|
304
371
|
internal
|
372
|
+
view
|
305
373
|
{
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
_checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
|
310
|
-
_checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
|
311
|
-
_checkAndCreateTargetWithRole(address(_instance.getRiskSet()), RISK_SET_TAGET_NAME);
|
312
|
-
|
313
|
-
// create targets for services that need to access the module targets
|
314
|
-
ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();
|
315
|
-
VersionPart release = _instanceAuthorization.getRelease();
|
316
|
-
ObjectType serviceDomain;
|
317
|
-
|
318
|
-
for (uint256 i = 0; i < serviceDomains.length; i++) {
|
319
|
-
serviceDomain = serviceDomains[i];
|
320
|
-
|
321
|
-
_checkAndCreateTargetWithRole(
|
322
|
-
_registry.getServiceAddress(serviceDomain, release),
|
323
|
-
_instanceAuthorization.getServiceTarget(serviceDomain).toString());
|
374
|
+
IAccess.TargetType targetType = getTargetInfo(target).targetType;
|
375
|
+
if (targetType != TargetType.Component && targetType != TargetType.Custom) {
|
376
|
+
revert ErrorInstanceAdminNotComponentOrCustomTarget(target);
|
324
377
|
}
|
325
378
|
}
|
326
379
|
}
|