@etherisc/gif-next 0.0.2-ff282a4-523 → 0.0.2-ffa91a6-022
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 +77 -10
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1494 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -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 +615 -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 +1224 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +382 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1209 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +644 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +152 -598
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +470 -446
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +200 -112
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +164 -335
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +340 -109
- 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 +1445 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2002 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -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 +1388 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1612 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2389 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -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 +262 -79
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +274 -88
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +278 -196
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2036 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +716 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1386 -502
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +308 -239
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +161 -83
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1417 -536
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -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 +938 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +632 -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 +753 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +854 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1231 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +644 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +333 -360
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +196 -92
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +215 -70
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +214 -423
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +509 -356
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +223 -624
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +641 -689
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +202 -102
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +205 -244
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +170 -78
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +644 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +442 -332
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +204 -104
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +155 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +327 -16
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +399 -69
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +195 -82
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +367 -231
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +100 -62
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +446 -394
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +183 -115
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +265 -318
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +193 -97
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +403 -503
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -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 +462 -56
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +251 -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 +905 -121
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2018 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +303 -245
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +159 -81
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -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 +1337 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +315 -139
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +109 -296
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1172 -247
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +816 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +485 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +597 -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 +116 -141
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1196 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +46 -14
- 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 +23 -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 +154 -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 +74 -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 +776 -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 +26 -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 +129 -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 +67 -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 +1301 -119
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +684 -62
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1567 -176
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +232 -63
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +762 -179
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +177 -73
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -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 +121 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
- 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 +39 -34
- 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 +283 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -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 +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
- 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 +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +704 -0
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +158 -0
- package/contracts/authorization/Authorization.sol +365 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/authorization/IAccessAdmin.sol +170 -0
- package/contracts/authorization/IAuthorization.sol +80 -0
- package/contracts/authorization/IServiceAuthorization.sol +40 -0
- package/contracts/authorization/ServiceAuthorization.sol +106 -0
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
- package/contracts/distribution/Distribution.sol +134 -175
- package/contracts/distribution/DistributionService.sol +233 -197
- package/contracts/distribution/DistributionServiceManager.sol +13 -25
- package/contracts/distribution/IDistributionComponent.sol +22 -50
- package/contracts/distribution/IDistributionService.sol +45 -29
- 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 +373 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +76 -48
- package/contracts/instance/IInstanceService.sol +48 -37
- package/contracts/instance/Instance.sol +195 -128
- package/contracts/instance/InstanceAdmin.sol +450 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
- package/contracts/instance/InstanceReader.sol +358 -76
- package/contracts/instance/InstanceService.sol +327 -173
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +151 -64
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +20 -0
- package/contracts/instance/base/ObjectLifecycle.sol +113 -0
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +1 -4
- package/contracts/instance/module/IComponents.sol +24 -15
- package/contracts/instance/module/IDistribution.sol +5 -3
- package/contracts/instance/module/IPolicy.sol +33 -26
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +45 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
- package/contracts/oracle/IOracle.sol +36 -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 +173 -0
- package/contracts/pool/BasicPoolAuthorization.sol +76 -0
- package/contracts/pool/BundleService.sol +237 -224
- package/contracts/pool/BundleServiceManager.sol +13 -25
- package/contracts/pool/IBundleService.sol +35 -38
- package/contracts/pool/IPoolComponent.sol +23 -75
- package/contracts/pool/IPoolService.sol +107 -56
- package/contracts/pool/Pool.sol +209 -168
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +608 -256
- package/contracts/pool/PoolServiceManager.sol +12 -24
- package/contracts/product/ApplicationService.sol +173 -85
- package/contracts/product/ApplicationServiceManager.sol +12 -9
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +56 -0
- package/contracts/product/ClaimService.sol +373 -183
- package/contracts/product/ClaimServiceManager.sol +12 -9
- package/contracts/product/IApplicationService.sol +10 -3
- package/contracts/product/IClaimService.sol +48 -6
- package/contracts/product/IPolicyService.sol +54 -39
- package/contracts/product/IPricingService.sol +14 -11
- package/contracts/product/IProductComponent.sol +31 -10
- package/contracts/product/IRiskService.sol +33 -0
- package/contracts/product/PolicyService.sol +522 -234
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +12 -27
- package/contracts/product/PricingService.sol +117 -83
- package/contracts/product/PricingServiceManager.sol +12 -24
- package/contracts/product/Product.sol +236 -148
- package/contracts/product/RiskService.sol +154 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -39
- package/contracts/registry/IRegistry.sol +90 -34
- package/contracts/registry/IRegistryService.sol +28 -35
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +444 -219
- package/contracts/registry/RegistryAdmin.sol +258 -0
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +74 -137
- package/contracts/registry/RegistryServiceManager.sol +23 -30
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +517 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +331 -0
- package/contracts/registry/TokenRegistry.sol +261 -64
- package/contracts/shared/Component.sol +122 -183
- package/contracts/shared/ComponentService.sol +655 -97
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +128 -0
- package/contracts/shared/ContractLib.sol +281 -0
- package/contracts/shared/IComponent.sol +17 -49
- package/contracts/shared/IComponentService.sol +112 -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 +3 -1
- package/contracts/shared/IPolicyHolder.sol +12 -17
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +11 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
- package/contracts/shared/InstanceLinkedComponent.sol +195 -0
- package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -74
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +33 -24
- package/contracts/shared/PolicyHolder.sol +18 -50
- package/contracts/shared/Registerable.sol +54 -23
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +33 -40
- package/contracts/shared/TokenHandler.sol +320 -13
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +166 -6
- package/contracts/staking/IStakingService.sol +107 -40
- package/contracts/staking/Staking.sol +509 -27
- package/contracts/staking/StakingLib.sol +281 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +24 -16
- package/contracts/staking/StakingReader.sol +180 -0
- package/contracts/staking/StakingService.sol +308 -48
- package/contracts/staking/StakingServiceManager.sol +12 -8
- package/contracts/staking/StakingStore.sol +606 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +44 -3
- package/contracts/type/Blocknumber.sol +26 -3
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +17 -16
- 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 +191 -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 +118 -68
- package/contracts/type/Seconds.sol +48 -1
- package/contracts/type/Selector.sol +107 -0
- package/contracts/type/StateId.sol +41 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +16 -7
- package/contracts/type/UFixed.sol +40 -121
- package/contracts/type/Version.sol +58 -7
- package/contracts/{shared → upgradeability}/ProxyManager.sol +90 -27
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- 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/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 → upgradeability}/IVersionable.sol +0 -0
@@ -1,338 +1,580 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
6
|
-
import {IInstance} from "../instance/IInstance.sol";
|
4
|
+
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
7
5
|
import {IBundle} from "../instance/module/IBundle.sol";
|
8
|
-
import {
|
6
|
+
import {IBundleService} from "./IBundleService.sol";
|
9
7
|
import {IComponents} from "../instance/module/IComponents.sol";
|
8
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
9
|
+
import {IInstance} from "../instance/IInstance.sol";
|
10
10
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
11
|
-
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
11
|
+
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
12
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
13
|
+
import {IPoolService} from "./IPoolService.sol";
|
14
|
+
import {IProductComponent} from "../product/IProductComponent.sol";
|
15
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
16
|
+
import {IStaking} from "../staking/IStaking.sol";
|
15
17
|
|
16
18
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
17
|
-
import {
|
18
|
-
import {
|
19
|
-
import {ObjectType, POOL, BUNDLE} from "../type/ObjectType.sol";
|
20
|
-
import {PUBLIC_ROLE, POOL_OWNER_ROLE, POLICY_SERVICE_ROLE, RoleId} from "../type/RoleId.sol";
|
21
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
22
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
23
|
-
import {KEEP_STATE, StateId} from "../type/StateId.sol";
|
24
|
-
import {Seconds} from "../type/Seconds.sol";
|
25
|
-
import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
26
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
27
|
-
|
28
|
-
import {IService} from "../shared/IService.sol";
|
29
|
-
import {Service} from "../shared/Service.sol";
|
30
|
-
import {BundleManager} from "../instance/BundleManager.sol";
|
31
|
-
import {ComponentService} from "../shared/ComponentService.sol";
|
32
|
-
import {IBundleService} from "./IBundleService.sol";
|
33
|
-
import {IPoolService} from "./IPoolService.sol";
|
34
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
35
|
-
import {InstanceService} from "../instance/InstanceService.sol";
|
19
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
20
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
36
21
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
37
|
-
import {
|
38
|
-
import {
|
22
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
23
|
+
import {KEEP_STATE} from "../type/StateId.sol";
|
24
|
+
import {NftId} from "../type/NftId.sol";
|
25
|
+
import {ObjectType, ACCOUNTING, POOL, BUNDLE, PRODUCT, POLICY, COMPONENT} from "../type/ObjectType.sol";
|
26
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
27
|
+
import {PoolLib} from "./PoolLib.sol";
|
28
|
+
import {Service} from "../shared/Service.sol";
|
29
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
30
|
+
import {UFixed} from "../type/UFixed.sol";
|
39
31
|
|
40
32
|
string constant POOL_SERVICE_NAME = "PoolService";
|
41
33
|
|
34
|
+
|
42
35
|
contract PoolService is
|
43
|
-
|
36
|
+
Service,
|
44
37
|
IPoolService
|
45
38
|
{
|
46
|
-
|
47
|
-
using AmountLib for Amount;
|
48
|
-
|
39
|
+
IAccountingService private _accountingService;
|
49
40
|
IBundleService internal _bundleService;
|
41
|
+
IComponentService internal _componentService;
|
42
|
+
IStaking private _staking;
|
50
43
|
|
51
44
|
function _initialize(
|
52
45
|
address owner,
|
53
46
|
bytes memory data
|
54
47
|
)
|
55
48
|
internal
|
56
|
-
initializer
|
57
49
|
virtual override
|
50
|
+
initializer()
|
58
51
|
{
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
// owner is PoolServiceManager deployer
|
64
|
-
initializeService(registryAddress, address(0), owner);
|
52
|
+
(
|
53
|
+
address authority,
|
54
|
+
address registry
|
55
|
+
) = abi.decode(data, (address, address));
|
65
56
|
|
66
|
-
|
57
|
+
__Service_init(authority, registry, owner);
|
67
58
|
|
68
|
-
|
69
|
-
|
59
|
+
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
60
|
+
_bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
61
|
+
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
62
|
+
_staking = IStaking(getRegistry().getStakingAddress());
|
70
63
|
|
71
|
-
|
72
|
-
return POOL();
|
64
|
+
_registerInterface(type(IPoolService).interfaceId);
|
73
65
|
}
|
74
66
|
|
75
|
-
|
67
|
+
|
68
|
+
/// @inheritdoc IPoolService
|
69
|
+
function setMaxBalanceAmount(Amount maxBalanceAmount)
|
76
70
|
external
|
77
|
-
|
71
|
+
virtual
|
78
72
|
{
|
79
|
-
(
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
IPoolComponent pool = IPoolComponent(poolAddress);
|
90
|
-
IRegistry.ObjectInfo memory registryInfo = getRegistryService().registerPool(pool, owner);
|
91
|
-
pool.linkToRegisteredNftId();
|
92
|
-
poolNftId = registryInfo.nftId;
|
93
|
-
|
94
|
-
// amend component info with pool specific token handler
|
95
|
-
IComponents.ComponentInfo memory componentInfo = pool.getComponentInfo();
|
96
|
-
componentInfo.tokenHandler = new TokenHandler(address(componentInfo.token));
|
97
|
-
|
98
|
-
// save amended component info with instance
|
99
|
-
instance.getInstanceStore().createPoolSetup(poolNftId, componentInfo);
|
100
|
-
|
101
|
-
bytes4[][] memory selectors = new bytes4[][](2);
|
102
|
-
selectors[0] = new bytes4[](1);
|
103
|
-
selectors[1] = new bytes4[](1);
|
104
|
-
|
105
|
-
selectors[0][0] = IPoolComponent.setFees.selector;
|
106
|
-
selectors[1][0] = IPoolComponent.verifyApplication.selector;
|
107
|
-
|
108
|
-
RoleId[] memory roles = new RoleId[](2);
|
109
|
-
roles[0] = POOL_OWNER_ROLE();
|
110
|
-
roles[1] = POLICY_SERVICE_ROLE();
|
111
|
-
|
112
|
-
getInstanceService().createGifTarget(
|
113
|
-
instanceNftId,
|
114
|
-
poolAddress,
|
115
|
-
pool.getName(),
|
116
|
-
selectors,
|
117
|
-
roles);
|
73
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
74
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
75
|
+
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
76
|
+
|
77
|
+
Amount previousMaxBalanceAmount = poolInfo.maxBalanceAmount;
|
78
|
+
poolInfo.maxBalanceAmount = maxBalanceAmount;
|
79
|
+
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
80
|
+
|
81
|
+
emit LogPoolServiceMaxBalanceAmountUpdated(poolNftId, previousMaxBalanceAmount, maxBalanceAmount);
|
118
82
|
}
|
119
83
|
|
120
84
|
|
121
|
-
function
|
85
|
+
function closeBundle(NftId bundleNftId)
|
122
86
|
external
|
123
87
|
virtual
|
124
88
|
{
|
125
|
-
(
|
126
|
-
|
89
|
+
_checkNftType(bundleNftId, BUNDLE());
|
90
|
+
|
91
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
127
92
|
|
128
|
-
|
129
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
130
|
-
Amount previousMaxCapitalAmount = poolInfo.maxCapitalAmount;
|
93
|
+
// TODO get performance fee for pool (#477)
|
131
94
|
|
132
|
-
|
133
|
-
|
134
|
-
instance.getInstanceStore().updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
|
95
|
+
// releasing collateral in bundle
|
96
|
+
(Amount unstakedAmount, Amount feeAmount) = _bundleService.close(instance, bundleNftId);
|
135
97
|
|
136
|
-
|
98
|
+
_accountingService.decreasePoolBalance(
|
99
|
+
instance.getInstanceStore(),
|
100
|
+
poolNftId,
|
101
|
+
unstakedAmount + feeAmount,
|
102
|
+
AmountLib.zero());
|
103
|
+
|
104
|
+
emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
|
105
|
+
|
106
|
+
if ((unstakedAmount + feeAmount).gtz()){
|
107
|
+
IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
|
108
|
+
poolComponentInfo.tokenHandler.pushToken(
|
109
|
+
getRegistry().ownerOf(bundleNftId),
|
110
|
+
unstakedAmount + feeAmount);
|
111
|
+
}
|
137
112
|
}
|
138
113
|
|
139
|
-
|
114
|
+
|
115
|
+
/// @inheritdoc IPoolService
|
116
|
+
function processFundedClaim(
|
117
|
+
NftId policyNftId,
|
118
|
+
ClaimId claimId,
|
119
|
+
Amount availableAmount
|
120
|
+
)
|
140
121
|
external
|
141
122
|
virtual
|
142
123
|
{
|
143
|
-
(
|
144
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
145
|
-
|
146
|
-
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
147
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
124
|
+
_checkNftType(policyNftId, POLICY());
|
148
125
|
|
149
|
-
|
150
|
-
|
151
|
-
|
126
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
127
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
128
|
+
NftId productNftId = getRegistry().getParentNftId(poolNftId);
|
129
|
+
|
130
|
+
// check policy matches with calling pool
|
131
|
+
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
132
|
+
if(policyInfo.productNftId != productNftId) {
|
133
|
+
revert ErrorPoolServicePolicyPoolMismatch(
|
134
|
+
policyNftId,
|
135
|
+
policyInfo.productNftId,
|
136
|
+
productNftId);
|
152
137
|
}
|
153
138
|
|
154
|
-
|
155
|
-
componentInfo.data = abi.encode(poolInfo);
|
156
|
-
instance.getInstanceStore().updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
|
139
|
+
emit LogPoolServiceProcessFundedClaim(policyNftId, claimId, availableAmount);
|
157
140
|
|
158
|
-
|
141
|
+
// callback to product component if applicable
|
142
|
+
if (instanceReader.getProductInfo(productNftId).isProcessingFundedClaims) {
|
143
|
+
address productAddress = getRegistry().getObjectAddress(productNftId);
|
144
|
+
IProductComponent(productAddress).processFundedClaim(policyNftId, claimId, availableAmount);
|
145
|
+
}
|
159
146
|
}
|
160
147
|
|
161
148
|
|
162
|
-
function
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
149
|
+
// function _checkAndGetPoolInfo(NftId bundleNftId)
|
150
|
+
// internal
|
151
|
+
// view
|
152
|
+
// returns (
|
153
|
+
// InstanceReader instanceReader,
|
154
|
+
// InstanceStore instanceStore,
|
155
|
+
// NftId instanceNftId,
|
156
|
+
// NftId poolNftId,
|
157
|
+
// IComponents.PoolInfo memory poolInfo
|
158
|
+
// )
|
159
|
+
// {
|
160
|
+
// _checkNftType(bundleNftId, BUNDLE());
|
161
|
+
|
162
|
+
// (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
163
|
+
// instanceReader = instance.getInstanceReader();
|
164
|
+
// instanceStore = instance.getInstanceStore();
|
165
|
+
// instanceNftId = instance.getNftId();
|
166
|
+
// poolInfo = instanceReader.getPoolInfo(poolNftId);
|
167
|
+
|
168
|
+
// if (getRegistry().getParentNftId(bundleNftId) != poolNftId) {
|
169
|
+
// revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
170
|
+
// }
|
171
|
+
// }
|
172
|
+
|
173
|
+
|
174
|
+
/// @inheritdoc IPoolService
|
175
|
+
function stake(NftId bundleNftId, Amount amount)
|
176
|
+
external
|
168
177
|
virtual
|
178
|
+
// TODO: restricted() (once #462 is done)
|
179
|
+
returns(
|
180
|
+
Amount netAmount
|
181
|
+
)
|
169
182
|
{
|
170
|
-
(
|
171
|
-
|
183
|
+
(
|
184
|
+
InstanceReader instanceReader,
|
185
|
+
InstanceStore instanceStore,
|
186
|
+
NftId instanceNftId,
|
187
|
+
NftId poolNftId,
|
188
|
+
IComponents.PoolInfo memory poolInfo
|
189
|
+
) = PoolLib.checkAndGetPoolInfo(getRegistry(), msg.sender, bundleNftId);
|
190
|
+
|
191
|
+
{
|
192
|
+
Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
|
193
|
+
if (currentPoolBalance + amount > poolInfo.maxBalanceAmount) {
|
194
|
+
revert ErrorPoolServiceMaxBalanceAmountExceeded(poolNftId, poolInfo.maxBalanceAmount, currentPoolBalance, amount);
|
195
|
+
}
|
196
|
+
}
|
197
|
+
|
198
|
+
// calculate fees
|
199
|
+
Amount feeAmount;
|
200
|
+
(
|
201
|
+
feeAmount,
|
202
|
+
netAmount
|
203
|
+
) = PoolLib.calculateStakingAmounts(
|
204
|
+
getRegistry(),
|
205
|
+
instanceReader,
|
206
|
+
poolNftId,
|
207
|
+
amount);
|
172
208
|
|
173
|
-
|
174
|
-
|
209
|
+
// do all the book keeping
|
210
|
+
_accountingService.increasePoolBalance(
|
211
|
+
instanceStore,
|
212
|
+
poolNftId,
|
213
|
+
netAmount,
|
214
|
+
feeAmount);
|
175
215
|
|
176
|
-
|
177
|
-
poolInfo.stakingFee = stakingFee;
|
178
|
-
poolInfo.performanceFee = performanceFee;
|
179
|
-
componentInfo.data = abi.encode(poolInfo);
|
180
|
-
instance.getInstanceStore().updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
|
216
|
+
_bundleService.stake(instanceReader, instanceStore, bundleNftId, netAmount);
|
181
217
|
|
182
|
-
|
218
|
+
emit LogPoolServiceBundleStaked(instanceNftId, poolNftId, bundleNftId, amount, netAmount);
|
219
|
+
|
220
|
+
// only collect staking amount when pool is not externally managed
|
221
|
+
if (!poolInfo.isExternallyManaged) {
|
222
|
+
|
223
|
+
// collect tokens from bundle owner
|
224
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
225
|
+
_pullStakingAmount(
|
226
|
+
instanceReader,
|
227
|
+
poolNftId,
|
228
|
+
bundleOwner,
|
229
|
+
amount);
|
230
|
+
}
|
183
231
|
}
|
184
232
|
|
185
233
|
|
186
|
-
|
187
|
-
|
188
|
-
Fee memory fee, // fees deducted from premium that go to bundle owner
|
189
|
-
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
190
|
-
Seconds lifetime, // initial duration for which new policies are covered
|
191
|
-
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
192
|
-
)
|
234
|
+
/// @inheritdoc IPoolService
|
235
|
+
function unstake(NftId bundleNftId, Amount amount)
|
193
236
|
external
|
194
237
|
virtual
|
195
|
-
|
238
|
+
// TODO: restricted() (once #462 is done)
|
239
|
+
returns(Amount netAmount)
|
196
240
|
{
|
197
|
-
(
|
198
|
-
|
241
|
+
(
|
242
|
+
InstanceReader instanceReader,
|
243
|
+
InstanceStore instanceStore,
|
244
|
+
NftId instanceNftId,
|
245
|
+
NftId poolNftId,
|
246
|
+
) = PoolLib.checkAndGetPoolInfo(getRegistry(), msg.sender, bundleNftId);
|
199
247
|
|
200
|
-
//
|
201
|
-
|
202
|
-
Amount stakingNetAmount = _processStakingFees(componentInfo, stakingAmount);
|
248
|
+
// call bundle service for bookkeeping and additional checks
|
249
|
+
Amount unstakedAmount = _bundleService.unstake(instanceStore, bundleNftId, amount);
|
203
250
|
|
204
|
-
|
205
|
-
|
206
|
-
poolNftId,
|
207
|
-
owner,
|
208
|
-
fee,
|
209
|
-
stakingNetAmount,
|
210
|
-
lifetime,
|
211
|
-
filter);
|
251
|
+
// Important: from now on work only with unstakedAmount as it is the only reliable amount.
|
252
|
+
// if amount was max, this was set to the available amount
|
212
253
|
|
213
|
-
//
|
214
|
-
|
254
|
+
// TODO: handle performance fees (issue #477)
|
255
|
+
netAmount = unstakedAmount;
|
215
256
|
|
216
|
-
|
257
|
+
// update pool bookkeeping - performance fees stay in the pool, but as fees
|
258
|
+
_accountingService.decreasePoolBalance(
|
259
|
+
instanceStore,
|
260
|
+
poolNftId,
|
261
|
+
unstakedAmount,
|
262
|
+
AmountLib.zero());
|
263
|
+
|
264
|
+
|
265
|
+
emit LogPoolServiceBundleUnstaked(instanceNftId, poolNftId, bundleNftId, unstakedAmount, netAmount);
|
266
|
+
|
267
|
+
// only distribute staking amount when pool is not externally managed
|
268
|
+
if (!instanceReader.getPoolInfo(poolNftId).isExternallyManaged) {
|
269
|
+
|
270
|
+
// transfer amount to bundle owner
|
271
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
272
|
+
_pushUnstakingAmount(
|
273
|
+
instanceReader,
|
274
|
+
poolNftId,
|
275
|
+
bundleOwner,
|
276
|
+
netAmount);
|
277
|
+
}
|
217
278
|
}
|
218
279
|
|
219
280
|
|
220
|
-
function
|
281
|
+
function fundPoolWallet(Amount amount)
|
221
282
|
external
|
222
283
|
virtual
|
284
|
+
// restricted()
|
223
285
|
{
|
224
|
-
(
|
286
|
+
(
|
287
|
+
NftId poolNftId,
|
288
|
+
IInstance instance
|
289
|
+
) = _getAndVerifyActivePool();
|
290
|
+
|
291
|
+
// check that pool is externally managed
|
292
|
+
InstanceReader reader = instance.getInstanceReader();
|
293
|
+
if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
|
294
|
+
revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
|
295
|
+
}
|
225
296
|
|
226
|
-
|
297
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
298
|
+
emit LogPoolServiceWalletFunded(poolNftId, poolOwner, amount);
|
227
299
|
|
228
|
-
|
229
|
-
|
300
|
+
_pullStakingAmount(
|
301
|
+
reader,
|
302
|
+
poolNftId,
|
303
|
+
poolOwner,
|
304
|
+
amount);
|
305
|
+
}
|
230
306
|
|
231
|
-
// TODO get performance fee for pool, transfer of remaining funds + bundle fees to bundle owner
|
232
307
|
|
233
|
-
|
308
|
+
function defundPoolWallet(Amount amount)
|
309
|
+
external
|
310
|
+
virtual
|
311
|
+
// restricted()
|
312
|
+
{
|
313
|
+
(
|
314
|
+
NftId poolNftId,
|
315
|
+
IInstance instance
|
316
|
+
) = _getAndVerifyActivePool();
|
317
|
+
|
318
|
+
// check that pool is externally managed
|
319
|
+
InstanceReader reader = instance.getInstanceReader();
|
320
|
+
if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
|
321
|
+
revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
|
322
|
+
}
|
323
|
+
|
324
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
325
|
+
emit LogPoolServiceWalletDefunded(poolNftId, poolOwner, amount);
|
326
|
+
|
327
|
+
_pushUnstakingAmount(
|
328
|
+
reader,
|
329
|
+
poolNftId,
|
330
|
+
poolOwner,
|
331
|
+
amount);
|
234
332
|
}
|
235
333
|
|
334
|
+
|
236
335
|
function processSale(
|
237
336
|
NftId bundleNftId,
|
238
|
-
IPolicy.
|
239
|
-
Amount actualAmountTransferred
|
337
|
+
IPolicy.PremiumInfo memory premium
|
240
338
|
)
|
241
339
|
external
|
242
340
|
virtual
|
341
|
+
restricted()
|
243
342
|
{
|
343
|
+
_checkNftType(bundleNftId, BUNDLE());
|
344
|
+
|
244
345
|
IRegistry registry = getRegistry();
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
IInstance instance = IInstance(instanceObjectInfo.objectAddress);
|
249
|
-
|
250
|
-
Amount poolFeeAmount = AmountLib.toAmount(premium.poolFeeFixAmount + premium.poolFeeVarAmount);
|
251
|
-
Amount bundleFeeAmount = AmountLib.toAmount(premium.bundleFeeFixAmount + premium.bundleFeeVarAmount);
|
252
|
-
Amount expectedTransferAmount = AmountLib.toAmount(premium.netPremiumAmount) + poolFeeAmount + bundleFeeAmount;
|
253
|
-
if (!(actualAmountTransferred == expectedTransferAmount)) {
|
254
|
-
revert ErrorPoolServiceInvalidTransferAmount(expectedTransferAmount, actualAmountTransferred);
|
255
|
-
}
|
256
|
-
|
257
|
-
// update pool fee balance
|
258
|
-
if (poolFeeAmount.gtz()) {
|
259
|
-
IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolObjectInfo.nftId);
|
260
|
-
poolComponentInfo.feeAmount = poolComponentInfo.feeAmount.add(poolFeeAmount);
|
261
|
-
instance.getInstanceStore().updatePoolSetup(poolObjectInfo.nftId, poolComponentInfo, KEEP_STATE());
|
262
|
-
}
|
346
|
+
NftId poolNftId = registry.getParentNftId(bundleNftId);
|
347
|
+
(, address instanceAddress) = ContractLib.getInfoAndInstance(registry, poolNftId, true);
|
348
|
+
IInstance instance = IInstance(instanceAddress);
|
263
349
|
|
264
|
-
|
265
|
-
|
266
|
-
|
350
|
+
Amount poolFeeAmount = premium.poolFeeFixAmount + premium.poolFeeVarAmount;
|
351
|
+
Amount bundleFeeAmount = premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
352
|
+
Amount bundleNetAmount = premium.netPremiumAmount;
|
353
|
+
|
354
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
355
|
+
_accountingService.increasePoolBalance(
|
356
|
+
instanceStore,
|
357
|
+
poolNftId,
|
358
|
+
bundleNetAmount + bundleFeeAmount,
|
359
|
+
poolFeeAmount);
|
360
|
+
|
361
|
+
_accountingService.increaseBundleBalanceForPool(
|
362
|
+
instanceStore,
|
363
|
+
bundleNftId,
|
364
|
+
bundleNetAmount,
|
365
|
+
bundleFeeAmount);
|
267
366
|
}
|
268
367
|
|
368
|
+
|
269
369
|
function lockCollateral(
|
270
370
|
IInstance instance,
|
371
|
+
address token,
|
271
372
|
NftId productNftId,
|
272
373
|
NftId applicationNftId,
|
273
|
-
|
274
|
-
Amount
|
374
|
+
NftId bundleNftId,
|
375
|
+
Amount sumInsuredAmount // premium amount after product and distribution fees
|
275
376
|
)
|
276
377
|
external
|
277
378
|
virtual
|
278
|
-
|
379
|
+
restricted()
|
380
|
+
returns (
|
381
|
+
Amount totalCollateralAmount,
|
382
|
+
Amount localCollateralAmount
|
383
|
+
)
|
279
384
|
{
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
// TODO move this check to application creation and don't repeat this here
|
285
|
-
// ensure that pool for bundle from application matches with pool for product of application
|
286
|
-
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
287
|
-
if(bundleInfo.poolNftId != poolNftId) {
|
288
|
-
revert ErrorPoolServiceBundlePoolMismatch(bundleInfo.poolNftId, poolNftId);
|
289
|
-
}
|
290
|
-
|
291
|
-
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
292
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
293
|
-
|
294
|
-
// TODO add correct required collateral calculation (collateralization level mibht be != 1, retention level might be < 1)
|
295
|
-
Amount collateralAmount = applicationInfo.sumInsuredAmount;
|
296
|
-
|
297
|
-
// TODO add correct net premium calculation (pool fee might be > 0)
|
298
|
-
Amount premiumAfterPoolFeeAmount = premiumAmount;
|
385
|
+
_checkNftType(productNftId, PRODUCT());
|
386
|
+
_checkNftType(applicationNftId, POLICY());
|
387
|
+
_checkNftType(bundleNftId, BUNDLE());
|
299
388
|
|
300
|
-
|
389
|
+
NftId poolNftId;
|
390
|
+
bool poolIsVerifyingApplications;
|
391
|
+
(
|
392
|
+
poolNftId,
|
393
|
+
totalCollateralAmount,
|
394
|
+
localCollateralAmount,
|
395
|
+
poolIsVerifyingApplications
|
396
|
+
) = PoolLib.calculateRequiredCollateral(
|
397
|
+
instance.getInstanceReader(),
|
398
|
+
productNftId,
|
399
|
+
sumInsuredAmount);
|
400
|
+
|
401
|
+
// lock collateral amount from involved bundle
|
301
402
|
_bundleService.lockCollateral(
|
302
403
|
instance,
|
303
404
|
applicationNftId,
|
304
405
|
bundleNftId,
|
305
|
-
|
306
|
-
|
406
|
+
localCollateralAmount);
|
407
|
+
|
408
|
+
// update value locked with staking service
|
409
|
+
_staking.increaseTotalValueLocked(
|
410
|
+
instance.getNftId(),
|
411
|
+
token,
|
412
|
+
totalCollateralAmount);
|
307
413
|
|
308
|
-
//
|
309
|
-
if(
|
310
|
-
|
311
|
-
|
414
|
+
// pool callback when required
|
415
|
+
if (poolIsVerifyingApplications) {
|
416
|
+
IPoolComponent pool = IPoolComponent(
|
417
|
+
getRegistry().getObjectAddress(poolNftId));
|
418
|
+
|
419
|
+
pool.verifyApplication(
|
312
420
|
applicationNftId,
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
421
|
+
bundleNftId,
|
422
|
+
totalCollateralAmount);
|
423
|
+
|
424
|
+
// TODO add logging
|
317
425
|
}
|
318
|
-
}
|
319
426
|
|
427
|
+
// TODO add logging
|
428
|
+
}
|
320
429
|
|
321
|
-
function
|
322
|
-
|
430
|
+
function processPayout(
|
431
|
+
InstanceReader instanceReader,
|
432
|
+
InstanceStore instanceStore,
|
433
|
+
NftId productNftId,
|
323
434
|
NftId policyNftId,
|
324
|
-
|
325
|
-
|
435
|
+
NftId bundleNftId,
|
436
|
+
PayoutId payoutId,
|
437
|
+
Amount payoutAmount,
|
438
|
+
address payoutBeneficiary
|
326
439
|
)
|
327
440
|
external
|
328
441
|
virtual
|
329
|
-
|
442
|
+
restricted()
|
330
443
|
{
|
444
|
+
// checks
|
445
|
+
_checkNftType(policyNftId, POLICY());
|
446
|
+
|
447
|
+
// effects
|
448
|
+
NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
|
449
|
+
|
450
|
+
_accountingService.decreasePoolBalance(
|
451
|
+
instanceStore,
|
452
|
+
poolNftId,
|
453
|
+
payoutAmount,
|
454
|
+
AmountLib.zero());
|
455
|
+
|
456
|
+
_accountingService.decreaseBundleBalanceForPool(
|
457
|
+
instanceStore,
|
458
|
+
bundleNftId,
|
459
|
+
payoutAmount,
|
460
|
+
AmountLib.zero());
|
461
|
+
|
331
462
|
_bundleService.releaseCollateral(
|
332
|
-
|
463
|
+
instanceStore,
|
333
464
|
policyNftId,
|
334
|
-
|
465
|
+
bundleNftId,
|
335
466
|
payoutAmount);
|
467
|
+
|
468
|
+
// update value locked with staking service
|
469
|
+
TokenHandler poolTokenHandler = instanceReader.getTokenHandler(poolNftId);
|
470
|
+
|
471
|
+
_staking.decreaseTotalValueLocked(
|
472
|
+
instanceReader.getInstanceNftId(),
|
473
|
+
address(poolTokenHandler.TOKEN()),
|
474
|
+
payoutAmount);
|
475
|
+
|
476
|
+
// interactions
|
477
|
+
_transferTokenAndNotifyPolicyHolder(
|
478
|
+
instanceReader,
|
479
|
+
poolTokenHandler,
|
480
|
+
productNftId,
|
481
|
+
policyNftId,
|
482
|
+
payoutId,
|
483
|
+
payoutAmount,
|
484
|
+
payoutBeneficiary);
|
485
|
+
}
|
486
|
+
|
487
|
+
function _transferTokenAndNotifyPolicyHolder(
|
488
|
+
InstanceReader instanceReader,
|
489
|
+
TokenHandler poolTokenHandler,
|
490
|
+
NftId productNftId,
|
491
|
+
NftId policyNftId,
|
492
|
+
PayoutId payoutId,
|
493
|
+
Amount payoutAmount,
|
494
|
+
address payoutBeneficiary
|
495
|
+
)
|
496
|
+
internal
|
497
|
+
{
|
498
|
+
(
|
499
|
+
Amount netPayoutAmount,
|
500
|
+
Amount processingFeeAmount,
|
501
|
+
address beneficiary
|
502
|
+
) = PoolLib.calculatePayoutAmounts(
|
503
|
+
getRegistry(),
|
504
|
+
instanceReader,
|
505
|
+
productNftId,
|
506
|
+
policyNftId,
|
507
|
+
payoutAmount,
|
508
|
+
payoutBeneficiary);
|
509
|
+
|
510
|
+
// 1st token tx to payout to beneficiary
|
511
|
+
poolTokenHandler.pushToken(
|
512
|
+
beneficiary,
|
513
|
+
netPayoutAmount);
|
514
|
+
|
515
|
+
// 2nd token tx to transfer processing fees to product wallet
|
516
|
+
// if processingFeeAmount > 0
|
517
|
+
if (processingFeeAmount.gtz()) {
|
518
|
+
poolTokenHandler.pushToken(
|
519
|
+
instanceReader.getWallet(productNftId),
|
520
|
+
processingFeeAmount);
|
521
|
+
}
|
522
|
+
|
523
|
+
// callback to policy holder if applicable
|
524
|
+
_policyHolderPayoutExecuted(
|
525
|
+
policyNftId,
|
526
|
+
payoutId,
|
527
|
+
beneficiary,
|
528
|
+
netPayoutAmount);
|
529
|
+
}
|
530
|
+
|
531
|
+
|
532
|
+
/// @inheritdoc IPoolService
|
533
|
+
function withdrawBundleFees(
|
534
|
+
NftId bundleNftId,
|
535
|
+
Amount amount
|
536
|
+
)
|
537
|
+
public
|
538
|
+
virtual
|
539
|
+
restricted()
|
540
|
+
returns (Amount withdrawnAmount)
|
541
|
+
{
|
542
|
+
// checks
|
543
|
+
_checkNftType(bundleNftId, BUNDLE());
|
544
|
+
|
545
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
546
|
+
InstanceReader reader = instance.getInstanceReader();
|
547
|
+
|
548
|
+
// determine withdrawn amount
|
549
|
+
withdrawnAmount = amount;
|
550
|
+
if (withdrawnAmount.gte(AmountLib.max())) {
|
551
|
+
withdrawnAmount = reader.getFeeAmount(bundleNftId);
|
552
|
+
} else {
|
553
|
+
if (withdrawnAmount > reader.getFeeAmount(bundleNftId)) {
|
554
|
+
revert ErrorPoolServiceFeesWithdrawAmountExceedsLimit(withdrawnAmount, reader.getFeeAmount(bundleNftId));
|
555
|
+
}
|
556
|
+
}
|
557
|
+
|
558
|
+
// effects
|
559
|
+
// decrease fee counters by withdrawnAmount
|
560
|
+
{
|
561
|
+
InstanceStore store = instance.getInstanceStore();
|
562
|
+
// decrease fee amount of the bundle
|
563
|
+
_accountingService.decreaseBundleBalanceForPool(store, bundleNftId, AmountLib.zero(), withdrawnAmount);
|
564
|
+
// decrease pool balance
|
565
|
+
_accountingService.decreasePoolBalance(store, poolNftId, withdrawnAmount, AmountLib.zero());
|
566
|
+
}
|
567
|
+
|
568
|
+
// interactions
|
569
|
+
// transfer amount to bundle owner
|
570
|
+
{
|
571
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
572
|
+
TokenHandler tokenHandler = reader.getTokenHandler(poolNftId);
|
573
|
+
address token = address(tokenHandler.TOKEN());
|
574
|
+
emit LogPoolServiceFeesWithdrawn(bundleNftId, bundleOwner, token, withdrawnAmount);
|
575
|
+
|
576
|
+
tokenHandler.pushToken(bundleOwner, withdrawnAmount);
|
577
|
+
}
|
336
578
|
}
|
337
579
|
|
338
580
|
|
@@ -345,59 +587,169 @@ contract PoolService is
|
|
345
587
|
)
|
346
588
|
external
|
347
589
|
virtual
|
348
|
-
|
590
|
+
restricted()
|
349
591
|
{
|
592
|
+
_checkNftType(policyNftId, POLICY());
|
593
|
+
|
594
|
+
Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
|
595
|
+
|
350
596
|
_bundleService.releaseCollateral(
|
351
|
-
instance,
|
597
|
+
instance.getInstanceStore(),
|
352
598
|
policyNftId,
|
353
599
|
policyInfo.bundleNftId,
|
354
|
-
|
600
|
+
remainingCollateralAmount);
|
355
601
|
|
356
|
-
|
357
|
-
|
358
|
-
|
602
|
+
// update value locked with staking service
|
603
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
604
|
+
_staking.decreaseTotalValueLocked(
|
605
|
+
instanceReader.getInstanceNftId(),
|
606
|
+
address(instanceReader.getToken(policyInfo.productNftId)),
|
607
|
+
remainingCollateralAmount);
|
359
608
|
}
|
360
609
|
|
361
610
|
|
362
|
-
function
|
363
|
-
|
364
|
-
|
611
|
+
// function calculateRequiredCollateral(
|
612
|
+
// InstanceReader instanceReader,
|
613
|
+
// NftId productNftId,
|
614
|
+
// Amount sumInsuredAmount
|
615
|
+
// )
|
616
|
+
// public
|
617
|
+
// view
|
618
|
+
// returns(
|
619
|
+
// NftId poolNftId,
|
620
|
+
// Amount totalCollateralAmount,
|
621
|
+
// Amount localCollateralAmount,
|
622
|
+
// bool poolIsVerifyingApplications
|
623
|
+
// )
|
624
|
+
// {
|
625
|
+
// return CollateralLib.calculateRequiredCollateral(
|
626
|
+
// instanceReader,
|
627
|
+
// productNftId,
|
628
|
+
// sumInsuredAmount);
|
629
|
+
// }
|
630
|
+
|
631
|
+
// _checkNftType(productNftId, PRODUCT());
|
632
|
+
|
633
|
+
// poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
634
|
+
// IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
635
|
+
// poolIsVerifyingApplications = poolInfo.isVerifyingApplications;
|
636
|
+
|
637
|
+
// (
|
638
|
+
// totalCollateralAmount,
|
639
|
+
// localCollateralAmount
|
640
|
+
// ) = calculateRequiredCollateral(
|
641
|
+
// poolInfo.collateralizationLevel,
|
642
|
+
// poolInfo.retentionLevel,
|
643
|
+
// sumInsuredAmount);
|
644
|
+
// }
|
645
|
+
|
646
|
+
|
647
|
+
// function calculateRequiredCollateral(
|
648
|
+
// UFixed collateralizationLevel,
|
649
|
+
// UFixed retentionLevel,
|
650
|
+
// Amount sumInsuredAmount
|
651
|
+
// )
|
652
|
+
// public
|
653
|
+
// pure
|
654
|
+
// returns(
|
655
|
+
// Amount totalCollateralAmount,
|
656
|
+
// Amount localCollateralAmount
|
657
|
+
// )
|
658
|
+
// {
|
659
|
+
// // collateralization is applied to sum insured
|
660
|
+
// UFixed totalUFixed = collateralizationLevel * sumInsuredAmount.toUFixed();
|
661
|
+
// totalCollateralAmount = AmountLib.toAmount(totalUFixed.toInt());
|
662
|
+
|
663
|
+
// // retention level defines how much capital is required locally
|
664
|
+
// localCollateralAmount = AmountLib.toAmount(
|
665
|
+
// (retentionLevel * totalUFixed).toInt());
|
666
|
+
// }
|
667
|
+
|
668
|
+
|
669
|
+
|
670
|
+
|
671
|
+
function _policyHolderPayoutExecuted(
|
672
|
+
NftId policyNftId,
|
673
|
+
PayoutId payoutId,
|
674
|
+
address beneficiary,
|
675
|
+
Amount payoutAmount
|
365
676
|
)
|
366
677
|
internal
|
367
|
-
returns (Amount stakingNetAmount)
|
368
678
|
{
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
Fee memory stakingFee = abi.decode(componentInfo.data, (IComponents.PoolInfo)).stakingFee;
|
373
|
-
if (FeeLib.gtz(stakingFee)) {
|
374
|
-
(Amount feeAmount, Amount netAmount) = FeeLib.calculateFee(stakingFee, stakingAmount);
|
375
|
-
stakingNetAmount = netAmount;
|
376
|
-
|
377
|
-
// TODO update fee balance for pool
|
679
|
+
IPolicyHolder policyHolder = PoolLib.getPolicyHolder(getRegistry(), policyNftId);
|
680
|
+
if(address(policyHolder) != address(0)) {
|
681
|
+
policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
|
378
682
|
}
|
379
683
|
}
|
380
684
|
|
381
685
|
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
address
|
387
|
-
Amount
|
686
|
+
/// @dev Transfers the specified amount from the "from account" to the pool's wallet
|
687
|
+
function _pullStakingAmount(
|
688
|
+
InstanceReader reader,
|
689
|
+
NftId poolNftId,
|
690
|
+
address from,
|
691
|
+
Amount amount
|
388
692
|
)
|
389
693
|
internal
|
390
694
|
{
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
tokenHandler.transfer(
|
396
|
-
bundleOwner,
|
397
|
-
poolWallet,
|
398
|
-
stakingAmount
|
399
|
-
);
|
400
|
-
}
|
695
|
+
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
696
|
+
info.tokenHandler.pullToken(
|
697
|
+
from,
|
698
|
+
amount);
|
401
699
|
}
|
402
700
|
|
701
|
+
/// @dev Transfers the specified amount from the pool's wallet to the "to account"
|
702
|
+
function _pushUnstakingAmount(
|
703
|
+
InstanceReader reader,
|
704
|
+
NftId poolNftId,
|
705
|
+
address to,
|
706
|
+
Amount amount
|
707
|
+
)
|
708
|
+
internal
|
709
|
+
{
|
710
|
+
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
711
|
+
info.tokenHandler.pushToken(
|
712
|
+
to,
|
713
|
+
amount);
|
714
|
+
}
|
715
|
+
|
716
|
+
|
717
|
+
function _getAndVerifyActivePool()
|
718
|
+
internal
|
719
|
+
virtual
|
720
|
+
view
|
721
|
+
returns (
|
722
|
+
NftId poolNftId,
|
723
|
+
IInstance instance
|
724
|
+
)
|
725
|
+
{
|
726
|
+
return PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
727
|
+
}
|
728
|
+
|
729
|
+
// function _getAndVerifyActivePool()
|
730
|
+
// internal
|
731
|
+
// virtual
|
732
|
+
// view
|
733
|
+
// returns (
|
734
|
+
// NftId poolNftId,
|
735
|
+
// IInstance instance
|
736
|
+
// )
|
737
|
+
// {
|
738
|
+
// (
|
739
|
+
// IRegistry.ObjectInfo memory info,
|
740
|
+
// address instanceAddress
|
741
|
+
// ) = ContractLib.getAndVerifyComponent(
|
742
|
+
// getRegistry(),
|
743
|
+
// msg.sender,
|
744
|
+
// POOL(),
|
745
|
+
// true); // only active pools
|
746
|
+
|
747
|
+
// poolNftId = info.nftId;
|
748
|
+
// instance = IInstance(instanceAddress);
|
749
|
+
// }
|
750
|
+
|
751
|
+
|
752
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
753
|
+
return POOL();
|
754
|
+
}
|
403
755
|
}
|