@etherisc/gif-next 0.0.2-bc4f70f-636 → 0.0.2-bc7a257-709
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 +128 -9
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -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/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared/IAccessManagerExtended.sol/IAccessManagerExtended.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +507 -845
- 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 +1225 -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 +119 -605
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +510 -263
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +176 -118
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +133 -279
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +323 -66
- 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 +1461 -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 +2018 -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 +1404 -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 +1628 -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 +2405 -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 +265 -88
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +269 -111
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +278 -213
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1581 -253
- 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 +1153 -396
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +275 -274
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +104 -104
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +916 -774
- 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 +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- 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 +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- 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 +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- 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 +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +130 -136
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +81 -10
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +121 -413
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +193 -177
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +147 -93
- 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 +372 -200
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +166 -104
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +224 -34
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +128 -396
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +472 -307
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +125 -684
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +472 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +715 -541
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +189 -103
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +227 -166
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +125 -99
- 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 +454 -220
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +166 -120
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +148 -8
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +320 -15
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +377 -103
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +169 -82
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +270 -268
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +100 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +487 -292
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +727 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +162 -104
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +252 -308
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +126 -132
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +268 -567
- 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 +367 -63
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +84 -151
- 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 +599 -126
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1777 -166
- 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 +132 -278
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +111 -85
- 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 +15 -15
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +67 -277
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +529 -532
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +152 -128
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +63 -104
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +661 -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 +80 -100
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +509 -249
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +116 -133
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -3
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -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 +67 -1
- 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 +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +106 -366
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -88
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
- 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 +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
- 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 +63 -104
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
- 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 +196 -143
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +203 -29
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +280 -421
- 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 +140 -117
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +41 -73
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +259 -187
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +117 -99
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +273 -165
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +94 -48
- 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 +63 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -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 +98 -37
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +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 +23 -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 +140 -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 +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- 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 +50 -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 +23 -4
- 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 +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 +142 -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 +261 -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 +57 -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 +122 -139
- package/contracts/distribution/DistributionService.sol +221 -130
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +19 -42
- package/contracts/distribution/IDistributionService.sol +44 -22
- 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 +71 -47
- package/contracts/instance/IInstanceService.sol +47 -40
- package/contracts/instance/Instance.sol +197 -129
- package/contracts/instance/InstanceAdmin.sol +363 -244
- package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
- package/contracts/instance/InstanceReader.sol +308 -48
- package/contracts/instance/InstanceService.sol +272 -175
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +35 -18
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +14 -11
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- 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 +6 -5
- package/contracts/instance/module/IComponents.sol +30 -20
- package/contracts/instance/module/IDistribution.sol +21 -9
- package/contracts/instance/module/IPolicy.sol +50 -29
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +45 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
- package/contracts/oracle/IOracle.sol +25 -4
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +62 -53
- package/contracts/oracle/OracleService.sol +118 -85
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +173 -0
- package/contracts/pool/BasicPoolAuthorization.sol +76 -0
- package/contracts/pool/BundleService.sol +207 -108
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +31 -22
- package/contracts/pool/IPoolComponent.sol +20 -70
- package/contracts/pool/IPoolService.sol +90 -75
- package/contracts/pool/Pool.sol +207 -163
- package/contracts/pool/PoolLib.sol +309 -0
- package/contracts/pool/PoolService.sol +396 -262
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +107 -83
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +56 -0
- package/contracts/product/ClaimService.sol +378 -180
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +9 -2
- package/contracts/product/IClaimService.sol +44 -8
- package/contracts/product/IPolicyService.sol +53 -36
- package/contracts/product/IPricingService.sol +11 -10
- package/contracts/product/IProductComponent.sol +29 -9
- package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
- package/contracts/product/PolicyService.sol +441 -276
- package/contracts/product/PolicyServiceLib.sol +119 -0
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +72 -64
- package/contracts/product/PricingServiceManager.sol +6 -9
- package/contracts/product/Product.sol +230 -140
- package/contracts/product/RiskService.sol +154 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +78 -32
- package/contracts/registry/IRegistryService.sol +3 -10
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +368 -214
- package/contracts/registry/RegistryAdmin.sol +188 -167
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +46 -71
- package/contracts/registry/RegistryServiceManager.sol +5 -10
- 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 +332 -0
- package/contracts/registry/TokenRegistry.sol +12 -11
- package/contracts/shared/Component.sol +65 -136
- package/contracts/shared/ComponentService.sol +428 -385
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +29 -18
- package/contracts/shared/ContractLib.sol +347 -0
- package/contracts/shared/IComponent.sol +5 -17
- package/contracts/shared/IComponentService.sol +49 -41
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +3 -2
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +10 -5
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
- package/contracts/shared/InstanceLinkedComponent.sol +95 -45
- package/contracts/shared/KeyValueStore.sol +7 -3
- package/contracts/shared/Lifecycle.sol +30 -72
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +31 -11
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +52 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +28 -40
- package/contracts/shared/TokenHandler.sol +310 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +26 -15
- package/contracts/staking/IStakingService.sol +41 -15
- package/contracts/staking/Staking.sol +153 -158
- package/contracts/staking/StakingLib.sol +281 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +26 -33
- package/contracts/staking/StakingService.sol +143 -82
- package/contracts/staking/StakingServiceManager.sol +8 -8
- package/contracts/staking/StakingStore.sol +94 -60
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +27 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +187 -61
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +38 -6
- package/contracts/type/RoleId.sol +117 -81
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/Selector.sol +107 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +10 -5
- package/contracts/type/UFixed.sol +61 -125
- package/contracts/type/Version.sol +57 -6
- package/contracts/{shared → upgradeability}/ProxyManager.sol +82 -47
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +10 -6
- 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/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- 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 -129
- 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 -679
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -694
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
- 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/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- 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/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -444
- 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/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/instance/base/ObjectManager.sol +0 -82
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/product/ProductService.sol +0 -124
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -600
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerCustom.sol +0 -736
- package/contracts/shared/AccessManagerExtended.sol +0 -470
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- package/contracts/shared/InitializableCustom.sol +0 -177
- package/contracts/staking/StakeManagerLib.sol +0 -179
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,61 +1,44 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
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 {IComponents} from "../instance/module/IComponents.sol";
|
9
|
-
import {IPolicy} from "../instance/module/IPolicy.sol";
|
10
|
-
|
11
|
-
import {IVersionable} from "../shared/IVersionable.sol";
|
12
|
-
import {Versionable} from "../shared/Versionable.sol";
|
13
|
-
import {INftOwnable} from "../shared/INftOwnable.sol";
|
14
|
-
|
15
|
-
import {Amount, AmountLib} from "../type/Amount.sol";
|
16
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
17
|
-
import {NftId, NftIdLib} from "../type/NftId.sol";
|
18
|
-
import {ObjectType, POOL, BUNDLE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
19
|
-
import {PUBLIC_ROLE, POOL_OWNER_ROLE, POLICY_SERVICE_ROLE, RoleId} from "../type/RoleId.sol";
|
20
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
21
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
22
|
-
import {KEEP_STATE, StateId} from "../type/StateId.sol";
|
23
|
-
import {Seconds} from "../type/Seconds.sol";
|
24
|
-
import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
25
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
26
|
-
import {UFixed} from "../type/UFixed.sol";
|
27
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
28
|
-
|
29
|
-
import {IService} from "../shared/IService.sol";
|
30
|
-
import {Service} from "../shared/Service.sol";
|
31
|
-
import {BundleManager} from "../instance/BundleManager.sol";
|
32
|
-
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
33
6
|
import {IBundleService} from "./IBundleService.sol";
|
7
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
34
8
|
import {IComponentService} from "../shared/IComponentService.sol";
|
35
|
-
import {
|
9
|
+
import {IInstance} from "../instance/IInstance.sol";
|
10
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
11
|
+
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
12
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
36
13
|
import {IPoolService} from "./IPoolService.sol";
|
37
|
-
import {
|
14
|
+
import {IProductComponent} from "../product/IProductComponent.sol";
|
15
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
38
16
|
import {IStaking} from "../staking/IStaking.sol";
|
39
|
-
|
17
|
+
|
18
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
19
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
20
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
40
21
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
41
22
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
42
|
-
import {
|
43
|
-
import {
|
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";
|
44
31
|
|
45
32
|
string constant POOL_SERVICE_NAME = "PoolService";
|
46
33
|
|
34
|
+
|
47
35
|
contract PoolService is
|
48
|
-
|
36
|
+
Service,
|
49
37
|
IPoolService
|
50
38
|
{
|
51
|
-
|
52
|
-
using AmountLib for Amount;
|
53
|
-
|
39
|
+
IAccountingService private _accountingService;
|
54
40
|
IBundleService internal _bundleService;
|
55
41
|
IComponentService internal _componentService;
|
56
|
-
IInstanceService private _instanceService;
|
57
|
-
IRegistryService private _registryService;
|
58
|
-
|
59
42
|
IStaking private _staking;
|
60
43
|
|
61
44
|
function _initialize(
|
@@ -63,195 +46,324 @@ contract PoolService is
|
|
63
46
|
bytes memory data
|
64
47
|
)
|
65
48
|
internal
|
66
|
-
initializer
|
67
49
|
virtual override
|
50
|
+
initializer()
|
68
51
|
{
|
69
52
|
(
|
70
|
-
address
|
71
|
-
|
72
|
-
|
73
|
-
) = abi.decode(data, (address, address, address));
|
53
|
+
address authority,
|
54
|
+
address registry
|
55
|
+
) = abi.decode(data, (address, address));
|
74
56
|
|
75
|
-
|
57
|
+
__Service_init(authority, registry, owner);
|
76
58
|
|
77
|
-
|
59
|
+
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
78
60
|
_bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
79
|
-
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
80
61
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
81
|
-
|
82
62
|
_staking = IStaking(getRegistry().getStakingAddress());
|
83
63
|
|
84
|
-
|
85
|
-
}
|
86
|
-
|
87
|
-
function getDomain() public pure override returns(ObjectType) {
|
88
|
-
return POOL();
|
64
|
+
_registerInterface(type(IPoolService).interfaceId);
|
89
65
|
}
|
90
66
|
|
91
67
|
|
92
|
-
|
68
|
+
/// @inheritdoc IPoolService
|
69
|
+
function setMaxBalanceAmount(Amount maxBalanceAmount)
|
93
70
|
external
|
94
71
|
virtual
|
72
|
+
restricted()
|
95
73
|
{
|
96
|
-
|
97
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
74
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
98
75
|
InstanceReader instanceReader = instance.getInstanceReader();
|
76
|
+
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
99
77
|
|
100
|
-
|
101
|
-
|
102
|
-
Amount previousMaxCapitalAmount = poolInfo.maxCapitalAmount;
|
103
|
-
|
104
|
-
poolInfo.maxCapitalAmount = maxCapitalAmount;
|
78
|
+
Amount previousMaxBalanceAmount = poolInfo.maxBalanceAmount;
|
79
|
+
poolInfo.maxBalanceAmount = maxBalanceAmount;
|
105
80
|
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
106
81
|
|
107
|
-
emit
|
108
|
-
*/
|
82
|
+
emit LogPoolServiceMaxBalanceAmountUpdated(poolNftId, previousMaxBalanceAmount, maxBalanceAmount);
|
109
83
|
}
|
110
84
|
|
111
|
-
|
85
|
+
|
86
|
+
function closeBundle(NftId bundleNftId)
|
112
87
|
external
|
88
|
+
restricted()
|
113
89
|
virtual
|
114
90
|
{
|
115
|
-
(
|
116
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
91
|
+
_checkNftType(bundleNftId, BUNDLE());
|
117
92
|
|
118
|
-
|
119
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
93
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
120
94
|
|
121
|
-
//
|
122
|
-
if(poolInfo.bundleOwnerRole != PUBLIC_ROLE()) {
|
123
|
-
revert ErrorPoolServiceBundleOwnerRoleAlreadySet(poolNftId);
|
124
|
-
}
|
95
|
+
// TODO get performance fee for pool (#477)
|
125
96
|
|
126
|
-
|
127
|
-
|
97
|
+
// releasing collateral in bundle
|
98
|
+
(Amount unstakedAmount, Amount feeAmount) = _bundleService.close(instance, bundleNftId);
|
128
99
|
|
129
|
-
|
100
|
+
_accountingService.decreasePoolBalance(
|
101
|
+
instance.getInstanceStore(),
|
102
|
+
poolNftId,
|
103
|
+
unstakedAmount + feeAmount,
|
104
|
+
AmountLib.zero());
|
105
|
+
|
106
|
+
emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
|
107
|
+
|
108
|
+
if ((unstakedAmount + feeAmount).gtz()){
|
109
|
+
IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
|
110
|
+
poolComponentInfo.tokenHandler.pushToken(
|
111
|
+
getRegistry().ownerOf(bundleNftId),
|
112
|
+
unstakedAmount + feeAmount);
|
113
|
+
}
|
130
114
|
}
|
131
115
|
|
132
116
|
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
117
|
+
/// @inheritdoc IPoolService
|
118
|
+
function processFundedClaim(
|
119
|
+
NftId policyNftId,
|
120
|
+
ClaimId claimId,
|
121
|
+
Amount availableAmount
|
122
|
+
)
|
138
123
|
external
|
124
|
+
restricted()
|
139
125
|
virtual
|
140
126
|
{
|
141
|
-
(
|
127
|
+
_checkNftType(policyNftId, POLICY());
|
142
128
|
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
129
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
130
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
131
|
+
NftId productNftId = getRegistry().getParentNftId(poolNftId);
|
132
|
+
|
133
|
+
// check policy matches with calling pool
|
134
|
+
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
135
|
+
if(policyInfo.productNftId != productNftId) {
|
136
|
+
revert ErrorPoolServicePolicyPoolMismatch(
|
137
|
+
policyNftId,
|
138
|
+
policyInfo.productNftId,
|
139
|
+
productNftId);
|
140
|
+
}
|
147
141
|
|
148
|
-
|
142
|
+
emit LogPoolServiceProcessFundedClaim(policyNftId, claimId, availableAmount);
|
149
143
|
|
150
|
-
//
|
144
|
+
// callback to product component if applicable
|
145
|
+
if (instanceReader.getProductInfo(productNftId).isProcessingFundedClaims) {
|
146
|
+
address productAddress = getRegistry().getObjectAddress(productNftId);
|
147
|
+
IProductComponent(productAddress).processFundedClaim(policyNftId, claimId, availableAmount);
|
148
|
+
}
|
151
149
|
}
|
152
150
|
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
151
|
+
|
152
|
+
// function _checkAndGetPoolInfo(NftId bundleNftId)
|
153
|
+
// internal
|
154
|
+
// view
|
155
|
+
// returns (
|
156
|
+
// InstanceReader instanceReader,
|
157
|
+
// InstanceStore instanceStore,
|
158
|
+
// NftId instanceNftId,
|
159
|
+
// NftId poolNftId,
|
160
|
+
// IComponents.PoolInfo memory poolInfo
|
161
|
+
// )
|
162
|
+
// {
|
163
|
+
// _checkNftType(bundleNftId, BUNDLE());
|
164
|
+
|
165
|
+
// (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
166
|
+
// instanceReader = instance.getInstanceReader();
|
167
|
+
// instanceStore = instance.getInstanceStore();
|
168
|
+
// instanceNftId = instance.getNftId();
|
169
|
+
// poolInfo = instanceReader.getPoolInfo(poolNftId);
|
170
|
+
|
171
|
+
// if (getRegistry().getParentNftId(bundleNftId) != poolNftId) {
|
172
|
+
// revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
173
|
+
// }
|
174
|
+
// }
|
175
|
+
|
176
|
+
|
177
|
+
/// @inheritdoc IPoolService
|
178
|
+
function stake(NftId bundleNftId, Amount amount)
|
160
179
|
external
|
161
180
|
virtual
|
162
|
-
|
181
|
+
restricted()
|
182
|
+
returns(
|
183
|
+
Amount netAmount
|
184
|
+
)
|
163
185
|
{
|
164
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
165
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
166
|
-
|
167
186
|
(
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
187
|
+
InstanceReader instanceReader,
|
188
|
+
InstanceStore instanceStore,
|
189
|
+
NftId instanceNftId,
|
190
|
+
NftId poolNftId,
|
191
|
+
IComponents.PoolInfo memory poolInfo
|
192
|
+
) = PoolLib.checkAndGetPoolInfo(getRegistry(), msg.sender, bundleNftId);
|
193
|
+
|
194
|
+
{
|
195
|
+
Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
|
196
|
+
if (currentPoolBalance + amount > poolInfo.maxBalanceAmount) {
|
197
|
+
revert ErrorPoolServiceMaxBalanceAmountExceeded(poolNftId, poolInfo.maxBalanceAmount, currentPoolBalance, amount);
|
198
|
+
}
|
199
|
+
}
|
173
200
|
|
174
|
-
|
175
|
-
|
201
|
+
// calculate fees
|
202
|
+
Amount feeAmount;
|
203
|
+
(
|
204
|
+
feeAmount,
|
205
|
+
netAmount
|
206
|
+
) = PoolLib.calculateStakingAmounts(
|
207
|
+
getRegistry(),
|
208
|
+
instanceReader,
|
176
209
|
poolNftId,
|
177
|
-
|
178
|
-
fee,
|
179
|
-
stakingNetAmount,
|
180
|
-
lifetime,
|
181
|
-
filter);
|
182
|
-
|
183
|
-
// pool book keeping
|
184
|
-
_componentService.increasePoolBalance(
|
185
|
-
instance.getInstanceStore(),
|
186
|
-
poolNftId,
|
187
|
-
stakingAmount,
|
188
|
-
stakingFeeAmount);
|
210
|
+
amount);
|
189
211
|
|
190
|
-
//
|
191
|
-
|
192
|
-
|
212
|
+
// do all the book keeping
|
213
|
+
_accountingService.increasePoolBalance(
|
214
|
+
instanceStore,
|
193
215
|
poolNftId,
|
194
|
-
|
195
|
-
|
216
|
+
netAmount,
|
217
|
+
feeAmount);
|
218
|
+
|
219
|
+
_bundleService.stake(instanceReader, instanceStore, bundleNftId, netAmount);
|
220
|
+
|
221
|
+
emit LogPoolServiceBundleStaked(instanceNftId, poolNftId, bundleNftId, amount, netAmount);
|
196
222
|
|
197
|
-
|
223
|
+
// only collect staking amount when pool is not externally managed
|
224
|
+
if (!poolInfo.isExternallyManaged) {
|
225
|
+
|
226
|
+
// collect tokens from bundle owner
|
227
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
228
|
+
PoolLib.pullStakingAmount(
|
229
|
+
instanceReader,
|
230
|
+
poolNftId,
|
231
|
+
bundleOwner,
|
232
|
+
amount);
|
233
|
+
}
|
198
234
|
}
|
199
235
|
|
200
|
-
|
201
|
-
|
236
|
+
|
237
|
+
/// @inheritdoc IPoolService
|
238
|
+
function unstake(NftId bundleNftId, Amount amount)
|
239
|
+
external
|
202
240
|
virtual
|
203
|
-
|
204
|
-
returns
|
241
|
+
restricted()
|
242
|
+
returns(Amount netAmount)
|
205
243
|
{
|
206
|
-
|
207
|
-
|
244
|
+
(
|
245
|
+
InstanceReader instanceReader,
|
246
|
+
InstanceStore instanceStore,
|
247
|
+
NftId instanceNftId,
|
248
|
+
NftId poolNftId,
|
249
|
+
) = PoolLib.checkAndGetPoolInfo(getRegistry(), msg.sender, bundleNftId);
|
250
|
+
|
251
|
+
// call bundle service for bookkeeping and additional checks
|
252
|
+
Amount unstakedAmount = _bundleService.unstake(instanceStore, bundleNftId, amount);
|
253
|
+
|
254
|
+
// Important: from now on work only with unstakedAmount as it is the only reliable amount.
|
255
|
+
// if amount was max, this was set to the available amount
|
256
|
+
|
257
|
+
// TODO: handle performance fees (issue #477)
|
258
|
+
netAmount = unstakedAmount;
|
259
|
+
|
260
|
+
// update pool bookkeeping - performance fees stay in the pool, but as fees
|
261
|
+
_accountingService.decreasePoolBalance(
|
262
|
+
instanceStore,
|
263
|
+
poolNftId,
|
264
|
+
unstakedAmount,
|
265
|
+
AmountLib.zero());
|
266
|
+
|
267
|
+
|
268
|
+
emit LogPoolServiceBundleUnstaked(instanceNftId, poolNftId, bundleNftId, unstakedAmount, netAmount);
|
269
|
+
|
270
|
+
// only distribute staking amount when pool is not externally managed
|
271
|
+
if (!instanceReader.getPoolInfo(poolNftId).isExternallyManaged) {
|
272
|
+
|
273
|
+
// transfer amount to bundle owner
|
274
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
275
|
+
PoolLib.pushUnstakingAmount(
|
276
|
+
instanceReader,
|
277
|
+
poolNftId,
|
278
|
+
bundleOwner,
|
279
|
+
netAmount);
|
280
|
+
}
|
208
281
|
}
|
209
282
|
|
210
|
-
|
283
|
+
|
284
|
+
function fundPoolWallet(Amount amount)
|
211
285
|
external
|
212
286
|
virtual
|
287
|
+
restricted()
|
213
288
|
{
|
214
|
-
(
|
289
|
+
(
|
290
|
+
NftId poolNftId,
|
291
|
+
IInstance instance
|
292
|
+
) = _getAndVerifyActivePool();
|
293
|
+
|
294
|
+
// check that pool is externally managed
|
295
|
+
InstanceReader reader = instance.getInstanceReader();
|
296
|
+
if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
|
297
|
+
revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
|
298
|
+
}
|
215
299
|
|
216
|
-
|
300
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
301
|
+
emit LogPoolServiceWalletFunded(poolNftId, poolOwner, amount);
|
217
302
|
|
218
|
-
|
219
|
-
|
303
|
+
PoolLib.pullStakingAmount(
|
304
|
+
reader,
|
305
|
+
poolNftId,
|
306
|
+
poolOwner,
|
307
|
+
amount);
|
308
|
+
}
|
220
309
|
|
221
|
-
// TODO get performance fee for pool, transfer of remaining funds + bundle fees to bundle owner
|
222
310
|
|
223
|
-
|
311
|
+
function defundPoolWallet(Amount amount)
|
312
|
+
external
|
313
|
+
virtual
|
314
|
+
restricted()
|
315
|
+
{
|
316
|
+
(
|
317
|
+
NftId poolNftId,
|
318
|
+
IInstance instance
|
319
|
+
) = _getAndVerifyActivePool();
|
320
|
+
|
321
|
+
// check that pool is externally managed
|
322
|
+
InstanceReader reader = instance.getInstanceReader();
|
323
|
+
if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
|
324
|
+
revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
|
325
|
+
}
|
326
|
+
|
327
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
328
|
+
emit LogPoolServiceWalletDefunded(poolNftId, poolOwner, amount);
|
329
|
+
|
330
|
+
PoolLib.pushUnstakingAmount(
|
331
|
+
reader,
|
332
|
+
poolNftId,
|
333
|
+
poolOwner,
|
334
|
+
amount);
|
224
335
|
}
|
225
336
|
|
226
337
|
|
227
338
|
function processSale(
|
228
339
|
NftId bundleNftId,
|
229
|
-
IPolicy.
|
340
|
+
IPolicy.PremiumInfo memory premium
|
230
341
|
)
|
231
342
|
external
|
232
343
|
virtual
|
233
|
-
restricted
|
344
|
+
restricted()
|
234
345
|
{
|
346
|
+
_checkNftType(bundleNftId, BUNDLE());
|
347
|
+
|
235
348
|
IRegistry registry = getRegistry();
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
IInstance instance = IInstance(instanceObjectInfo.objectAddress);
|
349
|
+
NftId poolNftId = registry.getParentNftId(bundleNftId);
|
350
|
+
(, address instanceAddress) = ContractLib.getInfoAndInstance(registry, poolNftId, true);
|
351
|
+
IInstance instance = IInstance(instanceAddress);
|
240
352
|
|
241
|
-
Amount poolFeeAmount =
|
242
|
-
Amount bundleFeeAmount =
|
243
|
-
Amount bundleNetAmount =
|
353
|
+
Amount poolFeeAmount = premium.poolFeeFixAmount + premium.poolFeeVarAmount;
|
354
|
+
Amount bundleFeeAmount = premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
355
|
+
Amount bundleNetAmount = premium.netPremiumAmount;
|
244
356
|
|
245
357
|
InstanceStore instanceStore = instance.getInstanceStore();
|
246
|
-
|
358
|
+
_accountingService.increasePoolBalance(
|
247
359
|
instanceStore,
|
248
|
-
|
360
|
+
poolNftId,
|
249
361
|
bundleNetAmount + bundleFeeAmount,
|
250
362
|
poolFeeAmount);
|
251
363
|
|
252
|
-
|
364
|
+
_accountingService.increaseBundleBalanceForPool(
|
253
365
|
instanceStore,
|
254
|
-
|
366
|
+
bundleNftId,
|
255
367
|
bundleNetAmount,
|
256
368
|
bundleFeeAmount);
|
257
369
|
}
|
@@ -269,14 +381,22 @@ contract PoolService is
|
|
269
381
|
virtual
|
270
382
|
restricted()
|
271
383
|
returns (
|
272
|
-
Amount
|
273
|
-
Amount
|
384
|
+
Amount totalCollateralAmount,
|
385
|
+
Amount localCollateralAmount
|
274
386
|
)
|
275
387
|
{
|
388
|
+
_checkNftType(productNftId, PRODUCT());
|
389
|
+
_checkNftType(applicationNftId, POLICY());
|
390
|
+
_checkNftType(bundleNftId, BUNDLE());
|
391
|
+
|
392
|
+
NftId poolNftId;
|
393
|
+
bool poolIsVerifyingApplications;
|
276
394
|
(
|
395
|
+
poolNftId,
|
396
|
+
totalCollateralAmount,
|
277
397
|
localCollateralAmount,
|
278
|
-
|
279
|
-
) = calculateRequiredCollateral(
|
398
|
+
poolIsVerifyingApplications
|
399
|
+
) = PoolLib.calculateRequiredCollateral(
|
280
400
|
instance.getInstanceReader(),
|
281
401
|
productNftId,
|
282
402
|
sumInsuredAmount);
|
@@ -294,36 +414,127 @@ contract PoolService is
|
|
294
414
|
token,
|
295
415
|
totalCollateralAmount);
|
296
416
|
|
297
|
-
//
|
298
|
-
|
299
|
-
|
417
|
+
// pool callback when required
|
418
|
+
if (poolIsVerifyingApplications) {
|
419
|
+
IPoolComponent pool = IPoolComponent(
|
420
|
+
getRegistry().getObjectAddress(poolNftId));
|
300
421
|
|
422
|
+
pool.verifyApplication(
|
423
|
+
applicationNftId,
|
424
|
+
bundleNftId,
|
425
|
+
totalCollateralAmount);
|
426
|
+
|
427
|
+
// TODO add logging
|
301
428
|
}
|
302
|
-
}
|
303
429
|
|
430
|
+
// TODO add logging
|
431
|
+
}
|
304
432
|
|
305
|
-
function
|
306
|
-
|
307
|
-
|
433
|
+
function processPayout(
|
434
|
+
InstanceReader instanceReader,
|
435
|
+
InstanceStore instanceStore,
|
436
|
+
NftId productNftId,
|
308
437
|
NftId policyNftId,
|
309
|
-
|
310
|
-
|
438
|
+
NftId bundleNftId,
|
439
|
+
PayoutId payoutId,
|
440
|
+
Amount payoutAmount,
|
441
|
+
address payoutBeneficiary
|
311
442
|
)
|
312
443
|
external
|
313
444
|
virtual
|
314
|
-
restricted
|
445
|
+
restricted()
|
315
446
|
{
|
447
|
+
// checks
|
448
|
+
_checkNftType(policyNftId, POLICY());
|
449
|
+
|
450
|
+
// effects
|
451
|
+
NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
|
452
|
+
|
453
|
+
_accountingService.decreasePoolBalance(
|
454
|
+
instanceStore,
|
455
|
+
poolNftId,
|
456
|
+
payoutAmount,
|
457
|
+
AmountLib.zero());
|
458
|
+
|
459
|
+
_accountingService.decreaseBundleBalanceForPool(
|
460
|
+
instanceStore,
|
461
|
+
bundleNftId,
|
462
|
+
payoutAmount,
|
463
|
+
AmountLib.zero());
|
464
|
+
|
316
465
|
_bundleService.releaseCollateral(
|
317
|
-
|
466
|
+
instanceStore,
|
318
467
|
policyNftId,
|
319
|
-
|
468
|
+
bundleNftId,
|
320
469
|
payoutAmount);
|
321
470
|
|
322
471
|
// update value locked with staking service
|
472
|
+
TokenHandler poolTokenHandler = instanceReader.getTokenHandler(poolNftId);
|
473
|
+
|
323
474
|
_staking.decreaseTotalValueLocked(
|
324
|
-
|
325
|
-
|
475
|
+
instanceReader.getInstanceNftId(),
|
476
|
+
address(poolTokenHandler.TOKEN()),
|
326
477
|
payoutAmount);
|
478
|
+
|
479
|
+
// interactions
|
480
|
+
PoolLib.transferTokenAndNotifyPolicyHolder(
|
481
|
+
getRegistry(),
|
482
|
+
instanceReader,
|
483
|
+
poolTokenHandler,
|
484
|
+
productNftId,
|
485
|
+
policyNftId,
|
486
|
+
payoutId,
|
487
|
+
payoutAmount,
|
488
|
+
payoutBeneficiary);
|
489
|
+
}
|
490
|
+
|
491
|
+
|
492
|
+
/// @inheritdoc IPoolService
|
493
|
+
function withdrawBundleFees(
|
494
|
+
NftId bundleNftId,
|
495
|
+
Amount amount
|
496
|
+
)
|
497
|
+
public
|
498
|
+
virtual
|
499
|
+
restricted()
|
500
|
+
returns (Amount withdrawnAmount)
|
501
|
+
{
|
502
|
+
// checks
|
503
|
+
_checkNftType(bundleNftId, BUNDLE());
|
504
|
+
|
505
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
506
|
+
InstanceReader reader = instance.getInstanceReader();
|
507
|
+
|
508
|
+
// determine withdrawn amount
|
509
|
+
withdrawnAmount = amount;
|
510
|
+
if (withdrawnAmount.gte(AmountLib.max())) {
|
511
|
+
withdrawnAmount = reader.getFeeAmount(bundleNftId);
|
512
|
+
} else {
|
513
|
+
if (withdrawnAmount > reader.getFeeAmount(bundleNftId)) {
|
514
|
+
revert ErrorPoolServiceFeesWithdrawAmountExceedsLimit(withdrawnAmount, reader.getFeeAmount(bundleNftId));
|
515
|
+
}
|
516
|
+
}
|
517
|
+
|
518
|
+
// effects
|
519
|
+
// decrease fee counters by withdrawnAmount
|
520
|
+
{
|
521
|
+
InstanceStore store = instance.getInstanceStore();
|
522
|
+
// decrease fee amount of the bundle
|
523
|
+
_accountingService.decreaseBundleBalanceForPool(store, bundleNftId, AmountLib.zero(), withdrawnAmount);
|
524
|
+
// decrease pool balance
|
525
|
+
_accountingService.decreasePoolBalance(store, poolNftId, withdrawnAmount, AmountLib.zero());
|
526
|
+
}
|
527
|
+
|
528
|
+
// interactions
|
529
|
+
// transfer amount to bundle owner
|
530
|
+
{
|
531
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
532
|
+
TokenHandler tokenHandler = reader.getTokenHandler(poolNftId);
|
533
|
+
address token = address(tokenHandler.TOKEN());
|
534
|
+
emit LogPoolServiceFeesWithdrawn(bundleNftId, bundleOwner, token, withdrawnAmount);
|
535
|
+
|
536
|
+
tokenHandler.pushToken(bundleOwner, withdrawnAmount);
|
537
|
+
}
|
327
538
|
}
|
328
539
|
|
329
540
|
|
@@ -331,123 +542,46 @@ contract PoolService is
|
|
331
542
|
/// may only be called by the policy service for unlocked pool components
|
332
543
|
function releaseCollateral(
|
333
544
|
IInstance instance,
|
334
|
-
address token,
|
335
545
|
NftId policyNftId,
|
336
546
|
IPolicy.PolicyInfo memory policyInfo
|
337
547
|
)
|
338
548
|
external
|
339
549
|
virtual
|
340
|
-
restricted
|
550
|
+
restricted()
|
341
551
|
{
|
552
|
+
_checkNftType(policyNftId, POLICY());
|
553
|
+
|
342
554
|
Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
|
343
555
|
|
344
556
|
_bundleService.releaseCollateral(
|
345
|
-
instance,
|
557
|
+
instance.getInstanceStore(),
|
346
558
|
policyNftId,
|
347
559
|
policyInfo.bundleNftId,
|
348
560
|
remainingCollateralAmount);
|
349
561
|
|
350
|
-
_bundleService.unlinkPolicy(
|
351
|
-
instance,
|
352
|
-
policyNftId);
|
353
|
-
|
354
562
|
// update value locked with staking service
|
563
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
355
564
|
_staking.decreaseTotalValueLocked(
|
356
|
-
|
357
|
-
|
565
|
+
instanceReader.getInstanceNftId(),
|
566
|
+
address(instanceReader.getToken(policyInfo.productNftId)),
|
358
567
|
remainingCollateralAmount);
|
359
568
|
}
|
360
569
|
|
361
570
|
|
362
|
-
function
|
363
|
-
InstanceReader instanceReader,
|
364
|
-
NftId productNftId,
|
365
|
-
Amount sumInsuredAmount
|
366
|
-
)
|
367
|
-
public
|
368
|
-
view
|
369
|
-
returns(
|
370
|
-
Amount localCollateralAmount,
|
371
|
-
Amount totalCollateralAmount
|
372
|
-
)
|
373
|
-
{
|
374
|
-
NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
375
|
-
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
376
|
-
|
377
|
-
(
|
378
|
-
localCollateralAmount,
|
379
|
-
totalCollateralAmount
|
380
|
-
) = calculateRequiredCollateral(
|
381
|
-
poolInfo.collateralizationLevel,
|
382
|
-
poolInfo.retentionLevel,
|
383
|
-
sumInsuredAmount);
|
384
|
-
}
|
385
|
-
|
386
|
-
|
387
|
-
function calculateRequiredCollateral(
|
388
|
-
UFixed collateralizationLevel,
|
389
|
-
UFixed retentionLevel,
|
390
|
-
Amount sumInsuredAmount
|
391
|
-
)
|
392
|
-
public
|
393
|
-
pure
|
394
|
-
returns(
|
395
|
-
Amount localCollateralAmount,
|
396
|
-
Amount totalCollateralAmount
|
397
|
-
)
|
398
|
-
{
|
399
|
-
// TODO define if only applies to local collateral
|
400
|
-
// TODO add minimalistic implementation
|
401
|
-
|
402
|
-
// assumptions
|
403
|
-
// - collateralizationLevel == 1.0
|
404
|
-
// - retentionLevel == 1.0
|
405
|
-
localCollateralAmount = sumInsuredAmount;
|
406
|
-
totalCollateralAmount = localCollateralAmount;
|
407
|
-
}
|
408
|
-
|
409
|
-
|
410
|
-
function _processStakingFees(
|
411
|
-
Fee memory stakingFee,
|
412
|
-
Amount stakingAmount
|
413
|
-
)
|
571
|
+
function _getAndVerifyActivePool()
|
414
572
|
internal
|
415
|
-
|
573
|
+
virtual
|
574
|
+
view
|
575
|
+
returns (
|
576
|
+
NftId poolNftId,
|
577
|
+
IInstance instance
|
578
|
+
)
|
416
579
|
{
|
417
|
-
|
418
|
-
|
419
|
-
// check if any staking fees apply
|
420
|
-
if (FeeLib.gtz(stakingFee)) {
|
421
|
-
(Amount feeAmount, Amount netAmount) = FeeLib.calculateFee(stakingFee, stakingAmount);
|
422
|
-
stakingNetAmount = netAmount;
|
423
|
-
|
424
|
-
// TODO update fee balance for pool
|
425
|
-
}
|
580
|
+
return PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
426
581
|
}
|
427
582
|
|
428
583
|
|
429
|
-
|
430
|
-
|
431
|
-
function _collectStakingAmount(
|
432
|
-
InstanceReader instanceReader,
|
433
|
-
NftId poolNftId,
|
434
|
-
address bundleOwner,
|
435
|
-
Amount amount
|
436
|
-
)
|
437
|
-
internal
|
438
|
-
{
|
439
|
-
|
440
|
-
// collecting investor token
|
441
|
-
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
442
|
-
TokenHandler tokenHandler = componentInfo.tokenHandler;
|
443
|
-
address poolWallet = componentInfo.wallet;
|
444
|
-
|
445
|
-
if(amount.gtz()) {
|
446
|
-
tokenHandler.transfer(
|
447
|
-
bundleOwner,
|
448
|
-
poolWallet,
|
449
|
-
amount);
|
450
|
-
}
|
584
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
585
|
+
return POOL();
|
451
586
|
}
|
452
|
-
|
453
587
|
}
|