@etherisc/gif-next 0.0.2-f78c672-338 → 0.0.2-f78f882-351
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 -312
- 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 +111 -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 +655 -299
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -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 +331 -56
- 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 +501 -231
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +131 -16
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +63 -59
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +322 -67
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -33
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +379 -150
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +160 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -32
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +233 -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 -110
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +321 -66
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -134
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +321 -66
- 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 +82 -84
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +321 -66
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +39 -73
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -148
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +321 -66
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -190
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +321 -66
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +450 -28
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +355 -12
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +488 -85
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +942 -471
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +289 -78
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +595 -532
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +387 -64
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -52
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1316 -2015
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +33 -45
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +340 -60
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +19 -31
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -31
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +87 -42
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +116 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -79
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +321 -66
- 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 +144 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -41
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -41
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +346 -87
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +218 -61
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +113 -43
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -58
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +321 -66
- 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 +128 -70
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -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 +29 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -52
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +203 -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 +138 -72
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +91 -118
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +113 -67
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -52
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +231 -46
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -43
- 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 +799 -472
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -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 +96 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +841 -419
- 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 +197 -129
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +19 -31
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +212 -232
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +133 -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 -31
- 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 -31
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -31
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +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 +1453 -153
- 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 -239
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +146 -67
- 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 +98 -44
- 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 +64 -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 +81 -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 +361 -371
- package/contracts/authorization/AccessAdminLib.sol +678 -0
- package/contracts/authorization/AccessManagerCloneable.sol +23 -32
- package/contracts/authorization/Authorization.sol +82 -229
- package/contracts/authorization/IAccess.sol +29 -12
- package/contracts/authorization/IAccessAdmin.sol +83 -84
- package/contracts/authorization/IAuthorization.sol +3 -51
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +5 -7
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +12 -17
- package/contracts/distribution/DistributionService.sol +129 -66
- package/contracts/distribution/IDistributionComponent.sol +3 -1
- package/contracts/distribution/IDistributionService.sol +21 -9
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +6 -10
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -8
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -23
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +98 -12
- package/contracts/instance/IInstanceService.sol +54 -7
- package/contracts/instance/Instance.sol +165 -61
- package/contracts/instance/InstanceAdmin.sol +183 -313
- package/contracts/instance/InstanceAuthorizationV3.sol +123 -61
- package/contracts/instance/InstanceReader.sol +350 -394
- package/contracts/instance/InstanceService.sol +283 -173
- package/contracts/instance/InstanceStore.sol +153 -128
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +15 -6
- package/contracts/instance/module/IDistribution.sol +17 -7
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +3 -6
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +4 -8
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -18
- package/contracts/pool/BasicPoolAuthorization.sol +10 -5
- package/contracts/pool/BundleService.sol +34 -43
- package/contracts/pool/IBundleService.sol +14 -13
- package/contracts/pool/IPoolService.sol +7 -2
- package/contracts/pool/Pool.sol +6 -20
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +41 -184
- package/contracts/product/ApplicationService.sol +65 -12
- package/contracts/product/BasicProduct.sol +2 -5
- package/contracts/product/BasicProductAuthorization.sol +11 -4
- package/contracts/product/ClaimService.sol +99 -105
- package/contracts/product/IApplicationService.sol +21 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +9 -2
- package/contracts/product/IRiskService.sol +18 -3
- package/contracts/product/PolicyService.sol +40 -77
- package/contracts/product/PolicyServiceLib.sol +79 -5
- package/contracts/product/PricingService.sol +29 -32
- package/contracts/product/Product.sol +40 -18
- package/contracts/product/RiskService.sol +50 -15
- 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 +85 -266
- package/contracts/registry/RegistryAuthorization.sol +337 -0
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +70 -116
- 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 +20 -37
- package/contracts/shared/ComponentService.sol +249 -250
- package/contracts/shared/ContractLib.sol +134 -75
- package/contracts/shared/IComponent.sol +1 -4
- package/contracts/shared/IComponentService.sol +21 -22
- 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 +6 -11
- 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 +265 -64
- package/contracts/staking/IStakingService.sol +44 -82
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +475 -204
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +58 -77
- package/contracts/staking/StakingService.sol +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 +17 -22
- 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 +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/artifacts/contracts/staking/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/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -3,175 +3,186 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IAccess} from "../authorization/IAccess.sol";
|
5
5
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
6
|
-
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
7
6
|
import {IRegistry} from "../registry/IRegistry.sol";
|
8
7
|
import {IInstance} from "./IInstance.sol";
|
9
8
|
|
10
9
|
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
10
|
+
import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
|
11
11
|
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {
|
16
|
-
import {
|
17
|
-
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
12
|
+
import {ObjectType, INSTANCE} from "../type/ObjectType.sol";
|
13
|
+
import {RoleId, ADMIN_ROLE} from "../type/RoleId.sol";
|
14
|
+
import {Str} from "../type/String.sol";
|
15
|
+
import {VersionPart} from "../type/Version.sol";
|
16
|
+
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
17
|
|
19
18
|
|
20
19
|
contract InstanceAdmin is
|
21
20
|
AccessAdmin
|
22
21
|
{
|
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";
|
22
|
+
// onlyInstanceService
|
23
|
+
error ErrorInstanceAdminNotInstanceService(address caller);
|
28
24
|
|
29
|
-
|
30
|
-
|
31
|
-
error ErrorInstanceAdminCallerNotInstanceOwner(address caller);
|
32
|
-
error ErrorInstanceAdminInstanceAlreadyLocked();
|
33
|
-
error ErrorInstanceAdminNotRegistered(address target);
|
34
|
-
|
35
|
-
error ErrorInstanceAdminAlreadyAuthorized(address target);
|
36
|
-
error ErrorInstanceAdminNotComponentRole(RoleId roleId);
|
37
|
-
error ErrorInstanceAdminRoleAlreadyExists(RoleId roleId);
|
38
|
-
error ErrorInstanceAdminRoleTypeNotContract(RoleId roleId, IAccess.RoleType roleType);
|
39
|
-
|
40
|
-
error ErrorInstanceAdminReleaseMismatch();
|
41
|
-
error ErrorInstanceAdminExpectedTargetMissing(string targetName);
|
25
|
+
// authorizeFunctions
|
26
|
+
error ErrorInstanceAdminNotComponentOrCustomTarget(address target);
|
42
27
|
|
43
28
|
IInstance internal _instance;
|
44
29
|
IRegistry internal _registry;
|
45
|
-
uint64 internal _customIdNext;
|
46
30
|
|
47
|
-
|
48
|
-
uint64 internal _components;
|
31
|
+
uint64 internal _customRoleIdNext;
|
49
32
|
|
50
|
-
IAuthorization internal _instanceAuthorization;
|
51
33
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
revert ErrorInstanceAdminCallerNotInstanceOwner(msg.sender);
|
34
|
+
modifier onlyInstanceService() {
|
35
|
+
if (msg.sender != _registry.getServiceAddress(INSTANCE(), getRelease())) {
|
36
|
+
revert ErrorInstanceAdminNotInstanceService(msg.sender);
|
56
37
|
}
|
57
38
|
_;
|
58
39
|
}
|
59
40
|
|
60
|
-
/// @dev Only used for master instance admin.
|
61
|
-
/// Contracts created via constructor come with disabled initializers.
|
62
|
-
constructor(
|
63
|
-
address instanceAuthorization
|
64
|
-
) {
|
65
|
-
initialize(new AccessManagerCloneable());
|
66
41
|
|
67
|
-
|
68
|
-
|
69
|
-
|
42
|
+
/// @dev Only used for master instance admin.
|
43
|
+
constructor(address accessManager) {
|
44
|
+
initialize(
|
45
|
+
accessManager,
|
46
|
+
"MasterInstanceAdmin");
|
70
47
|
}
|
71
48
|
|
72
49
|
|
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
50
|
/// @dev Completes the initialization of this instance admin using the provided instance, registry and version.
|
91
51
|
/// Important: Initialization of instance admin is only complete after calling this function.
|
92
52
|
/// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
|
93
53
|
function completeSetup(
|
94
|
-
address
|
95
|
-
address authorization
|
54
|
+
address registry,
|
55
|
+
address authorization,
|
56
|
+
VersionPart release,
|
57
|
+
address instance
|
96
58
|
)
|
97
59
|
external
|
98
|
-
reinitializer(uint64(
|
99
|
-
onlyDeployer()
|
60
|
+
reinitializer(uint64(release.toInt()))
|
100
61
|
{
|
101
|
-
|
102
|
-
|
62
|
+
// checks
|
63
|
+
AccessAdminLib.checkIsRegistered(registry, instance, INSTANCE());
|
64
|
+
|
65
|
+
// effects
|
66
|
+
AccessManagerCloneable(
|
67
|
+
authority()).completeSetup(
|
68
|
+
registry,
|
69
|
+
release);
|
70
|
+
|
71
|
+
AccessAdminLib.checkAuthorization(
|
72
|
+
address(_authorization),
|
73
|
+
authorization,
|
74
|
+
INSTANCE(), // expectedDomain
|
75
|
+
release, // expectedRelease
|
76
|
+
false, // expectServiceAuthorization
|
77
|
+
true); // checkAlreadyInitialized
|
78
|
+
|
79
|
+
_registry = IRegistry(registry);
|
103
80
|
_instance = IInstance(instance);
|
104
|
-
|
81
|
+
_authorization = IAuthorization(authorization);
|
82
|
+
_customRoleIdNext = 0;
|
105
83
|
|
106
|
-
|
84
|
+
// link nft ownability to instance
|
85
|
+
_linkToNftOwnable(instance);
|
107
86
|
|
108
|
-
//
|
109
|
-
|
110
|
-
|
87
|
+
// setup roles and services
|
88
|
+
_createRoles(_authorization);
|
89
|
+
_setupServices(_authorization);
|
90
|
+
|
91
|
+
// setup instance targets
|
92
|
+
_createInstanceTargets(_authorization.getMainTargetName());
|
93
|
+
|
94
|
+
// authorize functions of instance contracts
|
95
|
+
_createTargetAuthorizations(_authorization);
|
96
|
+
}
|
97
|
+
|
98
|
+
/// @dev grants the service roles to the service addresses based on the authorization specification.
|
99
|
+
/// Service addresses used for the granting are determined by the registry and the release of this instance.
|
100
|
+
function _setupServices(IAuthorization authorization)
|
101
|
+
internal
|
102
|
+
{
|
103
|
+
ObjectType[] memory serviceDomains = authorization.getServiceDomains();
|
104
|
+
|
105
|
+
for(uint256 i = 0; i < serviceDomains.length; i++) {
|
106
|
+
ObjectType serviceDomain = serviceDomains[i];
|
107
|
+
RoleId serviceRoleId = authorization.getServiceRole(serviceDomain);
|
108
|
+
address service = _registry.getServiceAddress(serviceDomain, getRelease());
|
109
|
+
|
110
|
+
_grantRoleToAccount(
|
111
|
+
serviceRoleId,
|
112
|
+
service);
|
111
113
|
}
|
114
|
+
}
|
112
115
|
|
113
|
-
// create instance role and target
|
114
|
-
_setupInstance(instance);
|
115
116
|
|
116
|
-
|
117
|
-
|
117
|
+
function _createInstanceTargets(string memory instanceTargetName)
|
118
|
+
internal
|
119
|
+
{
|
120
|
+
_createInstanceTarget(address(_instance), instanceTargetName);
|
121
|
+
_createInstanceTarget(address(this), INSTANCE_ADMIN_TARGET_NAME);
|
122
|
+
_createInstanceTarget(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
|
123
|
+
_createInstanceTarget(address(_instance.getProductStore()), PRODUCT_STORE_TARGET_NAME);
|
124
|
+
_createInstanceTarget(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
|
125
|
+
_createInstanceTarget(address(_instance.getRiskSet()), RISK_SET_TARGET_NAME);
|
126
|
+
}
|
127
|
+
|
118
128
|
|
119
|
-
|
120
|
-
|
129
|
+
function _createInstanceTarget(address target, string memory name) internal {
|
130
|
+
_createTarget(target, name, TargetType.Instance, true);
|
121
131
|
}
|
122
132
|
|
123
133
|
|
124
134
|
/// @dev Initializes the authorization for the specified component.
|
125
135
|
/// Important: The component MUST be registered.
|
126
136
|
function initializeComponentAuthorization(
|
127
|
-
|
137
|
+
address componentAddress,
|
138
|
+
ObjectType expectedType
|
128
139
|
)
|
129
140
|
external
|
130
141
|
restricted()
|
131
142
|
{
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
// setup target and role for component (including token handler)
|
136
|
-
_setupComponentAndTokenHandler(component);
|
143
|
+
IAuthorization authorization = AccessAdminLib.checkComponentInitialization(
|
144
|
+
this, _authorization, componentAddress, expectedType);
|
137
145
|
|
138
|
-
//
|
139
|
-
|
140
|
-
|
146
|
+
// effects
|
147
|
+
_createRoles(authorization);
|
148
|
+
_createTarget(componentAddress, authorization.getMainTargetName(), TargetType.Component, true);
|
141
149
|
_createTargetAuthorizations(authorization);
|
142
150
|
}
|
143
151
|
|
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
152
|
|
153
|
+
/// @dev Creates a custom role.
|
154
|
+
function createRole(
|
155
|
+
string memory name,
|
156
|
+
RoleId adminRoleId,
|
157
|
+
uint32 maxMemberCount
|
158
|
+
)
|
159
|
+
external
|
160
|
+
restricted()
|
161
|
+
returns (RoleId roleId)
|
162
|
+
{
|
163
|
+
// create roleId
|
164
|
+
roleId = AccessAdminLib.getCustomRoleId(_customRoleIdNext++);
|
165
|
+
|
166
|
+
// create role
|
150
167
|
_createRole(
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
true, // checkAuthority
|
159
|
-
false); // custom
|
160
|
-
|
161
|
-
// assign instance role to instance
|
162
|
-
_grantRoleToAccount(
|
163
|
-
instanceRoleId,
|
164
|
-
instance);
|
168
|
+
roleId,
|
169
|
+
AccessAdminLib.roleInfo(
|
170
|
+
adminRoleId,
|
171
|
+
IAccess.TargetType.Custom,
|
172
|
+
maxMemberCount,
|
173
|
+
name),
|
174
|
+
true); // revert on existing role
|
165
175
|
}
|
166
176
|
|
167
|
-
/// @dev Creates a custom role
|
168
|
-
// TODO implement
|
169
|
-
// function createRole()
|
170
|
-
// external
|
171
|
-
// restricted()
|
172
|
-
// {
|
173
177
|
|
174
|
-
|
178
|
+
/// @dev Activtes/pauses the specified role.
|
179
|
+
function setRoleActive(RoleId roleId, bool active)
|
180
|
+
external
|
181
|
+
restricted()
|
182
|
+
{
|
183
|
+
_setRoleActive(roleId, active);
|
184
|
+
}
|
185
|
+
|
175
186
|
|
176
187
|
/// @dev Grants the provided role to the specified account
|
177
188
|
function grantRole(
|
@@ -184,181 +195,99 @@ contract InstanceAdmin is
|
|
184
195
|
}
|
185
196
|
|
186
197
|
|
187
|
-
|
198
|
+
/// @dev Revokes the provided role from the specified account
|
199
|
+
function revokeRole(
|
200
|
+
RoleId roleId,
|
201
|
+
address account)
|
188
202
|
external
|
189
|
-
onlyInstanceOwner()
|
190
|
-
{
|
191
|
-
AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
|
192
|
-
|
193
|
-
if(accessManager.isLocked() == locked) {
|
194
|
-
revert ErrorInstanceAdminInstanceAlreadyLocked();
|
195
|
-
}
|
196
|
-
accessManager.setLocked(locked);
|
197
|
-
}
|
198
|
-
|
199
|
-
function setTargetLocked(address target, bool locked)
|
200
|
-
external
|
201
203
|
restricted()
|
202
204
|
{
|
203
|
-
|
205
|
+
_revokeRoleFromAccount(roleId, account);
|
204
206
|
}
|
205
207
|
|
206
|
-
/// @dev Returns the number of components that have been registered with this instance.
|
207
|
-
function components()
|
208
|
-
external
|
209
|
-
view
|
210
|
-
returns (uint64)
|
211
|
-
{
|
212
|
-
return _components;
|
213
|
-
}
|
214
208
|
|
215
|
-
/// @dev
|
216
|
-
|
209
|
+
/// @dev Create a new contract target.
|
210
|
+
/// The target needs to be an access managed contract.
|
211
|
+
function createTarget(
|
212
|
+
address target,
|
213
|
+
string memory name
|
214
|
+
)
|
217
215
|
external
|
218
|
-
|
219
|
-
returns (
|
216
|
+
restricted()
|
217
|
+
returns (RoleId contractRoleId)
|
220
218
|
{
|
221
|
-
return
|
219
|
+
return _createTarget(
|
220
|
+
target,
|
221
|
+
name,
|
222
|
+
TargetType.Contract,
|
223
|
+
true); // check authority matches
|
222
224
|
}
|
223
225
|
|
224
|
-
// ------------------- Internal functions ------------------- //
|
225
226
|
|
226
|
-
function
|
227
|
-
|
227
|
+
/// @dev Add function authorizations for the specified component or custom target.
|
228
|
+
function authorizeFunctions(
|
229
|
+
address target,
|
230
|
+
RoleId roleId,
|
231
|
+
IAccess.FunctionInfo[] memory functions
|
232
|
+
)
|
233
|
+
external
|
234
|
+
restricted()
|
228
235
|
{
|
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
|
236
|
+
_authorizeTargetFunctions(target, roleId, functions, true, true);
|
262
237
|
}
|
263
238
|
|
264
239
|
|
265
|
-
function
|
266
|
-
|
267
|
-
|
240
|
+
/// @dev Removes function authorizations for the specified component or custom target.
|
241
|
+
function unauthorizeFunctions(
|
242
|
+
address target,
|
243
|
+
IAccess.FunctionInfo[] memory functions
|
268
244
|
)
|
269
|
-
|
270
|
-
|
245
|
+
external
|
246
|
+
restricted()
|
271
247
|
{
|
272
|
-
|
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);
|
248
|
+
_authorizeTargetFunctions(target, ADMIN_ROLE(), functions, true, false);
|
312
249
|
}
|
313
250
|
|
314
251
|
|
315
|
-
|
316
|
-
|
317
|
-
|
252
|
+
/// @dev locks the instance and all its releated targets including component and custom targets.
|
253
|
+
function setInstanceLocked(bool locked)
|
254
|
+
external
|
255
|
+
// not restricted(): need to operate on locked instances to unlock instance
|
256
|
+
onlyInstanceService()
|
318
257
|
{
|
319
|
-
|
320
|
-
|
321
|
-
}
|
322
|
-
|
323
|
-
if (targetExists(target)) {
|
324
|
-
revert ErrorInstanceAdminAlreadyAuthorized(target);
|
325
|
-
}
|
258
|
+
AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
|
259
|
+
accessManager.setLocked(locked);
|
326
260
|
}
|
327
261
|
|
328
262
|
|
329
|
-
function
|
330
|
-
|
263
|
+
function setTargetLocked(address target, bool locked)
|
264
|
+
external
|
265
|
+
// not restricted(): need to operate on locked instances to unlock instance
|
266
|
+
onlyInstanceService()
|
331
267
|
{
|
332
|
-
|
333
|
-
|
334
|
-
authorization.getMainTarget());
|
335
|
-
|
336
|
-
RoleId roleId;
|
337
|
-
RoleInfo memory roleInfo;
|
338
|
-
|
339
|
-
for(uint256 i = 0; i < roles.length; i++) {
|
268
|
+
_setTargetLocked(target, locked);
|
269
|
+
}
|
340
270
|
|
341
|
-
roleId = roles[i];
|
342
271
|
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
}
|
349
|
-
}
|
272
|
+
function setContractLocked(address target, bool locked)
|
273
|
+
external
|
274
|
+
restricted() // component service
|
275
|
+
{
|
276
|
+
_setTargetLocked(target, locked);
|
350
277
|
}
|
351
278
|
|
352
279
|
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
280
|
+
/// @dev Returns the instance authorization specification used to set up this instance admin.
|
281
|
+
function getInstanceAuthorization()
|
282
|
+
external
|
283
|
+
view
|
284
|
+
returns (IAuthorization instanceAuthorizaion)
|
357
285
|
{
|
358
|
-
return
|
359
|
-
RoleIdLib.toInt(roleId) + componentIdx);
|
286
|
+
return _authorization;
|
360
287
|
}
|
361
288
|
|
289
|
+
// ------------------- Internal functions ------------------- //
|
290
|
+
|
362
291
|
|
363
292
|
function _createTargetAuthorizations(IAuthorization authorization)
|
364
293
|
internal
|
@@ -369,69 +298,10 @@ contract InstanceAdmin is
|
|
369
298
|
for(uint256 i = 0; i < targets.length; i++) {
|
370
299
|
target = targets[i];
|
371
300
|
RoleId[] memory authorizedRoles = authorization.getAuthorizedRoles(target);
|
372
|
-
RoleId authorizedRole;
|
373
301
|
|
374
302
|
for(uint256 j = 0; j < authorizedRoles.length; j++) {
|
375
|
-
|
376
|
-
|
377
|
-
_authorizeTargetFunctions(
|
378
|
-
getTargetForName(target),
|
379
|
-
authorizedRole,
|
380
|
-
authorization.getAuthorizedFunctions(
|
381
|
-
target,
|
382
|
-
authorizedRole));
|
303
|
+
_authorizeFunctions(authorization, target, authorizedRoles[j]);
|
383
304
|
}
|
384
305
|
}
|
385
306
|
}
|
386
|
-
|
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
|
-
|
399
|
-
// create named target
|
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()
|
414
|
-
internal
|
415
|
-
{
|
416
|
-
// _checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
|
417
|
-
|
418
|
-
// create module targets
|
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());
|
435
|
-
}
|
436
|
-
}
|
437
307
|
}
|