@etherisc/gif-next 0.0.2-da2c7dd-538 → 0.0.2-da87b00-860
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +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 +573 -288
- 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 +295 -47
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +452 -210
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +119 -14
- 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 -142
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +275 -59
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -88
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +448 -148
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +143 -77
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -87
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +296 -20
- 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 -100
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +274 -58
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -124
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +274 -58
- 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 +126 -166
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +274 -58
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +39 -63
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -138
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +274 -58
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -180
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +274 -58
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +427 -28
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +335 -12
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +430 -62
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +822 -402
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +299 -58
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +619 -402
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +367 -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 +448 -374
- 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 +33 -35
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +294 -53
- 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 -21
- 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 -21
- 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 -69
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +274 -58
- 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 -31
- 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 -31
- 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 +346 -87
- 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 +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 -48
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +274 -58
- 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 +208 -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 -42
- 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 +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 -42
- 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 +704 -472
- 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 +710 -407
- 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 +184 -128
- 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 -21
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +212 -232
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +113 -71
- 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 -21
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +119 -147
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -21
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +6 -6
- 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 -21
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +6 -6
- 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 +1450 -140
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +161 -110
- 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 +1624 -272
- 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 +135 -68
- 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 +200 -157
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +86 -52
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1600 -818
- 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 +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/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 +389 -298
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +40 -31
- package/contracts/authorization/Authorization.sol +60 -228
- package/contracts/authorization/IAccess.sol +25 -7
- package/contracts/authorization/IAccessAdmin.sol +81 -80
- package/contracts/authorization/IAuthorization.sol +3 -51
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +248 -34
- package/contracts/distribution/BasicDistribution.sol +6 -6
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +10 -52
- package/contracts/distribution/DistributionService.sol +154 -64
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +24 -10
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +6 -10
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -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/IInstance.sol +87 -12
- package/contracts/instance/IInstanceService.sol +52 -7
- package/contracts/instance/Instance.sol +148 -48
- package/contracts/instance/InstanceAdmin.sol +227 -281
- package/contracts/instance/InstanceAuthorizationV3.sol +79 -26
- package/contracts/instance/InstanceReader.sol +375 -380
- package/contracts/instance/InstanceService.sol +230 -134
- package/contracts/instance/RiskSet.sol +10 -2
- 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 +16 -5
- package/contracts/instance/module/IDistribution.sol +19 -7
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +2 -4
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +2 -4
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +3 -16
- 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 +4 -16
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +41 -184
- package/contracts/product/ApplicationService.sol +83 -15
- package/contracts/product/BasicProduct.sol +1 -3
- package/contracts/product/BasicProductAuthorization.sol +11 -4
- package/contracts/product/ClaimService.sol +56 -58
- package/contracts/product/IApplicationService.sol +24 -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 +31 -68
- package/contracts/product/PolicyServiceLib.sol +79 -5
- package/contracts/product/PricingService.sol +33 -31
- package/contracts/product/Product.sol +38 -14
- package/contracts/product/RiskService.sol +55 -9
- 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 +100 -263
- 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 +128 -33
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +18 -31
- package/contracts/shared/ComponentService.sol +239 -244
- package/contracts/shared/ContractLib.sol +134 -75
- package/contracts/shared/IComponent.sol +1 -4
- package/contracts/shared/IComponentService.sol +21 -22
- package/contracts/shared/IKeyValueStore.sol +1 -1
- 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 +4 -7
- package/contracts/shared/KeyValueStore.sol +3 -3
- 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 +5 -4
- package/contracts/staking/IStaking.sol +266 -64
- package/contracts/staking/IStakingService.sol +44 -82
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +473 -202
- 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 +49 -158
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1089 -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 +21 -17
- 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/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/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
- 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/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -8,170 +8,218 @@ 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 {TokenHandler} from "../shared/TokenHandler.sol";
|
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";
|
18
17
|
|
19
18
|
|
20
19
|
contract InstanceAdmin is
|
21
20
|
AccessAdmin
|
22
21
|
{
|
23
22
|
string public constant INSTANCE_TARGET_NAME = "Instance";
|
24
|
-
string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
25
23
|
string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
|
24
|
+
string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
26
25
|
string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
|
27
|
-
string public constant
|
28
|
-
|
29
|
-
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
|
26
|
+
string public constant RISK_SET_TARGET_NAME = "RiskSet";
|
30
27
|
|
31
|
-
|
32
|
-
error
|
33
|
-
error ErrorInstanceAdminNotRegistered(address target);
|
28
|
+
// onlyInstanceService
|
29
|
+
error ErrorInstanceAdminNotInstanceService(address caller);
|
34
30
|
|
35
|
-
|
36
|
-
error
|
37
|
-
error ErrorInstanceAdminRoleAlreadyExists(RoleId roleId);
|
38
|
-
error ErrorInstanceAdminRoleTypeNotContract(RoleId roleId, IAccess.RoleType roleType);
|
39
|
-
|
40
|
-
error ErrorInstanceAdminReleaseMismatch();
|
41
|
-
error ErrorInstanceAdminExpectedTargetMissing(string targetName);
|
31
|
+
// authorizeFunctions
|
32
|
+
error ErrorInstanceAdminNotComponentOrCustomTarget(address target);
|
42
33
|
|
43
34
|
IInstance internal _instance;
|
44
35
|
IRegistry internal _registry;
|
45
|
-
|
36
|
+
VersionPart internal _release;
|
37
|
+
|
38
|
+
uint64 internal _customRoleIdNext;
|
46
39
|
|
47
40
|
mapping(address target => RoleId roleId) internal _targetRoleId;
|
48
41
|
uint64 internal _components;
|
49
42
|
|
50
|
-
IAuthorization internal _instanceAuthorization;
|
51
43
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
revert ErrorInstanceAdminCallerNotInstanceOwner(msg.sender);
|
44
|
+
modifier onlyInstanceService() {
|
45
|
+
if (msg.sender != _registry.getServiceAddress(INSTANCE(), getRelease())) {
|
46
|
+
revert ErrorInstanceAdminNotInstanceService(msg.sender);
|
56
47
|
}
|
57
48
|
_;
|
58
49
|
}
|
59
50
|
|
60
51
|
/// @dev Only used for master instance admin.
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
initialize(new AccessManagerCloneable());
|
66
|
-
|
67
|
-
_instanceAuthorization = IAuthorization(instanceAuthorization);
|
68
|
-
|
69
|
-
_disableInitializers();
|
52
|
+
constructor(address accessManager) {
|
53
|
+
initialize(
|
54
|
+
accessManager,
|
55
|
+
"MasterInstanceAdmin");
|
70
56
|
}
|
71
57
|
|
72
58
|
|
73
|
-
function initialize(
|
74
|
-
AccessManagerCloneable clonedAccessManager,
|
75
|
-
IRegistry registry,
|
76
|
-
VersionPart release
|
77
|
-
)
|
78
|
-
external
|
79
|
-
initializer()
|
80
|
-
{
|
81
|
-
__AccessAdmin_init(clonedAccessManager);
|
82
|
-
|
83
|
-
clonedAccessManager.completeSetup(
|
84
|
-
address(registry),
|
85
|
-
release);
|
86
|
-
|
87
|
-
_registry = registry;
|
88
|
-
}
|
89
|
-
|
90
59
|
/// @dev Completes the initialization of this instance admin using the provided instance, registry and version.
|
91
60
|
/// Important: Initialization of instance admin is only complete after calling this function.
|
92
61
|
/// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
|
93
62
|
function completeSetup(
|
94
|
-
address
|
95
|
-
address authorization
|
63
|
+
address registry,
|
64
|
+
address authorization,
|
65
|
+
VersionPart release,
|
66
|
+
address instance
|
96
67
|
)
|
97
68
|
external
|
98
|
-
reinitializer(uint64(
|
69
|
+
reinitializer(uint64(release.toInt()))
|
99
70
|
onlyDeployer()
|
100
71
|
{
|
101
|
-
|
102
|
-
|
72
|
+
// checks
|
73
|
+
AccessAdminLib.checkIsRegistered(registry, instance, INSTANCE());
|
74
|
+
|
75
|
+
AccessManagerCloneable(
|
76
|
+
authority()).completeSetup(
|
77
|
+
registry,
|
78
|
+
release);
|
79
|
+
|
80
|
+
_checkAuthorization(authorization, INSTANCE(), release, false, true);
|
81
|
+
|
82
|
+
// effects
|
83
|
+
_registry = IRegistry(registry);
|
84
|
+
_release = release;
|
85
|
+
|
103
86
|
_instance = IInstance(instance);
|
104
|
-
|
87
|
+
_authorization = IAuthorization(authorization);
|
88
|
+
_components = 0;
|
89
|
+
_customRoleIdNext = 0;
|
105
90
|
|
106
|
-
|
91
|
+
// link nft ownability to instance
|
92
|
+
_linkToNftOwnable(instance);
|
107
93
|
|
108
|
-
//
|
109
|
-
|
110
|
-
|
111
|
-
|
94
|
+
// setup instance targets
|
95
|
+
_createInstanceTargets(_authorization.getMainTargetName());
|
96
|
+
|
97
|
+
// setup non-contract roles
|
98
|
+
_setupServiceRoles(_authorization);
|
99
|
+
_createRoles(_authorization);
|
100
|
+
|
101
|
+
// authorize functions of instance contracts
|
102
|
+
_createTargetAuthorizations(_authorization);
|
103
|
+
}
|
104
|
+
|
105
|
+
|
106
|
+
/// @dev grants the service roles to the service addresses based on the authorization specification.
|
107
|
+
/// Service addresses used for the granting are determined by the registry and the release of this instance.
|
108
|
+
function _setupServiceRoles(IAuthorization authorization)
|
109
|
+
internal
|
110
|
+
{
|
111
|
+
ObjectType[] memory serviceDomains = authorization.getServiceDomains();
|
112
|
+
|
113
|
+
for(uint256 i = 0; i < serviceDomains.length; i++) {
|
114
|
+
ObjectType serviceDomain = serviceDomains[i];
|
115
|
+
RoleId serviceRoleId = authorization.getServiceRole(serviceDomain);
|
116
|
+
string memory serviceRoleName = authorization.getRoleName(serviceRoleId);
|
117
|
+
|
118
|
+
// create service role if missing
|
119
|
+
if (!roleExists(serviceRoleId)) {
|
120
|
+
_createRole(
|
121
|
+
serviceRoleId,
|
122
|
+
AccessAdminLib.toRole(
|
123
|
+
ADMIN_ROLE(),
|
124
|
+
IAccess.RoleType.Contract,
|
125
|
+
1,
|
126
|
+
serviceRoleName));
|
127
|
+
}
|
112
128
|
|
113
|
-
|
114
|
-
|
129
|
+
// grant service role to service
|
130
|
+
address service = _registry.getServiceAddress(serviceDomain, _release);
|
131
|
+
_grantRoleToAccount(
|
132
|
+
serviceRoleId,
|
133
|
+
service);
|
134
|
+
}
|
135
|
+
}
|
115
136
|
|
116
|
-
// add instance authorization
|
117
|
-
_createRoles(_instanceAuthorization);
|
118
137
|
|
119
|
-
|
120
|
-
|
138
|
+
function _createInstanceTargets(string memory instanceTargetName)
|
139
|
+
internal
|
140
|
+
{
|
141
|
+
_createManagedTarget(address(_instance), instanceTargetName, TargetType.Instance);
|
142
|
+
_createManagedTarget(address(this), INSTANCE_ADMIN_TARGET_NAME, TargetType.Instance);
|
143
|
+
_createManagedTarget(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME, TargetType.Instance);
|
144
|
+
_createManagedTarget(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME, TargetType.Instance);
|
145
|
+
_createManagedTarget(address(_instance.getRiskSet()), RISK_SET_TARGET_NAME, TargetType.Instance);
|
121
146
|
}
|
122
147
|
|
123
148
|
|
124
149
|
/// @dev Initializes the authorization for the specified component.
|
125
150
|
/// Important: The component MUST be registered.
|
126
151
|
function initializeComponentAuthorization(
|
127
|
-
|
152
|
+
address componentAddress,
|
153
|
+
ObjectType expectedType
|
128
154
|
)
|
129
155
|
external
|
130
156
|
restricted()
|
131
157
|
{
|
132
158
|
// checks
|
133
|
-
|
134
|
-
|
135
|
-
// setup target and role for component (including token handler)
|
136
|
-
_setupComponentAndTokenHandler(component);
|
159
|
+
AccessAdminLib.checkIsRegistered(address(getRegistry()), componentAddress, expectedType);
|
137
160
|
|
138
|
-
|
161
|
+
IInstanceLinkedComponent component = IInstanceLinkedComponent(componentAddress);
|
139
162
|
IAuthorization authorization = component.getAuthorization();
|
140
|
-
|
163
|
+
_checkAuthorization(address(authorization), expectedType, getRelease(), false, false);
|
164
|
+
|
165
|
+
// effects
|
166
|
+
_createRoles(authorization);
|
167
|
+
_createManagedTarget(componentAddress, authorization.getMainTargetName(), TargetType.Component);
|
141
168
|
_createTargetAuthorizations(authorization);
|
169
|
+
|
170
|
+
// increase component count
|
171
|
+
_components++;
|
172
|
+
}
|
173
|
+
|
174
|
+
function getRelease()
|
175
|
+
public
|
176
|
+
view
|
177
|
+
override
|
178
|
+
returns (VersionPart release)
|
179
|
+
{
|
180
|
+
return _release;
|
142
181
|
}
|
143
182
|
|
144
|
-
// create instance role and target
|
145
|
-
function _setupInstance(address instance) internal {
|
146
|
-
// create instance role
|
147
|
-
RoleId instanceRoleId = _instanceAuthorization.getTargetRole(
|
148
|
-
_instanceAuthorization.getMainTarget());
|
149
183
|
|
184
|
+
/// @dev Creates a custom role.
|
185
|
+
function createRole(
|
186
|
+
string memory name,
|
187
|
+
RoleId adminRoleId,
|
188
|
+
uint32 maxMemberCount
|
189
|
+
)
|
190
|
+
external
|
191
|
+
restricted()
|
192
|
+
returns (RoleId roleId)
|
193
|
+
{
|
194
|
+
// check role does not yet exist
|
195
|
+
if (roleExists(name)) {
|
196
|
+
revert ErrorAccessAdminRoleAlreadyCreated(
|
197
|
+
getRoleForName(name),
|
198
|
+
name);
|
199
|
+
}
|
200
|
+
|
201
|
+
// create roleId
|
202
|
+
roleId = AccessAdminLib.getCustomRoleId(_customRoleIdNext++);
|
203
|
+
|
204
|
+
// create role
|
150
205
|
_createRole(
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
_instanceAuthorization.getMainTargetName(),
|
158
|
-
true, // checkAuthority
|
159
|
-
false); // custom
|
160
|
-
|
161
|
-
// assign instance role to instance
|
162
|
-
_grantRoleToAccount(
|
163
|
-
instanceRoleId,
|
164
|
-
instance);
|
206
|
+
roleId,
|
207
|
+
AccessAdminLib.toRole(
|
208
|
+
adminRoleId,
|
209
|
+
IAccess.RoleType.Custom,
|
210
|
+
maxMemberCount,
|
211
|
+
name));
|
165
212
|
}
|
166
213
|
|
167
|
-
/// @dev Creates a custom role
|
168
|
-
// TODO implement
|
169
|
-
// function createRole()
|
170
|
-
// external
|
171
|
-
// restricted()
|
172
|
-
// {
|
173
214
|
|
174
|
-
|
215
|
+
/// @dev Activtes/pauses the specified role.
|
216
|
+
function setRoleActive(RoleId roleId, bool active)
|
217
|
+
external
|
218
|
+
restricted()
|
219
|
+
{
|
220
|
+
_setRoleActive(roleId, active);
|
221
|
+
}
|
222
|
+
|
175
223
|
|
176
224
|
/// @dev Grants the provided role to the specified account
|
177
225
|
function grantRole(
|
@@ -184,23 +232,86 @@ contract InstanceAdmin is
|
|
184
232
|
}
|
185
233
|
|
186
234
|
|
235
|
+
/// @dev Revokes the provided role from the specified account
|
236
|
+
function revokeRole(
|
237
|
+
RoleId roleId,
|
238
|
+
address account)
|
239
|
+
external
|
240
|
+
restricted()
|
241
|
+
{
|
242
|
+
_revokeRoleFromAccount(roleId, account);
|
243
|
+
}
|
244
|
+
|
245
|
+
|
246
|
+
/// @dev Create a new custom target.
|
247
|
+
/// The target needs to be an access managed contract.
|
248
|
+
function createTarget(
|
249
|
+
address target,
|
250
|
+
string memory name
|
251
|
+
)
|
252
|
+
external
|
253
|
+
restricted()
|
254
|
+
returns (RoleId contractRoleId)
|
255
|
+
{
|
256
|
+
return _createManagedTarget(
|
257
|
+
target,
|
258
|
+
name,
|
259
|
+
TargetType.Custom);
|
260
|
+
}
|
261
|
+
|
262
|
+
|
263
|
+
/// @dev Add function authorizations for the specified component or custom target.
|
264
|
+
function authorizeFunctions(
|
265
|
+
address target,
|
266
|
+
RoleId roleId,
|
267
|
+
IAccess.FunctionInfo[] memory functions
|
268
|
+
)
|
269
|
+
external
|
270
|
+
restricted()
|
271
|
+
{
|
272
|
+
_checkComponentOrCustomTarget(target);
|
273
|
+
_authorizeTargetFunctions(target, roleId, functions, true);
|
274
|
+
}
|
275
|
+
|
276
|
+
|
277
|
+
/// @dev Removes function authorizations for the specified component or custom target.
|
278
|
+
function unauthorizeFunctions(
|
279
|
+
address target,
|
280
|
+
IAccess.FunctionInfo[] memory functions
|
281
|
+
)
|
282
|
+
external
|
283
|
+
restricted()
|
284
|
+
{
|
285
|
+
_checkComponentOrCustomTarget(target);
|
286
|
+
_authorizeTargetFunctions(target, ADMIN_ROLE(), functions, false);
|
287
|
+
}
|
288
|
+
|
289
|
+
|
290
|
+
/// @dev locks the instance and all its releated targets including component and custom targets.
|
187
291
|
function setInstanceLocked(bool locked)
|
188
292
|
external
|
189
|
-
|
293
|
+
// not restricted(): need to operate on locked instances to unlock instance
|
294
|
+
onlyInstanceService()
|
190
295
|
{
|
191
296
|
AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
|
192
|
-
|
193
|
-
if(accessManager.isLocked() == locked) {
|
194
|
-
revert ErrorInstanceAdminInstanceAlreadyLocked();
|
195
|
-
}
|
196
297
|
accessManager.setLocked(locked);
|
197
298
|
}
|
198
299
|
|
300
|
+
|
199
301
|
function setTargetLocked(address target, bool locked)
|
302
|
+
external
|
303
|
+
// not restricted(): might need to operate on targets while instance is locked
|
304
|
+
onlyInstanceService()
|
305
|
+
{
|
306
|
+
_setTargetLocked(target, locked);
|
307
|
+
}
|
308
|
+
|
309
|
+
|
310
|
+
function setComponentLocked(address target, bool locked)
|
200
311
|
external
|
201
312
|
restricted()
|
202
313
|
{
|
203
|
-
|
314
|
+
_setTargetLocked(target, locked);
|
204
315
|
}
|
205
316
|
|
206
317
|
/// @dev Returns the number of components that have been registered with this instance.
|
@@ -218,114 +329,11 @@ contract InstanceAdmin is
|
|
218
329
|
view
|
219
330
|
returns (IAuthorization instanceAuthorizaion)
|
220
331
|
{
|
221
|
-
return
|
332
|
+
return _authorization;
|
222
333
|
}
|
223
334
|
|
224
335
|
// ------------------- Internal functions ------------------- //
|
225
336
|
|
226
|
-
function _setupComponentAndTokenHandler(IInstanceLinkedComponent component)
|
227
|
-
internal
|
228
|
-
{
|
229
|
-
|
230
|
-
IAuthorization authorization = component.getAuthorization();
|
231
|
-
string memory targetName = authorization.getMainTargetName();
|
232
|
-
|
233
|
-
// create component role and target
|
234
|
-
RoleId componentRoleId = _createComponentRoleId(component, authorization);
|
235
|
-
|
236
|
-
// create component's target
|
237
|
-
_createTarget(
|
238
|
-
address(component),
|
239
|
-
targetName,
|
240
|
-
true, // checkAuthority
|
241
|
-
false); // custom
|
242
|
-
|
243
|
-
// create component's token handler target
|
244
|
-
NftId componentNftId = _registry.getNftIdForAddress(address(component));
|
245
|
-
address tokenHandler = address(
|
246
|
-
_instance.getInstanceReader().getComponentInfo(
|
247
|
-
componentNftId).tokenHandler);
|
248
|
-
|
249
|
-
_createTarget(
|
250
|
-
tokenHandler,
|
251
|
-
authorization.getTokenHandlerName(),
|
252
|
-
true,
|
253
|
-
false);
|
254
|
-
|
255
|
-
// assign component role to component
|
256
|
-
_grantRoleToAccount(
|
257
|
-
componentRoleId,
|
258
|
-
address(component));
|
259
|
-
|
260
|
-
// token handler does not require its own role
|
261
|
-
// token handler is not calling other components
|
262
|
-
}
|
263
|
-
|
264
|
-
|
265
|
-
function _createComponentRoleId(
|
266
|
-
IInstanceLinkedComponent component,
|
267
|
-
IAuthorization authorization
|
268
|
-
)
|
269
|
-
internal
|
270
|
-
returns (RoleId componentRoleId)
|
271
|
-
{
|
272
|
-
// checks
|
273
|
-
// check component is not yet authorized
|
274
|
-
if (_targetRoleId[address(component)].gtz()) {
|
275
|
-
revert ErrorInstanceAdminAlreadyAuthorized(address(component));
|
276
|
-
}
|
277
|
-
|
278
|
-
// check generic component role
|
279
|
-
RoleId genericComponentRoleId = authorization.getTargetRole(
|
280
|
-
authorization.getMainTarget());
|
281
|
-
|
282
|
-
if (!genericComponentRoleId.isComponentRole()) {
|
283
|
-
revert ErrorInstanceAdminNotComponentRole(genericComponentRoleId);
|
284
|
-
}
|
285
|
-
|
286
|
-
// check component role does not exist
|
287
|
-
componentRoleId = toComponentRole(
|
288
|
-
genericComponentRoleId,
|
289
|
-
_components);
|
290
|
-
|
291
|
-
if (roleExists(componentRoleId)) {
|
292
|
-
revert ErrorInstanceAdminRoleAlreadyExists(componentRoleId);
|
293
|
-
}
|
294
|
-
|
295
|
-
// check role info
|
296
|
-
IAccess.RoleInfo memory roleInfo = authorization.getRoleInfo(
|
297
|
-
genericComponentRoleId);
|
298
|
-
|
299
|
-
if (roleInfo.roleType != IAccess.RoleType.Contract) {
|
300
|
-
revert ErrorInstanceAdminRoleTypeNotContract(
|
301
|
-
componentRoleId,
|
302
|
-
roleInfo.roleType);
|
303
|
-
}
|
304
|
-
|
305
|
-
// effects
|
306
|
-
_targetRoleId[address(component)] = componentRoleId;
|
307
|
-
_components++;
|
308
|
-
|
309
|
-
_createRole(
|
310
|
-
componentRoleId,
|
311
|
-
roleInfo);
|
312
|
-
}
|
313
|
-
|
314
|
-
|
315
|
-
function _checkTargetIsReadyForAuthorization(address target)
|
316
|
-
internal
|
317
|
-
view
|
318
|
-
{
|
319
|
-
if (!_registry.isRegistered(target)) {
|
320
|
-
revert ErrorInstanceAdminNotRegistered(target);
|
321
|
-
}
|
322
|
-
|
323
|
-
if (targetExists(target)) {
|
324
|
-
revert ErrorInstanceAdminAlreadyAuthorized(target);
|
325
|
-
}
|
326
|
-
}
|
327
|
-
|
328
|
-
|
329
337
|
function _createRoles(IAuthorization authorization)
|
330
338
|
internal
|
331
339
|
{
|
@@ -333,12 +341,8 @@ contract InstanceAdmin is
|
|
333
341
|
RoleId mainTargetRoleId = authorization.getTargetRole(
|
334
342
|
authorization.getMainTarget());
|
335
343
|
|
336
|
-
RoleId roleId;
|
337
|
-
RoleInfo memory roleInfo;
|
338
|
-
|
339
344
|
for(uint256 i = 0; i < roles.length; i++) {
|
340
|
-
|
341
|
-
roleId = roles[i];
|
345
|
+
RoleId roleId = roles[i];
|
342
346
|
|
343
347
|
// skip main target role, create role if not exists
|
344
348
|
if (roleId != mainTargetRoleId && !roleExists(roleId)) {
|
@@ -350,16 +354,6 @@ contract InstanceAdmin is
|
|
350
354
|
}
|
351
355
|
|
352
356
|
|
353
|
-
function toComponentRole(RoleId roleId, uint64 componentIdx)
|
354
|
-
internal
|
355
|
-
pure
|
356
|
-
returns (RoleId)
|
357
|
-
{
|
358
|
-
return RoleIdLib.toRoleId(
|
359
|
-
RoleIdLib.toInt(roleId) + componentIdx);
|
360
|
-
}
|
361
|
-
|
362
|
-
|
363
357
|
function _createTargetAuthorizations(IAuthorization authorization)
|
364
358
|
internal
|
365
359
|
{
|
@@ -369,69 +363,21 @@ contract InstanceAdmin is
|
|
369
363
|
for(uint256 i = 0; i < targets.length; i++) {
|
370
364
|
target = targets[i];
|
371
365
|
RoleId[] memory authorizedRoles = authorization.getAuthorizedRoles(target);
|
372
|
-
RoleId authorizedRole;
|
373
366
|
|
374
367
|
for(uint256 j = 0; j < authorizedRoles.length; j++) {
|
375
|
-
|
376
|
-
|
377
|
-
_authorizeTargetFunctions(
|
378
|
-
getTargetForName(target),
|
379
|
-
authorizedRole,
|
380
|
-
authorization.getAuthorizedFunctions(
|
381
|
-
target,
|
382
|
-
authorizedRole));
|
368
|
+
_authorizeFunctions(authorization, target, authorizedRoles[j]);
|
383
369
|
}
|
384
370
|
}
|
385
371
|
}
|
386
372
|
|
387
|
-
function _checkAndCreateTargetWithRole(
|
388
|
-
address target,
|
389
|
-
string memory targetName
|
390
|
-
)
|
391
|
-
internal
|
392
|
-
{
|
393
|
-
// check that target name is defined in authorization specification
|
394
|
-
Str name = StrLib.toStr(targetName);
|
395
|
-
if (!_instanceAuthorization.targetExists(name)) {
|
396
|
-
revert ErrorInstanceAdminExpectedTargetMissing(targetName);
|
397
|
-
}
|
398
373
|
|
399
|
-
|
400
|
-
_createTarget(
|
401
|
-
target,
|
402
|
-
targetName,
|
403
|
-
false, // check authority TODO check normal targets, don't check service targets (they share authority with release admin)
|
404
|
-
false);
|
405
|
-
|
406
|
-
// assign target role if defined
|
407
|
-
RoleId targetRoleId = _instanceAuthorization.getTargetRole(name);
|
408
|
-
if (targetRoleId != RoleIdLib.zero()) {
|
409
|
-
_grantRoleToAccount(targetRoleId, target);
|
410
|
-
}
|
411
|
-
}
|
412
|
-
|
413
|
-
function _setupInstanceHelperTargetsWithRoles()
|
374
|
+
function _checkComponentOrCustomTarget(address target)
|
414
375
|
internal
|
376
|
+
view
|
415
377
|
{
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
_checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
|
420
|
-
_checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
|
421
|
-
_checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
|
422
|
-
_checkAndCreateTargetWithRole(address(_instance.getRiskSet()), RISK_SET_TAGET_NAME);
|
423
|
-
|
424
|
-
// create targets for services that need to access the module targets
|
425
|
-
ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();
|
426
|
-
VersionPart release = _instanceAuthorization.getRelease();
|
427
|
-
ObjectType serviceDomain;
|
428
|
-
|
429
|
-
for (uint256 i = 0; i < serviceDomains.length; i++) {
|
430
|
-
serviceDomain = serviceDomains[i];
|
431
|
-
|
432
|
-
_checkAndCreateTargetWithRole(
|
433
|
-
_registry.getServiceAddress(serviceDomain, release),
|
434
|
-
_instanceAuthorization.getServiceTarget(serviceDomain).toString());
|
378
|
+
IAccess.TargetType targetType = getTargetInfo(target).targetType;
|
379
|
+
if (targetType != TargetType.Component && targetType != TargetType.Custom) {
|
380
|
+
revert ErrorInstanceAdminNotComponentOrCustomTarget(target);
|
435
381
|
}
|
436
382
|
}
|
437
383
|
}
|