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