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