@etherisc/gif-next 0.0.2-d67ce7f-686 → 0.0.2-d6a50e7-658
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 +32 -8
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +158 -70
- 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/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +97 -37
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +175 -371
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +115 -295
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +239 -295
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -119
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +115 -143
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +127 -64
- 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 +1475 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -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 +1479 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2408 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +130 -61
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +165 -157
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +317 -143
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -85
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +927 -262
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +131 -266
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +102 -92
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +692 -443
- 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/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- 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/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +127 -323
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +102 -130
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +103 -283
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +125 -305
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +170 -337
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -133
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +86 -67
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +124 -163
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +303 -207
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +122 -313
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +384 -410
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +122 -104
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +134 -184
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +91 -93
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +238 -357
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +421 -222
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +142 -108
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +94 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +303 -9
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +302 -150
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +235 -202
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +57 -4
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +347 -378
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +115 -109
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +227 -314
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +236 -355
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -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 +315 -34
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
- 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 +521 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +275 -160
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +412 -246
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +89 -240
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +502 -617
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +137 -133
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -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 +89 -88
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +448 -260
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +102 -130
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- 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 +55 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +102 -282
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +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 +57 -111
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +674 -49
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -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 +134 -125
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -23
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +64 -94
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +217 -359
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +119 -104
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +100 -171
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -84
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +149 -108
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +55 -24
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +33 -9
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- 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 +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
- 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 +2 -2
- 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 +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +118 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +3 -3
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
- 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 +47 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +192 -124
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +111 -40
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +10 -6
- package/contracts/authorization/IAuthorization.sol +13 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +8 -7
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +33 -41
- package/contracts/distribution/DistributionService.sol +112 -91
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +14 -11
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +90 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +438 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +16 -36
- package/contracts/instance/IInstanceService.sol +9 -29
- package/contracts/instance/Instance.sol +47 -66
- package/contracts/instance/InstanceAdmin.sol +133 -73
- package/contracts/instance/InstanceAuthorizationV3.sol +55 -34
- package/contracts/instance/InstanceReader.sol +218 -27
- package/contracts/instance/InstanceService.sol +125 -164
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +23 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +10 -1
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +14 -10
- package/contracts/instance/module/IPolicy.sol +25 -24
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +7 -17
- package/contracts/oracle/OracleService.sol +113 -81
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +35 -26
- package/contracts/pool/BasicPoolAuthorization.sol +14 -4
- package/contracts/pool/BundleService.sol +105 -117
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +8 -20
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +52 -48
- package/contracts/pool/Pool.sol +145 -128
- package/contracts/pool/PoolService.sol +297 -207
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +72 -43
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +11 -12
- package/contracts/product/BasicProductAuthorization.sol +1 -3
- package/contracts/product/ClaimService.sol +422 -138
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +6 -2
- package/contracts/product/IClaimService.sol +43 -7
- package/contracts/product/IPolicyService.sol +42 -37
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +27 -5
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +477 -283
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +66 -62
- package/contracts/product/PricingServiceManager.sol +4 -4
- package/contracts/product/Product.sol +143 -91
- package/contracts/product/RiskService.sol +151 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +58 -28
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +353 -203
- package/contracts/registry/RegistryAdmin.sol +161 -182
- package/contracts/registry/RegistryService.sol +37 -48
- package/contracts/registry/RegistryServiceManager.sol +3 -3
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +258 -232
- package/contracts/registry/ServiceAuthorizationV3.sol +94 -52
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +72 -127
- package/contracts/shared/ComponentService.sol +427 -377
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +28 -17
- package/contracts/shared/ContractLib.sol +252 -0
- package/contracts/shared/IComponent.sol +8 -18
- package/contracts/shared/IComponentService.sol +45 -37
- package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
- package/contracts/shared/ILifecycle.sol +3 -1
- 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 +3 -5
- package/contracts/shared/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +72 -47
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +29 -9
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +55 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +15 -32
- package/contracts/shared/TokenHandler.sol +356 -29
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +11 -5
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +71 -61
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +57 -25
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- 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 +36 -17
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +35 -4
- package/contracts/type/RoleId.sol +4 -13
- package/contracts/type/Seconds.sol +8 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +13 -119
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +4 -3
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- 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 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/product/ProductService.sol +0 -99
- package/contracts/product/ProductServiceManager.sol +0 -39
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -1,45 +1,41 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
|
4
|
+
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
6
5
|
import {IBundle} from "../instance/module/IBundle.sol";
|
7
6
|
import {IBundleService} from "./IBundleService.sol";
|
8
7
|
import {IComponents} from "../instance/module/IComponents.sol";
|
9
8
|
import {IComponentService} from "../shared/IComponentService.sol";
|
10
9
|
import {IInstance} from "../instance/IInstance.sol";
|
11
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
12
10
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
11
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
13
12
|
import {IPoolService} from "./IPoolService.sol";
|
13
|
+
import {IProductComponent} from "../product/IProductComponent.sol";
|
14
14
|
import {IRegistry} from "../registry/IRegistry.sol";
|
15
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
16
15
|
import {IStaking} from "../staking/IStaking.sol";
|
17
16
|
|
18
17
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
18
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
19
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
19
20
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
20
|
-
import {NftId
|
21
|
-
import {ObjectType, POOL, BUNDLE,
|
22
|
-
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
21
|
+
import {NftId} from "../type/NftId.sol";
|
22
|
+
import {ObjectType, ACCOUNTING, POOL, BUNDLE, PRODUCT, POLICY, COMPONENT} from "../type/ObjectType.sol";
|
23
23
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
24
24
|
import {KEEP_STATE} from "../type/StateId.sol";
|
25
|
-
import {Seconds} from "../type/Seconds.sol";
|
26
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
27
25
|
import {UFixed} from "../type/UFixed.sol";
|
28
|
-
import {
|
26
|
+
import {Service} from "../shared/Service.sol";
|
29
27
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
30
28
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
31
29
|
|
32
30
|
string constant POOL_SERVICE_NAME = "PoolService";
|
33
31
|
|
34
32
|
contract PoolService is
|
35
|
-
|
33
|
+
Service,
|
36
34
|
IPoolService
|
37
35
|
{
|
36
|
+
IAccountingService private _accountingService;
|
38
37
|
IBundleService internal _bundleService;
|
39
38
|
IComponentService internal _componentService;
|
40
|
-
IInstanceService private _instanceService;
|
41
|
-
IRegistryService private _registryService;
|
42
|
-
|
43
39
|
IStaking private _staking;
|
44
40
|
|
45
41
|
function _initialize(
|
@@ -47,141 +43,107 @@ contract PoolService is
|
|
47
43
|
bytes memory data
|
48
44
|
)
|
49
45
|
internal
|
50
|
-
initializer
|
51
46
|
virtual override
|
47
|
+
initializer()
|
52
48
|
{
|
53
49
|
(
|
54
|
-
address
|
55
|
-
|
56
|
-
|
57
|
-
) = abi.decode(data, (address, address, address));
|
50
|
+
address authority,
|
51
|
+
address registry
|
52
|
+
) = abi.decode(data, (address, address));
|
58
53
|
|
59
|
-
|
54
|
+
__Service_init(authority, registry, owner);
|
60
55
|
|
61
|
-
|
56
|
+
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
62
57
|
_bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
63
|
-
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
64
58
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
65
|
-
|
66
59
|
_staking = IStaking(getRegistry().getStakingAddress());
|
67
60
|
|
68
|
-
|
61
|
+
_registerInterface(type(IPoolService).interfaceId);
|
69
62
|
}
|
70
63
|
|
71
64
|
|
72
|
-
|
65
|
+
/// @inheritdoc IPoolService
|
66
|
+
function setMaxBalanceAmount(Amount maxBalanceAmount)
|
73
67
|
external
|
74
68
|
virtual
|
75
69
|
{
|
76
|
-
|
77
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
70
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
78
71
|
InstanceReader instanceReader = instance.getInstanceReader();
|
72
|
+
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
79
73
|
|
80
|
-
|
81
|
-
|
82
|
-
Amount previousMaxCapitalAmount = poolInfo.maxCapitalAmount;
|
83
|
-
|
84
|
-
poolInfo.maxCapitalAmount = maxCapitalAmount;
|
74
|
+
Amount previousMaxBalanceAmount = poolInfo.maxBalanceAmount;
|
75
|
+
poolInfo.maxBalanceAmount = maxBalanceAmount;
|
85
76
|
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
86
77
|
|
87
|
-
emit
|
88
|
-
*/
|
78
|
+
emit LogPoolServiceMaxBalanceAmountUpdated(poolNftId, previousMaxBalanceAmount, maxBalanceAmount);
|
89
79
|
}
|
90
80
|
|
91
|
-
|
81
|
+
|
82
|
+
function closeBundle(NftId bundleNftId)
|
92
83
|
external
|
93
84
|
virtual
|
94
85
|
{
|
95
|
-
(
|
96
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
86
|
+
_checkNftType(bundleNftId, BUNDLE());
|
97
87
|
|
98
|
-
|
99
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
88
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
100
89
|
|
101
|
-
//
|
102
|
-
if(poolInfo.bundleOwnerRole != PUBLIC_ROLE()) {
|
103
|
-
revert ErrorPoolServiceBundleOwnerRoleAlreadySet(poolNftId);
|
104
|
-
}
|
90
|
+
// TODO get performance fee for pool (#477)
|
105
91
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
emit LogPoolServiceBundleOwnerRoleSet(poolNftId, bundleOwnerRole);
|
110
|
-
}
|
111
|
-
|
112
|
-
/// @inheritdoc IPoolService
|
113
|
-
function createBundle(
|
114
|
-
address bundleOwner, // initial bundle owner
|
115
|
-
Fee memory fee, // fees deducted from premium that go to bundle owner
|
116
|
-
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
117
|
-
Seconds lifetime, // initial duration for which new policies are covered
|
118
|
-
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
119
|
-
)
|
120
|
-
external
|
121
|
-
virtual
|
122
|
-
returns(NftId bundleNftId, Amount netStakedAmount)
|
123
|
-
{
|
124
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
125
|
-
|
126
|
-
Amount stakingFeeAmount;
|
127
|
-
(stakingFeeAmount, netStakedAmount) = FeeLib.calculateFee(
|
128
|
-
_getStakingFee(instance.getInstanceReader(), poolNftId),
|
129
|
-
stakingAmount);
|
130
|
-
|
131
|
-
// TODO: staking amount must be be > maxCapitalAmount
|
92
|
+
// releasing collateral in bundle
|
93
|
+
(Amount unstakedAmount, Amount feeAmount) = _bundleService.close(instance, bundleNftId);
|
132
94
|
|
133
|
-
|
134
|
-
instance,
|
135
|
-
poolNftId,
|
136
|
-
bundleOwner,
|
137
|
-
fee,
|
138
|
-
netStakedAmount,
|
139
|
-
lifetime,
|
140
|
-
filter);
|
141
|
-
|
142
|
-
// pool book keeping
|
143
|
-
_componentService.increasePoolBalance(
|
95
|
+
_accountingService.decreasePoolBalance(
|
144
96
|
instance.getInstanceStore(),
|
145
97
|
poolNftId,
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
_collectStakingAmount(
|
151
|
-
instance.getInstanceReader(),
|
152
|
-
poolNftId,
|
153
|
-
bundleOwner,
|
154
|
-
stakingAmount);
|
98
|
+
unstakedAmount + feeAmount,
|
99
|
+
AmountLib.zero());
|
100
|
+
|
101
|
+
emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
|
155
102
|
|
156
|
-
|
103
|
+
if ((unstakedAmount + feeAmount).gtz()){
|
104
|
+
IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
|
105
|
+
poolComponentInfo.tokenHandler.distributeTokens(
|
106
|
+
poolComponentInfo.tokenHandler.getWallet(),
|
107
|
+
getRegistry().ownerOf(bundleNftId),
|
108
|
+
unstakedAmount + feeAmount);
|
109
|
+
}
|
157
110
|
}
|
158
111
|
|
159
|
-
function _getStakingFee(InstanceReader instanceReader, NftId poolNftId)
|
160
|
-
internal
|
161
|
-
virtual
|
162
|
-
view
|
163
|
-
returns (Fee memory stakingFee)
|
164
|
-
{
|
165
|
-
NftId productNftId = instanceReader.getComponentInfo(poolNftId).productNftId;
|
166
|
-
return instanceReader.getProductInfo(productNftId).stakingFee;
|
167
|
-
}
|
168
112
|
|
169
|
-
|
113
|
+
/// @inheritdoc IPoolService
|
114
|
+
function processFundedClaim(
|
115
|
+
NftId policyNftId,
|
116
|
+
ClaimId claimId,
|
117
|
+
Amount availableAmount
|
118
|
+
)
|
170
119
|
external
|
171
120
|
virtual
|
172
121
|
{
|
173
|
-
(
|
122
|
+
_checkNftType(policyNftId, POLICY());
|
174
123
|
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
124
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
125
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
126
|
+
NftId productNftId = getRegistry().getObjectInfo(poolNftId).parentNftId;
|
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);
|
135
|
+
}
|
179
136
|
|
180
|
-
|
137
|
+
emit LogPoolServiceProcessFundedClaim(policyNftId, claimId, availableAmount);
|
181
138
|
|
182
|
-
|
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
|
+
}
|
183
144
|
}
|
184
145
|
|
146
|
+
|
185
147
|
/// @inheritdoc IPoolService
|
186
148
|
function stake(NftId bundleNftId, Amount amount)
|
187
149
|
external
|
@@ -189,7 +151,9 @@ contract PoolService is
|
|
189
151
|
// TODO: restricted() (once #462 is done)
|
190
152
|
returns(Amount netAmount)
|
191
153
|
{
|
192
|
-
(
|
154
|
+
_checkNftType(bundleNftId, BUNDLE());
|
155
|
+
|
156
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
193
157
|
InstanceReader instanceReader = instance.getInstanceReader();
|
194
158
|
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
195
159
|
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
@@ -198,21 +162,30 @@ contract PoolService is
|
|
198
162
|
revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
199
163
|
}
|
200
164
|
|
201
|
-
|
202
|
-
|
203
|
-
|
165
|
+
{
|
166
|
+
Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
|
167
|
+
if (currentPoolBalance + amount > poolInfo.maxBalanceAmount) {
|
168
|
+
revert ErrorPoolServiceMaxBalanceAmountExceeded(poolNftId, poolInfo.maxBalanceAmount, currentPoolBalance, amount);
|
169
|
+
}
|
204
170
|
}
|
205
171
|
|
206
172
|
// calculate fees
|
207
|
-
(
|
208
|
-
|
209
|
-
Amount netAmount
|
210
|
-
) = FeeLib.calculateFee(
|
211
|
-
_getStakingFee(instanceReader, poolNftId),
|
212
|
-
amount);
|
173
|
+
IRegistry registry = getRegistry();
|
174
|
+
Amount feeAmount;
|
213
175
|
|
214
|
-
|
215
|
-
|
176
|
+
{
|
177
|
+
NftId productNftId = registry.getObjectInfo(poolNftId).parentNftId;
|
178
|
+
Fee memory stakingFee = instanceReader.getFeeInfo(productNftId).stakingFee;
|
179
|
+
(
|
180
|
+
feeAmount,
|
181
|
+
netAmount
|
182
|
+
) = FeeLib.calculateFee(
|
183
|
+
stakingFee,
|
184
|
+
amount);
|
185
|
+
}
|
186
|
+
|
187
|
+
// do all the book keeping
|
188
|
+
_accountingService.increasePoolBalance(
|
216
189
|
instance.getInstanceStore(),
|
217
190
|
poolNftId,
|
218
191
|
netAmount,
|
@@ -220,16 +193,22 @@ contract PoolService is
|
|
220
193
|
|
221
194
|
_bundleService.stake(instance, bundleNftId, netAmount);
|
222
195
|
|
223
|
-
// collect tokens from bundle owner
|
224
|
-
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
225
196
|
emit LogPoolServiceBundleStaked(instance.getNftId(), poolNftId, bundleNftId, amount, netAmount);
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
197
|
+
|
198
|
+
// only collect staking amount when pool is not externally managed
|
199
|
+
if (!poolInfo.isExternallyManaged) {
|
200
|
+
|
201
|
+
// collect tokens from bundle owner
|
202
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
203
|
+
_collectStakingAmount(
|
204
|
+
instanceReader,
|
205
|
+
poolNftId,
|
206
|
+
bundleOwner,
|
207
|
+
amount);
|
208
|
+
}
|
231
209
|
}
|
232
210
|
|
211
|
+
|
233
212
|
/// @inheritdoc IPoolService
|
234
213
|
function unstake(NftId bundleNftId, Amount amount)
|
235
214
|
external
|
@@ -237,19 +216,17 @@ contract PoolService is
|
|
237
216
|
// TODO: restricted() (once #462 is done)
|
238
217
|
returns(Amount netAmount)
|
239
218
|
{
|
240
|
-
(
|
219
|
+
_checkNftType(bundleNftId, BUNDLE());
|
220
|
+
|
221
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
241
222
|
InstanceReader instanceReader = instance.getInstanceReader();
|
242
223
|
InstanceStore instanceStore = instance.getInstanceStore();
|
243
224
|
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
244
|
-
|
225
|
+
|
245
226
|
if (bundleInfo.poolNftId != poolNftId) {
|
246
227
|
revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
247
228
|
}
|
248
229
|
|
249
|
-
if (amount.eqz()) {
|
250
|
-
revert ErrorPoolServiceAmountIsZero();
|
251
|
-
}
|
252
|
-
|
253
230
|
// call bundle service for bookkeeping and additional checks
|
254
231
|
Amount unstakedAmount = _bundleService.unstake(instance, bundleNftId, amount);
|
255
232
|
|
@@ -257,62 +234,115 @@ contract PoolService is
|
|
257
234
|
// if amount was max, this was set to the available amount
|
258
235
|
|
259
236
|
// TODO: handle performance fees (issue #477)
|
237
|
+
netAmount = unstakedAmount;
|
260
238
|
|
261
239
|
// update pool bookkeeping - performance fees stay in the pool, but as fees
|
262
|
-
|
240
|
+
_accountingService.decreasePoolBalance(
|
263
241
|
instanceStore,
|
264
242
|
poolNftId,
|
265
243
|
unstakedAmount,
|
266
244
|
AmountLib.zero());
|
267
245
|
|
268
|
-
IComponents.ComponentInfo memory poolComponentInfo = instanceReader.getComponentInfo(poolNftId);
|
269
|
-
address poolWallet = poolComponentInfo.wallet;
|
270
246
|
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
247
|
+
emit LogPoolServiceBundleUnstaked(instance.getNftId(), poolNftId, bundleNftId, unstakedAmount, netAmount);
|
248
|
+
|
249
|
+
// only distribute staking amount when pool is not externally managed
|
250
|
+
if (!instanceReader.getPoolInfo(poolNftId).isExternallyManaged) {
|
251
|
+
|
252
|
+
// transfer amount to bundle owner
|
253
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
254
|
+
_distributeUnstakingAmount(
|
255
|
+
instanceReader,
|
256
|
+
poolNftId,
|
257
|
+
bundleOwner,
|
258
|
+
netAmount);
|
259
|
+
}
|
260
|
+
}
|
261
|
+
|
262
|
+
|
263
|
+
function fundPoolWallet(Amount amount)
|
264
|
+
external
|
265
|
+
virtual
|
266
|
+
// restricted()
|
267
|
+
{
|
268
|
+
(
|
269
|
+
NftId poolNftId,
|
270
|
+
IInstance instance
|
271
|
+
) = _getAndVerifyActivePool();
|
272
|
+
|
273
|
+
// check that pool is externally managed
|
274
|
+
InstanceReader reader = instance.getInstanceReader();
|
275
|
+
if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
|
276
|
+
revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
|
278
277
|
}
|
279
278
|
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
279
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
280
|
+
emit LogPoolServiceWalletFunded(poolNftId, poolOwner, amount);
|
281
|
+
|
282
|
+
_collectStakingAmount(
|
283
|
+
reader,
|
284
|
+
poolNftId,
|
285
|
+
poolOwner,
|
286
|
+
amount);
|
286
287
|
}
|
287
288
|
|
289
|
+
|
290
|
+
function defundPoolWallet(Amount amount)
|
291
|
+
external
|
292
|
+
virtual
|
293
|
+
// restricted()
|
294
|
+
{
|
295
|
+
(
|
296
|
+
NftId poolNftId,
|
297
|
+
IInstance instance
|
298
|
+
) = _getAndVerifyActivePool();
|
299
|
+
|
300
|
+
// check that pool is externally managed
|
301
|
+
InstanceReader reader = instance.getInstanceReader();
|
302
|
+
if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
|
303
|
+
revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
|
304
|
+
}
|
305
|
+
|
306
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
307
|
+
emit LogPoolServiceWalletDefunded(poolNftId, poolOwner, amount);
|
308
|
+
|
309
|
+
_distributeUnstakingAmount(
|
310
|
+
reader,
|
311
|
+
poolNftId,
|
312
|
+
poolOwner,
|
313
|
+
amount);
|
314
|
+
}
|
315
|
+
|
316
|
+
|
288
317
|
function processSale(
|
289
318
|
NftId bundleNftId,
|
290
|
-
IPolicy.
|
319
|
+
IPolicy.PremiumInfo memory premium
|
291
320
|
)
|
292
321
|
external
|
293
322
|
virtual
|
294
323
|
restricted()
|
295
324
|
{
|
325
|
+
_checkNftType(bundleNftId, BUNDLE());
|
326
|
+
|
296
327
|
IRegistry registry = getRegistry();
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
IInstance instance = IInstance(instanceObjectInfo.objectAddress);
|
328
|
+
NftId poolNftId = registry.getObjectInfo(bundleNftId).parentNftId;
|
329
|
+
(, address instanceAddress) = ContractLib.getInfoAndInstance(registry, poolNftId, true);
|
330
|
+
IInstance instance = IInstance(instanceAddress);
|
301
331
|
|
302
|
-
Amount poolFeeAmount =
|
303
|
-
Amount bundleFeeAmount =
|
304
|
-
Amount bundleNetAmount =
|
332
|
+
Amount poolFeeAmount = premium.poolFeeFixAmount + premium.poolFeeVarAmount;
|
333
|
+
Amount bundleFeeAmount = premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
334
|
+
Amount bundleNetAmount = premium.netPremiumAmount;
|
305
335
|
|
306
336
|
InstanceStore instanceStore = instance.getInstanceStore();
|
307
|
-
|
337
|
+
_accountingService.increasePoolBalance(
|
308
338
|
instanceStore,
|
309
|
-
|
339
|
+
poolNftId,
|
310
340
|
bundleNetAmount + bundleFeeAmount,
|
311
341
|
poolFeeAmount);
|
312
342
|
|
313
|
-
|
343
|
+
_accountingService.increaseBundleBalanceForPool(
|
314
344
|
instanceStore,
|
315
|
-
|
345
|
+
bundleNftId,
|
316
346
|
bundleNetAmount,
|
317
347
|
bundleFeeAmount);
|
318
348
|
}
|
@@ -330,13 +360,21 @@ contract PoolService is
|
|
330
360
|
virtual
|
331
361
|
restricted()
|
332
362
|
returns (
|
333
|
-
Amount
|
334
|
-
Amount
|
363
|
+
Amount totalCollateralAmount,
|
364
|
+
Amount localCollateralAmount
|
335
365
|
)
|
336
366
|
{
|
367
|
+
_checkNftType(productNftId, PRODUCT());
|
368
|
+
_checkNftType(applicationNftId, POLICY());
|
369
|
+
_checkNftType(bundleNftId, BUNDLE());
|
370
|
+
|
371
|
+
NftId poolNftId;
|
372
|
+
bool poolIsVerifyingApplications;
|
337
373
|
(
|
374
|
+
poolNftId,
|
375
|
+
totalCollateralAmount,
|
338
376
|
localCollateralAmount,
|
339
|
-
|
377
|
+
poolIsVerifyingApplications
|
340
378
|
) = calculateRequiredCollateral(
|
341
379
|
instance.getInstanceReader(),
|
342
380
|
productNftId,
|
@@ -355,15 +393,23 @@ contract PoolService is
|
|
355
393
|
token,
|
356
394
|
totalCollateralAmount);
|
357
395
|
|
358
|
-
//
|
359
|
-
|
360
|
-
|
396
|
+
// pool callback when required
|
397
|
+
if (poolIsVerifyingApplications) {
|
398
|
+
IPoolComponent pool = IPoolComponent(
|
399
|
+
getRegistry().getObjectAddress(poolNftId));
|
361
400
|
|
401
|
+
pool.verifyApplication(
|
402
|
+
applicationNftId,
|
403
|
+
bundleNftId,
|
404
|
+
totalCollateralAmount);
|
405
|
+
|
406
|
+
// TODO add logging
|
362
407
|
}
|
363
|
-
}
|
364
408
|
|
409
|
+
// TODO add logging
|
410
|
+
}
|
365
411
|
|
366
|
-
function
|
412
|
+
function processPayout(
|
367
413
|
IInstance instance,
|
368
414
|
address token,
|
369
415
|
NftId policyNftId,
|
@@ -374,6 +420,24 @@ contract PoolService is
|
|
374
420
|
virtual
|
375
421
|
restricted()
|
376
422
|
{
|
423
|
+
_checkNftType(policyNftId, POLICY());
|
424
|
+
|
425
|
+
NftId bundleNftId = policyInfo.bundleNftId;
|
426
|
+
NftId poolNftId = getRegistry().getObjectInfo(bundleNftId).parentNftId;
|
427
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
428
|
+
|
429
|
+
_accountingService.decreasePoolBalance(
|
430
|
+
instanceStore,
|
431
|
+
poolNftId,
|
432
|
+
payoutAmount,
|
433
|
+
AmountLib.zero());
|
434
|
+
|
435
|
+
_accountingService.decreaseBundleBalanceForPool(
|
436
|
+
instanceStore,
|
437
|
+
bundleNftId,
|
438
|
+
payoutAmount,
|
439
|
+
AmountLib.zero());
|
440
|
+
|
377
441
|
_bundleService.releaseCollateral(
|
378
442
|
instance,
|
379
443
|
policyNftId,
|
@@ -400,6 +464,8 @@ contract PoolService is
|
|
400
464
|
virtual
|
401
465
|
restricted()
|
402
466
|
{
|
467
|
+
_checkNftType(policyNftId, POLICY());
|
468
|
+
|
403
469
|
Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
|
404
470
|
|
405
471
|
_bundleService.releaseCollateral(
|
@@ -408,10 +474,6 @@ contract PoolService is
|
|
408
474
|
policyInfo.bundleNftId,
|
409
475
|
remainingCollateralAmount);
|
410
476
|
|
411
|
-
_bundleService.unlinkPolicy(
|
412
|
-
instance,
|
413
|
-
policyNftId);
|
414
|
-
|
415
477
|
// update value locked with staking service
|
416
478
|
_staking.decreaseTotalValueLocked(
|
417
479
|
instance.getNftId(),
|
@@ -428,16 +490,21 @@ contract PoolService is
|
|
428
490
|
public
|
429
491
|
view
|
430
492
|
returns(
|
493
|
+
NftId poolNftId,
|
494
|
+
Amount totalCollateralAmount,
|
431
495
|
Amount localCollateralAmount,
|
432
|
-
|
496
|
+
bool poolIsVerifyingApplications
|
433
497
|
)
|
434
498
|
{
|
435
|
-
|
499
|
+
_checkNftType(productNftId, PRODUCT());
|
500
|
+
|
501
|
+
poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
436
502
|
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
503
|
+
poolIsVerifyingApplications = poolInfo.isVerifyingApplications;
|
437
504
|
|
438
505
|
(
|
439
|
-
|
440
|
-
|
506
|
+
totalCollateralAmount,
|
507
|
+
localCollateralAmount
|
441
508
|
) = calculateRequiredCollateral(
|
442
509
|
poolInfo.collateralizationLevel,
|
443
510
|
poolInfo.retentionLevel,
|
@@ -453,18 +520,17 @@ contract PoolService is
|
|
453
520
|
public
|
454
521
|
pure
|
455
522
|
returns(
|
456
|
-
Amount
|
457
|
-
Amount
|
523
|
+
Amount totalCollateralAmount,
|
524
|
+
Amount localCollateralAmount
|
458
525
|
)
|
459
526
|
{
|
460
|
-
//
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
//
|
465
|
-
|
466
|
-
|
467
|
-
totalCollateralAmount = localCollateralAmount;
|
527
|
+
// collateralization is applied to sum insured
|
528
|
+
UFixed totalUFixed = collateralizationLevel * sumInsuredAmount.toUFixed();
|
529
|
+
totalCollateralAmount = AmountLib.toAmount(totalUFixed.toInt());
|
530
|
+
|
531
|
+
// retention level defines how much capital is required locally
|
532
|
+
localCollateralAmount = AmountLib.toAmount(
|
533
|
+
(retentionLevel * totalUFixed).toInt());
|
468
534
|
}
|
469
535
|
|
470
536
|
|
@@ -473,6 +539,7 @@ contract PoolService is
|
|
473
539
|
Amount stakingAmount
|
474
540
|
)
|
475
541
|
internal
|
542
|
+
pure
|
476
543
|
returns (Amount stakingNetAmount)
|
477
544
|
{
|
478
545
|
stakingNetAmount = stakingAmount;
|
@@ -487,38 +554,61 @@ contract PoolService is
|
|
487
554
|
}
|
488
555
|
|
489
556
|
|
490
|
-
|
491
|
-
/// @dev transfers the specified amount from the bundle owner to the pool's wallet
|
557
|
+
/// @dev transfers the specified amount from the "from account" to the pool's wallet
|
492
558
|
function _collectStakingAmount(
|
493
|
-
InstanceReader
|
559
|
+
InstanceReader reader,
|
494
560
|
NftId poolNftId,
|
495
|
-
address
|
561
|
+
address from,
|
496
562
|
Amount amount
|
497
563
|
)
|
498
564
|
internal
|
499
565
|
{
|
566
|
+
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
567
|
+
info.tokenHandler.collectTokens(
|
568
|
+
from,
|
569
|
+
amount);
|
570
|
+
}
|
500
571
|
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
572
|
+
/// @dev distributes the specified amount from the pool's wallet to the "to account"
|
573
|
+
function _distributeUnstakingAmount(
|
574
|
+
InstanceReader reader,
|
575
|
+
NftId poolNftId,
|
576
|
+
address to,
|
577
|
+
Amount amount
|
578
|
+
)
|
579
|
+
internal
|
580
|
+
{
|
581
|
+
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
582
|
+
info.tokenHandler.distributeTokens(
|
583
|
+
info.tokenHandler.getWallet(),
|
584
|
+
to,
|
585
|
+
amount);
|
586
|
+
}
|
505
587
|
|
506
|
-
if(amount.gtz()) {
|
507
|
-
uint256 allowance = IERC20Metadata(componentInfo.token).allowance(bundleOwner, address(tokenHandler));
|
508
|
-
if (allowance < amount.toInt()) {
|
509
|
-
revert ErrorPoolServiceWalletAllowanceTooSmall(bundleOwner, address(tokenHandler), allowance, amount.toInt());
|
510
|
-
}
|
511
588
|
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
589
|
+
function _getAndVerifyActivePool()
|
590
|
+
internal
|
591
|
+
virtual
|
592
|
+
view
|
593
|
+
returns (
|
594
|
+
NftId poolNftId,
|
595
|
+
IInstance instance
|
596
|
+
)
|
597
|
+
{
|
598
|
+
(
|
599
|
+
IRegistry.ObjectInfo memory info,
|
600
|
+
address instanceAddress
|
601
|
+
) = ContractLib.getAndVerifyComponent(
|
602
|
+
getRegistry(),
|
603
|
+
msg.sender,
|
604
|
+
POOL(),
|
605
|
+
true); // only active pools
|
606
|
+
|
607
|
+
poolNftId = info.nftId;
|
608
|
+
instance = IInstance(instanceAddress);
|
520
609
|
}
|
521
610
|
|
611
|
+
|
522
612
|
function _getDomain() internal pure override returns(ObjectType) {
|
523
613
|
return POOL();
|
524
614
|
}
|