@etherisc/gif-next 0.0.2-bdb55c6-577 → 0.0.2-bdbfee9-660
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 +128 -9
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1056 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +771 -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} +401 -103
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
- 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 +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared/IAccessManagerExtended.sol/IAccessManagerExtended.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +605 -795
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1225 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +120 -606
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +608 -282
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +229 -116
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +133 -279
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +362 -66
- 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 +2026 -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 +2452 -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 +551 -96
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +436 -86
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +550 -235
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1954 -313
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1704 -759
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +423 -230
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +121 -102
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +916 -774
- 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/Cloneable.sol/Cloneable.json +0 -53
- 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 +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
- 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 +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +130 -136
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +91 -10
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +121 -413
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +203 -177
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +164 -91
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1231 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +418 -220
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +207 -102
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +234 -34
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +128 -396
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +494 -308
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +125 -684
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +546 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +733 -530
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +210 -101
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +217 -170
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +146 -97
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +476 -221
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +183 -118
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +158 -8
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +341 -15
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +410 -100
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +176 -79
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +270 -268
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +110 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +548 -309
- 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 +183 -102
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +239 -309
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +145 -128
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +268 -567
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +698 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +755 -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 +379 -64
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +90 -147
- 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 +612 -128
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1895 -155
- 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 +140 -276
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +128 -83
- 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 +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
- 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 +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
- 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 +539 -532
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +169 -126
- 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 +519 -249
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +116 -133
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -3
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
- 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 +77 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +106 -366
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -88
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
- 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 +73 -104
- 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 +322 -133
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +213 -29
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +405 -415
- 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 +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +158 -112
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +91 -67
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +269 -187
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +134 -97
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +273 -165
- 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 +140 -4
- 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 +121 -23
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +69 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- 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 +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
- 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 +126 -33
- 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 +11 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +637 -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 +11 -1
- package/contracts/accounting/AccountingService.sol +274 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +47 -0
- package/contracts/authorization/AccessAdmin.sol +780 -0
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +158 -0
- package/contracts/authorization/Authorization.sol +172 -0
- package/contracts/authorization/IAccess.sol +67 -0
- package/contracts/authorization/IAccessAdmin.sol +144 -0
- package/contracts/authorization/IAuthorization.sol +27 -0
- package/contracts/authorization/IServiceAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +320 -0
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
- package/contracts/distribution/Distribution.sol +125 -139
- package/contracts/distribution/DistributionService.sol +273 -136
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +21 -42
- package/contracts/distribution/IDistributionService.sol +54 -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 +385 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +110 -47
- package/contracts/instance/IInstanceService.sol +74 -42
- package/contracts/instance/Instance.sol +248 -138
- package/contracts/instance/InstanceAdmin.sol +301 -249
- package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
- package/contracts/instance/InstanceReader.sol +494 -252
- package/contracts/instance/InstanceService.sol +358 -208
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +35 -18
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +14 -11
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +113 -0
- 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 +45 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
- package/contracts/oracle/IOracle.sol +25 -4
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +62 -53
- package/contracts/oracle/OracleService.sol +118 -85
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +173 -0
- package/contracts/pool/BasicPoolAuthorization.sol +82 -0
- package/contracts/pool/BundleService.sol +212 -114
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +31 -22
- package/contracts/pool/IPoolComponent.sol +20 -70
- package/contracts/pool/IPoolService.sol +91 -77
- package/contracts/pool/Pool.sol +207 -163
- package/contracts/pool/PoolLib.sol +359 -0
- package/contracts/pool/PoolService.sol +404 -264
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +132 -87
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +63 -0
- package/contracts/product/ClaimService.sol +385 -188
- 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 +61 -37
- package/contracts/product/IPricingService.sol +11 -10
- package/contracts/product/IProductComponent.sol +29 -9
- package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
- package/contracts/product/PolicyService.sol +448 -278
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +93 -88
- package/contracts/product/PricingServiceManager.sol +6 -9
- package/contracts/product/Product.sol +237 -142
- package/contracts/product/RiskService.sol +157 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +82 -31
- 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 +374 -214
- package/contracts/registry/RegistryAdmin.sol +122 -171
- package/contracts/registry/RegistryAuthorization.sol +284 -0
- package/contracts/registry/RegistryService.sol +47 -72
- package/contracts/registry/RegistryServiceManager.sol +5 -10
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +520 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +345 -0
- package/contracts/registry/TokenRegistry.sol +14 -15
- package/contracts/shared/Component.sol +65 -136
- package/contracts/shared/ComponentService.sol +445 -385
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ContractLib.sol +311 -0
- package/contracts/shared/IComponent.sol +6 -18
- package/contracts/shared/IComponentService.sol +49 -41
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +3 -2
- 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 +10 -5
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
- package/contracts/shared/InstanceLinkedComponent.sol +95 -45
- package/contracts/shared/KeyValueStore.sol +7 -3
- package/contracts/shared/Lifecycle.sol +30 -72
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +31 -11
- package/contracts/shared/PolicyHolder.sol +20 -59
- package/contracts/shared/Registerable.sol +52 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +31 -41
- package/contracts/shared/TokenHandler.sol +310 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +49 -22
- package/contracts/staking/IStakingService.sol +37 -16
- package/contracts/staking/Staking.sol +244 -190
- package/contracts/staking/StakingLib.sol +281 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +46 -34
- package/contracts/staking/StakingService.sol +146 -84
- package/contracts/staking/StakingServiceManager.sol +8 -8
- package/contracts/staking/StakingStore.sol +95 -61
- 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 +200 -61
- 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 +121 -87
- package/contracts/type/Seconds.sol +25 -1
- package/contracts/type/Selector.sol +107 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/String.sol +65 -0
- package/contracts/type/Timestamp.sol +10 -5
- package/contracts/type/UFixed.sol +61 -125
- package/contracts/type/Version.sol +57 -6
- package/contracts/{shared → upgradeability}/IVersionable.sol +3 -0
- package/contracts/{shared → upgradeability}/ProxyManager.sol +96 -49
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
- package/contracts/{shared → upgradeability}/Versionable.sol +8 -5
- package/package.json +10 -7
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- 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 -679
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -694
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
- 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/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- 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 -444
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/instance/base/ObjectManager.sol +0 -82
- 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 -600
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerCustom.sol +0 -736
- package/contracts/shared/AccessManagerExtended.sol +0 -470
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/ComponentVerifyingService.sol +0 -117
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- package/contracts/shared/InitializableCustom.sol +0 -177
- package/contracts/staking/StakeManagerLib.sol +0 -179
@@ -1,61 +1,39 @@
|
|
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";
|
7
|
-
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 {PUBLIC_ROLE, POOL_OWNER_ROLE, POLICY_SERVICE_ROLE, RoleId} 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";
|
4
|
+
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
33
5
|
import {IBundleService} from "./IBundleService.sol";
|
6
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
34
7
|
import {IComponentService} from "../shared/IComponentService.sol";
|
35
|
-
import {
|
8
|
+
import {IInstance} from "../instance/IInstance.sol";
|
9
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
10
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
36
11
|
import {IPoolService} from "./IPoolService.sol";
|
37
|
-
import {
|
12
|
+
import {IProductComponent} from "../product/IProductComponent.sol";
|
13
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
38
14
|
import {IStaking} from "../staking/IStaking.sol";
|
39
|
-
|
15
|
+
|
16
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
17
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
18
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
40
19
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
41
20
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
42
|
-
import {
|
43
|
-
import {
|
21
|
+
import {KEEP_STATE} from "../type/StateId.sol";
|
22
|
+
import {NftId} from "../type/NftId.sol";
|
23
|
+
import {ObjectType, ACCOUNTING, POOL, BUNDLE, PRODUCT, POLICY, COMPONENT} from "../type/ObjectType.sol";
|
24
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
25
|
+
import {PoolLib} from "./PoolLib.sol";
|
26
|
+
import {Service} from "../shared/Service.sol";
|
27
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
44
28
|
|
45
|
-
string constant POOL_SERVICE_NAME = "PoolService";
|
46
29
|
|
47
30
|
contract PoolService is
|
48
|
-
|
31
|
+
Service,
|
49
32
|
IPoolService
|
50
33
|
{
|
51
|
-
|
52
|
-
using AmountLib for Amount;
|
53
|
-
|
34
|
+
IAccountingService private _accountingService;
|
54
35
|
IBundleService internal _bundleService;
|
55
36
|
IComponentService internal _componentService;
|
56
|
-
IInstanceService private _instanceService;
|
57
|
-
IRegistryService private _registryService;
|
58
|
-
|
59
37
|
IStaking private _staking;
|
60
38
|
|
61
39
|
function _initialize(
|
@@ -63,195 +41,324 @@ contract PoolService is
|
|
63
41
|
bytes memory data
|
64
42
|
)
|
65
43
|
internal
|
66
|
-
initializer
|
67
44
|
virtual override
|
45
|
+
initializer()
|
68
46
|
{
|
69
47
|
(
|
70
|
-
address
|
71
|
-
|
72
|
-
|
73
|
-
) = abi.decode(data, (address, address, address));
|
48
|
+
address authority,
|
49
|
+
address registry
|
50
|
+
) = abi.decode(data, (address, address));
|
74
51
|
|
75
|
-
|
52
|
+
__Service_init(authority, registry, owner);
|
76
53
|
|
77
|
-
|
54
|
+
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
78
55
|
_bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
79
|
-
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
80
56
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
81
|
-
|
82
57
|
_staking = IStaking(getRegistry().getStakingAddress());
|
83
58
|
|
84
|
-
|
85
|
-
}
|
86
|
-
|
87
|
-
function getDomain() public pure override returns(ObjectType) {
|
88
|
-
return POOL();
|
59
|
+
_registerInterface(type(IPoolService).interfaceId);
|
89
60
|
}
|
90
61
|
|
91
62
|
|
92
|
-
|
63
|
+
/// @inheritdoc IPoolService
|
64
|
+
function setMaxBalanceAmount(Amount maxBalanceAmount)
|
93
65
|
external
|
94
66
|
virtual
|
67
|
+
restricted()
|
95
68
|
{
|
96
|
-
|
97
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
69
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
98
70
|
InstanceReader instanceReader = instance.getInstanceReader();
|
71
|
+
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
99
72
|
|
100
|
-
|
101
|
-
|
102
|
-
Amount previousMaxCapitalAmount = poolInfo.maxCapitalAmount;
|
103
|
-
|
104
|
-
poolInfo.maxCapitalAmount = maxCapitalAmount;
|
73
|
+
Amount previousMaxBalanceAmount = poolInfo.maxBalanceAmount;
|
74
|
+
poolInfo.maxBalanceAmount = maxBalanceAmount;
|
105
75
|
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
106
76
|
|
107
|
-
emit
|
108
|
-
*/
|
77
|
+
emit LogPoolServiceMaxBalanceAmountUpdated(poolNftId, previousMaxBalanceAmount, maxBalanceAmount);
|
109
78
|
}
|
110
79
|
|
111
|
-
|
80
|
+
|
81
|
+
function closeBundle(NftId bundleNftId)
|
112
82
|
external
|
83
|
+
restricted()
|
113
84
|
virtual
|
114
85
|
{
|
115
|
-
(
|
116
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
86
|
+
_checkNftType(bundleNftId, BUNDLE());
|
117
87
|
|
118
|
-
|
119
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
88
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
120
89
|
|
121
|
-
//
|
122
|
-
if(poolInfo.bundleOwnerRole != PUBLIC_ROLE()) {
|
123
|
-
revert ErrorPoolServiceBundleOwnerRoleAlreadySet(poolNftId);
|
124
|
-
}
|
90
|
+
// TODO get performance fee for pool (#477)
|
125
91
|
|
126
|
-
|
127
|
-
|
92
|
+
// releasing collateral in bundle
|
93
|
+
(Amount unstakedAmount, Amount feeAmount) = _bundleService.close(instance, bundleNftId);
|
94
|
+
|
95
|
+
_accountingService.decreasePoolBalance(
|
96
|
+
instance.getInstanceStore(),
|
97
|
+
poolNftId,
|
98
|
+
unstakedAmount + feeAmount,
|
99
|
+
AmountLib.zero());
|
100
|
+
|
101
|
+
emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
|
128
102
|
|
129
|
-
|
103
|
+
if ((unstakedAmount + feeAmount).gtz()){
|
104
|
+
IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
|
105
|
+
poolComponentInfo.tokenHandler.pushToken(
|
106
|
+
getRegistry().ownerOf(bundleNftId),
|
107
|
+
unstakedAmount + feeAmount);
|
108
|
+
}
|
130
109
|
}
|
131
110
|
|
132
111
|
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
112
|
+
/// @inheritdoc IPoolService
|
113
|
+
function processFundedClaim(
|
114
|
+
NftId policyNftId,
|
115
|
+
ClaimId claimId,
|
116
|
+
Amount availableAmount
|
117
|
+
)
|
138
118
|
external
|
119
|
+
restricted()
|
139
120
|
virtual
|
140
121
|
{
|
141
|
-
(
|
122
|
+
_checkNftType(policyNftId, POLICY());
|
142
123
|
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
124
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
125
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
126
|
+
NftId productNftId = getRegistry().getParentNftId(poolNftId);
|
127
|
+
|
128
|
+
// check policy matches with calling pool
|
129
|
+
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
130
|
+
if(policyInfo.productNftId != productNftId) {
|
131
|
+
revert ErrorPoolServicePolicyPoolMismatch(
|
132
|
+
policyNftId,
|
133
|
+
policyInfo.productNftId,
|
134
|
+
productNftId);
|
135
|
+
}
|
147
136
|
|
148
|
-
|
137
|
+
emit LogPoolServiceProcessFundedClaim(policyNftId, claimId, availableAmount);
|
149
138
|
|
150
|
-
//
|
139
|
+
// callback to product component if applicable
|
140
|
+
if (instanceReader.getProductInfo(productNftId).isProcessingFundedClaims) {
|
141
|
+
address productAddress = getRegistry().getObjectAddress(productNftId);
|
142
|
+
IProductComponent(productAddress).processFundedClaim(policyNftId, claimId, availableAmount);
|
143
|
+
}
|
151
144
|
}
|
152
145
|
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
146
|
+
|
147
|
+
// function _checkAndGetPoolInfo(NftId bundleNftId)
|
148
|
+
// internal
|
149
|
+
// view
|
150
|
+
// returns (
|
151
|
+
// InstanceReader instanceReader,
|
152
|
+
// InstanceStore instanceStore,
|
153
|
+
// NftId instanceNftId,
|
154
|
+
// NftId poolNftId,
|
155
|
+
// IComponents.PoolInfo memory poolInfo
|
156
|
+
// )
|
157
|
+
// {
|
158
|
+
// _checkNftType(bundleNftId, BUNDLE());
|
159
|
+
|
160
|
+
// (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
161
|
+
// instanceReader = instance.getInstanceReader();
|
162
|
+
// instanceStore = instance.getInstanceStore();
|
163
|
+
// instanceNftId = instance.getNftId();
|
164
|
+
// poolInfo = instanceReader.getPoolInfo(poolNftId);
|
165
|
+
|
166
|
+
// if (getRegistry().getParentNftId(bundleNftId) != poolNftId) {
|
167
|
+
// revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
168
|
+
// }
|
169
|
+
// }
|
170
|
+
|
171
|
+
|
172
|
+
/// @inheritdoc IPoolService
|
173
|
+
function stake(NftId bundleNftId, Amount amount)
|
160
174
|
external
|
161
175
|
virtual
|
162
|
-
|
176
|
+
restricted()
|
177
|
+
returns(
|
178
|
+
Amount netAmount
|
179
|
+
)
|
163
180
|
{
|
164
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
165
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
166
|
-
|
167
181
|
(
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
182
|
+
InstanceReader instanceReader,
|
183
|
+
InstanceStore instanceStore,
|
184
|
+
NftId instanceNftId,
|
185
|
+
NftId poolNftId,
|
186
|
+
IComponents.PoolInfo memory poolInfo
|
187
|
+
) = PoolLib.checkAndGetPoolInfo(getRegistry(), msg.sender, bundleNftId);
|
188
|
+
|
189
|
+
{
|
190
|
+
Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
|
191
|
+
if (currentPoolBalance + amount > poolInfo.maxBalanceAmount) {
|
192
|
+
revert ErrorPoolServiceMaxBalanceAmountExceeded(poolNftId, poolInfo.maxBalanceAmount, currentPoolBalance, amount);
|
193
|
+
}
|
194
|
+
}
|
173
195
|
|
174
|
-
|
175
|
-
|
196
|
+
// calculate fees
|
197
|
+
Amount feeAmount;
|
198
|
+
(
|
199
|
+
feeAmount,
|
200
|
+
netAmount
|
201
|
+
) = PoolLib.calculateStakingAmounts(
|
202
|
+
getRegistry(),
|
203
|
+
instanceReader,
|
176
204
|
poolNftId,
|
177
|
-
|
178
|
-
fee,
|
179
|
-
stakingNetAmount,
|
180
|
-
lifetime,
|
181
|
-
filter);
|
182
|
-
|
183
|
-
// pool book keeping
|
184
|
-
_componentService.increasePoolBalance(
|
185
|
-
instance.getInstanceStore(),
|
186
|
-
poolNftId,
|
187
|
-
stakingAmount,
|
188
|
-
stakingFeeAmount);
|
205
|
+
amount);
|
189
206
|
|
190
|
-
//
|
191
|
-
|
192
|
-
|
207
|
+
// do all the book keeping
|
208
|
+
_accountingService.increasePoolBalance(
|
209
|
+
instanceStore,
|
193
210
|
poolNftId,
|
194
|
-
|
195
|
-
|
211
|
+
netAmount,
|
212
|
+
feeAmount);
|
213
|
+
|
214
|
+
_bundleService.stake(instanceReader, instanceStore, bundleNftId, netAmount);
|
215
|
+
|
216
|
+
emit LogPoolServiceBundleStaked(instanceNftId, poolNftId, bundleNftId, amount, netAmount);
|
196
217
|
|
197
|
-
|
218
|
+
// only collect staking amount when pool is not externally managed
|
219
|
+
if (!poolInfo.isExternallyManaged) {
|
220
|
+
|
221
|
+
// collect tokens from bundle owner
|
222
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
223
|
+
PoolLib.pullStakingAmount(
|
224
|
+
instanceReader,
|
225
|
+
poolNftId,
|
226
|
+
bundleOwner,
|
227
|
+
amount);
|
228
|
+
}
|
198
229
|
}
|
199
230
|
|
200
|
-
|
201
|
-
|
231
|
+
|
232
|
+
/// @inheritdoc IPoolService
|
233
|
+
function unstake(NftId bundleNftId, Amount amount)
|
234
|
+
external
|
202
235
|
virtual
|
203
|
-
|
204
|
-
returns
|
236
|
+
restricted()
|
237
|
+
returns(Amount netAmount)
|
205
238
|
{
|
206
|
-
|
207
|
-
|
239
|
+
(
|
240
|
+
InstanceReader instanceReader,
|
241
|
+
InstanceStore instanceStore,
|
242
|
+
NftId instanceNftId,
|
243
|
+
NftId poolNftId,
|
244
|
+
) = PoolLib.checkAndGetPoolInfo(getRegistry(), msg.sender, bundleNftId);
|
245
|
+
|
246
|
+
// call bundle service for bookkeeping and additional checks
|
247
|
+
Amount unstakedAmount = _bundleService.unstake(instanceStore, bundleNftId, amount);
|
248
|
+
|
249
|
+
// Important: from now on work only with unstakedAmount as it is the only reliable amount.
|
250
|
+
// if amount was max, this was set to the available amount
|
251
|
+
|
252
|
+
// TODO: handle performance fees (issue #477)
|
253
|
+
netAmount = unstakedAmount;
|
254
|
+
|
255
|
+
// update pool bookkeeping - performance fees stay in the pool, but as fees
|
256
|
+
_accountingService.decreasePoolBalance(
|
257
|
+
instanceStore,
|
258
|
+
poolNftId,
|
259
|
+
unstakedAmount,
|
260
|
+
AmountLib.zero());
|
261
|
+
|
262
|
+
|
263
|
+
emit LogPoolServiceBundleUnstaked(instanceNftId, poolNftId, bundleNftId, unstakedAmount, netAmount);
|
264
|
+
|
265
|
+
// only distribute staking amount when pool is not externally managed
|
266
|
+
if (!instanceReader.getPoolInfo(poolNftId).isExternallyManaged) {
|
267
|
+
|
268
|
+
// transfer amount to bundle owner
|
269
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
270
|
+
PoolLib.pushUnstakingAmount(
|
271
|
+
instanceReader,
|
272
|
+
poolNftId,
|
273
|
+
bundleOwner,
|
274
|
+
netAmount);
|
275
|
+
}
|
208
276
|
}
|
209
277
|
|
210
|
-
|
278
|
+
|
279
|
+
function fundPoolWallet(Amount amount)
|
211
280
|
external
|
212
281
|
virtual
|
282
|
+
restricted()
|
213
283
|
{
|
214
|
-
(
|
284
|
+
(
|
285
|
+
NftId poolNftId,
|
286
|
+
IInstance instance
|
287
|
+
) = _getAndVerifyActivePool();
|
288
|
+
|
289
|
+
// check that pool is externally managed
|
290
|
+
InstanceReader reader = instance.getInstanceReader();
|
291
|
+
if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
|
292
|
+
revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
|
293
|
+
}
|
215
294
|
|
216
|
-
|
295
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
296
|
+
emit LogPoolServiceWalletFunded(poolNftId, poolOwner, amount);
|
217
297
|
|
218
|
-
|
219
|
-
|
298
|
+
PoolLib.pullStakingAmount(
|
299
|
+
reader,
|
300
|
+
poolNftId,
|
301
|
+
poolOwner,
|
302
|
+
amount);
|
303
|
+
}
|
220
304
|
|
221
|
-
// TODO get performance fee for pool, transfer of remaining funds + bundle fees to bundle owner
|
222
305
|
|
223
|
-
|
306
|
+
function defundPoolWallet(Amount amount)
|
307
|
+
external
|
308
|
+
virtual
|
309
|
+
restricted()
|
310
|
+
{
|
311
|
+
(
|
312
|
+
NftId poolNftId,
|
313
|
+
IInstance instance
|
314
|
+
) = _getAndVerifyActivePool();
|
315
|
+
|
316
|
+
// check that pool is externally managed
|
317
|
+
InstanceReader reader = instance.getInstanceReader();
|
318
|
+
if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
|
319
|
+
revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
|
320
|
+
}
|
321
|
+
|
322
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
323
|
+
emit LogPoolServiceWalletDefunded(poolNftId, poolOwner, amount);
|
324
|
+
|
325
|
+
PoolLib.pushUnstakingAmount(
|
326
|
+
reader,
|
327
|
+
poolNftId,
|
328
|
+
poolOwner,
|
329
|
+
amount);
|
224
330
|
}
|
225
331
|
|
226
332
|
|
227
333
|
function processSale(
|
228
334
|
NftId bundleNftId,
|
229
|
-
IPolicy.
|
335
|
+
IPolicy.PremiumInfo memory premium
|
230
336
|
)
|
231
337
|
external
|
232
338
|
virtual
|
233
|
-
restricted
|
339
|
+
restricted()
|
234
340
|
{
|
341
|
+
_checkNftType(bundleNftId, BUNDLE());
|
342
|
+
|
235
343
|
IRegistry registry = getRegistry();
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
IInstance instance = IInstance(instanceObjectInfo.objectAddress);
|
344
|
+
NftId poolNftId = registry.getParentNftId(bundleNftId);
|
345
|
+
(, address instanceAddress) = ContractLib.getInfoAndInstance(registry, poolNftId, true);
|
346
|
+
IInstance instance = IInstance(instanceAddress);
|
240
347
|
|
241
|
-
Amount poolFeeAmount =
|
242
|
-
Amount bundleFeeAmount =
|
243
|
-
Amount bundleNetAmount =
|
348
|
+
Amount poolFeeAmount = premium.poolFeeFixAmount + premium.poolFeeVarAmount;
|
349
|
+
Amount bundleFeeAmount = premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
350
|
+
Amount bundleNetAmount = premium.netPremiumAmount;
|
244
351
|
|
245
352
|
InstanceStore instanceStore = instance.getInstanceStore();
|
246
|
-
|
353
|
+
_accountingService.increasePoolBalance(
|
247
354
|
instanceStore,
|
248
|
-
|
355
|
+
poolNftId,
|
249
356
|
bundleNetAmount + bundleFeeAmount,
|
250
357
|
poolFeeAmount);
|
251
358
|
|
252
|
-
|
359
|
+
_accountingService.increaseBundleBalanceForPool(
|
253
360
|
instanceStore,
|
254
|
-
|
361
|
+
bundleNftId,
|
255
362
|
bundleNetAmount,
|
256
363
|
bundleFeeAmount);
|
257
364
|
}
|
@@ -269,14 +376,22 @@ contract PoolService is
|
|
269
376
|
virtual
|
270
377
|
restricted()
|
271
378
|
returns (
|
272
|
-
Amount
|
273
|
-
Amount
|
379
|
+
Amount totalCollateralAmount,
|
380
|
+
Amount localCollateralAmount
|
274
381
|
)
|
275
382
|
{
|
383
|
+
_checkNftType(productNftId, PRODUCT());
|
384
|
+
_checkNftType(applicationNftId, POLICY());
|
385
|
+
_checkNftType(bundleNftId, BUNDLE());
|
386
|
+
|
387
|
+
NftId poolNftId;
|
388
|
+
bool poolIsVerifyingApplications;
|
276
389
|
(
|
390
|
+
poolNftId,
|
391
|
+
totalCollateralAmount,
|
277
392
|
localCollateralAmount,
|
278
|
-
|
279
|
-
) = calculateRequiredCollateral(
|
393
|
+
poolIsVerifyingApplications
|
394
|
+
) = PoolLib.calculateRequiredCollateral(
|
280
395
|
instance.getInstanceReader(),
|
281
396
|
productNftId,
|
282
397
|
sumInsuredAmount);
|
@@ -294,36 +409,138 @@ contract PoolService is
|
|
294
409
|
token,
|
295
410
|
totalCollateralAmount);
|
296
411
|
|
297
|
-
//
|
298
|
-
|
299
|
-
|
412
|
+
// pool callback when required
|
413
|
+
if (poolIsVerifyingApplications) {
|
414
|
+
IPoolComponent pool = IPoolComponent(
|
415
|
+
getRegistry().getObjectAddress(poolNftId));
|
300
416
|
|
417
|
+
pool.verifyApplication(
|
418
|
+
applicationNftId,
|
419
|
+
bundleNftId,
|
420
|
+
totalCollateralAmount);
|
421
|
+
|
422
|
+
// TODO add logging
|
301
423
|
}
|
302
|
-
}
|
303
424
|
|
425
|
+
// TODO add logging
|
426
|
+
}
|
304
427
|
|
305
|
-
function
|
306
|
-
|
307
|
-
|
428
|
+
function processPayout(
|
429
|
+
InstanceReader instanceReader,
|
430
|
+
InstanceStore instanceStore,
|
431
|
+
NftId productNftId,
|
308
432
|
NftId policyNftId,
|
309
|
-
|
310
|
-
|
433
|
+
NftId bundleNftId,
|
434
|
+
PayoutId payoutId,
|
435
|
+
Amount payoutAmount,
|
436
|
+
address payoutBeneficiary
|
311
437
|
)
|
312
438
|
external
|
313
439
|
virtual
|
314
|
-
restricted
|
440
|
+
restricted()
|
441
|
+
returns (
|
442
|
+
Amount netPayoutAmount,
|
443
|
+
Amount processingFeeAmount
|
444
|
+
)
|
315
445
|
{
|
446
|
+
// checks
|
447
|
+
_checkNftType(policyNftId, POLICY());
|
448
|
+
|
449
|
+
// effects
|
450
|
+
NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
|
451
|
+
|
452
|
+
_accountingService.decreasePoolBalance(
|
453
|
+
instanceStore,
|
454
|
+
poolNftId,
|
455
|
+
payoutAmount,
|
456
|
+
AmountLib.zero());
|
457
|
+
|
458
|
+
_accountingService.decreaseBundleBalanceForPool(
|
459
|
+
instanceStore,
|
460
|
+
bundleNftId,
|
461
|
+
payoutAmount,
|
462
|
+
AmountLib.zero());
|
463
|
+
|
316
464
|
_bundleService.releaseCollateral(
|
317
|
-
|
465
|
+
instanceStore,
|
318
466
|
policyNftId,
|
319
|
-
|
467
|
+
bundleNftId,
|
320
468
|
payoutAmount);
|
321
469
|
|
322
470
|
// update value locked with staking service
|
471
|
+
TokenHandler poolTokenHandler = instanceReader.getTokenHandler(poolNftId);
|
472
|
+
|
323
473
|
_staking.decreaseTotalValueLocked(
|
324
|
-
|
325
|
-
|
474
|
+
instanceReader.getInstanceNftId(),
|
475
|
+
address(poolTokenHandler.TOKEN()),
|
326
476
|
payoutAmount);
|
477
|
+
|
478
|
+
// interactions
|
479
|
+
(netPayoutAmount, processingFeeAmount) = PoolLib.transferTokenAndNotifyPolicyHolder(
|
480
|
+
getRegistry(),
|
481
|
+
instanceReader,
|
482
|
+
poolTokenHandler,
|
483
|
+
productNftId,
|
484
|
+
policyNftId,
|
485
|
+
payoutId,
|
486
|
+
payoutAmount,
|
487
|
+
payoutBeneficiary);
|
488
|
+
|
489
|
+
if (processingFeeAmount.gtz()) {
|
490
|
+
_accountingService.increaseProductFeesForPool(
|
491
|
+
instanceStore,
|
492
|
+
productNftId,
|
493
|
+
processingFeeAmount);
|
494
|
+
}
|
495
|
+
}
|
496
|
+
|
497
|
+
|
498
|
+
/// @inheritdoc IPoolService
|
499
|
+
function withdrawBundleFees(
|
500
|
+
NftId bundleNftId,
|
501
|
+
Amount amount
|
502
|
+
)
|
503
|
+
public
|
504
|
+
virtual
|
505
|
+
restricted()
|
506
|
+
returns (Amount withdrawnAmount)
|
507
|
+
{
|
508
|
+
// checks
|
509
|
+
_checkNftType(bundleNftId, BUNDLE());
|
510
|
+
|
511
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
512
|
+
InstanceReader reader = instance.getInstanceReader();
|
513
|
+
|
514
|
+
// determine withdrawn amount
|
515
|
+
withdrawnAmount = amount;
|
516
|
+
if (withdrawnAmount.gte(AmountLib.max())) {
|
517
|
+
withdrawnAmount = reader.getFeeAmount(bundleNftId);
|
518
|
+
} else {
|
519
|
+
if (withdrawnAmount > reader.getFeeAmount(bundleNftId)) {
|
520
|
+
revert ErrorPoolServiceFeesWithdrawAmountExceedsLimit(withdrawnAmount, reader.getFeeAmount(bundleNftId));
|
521
|
+
}
|
522
|
+
}
|
523
|
+
|
524
|
+
// effects
|
525
|
+
// decrease fee counters by withdrawnAmount
|
526
|
+
{
|
527
|
+
InstanceStore store = instance.getInstanceStore();
|
528
|
+
// decrease fee amount of the bundle
|
529
|
+
_accountingService.decreaseBundleBalanceForPool(store, bundleNftId, AmountLib.zero(), withdrawnAmount);
|
530
|
+
// decrease pool balance
|
531
|
+
_accountingService.decreasePoolBalance(store, poolNftId, withdrawnAmount, AmountLib.zero());
|
532
|
+
}
|
533
|
+
|
534
|
+
// interactions
|
535
|
+
// transfer amount to bundle owner
|
536
|
+
{
|
537
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
538
|
+
TokenHandler tokenHandler = reader.getTokenHandler(poolNftId);
|
539
|
+
address token = address(tokenHandler.TOKEN());
|
540
|
+
emit LogPoolServiceFeesWithdrawn(bundleNftId, bundleOwner, token, withdrawnAmount);
|
541
|
+
|
542
|
+
tokenHandler.pushToken(bundleOwner, withdrawnAmount);
|
543
|
+
}
|
327
544
|
}
|
328
545
|
|
329
546
|
|
@@ -331,123 +548,46 @@ contract PoolService is
|
|
331
548
|
/// may only be called by the policy service for unlocked pool components
|
332
549
|
function releaseCollateral(
|
333
550
|
IInstance instance,
|
334
|
-
address token,
|
335
551
|
NftId policyNftId,
|
336
552
|
IPolicy.PolicyInfo memory policyInfo
|
337
553
|
)
|
338
554
|
external
|
339
555
|
virtual
|
340
|
-
restricted
|
556
|
+
restricted()
|
341
557
|
{
|
558
|
+
_checkNftType(policyNftId, POLICY());
|
559
|
+
|
342
560
|
Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
|
343
561
|
|
344
562
|
_bundleService.releaseCollateral(
|
345
|
-
instance,
|
563
|
+
instance.getInstanceStore(),
|
346
564
|
policyNftId,
|
347
565
|
policyInfo.bundleNftId,
|
348
566
|
remainingCollateralAmount);
|
349
567
|
|
350
|
-
_bundleService.unlinkPolicy(
|
351
|
-
instance,
|
352
|
-
policyNftId);
|
353
|
-
|
354
568
|
// update value locked with staking service
|
569
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
355
570
|
_staking.decreaseTotalValueLocked(
|
356
|
-
|
357
|
-
|
571
|
+
instanceReader.getInstanceNftId(),
|
572
|
+
address(instanceReader.getToken(policyInfo.productNftId)),
|
358
573
|
remainingCollateralAmount);
|
359
574
|
}
|
360
575
|
|
361
576
|
|
362
|
-
function
|
363
|
-
InstanceReader instanceReader,
|
364
|
-
NftId productNftId,
|
365
|
-
Amount sumInsuredAmount
|
366
|
-
)
|
367
|
-
public
|
368
|
-
view
|
369
|
-
returns(
|
370
|
-
Amount localCollateralAmount,
|
371
|
-
Amount totalCollateralAmount
|
372
|
-
)
|
373
|
-
{
|
374
|
-
NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
375
|
-
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
376
|
-
|
377
|
-
(
|
378
|
-
localCollateralAmount,
|
379
|
-
totalCollateralAmount
|
380
|
-
) = calculateRequiredCollateral(
|
381
|
-
poolInfo.collateralizationLevel,
|
382
|
-
poolInfo.retentionLevel,
|
383
|
-
sumInsuredAmount);
|
384
|
-
}
|
385
|
-
|
386
|
-
|
387
|
-
function calculateRequiredCollateral(
|
388
|
-
UFixed collateralizationLevel,
|
389
|
-
UFixed retentionLevel,
|
390
|
-
Amount sumInsuredAmount
|
391
|
-
)
|
392
|
-
public
|
393
|
-
pure
|
394
|
-
returns(
|
395
|
-
Amount localCollateralAmount,
|
396
|
-
Amount totalCollateralAmount
|
397
|
-
)
|
398
|
-
{
|
399
|
-
// TODO define if only applies to local collateral
|
400
|
-
// TODO add minimalistic implementation
|
401
|
-
|
402
|
-
// assumptions
|
403
|
-
// - collateralizationLevel == 1.0
|
404
|
-
// - retentionLevel == 1.0
|
405
|
-
localCollateralAmount = sumInsuredAmount;
|
406
|
-
totalCollateralAmount = localCollateralAmount;
|
407
|
-
}
|
408
|
-
|
409
|
-
|
410
|
-
function _processStakingFees(
|
411
|
-
Fee memory stakingFee,
|
412
|
-
Amount stakingAmount
|
413
|
-
)
|
577
|
+
function _getAndVerifyActivePool()
|
414
578
|
internal
|
415
|
-
|
579
|
+
virtual
|
580
|
+
view
|
581
|
+
returns (
|
582
|
+
NftId poolNftId,
|
583
|
+
IInstance instance
|
584
|
+
)
|
416
585
|
{
|
417
|
-
|
418
|
-
|
419
|
-
// check if any staking fees apply
|
420
|
-
if (FeeLib.gtz(stakingFee)) {
|
421
|
-
(Amount feeAmount, Amount netAmount) = FeeLib.calculateFee(stakingFee, stakingAmount);
|
422
|
-
stakingNetAmount = netAmount;
|
423
|
-
|
424
|
-
// TODO update fee balance for pool
|
425
|
-
}
|
586
|
+
return PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
426
587
|
}
|
427
588
|
|
428
589
|
|
429
|
-
|
430
|
-
|
431
|
-
function _collectStakingAmount(
|
432
|
-
InstanceReader instanceReader,
|
433
|
-
NftId poolNftId,
|
434
|
-
address bundleOwner,
|
435
|
-
Amount amount
|
436
|
-
)
|
437
|
-
internal
|
438
|
-
{
|
439
|
-
|
440
|
-
// collecting investor token
|
441
|
-
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
442
|
-
TokenHandler tokenHandler = componentInfo.tokenHandler;
|
443
|
-
address poolWallet = componentInfo.wallet;
|
444
|
-
|
445
|
-
if(amount.gtz()) {
|
446
|
-
tokenHandler.transfer(
|
447
|
-
bundleOwner,
|
448
|
-
poolWallet,
|
449
|
-
amount);
|
450
|
-
}
|
590
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
591
|
+
return POOL();
|
451
592
|
}
|
452
|
-
|
453
593
|
}
|