@etherisc/gif-next 0.0.2-eadf4ad-726 → 0.0.2-eae585a-625
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 +139 -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 +786 -533
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +239 -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/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +604 -92
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +532 -56
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +657 -257
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2284 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +837 -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 +552 -193
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +171 -94
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1548 -1017
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +1539 -0
- 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 +233 -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 +232 -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 +192 -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 +214 -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 +198 -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 +196 -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 +456 -51
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +177 -65
- 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 +962 -174
- 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 +242 -196
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +162 -90
- 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 +89 -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 +575 -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 +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2757 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +732 -108
- 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 +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +3185 -0
- 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 +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +847 -0
- 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 +818 -241
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +182 -83
- 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 +313 -216
- package/contracts/distribution/DistributionServiceManager.sol +8 -23
- 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/BaseStore.sol +93 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +128 -49
- package/contracts/instance/IInstanceService.sol +83 -37
- package/contracts/instance/Instance.sol +254 -132
- package/contracts/instance/InstanceAdmin.sol +379 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
- package/contracts/instance/InstanceReader.sol +507 -241
- package/contracts/instance/InstanceService.sol +418 -205
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +146 -89
- package/contracts/instance/ProductStore.sol +119 -0
- package/contracts/instance/RiskSet.sol +126 -0
- package/contracts/instance/TargetNames.sol +10 -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 +248 -246
- package/contracts/pool/BundleServiceManager.sol +8 -11
- 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 +477 -267
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +222 -82
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +63 -0
- package/contracts/product/ClaimService.sol +397 -214
- package/contracts/product/ClaimServiceManager.sol +6 -6
- 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 +504 -237
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +132 -102
- package/contracts/product/PricingServiceManager.sol +6 -9
- 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 +79 -40
- package/contracts/registry/IRegistry.sol +98 -34
- package/contracts/registry/IRegistryService.sol +10 -6
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +457 -192
- package/contracts/registry/RegistryAdmin.sol +191 -0
- package/contracts/registry/RegistryAuthorization.sol +336 -0
- package/contracts/registry/RegistryService.sol +77 -67
- package/contracts/registry/RegistryServiceManager.sol +6 -25
- 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 +639 -93
- 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 +15 -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 +367 -0
- package/contracts/staking/IStakingService.sol +106 -81
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +798 -0
- package/contracts/staking/StakingLib.sol +195 -0
- package/contracts/staking/StakingManager.sol +53 -0
- package/contracts/staking/StakingReader.sol +171 -0
- package/contracts/staking/StakingService.sol +208 -56
- package/contracts/staking/StakingServiceManager.sol +14 -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 -59
- 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 -81
- 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 +101 -50
- 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 -679
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -238
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -846
- 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 -598
- 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 -212
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/RegistryAccessManager.sol +0 -132
- package/contracts/registry/ReleaseManager.sol +0 -382
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
@@ -1,339 +1,562 @@
|
|
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 {
|
6
|
-
import {IInstance} from "../instance/IInstance.sol";
|
7
|
-
import {IBundle} from "../instance/module/IBundle.sol";
|
8
|
-
import {TokenHandler} from "../instance/module/ITreasury.sol";
|
4
|
+
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
5
|
+
import {IBundleService} from "./IBundleService.sol";
|
9
6
|
import {IComponents} from "../instance/module/IComponents.sol";
|
7
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
8
|
+
import {IInstance} from "../instance/IInstance.sol";
|
10
9
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
11
|
-
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
10
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
11
|
+
import {IPoolService} from "./IPoolService.sol";
|
12
|
+
import {IProductComponent} from "../product/IProductComponent.sol";
|
13
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
14
|
+
import {IStaking} from "../staking/IStaking.sol";
|
15
15
|
|
16
16
|
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";
|
17
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
18
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
36
19
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
37
|
-
import {
|
38
|
-
import {
|
20
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
21
|
+
import {KEEP_STATE} from "../type/StateId.sol";
|
22
|
+
import {NftId} from "../type/NftId.sol";
|
23
|
+
import {ObjectType, ACCOUNTING, POOL, BUNDLE, PRODUCT, POLICY, COMPONENT} from "../type/ObjectType.sol";
|
24
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
25
|
+
import {PoolLib} from "./PoolLib.sol";
|
26
|
+
import {Service} from "../shared/Service.sol";
|
27
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
39
28
|
|
40
|
-
string constant POOL_SERVICE_NAME = "PoolService";
|
41
29
|
|
42
30
|
contract PoolService is
|
43
|
-
|
31
|
+
Service,
|
44
32
|
IPoolService
|
45
33
|
{
|
46
|
-
|
47
|
-
using AmountLib for Amount;
|
48
|
-
|
34
|
+
IAccountingService private _accountingService;
|
49
35
|
IBundleService internal _bundleService;
|
36
|
+
IComponentService internal _componentService;
|
37
|
+
IStaking private _staking;
|
50
38
|
|
51
39
|
function _initialize(
|
52
40
|
address owner,
|
53
41
|
bytes memory data
|
54
42
|
)
|
55
43
|
internal
|
56
|
-
initializer
|
57
44
|
virtual override
|
45
|
+
initializer()
|
58
46
|
{
|
59
47
|
(
|
60
|
-
address
|
61
|
-
|
62
|
-
|
63
|
-
) = abi.decode(data, (address, address, address));
|
64
|
-
|
65
|
-
initializeService(registryAddress, authority, owner);
|
66
|
-
_bundleService = IBundleService(getRegistry().getServiceAddress(BUNDLE(), getVersion().toMajorPart()));
|
67
|
-
registerInterface(type(IPoolService).interfaceId);
|
68
|
-
}
|
48
|
+
address authority,
|
49
|
+
address registry
|
50
|
+
) = abi.decode(data, (address, address));
|
69
51
|
|
70
|
-
|
71
|
-
|
52
|
+
__Service_init(authority, registry, owner);
|
53
|
+
|
54
|
+
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
55
|
+
_bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
56
|
+
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
57
|
+
_staking = IStaking(getRegistry().getStakingAddress());
|
58
|
+
|
59
|
+
_registerInterface(type(IPoolService).interfaceId);
|
72
60
|
}
|
73
61
|
|
74
|
-
|
62
|
+
|
63
|
+
/// @inheritdoc IPoolService
|
64
|
+
function setMaxBalanceAmount(Amount maxBalanceAmount)
|
75
65
|
external
|
76
|
-
|
66
|
+
virtual
|
67
|
+
restricted()
|
77
68
|
{
|
78
|
-
(
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
IPoolComponent pool = IPoolComponent(poolAddress);
|
89
|
-
IRegistry.ObjectInfo memory registryInfo = getRegistryService().registerPool(pool, owner);
|
90
|
-
pool.linkToRegisteredNftId();
|
91
|
-
poolNftId = registryInfo.nftId;
|
92
|
-
|
93
|
-
// amend component info with pool specific token handler
|
94
|
-
IComponents.ComponentInfo memory componentInfo = pool.getComponentInfo();
|
95
|
-
componentInfo.tokenHandler = new TokenHandler(address(componentInfo.token));
|
96
|
-
|
97
|
-
// save amended component info with instance
|
98
|
-
instance.getInstanceStore().createPoolSetup(poolNftId, componentInfo);
|
99
|
-
|
100
|
-
bytes4[][] memory selectors = new bytes4[][](2);
|
101
|
-
selectors[0] = new bytes4[](1);
|
102
|
-
selectors[1] = new bytes4[](1);
|
103
|
-
|
104
|
-
selectors[0][0] = IPoolComponent.setFees.selector;
|
105
|
-
selectors[1][0] = IPoolComponent.verifyApplication.selector;
|
106
|
-
|
107
|
-
RoleId[] memory roles = new RoleId[](2);
|
108
|
-
roles[0] = POOL_OWNER_ROLE();
|
109
|
-
roles[1] = POLICY_SERVICE_ROLE();
|
110
|
-
|
111
|
-
getInstanceService().createGifTarget(
|
112
|
-
instanceNftId,
|
113
|
-
poolAddress,
|
114
|
-
pool.getName(),
|
115
|
-
selectors,
|
116
|
-
roles);
|
69
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
70
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
71
|
+
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
72
|
+
|
73
|
+
Amount previousMaxBalanceAmount = poolInfo.maxBalanceAmount;
|
74
|
+
poolInfo.maxBalanceAmount = maxBalanceAmount;
|
75
|
+
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
76
|
+
|
77
|
+
emit LogPoolServiceMaxBalanceAmountUpdated(poolNftId, previousMaxBalanceAmount, maxBalanceAmount);
|
117
78
|
}
|
118
79
|
|
119
80
|
|
120
|
-
function
|
81
|
+
function closeBundle(NftId bundleNftId)
|
121
82
|
external
|
83
|
+
restricted()
|
122
84
|
virtual
|
123
85
|
{
|
124
|
-
|
125
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(POOL());
|
126
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
86
|
+
_checkNftType(bundleNftId, BUNDLE());
|
127
87
|
|
128
|
-
|
129
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
130
|
-
Amount previousMaxCapitalAmount = poolInfo.maxCapitalAmount;
|
88
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
131
89
|
|
132
|
-
|
133
|
-
|
134
|
-
|
90
|
+
// TODO get performance fee for pool (#477)
|
91
|
+
|
92
|
+
// releasing collateral in bundle
|
93
|
+
(Amount unstakedAmount, Amount feeAmount) = _bundleService.close(instance, bundleNftId);
|
94
|
+
|
95
|
+
_accountingService.decreasePoolBalance(
|
96
|
+
instance.getInstanceStore(),
|
97
|
+
poolNftId,
|
98
|
+
unstakedAmount + feeAmount,
|
99
|
+
AmountLib.zero());
|
100
|
+
|
101
|
+
emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
|
135
102
|
|
136
|
-
|
137
|
-
|
103
|
+
if ((unstakedAmount + feeAmount).gtz()){
|
104
|
+
IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
|
105
|
+
poolComponentInfo.tokenHandler.pushToken(
|
106
|
+
getRegistry().ownerOf(bundleNftId),
|
107
|
+
unstakedAmount + feeAmount);
|
108
|
+
}
|
138
109
|
}
|
139
110
|
|
140
|
-
|
111
|
+
|
112
|
+
/// @inheritdoc IPoolService
|
113
|
+
function processFundedClaim(
|
114
|
+
NftId policyNftId,
|
115
|
+
ClaimId claimId,
|
116
|
+
Amount availableAmount
|
117
|
+
)
|
141
118
|
external
|
119
|
+
restricted()
|
142
120
|
virtual
|
143
121
|
{
|
144
|
-
(
|
145
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
122
|
+
_checkNftType(policyNftId, POLICY());
|
146
123
|
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
124
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
125
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
126
|
+
NftId productNftId = getRegistry().getParentNftId(poolNftId);
|
127
|
+
|
128
|
+
// check policy matches with calling pool
|
129
|
+
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
130
|
+
if(policyInfo.productNftId != productNftId) {
|
131
|
+
revert ErrorPoolServicePolicyPoolMismatch(
|
132
|
+
policyNftId,
|
133
|
+
policyInfo.productNftId,
|
134
|
+
productNftId);
|
153
135
|
}
|
154
136
|
|
155
|
-
|
156
|
-
componentInfo.data = abi.encode(poolInfo);
|
157
|
-
instance.getInstanceStore().updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
|
137
|
+
emit LogPoolServiceProcessFundedClaim(policyNftId, claimId, availableAmount);
|
158
138
|
|
159
|
-
|
139
|
+
// callback to product component if applicable
|
140
|
+
if (instanceReader.getProductInfo(productNftId).isProcessingFundedClaims) {
|
141
|
+
address productAddress = getRegistry().getObjectAddress(productNftId);
|
142
|
+
IProductComponent(productAddress).processFundedClaim(policyNftId, claimId, availableAmount);
|
143
|
+
}
|
160
144
|
}
|
161
145
|
|
162
146
|
|
163
|
-
function
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
147
|
+
// function _checkAndGetPoolInfo(NftId bundleNftId)
|
148
|
+
// internal
|
149
|
+
// view
|
150
|
+
// returns (
|
151
|
+
// InstanceReader instanceReader,
|
152
|
+
// InstanceStore instanceStore,
|
153
|
+
// NftId instanceNftId,
|
154
|
+
// NftId poolNftId,
|
155
|
+
// IComponents.PoolInfo memory poolInfo
|
156
|
+
// )
|
157
|
+
// {
|
158
|
+
// _checkNftType(bundleNftId, BUNDLE());
|
159
|
+
|
160
|
+
// (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
161
|
+
// instanceReader = instance.getInstanceReader();
|
162
|
+
// instanceStore = instance.getInstanceStore();
|
163
|
+
// instanceNftId = instance.getNftId();
|
164
|
+
// poolInfo = instanceReader.getPoolInfo(poolNftId);
|
165
|
+
|
166
|
+
// if (getRegistry().getParentNftId(bundleNftId) != poolNftId) {
|
167
|
+
// revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
168
|
+
// }
|
169
|
+
// }
|
170
|
+
|
171
|
+
|
172
|
+
/// @inheritdoc IPoolService
|
173
|
+
function stake(NftId bundleNftId, Amount amount)
|
174
|
+
external
|
169
175
|
virtual
|
176
|
+
restricted()
|
177
|
+
returns(
|
178
|
+
Amount netAmount
|
179
|
+
)
|
170
180
|
{
|
171
|
-
(
|
172
|
-
|
181
|
+
(
|
182
|
+
InstanceReader instanceReader,
|
183
|
+
InstanceStore instanceStore,
|
184
|
+
NftId instanceNftId,
|
185
|
+
NftId poolNftId,
|
186
|
+
IComponents.PoolInfo memory poolInfo
|
187
|
+
) = PoolLib.checkAndGetPoolInfo(getRegistry(), msg.sender, bundleNftId);
|
188
|
+
|
189
|
+
{
|
190
|
+
Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
|
191
|
+
if (currentPoolBalance + amount > poolInfo.maxBalanceAmount) {
|
192
|
+
revert ErrorPoolServiceMaxBalanceAmountExceeded(poolNftId, poolInfo.maxBalanceAmount, currentPoolBalance, amount);
|
193
|
+
}
|
194
|
+
}
|
195
|
+
|
196
|
+
// calculate fees
|
197
|
+
Amount feeAmount;
|
198
|
+
(
|
199
|
+
feeAmount,
|
200
|
+
netAmount
|
201
|
+
) = PoolLib.calculateStakingAmounts(
|
202
|
+
getRegistry(),
|
203
|
+
instanceReader,
|
204
|
+
poolNftId,
|
205
|
+
amount);
|
206
|
+
|
207
|
+
// do all the book keeping
|
208
|
+
_accountingService.increasePoolBalance(
|
209
|
+
instanceStore,
|
210
|
+
poolNftId,
|
211
|
+
netAmount,
|
212
|
+
feeAmount);
|
213
|
+
|
214
|
+
_bundleService.stake(instanceReader, instanceStore, bundleNftId, netAmount);
|
173
215
|
|
174
|
-
|
175
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
216
|
+
emit LogPoolServiceBundleStaked(instanceNftId, poolNftId, bundleNftId, amount, netAmount);
|
176
217
|
|
177
|
-
|
178
|
-
poolInfo.
|
179
|
-
poolInfo.performanceFee = performanceFee;
|
180
|
-
componentInfo.data = abi.encode(poolInfo);
|
181
|
-
instance.getInstanceStore().updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
|
218
|
+
// only collect staking amount when pool is not externally managed
|
219
|
+
if (!poolInfo.isExternallyManaged) {
|
182
220
|
|
183
|
-
|
221
|
+
// collect tokens from bundle owner
|
222
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
223
|
+
PoolLib.pullStakingAmount(
|
224
|
+
instanceReader,
|
225
|
+
poolNftId,
|
226
|
+
bundleOwner,
|
227
|
+
amount);
|
228
|
+
}
|
184
229
|
}
|
185
230
|
|
186
|
-
|
187
|
-
|
188
|
-
|
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
|
-
)
|
231
|
+
|
232
|
+
/// @inheritdoc IPoolService
|
233
|
+
function unstake(NftId bundleNftId, Amount amount)
|
193
234
|
external
|
194
235
|
virtual
|
195
|
-
|
236
|
+
restricted()
|
237
|
+
returns(Amount netAmount)
|
196
238
|
{
|
197
|
-
(
|
198
|
-
|
239
|
+
(
|
240
|
+
InstanceReader instanceReader,
|
241
|
+
InstanceStore instanceStore,
|
242
|
+
NftId instanceNftId,
|
243
|
+
NftId poolNftId,
|
244
|
+
) = PoolLib.checkAndGetPoolInfo(getRegistry(), msg.sender, bundleNftId);
|
199
245
|
|
200
|
-
//
|
201
|
-
|
202
|
-
Amount stakingNetAmount = _processStakingFees(componentInfo, stakingAmount);
|
246
|
+
// call bundle service for bookkeeping and additional checks
|
247
|
+
Amount unstakedAmount = _bundleService.unstake(instanceStore, bundleNftId, amount);
|
203
248
|
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
249
|
+
// Important: from now on work only with unstakedAmount as it is the only reliable amount.
|
250
|
+
// if amount was max, this was set to the available amount
|
251
|
+
|
252
|
+
// TODO: handle performance fees (issue #477)
|
253
|
+
netAmount = unstakedAmount;
|
254
|
+
|
255
|
+
// update pool bookkeeping - performance fees stay in the pool, but as fees
|
256
|
+
_accountingService.decreasePoolBalance(
|
257
|
+
instanceStore,
|
258
|
+
poolNftId,
|
259
|
+
unstakedAmount,
|
260
|
+
AmountLib.zero());
|
212
261
|
|
213
|
-
// collect tokens from bundle owner
|
214
|
-
_transferStakingAmount(componentInfo, owner, stakingAmount);
|
215
262
|
|
216
|
-
emit
|
263
|
+
emit LogPoolServiceBundleUnstaked(instanceNftId, poolNftId, bundleNftId, unstakedAmount, netAmount);
|
264
|
+
|
265
|
+
// only distribute staking amount when pool is not externally managed
|
266
|
+
if (!instanceReader.getPoolInfo(poolNftId).isExternallyManaged) {
|
267
|
+
|
268
|
+
// transfer amount to bundle owner
|
269
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
270
|
+
PoolLib.pushUnstakingAmount(
|
271
|
+
instanceReader,
|
272
|
+
poolNftId,
|
273
|
+
bundleOwner,
|
274
|
+
netAmount);
|
275
|
+
}
|
217
276
|
}
|
218
277
|
|
219
278
|
|
220
|
-
function
|
279
|
+
function fundPoolWallet(Amount amount)
|
221
280
|
external
|
222
281
|
virtual
|
282
|
+
restricted()
|
223
283
|
{
|
224
|
-
(
|
284
|
+
(
|
285
|
+
NftId poolNftId,
|
286
|
+
IInstance instance
|
287
|
+
) = _getAndVerifyActivePool();
|
288
|
+
|
289
|
+
// check that pool is externally managed
|
290
|
+
InstanceReader reader = instance.getInstanceReader();
|
291
|
+
if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
|
292
|
+
revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
|
293
|
+
}
|
225
294
|
|
226
|
-
|
295
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
296
|
+
emit LogPoolServiceWalletFunded(poolNftId, poolOwner, amount);
|
227
297
|
|
228
|
-
|
229
|
-
|
298
|
+
PoolLib.pullStakingAmount(
|
299
|
+
reader,
|
300
|
+
poolNftId,
|
301
|
+
poolOwner,
|
302
|
+
amount);
|
303
|
+
}
|
230
304
|
|
231
|
-
// TODO get performance fee for pool, transfer of remaining funds + bundle fees to bundle owner
|
232
305
|
|
233
|
-
|
306
|
+
function defundPoolWallet(Amount amount)
|
307
|
+
external
|
308
|
+
virtual
|
309
|
+
restricted()
|
310
|
+
{
|
311
|
+
(
|
312
|
+
NftId poolNftId,
|
313
|
+
IInstance instance
|
314
|
+
) = _getAndVerifyActivePool();
|
315
|
+
|
316
|
+
// check that pool is externally managed
|
317
|
+
InstanceReader reader = instance.getInstanceReader();
|
318
|
+
if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
|
319
|
+
revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
|
320
|
+
}
|
321
|
+
|
322
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
323
|
+
emit LogPoolServiceWalletDefunded(poolNftId, poolOwner, amount);
|
324
|
+
|
325
|
+
PoolLib.pushUnstakingAmount(
|
326
|
+
reader,
|
327
|
+
poolNftId,
|
328
|
+
poolOwner,
|
329
|
+
amount);
|
234
330
|
}
|
235
331
|
|
332
|
+
|
236
333
|
function processSale(
|
237
334
|
NftId bundleNftId,
|
238
|
-
IPolicy.
|
239
|
-
Amount actualAmountTransferred
|
335
|
+
IPolicy.PremiumInfo memory premium
|
240
336
|
)
|
241
337
|
external
|
242
338
|
virtual
|
243
|
-
restricted
|
339
|
+
restricted()
|
244
340
|
{
|
341
|
+
_checkNftType(bundleNftId, BUNDLE());
|
342
|
+
|
245
343
|
IRegistry registry = getRegistry();
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
IInstance instance = IInstance(instanceObjectInfo.objectAddress);
|
250
|
-
|
251
|
-
Amount poolFeeAmount = AmountLib.toAmount(premium.poolFeeFixAmount + premium.poolFeeVarAmount);
|
252
|
-
Amount bundleFeeAmount = AmountLib.toAmount(premium.bundleFeeFixAmount + premium.bundleFeeVarAmount);
|
253
|
-
Amount expectedTransferAmount = AmountLib.toAmount(premium.netPremiumAmount) + poolFeeAmount + bundleFeeAmount;
|
254
|
-
if (!(actualAmountTransferred == expectedTransferAmount)) {
|
255
|
-
revert ErrorPoolServiceInvalidTransferAmount(expectedTransferAmount, actualAmountTransferred);
|
256
|
-
}
|
257
|
-
|
258
|
-
// update pool fee balance
|
259
|
-
if (poolFeeAmount.gtz()) {
|
260
|
-
IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolObjectInfo.nftId);
|
261
|
-
poolComponentInfo.feeAmount = poolComponentInfo.feeAmount.add(poolFeeAmount);
|
262
|
-
instance.getInstanceStore().updatePoolSetup(poolObjectInfo.nftId, poolComponentInfo, KEEP_STATE());
|
263
|
-
}
|
344
|
+
NftId poolNftId = registry.getParentNftId(bundleNftId);
|
345
|
+
(, address instanceAddress) = ContractLib.getInfoAndInstance(registry, poolNftId, true);
|
346
|
+
IInstance instance = IInstance(instanceAddress);
|
264
347
|
|
265
|
-
|
266
|
-
|
267
|
-
|
348
|
+
Amount poolFeeAmount = premium.poolFeeFixAmount + premium.poolFeeVarAmount;
|
349
|
+
Amount bundleFeeAmount = premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
350
|
+
Amount bundleNetAmount = premium.netPremiumAmount;
|
351
|
+
|
352
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
353
|
+
_accountingService.increasePoolBalance(
|
354
|
+
instanceStore,
|
355
|
+
poolNftId,
|
356
|
+
bundleNetAmount + bundleFeeAmount,
|
357
|
+
poolFeeAmount);
|
358
|
+
|
359
|
+
_accountingService.increaseBundleBalanceForPool(
|
360
|
+
instanceStore,
|
361
|
+
bundleNftId,
|
362
|
+
bundleNetAmount,
|
363
|
+
bundleFeeAmount);
|
364
|
+
|
365
|
+
emit LogPoolServiceSaleProcessed(poolNftId, bundleNftId, bundleNetAmount, bundleFeeAmount, poolFeeAmount);
|
268
366
|
}
|
269
367
|
|
368
|
+
|
270
369
|
function lockCollateral(
|
271
370
|
IInstance instance,
|
371
|
+
address token,
|
272
372
|
NftId productNftId,
|
273
373
|
NftId applicationNftId,
|
274
|
-
|
275
|
-
Amount
|
374
|
+
NftId bundleNftId,
|
375
|
+
Amount sumInsuredAmount // premium amount after product and distribution fees
|
276
376
|
)
|
277
377
|
external
|
278
378
|
virtual
|
279
|
-
restricted
|
379
|
+
restricted()
|
380
|
+
returns (
|
381
|
+
Amount totalCollateralAmount,
|
382
|
+
Amount localCollateralAmount
|
383
|
+
)
|
280
384
|
{
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
// TODO move this check to application creation and don't repeat this here
|
286
|
-
// ensure that pool for bundle from application matches with pool for product of application
|
287
|
-
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
288
|
-
if(bundleInfo.poolNftId != poolNftId) {
|
289
|
-
revert ErrorPoolServiceBundlePoolMismatch(bundleInfo.poolNftId, poolNftId);
|
290
|
-
}
|
291
|
-
|
292
|
-
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
293
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
294
|
-
|
295
|
-
// TODO add correct required collateral calculation (collateralization level mibht be != 1, retention level might be < 1)
|
296
|
-
Amount collateralAmount = applicationInfo.sumInsuredAmount;
|
297
|
-
|
298
|
-
// TODO add correct net premium calculation (pool fee might be > 0)
|
299
|
-
Amount premiumAfterPoolFeeAmount = premiumAmount;
|
385
|
+
_checkNftType(productNftId, PRODUCT());
|
386
|
+
_checkNftType(applicationNftId, POLICY());
|
387
|
+
_checkNftType(bundleNftId, BUNDLE());
|
300
388
|
|
301
|
-
|
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
|
302
402
|
_bundleService.lockCollateral(
|
303
403
|
instance,
|
304
404
|
applicationNftId,
|
305
405
|
bundleNftId,
|
306
|
-
|
307
|
-
|
406
|
+
localCollateralAmount);
|
407
|
+
|
408
|
+
// update value locked with staking service
|
409
|
+
_staking.increaseTotalValueLocked(
|
410
|
+
instance.getNftId(),
|
411
|
+
token,
|
412
|
+
totalCollateralAmount);
|
413
|
+
|
414
|
+
// pool callback when required
|
415
|
+
if (poolIsVerifyingApplications) {
|
416
|
+
IPoolComponent pool = IPoolComponent(
|
417
|
+
getRegistry().getObjectAddress(poolNftId));
|
308
418
|
|
309
|
-
|
310
|
-
if(poolInfo.isVerifyingApplications) {
|
311
|
-
address poolAddress = getRegistry().getObjectInfo(poolNftId).objectAddress;
|
312
|
-
IPoolComponent(poolAddress).verifyApplication(
|
419
|
+
pool.verifyApplication(
|
313
420
|
applicationNftId,
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
421
|
+
bundleNftId,
|
422
|
+
totalCollateralAmount);
|
423
|
+
|
424
|
+
emit LogPoolServiceApplicationVerified(poolNftId, bundleNftId, applicationNftId, totalCollateralAmount);
|
318
425
|
}
|
319
|
-
}
|
320
426
|
|
427
|
+
emit LogPoolServiceCollateralLocked(
|
428
|
+
poolNftId,
|
429
|
+
bundleNftId,
|
430
|
+
applicationNftId,
|
431
|
+
totalCollateralAmount,
|
432
|
+
localCollateralAmount);
|
433
|
+
}
|
321
434
|
|
322
|
-
function
|
323
|
-
|
435
|
+
function processPayout(
|
436
|
+
InstanceReader instanceReader,
|
437
|
+
InstanceStore instanceStore,
|
438
|
+
NftId productNftId,
|
324
439
|
NftId policyNftId,
|
325
|
-
|
326
|
-
|
440
|
+
NftId bundleNftId,
|
441
|
+
PayoutId payoutId,
|
442
|
+
Amount payoutAmount,
|
443
|
+
address payoutBeneficiary
|
327
444
|
)
|
328
445
|
external
|
329
446
|
virtual
|
330
|
-
restricted
|
447
|
+
restricted()
|
448
|
+
returns (
|
449
|
+
Amount netPayoutAmount,
|
450
|
+
Amount processingFeeAmount
|
451
|
+
)
|
331
452
|
{
|
453
|
+
// checks
|
454
|
+
_checkNftType(policyNftId, POLICY());
|
455
|
+
|
456
|
+
// effects
|
457
|
+
NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
|
458
|
+
|
459
|
+
_accountingService.decreasePoolBalance(
|
460
|
+
instanceStore,
|
461
|
+
poolNftId,
|
462
|
+
payoutAmount,
|
463
|
+
AmountLib.zero());
|
464
|
+
|
465
|
+
_accountingService.decreaseBundleBalanceForPool(
|
466
|
+
instanceStore,
|
467
|
+
bundleNftId,
|
468
|
+
payoutAmount,
|
469
|
+
AmountLib.zero());
|
470
|
+
|
332
471
|
_bundleService.releaseCollateral(
|
333
|
-
|
472
|
+
instanceStore,
|
334
473
|
policyNftId,
|
335
|
-
|
474
|
+
bundleNftId,
|
336
475
|
payoutAmount);
|
476
|
+
|
477
|
+
// update value locked with staking service
|
478
|
+
TokenHandler poolTokenHandler = instanceReader.getTokenHandler(poolNftId);
|
479
|
+
|
480
|
+
_staking.decreaseTotalValueLocked(
|
481
|
+
instanceReader.getInstanceNftId(),
|
482
|
+
address(poolTokenHandler.TOKEN()),
|
483
|
+
payoutAmount);
|
484
|
+
|
485
|
+
// interactions
|
486
|
+
(netPayoutAmount, processingFeeAmount) = PoolLib.transferTokenAndNotifyPolicyHolder(
|
487
|
+
getRegistry(),
|
488
|
+
instanceReader,
|
489
|
+
poolTokenHandler,
|
490
|
+
productNftId,
|
491
|
+
policyNftId,
|
492
|
+
payoutId,
|
493
|
+
payoutAmount,
|
494
|
+
payoutBeneficiary);
|
495
|
+
|
496
|
+
if (processingFeeAmount.gtz()) {
|
497
|
+
_accountingService.increaseProductFeesForPool(
|
498
|
+
instanceStore,
|
499
|
+
productNftId,
|
500
|
+
processingFeeAmount);
|
501
|
+
}
|
502
|
+
|
503
|
+
emit LogPoolServicePayoutProcessed(
|
504
|
+
poolNftId,
|
505
|
+
bundleNftId,
|
506
|
+
policyNftId,
|
507
|
+
payoutId,
|
508
|
+
netPayoutAmount,
|
509
|
+
processingFeeAmount,
|
510
|
+
payoutBeneficiary);
|
511
|
+
}
|
512
|
+
|
513
|
+
|
514
|
+
/// @inheritdoc IPoolService
|
515
|
+
function withdrawBundleFees(
|
516
|
+
NftId bundleNftId,
|
517
|
+
Amount amount
|
518
|
+
)
|
519
|
+
public
|
520
|
+
virtual
|
521
|
+
restricted()
|
522
|
+
returns (Amount withdrawnAmount)
|
523
|
+
{
|
524
|
+
// checks
|
525
|
+
_checkNftType(bundleNftId, BUNDLE());
|
526
|
+
|
527
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
528
|
+
InstanceReader reader = instance.getInstanceReader();
|
529
|
+
|
530
|
+
// determine withdrawn amount
|
531
|
+
withdrawnAmount = amount;
|
532
|
+
if (withdrawnAmount.gte(AmountLib.max())) {
|
533
|
+
withdrawnAmount = reader.getFeeAmount(bundleNftId);
|
534
|
+
} else {
|
535
|
+
if (withdrawnAmount > reader.getFeeAmount(bundleNftId)) {
|
536
|
+
revert ErrorPoolServiceFeesWithdrawAmountExceedsLimit(withdrawnAmount, reader.getFeeAmount(bundleNftId));
|
537
|
+
}
|
538
|
+
}
|
539
|
+
|
540
|
+
// effects
|
541
|
+
// decrease fee counters by withdrawnAmount
|
542
|
+
{
|
543
|
+
InstanceStore store = instance.getInstanceStore();
|
544
|
+
// decrease fee amount of the bundle
|
545
|
+
_accountingService.decreaseBundleBalanceForPool(store, bundleNftId, AmountLib.zero(), withdrawnAmount);
|
546
|
+
// decrease pool balance
|
547
|
+
_accountingService.decreasePoolBalance(store, poolNftId, withdrawnAmount, AmountLib.zero());
|
548
|
+
}
|
549
|
+
|
550
|
+
// interactions
|
551
|
+
// transfer amount to bundle owner
|
552
|
+
{
|
553
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
554
|
+
TokenHandler tokenHandler = reader.getTokenHandler(poolNftId);
|
555
|
+
address token = address(tokenHandler.TOKEN());
|
556
|
+
emit LogPoolServiceFeesWithdrawn(bundleNftId, bundleOwner, token, withdrawnAmount);
|
557
|
+
|
558
|
+
tokenHandler.pushToken(bundleOwner, withdrawnAmount);
|
559
|
+
}
|
337
560
|
}
|
338
561
|
|
339
562
|
|
@@ -346,59 +569,46 @@ contract PoolService is
|
|
346
569
|
)
|
347
570
|
external
|
348
571
|
virtual
|
349
|
-
restricted
|
572
|
+
restricted()
|
350
573
|
{
|
574
|
+
_checkNftType(policyNftId, POLICY());
|
575
|
+
|
576
|
+
Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
|
577
|
+
|
351
578
|
_bundleService.releaseCollateral(
|
352
|
-
instance,
|
579
|
+
instance.getInstanceStore(),
|
353
580
|
policyNftId,
|
354
581
|
policyInfo.bundleNftId,
|
355
|
-
|
582
|
+
remainingCollateralAmount);
|
583
|
+
|
584
|
+
// update value locked with staking service
|
585
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
586
|
+
_staking.decreaseTotalValueLocked(
|
587
|
+
instanceReader.getInstanceNftId(),
|
588
|
+
address(instanceReader.getToken(policyInfo.productNftId)),
|
589
|
+
remainingCollateralAmount);
|
356
590
|
|
357
|
-
|
358
|
-
|
359
|
-
policyNftId
|
591
|
+
emit LogPoolServiceCollateralReleased(
|
592
|
+
policyInfo.bundleNftId,
|
593
|
+
policyNftId,
|
594
|
+
remainingCollateralAmount);
|
360
595
|
}
|
361
596
|
|
362
597
|
|
363
|
-
function
|
364
|
-
IComponents.ComponentInfo memory componentInfo,
|
365
|
-
Amount stakingAmount
|
366
|
-
)
|
598
|
+
function _getAndVerifyActivePool()
|
367
599
|
internal
|
368
|
-
|
600
|
+
virtual
|
601
|
+
view
|
602
|
+
returns (
|
603
|
+
NftId poolNftId,
|
604
|
+
IInstance instance
|
605
|
+
)
|
369
606
|
{
|
370
|
-
|
371
|
-
|
372
|
-
// check if any staking fees apply
|
373
|
-
Fee memory stakingFee = abi.decode(componentInfo.data, (IComponents.PoolInfo)).stakingFee;
|
374
|
-
if (FeeLib.gtz(stakingFee)) {
|
375
|
-
(Amount feeAmount, Amount netAmount) = FeeLib.calculateFee(stakingFee, stakingAmount);
|
376
|
-
stakingNetAmount = netAmount;
|
377
|
-
|
378
|
-
// TODO update fee balance for pool
|
379
|
-
}
|
607
|
+
return PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
380
608
|
}
|
381
609
|
|
382
610
|
|
383
|
-
|
384
|
-
|
385
|
-
function _transferStakingAmount(
|
386
|
-
IComponents.ComponentInfo memory componentInfo,
|
387
|
-
address bundleOwner,
|
388
|
-
Amount stakingAmount
|
389
|
-
)
|
390
|
-
internal
|
391
|
-
{
|
392
|
-
TokenHandler tokenHandler = componentInfo.tokenHandler;
|
393
|
-
address poolWallet = componentInfo.wallet;
|
394
|
-
|
395
|
-
if(stakingAmount.gtz()) {
|
396
|
-
tokenHandler.transfer(
|
397
|
-
bundleOwner,
|
398
|
-
poolWallet,
|
399
|
-
stakingAmount
|
400
|
-
);
|
401
|
-
}
|
611
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
612
|
+
return POOL();
|
402
613
|
}
|
403
|
-
|
404
614
|
}
|