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