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