@etherisc/gif-next 0.0.2-ccfa4c7-304 → 0.0.2-cd48412-522
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +91 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +272 -102
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +662 -46
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +227 -52
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +180 -32
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +90 -17
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +64 -152
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +226 -65
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -98
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +378 -149
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +140 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -97
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +232 -19
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -110
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +225 -64
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -134
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +225 -64
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +83 -177
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +225 -64
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +37 -71
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -148
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +225 -64
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -190
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +225 -64
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +368 -34
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +295 -5
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +419 -96
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +591 -343
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +194 -73
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +569 -513
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +321 -31
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +80 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1316 -2015
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +29 -41
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +239 -61
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +19 -31
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -31
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +83 -38
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +96 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -79
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +225 -64
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +124 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -41
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -41
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +338 -79
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +121 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +238 -52
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +96 -42
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -58
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +225 -64
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +113 -75
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +187 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +50 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -52
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +224 -18
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +118 -72
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +114 -112
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +99 -69
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -52
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +258 -44
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +84 -42
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +71 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +385 -243
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +266 -70
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +41 -12
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +76 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +389 -191
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +149 -97
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +19 -31
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +209 -190
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +113 -63
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +76 -41
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -31
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +118 -123
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -31
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -31
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1385 -150
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +97 -117
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1471 -213
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +77 -76
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +123 -72
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +296 -152
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +131 -167
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +84 -54
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1615 -815
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +153 -91
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +10 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +6 -6
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +65 -27
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +15 -3
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +264 -188
- package/contracts/authorization/AccessAdminLib.sol +222 -9
- package/contracts/authorization/Authorization.sol +38 -234
- package/contracts/authorization/IAccess.sol +25 -7
- package/contracts/authorization/IAccessAdmin.sol +19 -45
- package/contracts/authorization/IAuthorization.sol +3 -57
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +248 -34
- package/contracts/distribution/BasicDistribution.sol +7 -8
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +12 -56
- package/contracts/distribution/DistributionService.sol +126 -63
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +20 -8
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +6 -10
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -8
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -23
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +57 -6
- package/contracts/instance/IInstanceService.sol +42 -7
- package/contracts/instance/Instance.sol +112 -57
- package/contracts/instance/InstanceAdmin.sol +164 -235
- package/contracts/instance/InstanceAuthorizationV3.sol +101 -61
- package/contracts/instance/InstanceReader.sol +354 -392
- package/contracts/instance/InstanceService.sol +186 -134
- package/contracts/instance/InstanceStore.sol +153 -128
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +15 -6
- package/contracts/instance/module/IDistribution.sol +17 -7
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +3 -6
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +4 -8
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -18
- package/contracts/pool/BasicPoolAuthorization.sol +10 -5
- package/contracts/pool/BundleService.sol +34 -43
- package/contracts/pool/IBundleService.sol +14 -13
- package/contracts/pool/IPoolService.sol +7 -2
- package/contracts/pool/Pool.sol +6 -20
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +41 -184
- package/contracts/product/ApplicationService.sol +69 -11
- package/contracts/product/BasicProduct.sol +2 -5
- package/contracts/product/BasicProductAuthorization.sol +11 -4
- package/contracts/product/ClaimService.sol +99 -105
- package/contracts/product/IApplicationService.sol +23 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +9 -2
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IRiskService.sol +21 -3
- package/contracts/product/PolicyService.sol +40 -59
- package/contracts/product/PolicyServiceLib.sol +79 -5
- package/contracts/product/PricingService.sol +33 -31
- package/contracts/product/Product.sol +40 -18
- package/contracts/product/RiskService.sol +57 -12
- package/contracts/registry/IRegistry.sol +15 -9
- package/contracts/registry/IRelease.sol +6 -3
- package/contracts/registry/Registry.sol +15 -9
- package/contracts/registry/RegistryAdmin.sol +33 -100
- package/contracts/registry/RegistryAuthorization.sol +121 -52
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +42 -100
- package/contracts/registry/ReleaseRegistry.sol +20 -12
- package/contracts/registry/ServiceAuthorizationV3.sol +43 -32
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +16 -33
- package/contracts/shared/ComponentService.sol +249 -247
- package/contracts/shared/ContractLib.sol +106 -75
- package/contracts/shared/IComponent.sol +1 -4
- package/contracts/shared/IComponentService.sol +17 -16
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InstanceLinkedComponent.sol +6 -11
- package/contracts/shared/NftOwnable.sol +3 -1
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Service.sol +6 -4
- package/contracts/staking/IStaking.sol +262 -70
- package/contracts/staking/IStakingService.sol +39 -84
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +470 -219
- package/contracts/staking/StakingLib.sol +38 -124
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +62 -71
- package/contracts/staking/StakingService.sol +42 -185
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1093 -331
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +15 -15
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +16 -3
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +19 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -2
- package/contracts/type/UFixed.sol +28 -10
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +25 -11
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -8,47 +8,34 @@ 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";
|
11
12
|
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {
|
16
|
-
import {
|
17
|
-
import {VersionPart, VersionPartLib} from "../type/Version.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";
|
18
18
|
|
19
19
|
|
20
20
|
contract InstanceAdmin is
|
21
21
|
AccessAdmin
|
22
22
|
{
|
23
|
-
|
24
|
-
string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
|
25
|
-
string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
26
|
-
string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
|
27
|
-
string public constant RISK_SET_TARGET_NAME = "RiskSet";
|
28
|
-
|
29
|
-
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
|
30
|
-
|
23
|
+
// onlyInstanceService
|
31
24
|
error ErrorInstanceAdminNotInstanceService(address caller);
|
32
25
|
|
33
|
-
|
34
|
-
error
|
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);
|
26
|
+
// authorizeFunctions
|
27
|
+
error ErrorInstanceAdminNotComponentOrCustomTarget(address target);
|
43
28
|
|
44
29
|
IInstance internal _instance;
|
45
30
|
IRegistry internal _registry;
|
46
31
|
VersionPart internal _release;
|
47
|
-
|
32
|
+
|
33
|
+
uint64 internal _customRoleIdNext;
|
48
34
|
|
49
35
|
mapping(address target => RoleId roleId) internal _targetRoleId;
|
50
36
|
uint64 internal _components;
|
51
37
|
|
38
|
+
|
52
39
|
modifier onlyInstanceService() {
|
53
40
|
if (msg.sender != _registry.getServiceAddress(INSTANCE(), getRelease())) {
|
54
41
|
revert ErrorInstanceAdminNotInstanceService(msg.sender);
|
@@ -69,24 +56,23 @@ contract InstanceAdmin is
|
|
69
56
|
/// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
|
70
57
|
function completeSetup(
|
71
58
|
address registry,
|
72
|
-
address instance,
|
73
59
|
address authorization,
|
74
|
-
VersionPart release
|
60
|
+
VersionPart release,
|
61
|
+
address instance
|
75
62
|
)
|
76
63
|
external
|
77
64
|
reinitializer(uint64(release.toInt()))
|
78
65
|
onlyDeployer()
|
79
66
|
{
|
80
67
|
// checks
|
81
|
-
|
82
|
-
_checkIsRegistered(registry, instance, INSTANCE());
|
68
|
+
AccessAdminLib.checkIsRegistered(registry, instance, INSTANCE());
|
83
69
|
|
84
70
|
AccessManagerCloneable(
|
85
71
|
authority()).completeSetup(
|
86
72
|
registry,
|
87
73
|
release);
|
88
74
|
|
89
|
-
_checkAuthorization(authorization, INSTANCE(), release, true);
|
75
|
+
_checkAuthorization(authorization, INSTANCE(), release, false, true);
|
90
76
|
|
91
77
|
// effects
|
92
78
|
_registry = IRegistry(registry);
|
@@ -95,29 +81,64 @@ contract InstanceAdmin is
|
|
95
81
|
_instance = IInstance(instance);
|
96
82
|
_authorization = IAuthorization(authorization);
|
97
83
|
_components = 0;
|
98
|
-
|
84
|
+
_customRoleIdNext = 0;
|
99
85
|
|
100
86
|
// link nft ownability to instance
|
101
87
|
_linkToNftOwnable(instance);
|
102
88
|
|
103
|
-
//
|
104
|
-
|
89
|
+
// setup instance targets
|
90
|
+
_createInstanceTargets(_authorization.getMainTargetName());
|
105
91
|
|
106
|
-
//
|
92
|
+
// setup non-contract roles
|
93
|
+
_setupServiceRoles(_authorization);
|
107
94
|
_createRoles(_authorization);
|
108
|
-
|
109
|
-
|
95
|
+
|
96
|
+
// authorize functions of instance contracts
|
110
97
|
_createTargetAuthorizations(_authorization);
|
111
98
|
}
|
112
99
|
|
113
100
|
|
114
|
-
|
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)
|
115
104
|
internal
|
116
105
|
{
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
106
|
+
ObjectType[] memory serviceDomains = authorization.getServiceDomains();
|
107
|
+
|
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);
|
112
|
+
|
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
|
+
}
|
123
|
+
|
124
|
+
// grant service role to service
|
125
|
+
address service = _registry.getServiceAddress(serviceDomain, _release);
|
126
|
+
_grantRoleToAccount(
|
127
|
+
serviceRoleId,
|
128
|
+
service);
|
129
|
+
}
|
130
|
+
}
|
131
|
+
|
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);
|
121
142
|
}
|
122
143
|
|
123
144
|
|
@@ -131,19 +152,19 @@ contract InstanceAdmin is
|
|
131
152
|
restricted()
|
132
153
|
{
|
133
154
|
// checks
|
134
|
-
|
155
|
+
AccessAdminLib.checkIsRegistered(address(getRegistry()), componentAddress, expectedType);
|
135
156
|
|
136
157
|
IInstanceLinkedComponent component = IInstanceLinkedComponent(componentAddress);
|
137
158
|
IAuthorization authorization = component.getAuthorization();
|
138
|
-
_checkAuthorization(address(authorization), expectedType, getRelease(), false);
|
159
|
+
_checkAuthorization(address(authorization), expectedType, getRelease(), false, false);
|
139
160
|
|
140
161
|
// 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
|
145
162
|
_createRoles(authorization);
|
163
|
+
_createManagedTarget(componentAddress, authorization.getMainTargetName(), TargetType.Component);
|
146
164
|
_createTargetAuthorizations(authorization);
|
165
|
+
|
166
|
+
// increase component count
|
167
|
+
_components++;
|
147
168
|
}
|
148
169
|
|
149
170
|
function getRelease()
|
@@ -156,38 +177,45 @@ contract InstanceAdmin is
|
|
156
177
|
}
|
157
178
|
|
158
179
|
|
159
|
-
|
160
|
-
function
|
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
|
+
}
|
161
196
|
|
162
|
-
// create
|
163
|
-
|
164
|
-
_authorization.getMainTarget());
|
197
|
+
// create roleId
|
198
|
+
roleId = AccessAdminLib.getCustomRoleId(_customRoleIdNext++);
|
165
199
|
|
200
|
+
// create role
|
166
201
|
_createRole(
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
_authorization.getMainTargetName(),
|
174
|
-
true, // checkAuthority
|
175
|
-
false); // custom
|
176
|
-
|
177
|
-
// assign instance role to instance
|
178
|
-
_grantRoleToAccount(
|
179
|
-
instanceRoleId,
|
180
|
-
instance);
|
202
|
+
roleId,
|
203
|
+
AccessAdminLib.toRole(
|
204
|
+
adminRoleId,
|
205
|
+
IAccess.RoleType.Custom,
|
206
|
+
maxMemberCount,
|
207
|
+
name));
|
181
208
|
}
|
182
209
|
|
183
|
-
/// @dev Creates a custom role
|
184
|
-
// TODO implement
|
185
|
-
// function createRole()
|
186
|
-
// external
|
187
|
-
// restricted()
|
188
|
-
// {
|
189
210
|
|
190
|
-
|
211
|
+
/// @dev Activtes/pauses the specified role.
|
212
|
+
function setRoleActive(RoleId roleId, bool active)
|
213
|
+
external
|
214
|
+
restricted()
|
215
|
+
{
|
216
|
+
_setRoleActive(roleId, active);
|
217
|
+
}
|
218
|
+
|
191
219
|
|
192
220
|
/// @dev Grants the provided role to the specified account
|
193
221
|
function grantRole(
|
@@ -200,6 +228,62 @@ contract InstanceAdmin is
|
|
200
228
|
}
|
201
229
|
|
202
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.
|
203
287
|
function setInstanceLocked(bool locked)
|
204
288
|
external
|
205
289
|
// not restricted(): need to operate on locked instances to unlock instance
|
@@ -246,100 +330,6 @@ contract InstanceAdmin is
|
|
246
330
|
|
247
331
|
// ------------------- Internal functions ------------------- //
|
248
332
|
|
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
|
-
|
343
333
|
function _createRoles(IAuthorization authorization)
|
344
334
|
internal
|
345
335
|
{
|
@@ -347,12 +337,8 @@ contract InstanceAdmin is
|
|
347
337
|
RoleId mainTargetRoleId = authorization.getTargetRole(
|
348
338
|
authorization.getMainTarget());
|
349
339
|
|
350
|
-
RoleId roleId;
|
351
|
-
RoleInfo memory roleInfo;
|
352
|
-
|
353
340
|
for(uint256 i = 0; i < roles.length; i++) {
|
354
|
-
|
355
|
-
roleId = roles[i];
|
341
|
+
RoleId roleId = roles[i];
|
356
342
|
|
357
343
|
// skip main target role, create role if not exists
|
358
344
|
if (roleId != mainTargetRoleId && !roleExists(roleId)) {
|
@@ -364,16 +350,6 @@ contract InstanceAdmin is
|
|
364
350
|
}
|
365
351
|
|
366
352
|
|
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
|
-
|
377
353
|
function _createTargetAuthorizations(IAuthorization authorization)
|
378
354
|
internal
|
379
355
|
{
|
@@ -383,68 +359,21 @@ contract InstanceAdmin is
|
|
383
359
|
for(uint256 i = 0; i < targets.length; i++) {
|
384
360
|
target = targets[i];
|
385
361
|
RoleId[] memory authorizedRoles = authorization.getAuthorizedRoles(target);
|
386
|
-
RoleId authorizedRole;
|
387
362
|
|
388
363
|
for(uint256 j = 0; j < authorizedRoles.length; j++) {
|
389
|
-
|
390
|
-
|
391
|
-
_authorizeTargetFunctions(
|
392
|
-
getTargetForName(target),
|
393
|
-
authorizedRole,
|
394
|
-
authorization.getAuthorizedFunctions(
|
395
|
-
target,
|
396
|
-
authorizedRole));
|
364
|
+
_authorizeFunctions(authorization, target, authorizedRoles[j]);
|
397
365
|
}
|
398
366
|
}
|
399
367
|
}
|
400
368
|
|
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
|
-
}
|
426
369
|
|
427
|
-
function
|
370
|
+
function _checkComponentOrCustomTarget(address target)
|
428
371
|
internal
|
372
|
+
view
|
429
373
|
{
|
430
|
-
|
431
|
-
|
432
|
-
|
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());
|
374
|
+
IAccess.TargetType targetType = getTargetInfo(target).targetType;
|
375
|
+
if (targetType != TargetType.Component && targetType != TargetType.Custom) {
|
376
|
+
revert ErrorInstanceAdminNotComponentOrCustomTarget(target);
|
448
377
|
}
|
449
378
|
}
|
450
379
|
}
|