@etherisc/gif-next 0.0.2-8ce6c0b-352 → 0.0.2-8d69bcd-543
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 +46 -8
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +158 -70
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +166 -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 +97 -37
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +81 -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 +166 -376
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +144 -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 +245 -315
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -123
- 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 +128 -76
- 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 +1487 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +555 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2048 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +527 -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 +1495 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +527 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1211 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1663 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +555 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2416 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +527 -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 +372 -136
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +120 -90
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +919 -315
- 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 +619 -492
- 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/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +116 -326
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +146 -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 +143 -387
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +172 -27
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +434 -201
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +163 -97
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +270 -27
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +124 -195
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +448 -217
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +109 -370
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +569 -396
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -91
- 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 +143 -26
- 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 +361 -113
- 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 +486 -333
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +149 -99
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +230 -312
- 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 +275 -160
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +412 -246
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +508 -551
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +137 -125
- 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 +454 -210
- 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 +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +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 +589 -15
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +140 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -23
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +85 -105
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +212 -360
- 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 +125 -94
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +100 -171
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +99 -85
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +153 -107
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
- 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 +61 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
- 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 +50 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +52 -2
- 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 +189 -124
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +300 -202
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +10 -6
- package/contracts/authorization/IAuthorization.sol +19 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +12 -22
- package/contracts/distribution/BasicDistributionAuthorization.sol +3 -11
- package/contracts/distribution/Distribution.sol +36 -50
- package/contracts/distribution/DistributionService.sol +122 -117
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +2 -2
- package/contracts/distribution/IDistributionService.sol +16 -14
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +90 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +438 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +21 -37
- package/contracts/instance/IInstanceService.sol +9 -29
- package/contracts/instance/Instance.sol +59 -66
- package/contracts/instance/InstanceAdmin.sol +254 -84
- package/contracts/instance/InstanceAuthorizationV3.sol +56 -47
- package/contracts/instance/InstanceReader.sol +218 -27
- package/contracts/instance/InstanceService.sol +125 -164
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +24 -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/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +14 -14
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +26 -25
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/mock/Dip.sol +1 -1
- 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 +9 -23
- package/contracts/oracle/OracleService.sol +113 -81
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +38 -27
- package/contracts/pool/BasicPoolAuthorization.sol +15 -8
- package/contracts/pool/BundleService.sol +221 -80
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +33 -18
- package/contracts/pool/IPoolComponent.sol +21 -10
- package/contracts/pool/IPoolService.sol +53 -50
- package/contracts/pool/Pool.sol +150 -116
- package/contracts/pool/PoolService.sol +337 -160
- 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 +13 -44
- package/contracts/product/BasicProductAuthorization.sol +3 -14
- package/contracts/product/ClaimService.sol +428 -136
- 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 +46 -34
- 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 +501 -258
- 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 +160 -89
- 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 +161 -182
- package/contracts/registry/RegistryService.sol +37 -48
- package/contracts/registry/RegistryServiceManager.sol +3 -3
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +258 -234
- package/contracts/registry/ServiceAuthorizationV3.sol +94 -52
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +82 -121
- package/contracts/shared/ComponentService.sol +419 -349
- 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 +43 -39
- 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/{ERC165.sol → InitializableERC165.sol} +3 -3
- 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 +31 -11
- package/contracts/shared/PolicyHolder.sol +17 -57
- 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 +0 -3
- package/contracts/staking/StakeManagerLib.sol +19 -26
- package/contracts/staking/Staking.sol +71 -59
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +13 -6
- package/contracts/staking/StakingService.sol +37 -40
- package/contracts/staking/StakingServiceManager.sol +6 -5
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +27 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/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/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +35 -4
- package/contracts/type/RoleId.sol +23 -15
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/Timestamp.sol +10 -5
- package/contracts/type/UFixed.sol +35 -122
- 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/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- 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 -10
- 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 {IAccountingService} from "../accounting/IAccountingService.sol";
|
5
|
+
import {IBundle} from "../instance/module/IBundle.sol";
|
4
6
|
import {IBundleService} from "./IBundleService.sol";
|
5
7
|
import {IComponents} from "../instance/module/IComponents.sol";
|
6
8
|
import {IComponentService} from "../shared/IComponentService.sol";
|
7
9
|
import {IInstance} from "../instance/IInstance.sol";
|
8
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
9
10
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
11
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
10
12
|
import {IPoolService} from "./IPoolService.sol";
|
13
|
+
import {IProductComponent} from "../product/IProductComponent.sol";
|
11
14
|
import {IRegistry} from "../registry/IRegistry.sol";
|
12
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
13
15
|
import {IStaking} from "../staking/IStaking.sol";
|
14
16
|
|
15
17
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
18
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
19
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
16
20
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
17
|
-
import {NftId
|
18
|
-
import {ObjectType, POOL, BUNDLE,
|
19
|
-
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
21
|
+
import {NftId} from "../type/NftId.sol";
|
22
|
+
import {ObjectType, ACCOUNTING, POOL, BUNDLE, PRODUCT, POLICY, COMPONENT} from "../type/ObjectType.sol";
|
20
23
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
21
24
|
import {KEEP_STATE} from "../type/StateId.sol";
|
22
|
-
import {Seconds} from "../type/Seconds.sol";
|
23
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
24
25
|
import {UFixed} from "../type/UFixed.sol";
|
25
|
-
import {
|
26
|
+
import {Service} from "../shared/Service.sol";
|
26
27
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
27
28
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
28
29
|
|
29
30
|
string constant POOL_SERVICE_NAME = "PoolService";
|
30
31
|
|
31
32
|
contract PoolService is
|
32
|
-
|
33
|
+
Service,
|
33
34
|
IPoolService
|
34
35
|
{
|
35
|
-
|
36
|
-
using AmountLib for Amount;
|
37
|
-
|
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,191 +43,305 @@ contract PoolService is
|
|
47
43
|
bytes memory data
|
48
44
|
)
|
49
45
|
internal
|
50
|
-
initializer
|
51
46
|
virtual override
|
47
|
+
initializer()
|
52
48
|
{
|
53
49
|
(
|
54
|
-
address
|
55
|
-
|
56
|
-
|
57
|
-
) = abi.decode(data, (address, address, address));
|
50
|
+
address authority,
|
51
|
+
address registry
|
52
|
+
) = abi.decode(data, (address, address));
|
58
53
|
|
59
|
-
|
54
|
+
__Service_init(authority, registry, owner);
|
60
55
|
|
61
|
-
|
56
|
+
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
62
57
|
_bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
63
|
-
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
64
58
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
65
|
-
|
66
59
|
_staking = IStaking(getRegistry().getStakingAddress());
|
67
60
|
|
68
|
-
|
61
|
+
_registerInterface(type(IPoolService).interfaceId);
|
69
62
|
}
|
70
63
|
|
71
64
|
|
72
|
-
|
65
|
+
/// @inheritdoc IPoolService
|
66
|
+
function setMaxBalanceAmount(Amount maxBalanceAmount)
|
73
67
|
external
|
74
68
|
virtual
|
75
69
|
{
|
76
|
-
|
77
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
70
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
78
71
|
InstanceReader instanceReader = instance.getInstanceReader();
|
72
|
+
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
79
73
|
|
80
|
-
|
81
|
-
|
82
|
-
Amount previousMaxCapitalAmount = poolInfo.maxCapitalAmount;
|
83
|
-
|
84
|
-
poolInfo.maxCapitalAmount = maxCapitalAmount;
|
74
|
+
Amount previousMaxBalanceAmount = poolInfo.maxBalanceAmount;
|
75
|
+
poolInfo.maxBalanceAmount = maxBalanceAmount;
|
85
76
|
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
86
77
|
|
87
|
-
emit
|
88
|
-
*/
|
78
|
+
emit LogPoolServiceMaxBalanceAmountUpdated(poolNftId, previousMaxBalanceAmount, maxBalanceAmount);
|
89
79
|
}
|
90
80
|
|
91
|
-
|
81
|
+
|
82
|
+
function closeBundle(NftId bundleNftId)
|
92
83
|
external
|
93
84
|
virtual
|
94
85
|
{
|
95
|
-
(
|
96
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
86
|
+
_checkNftType(bundleNftId, BUNDLE());
|
97
87
|
|
98
|
-
|
99
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
88
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
100
89
|
|
101
|
-
//
|
102
|
-
if(poolInfo.bundleOwnerRole != PUBLIC_ROLE()) {
|
103
|
-
revert ErrorPoolServiceBundleOwnerRoleAlreadySet(poolNftId);
|
104
|
-
}
|
90
|
+
// TODO get performance fee for pool (#477)
|
105
91
|
|
106
|
-
|
107
|
-
|
92
|
+
// releasing collateral in bundle
|
93
|
+
(Amount unstakedAmount, Amount feeAmount) = _bundleService.close(instance, bundleNftId);
|
94
|
+
|
95
|
+
_accountingService.decreasePoolBalance(
|
96
|
+
instance.getInstanceStore(),
|
97
|
+
poolNftId,
|
98
|
+
unstakedAmount + feeAmount,
|
99
|
+
AmountLib.zero());
|
100
|
+
|
101
|
+
emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
|
108
102
|
|
109
|
-
|
103
|
+
if ((unstakedAmount + feeAmount).gtz()){
|
104
|
+
IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
|
105
|
+
poolComponentInfo.tokenHandler.pushToken(
|
106
|
+
getRegistry().ownerOf(bundleNftId),
|
107
|
+
unstakedAmount + feeAmount);
|
108
|
+
}
|
110
109
|
}
|
111
110
|
|
112
111
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
112
|
+
/// @inheritdoc IPoolService
|
113
|
+
function processFundedClaim(
|
114
|
+
NftId policyNftId,
|
115
|
+
ClaimId claimId,
|
116
|
+
Amount availableAmount
|
117
|
+
)
|
118
118
|
external
|
119
119
|
virtual
|
120
120
|
{
|
121
|
-
(
|
121
|
+
_checkNftType(policyNftId, POLICY());
|
122
122
|
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
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
|
+
}
|
127
135
|
|
128
|
-
|
136
|
+
emit LogPoolServiceProcessFundedClaim(policyNftId, claimId, availableAmount);
|
129
137
|
|
130
|
-
//
|
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);
|
142
|
+
}
|
131
143
|
}
|
132
144
|
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
137
|
-
Seconds lifetime, // initial duration for which new policies are covered
|
138
|
-
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
139
|
-
)
|
145
|
+
|
146
|
+
/// @inheritdoc IPoolService
|
147
|
+
function stake(NftId bundleNftId, Amount amount)
|
140
148
|
external
|
141
149
|
virtual
|
142
|
-
|
150
|
+
// TODO: restricted() (once #462 is done)
|
151
|
+
returns(Amount netAmount)
|
143
152
|
{
|
144
|
-
(
|
153
|
+
_checkNftType(bundleNftId, BUNDLE());
|
154
|
+
|
155
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
145
156
|
InstanceReader instanceReader = instance.getInstanceReader();
|
157
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
158
|
+
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
146
159
|
|
147
|
-
(
|
148
|
-
|
149
|
-
|
150
|
-
) = FeeLib.calculateFee(
|
151
|
-
_getStakingFee(instanceReader, poolNftId),
|
152
|
-
stakingAmount);
|
160
|
+
if (bundleInfo.poolNftId != poolNftId) {
|
161
|
+
revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
162
|
+
}
|
153
163
|
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
164
|
+
{
|
165
|
+
Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
|
166
|
+
if (currentPoolBalance + amount > poolInfo.maxBalanceAmount) {
|
167
|
+
revert ErrorPoolServiceMaxBalanceAmountExceeded(poolNftId, poolInfo.maxBalanceAmount, currentPoolBalance, amount);
|
168
|
+
}
|
169
|
+
}
|
170
|
+
|
171
|
+
// calculate fees
|
172
|
+
IRegistry registry = getRegistry();
|
173
|
+
Amount feeAmount;
|
174
|
+
|
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(
|
165
188
|
instance.getInstanceStore(),
|
166
189
|
poolNftId,
|
167
|
-
|
168
|
-
|
190
|
+
netAmount,
|
191
|
+
feeAmount);
|
169
192
|
|
170
|
-
|
171
|
-
_collectStakingAmount(
|
172
|
-
instanceReader,
|
173
|
-
poolNftId,
|
174
|
-
bundleOwner,
|
175
|
-
stakingAmount);
|
193
|
+
_bundleService.stake(instance, bundleNftId, netAmount);
|
176
194
|
|
177
|
-
emit
|
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
|
+
}
|
178
208
|
}
|
179
209
|
|
180
|
-
|
181
|
-
|
210
|
+
|
211
|
+
/// @inheritdoc IPoolService
|
212
|
+
function unstake(NftId bundleNftId, Amount amount)
|
213
|
+
external
|
182
214
|
virtual
|
183
|
-
|
184
|
-
returns
|
215
|
+
// TODO: restricted() (once #462 is done)
|
216
|
+
returns(Amount netAmount)
|
185
217
|
{
|
186
|
-
|
187
|
-
|
218
|
+
_checkNftType(bundleNftId, BUNDLE());
|
219
|
+
|
220
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
221
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
222
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
223
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
224
|
+
|
225
|
+
if (bundleInfo.poolNftId != poolNftId) {
|
226
|
+
revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
227
|
+
}
|
228
|
+
|
229
|
+
// call bundle service for bookkeeping and additional checks
|
230
|
+
Amount unstakedAmount = _bundleService.unstake(instance, bundleNftId, amount);
|
231
|
+
|
232
|
+
// Important: from now on work only with unstakedAmount as it is the only reliable amount.
|
233
|
+
// if amount was max, this was set to the available amount
|
234
|
+
|
235
|
+
// TODO: handle performance fees (issue #477)
|
236
|
+
netAmount = unstakedAmount;
|
237
|
+
|
238
|
+
// update pool bookkeeping - performance fees stay in the pool, but as fees
|
239
|
+
_accountingService.decreasePoolBalance(
|
240
|
+
instanceStore,
|
241
|
+
poolNftId,
|
242
|
+
unstakedAmount,
|
243
|
+
AmountLib.zero());
|
244
|
+
|
245
|
+
|
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);
|
258
|
+
}
|
188
259
|
}
|
189
260
|
|
190
|
-
|
261
|
+
|
262
|
+
function fundPoolWallet(Amount amount)
|
191
263
|
external
|
192
264
|
virtual
|
265
|
+
// restricted()
|
193
266
|
{
|
194
|
-
(
|
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
|
+
}
|
195
277
|
|
196
|
-
|
278
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
279
|
+
emit LogPoolServiceWalletFunded(poolNftId, poolOwner, amount);
|
197
280
|
|
198
|
-
|
199
|
-
|
281
|
+
_pullStakingAmount(
|
282
|
+
reader,
|
283
|
+
poolNftId,
|
284
|
+
poolOwner,
|
285
|
+
amount);
|
286
|
+
}
|
200
287
|
|
201
|
-
// TODO get performance fee for pool, transfer of remaining funds + bundle fees to bundle owner
|
202
288
|
|
203
|
-
|
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);
|
204
313
|
}
|
205
314
|
|
206
315
|
|
207
316
|
function processSale(
|
208
317
|
NftId bundleNftId,
|
209
|
-
IPolicy.
|
318
|
+
IPolicy.PremiumInfo memory premium
|
210
319
|
)
|
211
320
|
external
|
212
321
|
virtual
|
213
322
|
restricted()
|
214
323
|
{
|
324
|
+
_checkNftType(bundleNftId, BUNDLE());
|
325
|
+
|
215
326
|
IRegistry registry = getRegistry();
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
IInstance instance = IInstance(instanceObjectInfo.objectAddress);
|
327
|
+
NftId poolNftId = registry.getParentNftId(bundleNftId);
|
328
|
+
(, address instanceAddress) = ContractLib.getInfoAndInstance(registry, poolNftId, true);
|
329
|
+
IInstance instance = IInstance(instanceAddress);
|
220
330
|
|
221
|
-
Amount poolFeeAmount =
|
222
|
-
Amount bundleFeeAmount =
|
223
|
-
Amount bundleNetAmount =
|
331
|
+
Amount poolFeeAmount = premium.poolFeeFixAmount + premium.poolFeeVarAmount;
|
332
|
+
Amount bundleFeeAmount = premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
333
|
+
Amount bundleNetAmount = premium.netPremiumAmount;
|
224
334
|
|
225
335
|
InstanceStore instanceStore = instance.getInstanceStore();
|
226
|
-
|
336
|
+
_accountingService.increasePoolBalance(
|
227
337
|
instanceStore,
|
228
|
-
|
338
|
+
poolNftId,
|
229
339
|
bundleNetAmount + bundleFeeAmount,
|
230
340
|
poolFeeAmount);
|
231
341
|
|
232
|
-
|
342
|
+
_accountingService.increaseBundleBalanceForPool(
|
233
343
|
instanceStore,
|
234
|
-
|
344
|
+
bundleNftId,
|
235
345
|
bundleNetAmount,
|
236
346
|
bundleFeeAmount);
|
237
347
|
}
|
@@ -249,13 +359,21 @@ contract PoolService is
|
|
249
359
|
virtual
|
250
360
|
restricted()
|
251
361
|
returns (
|
252
|
-
Amount
|
253
|
-
Amount
|
362
|
+
Amount totalCollateralAmount,
|
363
|
+
Amount localCollateralAmount
|
254
364
|
)
|
255
365
|
{
|
366
|
+
_checkNftType(productNftId, PRODUCT());
|
367
|
+
_checkNftType(applicationNftId, POLICY());
|
368
|
+
_checkNftType(bundleNftId, BUNDLE());
|
369
|
+
|
370
|
+
NftId poolNftId;
|
371
|
+
bool poolIsVerifyingApplications;
|
256
372
|
(
|
373
|
+
poolNftId,
|
374
|
+
totalCollateralAmount,
|
257
375
|
localCollateralAmount,
|
258
|
-
|
376
|
+
poolIsVerifyingApplications
|
259
377
|
) = calculateRequiredCollateral(
|
260
378
|
instance.getInstanceReader(),
|
261
379
|
productNftId,
|
@@ -274,15 +392,23 @@ contract PoolService is
|
|
274
392
|
token,
|
275
393
|
totalCollateralAmount);
|
276
394
|
|
277
|
-
//
|
278
|
-
|
279
|
-
|
395
|
+
// pool callback when required
|
396
|
+
if (poolIsVerifyingApplications) {
|
397
|
+
IPoolComponent pool = IPoolComponent(
|
398
|
+
getRegistry().getObjectAddress(poolNftId));
|
399
|
+
|
400
|
+
pool.verifyApplication(
|
401
|
+
applicationNftId,
|
402
|
+
bundleNftId,
|
403
|
+
totalCollateralAmount);
|
280
404
|
|
405
|
+
// TODO add logging
|
281
406
|
}
|
282
|
-
}
|
283
407
|
|
408
|
+
// TODO add logging
|
409
|
+
}
|
284
410
|
|
285
|
-
function
|
411
|
+
function processPayout(
|
286
412
|
IInstance instance,
|
287
413
|
address token,
|
288
414
|
NftId policyNftId,
|
@@ -293,6 +419,24 @@ contract PoolService is
|
|
293
419
|
virtual
|
294
420
|
restricted()
|
295
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
|
+
|
296
440
|
_bundleService.releaseCollateral(
|
297
441
|
instance,
|
298
442
|
policyNftId,
|
@@ -319,6 +463,8 @@ contract PoolService is
|
|
319
463
|
virtual
|
320
464
|
restricted()
|
321
465
|
{
|
466
|
+
_checkNftType(policyNftId, POLICY());
|
467
|
+
|
322
468
|
Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
|
323
469
|
|
324
470
|
_bundleService.releaseCollateral(
|
@@ -327,10 +473,6 @@ contract PoolService is
|
|
327
473
|
policyInfo.bundleNftId,
|
328
474
|
remainingCollateralAmount);
|
329
475
|
|
330
|
-
_bundleService.unlinkPolicy(
|
331
|
-
instance,
|
332
|
-
policyNftId);
|
333
|
-
|
334
476
|
// update value locked with staking service
|
335
477
|
_staking.decreaseTotalValueLocked(
|
336
478
|
instance.getNftId(),
|
@@ -347,16 +489,21 @@ contract PoolService is
|
|
347
489
|
public
|
348
490
|
view
|
349
491
|
returns(
|
492
|
+
NftId poolNftId,
|
493
|
+
Amount totalCollateralAmount,
|
350
494
|
Amount localCollateralAmount,
|
351
|
-
|
495
|
+
bool poolIsVerifyingApplications
|
352
496
|
)
|
353
497
|
{
|
354
|
-
|
498
|
+
_checkNftType(productNftId, PRODUCT());
|
499
|
+
|
500
|
+
poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
355
501
|
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
502
|
+
poolIsVerifyingApplications = poolInfo.isVerifyingApplications;
|
356
503
|
|
357
504
|
(
|
358
|
-
|
359
|
-
|
505
|
+
totalCollateralAmount,
|
506
|
+
localCollateralAmount
|
360
507
|
) = calculateRequiredCollateral(
|
361
508
|
poolInfo.collateralizationLevel,
|
362
509
|
poolInfo.retentionLevel,
|
@@ -372,18 +519,17 @@ contract PoolService is
|
|
372
519
|
public
|
373
520
|
pure
|
374
521
|
returns(
|
375
|
-
Amount
|
376
|
-
Amount
|
522
|
+
Amount totalCollateralAmount,
|
523
|
+
Amount localCollateralAmount
|
377
524
|
)
|
378
525
|
{
|
379
|
-
//
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
//
|
384
|
-
|
385
|
-
|
386
|
-
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());
|
387
533
|
}
|
388
534
|
|
389
535
|
|
@@ -392,6 +538,7 @@ contract PoolService is
|
|
392
538
|
Amount stakingAmount
|
393
539
|
)
|
394
540
|
internal
|
541
|
+
pure
|
395
542
|
returns (Amount stakingNetAmount)
|
396
543
|
{
|
397
544
|
stakingNetAmount = stakingAmount;
|
@@ -406,30 +553,60 @@ contract PoolService is
|
|
406
553
|
}
|
407
554
|
|
408
555
|
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
556
|
+
/// @dev Transfers the specified amount from the "from account" to the pool's wallet
|
557
|
+
function _pullStakingAmount(
|
558
|
+
InstanceReader reader,
|
559
|
+
NftId poolNftId,
|
560
|
+
address from,
|
561
|
+
Amount amount
|
562
|
+
)
|
563
|
+
internal
|
564
|
+
{
|
565
|
+
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
566
|
+
info.tokenHandler.pullToken(
|
567
|
+
from,
|
568
|
+
amount);
|
569
|
+
}
|
570
|
+
|
571
|
+
/// @dev Transfers the specified amount from the pool's wallet to the "to account"
|
572
|
+
function _pushUnstakingAmount(
|
573
|
+
InstanceReader reader,
|
413
574
|
NftId poolNftId,
|
414
|
-
address
|
575
|
+
address to,
|
415
576
|
Amount amount
|
416
577
|
)
|
417
578
|
internal
|
418
579
|
{
|
580
|
+
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
581
|
+
info.tokenHandler.pushToken(
|
582
|
+
to,
|
583
|
+
amount);
|
584
|
+
}
|
419
585
|
|
420
|
-
// collecting investor token
|
421
|
-
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
422
|
-
TokenHandler tokenHandler = componentInfo.tokenHandler;
|
423
|
-
address poolWallet = componentInfo.wallet;
|
424
586
|
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
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);
|
431
607
|
}
|
432
608
|
|
609
|
+
|
433
610
|
function _getDomain() internal pure override returns(ObjectType) {
|
434
611
|
return POOL();
|
435
612
|
}
|