@etherisc/gif-next 0.0.2-f08528a-758 → 0.0.2-f0ccf08-591
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 +113 -10
- 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/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → accounting/IAccountingService.sol/IAccountingService.json} +365 -113
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +680 -264
- 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 +456 -24
- 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 +549 -209
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +215 -18
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +265 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +473 -17
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +198 -478
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +431 -36
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +120 -381
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +587 -316
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +205 -119
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +123 -194
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +347 -90
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1461 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2018 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1404 -0
- 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 +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1628 -0
- 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 +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2405 -0
- 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 +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +546 -71
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +292 -59
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +556 -173
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1042 -314
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +370 -69
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1685 -774
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +305 -229
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +106 -106
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +921 -728
- 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 +48 -7
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +133 -350
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +429 -37
- 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 +117 -136
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +109 -318
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +169 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +140 -98
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +175 -421
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +387 -228
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +183 -105
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +212 -35
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +139 -212
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +460 -308
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +129 -392
- 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 +705 -552
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +189 -107
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +188 -180
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +122 -100
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +276 -435
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +431 -234
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +158 -124
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +136 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +308 -16
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +365 -104
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +157 -83
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +260 -229
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +88 -8
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +465 -307
- 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 +155 -109
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +226 -335
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +128 -138
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +268 -427
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +378 -30
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +72 -152
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +604 -87
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +801 -395
- 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 +109 -292
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +104 -90
- 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 +48 -7
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
- 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 +67 -277
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +538 -538
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +153 -121
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +80 -100
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +499 -252
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +106 -136
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +98 -318
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +196 -143
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +155 -23
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +292 -393
- 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 +48 -7
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +142 -103
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +41 -73
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +224 -171
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +121 -95
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +213 -153
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +95 -49
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
- 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 +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -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/Seconds.sol/SecondsLib.json +50 -2
- 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/StateId.sol/StateIdLib.json +15 -2
- 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 +23 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +109 -35
- 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 +120 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.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 +458 -266
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +159 -203
- package/contracts/authorization/IAccess.sol +25 -6
- package/contracts/authorization/IAccessAdmin.sol +87 -79
- package/contracts/authorization/IAuthorization.sol +9 -36
- package/contracts/authorization/IServiceAuthorization.sol +57 -17
- package/contracts/authorization/ServiceAuthorization.sol +254 -24
- package/contracts/distribution/BasicDistribution.sol +20 -28
- package/contracts/distribution/BasicDistributionAuthorization.sol +34 -10
- package/contracts/distribution/Distribution.sol +43 -81
- package/contracts/distribution/DistributionService.sol +260 -129
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +11 -14
- package/contracts/distribution/IDistributionService.sol +50 -26
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +105 -46
- package/contracts/instance/IInstanceService.sol +55 -34
- package/contracts/instance/Instance.sol +189 -98
- package/contracts/instance/InstanceAdmin.sol +276 -159
- package/contracts/instance/InstanceAuthorizationV3.sol +127 -64
- package/contracts/instance/InstanceReader.sol +478 -251
- package/contracts/instance/InstanceService.sol +299 -231
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +24 -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 +11 -4
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +30 -20
- package/contracts/instance/module/IDistribution.sol +21 -9
- package/contracts/instance/module/IPolicy.sol +50 -29
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +1 -4
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +21 -24
- package/contracts/oracle/OracleService.sol +117 -85
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +37 -28
- package/contracts/pool/BasicPoolAuthorization.sol +42 -9
- package/contracts/pool/BundleService.sol +209 -109
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +31 -22
- package/contracts/pool/IPoolComponent.sol +20 -10
- package/contracts/pool/IPoolService.sol +90 -75
- package/contracts/pool/Pool.sol +145 -113
- package/contracts/pool/PoolLib.sol +353 -0
- package/contracts/pool/PoolService.sol +391 -256
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +127 -81
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +12 -45
- package/contracts/product/BasicProductAuthorization.sol +31 -10
- package/contracts/product/ClaimService.sol +368 -179
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +9 -2
- package/contracts/product/IClaimService.sol +44 -8
- package/contracts/product/IPolicyService.sol +53 -36
- package/contracts/product/IPricingService.sol +11 -10
- package/contracts/product/IProductComponent.sol +28 -5
- package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
- package/contracts/product/PolicyService.sol +436 -271
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +75 -65
- package/contracts/product/PricingServiceManager.sol +6 -9
- package/contracts/product/Product.sol +168 -93
- package/contracts/product/RiskService.sol +154 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +78 -29
- package/contracts/registry/IRegistryService.sol +3 -10
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +368 -216
- package/contracts/registry/RegistryAdmin.sol +112 -289
- package/contracts/registry/RegistryAuthorization.sol +277 -0
- package/contracts/registry/RegistryService.sol +41 -66
- package/contracts/registry/RegistryServiceManager.sol +5 -5
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +520 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +201 -57
- package/contracts/registry/TokenRegistry.sol +14 -15
- package/contracts/shared/Component.sol +65 -136
- package/contracts/shared/ComponentService.sol +440 -343
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ContractLib.sol +311 -0
- package/contracts/shared/IComponent.sol +5 -17
- package/contracts/shared/IComponentService.sol +49 -41
- package/contracts/shared/IInstanceLinkedComponent.sol +7 -27
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +22 -1
- package/contracts/shared/IService.sol +4 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
- package/contracts/shared/InstanceLinkedComponent.sol +80 -37
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +31 -11
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +52 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +22 -38
- package/contracts/shared/TokenHandler.sol +310 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +26 -15
- package/contracts/staking/IStakingService.sol +31 -9
- package/contracts/staking/Staking.sol +122 -90
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +95 -45
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +26 -33
- package/contracts/staking/StakingService.sol +93 -37
- package/contracts/staking/StakingServiceManager.sol +8 -7
- package/contracts/staking/StakingStore.sol +14 -23
- package/contracts/staking/TargetManagerLib.sol +8 -4
- package/contracts/type/Amount.sol +27 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +6 -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 +7 -0
- package/contracts/type/ObjectType.sol +76 -44
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +38 -6
- package/contracts/type/RoleId.sol +61 -55
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +10 -5
- package/contracts/type/UFixed.sol +56 -126
- package/contracts/type/Version.sol +57 -6
- package/contracts/{shared → upgradeability}/ProxyManager.sol +84 -49
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
- package/contracts/{shared → upgradeability}/Versionable.sol +6 -3
- package/package.json +7 -6
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -181
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -460
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/base/ObjectManager.sol +0 -79
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/product/ProductService.sol +0 -124
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -487
- package/contracts/shared/ComponentVerifyingService.sol +0 -117
- package/contracts/shared/InitializableCustom.sol +0 -177
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,61 +1,44 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
6
|
-
import {IInstance} from "../instance/IInstance.sol";
|
4
|
+
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
7
5
|
import {IBundle} from "../instance/module/IBundle.sol";
|
8
|
-
import {IComponents} from "../instance/module/IComponents.sol";
|
9
|
-
import {IPolicy} from "../instance/module/IPolicy.sol";
|
10
|
-
|
11
|
-
import {IVersionable} from "../shared/IVersionable.sol";
|
12
|
-
import {Versionable} from "../shared/Versionable.sol";
|
13
|
-
import {INftOwnable} from "../shared/INftOwnable.sol";
|
14
|
-
|
15
|
-
import {Amount, AmountLib} from "../type/Amount.sol";
|
16
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
17
|
-
import {NftId, NftIdLib} from "../type/NftId.sol";
|
18
|
-
import {ObjectType, POOL, BUNDLE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
19
|
-
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
20
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
21
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
22
|
-
import {KEEP_STATE, StateId} from "../type/StateId.sol";
|
23
|
-
import {Seconds} from "../type/Seconds.sol";
|
24
|
-
import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
25
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
26
|
-
import {UFixed} from "../type/UFixed.sol";
|
27
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
28
|
-
|
29
|
-
import {IService} from "../shared/IService.sol";
|
30
|
-
import {Service} from "../shared/Service.sol";
|
31
|
-
import {BundleManager} from "../instance/BundleManager.sol";
|
32
|
-
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
33
6
|
import {IBundleService} from "./IBundleService.sol";
|
7
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
34
8
|
import {IComponentService} from "../shared/IComponentService.sol";
|
35
|
-
import {
|
9
|
+
import {IInstance} from "../instance/IInstance.sol";
|
10
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
11
|
+
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
12
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
36
13
|
import {IPoolService} from "./IPoolService.sol";
|
37
|
-
import {
|
14
|
+
import {IProductComponent} from "../product/IProductComponent.sol";
|
15
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
38
16
|
import {IStaking} from "../staking/IStaking.sol";
|
39
|
-
|
17
|
+
|
18
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
19
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
20
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
40
21
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
41
22
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
42
|
-
import {
|
43
|
-
import {
|
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";
|
44
31
|
|
45
32
|
string constant POOL_SERVICE_NAME = "PoolService";
|
46
33
|
|
34
|
+
|
47
35
|
contract PoolService is
|
48
|
-
|
36
|
+
Service,
|
49
37
|
IPoolService
|
50
38
|
{
|
51
|
-
|
52
|
-
using AmountLib for Amount;
|
53
|
-
|
39
|
+
IAccountingService private _accountingService;
|
54
40
|
IBundleService internal _bundleService;
|
55
41
|
IComponentService internal _componentService;
|
56
|
-
IInstanceService private _instanceService;
|
57
|
-
IRegistryService private _registryService;
|
58
|
-
|
59
42
|
IStaking private _staking;
|
60
43
|
|
61
44
|
function _initialize(
|
@@ -63,191 +46,324 @@ contract PoolService is
|
|
63
46
|
bytes memory data
|
64
47
|
)
|
65
48
|
internal
|
66
|
-
initializer
|
67
49
|
virtual override
|
50
|
+
initializer()
|
68
51
|
{
|
69
52
|
(
|
70
|
-
address
|
71
|
-
|
72
|
-
|
73
|
-
) = abi.decode(data, (address, address, address));
|
53
|
+
address authority,
|
54
|
+
address registry
|
55
|
+
) = abi.decode(data, (address, address));
|
74
56
|
|
75
|
-
|
57
|
+
__Service_init(authority, registry, owner);
|
76
58
|
|
77
|
-
|
59
|
+
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
78
60
|
_bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
79
|
-
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
80
61
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
81
|
-
|
82
62
|
_staking = IStaking(getRegistry().getStakingAddress());
|
83
63
|
|
84
|
-
|
64
|
+
_registerInterface(type(IPoolService).interfaceId);
|
85
65
|
}
|
86
66
|
|
87
67
|
|
88
|
-
|
68
|
+
/// @inheritdoc IPoolService
|
69
|
+
function setMaxBalanceAmount(Amount maxBalanceAmount)
|
89
70
|
external
|
90
71
|
virtual
|
72
|
+
restricted()
|
91
73
|
{
|
92
|
-
|
93
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
74
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
94
75
|
InstanceReader instanceReader = instance.getInstanceReader();
|
76
|
+
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
95
77
|
|
96
|
-
|
97
|
-
|
98
|
-
Amount previousMaxCapitalAmount = poolInfo.maxCapitalAmount;
|
99
|
-
|
100
|
-
poolInfo.maxCapitalAmount = maxCapitalAmount;
|
78
|
+
Amount previousMaxBalanceAmount = poolInfo.maxBalanceAmount;
|
79
|
+
poolInfo.maxBalanceAmount = maxBalanceAmount;
|
101
80
|
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
102
81
|
|
103
|
-
emit
|
104
|
-
*/
|
82
|
+
emit LogPoolServiceMaxBalanceAmountUpdated(poolNftId, previousMaxBalanceAmount, maxBalanceAmount);
|
105
83
|
}
|
106
84
|
|
107
|
-
|
85
|
+
|
86
|
+
function closeBundle(NftId bundleNftId)
|
108
87
|
external
|
88
|
+
restricted()
|
109
89
|
virtual
|
110
90
|
{
|
111
|
-
(
|
112
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
91
|
+
_checkNftType(bundleNftId, BUNDLE());
|
113
92
|
|
114
|
-
|
115
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
93
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
116
94
|
|
117
|
-
//
|
118
|
-
if(poolInfo.bundleOwnerRole != PUBLIC_ROLE()) {
|
119
|
-
revert ErrorPoolServiceBundleOwnerRoleAlreadySet(poolNftId);
|
120
|
-
}
|
95
|
+
// TODO get performance fee for pool (#477)
|
121
96
|
|
122
|
-
|
123
|
-
|
97
|
+
// releasing collateral in bundle
|
98
|
+
(Amount unstakedAmount, Amount feeAmount) = _bundleService.close(instance, bundleNftId);
|
99
|
+
|
100
|
+
_accountingService.decreasePoolBalance(
|
101
|
+
instance.getInstanceStore(),
|
102
|
+
poolNftId,
|
103
|
+
unstakedAmount + feeAmount,
|
104
|
+
AmountLib.zero());
|
105
|
+
|
106
|
+
emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
|
124
107
|
|
125
|
-
|
108
|
+
if ((unstakedAmount + feeAmount).gtz()){
|
109
|
+
IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
|
110
|
+
poolComponentInfo.tokenHandler.pushToken(
|
111
|
+
getRegistry().ownerOf(bundleNftId),
|
112
|
+
unstakedAmount + feeAmount);
|
113
|
+
}
|
126
114
|
}
|
127
115
|
|
128
116
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
117
|
+
/// @inheritdoc IPoolService
|
118
|
+
function processFundedClaim(
|
119
|
+
NftId policyNftId,
|
120
|
+
ClaimId claimId,
|
121
|
+
Amount availableAmount
|
122
|
+
)
|
134
123
|
external
|
124
|
+
restricted()
|
135
125
|
virtual
|
136
126
|
{
|
137
|
-
(
|
127
|
+
_checkNftType(policyNftId, POLICY());
|
138
128
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
129
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
130
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
131
|
+
NftId productNftId = getRegistry().getParentNftId(poolNftId);
|
132
|
+
|
133
|
+
// check policy matches with calling pool
|
134
|
+
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
135
|
+
if(policyInfo.productNftId != productNftId) {
|
136
|
+
revert ErrorPoolServicePolicyPoolMismatch(
|
137
|
+
policyNftId,
|
138
|
+
policyInfo.productNftId,
|
139
|
+
productNftId);
|
140
|
+
}
|
143
141
|
|
144
|
-
|
142
|
+
emit LogPoolServiceProcessFundedClaim(policyNftId, claimId, availableAmount);
|
145
143
|
|
146
|
-
//
|
144
|
+
// callback to product component if applicable
|
145
|
+
if (instanceReader.getProductInfo(productNftId).isProcessingFundedClaims) {
|
146
|
+
address productAddress = getRegistry().getObjectAddress(productNftId);
|
147
|
+
IProductComponent(productAddress).processFundedClaim(policyNftId, claimId, availableAmount);
|
148
|
+
}
|
147
149
|
}
|
148
150
|
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
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
|
+
|
177
|
+
/// @inheritdoc IPoolService
|
178
|
+
function stake(NftId bundleNftId, Amount amount)
|
156
179
|
external
|
157
180
|
virtual
|
158
|
-
|
181
|
+
restricted()
|
182
|
+
returns(
|
183
|
+
Amount netAmount
|
184
|
+
)
|
159
185
|
{
|
160
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
161
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
162
|
-
|
163
186
|
(
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
187
|
+
InstanceReader instanceReader,
|
188
|
+
InstanceStore instanceStore,
|
189
|
+
NftId instanceNftId,
|
190
|
+
NftId poolNftId,
|
191
|
+
IComponents.PoolInfo memory poolInfo
|
192
|
+
) = PoolLib.checkAndGetPoolInfo(getRegistry(), msg.sender, bundleNftId);
|
193
|
+
|
194
|
+
{
|
195
|
+
Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
|
196
|
+
if (currentPoolBalance + amount > poolInfo.maxBalanceAmount) {
|
197
|
+
revert ErrorPoolServiceMaxBalanceAmountExceeded(poolNftId, poolInfo.maxBalanceAmount, currentPoolBalance, amount);
|
198
|
+
}
|
199
|
+
}
|
169
200
|
|
170
|
-
|
171
|
-
|
201
|
+
// calculate fees
|
202
|
+
Amount feeAmount;
|
203
|
+
(
|
204
|
+
feeAmount,
|
205
|
+
netAmount
|
206
|
+
) = PoolLib.calculateStakingAmounts(
|
207
|
+
getRegistry(),
|
208
|
+
instanceReader,
|
172
209
|
poolNftId,
|
173
|
-
|
174
|
-
fee,
|
175
|
-
stakingNetAmount,
|
176
|
-
lifetime,
|
177
|
-
filter);
|
178
|
-
|
179
|
-
// pool book keeping
|
180
|
-
_componentService.increasePoolBalance(
|
181
|
-
instance.getInstanceStore(),
|
182
|
-
poolNftId,
|
183
|
-
stakingAmount,
|
184
|
-
stakingFeeAmount);
|
210
|
+
amount);
|
185
211
|
|
186
|
-
//
|
187
|
-
|
188
|
-
|
212
|
+
// do all the book keeping
|
213
|
+
_accountingService.increasePoolBalance(
|
214
|
+
instanceStore,
|
189
215
|
poolNftId,
|
190
|
-
|
191
|
-
|
216
|
+
netAmount,
|
217
|
+
feeAmount);
|
192
218
|
|
193
|
-
|
219
|
+
_bundleService.stake(instanceReader, instanceStore, bundleNftId, netAmount);
|
220
|
+
|
221
|
+
emit LogPoolServiceBundleStaked(instanceNftId, poolNftId, bundleNftId, amount, netAmount);
|
222
|
+
|
223
|
+
// only collect staking amount when pool is not externally managed
|
224
|
+
if (!poolInfo.isExternallyManaged) {
|
225
|
+
|
226
|
+
// collect tokens from bundle owner
|
227
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
228
|
+
PoolLib.pullStakingAmount(
|
229
|
+
instanceReader,
|
230
|
+
poolNftId,
|
231
|
+
bundleOwner,
|
232
|
+
amount);
|
233
|
+
}
|
194
234
|
}
|
195
235
|
|
196
|
-
|
197
|
-
|
236
|
+
|
237
|
+
/// @inheritdoc IPoolService
|
238
|
+
function unstake(NftId bundleNftId, Amount amount)
|
239
|
+
external
|
198
240
|
virtual
|
199
|
-
|
200
|
-
returns
|
241
|
+
restricted()
|
242
|
+
returns(Amount netAmount)
|
201
243
|
{
|
202
|
-
|
203
|
-
|
244
|
+
(
|
245
|
+
InstanceReader instanceReader,
|
246
|
+
InstanceStore instanceStore,
|
247
|
+
NftId instanceNftId,
|
248
|
+
NftId poolNftId,
|
249
|
+
) = PoolLib.checkAndGetPoolInfo(getRegistry(), msg.sender, bundleNftId);
|
250
|
+
|
251
|
+
// call bundle service for bookkeeping and additional checks
|
252
|
+
Amount unstakedAmount = _bundleService.unstake(instanceStore, bundleNftId, amount);
|
253
|
+
|
254
|
+
// Important: from now on work only with unstakedAmount as it is the only reliable amount.
|
255
|
+
// if amount was max, this was set to the available amount
|
256
|
+
|
257
|
+
// TODO: handle performance fees (issue #477)
|
258
|
+
netAmount = unstakedAmount;
|
259
|
+
|
260
|
+
// update pool bookkeeping - performance fees stay in the pool, but as fees
|
261
|
+
_accountingService.decreasePoolBalance(
|
262
|
+
instanceStore,
|
263
|
+
poolNftId,
|
264
|
+
unstakedAmount,
|
265
|
+
AmountLib.zero());
|
266
|
+
|
267
|
+
|
268
|
+
emit LogPoolServiceBundleUnstaked(instanceNftId, poolNftId, bundleNftId, unstakedAmount, netAmount);
|
269
|
+
|
270
|
+
// only distribute staking amount when pool is not externally managed
|
271
|
+
if (!instanceReader.getPoolInfo(poolNftId).isExternallyManaged) {
|
272
|
+
|
273
|
+
// transfer amount to bundle owner
|
274
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
275
|
+
PoolLib.pushUnstakingAmount(
|
276
|
+
instanceReader,
|
277
|
+
poolNftId,
|
278
|
+
bundleOwner,
|
279
|
+
netAmount);
|
280
|
+
}
|
204
281
|
}
|
205
282
|
|
206
|
-
|
283
|
+
|
284
|
+
function fundPoolWallet(Amount amount)
|
207
285
|
external
|
208
286
|
virtual
|
287
|
+
restricted()
|
209
288
|
{
|
210
|
-
(
|
289
|
+
(
|
290
|
+
NftId poolNftId,
|
291
|
+
IInstance instance
|
292
|
+
) = _getAndVerifyActivePool();
|
293
|
+
|
294
|
+
// check that pool is externally managed
|
295
|
+
InstanceReader reader = instance.getInstanceReader();
|
296
|
+
if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
|
297
|
+
revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
|
298
|
+
}
|
211
299
|
|
212
|
-
|
300
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
301
|
+
emit LogPoolServiceWalletFunded(poolNftId, poolOwner, amount);
|
213
302
|
|
214
|
-
|
215
|
-
|
303
|
+
PoolLib.pullStakingAmount(
|
304
|
+
reader,
|
305
|
+
poolNftId,
|
306
|
+
poolOwner,
|
307
|
+
amount);
|
308
|
+
}
|
216
309
|
|
217
|
-
// TODO get performance fee for pool, transfer of remaining funds + bundle fees to bundle owner
|
218
310
|
|
219
|
-
|
311
|
+
function defundPoolWallet(Amount amount)
|
312
|
+
external
|
313
|
+
virtual
|
314
|
+
restricted()
|
315
|
+
{
|
316
|
+
(
|
317
|
+
NftId poolNftId,
|
318
|
+
IInstance instance
|
319
|
+
) = _getAndVerifyActivePool();
|
320
|
+
|
321
|
+
// check that pool is externally managed
|
322
|
+
InstanceReader reader = instance.getInstanceReader();
|
323
|
+
if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
|
324
|
+
revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
|
325
|
+
}
|
326
|
+
|
327
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
328
|
+
emit LogPoolServiceWalletDefunded(poolNftId, poolOwner, amount);
|
329
|
+
|
330
|
+
PoolLib.pushUnstakingAmount(
|
331
|
+
reader,
|
332
|
+
poolNftId,
|
333
|
+
poolOwner,
|
334
|
+
amount);
|
220
335
|
}
|
221
336
|
|
222
337
|
|
223
338
|
function processSale(
|
224
339
|
NftId bundleNftId,
|
225
|
-
IPolicy.
|
340
|
+
IPolicy.PremiumInfo memory premium
|
226
341
|
)
|
227
342
|
external
|
228
343
|
virtual
|
229
344
|
restricted()
|
230
345
|
{
|
346
|
+
_checkNftType(bundleNftId, BUNDLE());
|
347
|
+
|
231
348
|
IRegistry registry = getRegistry();
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
IInstance instance = IInstance(instanceObjectInfo.objectAddress);
|
349
|
+
NftId poolNftId = registry.getParentNftId(bundleNftId);
|
350
|
+
(, address instanceAddress) = ContractLib.getInfoAndInstance(registry, poolNftId, true);
|
351
|
+
IInstance instance = IInstance(instanceAddress);
|
236
352
|
|
237
|
-
Amount poolFeeAmount =
|
238
|
-
Amount bundleFeeAmount =
|
239
|
-
Amount bundleNetAmount =
|
353
|
+
Amount poolFeeAmount = premium.poolFeeFixAmount + premium.poolFeeVarAmount;
|
354
|
+
Amount bundleFeeAmount = premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
355
|
+
Amount bundleNetAmount = premium.netPremiumAmount;
|
240
356
|
|
241
357
|
InstanceStore instanceStore = instance.getInstanceStore();
|
242
|
-
|
358
|
+
_accountingService.increasePoolBalance(
|
243
359
|
instanceStore,
|
244
|
-
|
360
|
+
poolNftId,
|
245
361
|
bundleNetAmount + bundleFeeAmount,
|
246
362
|
poolFeeAmount);
|
247
363
|
|
248
|
-
|
364
|
+
_accountingService.increaseBundleBalanceForPool(
|
249
365
|
instanceStore,
|
250
|
-
|
366
|
+
bundleNftId,
|
251
367
|
bundleNetAmount,
|
252
368
|
bundleFeeAmount);
|
253
369
|
}
|
@@ -265,14 +381,22 @@ contract PoolService is
|
|
265
381
|
virtual
|
266
382
|
restricted()
|
267
383
|
returns (
|
268
|
-
Amount
|
269
|
-
Amount
|
384
|
+
Amount totalCollateralAmount,
|
385
|
+
Amount localCollateralAmount
|
270
386
|
)
|
271
387
|
{
|
388
|
+
_checkNftType(productNftId, PRODUCT());
|
389
|
+
_checkNftType(applicationNftId, POLICY());
|
390
|
+
_checkNftType(bundleNftId, BUNDLE());
|
391
|
+
|
392
|
+
NftId poolNftId;
|
393
|
+
bool poolIsVerifyingApplications;
|
272
394
|
(
|
395
|
+
poolNftId,
|
396
|
+
totalCollateralAmount,
|
273
397
|
localCollateralAmount,
|
274
|
-
|
275
|
-
) = calculateRequiredCollateral(
|
398
|
+
poolIsVerifyingApplications
|
399
|
+
) = PoolLib.calculateRequiredCollateral(
|
276
400
|
instance.getInstanceReader(),
|
277
401
|
productNftId,
|
278
402
|
sumInsuredAmount);
|
@@ -290,36 +414,127 @@ contract PoolService is
|
|
290
414
|
token,
|
291
415
|
totalCollateralAmount);
|
292
416
|
|
293
|
-
//
|
294
|
-
|
295
|
-
|
417
|
+
// pool callback when required
|
418
|
+
if (poolIsVerifyingApplications) {
|
419
|
+
IPoolComponent pool = IPoolComponent(
|
420
|
+
getRegistry().getObjectAddress(poolNftId));
|
296
421
|
|
422
|
+
pool.verifyApplication(
|
423
|
+
applicationNftId,
|
424
|
+
bundleNftId,
|
425
|
+
totalCollateralAmount);
|
426
|
+
|
427
|
+
// TODO add logging
|
297
428
|
}
|
298
|
-
}
|
299
429
|
|
430
|
+
// TODO add logging
|
431
|
+
}
|
300
432
|
|
301
|
-
function
|
302
|
-
|
303
|
-
|
433
|
+
function processPayout(
|
434
|
+
InstanceReader instanceReader,
|
435
|
+
InstanceStore instanceStore,
|
436
|
+
NftId productNftId,
|
304
437
|
NftId policyNftId,
|
305
|
-
|
306
|
-
|
438
|
+
NftId bundleNftId,
|
439
|
+
PayoutId payoutId,
|
440
|
+
Amount payoutAmount,
|
441
|
+
address payoutBeneficiary
|
307
442
|
)
|
308
443
|
external
|
309
444
|
virtual
|
310
445
|
restricted()
|
311
446
|
{
|
447
|
+
// checks
|
448
|
+
_checkNftType(policyNftId, POLICY());
|
449
|
+
|
450
|
+
// effects
|
451
|
+
NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
|
452
|
+
|
453
|
+
_accountingService.decreasePoolBalance(
|
454
|
+
instanceStore,
|
455
|
+
poolNftId,
|
456
|
+
payoutAmount,
|
457
|
+
AmountLib.zero());
|
458
|
+
|
459
|
+
_accountingService.decreaseBundleBalanceForPool(
|
460
|
+
instanceStore,
|
461
|
+
bundleNftId,
|
462
|
+
payoutAmount,
|
463
|
+
AmountLib.zero());
|
464
|
+
|
312
465
|
_bundleService.releaseCollateral(
|
313
|
-
|
466
|
+
instanceStore,
|
314
467
|
policyNftId,
|
315
|
-
|
468
|
+
bundleNftId,
|
316
469
|
payoutAmount);
|
317
470
|
|
318
471
|
// update value locked with staking service
|
472
|
+
TokenHandler poolTokenHandler = instanceReader.getTokenHandler(poolNftId);
|
473
|
+
|
319
474
|
_staking.decreaseTotalValueLocked(
|
320
|
-
|
321
|
-
|
475
|
+
instanceReader.getInstanceNftId(),
|
476
|
+
address(poolTokenHandler.TOKEN()),
|
322
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
|
+
}
|
323
538
|
}
|
324
539
|
|
325
540
|
|
@@ -327,7 +542,6 @@ contract PoolService is
|
|
327
542
|
/// may only be called by the policy service for unlocked pool components
|
328
543
|
function releaseCollateral(
|
329
544
|
IInstance instance,
|
330
|
-
address token,
|
331
545
|
NftId policyNftId,
|
332
546
|
IPolicy.PolicyInfo memory policyInfo
|
333
547
|
)
|
@@ -335,117 +549,38 @@ contract PoolService is
|
|
335
549
|
virtual
|
336
550
|
restricted()
|
337
551
|
{
|
552
|
+
_checkNftType(policyNftId, POLICY());
|
553
|
+
|
338
554
|
Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
|
339
555
|
|
340
556
|
_bundleService.releaseCollateral(
|
341
|
-
instance,
|
557
|
+
instance.getInstanceStore(),
|
342
558
|
policyNftId,
|
343
559
|
policyInfo.bundleNftId,
|
344
560
|
remainingCollateralAmount);
|
345
561
|
|
346
|
-
_bundleService.unlinkPolicy(
|
347
|
-
instance,
|
348
|
-
policyNftId);
|
349
|
-
|
350
562
|
// update value locked with staking service
|
563
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
351
564
|
_staking.decreaseTotalValueLocked(
|
352
|
-
|
353
|
-
|
565
|
+
instanceReader.getInstanceNftId(),
|
566
|
+
address(instanceReader.getToken(policyInfo.productNftId)),
|
354
567
|
remainingCollateralAmount);
|
355
568
|
}
|
356
569
|
|
357
570
|
|
358
|
-
function
|
359
|
-
InstanceReader instanceReader,
|
360
|
-
NftId productNftId,
|
361
|
-
Amount sumInsuredAmount
|
362
|
-
)
|
363
|
-
public
|
364
|
-
view
|
365
|
-
returns(
|
366
|
-
Amount localCollateralAmount,
|
367
|
-
Amount totalCollateralAmount
|
368
|
-
)
|
369
|
-
{
|
370
|
-
NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
371
|
-
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
372
|
-
|
373
|
-
(
|
374
|
-
localCollateralAmount,
|
375
|
-
totalCollateralAmount
|
376
|
-
) = calculateRequiredCollateral(
|
377
|
-
poolInfo.collateralizationLevel,
|
378
|
-
poolInfo.retentionLevel,
|
379
|
-
sumInsuredAmount);
|
380
|
-
}
|
381
|
-
|
382
|
-
|
383
|
-
function calculateRequiredCollateral(
|
384
|
-
UFixed collateralizationLevel,
|
385
|
-
UFixed retentionLevel,
|
386
|
-
Amount sumInsuredAmount
|
387
|
-
)
|
388
|
-
public
|
389
|
-
pure
|
390
|
-
returns(
|
391
|
-
Amount localCollateralAmount,
|
392
|
-
Amount totalCollateralAmount
|
393
|
-
)
|
394
|
-
{
|
395
|
-
// TODO define if only applies to local collateral
|
396
|
-
// TODO add minimalistic implementation
|
397
|
-
|
398
|
-
// assumptions
|
399
|
-
// - collateralizationLevel == 1.0
|
400
|
-
// - retentionLevel == 1.0
|
401
|
-
localCollateralAmount = sumInsuredAmount;
|
402
|
-
totalCollateralAmount = localCollateralAmount;
|
403
|
-
}
|
404
|
-
|
405
|
-
|
406
|
-
function _processStakingFees(
|
407
|
-
Fee memory stakingFee,
|
408
|
-
Amount stakingAmount
|
409
|
-
)
|
571
|
+
function _getAndVerifyActivePool()
|
410
572
|
internal
|
411
|
-
|
573
|
+
virtual
|
574
|
+
view
|
575
|
+
returns (
|
576
|
+
NftId poolNftId,
|
577
|
+
IInstance instance
|
578
|
+
)
|
412
579
|
{
|
413
|
-
|
414
|
-
|
415
|
-
// check if any staking fees apply
|
416
|
-
if (FeeLib.gtz(stakingFee)) {
|
417
|
-
(Amount feeAmount, Amount netAmount) = FeeLib.calculateFee(stakingFee, stakingAmount);
|
418
|
-
stakingNetAmount = netAmount;
|
419
|
-
|
420
|
-
// TODO update fee balance for pool
|
421
|
-
}
|
580
|
+
return PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
422
581
|
}
|
423
582
|
|
424
583
|
|
425
|
-
// TODO create (I)TreasuryService that deals with all gif related token transfers
|
426
|
-
/// @dev transfers the specified amount from the bundle owner to the pool's wallet
|
427
|
-
function _collectStakingAmount(
|
428
|
-
InstanceReader instanceReader,
|
429
|
-
NftId poolNftId,
|
430
|
-
address bundleOwner,
|
431
|
-
Amount amount
|
432
|
-
)
|
433
|
-
internal
|
434
|
-
{
|
435
|
-
|
436
|
-
// collecting investor token
|
437
|
-
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
438
|
-
TokenHandler tokenHandler = componentInfo.tokenHandler;
|
439
|
-
address poolWallet = componentInfo.wallet;
|
440
|
-
|
441
|
-
if(amount.gtz()) {
|
442
|
-
tokenHandler.transfer(
|
443
|
-
bundleOwner,
|
444
|
-
poolWallet,
|
445
|
-
amount);
|
446
|
-
}
|
447
|
-
}
|
448
|
-
|
449
584
|
function _getDomain() internal pure override returns(ObjectType) {
|
450
585
|
return POOL();
|
451
586
|
}
|