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