@etherisc/gif-next 0.0.2-de9ede4-391 → 0.0.2-deb924b-641
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/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +65 -58
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +20 -22
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +27 -3
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +148 -62
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +149 -21
- 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 +82 -12
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +68 -13
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +79 -49
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +152 -33
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +51 -21
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +207 -192
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +53 -51
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +38 -8
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +97 -73
- 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 +76 -42
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +127 -40
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +233 -184
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +152 -33
- 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 +106 -56
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +152 -33
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -45
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +98 -48
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +127 -40
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +280 -147
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +152 -33
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +54 -21
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -3
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +80 -40
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +344 -99
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +127 -40
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +175 -199
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -58
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +20 -22
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +44 -272
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +96 -53
- 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 +68 -38
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +126 -35
- 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 +38 -8
- 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 +52 -22
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +75 -68
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +25 -27
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -21
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +127 -40
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +102 -201
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +33 -55
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +38 -80
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +38 -8
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +120 -175
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +51 -21
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +236 -281
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +61 -47
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +57 -50
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +16 -18
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +157 -112
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +152 -33
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -187
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +55 -65
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +27 -3
- 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 -68
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +144 -99
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +193 -173
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +45 -47
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +85 -78
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +31 -33
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +157 -112
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +76 -77
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +25 -19
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +26 -2
- 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 +64 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +250 -221
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +11 -13
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -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 +315 -49
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +51 -21
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +105 -108
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +40 -38
- 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 +57 -4
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- 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 +38 -8
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +27 -21
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -8
- 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/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +51 -21
- 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 +41 -22
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +98 -3
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +48 -43
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +101 -71
- 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 +31 -19
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -57
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +137 -51
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +22 -20
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +128 -128
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
- 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/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/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 +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.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 +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 +23 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/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/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/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +3 -4
- package/contracts/accounting/AccountingServiceManager.sol +1 -1
- package/contracts/authorization/AccessAdmin.sol +156 -82
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +277 -229
- package/contracts/authorization/IAccessAdmin.sol +13 -7
- package/contracts/authorization/IAuthorization.sol +15 -1
- package/contracts/distribution/BasicDistribution.sol +7 -5
- package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
- package/contracts/distribution/Distribution.sol +10 -8
- package/contracts/distribution/DistributionService.sol +26 -25
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +14 -13
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
- package/contracts/examples/fire/FireProduct.sol +3 -1
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -1
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleProduct.sol +25 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
- package/contracts/instance/BundleSet.sol +4 -4
- package/contracts/instance/IInstance.sol +6 -7
- package/contracts/instance/IInstanceService.sol +2 -0
- package/contracts/instance/Instance.sol +19 -11
- package/contracts/instance/InstanceAdmin.sol +213 -64
- package/contracts/instance/InstanceAuthorizationV3.sol +8 -17
- package/contracts/instance/InstanceReader.sol +75 -34
- package/contracts/instance/InstanceService.sol +43 -31
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +1 -0
- package/contracts/instance/RiskSet.sol +11 -12
- package/contracts/instance/base/ObjectLifecycle.sol +2 -1
- package/contracts/instance/base/ObjectSet.sol +7 -8
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +0 -8
- package/contracts/instance/module/IDistribution.sol +2 -1
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +16 -15
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPoolAuthorization.sol +21 -13
- package/contracts/pool/BundleService.sol +28 -58
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +13 -19
- package/contracts/pool/IPoolService.sol +50 -38
- package/contracts/pool/Pool.sol +9 -9
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +296 -154
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +3 -3
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +2 -0
- package/contracts/product/BasicProductAuthorization.sol +23 -8
- package/contracts/product/ClaimService.sol +157 -139
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +11 -6
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/PolicyService.sol +90 -144
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +23 -19
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +51 -0
- package/contracts/product/RiskService.sol +61 -23
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/IRegistry.sol +8 -15
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/Registry.sol +7 -2
- package/contracts/registry/RegistryAdmin.sol +126 -229
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +124 -99
- package/contracts/registry/ServiceAuthorizationV3.sol +42 -2
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +27 -19
- package/contracts/shared/ComponentService.sol +85 -89
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/ContractLib.sol +32 -3
- package/contracts/shared/IComponent.sol +3 -4
- package/contracts/shared/IComponentService.sol +0 -4
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +2 -2
- package/contracts/shared/NftOwnable.sol +4 -4
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +45 -19
- package/contracts/shared/RegistryLinked.sol +1 -1
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +40 -88
- package/contracts/staking/IStaking.sol +1 -10
- package/contracts/staking/IStakingService.sol +11 -1
- package/contracts/staking/StakeManagerLib.sol +67 -16
- package/contracts/staking/Staking.sol +35 -20
- package/contracts/staking/StakingReader.sol +1 -16
- package/contracts/staking/StakingService.sol +53 -44
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/type/ObjectType.sol +41 -27
- package/contracts/type/RiskId.sol +5 -0
- package/contracts/type/RoleId.sol +24 -4
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +1 -1
- 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/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
@@ -8,6 +8,7 @@ import {IComponents} from "../instance/module/IComponents.sol";
|
|
8
8
|
import {IComponentService} from "../shared/IComponentService.sol";
|
9
9
|
import {IInstance} from "../instance/IInstance.sol";
|
10
10
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
11
|
+
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
11
12
|
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
12
13
|
import {IPoolService} from "./IPoolService.sol";
|
13
14
|
import {IProductComponent} from "../product/IProductComponent.sol";
|
@@ -17,18 +18,20 @@ import {IStaking} from "../staking/IStaking.sol";
|
|
17
18
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
18
19
|
import {ClaimId} from "../type/ClaimId.sol";
|
19
20
|
import {ContractLib} from "../shared/ContractLib.sol";
|
20
|
-
import {
|
21
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
22
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
23
|
+
import {KEEP_STATE} from "../type/StateId.sol";
|
21
24
|
import {NftId} from "../type/NftId.sol";
|
22
25
|
import {ObjectType, ACCOUNTING, POOL, BUNDLE, PRODUCT, POLICY, COMPONENT} from "../type/ObjectType.sol";
|
23
|
-
import {
|
24
|
-
import {
|
25
|
-
import {UFixed} from "../type/UFixed.sol";
|
26
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
27
|
+
import {PoolLib} from "./PoolLib.sol";
|
26
28
|
import {Service} from "../shared/Service.sol";
|
27
|
-
import {
|
28
|
-
import {
|
29
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
30
|
+
import {UFixed} from "../type/UFixed.sol";
|
29
31
|
|
30
32
|
string constant POOL_SERVICE_NAME = "PoolService";
|
31
33
|
|
34
|
+
|
32
35
|
contract PoolService is
|
33
36
|
Service,
|
34
37
|
IPoolService
|
@@ -47,11 +50,11 @@ contract PoolService is
|
|
47
50
|
initializer()
|
48
51
|
{
|
49
52
|
(
|
50
|
-
address
|
51
|
-
address
|
53
|
+
address authority,
|
54
|
+
address registry
|
52
55
|
) = abi.decode(data, (address, address));
|
53
56
|
|
54
|
-
|
57
|
+
__Service_init(authority, registry, owner);
|
55
58
|
|
56
59
|
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
57
60
|
_bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
@@ -102,8 +105,7 @@ contract PoolService is
|
|
102
105
|
|
103
106
|
if ((unstakedAmount + feeAmount).gtz()){
|
104
107
|
IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
|
105
|
-
poolComponentInfo.tokenHandler.
|
106
|
-
poolComponentInfo.tokenHandler.getWallet(),
|
108
|
+
poolComponentInfo.tokenHandler.pushToken(
|
107
109
|
getRegistry().ownerOf(bundleNftId),
|
108
110
|
unstakedAmount + feeAmount);
|
109
111
|
}
|
@@ -123,7 +125,7 @@ contract PoolService is
|
|
123
125
|
|
124
126
|
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
125
127
|
InstanceReader instanceReader = instance.getInstanceReader();
|
126
|
-
NftId productNftId = getRegistry().
|
128
|
+
NftId productNftId = getRegistry().getParentNftId(poolNftId);
|
127
129
|
|
128
130
|
// check policy matches with calling pool
|
129
131
|
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
@@ -144,23 +146,47 @@ contract PoolService is
|
|
144
146
|
}
|
145
147
|
|
146
148
|
|
149
|
+
// function _checkAndGetPoolInfo(NftId bundleNftId)
|
150
|
+
// internal
|
151
|
+
// view
|
152
|
+
// returns (
|
153
|
+
// InstanceReader instanceReader,
|
154
|
+
// InstanceStore instanceStore,
|
155
|
+
// NftId instanceNftId,
|
156
|
+
// NftId poolNftId,
|
157
|
+
// IComponents.PoolInfo memory poolInfo
|
158
|
+
// )
|
159
|
+
// {
|
160
|
+
// _checkNftType(bundleNftId, BUNDLE());
|
161
|
+
|
162
|
+
// (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
163
|
+
// instanceReader = instance.getInstanceReader();
|
164
|
+
// instanceStore = instance.getInstanceStore();
|
165
|
+
// instanceNftId = instance.getNftId();
|
166
|
+
// poolInfo = instanceReader.getPoolInfo(poolNftId);
|
167
|
+
|
168
|
+
// if (getRegistry().getParentNftId(bundleNftId) != poolNftId) {
|
169
|
+
// revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
170
|
+
// }
|
171
|
+
// }
|
172
|
+
|
173
|
+
|
147
174
|
/// @inheritdoc IPoolService
|
148
175
|
function stake(NftId bundleNftId, Amount amount)
|
149
176
|
external
|
150
177
|
virtual
|
151
178
|
// TODO: restricted() (once #462 is done)
|
152
|
-
returns(
|
179
|
+
returns(
|
180
|
+
Amount netAmount
|
181
|
+
)
|
153
182
|
{
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
if (bundleInfo.poolNftId != poolNftId) {
|
162
|
-
revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
163
|
-
}
|
183
|
+
(
|
184
|
+
InstanceReader instanceReader,
|
185
|
+
InstanceStore instanceStore,
|
186
|
+
NftId instanceNftId,
|
187
|
+
NftId poolNftId,
|
188
|
+
IComponents.PoolInfo memory poolInfo
|
189
|
+
) = PoolLib.checkAndGetPoolInfo(getRegistry(), msg.sender, bundleNftId);
|
164
190
|
|
165
191
|
{
|
166
192
|
Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
|
@@ -170,37 +196,33 @@ contract PoolService is
|
|
170
196
|
}
|
171
197
|
|
172
198
|
// calculate fees
|
173
|
-
IRegistry registry = getRegistry();
|
174
199
|
Amount feeAmount;
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
(
|
180
|
-
|
181
|
-
|
182
|
-
)
|
183
|
-
stakingFee,
|
184
|
-
amount);
|
185
|
-
}
|
200
|
+
(
|
201
|
+
feeAmount,
|
202
|
+
netAmount
|
203
|
+
) = PoolLib.calculateStakingAmounts(
|
204
|
+
getRegistry(),
|
205
|
+
instanceReader,
|
206
|
+
poolNftId,
|
207
|
+
amount);
|
186
208
|
|
187
209
|
// do all the book keeping
|
188
210
|
_accountingService.increasePoolBalance(
|
189
|
-
|
211
|
+
instanceStore,
|
190
212
|
poolNftId,
|
191
213
|
netAmount,
|
192
214
|
feeAmount);
|
193
215
|
|
194
|
-
_bundleService.stake(
|
216
|
+
_bundleService.stake(instanceReader, instanceStore, bundleNftId, netAmount);
|
195
217
|
|
196
|
-
emit LogPoolServiceBundleStaked(
|
218
|
+
emit LogPoolServiceBundleStaked(instanceNftId, poolNftId, bundleNftId, amount, netAmount);
|
197
219
|
|
198
220
|
// only collect staking amount when pool is not externally managed
|
199
221
|
if (!poolInfo.isExternallyManaged) {
|
200
222
|
|
201
223
|
// collect tokens from bundle owner
|
202
224
|
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
203
|
-
|
225
|
+
_pullStakingAmount(
|
204
226
|
instanceReader,
|
205
227
|
poolNftId,
|
206
228
|
bundleOwner,
|
@@ -216,19 +238,15 @@ contract PoolService is
|
|
216
238
|
// TODO: restricted() (once #462 is done)
|
217
239
|
returns(Amount netAmount)
|
218
240
|
{
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
if (bundleInfo.poolNftId != poolNftId) {
|
227
|
-
revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
228
|
-
}
|
241
|
+
(
|
242
|
+
InstanceReader instanceReader,
|
243
|
+
InstanceStore instanceStore,
|
244
|
+
NftId instanceNftId,
|
245
|
+
NftId poolNftId,
|
246
|
+
) = PoolLib.checkAndGetPoolInfo(getRegistry(), msg.sender, bundleNftId);
|
229
247
|
|
230
248
|
// call bundle service for bookkeeping and additional checks
|
231
|
-
Amount unstakedAmount = _bundleService.unstake(
|
249
|
+
Amount unstakedAmount = _bundleService.unstake(instanceStore, bundleNftId, amount);
|
232
250
|
|
233
251
|
// Important: from now on work only with unstakedAmount as it is the only reliable amount.
|
234
252
|
// if amount was max, this was set to the available amount
|
@@ -244,14 +262,14 @@ contract PoolService is
|
|
244
262
|
AmountLib.zero());
|
245
263
|
|
246
264
|
|
247
|
-
emit LogPoolServiceBundleUnstaked(
|
265
|
+
emit LogPoolServiceBundleUnstaked(instanceNftId, poolNftId, bundleNftId, unstakedAmount, netAmount);
|
248
266
|
|
249
267
|
// only distribute staking amount when pool is not externally managed
|
250
268
|
if (!instanceReader.getPoolInfo(poolNftId).isExternallyManaged) {
|
251
269
|
|
252
270
|
// transfer amount to bundle owner
|
253
271
|
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
254
|
-
|
272
|
+
_pushUnstakingAmount(
|
255
273
|
instanceReader,
|
256
274
|
poolNftId,
|
257
275
|
bundleOwner,
|
@@ -279,7 +297,7 @@ contract PoolService is
|
|
279
297
|
address poolOwner = getRegistry().ownerOf(poolNftId);
|
280
298
|
emit LogPoolServiceWalletFunded(poolNftId, poolOwner, amount);
|
281
299
|
|
282
|
-
|
300
|
+
_pullStakingAmount(
|
283
301
|
reader,
|
284
302
|
poolNftId,
|
285
303
|
poolOwner,
|
@@ -306,7 +324,7 @@ contract PoolService is
|
|
306
324
|
address poolOwner = getRegistry().ownerOf(poolNftId);
|
307
325
|
emit LogPoolServiceWalletDefunded(poolNftId, poolOwner, amount);
|
308
326
|
|
309
|
-
|
327
|
+
_pushUnstakingAmount(
|
310
328
|
reader,
|
311
329
|
poolNftId,
|
312
330
|
poolOwner,
|
@@ -325,7 +343,7 @@ contract PoolService is
|
|
325
343
|
_checkNftType(bundleNftId, BUNDLE());
|
326
344
|
|
327
345
|
IRegistry registry = getRegistry();
|
328
|
-
NftId poolNftId = registry.
|
346
|
+
NftId poolNftId = registry.getParentNftId(bundleNftId);
|
329
347
|
(, address instanceAddress) = ContractLib.getInfoAndInstance(registry, poolNftId, true);
|
330
348
|
IInstance instance = IInstance(instanceAddress);
|
331
349
|
|
@@ -375,7 +393,7 @@ contract PoolService is
|
|
375
393
|
totalCollateralAmount,
|
376
394
|
localCollateralAmount,
|
377
395
|
poolIsVerifyingApplications
|
378
|
-
) = calculateRequiredCollateral(
|
396
|
+
) = PoolLib.calculateRequiredCollateral(
|
379
397
|
instance.getInstanceReader(),
|
380
398
|
productNftId,
|
381
399
|
sumInsuredAmount);
|
@@ -410,21 +428,24 @@ contract PoolService is
|
|
410
428
|
}
|
411
429
|
|
412
430
|
function processPayout(
|
413
|
-
|
414
|
-
|
431
|
+
InstanceReader instanceReader,
|
432
|
+
InstanceStore instanceStore,
|
433
|
+
NftId productNftId,
|
415
434
|
NftId policyNftId,
|
416
|
-
|
417
|
-
|
435
|
+
NftId bundleNftId,
|
436
|
+
PayoutId payoutId,
|
437
|
+
Amount payoutAmount,
|
438
|
+
address payoutBeneficiary
|
418
439
|
)
|
419
440
|
external
|
420
441
|
virtual
|
421
442
|
restricted()
|
422
443
|
{
|
444
|
+
// checks
|
423
445
|
_checkNftType(policyNftId, POLICY());
|
424
446
|
|
425
|
-
|
426
|
-
NftId poolNftId = getRegistry().
|
427
|
-
InstanceStore instanceStore = instance.getInstanceStore();
|
447
|
+
// effects
|
448
|
+
NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
|
428
449
|
|
429
450
|
_accountingService.decreasePoolBalance(
|
430
451
|
instanceStore,
|
@@ -439,16 +460,123 @@ contract PoolService is
|
|
439
460
|
AmountLib.zero());
|
440
461
|
|
441
462
|
_bundleService.releaseCollateral(
|
442
|
-
|
463
|
+
instanceStore,
|
443
464
|
policyNftId,
|
444
|
-
|
465
|
+
bundleNftId,
|
445
466
|
payoutAmount);
|
446
467
|
|
447
468
|
// update value locked with staking service
|
469
|
+
TokenHandler poolTokenHandler = TokenHandler(
|
470
|
+
instanceReader.getTokenHandler(
|
471
|
+
poolNftId));
|
472
|
+
|
448
473
|
_staking.decreaseTotalValueLocked(
|
449
|
-
|
450
|
-
|
474
|
+
instanceReader.getInstanceNftId(),
|
475
|
+
address(poolTokenHandler.TOKEN()),
|
451
476
|
payoutAmount);
|
477
|
+
|
478
|
+
// interactions
|
479
|
+
_transferTokenAndNotifyPolicyHolder(
|
480
|
+
instanceReader,
|
481
|
+
poolTokenHandler,
|
482
|
+
productNftId,
|
483
|
+
policyNftId,
|
484
|
+
payoutId,
|
485
|
+
payoutAmount,
|
486
|
+
payoutBeneficiary);
|
487
|
+
}
|
488
|
+
|
489
|
+
function _transferTokenAndNotifyPolicyHolder(
|
490
|
+
InstanceReader instanceReader,
|
491
|
+
TokenHandler poolTokenHandler,
|
492
|
+
NftId productNftId,
|
493
|
+
NftId policyNftId,
|
494
|
+
PayoutId payoutId,
|
495
|
+
Amount payoutAmount,
|
496
|
+
address payoutBeneficiary
|
497
|
+
)
|
498
|
+
internal
|
499
|
+
{
|
500
|
+
(
|
501
|
+
Amount netPayoutAmount,
|
502
|
+
Amount processingFeeAmount,
|
503
|
+
address beneficiary
|
504
|
+
) = PoolLib.calculatePayoutAmounts(
|
505
|
+
getRegistry(),
|
506
|
+
instanceReader,
|
507
|
+
productNftId,
|
508
|
+
policyNftId,
|
509
|
+
payoutAmount,
|
510
|
+
payoutBeneficiary);
|
511
|
+
|
512
|
+
// 1st token tx to payout to beneficiary
|
513
|
+
poolTokenHandler.pushToken(
|
514
|
+
beneficiary,
|
515
|
+
netPayoutAmount);
|
516
|
+
|
517
|
+
// 2nd token tx to transfer processing fees to product wallet
|
518
|
+
// if processingFeeAmount > 0
|
519
|
+
if (processingFeeAmount.gtz()) {
|
520
|
+
poolTokenHandler.pushToken(
|
521
|
+
instanceReader.getWallet(productNftId),
|
522
|
+
processingFeeAmount);
|
523
|
+
}
|
524
|
+
|
525
|
+
// callback to policy holder if applicable
|
526
|
+
_policyHolderPayoutExecuted(
|
527
|
+
policyNftId,
|
528
|
+
payoutId,
|
529
|
+
beneficiary,
|
530
|
+
netPayoutAmount);
|
531
|
+
}
|
532
|
+
|
533
|
+
|
534
|
+
/// @inheritdoc IPoolService
|
535
|
+
function withdrawBundleFees(
|
536
|
+
NftId bundleNftId,
|
537
|
+
Amount amount
|
538
|
+
)
|
539
|
+
public
|
540
|
+
virtual
|
541
|
+
restricted()
|
542
|
+
returns (Amount withdrawnAmount)
|
543
|
+
{
|
544
|
+
// checks
|
545
|
+
_checkNftType(bundleNftId, BUNDLE());
|
546
|
+
|
547
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
548
|
+
InstanceReader reader = instance.getInstanceReader();
|
549
|
+
|
550
|
+
// determine withdrawn amount
|
551
|
+
withdrawnAmount = amount;
|
552
|
+
if (withdrawnAmount.gte(AmountLib.max())) {
|
553
|
+
withdrawnAmount = reader.getFeeAmount(bundleNftId);
|
554
|
+
} else {
|
555
|
+
if (withdrawnAmount > reader.getFeeAmount(bundleNftId)) {
|
556
|
+
revert ErrorPoolServiceFeesWithdrawAmountExceedsLimit(withdrawnAmount, reader.getFeeAmount(bundleNftId));
|
557
|
+
}
|
558
|
+
}
|
559
|
+
|
560
|
+
// effects
|
561
|
+
// decrease fee counters by withdrawnAmount
|
562
|
+
{
|
563
|
+
InstanceStore store = instance.getInstanceStore();
|
564
|
+
// decrease fee amount of the bundle
|
565
|
+
_accountingService.decreaseBundleBalanceForPool(store, bundleNftId, AmountLib.zero(), withdrawnAmount);
|
566
|
+
// decrease pool balance
|
567
|
+
_accountingService.decreasePoolBalance(store, poolNftId, withdrawnAmount, AmountLib.zero());
|
568
|
+
}
|
569
|
+
|
570
|
+
// interactions
|
571
|
+
// transfer amount to bundle owner
|
572
|
+
{
|
573
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
574
|
+
TokenHandler tokenHandler = reader.getTokenHandler(poolNftId);
|
575
|
+
address token = address(tokenHandler.TOKEN());
|
576
|
+
emit LogPoolServiceFeesWithdrawn(bundleNftId, bundleOwner, token, withdrawnAmount);
|
577
|
+
|
578
|
+
tokenHandler.pushToken(bundleOwner, withdrawnAmount);
|
579
|
+
}
|
452
580
|
}
|
453
581
|
|
454
582
|
|
@@ -456,7 +584,6 @@ contract PoolService is
|
|
456
584
|
/// may only be called by the policy service for unlocked pool components
|
457
585
|
function releaseCollateral(
|
458
586
|
IInstance instance,
|
459
|
-
address token,
|
460
587
|
NftId policyNftId,
|
461
588
|
IPolicy.PolicyInfo memory policyInfo
|
462
589
|
)
|
@@ -469,93 +596,97 @@ contract PoolService is
|
|
469
596
|
Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
|
470
597
|
|
471
598
|
_bundleService.releaseCollateral(
|
472
|
-
instance,
|
599
|
+
instance.getInstanceStore(),
|
473
600
|
policyNftId,
|
474
601
|
policyInfo.bundleNftId,
|
475
602
|
remainingCollateralAmount);
|
476
603
|
|
477
604
|
// update value locked with staking service
|
605
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
478
606
|
_staking.decreaseTotalValueLocked(
|
479
|
-
|
480
|
-
|
607
|
+
instanceReader.getInstanceNftId(),
|
608
|
+
address(instanceReader.getToken(policyInfo.productNftId)),
|
481
609
|
remainingCollateralAmount);
|
482
610
|
}
|
483
611
|
|
484
612
|
|
485
|
-
function calculateRequiredCollateral(
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
)
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
{
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
613
|
+
// function calculateRequiredCollateral(
|
614
|
+
// InstanceReader instanceReader,
|
615
|
+
// NftId productNftId,
|
616
|
+
// Amount sumInsuredAmount
|
617
|
+
// )
|
618
|
+
// public
|
619
|
+
// view
|
620
|
+
// returns(
|
621
|
+
// NftId poolNftId,
|
622
|
+
// Amount totalCollateralAmount,
|
623
|
+
// Amount localCollateralAmount,
|
624
|
+
// bool poolIsVerifyingApplications
|
625
|
+
// )
|
626
|
+
// {
|
627
|
+
// return CollateralLib.calculateRequiredCollateral(
|
628
|
+
// instanceReader,
|
629
|
+
// productNftId,
|
630
|
+
// sumInsuredAmount);
|
631
|
+
// }
|
632
|
+
|
633
|
+
// _checkNftType(productNftId, PRODUCT());
|
634
|
+
|
635
|
+
// poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
636
|
+
// IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
637
|
+
// poolIsVerifyingApplications = poolInfo.isVerifyingApplications;
|
638
|
+
|
639
|
+
// (
|
640
|
+
// totalCollateralAmount,
|
641
|
+
// localCollateralAmount
|
642
|
+
// ) = calculateRequiredCollateral(
|
643
|
+
// poolInfo.collateralizationLevel,
|
644
|
+
// poolInfo.retentionLevel,
|
645
|
+
// sumInsuredAmount);
|
646
|
+
// }
|
647
|
+
|
648
|
+
|
649
|
+
// function calculateRequiredCollateral(
|
650
|
+
// UFixed collateralizationLevel,
|
651
|
+
// UFixed retentionLevel,
|
652
|
+
// Amount sumInsuredAmount
|
653
|
+
// )
|
654
|
+
// public
|
655
|
+
// pure
|
656
|
+
// returns(
|
657
|
+
// Amount totalCollateralAmount,
|
658
|
+
// Amount localCollateralAmount
|
659
|
+
// )
|
660
|
+
// {
|
661
|
+
// // collateralization is applied to sum insured
|
662
|
+
// UFixed totalUFixed = collateralizationLevel * sumInsuredAmount.toUFixed();
|
663
|
+
// totalCollateralAmount = AmountLib.toAmount(totalUFixed.toInt());
|
664
|
+
|
665
|
+
// // retention level defines how much capital is required locally
|
666
|
+
// localCollateralAmount = AmountLib.toAmount(
|
667
|
+
// (retentionLevel * totalUFixed).toInt());
|
668
|
+
// }
|
669
|
+
|
670
|
+
|
671
|
+
|
672
|
+
|
673
|
+
function _policyHolderPayoutExecuted(
|
674
|
+
NftId policyNftId,
|
675
|
+
PayoutId payoutId,
|
676
|
+
address beneficiary,
|
677
|
+
Amount payoutAmount
|
540
678
|
)
|
541
679
|
internal
|
542
|
-
pure
|
543
|
-
returns (Amount stakingNetAmount)
|
544
680
|
{
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
if (FeeLib.gtz(stakingFee)) {
|
549
|
-
(Amount feeAmount, Amount netAmount) = FeeLib.calculateFee(stakingFee, stakingAmount);
|
550
|
-
stakingNetAmount = netAmount;
|
551
|
-
|
552
|
-
// TODO update fee balance for pool
|
681
|
+
IPolicyHolder policyHolder = PoolLib.getPolicyHolder(getRegistry(), policyNftId);
|
682
|
+
if(address(policyHolder) != address(0)) {
|
683
|
+
policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
|
553
684
|
}
|
554
685
|
}
|
555
686
|
|
556
687
|
|
557
|
-
/// @dev
|
558
|
-
function
|
688
|
+
/// @dev Transfers the specified amount from the "from account" to the pool's wallet
|
689
|
+
function _pullStakingAmount(
|
559
690
|
InstanceReader reader,
|
560
691
|
NftId poolNftId,
|
561
692
|
address from,
|
@@ -564,13 +695,13 @@ contract PoolService is
|
|
564
695
|
internal
|
565
696
|
{
|
566
697
|
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
567
|
-
info.tokenHandler.
|
698
|
+
info.tokenHandler.pullToken(
|
568
699
|
from,
|
569
700
|
amount);
|
570
701
|
}
|
571
702
|
|
572
|
-
/// @dev
|
573
|
-
function
|
703
|
+
/// @dev Transfers the specified amount from the pool's wallet to the "to account"
|
704
|
+
function _pushUnstakingAmount(
|
574
705
|
InstanceReader reader,
|
575
706
|
NftId poolNftId,
|
576
707
|
address to,
|
@@ -579,8 +710,7 @@ contract PoolService is
|
|
579
710
|
internal
|
580
711
|
{
|
581
712
|
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
582
|
-
info.tokenHandler.
|
583
|
-
info.tokenHandler.getWallet(),
|
713
|
+
info.tokenHandler.pushToken(
|
584
714
|
to,
|
585
715
|
amount);
|
586
716
|
}
|
@@ -595,19 +725,31 @@ contract PoolService is
|
|
595
725
|
IInstance instance
|
596
726
|
)
|
597
727
|
{
|
598
|
-
(
|
599
|
-
IRegistry.ObjectInfo memory info,
|
600
|
-
address instanceAddress
|
601
|
-
) = ContractLib.getAndVerifyComponent(
|
602
|
-
getRegistry(),
|
603
|
-
msg.sender,
|
604
|
-
POOL(),
|
605
|
-
true); // only active pools
|
606
|
-
|
607
|
-
poolNftId = info.nftId;
|
608
|
-
instance = IInstance(instanceAddress);
|
728
|
+
return PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
609
729
|
}
|
610
730
|
|
731
|
+
// function _getAndVerifyActivePool()
|
732
|
+
// internal
|
733
|
+
// virtual
|
734
|
+
// view
|
735
|
+
// returns (
|
736
|
+
// NftId poolNftId,
|
737
|
+
// IInstance instance
|
738
|
+
// )
|
739
|
+
// {
|
740
|
+
// (
|
741
|
+
// IRegistry.ObjectInfo memory info,
|
742
|
+
// address instanceAddress
|
743
|
+
// ) = ContractLib.getAndVerifyComponent(
|
744
|
+
// getRegistry(),
|
745
|
+
// msg.sender,
|
746
|
+
// POOL(),
|
747
|
+
// true); // only active pools
|
748
|
+
|
749
|
+
// poolNftId = info.nftId;
|
750
|
+
// instance = IInstance(instanceAddress);
|
751
|
+
// }
|
752
|
+
|
611
753
|
|
612
754
|
function _getDomain() internal pure override returns(ObjectType) {
|
613
755
|
return POOL();
|
@@ -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),
|
@@ -41,11 +41,11 @@ contract ApplicationService is
|
|
41
41
|
initializer()
|
42
42
|
{
|
43
43
|
(
|
44
|
-
address
|
45
|
-
address
|
44
|
+
address authority,
|
45
|
+
address registry
|
46
46
|
) = abi.decode(data, (address, address));
|
47
47
|
|
48
|
-
|
48
|
+
__Service_init(authority, registry, owner);
|
49
49
|
|
50
50
|
_distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
51
51
|
_pricingService = IPricingService(_getServiceAddress(PRICE()));
|