@etherisc/gif-next 0.0.2-ff282a4-523 → 0.0.2-ff596ab-857
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 +133 -10
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
- 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 +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +174 -601
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +788 -535
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +278 -128
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +178 -330
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +622 -178
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1484 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
- 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/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +595 -96
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +522 -56
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +594 -219
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1833 -761
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +542 -193
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +210 -94
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1647 -702
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +873 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1242 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +550 -400
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +272 -102
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +384 -86
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +233 -423
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +749 -377
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +247 -629
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +954 -743
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +271 -113
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +370 -252
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +231 -89
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1159 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +491 -341
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +253 -115
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +320 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +369 -18
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +454 -69
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +217 -75
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +380 -225
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +289 -66
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +507 -384
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +237 -123
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +261 -333
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +235 -109
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +428 -509
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +478 -61
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +280 -127
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +920 -125
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
- 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 +332 -245
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +208 -92
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +361 -125
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +128 -296
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1076 -156
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +129 -135
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +52 -20
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +42 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +173 -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 +103 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +45 -55
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +148 -90
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +96 -102
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +615 -6
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2576 -128
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +705 -103
- 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 +2914 -226
- 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 +298 -74
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +754 -207
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +218 -84
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
- 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 +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +122 -5
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +92 -15
- 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 +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +119 -58
- 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 +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +66 -4
- 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 +153 -4
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +121 -23
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +167 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +126 -33
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
- package/contracts/accounting/AccountingService.sol +274 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +47 -0
- package/contracts/authorization/AccessAdmin.sol +780 -0
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +158 -0
- package/contracts/authorization/Authorization.sol +169 -0
- package/contracts/authorization/IAccess.sol +67 -0
- package/contracts/authorization/IAccessAdmin.sol +144 -0
- package/contracts/authorization/IAuthorization.sol +26 -0
- package/contracts/authorization/IServiceAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +320 -0
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
- package/contracts/distribution/Distribution.sol +137 -175
- package/contracts/distribution/DistributionService.sol +314 -215
- package/contracts/distribution/DistributionServiceManager.sol +13 -25
- package/contracts/distribution/IDistributionComponent.sol +23 -49
- package/contracts/distribution/IDistributionService.sol +61 -33
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +117 -49
- package/contracts/instance/IInstanceService.sol +81 -37
- package/contracts/instance/Instance.sol +252 -134
- package/contracts/instance/InstanceAdmin.sol +383 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
- package/contracts/instance/InstanceReader.sol +505 -241
- package/contracts/instance/InstanceService.sol +388 -196
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +151 -64
- package/contracts/instance/RiskSet.sol +126 -0
- package/contracts/instance/base/BalanceStore.sol +121 -0
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +20 -0
- package/contracts/instance/base/ObjectLifecycle.sol +109 -0
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -8
- package/contracts/instance/module/IComponents.sol +40 -19
- package/contracts/instance/module/IDistribution.sol +21 -9
- package/contracts/instance/module/IPolicy.sol +57 -30
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +45 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
- package/contracts/oracle/IOracle.sol +41 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +66 -0
- package/contracts/oracle/Oracle.sol +154 -0
- package/contracts/oracle/OracleService.sol +310 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +162 -0
- package/contracts/pool/BasicPoolAuthorization.sol +81 -0
- package/contracts/pool/BundleService.sol +250 -246
- package/contracts/pool/BundleServiceManager.sol +13 -25
- package/contracts/pool/IBundleService.sol +47 -49
- package/contracts/pool/IPoolComponent.sol +23 -75
- package/contracts/pool/IPoolService.sol +112 -56
- package/contracts/pool/Pool.sol +200 -169
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +475 -264
- package/contracts/pool/PoolServiceManager.sol +12 -24
- package/contracts/product/ApplicationService.sol +222 -81
- package/contracts/product/ApplicationServiceManager.sol +12 -9
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +63 -0
- package/contracts/product/ClaimService.sol +389 -201
- package/contracts/product/ClaimServiceManager.sol +12 -9
- package/contracts/product/IApplicationService.sol +30 -4
- package/contracts/product/IClaimService.sol +52 -9
- package/contracts/product/IPolicyService.sol +62 -40
- package/contracts/product/IPricingService.sol +14 -11
- package/contracts/product/IProductComponent.sol +31 -10
- package/contracts/product/IRiskService.sol +48 -0
- package/contracts/product/PolicyService.sol +503 -234
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +12 -27
- package/contracts/product/PricingService.sol +133 -102
- package/contracts/product/PricingServiceManager.sol +12 -24
- package/contracts/product/Product.sol +267 -153
- package/contracts/product/RiskService.sol +190 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -39
- package/contracts/registry/IRegistry.sol +100 -38
- package/contracts/registry/IRegistryService.sol +28 -35
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +453 -222
- package/contracts/registry/RegistryAdmin.sol +191 -0
- package/contracts/registry/RegistryAuthorization.sol +336 -0
- package/contracts/registry/RegistryService.sol +75 -138
- package/contracts/registry/RegistryServiceManager.sol +23 -30
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +525 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
- package/contracts/registry/TokenRegistry.sol +264 -63
- package/contracts/shared/Component.sol +126 -183
- package/contracts/shared/ComponentService.sol +636 -99
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ContractLib.sol +312 -0
- package/contracts/shared/IComponent.sol +18 -50
- package/contracts/shared/IComponentService.sol +111 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +5 -1
- package/contracts/shared/IPolicyHolder.sol +12 -17
- package/contracts/shared/IRegisterable.sol +22 -1
- package/contracts/shared/IService.sol +11 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
- package/contracts/shared/InstanceLinkedComponent.sol +194 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +35 -24
- package/contracts/shared/PolicyHolder.sol +19 -50
- package/contracts/shared/Registerable.sol +54 -23
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +36 -41
- package/contracts/shared/TokenHandler.sol +320 -13
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +358 -6
- package/contracts/staking/IStakingService.sol +98 -76
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +761 -27
- package/contracts/staking/StakingLib.sol +195 -0
- package/contracts/staking/StakingManager.sol +27 -18
- package/contracts/staking/StakingReader.sol +171 -0
- package/contracts/staking/StakingService.sol +175 -58
- package/contracts/staking/StakingServiceManager.sol +13 -8
- package/contracts/staking/StakingStore.sol +1368 -0
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +234 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +48 -3
- package/contracts/type/Blocknumber.sol +36 -13
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +22 -21
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +21 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +204 -63
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +39 -7
- package/contracts/type/RoleId.sol +122 -74
- package/contracts/type/Seconds.sol +67 -1
- package/contracts/type/Selector.sol +107 -0
- package/contracts/type/StateId.sol +41 -2
- package/contracts/type/String.sol +65 -0
- package/contracts/type/Timestamp.sol +20 -9
- package/contracts/type/UFixed.sol +62 -125
- package/contracts/type/Version.sol +58 -7
- package/contracts/{shared → upgradeability}/IVersionable.sol +3 -0
- package/contracts/{shared → upgradeability}/ProxyManager.sol +115 -38
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
- package/contracts/{shared → upgradeability}/Versionable.sol +8 -5
- package/package.json +12 -8
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -864
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -640
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -620
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/InstanceAccessManager.sol +0 -543
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
- package/contracts/instance/base/KeyValueStore.sol +0 -169
- package/contracts/instance/base/Lifecycle.sol +0 -121
- package/contracts/instance/base/ObjectManager.sol +0 -82
- package/contracts/instance/module/IAccess.sol +0 -54
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/product/IProductService.sol +0 -40
- package/contracts/product/ProductService.sol +0 -210
- package/contracts/product/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -207
- package/contracts/registry/ReleaseManager.sol +0 -360
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
@@ -2,33 +2,33 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
|
-
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
6
|
-
|
7
|
-
import {NftId} from "../type/NftId.sol";
|
8
|
-
import {RoleId} from "../type/RoleId.sol";
|
9
|
-
import {ADMIN_ROLE, INSTANCE_OWNER_ROLE, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, INSTANCE_SERVICE_ROLE, DISTRIBUTION_SERVICE_ROLE, POOL_SERVICE_ROLE, PRODUCT_SERVICE_ROLE, APPLICATION_SERVICE_ROLE, POLICY_SERVICE_ROLE, CLAIM_SERVICE_ROLE, BUNDLE_SERVICE_ROLE, INSTANCE_ROLE} from "../type/RoleId.sol";
|
10
|
-
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, POLICY, CLAIM, PRODUCT, DISTRIBUTION, REGISTRY, POOL} from "../type/ObjectType.sol";
|
11
|
-
|
12
|
-
import {Service} from "../shared/Service.sol";
|
13
|
-
import {IService} from "../shared/IService.sol";
|
14
|
-
import {AccessManagerUpgradeableInitializeable} from "../shared/AccessManagerUpgradeableInitializeable.sol";
|
15
|
-
|
16
|
-
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
17
|
-
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
18
|
-
import {IProductComponent} from "../product/IProductComponent.sol";
|
19
5
|
|
6
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
7
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
8
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
9
|
+
import {IInstance} from "./IInstance.sol";
|
10
|
+
import {IInstanceService} from "./IInstanceService.sol";
|
20
11
|
import {IRegistry} from "../registry/IRegistry.sol";
|
21
12
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
22
|
-
import {
|
13
|
+
import {IStakingService} from "../staking/IStakingService.sol";
|
23
14
|
|
15
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
16
|
+
import {Amount} from "../type/Amount.sol";
|
17
|
+
import {BundleSet} from "./BundleSet.sol";
|
24
18
|
import {Instance} from "./Instance.sol";
|
25
|
-
import {
|
26
|
-
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
27
|
-
import {IInstanceService} from "./IInstanceService.sol";
|
19
|
+
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
28
20
|
import {InstanceReader} from "./InstanceReader.sol";
|
29
|
-
import {BundleManager} from "./BundleManager.sol";
|
30
21
|
import {InstanceStore} from "./InstanceStore.sol";
|
31
|
-
import {
|
22
|
+
import {NftId} from "../type/NftId.sol";
|
23
|
+
import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
24
|
+
import {RiskSet} from "./RiskSet.sol";
|
25
|
+
import {RoleId} from "../type/RoleId.sol";
|
26
|
+
import {Seconds} from "../type/Seconds.sol";
|
27
|
+
import {Service} from "../shared/Service.sol";
|
28
|
+
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
29
|
+
import {UFixed} from "../type/UFixed.sol";
|
30
|
+
import {VersionPart} from "../type/Version.sol";
|
31
|
+
|
32
32
|
|
33
33
|
contract InstanceService is
|
34
34
|
Service,
|
@@ -39,140 +39,324 @@ contract InstanceService is
|
|
39
39
|
bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
|
40
40
|
|
41
41
|
IRegistryService internal _registryService;
|
42
|
-
|
43
|
-
|
42
|
+
IStakingService internal _stakingService;
|
43
|
+
IComponentService internal _componentService;
|
44
|
+
|
45
|
+
address internal _masterAccessManager;
|
46
|
+
address internal _masterInstanceAdmin;
|
44
47
|
address internal _masterInstance;
|
45
48
|
address internal _masterInstanceReader;
|
46
|
-
address internal
|
49
|
+
address internal _masterInstanceBundleSet;
|
50
|
+
address internal _masterInstanceRiskSet;
|
47
51
|
address internal _masterInstanceStore;
|
48
52
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
}
|
53
|
+
|
54
|
+
modifier onlyInstance() {
|
55
|
+
_checkInstance(msg.sender, getRelease());
|
53
56
|
_;
|
54
57
|
}
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
58
|
+
|
59
|
+
|
60
|
+
/// @inheritdoc IInstanceService
|
61
|
+
function createRole(
|
62
|
+
string memory roleName,
|
63
|
+
RoleId adminRoleId,
|
64
|
+
uint32 maxMemberCount
|
65
|
+
)
|
66
|
+
external
|
67
|
+
restricted()
|
68
|
+
onlyInstance()
|
69
|
+
returns (RoleId roleId)
|
70
|
+
{
|
71
|
+
IInstance instance = IInstance(msg.sender);
|
72
|
+
roleId = instance.getInstanceAdmin().createRole(
|
73
|
+
roleName,
|
74
|
+
adminRoleId,
|
75
|
+
maxMemberCount);
|
62
76
|
}
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
77
|
+
|
78
|
+
|
79
|
+
/// @inheritdoc IInstanceService
|
80
|
+
function setRoleActive(RoleId roleId, bool active)
|
81
|
+
external
|
82
|
+
restricted()
|
83
|
+
onlyInstance()
|
84
|
+
{
|
85
|
+
IInstance instance = IInstance(msg.sender);
|
86
|
+
instance.getInstanceAdmin().setRoleActive(roleId, active);
|
87
|
+
}
|
88
|
+
|
89
|
+
|
90
|
+
/// @inheritdoc IInstanceService
|
91
|
+
function grantRole(RoleId roleId, address account)
|
92
|
+
external
|
93
|
+
restricted()
|
94
|
+
onlyInstance()
|
95
|
+
{
|
96
|
+
IInstance instance = IInstance(msg.sender);
|
97
|
+
instance.getInstanceAdmin().grantRole(roleId, account);
|
98
|
+
}
|
99
|
+
|
100
|
+
|
101
|
+
/// @inheritdoc IInstanceService
|
102
|
+
function revokeRole(RoleId roleId, address account)
|
103
|
+
external
|
104
|
+
restricted()
|
105
|
+
onlyInstance()
|
106
|
+
{
|
107
|
+
IInstance instance = IInstance(msg.sender);
|
108
|
+
instance.getInstanceAdmin().revokeRole(roleId, account);
|
109
|
+
}
|
110
|
+
|
111
|
+
|
112
|
+
/// @inheritdoc IInstanceService
|
113
|
+
function createTarget(address target, string memory name)
|
114
|
+
external
|
115
|
+
restricted()
|
116
|
+
onlyInstance()
|
117
|
+
returns (RoleId contractRoleId)
|
118
|
+
{
|
119
|
+
IInstance instance = IInstance(msg.sender);
|
120
|
+
return instance.getInstanceAdmin().createTarget(target, name);
|
69
121
|
}
|
70
122
|
|
71
|
-
|
123
|
+
|
124
|
+
/// @inheritdoc IInstanceService
|
125
|
+
function authorizeFunctions(
|
126
|
+
address target,
|
127
|
+
RoleId roleId,
|
128
|
+
IAccess.FunctionInfo[] memory functions
|
129
|
+
)
|
72
130
|
external
|
131
|
+
restricted()
|
132
|
+
onlyInstance()
|
133
|
+
{
|
134
|
+
IInstance instance = IInstance(msg.sender);
|
135
|
+
return instance.getInstanceAdmin().authorizeFunctions(target, roleId, functions);
|
136
|
+
}
|
137
|
+
|
138
|
+
|
139
|
+
/// @inheritdoc IInstanceService
|
140
|
+
function unauthorizeFunctions(
|
141
|
+
address target,
|
142
|
+
IAccess.FunctionInfo[] memory functions
|
143
|
+
)
|
144
|
+
external
|
145
|
+
restricted()
|
146
|
+
onlyInstance()
|
147
|
+
{
|
148
|
+
IInstance instance = IInstance(msg.sender);
|
149
|
+
return instance.getInstanceAdmin().unauthorizeFunctions(target, functions);
|
150
|
+
}
|
151
|
+
|
152
|
+
|
153
|
+
/// @inheritdoc IInstanceService
|
154
|
+
function setTargetLocked(address target, bool locked)
|
155
|
+
external
|
156
|
+
virtual
|
157
|
+
restricted()
|
158
|
+
onlyInstance()
|
159
|
+
{
|
160
|
+
address instanceAddress = msg.sender;
|
161
|
+
IInstance(instanceAddress).getInstanceAdmin().setTargetLocked(target, locked);
|
162
|
+
}
|
163
|
+
|
164
|
+
|
165
|
+
/// @inheritdoc IInstanceService
|
166
|
+
function setInstanceLocked(bool locked)
|
167
|
+
external
|
168
|
+
virtual
|
169
|
+
restricted()
|
170
|
+
onlyInstance()
|
171
|
+
{
|
172
|
+
address instanceAddress = msg.sender;
|
173
|
+
IInstance(instanceAddress).getInstanceAdmin().setInstanceLocked(locked);
|
174
|
+
|
175
|
+
emit LogInstanceServiceInstanceLocked(
|
176
|
+
getRegistry().getNftIdForAddress(instanceAddress),
|
177
|
+
locked);
|
178
|
+
}
|
179
|
+
|
180
|
+
|
181
|
+
/// @inheritdoc IInstanceService
|
182
|
+
function createInstance(bool allowAnyToken)
|
183
|
+
external
|
184
|
+
virtual
|
185
|
+
restricted()
|
73
186
|
returns (
|
74
|
-
|
75
|
-
NftId
|
187
|
+
IInstance instance,
|
188
|
+
NftId instanceNftId
|
76
189
|
)
|
77
190
|
{
|
191
|
+
// tx sender will become instance owner
|
78
192
|
address instanceOwner = msg.sender;
|
79
|
-
AccessManagerUpgradeableInitializeable clonedOzAccessManager = AccessManagerUpgradeableInitializeable(
|
80
|
-
Clones.clone(_masterOzAccessManager));
|
81
193
|
|
82
|
-
//
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
194
|
+
// create instance admin and instance
|
195
|
+
InstanceAdmin instanceAdmin = _cloneNewInstanceAdmin();
|
196
|
+
instance = _createInstance(instanceAdmin, instanceOwner, allowAnyToken);
|
197
|
+
|
198
|
+
// register cloned instance with registry
|
199
|
+
instanceNftId = _registryService.registerInstance(
|
200
|
+
instance, instanceOwner).nftId;
|
201
|
+
|
202
|
+
// MUST be set after instance is set up and registered
|
203
|
+
IAuthorization instanceAuthorization = InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization();
|
204
|
+
instanceAdmin.completeSetup(
|
205
|
+
address(getRegistry()),
|
206
|
+
address(instanceAuthorization),
|
207
|
+
getRelease(),
|
208
|
+
address(instance));
|
209
|
+
|
210
|
+
// hard checks for newly cloned instance
|
211
|
+
assert(address(instance.getRegistry()) == address(getRegistry()));
|
212
|
+
assert(instance.getRelease() == getRelease());
|
213
|
+
|
214
|
+
// register cloned instance as staking target
|
215
|
+
_stakingService.createInstanceTarget(
|
216
|
+
instanceNftId,
|
217
|
+
TargetManagerLib.getDefaultLockingPeriod(),
|
218
|
+
TargetManagerLib.getDefaultRewardRate());
|
219
|
+
|
220
|
+
emit LogInstanceServiceInstanceCreated(
|
221
|
+
instanceNftId,
|
222
|
+
address(instance));
|
223
|
+
}
|
87
224
|
|
88
|
-
clonedInstance = Instance(Clones.clone(_masterInstance));
|
89
|
-
clonedInstance.initialize(
|
90
|
-
address(clonedOzAccessManager),
|
91
|
-
address(getRegistry()),
|
92
|
-
instanceOwner);
|
93
|
-
// initialize and set before instance reader
|
94
|
-
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
95
|
-
clonedInstanceStore.initialize(address(clonedInstance));
|
96
|
-
clonedInstance.setInstanceStore(clonedInstanceStore);
|
97
|
-
|
98
|
-
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
99
|
-
clonedInstanceReader.initialize(address(clonedInstance));
|
100
|
-
clonedInstance.setInstanceReader(clonedInstanceReader);
|
101
|
-
|
102
|
-
BundleManager clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
|
103
|
-
clonedBundleManager.initialize(address(clonedInstance));
|
104
|
-
clonedInstance.setBundleManager(clonedBundleManager);
|
105
|
-
|
106
|
-
InstanceAccessManager clonedInstanceAccessManager = InstanceAccessManager(Clones.clone(_masterInstanceAccessManager));
|
107
|
-
clonedOzAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAccessManager), 0);
|
108
|
-
clonedInstanceAccessManager.initialize(address(clonedInstance));
|
109
|
-
clonedInstance.setInstanceAccessManager(clonedInstanceAccessManager);
|
110
|
-
|
111
|
-
// TODO amend setters with instance specific , policy manager ...
|
112
|
-
|
113
|
-
// TODO library does external calls -> but it is registry and access manager -> find out is it best practice
|
114
|
-
InstanceAuthorizationsLib.grantInitialAuthorizations(
|
115
|
-
clonedInstanceAccessManager,
|
116
|
-
clonedInstance,
|
117
|
-
clonedBundleManager,
|
118
|
-
clonedInstanceStore,
|
119
|
-
instanceOwner,
|
120
|
-
getRegistry(),
|
121
|
-
getVersion().toMajorPart());
|
122
225
|
|
123
|
-
|
226
|
+
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
227
|
+
external
|
228
|
+
virtual
|
229
|
+
restricted()
|
230
|
+
onlyInstance()
|
231
|
+
{
|
232
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
233
|
+
_stakingService.setInstanceLockingPeriod(
|
234
|
+
instanceNftId,
|
235
|
+
stakeLockingPeriod);
|
236
|
+
}
|
237
|
+
|
124
238
|
|
125
|
-
|
126
|
-
|
239
|
+
function setStakingRewardRate(UFixed rewardRate)
|
240
|
+
external
|
241
|
+
virtual
|
242
|
+
restricted()
|
243
|
+
onlyInstance()
|
244
|
+
{
|
245
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
246
|
+
_stakingService.setInstanceRewardRate(
|
247
|
+
instanceNftId,
|
248
|
+
rewardRate);
|
249
|
+
}
|
127
250
|
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
251
|
+
function setStakingMaxAmount(Amount maxStakedAmount)
|
252
|
+
external
|
253
|
+
virtual
|
254
|
+
restricted()
|
255
|
+
onlyInstance()
|
256
|
+
{
|
257
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
258
|
+
_stakingService.setInstanceMaxStakedAmount(
|
259
|
+
instanceNftId,
|
260
|
+
maxStakedAmount);
|
261
|
+
}
|
262
|
+
|
263
|
+
|
264
|
+
function refillInstanceRewardReserves(address rewardProvider, Amount dipAmount)
|
265
|
+
external
|
266
|
+
virtual
|
267
|
+
restricted()
|
268
|
+
onlyInstance()
|
269
|
+
returns (Amount newBalance)
|
270
|
+
{
|
271
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
272
|
+
newBalance = _stakingService.refillInstanceRewardReserves(
|
273
|
+
instanceNftId,
|
274
|
+
rewardProvider,
|
275
|
+
dipAmount);
|
276
|
+
}
|
277
|
+
|
278
|
+
|
279
|
+
function withdrawInstanceRewardReserves(Amount dipAmount)
|
280
|
+
external
|
281
|
+
virtual
|
282
|
+
restricted()
|
283
|
+
onlyInstance()
|
284
|
+
returns (Amount newBalance)
|
285
|
+
{
|
286
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
287
|
+
newBalance = _stakingService.withdrawInstanceRewardReserves(
|
288
|
+
instanceNftId,
|
289
|
+
dipAmount);
|
136
290
|
}
|
137
291
|
|
292
|
+
|
293
|
+
function upgradeInstanceReader()
|
294
|
+
external
|
295
|
+
virtual
|
296
|
+
restricted()
|
297
|
+
onlyInstance()
|
298
|
+
{
|
299
|
+
address instanceAddress = msg.sender;
|
300
|
+
IInstance instance = IInstance(msg.sender);
|
301
|
+
|
302
|
+
InstanceReader upgradedInstanceReaderClone = InstanceReader(
|
303
|
+
Clones.clone(address(_masterInstanceReader)));
|
304
|
+
|
305
|
+
upgradedInstanceReaderClone.initializeWithInstance(instanceAddress);
|
306
|
+
instance.setInstanceReader(upgradedInstanceReaderClone);
|
307
|
+
|
308
|
+
emit LogInstanceServiceInstanceReaderUpgraded(
|
309
|
+
getRegistry().getNftIdForAddress(instanceAddress),
|
310
|
+
address(upgradedInstanceReaderClone));
|
311
|
+
}
|
312
|
+
|
313
|
+
|
138
314
|
function setAndRegisterMasterInstance(address instanceAddress)
|
139
|
-
|
140
|
-
|
141
|
-
|
315
|
+
external
|
316
|
+
virtual
|
317
|
+
onlyOwner()
|
318
|
+
returns(NftId masterInstanceNftId)
|
142
319
|
{
|
143
320
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
144
|
-
if(
|
145
|
-
if(
|
146
|
-
if(
|
147
|
-
|
321
|
+
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
322
|
+
if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
|
323
|
+
if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
|
148
324
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
149
325
|
|
150
326
|
IInstance instance = IInstance(instanceAddress);
|
151
|
-
|
152
|
-
|
327
|
+
address accessManagerAddress = instance.authority();
|
328
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
329
|
+
address instanceAdminAddress = address(instanceAdmin);
|
153
330
|
InstanceReader instanceReader = instance.getInstanceReader();
|
154
331
|
address instanceReaderAddress = address(instanceReader);
|
155
|
-
|
156
|
-
address
|
332
|
+
BundleSet bundleSet = instance.getBundleSet();
|
333
|
+
address bundleSetAddress = address(bundleSet);
|
334
|
+
RiskSet riskSet = instance.getRiskSet();
|
335
|
+
address riskSetAddress = address(riskSet);
|
157
336
|
InstanceStore instanceStore = instance.getInstanceStore();
|
158
337
|
address instanceStoreAddress = address(instanceStore);
|
159
338
|
|
160
|
-
if(
|
339
|
+
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
340
|
+
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
161
341
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
162
|
-
if(
|
342
|
+
if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
343
|
+
if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
|
163
344
|
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
164
345
|
|
165
|
-
if(instance.authority() !=
|
166
|
-
if(
|
167
|
-
if(
|
168
|
-
if(
|
346
|
+
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
347
|
+
if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
|
348
|
+
if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
|
349
|
+
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
350
|
+
if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
|
351
|
+
if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
|
169
352
|
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
170
353
|
|
171
|
-
|
172
|
-
|
354
|
+
_masterAccessManager = accessManagerAddress;
|
355
|
+
_masterInstanceAdmin = instanceAdminAddress;
|
173
356
|
_masterInstance = instanceAddress;
|
174
357
|
_masterInstanceReader = instanceReaderAddress;
|
175
|
-
|
358
|
+
_masterInstanceBundleSet = bundleSetAddress;
|
359
|
+
_masterInstanceRiskSet = riskSetAddress;
|
176
360
|
_masterInstanceStore = instanceStoreAddress;
|
177
361
|
|
178
362
|
IInstance masterInstance = IInstance(_masterInstance);
|
@@ -180,7 +364,12 @@ contract InstanceService is
|
|
180
364
|
masterInstanceNftId = info.nftId;
|
181
365
|
}
|
182
366
|
|
183
|
-
|
367
|
+
|
368
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress)
|
369
|
+
external
|
370
|
+
virtual
|
371
|
+
onlyOwner
|
372
|
+
{
|
184
373
|
if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
|
185
374
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
|
186
375
|
if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
|
@@ -189,120 +378,123 @@ contract InstanceService is
|
|
189
378
|
if(instanceReader.getInstance() != IInstance(_masterInstance)) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch(); }
|
190
379
|
|
191
380
|
_masterInstanceReader = instanceReaderAddress;
|
381
|
+
|
382
|
+
emit LogInstanceServiceMasterInstanceReaderUpgraded(
|
383
|
+
getRegistry().getNftIdForAddress(_masterInstance),
|
384
|
+
instanceReaderAddress);
|
192
385
|
}
|
193
386
|
|
194
|
-
function
|
195
|
-
|
196
|
-
onlyInstanceOwner(instanceNftId)
|
197
|
-
{
|
198
|
-
IRegistry registry = getRegistry();
|
199
|
-
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
200
|
-
Instance instance = Instance(instanceInfo.objectAddress);
|
201
|
-
|
202
|
-
InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
203
|
-
upgradedInstanceReaderClone.initialize(address(instance));
|
204
|
-
instance.setInstanceReader(upgradedInstanceReaderClone);
|
387
|
+
function getMasterInstanceReader() external virtual view returns (address) {
|
388
|
+
return _masterInstanceReader;
|
205
389
|
}
|
206
390
|
|
391
|
+
//--- internal functions --------------------------------------------------------//
|
207
392
|
|
208
|
-
|
209
|
-
function
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
RoleId[] memory roles
|
215
|
-
)
|
216
|
-
external
|
217
|
-
onlyRegisteredService
|
393
|
+
/// @dev create new cloned instance admin
|
394
|
+
/// function used to setup a new instance
|
395
|
+
function _cloneNewInstanceAdmin()
|
396
|
+
internal
|
397
|
+
virtual
|
398
|
+
returns (InstanceAdmin clonedAdmin)
|
218
399
|
{
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
// TODO restriction: gif targets are set only once and only here?
|
228
|
-
// assume config is a mix of gif and custom roles and no further configuration by INSTANCE_OWNER_ROLE is ever needed?
|
229
|
-
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++)
|
230
|
-
{
|
231
|
-
accessManager.setCoreTargetFunctionRole(targetName, selectors[roleIdx], roles[roleIdx]);
|
232
|
-
}
|
233
|
-
}
|
234
|
-
|
400
|
+
// clone instance specific access manager
|
401
|
+
AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
|
402
|
+
Clones.clone(
|
403
|
+
InstanceAdmin(_masterInstanceAdmin).authority()));
|
404
|
+
|
405
|
+
// set up the instance admin
|
406
|
+
clonedAdmin = InstanceAdmin(
|
407
|
+
Clones.clone(_masterInstanceAdmin));
|
235
408
|
|
236
|
-
|
237
|
-
|
238
|
-
|
409
|
+
clonedAdmin.initialize(
|
410
|
+
address(clonedAccessManager),
|
411
|
+
"InstanceAdmin");
|
412
|
+
}
|
239
413
|
|
240
|
-
address componentAddress = msg.sender;
|
241
|
-
IRegistry registry = getRegistry();
|
242
|
-
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
243
414
|
|
244
|
-
|
245
|
-
|
246
|
-
|
415
|
+
/// @dev create new cloned instance
|
416
|
+
/// function used to setup a new instance
|
417
|
+
function _createInstance(
|
418
|
+
InstanceAdmin instanceAdmin,
|
419
|
+
address instanceOwner,
|
420
|
+
bool allowAnyToken
|
421
|
+
)
|
422
|
+
internal
|
423
|
+
virtual
|
424
|
+
returns (IInstance)
|
425
|
+
{
|
426
|
+
// clone instance
|
427
|
+
Instance clonedInstance = Instance(Clones.clone(_masterInstance));
|
428
|
+
clonedInstance.initialize(
|
429
|
+
instanceAdmin,
|
430
|
+
InstanceStore(Clones.clone(address(_masterInstanceStore))),
|
431
|
+
BundleSet(Clones.clone(_masterInstanceBundleSet)),
|
432
|
+
RiskSet(Clones.clone(_masterInstanceRiskSet)),
|
433
|
+
InstanceReader(Clones.clone(address(_masterInstanceReader))),
|
434
|
+
getRegistry(),
|
435
|
+
getRelease(),
|
436
|
+
instanceOwner,
|
437
|
+
allowAnyToken);
|
247
438
|
|
248
|
-
|
249
|
-
componentAddress,
|
250
|
-
locked);
|
439
|
+
return clonedInstance;
|
251
440
|
}
|
252
441
|
|
253
442
|
|
254
|
-
|
255
|
-
return _masterInstanceReader;
|
256
|
-
}
|
257
|
-
|
258
|
-
// From IService
|
259
|
-
function getDomain() public pure override returns(ObjectType) {
|
260
|
-
return INSTANCE();
|
261
|
-
}
|
262
|
-
|
263
|
-
/// @dev top level initializer
|
443
|
+
/// @dev top level initializer (upgradable contract)
|
264
444
|
function _initialize(
|
265
445
|
address owner,
|
266
446
|
bytes memory data
|
267
447
|
)
|
268
448
|
internal
|
269
|
-
initializer
|
270
449
|
virtual override
|
450
|
+
initializer()
|
271
451
|
{
|
272
452
|
(
|
273
|
-
address
|
274
|
-
address
|
453
|
+
address authority,
|
454
|
+
address registry
|
275
455
|
) = abi.decode(data, (address, address));
|
276
456
|
|
277
|
-
|
278
|
-
IRegistry(registryAddress).getServiceAddress(
|
279
|
-
REGISTRY(),
|
280
|
-
getVersion().toMajorPart()));
|
457
|
+
__Service_init(authority, registry, owner);
|
281
458
|
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
459
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
460
|
+
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
461
|
+
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
462
|
+
|
463
|
+
_registerInterface(type(IInstanceService).interfaceId);
|
286
464
|
}
|
287
465
|
|
288
466
|
|
289
|
-
function
|
467
|
+
function _checkInstance(
|
468
|
+
address instanceAddress,
|
469
|
+
VersionPart expectedRelease
|
470
|
+
)
|
290
471
|
internal
|
472
|
+
virtual
|
291
473
|
view
|
292
|
-
returns (IInstance instance, NftId componentNftId)
|
293
474
|
{
|
294
475
|
IRegistry registry = getRegistry();
|
295
|
-
|
296
|
-
|
297
|
-
|
476
|
+
|
477
|
+
NftId instanceNftId = registry.getNftIdForAddress(instanceAddress);
|
478
|
+
if (instanceNftId.eqz()) {
|
479
|
+
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
298
480
|
}
|
299
481
|
|
300
|
-
|
301
|
-
if(
|
302
|
-
revert
|
482
|
+
ObjectType objectType = registry.getObjectInfo(instanceNftId).objectType;
|
483
|
+
if (objectType != INSTANCE()) {
|
484
|
+
revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
|
303
485
|
}
|
304
486
|
|
305
|
-
|
306
|
-
|
487
|
+
if (expectedRelease.gtz()) {
|
488
|
+
VersionPart instanceRelease = IInstance(instanceAddress).getRelease();
|
489
|
+
if (instanceRelease != expectedRelease) {
|
490
|
+
revert ErrorInstanceServiceInstanceVersionMismatch(instanceNftId, expectedRelease, instanceRelease);
|
491
|
+
}
|
492
|
+
}
|
493
|
+
}
|
494
|
+
|
495
|
+
|
496
|
+
// From IService
|
497
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
498
|
+
return INSTANCE();
|
307
499
|
}
|
308
500
|
}
|