@etherisc/gif-next 0.0.2-9b7f7f5-445 → 0.0.2-9badda4-428
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 +203 -77
- 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 +200 -16
- 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 +142 -44
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +107 -15
- 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 +163 -389
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +206 -27
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +103 -321
- 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 +589 -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 +589 -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 +589 -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 +589 -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/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 +158 -57
- 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 +194 -154
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +433 -143
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +150 -90
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +910 -264
- 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 +689 -440
- 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/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 +114 -340
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +180 -29
- 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 +90 -308
- 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 +108 -326
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +206 -27
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +158 -312
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -121
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +74 -66
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +123 -162
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +297 -201
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +108 -337
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +368 -442
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +111 -117
- 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 +243 -400
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +206 -27
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +435 -212
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +145 -107
- 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 +318 -8
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +307 -144
- 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 +379 -343
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +137 -103
- 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 +241 -398
- 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 +334 -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 +540 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +349 -167
- 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 +1849 -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 +420 -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 +76 -265
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +501 -626
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +136 -128
- 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 +446 -276
- 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 +89 -307
- 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 +584 -15
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +453 -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 +77 -16
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +76 -106
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +210 -366
- 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 +122 -95
- 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 +122 -164
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +99 -85
- 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 +79 -15
- 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/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- 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 +232 -134
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +321 -202
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +17 -10
- package/contracts/authorization/IAuthorization.sol +27 -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 +17 -9
- package/contracts/distribution/Distribution.sol +33 -41
- package/contracts/distribution/DistributionService.sol +113 -93
- 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 +106 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +21 -37
- package/contracts/instance/IInstanceService.sol +9 -29
- package/contracts/instance/Instance.sol +59 -66
- package/contracts/instance/InstanceAdmin.sol +259 -83
- package/contracts/instance/InstanceAuthorizationV3.sol +56 -47
- package/contracts/instance/InstanceReader.sol +210 -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 +11 -4
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +13 -8
- package/contracts/instance/module/IPolicy.sol +26 -25
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- 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 +33 -24
- package/contracts/pool/BasicPoolAuthorization.sol +25 -9
- package/contracts/pool/BundleService.sol +79 -105
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +4 -18
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +48 -44
- package/contracts/pool/Pool.sol +144 -127
- package/contracts/pool/PoolService.sol +280 -229
- 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 +22 -11
- package/contracts/product/ClaimService.sol +429 -138
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +6 -2
- package/contracts/product/IClaimService.sol +44 -7
- package/contracts/product/IPolicyService.sol +44 -38
- 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 +483 -294
- 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 +145 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +60 -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 +357 -203
- package/contracts/registry/RegistryAdmin.sol +170 -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 +74 -127
- package/contracts/shared/ComponentService.sol +400 -377
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +28 -17
- package/contracts/shared/ContractLib.sol +253 -0
- package/contracts/shared/IComponent.sol +8 -17
- package/contracts/shared/IComponentService.sol +41 -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 +73 -48
- 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 +281 -27
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +7 -9
- package/contracts/staking/IStakingService.sol +8 -3
- package/contracts/staking/StakeManagerLib.sol +19 -26
- package/contracts/staking/Staking.sol +71 -61
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +13 -6
- package/contracts/staking/StakingService.sol +54 -35
- package/contracts/staking/StakingServiceManager.sol +6 -5
- 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 +52 -20
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +35 -4
- package/contracts/type/RoleId.sol +23 -15
- package/contracts/type/Seconds.sol +8 -0
- package/contracts/type/Selector.sol +5 -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/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 -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/instance/module/IAccess.sol +0 -46
- 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
21
|
import {NftId} from "../type/NftId.sol";
|
21
|
-
import {ObjectType, POOL, BUNDLE,
|
22
|
-
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.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,33 +43,31 @@ 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
|
|
64
|
+
|
71
65
|
/// @inheritdoc IPoolService
|
72
66
|
function setMaxBalanceAmount(Amount maxBalanceAmount)
|
73
67
|
external
|
74
68
|
virtual
|
75
69
|
{
|
76
|
-
(NftId poolNftId
|
70
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
77
71
|
InstanceReader instanceReader = instance.getInstanceReader();
|
78
72
|
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
79
73
|
|
@@ -84,105 +78,21 @@ contract PoolService is
|
|
84
78
|
emit LogPoolServiceMaxBalanceAmountUpdated(poolNftId, previousMaxBalanceAmount, maxBalanceAmount);
|
85
79
|
}
|
86
80
|
|
87
|
-
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
88
|
-
external
|
89
|
-
virtual
|
90
|
-
{
|
91
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
92
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
93
|
-
|
94
|
-
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
95
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
96
|
-
|
97
|
-
// bundle owner role may only be set once per pool
|
98
|
-
if(poolInfo.bundleOwnerRole != PUBLIC_ROLE()) {
|
99
|
-
revert ErrorPoolServiceBundleOwnerRoleAlreadySet(poolNftId);
|
100
|
-
}
|
101
|
-
|
102
|
-
poolInfo.bundleOwnerRole = bundleOwnerRole;
|
103
|
-
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
104
|
-
|
105
|
-
emit LogPoolServiceBundleOwnerRoleSet(poolNftId, bundleOwnerRole);
|
106
|
-
}
|
107
|
-
|
108
|
-
/// @inheritdoc IPoolService
|
109
|
-
function createBundle(
|
110
|
-
address bundleOwner, // initial bundle owner
|
111
|
-
Fee memory fee, // fees deducted from premium that go to bundle owner
|
112
|
-
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
113
|
-
Seconds lifetime, // initial duration for which new policies are covered
|
114
|
-
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
115
|
-
)
|
116
|
-
external
|
117
|
-
virtual
|
118
|
-
returns(NftId bundleNftId, Amount netStakedAmount)
|
119
|
-
{
|
120
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
121
|
-
|
122
|
-
{
|
123
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
124
|
-
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
125
|
-
Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
|
126
|
-
if (currentPoolBalance + stakingAmount > poolInfo.maxBalanceAmount) {
|
127
|
-
revert ErrorPoolServiceMaxBalanceAmountExceeded(poolNftId, poolInfo.maxBalanceAmount, currentPoolBalance, stakingAmount);
|
128
|
-
}
|
129
|
-
}
|
130
|
-
|
131
|
-
|
132
|
-
Amount stakingFeeAmount;
|
133
|
-
(stakingFeeAmount, netStakedAmount) = FeeLib.calculateFee(
|
134
|
-
_getStakingFee(instance.getInstanceReader(), poolNftId),
|
135
|
-
stakingAmount);
|
136
|
-
|
137
|
-
|
138
|
-
bundleNftId = _bundleService.create(
|
139
|
-
instance,
|
140
|
-
poolNftId,
|
141
|
-
bundleOwner,
|
142
|
-
fee,
|
143
|
-
netStakedAmount,
|
144
|
-
lifetime,
|
145
|
-
filter);
|
146
|
-
|
147
|
-
// pool book keeping
|
148
|
-
_componentService.increasePoolBalance(
|
149
|
-
instance.getInstanceStore(),
|
150
|
-
poolNftId,
|
151
|
-
netStakedAmount,
|
152
|
-
stakingFeeAmount);
|
153
|
-
|
154
|
-
// pool bookkeeping and collect tokens from bundle owner
|
155
|
-
_collectStakingAmount(
|
156
|
-
instance.getInstanceReader(),
|
157
|
-
poolNftId,
|
158
|
-
bundleOwner,
|
159
|
-
stakingAmount);
|
160
|
-
|
161
|
-
emit LogPoolServiceBundleCreated(instance.getNftId(), poolNftId, bundleNftId);
|
162
|
-
}
|
163
|
-
|
164
|
-
function _getStakingFee(InstanceReader instanceReader, NftId poolNftId)
|
165
|
-
internal
|
166
|
-
virtual
|
167
|
-
view
|
168
|
-
returns (Fee memory stakingFee)
|
169
|
-
{
|
170
|
-
NftId productNftId = instanceReader.getComponentInfo(poolNftId).productNftId;
|
171
|
-
return instanceReader.getProductInfo(productNftId).stakingFee;
|
172
|
-
}
|
173
81
|
|
174
82
|
function closeBundle(NftId bundleNftId)
|
175
83
|
external
|
176
84
|
virtual
|
177
85
|
{
|
178
|
-
(
|
86
|
+
_checkNftType(bundleNftId, BUNDLE());
|
87
|
+
|
88
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
179
89
|
|
180
90
|
// TODO get performance fee for pool (#477)
|
181
91
|
|
182
92
|
// releasing collateral in bundle
|
183
93
|
(Amount unstakedAmount, Amount feeAmount) = _bundleService.close(instance, bundleNftId);
|
184
94
|
|
185
|
-
|
95
|
+
_accountingService.decreasePoolBalance(
|
186
96
|
instance.getInstanceStore(),
|
187
97
|
poolNftId,
|
188
98
|
unstakedAmount + feeAmount,
|
@@ -192,27 +102,47 @@ contract PoolService is
|
|
192
102
|
|
193
103
|
if ((unstakedAmount + feeAmount).gtz()){
|
194
104
|
IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
// check allowance
|
201
|
-
uint256 tokenAllowance = token.allowance(poolComponentInfo.wallet, address(tokenHandler));
|
202
|
-
if (tokenAllowance < (unstakedAmount.toInt() + feeAmount.toInt())) {
|
203
|
-
revert ErrorPoolServiceWalletAllowanceTooSmall(
|
204
|
-
poolComponentInfo.wallet,
|
205
|
-
address(tokenHandler),
|
206
|
-
tokenAllowance,
|
207
|
-
unstakedAmount.toInt() + feeAmount.toInt());
|
208
|
-
}
|
105
|
+
poolComponentInfo.tokenHandler.pushToken(
|
106
|
+
getRegistry().ownerOf(bundleNftId),
|
107
|
+
unstakedAmount + feeAmount);
|
108
|
+
}
|
109
|
+
}
|
209
110
|
|
210
|
-
|
211
|
-
|
212
|
-
|
111
|
+
|
112
|
+
/// @inheritdoc IPoolService
|
113
|
+
function processFundedClaim(
|
114
|
+
NftId policyNftId,
|
115
|
+
ClaimId claimId,
|
116
|
+
Amount availableAmount
|
117
|
+
)
|
118
|
+
external
|
119
|
+
virtual
|
120
|
+
{
|
121
|
+
_checkNftType(policyNftId, POLICY());
|
122
|
+
|
123
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
124
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
125
|
+
NftId productNftId = getRegistry().getParentNftId(poolNftId);
|
126
|
+
|
127
|
+
// check policy matches with calling pool
|
128
|
+
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
129
|
+
if(policyInfo.productNftId != productNftId) {
|
130
|
+
revert ErrorPoolServicePolicyPoolMismatch(
|
131
|
+
policyNftId,
|
132
|
+
policyInfo.productNftId,
|
133
|
+
productNftId);
|
134
|
+
}
|
135
|
+
|
136
|
+
emit LogPoolServiceProcessFundedClaim(policyNftId, claimId, availableAmount);
|
137
|
+
|
138
|
+
// callback to product component if applicable
|
139
|
+
if (instanceReader.getProductInfo(productNftId).isProcessingFundedClaims) {
|
140
|
+
address productAddress = getRegistry().getObjectAddress(productNftId);
|
141
|
+
IProductComponent(productAddress).processFundedClaim(policyNftId, claimId, availableAmount);
|
213
142
|
}
|
214
143
|
}
|
215
144
|
|
145
|
+
|
216
146
|
/// @inheritdoc IPoolService
|
217
147
|
function stake(NftId bundleNftId, Amount amount)
|
218
148
|
external
|
@@ -220,7 +150,9 @@ contract PoolService is
|
|
220
150
|
// TODO: restricted() (once #462 is done)
|
221
151
|
returns(Amount netAmount)
|
222
152
|
{
|
223
|
-
(
|
153
|
+
_checkNftType(bundleNftId, BUNDLE());
|
154
|
+
|
155
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
224
156
|
InstanceReader instanceReader = instance.getInstanceReader();
|
225
157
|
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
226
158
|
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
@@ -237,16 +169,22 @@ contract PoolService is
|
|
237
169
|
}
|
238
170
|
|
239
171
|
// calculate fees
|
172
|
+
IRegistry registry = getRegistry();
|
240
173
|
Amount feeAmount;
|
241
|
-
(
|
242
|
-
feeAmount,
|
243
|
-
netAmount
|
244
|
-
) = FeeLib.calculateFee(
|
245
|
-
_getStakingFee(instanceReader, poolNftId),
|
246
|
-
amount);
|
247
174
|
|
248
|
-
|
249
|
-
|
175
|
+
{
|
176
|
+
NftId productNftId = registry.getParentNftId(poolNftId);
|
177
|
+
Fee memory stakingFee = instanceReader.getFeeInfo(productNftId).stakingFee;
|
178
|
+
(
|
179
|
+
feeAmount,
|
180
|
+
netAmount
|
181
|
+
) = FeeLib.calculateFee(
|
182
|
+
stakingFee,
|
183
|
+
amount);
|
184
|
+
}
|
185
|
+
|
186
|
+
// do all the book keeping
|
187
|
+
_accountingService.increasePoolBalance(
|
250
188
|
instance.getInstanceStore(),
|
251
189
|
poolNftId,
|
252
190
|
netAmount,
|
@@ -254,17 +192,22 @@ contract PoolService is
|
|
254
192
|
|
255
193
|
_bundleService.stake(instance, bundleNftId, netAmount);
|
256
194
|
|
257
|
-
// collect tokens from bundle owner
|
258
|
-
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
259
|
-
_collectStakingAmount(
|
260
|
-
instanceReader,
|
261
|
-
poolNftId,
|
262
|
-
bundleOwner,
|
263
|
-
amount);
|
264
|
-
|
265
195
|
emit LogPoolServiceBundleStaked(instance.getNftId(), poolNftId, bundleNftId, amount, netAmount);
|
196
|
+
|
197
|
+
// only collect staking amount when pool is not externally managed
|
198
|
+
if (!poolInfo.isExternallyManaged) {
|
199
|
+
|
200
|
+
// collect tokens from bundle owner
|
201
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
202
|
+
_pullStakingAmount(
|
203
|
+
instanceReader,
|
204
|
+
poolNftId,
|
205
|
+
bundleOwner,
|
206
|
+
amount);
|
207
|
+
}
|
266
208
|
}
|
267
209
|
|
210
|
+
|
268
211
|
/// @inheritdoc IPoolService
|
269
212
|
function unstake(NftId bundleNftId, Amount amount)
|
270
213
|
external
|
@@ -272,19 +215,17 @@ contract PoolService is
|
|
272
215
|
// TODO: restricted() (once #462 is done)
|
273
216
|
returns(Amount netAmount)
|
274
217
|
{
|
275
|
-
(
|
218
|
+
_checkNftType(bundleNftId, BUNDLE());
|
219
|
+
|
220
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
276
221
|
InstanceReader instanceReader = instance.getInstanceReader();
|
277
222
|
InstanceStore instanceStore = instance.getInstanceStore();
|
278
223
|
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
279
|
-
|
224
|
+
|
280
225
|
if (bundleInfo.poolNftId != poolNftId) {
|
281
226
|
revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
282
227
|
}
|
283
228
|
|
284
|
-
if (amount.eqz()) {
|
285
|
-
revert ErrorPoolServiceAmountIsZero();
|
286
|
-
}
|
287
|
-
|
288
229
|
// call bundle service for bookkeeping and additional checks
|
289
230
|
Amount unstakedAmount = _bundleService.unstake(instance, bundleNftId, amount);
|
290
231
|
|
@@ -292,64 +233,115 @@ contract PoolService is
|
|
292
233
|
// if amount was max, this was set to the available amount
|
293
234
|
|
294
235
|
// TODO: handle performance fees (issue #477)
|
236
|
+
netAmount = unstakedAmount;
|
295
237
|
|
296
238
|
// update pool bookkeeping - performance fees stay in the pool, but as fees
|
297
|
-
|
239
|
+
_accountingService.decreasePoolBalance(
|
298
240
|
instanceStore,
|
299
241
|
poolNftId,
|
300
242
|
unstakedAmount,
|
301
243
|
AmountLib.zero());
|
302
244
|
|
303
|
-
IComponents.ComponentInfo memory poolComponentInfo = instanceReader.getComponentInfo(poolNftId);
|
304
|
-
address poolWallet = poolComponentInfo.wallet;
|
305
245
|
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
246
|
+
emit LogPoolServiceBundleUnstaked(instance.getNftId(), poolNftId, bundleNftId, unstakedAmount, netAmount);
|
247
|
+
|
248
|
+
// only distribute staking amount when pool is not externally managed
|
249
|
+
if (!instanceReader.getPoolInfo(poolNftId).isExternallyManaged) {
|
250
|
+
|
251
|
+
// transfer amount to bundle owner
|
252
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
253
|
+
_pushUnstakingAmount(
|
254
|
+
instanceReader,
|
255
|
+
poolNftId,
|
256
|
+
bundleOwner,
|
257
|
+
netAmount);
|
313
258
|
}
|
259
|
+
}
|
314
260
|
|
315
|
-
// transfer amount to bundle owner
|
316
|
-
address owner = getRegistry().ownerOf(bundleNftId);
|
317
|
-
// TODO: centralize token handling (issue #471)
|
318
|
-
poolComponentInfo.tokenHandler.transfer(poolWallet, owner, unstakedAmount);
|
319
|
-
|
320
|
-
emit LogPoolServiceBundleUnstaked(instance.getNftId(), poolNftId, bundleNftId, unstakedAmount);
|
321
261
|
|
322
|
-
|
262
|
+
function fundPoolWallet(Amount amount)
|
263
|
+
external
|
264
|
+
virtual
|
265
|
+
// restricted()
|
266
|
+
{
|
267
|
+
(
|
268
|
+
NftId poolNftId,
|
269
|
+
IInstance instance
|
270
|
+
) = _getAndVerifyActivePool();
|
271
|
+
|
272
|
+
// check that pool is externally managed
|
273
|
+
InstanceReader reader = instance.getInstanceReader();
|
274
|
+
if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
|
275
|
+
revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
|
276
|
+
}
|
277
|
+
|
278
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
279
|
+
emit LogPoolServiceWalletFunded(poolNftId, poolOwner, amount);
|
280
|
+
|
281
|
+
_pullStakingAmount(
|
282
|
+
reader,
|
283
|
+
poolNftId,
|
284
|
+
poolOwner,
|
285
|
+
amount);
|
323
286
|
}
|
324
287
|
|
288
|
+
|
289
|
+
function defundPoolWallet(Amount amount)
|
290
|
+
external
|
291
|
+
virtual
|
292
|
+
// restricted()
|
293
|
+
{
|
294
|
+
(
|
295
|
+
NftId poolNftId,
|
296
|
+
IInstance instance
|
297
|
+
) = _getAndVerifyActivePool();
|
298
|
+
|
299
|
+
// check that pool is externally managed
|
300
|
+
InstanceReader reader = instance.getInstanceReader();
|
301
|
+
if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
|
302
|
+
revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
|
303
|
+
}
|
304
|
+
|
305
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
306
|
+
emit LogPoolServiceWalletDefunded(poolNftId, poolOwner, amount);
|
307
|
+
|
308
|
+
_pushUnstakingAmount(
|
309
|
+
reader,
|
310
|
+
poolNftId,
|
311
|
+
poolOwner,
|
312
|
+
amount);
|
313
|
+
}
|
314
|
+
|
315
|
+
|
325
316
|
function processSale(
|
326
317
|
NftId bundleNftId,
|
327
|
-
IPolicy.
|
318
|
+
IPolicy.PremiumInfo memory premium
|
328
319
|
)
|
329
320
|
external
|
330
321
|
virtual
|
331
322
|
restricted()
|
332
323
|
{
|
324
|
+
_checkNftType(bundleNftId, BUNDLE());
|
325
|
+
|
333
326
|
IRegistry registry = getRegistry();
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
IInstance instance = IInstance(instanceObjectInfo.objectAddress);
|
327
|
+
NftId poolNftId = registry.getParentNftId(bundleNftId);
|
328
|
+
(, address instanceAddress) = ContractLib.getInfoAndInstance(registry, poolNftId, true);
|
329
|
+
IInstance instance = IInstance(instanceAddress);
|
338
330
|
|
339
|
-
Amount poolFeeAmount =
|
340
|
-
Amount bundleFeeAmount =
|
341
|
-
Amount bundleNetAmount =
|
331
|
+
Amount poolFeeAmount = premium.poolFeeFixAmount + premium.poolFeeVarAmount;
|
332
|
+
Amount bundleFeeAmount = premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
333
|
+
Amount bundleNetAmount = premium.netPremiumAmount;
|
342
334
|
|
343
335
|
InstanceStore instanceStore = instance.getInstanceStore();
|
344
|
-
|
336
|
+
_accountingService.increasePoolBalance(
|
345
337
|
instanceStore,
|
346
|
-
|
338
|
+
poolNftId,
|
347
339
|
bundleNetAmount + bundleFeeAmount,
|
348
340
|
poolFeeAmount);
|
349
341
|
|
350
|
-
|
342
|
+
_accountingService.increaseBundleBalanceForPool(
|
351
343
|
instanceStore,
|
352
|
-
|
344
|
+
bundleNftId,
|
353
345
|
bundleNetAmount,
|
354
346
|
bundleFeeAmount);
|
355
347
|
}
|
@@ -367,13 +359,21 @@ contract PoolService is
|
|
367
359
|
virtual
|
368
360
|
restricted()
|
369
361
|
returns (
|
370
|
-
Amount
|
371
|
-
Amount
|
362
|
+
Amount totalCollateralAmount,
|
363
|
+
Amount localCollateralAmount
|
372
364
|
)
|
373
365
|
{
|
366
|
+
_checkNftType(productNftId, PRODUCT());
|
367
|
+
_checkNftType(applicationNftId, POLICY());
|
368
|
+
_checkNftType(bundleNftId, BUNDLE());
|
369
|
+
|
370
|
+
NftId poolNftId;
|
371
|
+
bool poolIsVerifyingApplications;
|
374
372
|
(
|
373
|
+
poolNftId,
|
374
|
+
totalCollateralAmount,
|
375
375
|
localCollateralAmount,
|
376
|
-
|
376
|
+
poolIsVerifyingApplications
|
377
377
|
) = calculateRequiredCollateral(
|
378
378
|
instance.getInstanceReader(),
|
379
379
|
productNftId,
|
@@ -392,15 +392,23 @@ contract PoolService is
|
|
392
392
|
token,
|
393
393
|
totalCollateralAmount);
|
394
394
|
|
395
|
-
//
|
396
|
-
|
397
|
-
|
395
|
+
// pool callback when required
|
396
|
+
if (poolIsVerifyingApplications) {
|
397
|
+
IPoolComponent pool = IPoolComponent(
|
398
|
+
getRegistry().getObjectAddress(poolNftId));
|
398
399
|
|
400
|
+
pool.verifyApplication(
|
401
|
+
applicationNftId,
|
402
|
+
bundleNftId,
|
403
|
+
totalCollateralAmount);
|
404
|
+
|
405
|
+
// TODO add logging
|
399
406
|
}
|
400
|
-
}
|
401
407
|
|
408
|
+
// TODO add logging
|
409
|
+
}
|
402
410
|
|
403
|
-
function
|
411
|
+
function processPayout(
|
404
412
|
IInstance instance,
|
405
413
|
address token,
|
406
414
|
NftId policyNftId,
|
@@ -411,6 +419,24 @@ contract PoolService is
|
|
411
419
|
virtual
|
412
420
|
restricted()
|
413
421
|
{
|
422
|
+
_checkNftType(policyNftId, POLICY());
|
423
|
+
|
424
|
+
NftId bundleNftId = policyInfo.bundleNftId;
|
425
|
+
NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
|
426
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
427
|
+
|
428
|
+
_accountingService.decreasePoolBalance(
|
429
|
+
instanceStore,
|
430
|
+
poolNftId,
|
431
|
+
payoutAmount,
|
432
|
+
AmountLib.zero());
|
433
|
+
|
434
|
+
_accountingService.decreaseBundleBalanceForPool(
|
435
|
+
instanceStore,
|
436
|
+
bundleNftId,
|
437
|
+
payoutAmount,
|
438
|
+
AmountLib.zero());
|
439
|
+
|
414
440
|
_bundleService.releaseCollateral(
|
415
441
|
instance,
|
416
442
|
policyNftId,
|
@@ -437,6 +463,8 @@ contract PoolService is
|
|
437
463
|
virtual
|
438
464
|
restricted()
|
439
465
|
{
|
466
|
+
_checkNftType(policyNftId, POLICY());
|
467
|
+
|
440
468
|
Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
|
441
469
|
|
442
470
|
_bundleService.releaseCollateral(
|
@@ -445,10 +473,6 @@ contract PoolService is
|
|
445
473
|
policyInfo.bundleNftId,
|
446
474
|
remainingCollateralAmount);
|
447
475
|
|
448
|
-
_bundleService.unlinkPolicy(
|
449
|
-
instance,
|
450
|
-
policyNftId);
|
451
|
-
|
452
476
|
// update value locked with staking service
|
453
477
|
_staking.decreaseTotalValueLocked(
|
454
478
|
instance.getNftId(),
|
@@ -465,16 +489,21 @@ contract PoolService is
|
|
465
489
|
public
|
466
490
|
view
|
467
491
|
returns(
|
492
|
+
NftId poolNftId,
|
493
|
+
Amount totalCollateralAmount,
|
468
494
|
Amount localCollateralAmount,
|
469
|
-
|
495
|
+
bool poolIsVerifyingApplications
|
470
496
|
)
|
471
497
|
{
|
472
|
-
|
498
|
+
_checkNftType(productNftId, PRODUCT());
|
499
|
+
|
500
|
+
poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
473
501
|
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
502
|
+
poolIsVerifyingApplications = poolInfo.isVerifyingApplications;
|
474
503
|
|
475
504
|
(
|
476
|
-
|
477
|
-
|
505
|
+
totalCollateralAmount,
|
506
|
+
localCollateralAmount
|
478
507
|
) = calculateRequiredCollateral(
|
479
508
|
poolInfo.collateralizationLevel,
|
480
509
|
poolInfo.retentionLevel,
|
@@ -490,18 +519,17 @@ contract PoolService is
|
|
490
519
|
public
|
491
520
|
pure
|
492
521
|
returns(
|
493
|
-
Amount
|
494
|
-
Amount
|
522
|
+
Amount totalCollateralAmount,
|
523
|
+
Amount localCollateralAmount
|
495
524
|
)
|
496
525
|
{
|
497
|
-
//
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
//
|
502
|
-
|
503
|
-
|
504
|
-
totalCollateralAmount = localCollateralAmount;
|
526
|
+
// collateralization is applied to sum insured
|
527
|
+
UFixed totalUFixed = collateralizationLevel * sumInsuredAmount.toUFixed();
|
528
|
+
totalCollateralAmount = AmountLib.toAmount(totalUFixed.toInt());
|
529
|
+
|
530
|
+
// retention level defines how much capital is required locally
|
531
|
+
localCollateralAmount = AmountLib.toAmount(
|
532
|
+
(retentionLevel * totalUFixed).toInt());
|
505
533
|
}
|
506
534
|
|
507
535
|
|
@@ -510,6 +538,7 @@ contract PoolService is
|
|
510
538
|
Amount stakingAmount
|
511
539
|
)
|
512
540
|
internal
|
541
|
+
pure
|
513
542
|
returns (Amount stakingNetAmount)
|
514
543
|
{
|
515
544
|
stakingNetAmount = stakingAmount;
|
@@ -524,38 +553,60 @@ contract PoolService is
|
|
524
553
|
}
|
525
554
|
|
526
555
|
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
InstanceReader instanceReader,
|
556
|
+
/// @dev Transfers the specified amount from the "from account" to the pool's wallet
|
557
|
+
function _pullStakingAmount(
|
558
|
+
InstanceReader reader,
|
531
559
|
NftId poolNftId,
|
532
|
-
address
|
560
|
+
address from,
|
533
561
|
Amount amount
|
534
562
|
)
|
535
563
|
internal
|
536
564
|
{
|
565
|
+
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
566
|
+
info.tokenHandler.pullToken(
|
567
|
+
from,
|
568
|
+
amount);
|
569
|
+
}
|
537
570
|
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
571
|
+
/// @dev Transfers the specified amount from the pool's wallet to the "to account"
|
572
|
+
function _pushUnstakingAmount(
|
573
|
+
InstanceReader reader,
|
574
|
+
NftId poolNftId,
|
575
|
+
address to,
|
576
|
+
Amount amount
|
577
|
+
)
|
578
|
+
internal
|
579
|
+
{
|
580
|
+
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
581
|
+
info.tokenHandler.pushToken(
|
582
|
+
to,
|
583
|
+
amount);
|
584
|
+
}
|
542
585
|
|
543
|
-
if(amount.gtz()) {
|
544
|
-
uint256 allowance = IERC20Metadata(componentInfo.token).allowance(bundleOwner, address(tokenHandler));
|
545
|
-
if (allowance < amount.toInt()) {
|
546
|
-
revert ErrorPoolServiceWalletAllowanceTooSmall(bundleOwner, address(tokenHandler), allowance, amount.toInt());
|
547
|
-
}
|
548
586
|
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
587
|
+
function _getAndVerifyActivePool()
|
588
|
+
internal
|
589
|
+
virtual
|
590
|
+
view
|
591
|
+
returns (
|
592
|
+
NftId poolNftId,
|
593
|
+
IInstance instance
|
594
|
+
)
|
595
|
+
{
|
596
|
+
(
|
597
|
+
IRegistry.ObjectInfo memory info,
|
598
|
+
address instanceAddress
|
599
|
+
) = ContractLib.getAndVerifyComponent(
|
600
|
+
getRegistry(),
|
601
|
+
msg.sender,
|
602
|
+
POOL(),
|
603
|
+
true); // only active pools
|
604
|
+
|
605
|
+
poolNftId = info.nftId;
|
606
|
+
instance = IInstance(instanceAddress);
|
557
607
|
}
|
558
608
|
|
609
|
+
|
559
610
|
function _getDomain() internal pure override returns(ObjectType) {
|
560
611
|
return POOL();
|
561
612
|
}
|