@etherisc/gif-next 0.0.2-82c6d88-499 → 0.0.2-8311e70-020
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 +67 -8
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1341 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -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 → authorization}/IAccessAdmin.sol/IAccessAdmin.json +181 -278
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +48 -10
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +144 -544
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +368 -245
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +143 -109
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +201 -261
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +230 -49
- 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 +1475 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2408 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -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 +134 -78
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +116 -126
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +162 -215
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1354 -262
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +966 -328
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +135 -330
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +97 -111
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +651 -531
- 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 +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/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -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 +141 -126
- 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 +127 -398
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +435 -202
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +163 -97
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +270 -27
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +132 -379
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +448 -217
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +124 -662
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +569 -396
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -91
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +134 -184
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +91 -93
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +435 -212
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +145 -107
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +94 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +318 -8
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +361 -113
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +260 -237
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +57 -4
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +455 -318
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +141 -99
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +230 -312
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +258 -536
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -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 +340 -55
- 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 +566 -112
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +396 -436
- 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 +94 -80
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -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 +1325 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +101 -16
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +5 -5
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +578 -492
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -113
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -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 +89 -88
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +550 -209
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +127 -123
- 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 +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 +112 -351
- 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 +57 -111
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +697 -25
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -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 +134 -125
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -23
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +85 -105
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +210 -366
- 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 +122 -95
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +100 -171
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -84
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +186 -164
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/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 +61 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
- 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 +55 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +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 +118 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
- 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 +2 -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 +2 -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 +71 -2
- 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 +66 -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 +129 -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 +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/{shared → authorization}/AccessAdmin.sol +271 -371
- package/contracts/authorization/AccessManagerCloneable.sol +149 -0
- package/contracts/authorization/Authorization.sol +289 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/{shared → authorization}/IAccessAdmin.sol +31 -59
- package/contracts/authorization/IAuthorization.sol +60 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +11 -6
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +45 -25
- package/contracts/distribution/BasicDistribution.sol +139 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +147 -121
- package/contracts/distribution/DistributionService.sol +160 -100
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +26 -40
- package/contracts/distribution/IDistributionService.sol +28 -9
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +90 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +438 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +23 -44
- package/contracts/instance/IInstanceService.sol +16 -41
- package/contracts/instance/Instance.sol +92 -120
- package/contracts/instance/InstanceAdmin.sol +250 -255
- package/contracts/instance/InstanceAuthorizationV3.sol +225 -0
- package/contracts/instance/InstanceReader.sol +238 -34
- package/contracts/instance/InstanceService.sol +145 -180
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +35 -6
- package/contracts/instance/RiskSet.sol +118 -0
- 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 +1 -1
- package/contracts/instance/module/IComponents.sol +14 -15
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +26 -25
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +47 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +64 -53
- package/contracts/oracle/OracleService.sol +113 -81
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +175 -0
- package/contracts/pool/BasicPoolAuthorization.sol +68 -0
- package/contracts/pool/BundleService.sol +231 -102
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +33 -18
- package/contracts/pool/IPoolComponent.sol +20 -70
- package/contracts/pool/IPoolService.sol +53 -50
- package/contracts/pool/Pool.sol +208 -162
- package/contracts/pool/PoolService.sol +343 -180
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +83 -78
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +51 -0
- package/contracts/product/BasicProductAuthorization.sol +41 -0
- package/contracts/product/ClaimService.sol +425 -159
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +6 -2
- package/contracts/product/IClaimService.sol +44 -7
- package/contracts/product/IPolicyService.sol +46 -34
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +29 -9
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +520 -259
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +66 -62
- package/contracts/product/PricingServiceManager.sol +6 -9
- package/contracts/product/Product.sol +220 -134
- package/contracts/product/RiskService.sol +151 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +72 -32
- package/contracts/registry/IRegistryService.sol +3 -10
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +364 -220
- package/contracts/registry/RegistryAdmin.sol +228 -217
- package/contracts/registry/RegistryService.sol +41 -66
- package/contracts/registry/RegistryServiceManager.sol +5 -5
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +511 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +102 -60
- package/contracts/registry/TokenRegistry.sol +8 -10
- package/contracts/shared/Component.sol +71 -126
- package/contracts/shared/ComponentService.sol +463 -380
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +29 -18
- package/contracts/shared/ContractLib.sol +252 -0
- package/contracts/shared/IComponent.sol +8 -17
- package/contracts/shared/IComponentService.sol +53 -39
- 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 +23 -1
- package/contracts/shared/IService.sol +4 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
- package/contracts/shared/InstanceLinkedComponent.sol +95 -42
- 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 +17 -57
- package/contracts/shared/Registerable.sol +55 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +18 -36
- package/contracts/shared/TokenHandler.sol +357 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +12 -7
- package/contracts/staking/IStakingService.sol +12 -8
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +86 -73
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +23 -20
- package/contracts/staking/StakingService.sol +64 -36
- package/contracts/staking/StakingServiceManager.sol +4 -4
- package/contracts/staking/StakingStore.sol +15 -23
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +27 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +73 -24
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +35 -4
- package/contracts/type/RoleId.sol +57 -93
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/Timestamp.sol +10 -5
- package/contracts/type/UFixed.sol +40 -121
- package/contracts/type/Version.sol +18 -6
- package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +8 -5
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
- 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 -187
- 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/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1218
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
- 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 -1747
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
- 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/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- 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/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 -80
- package/contracts/product/ProductService.sol +0 -124
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -527
- package/contracts/shared/AccessManagerCustom.sol +0 -741
- package/contracts/shared/AccessManagerExtended.sol +0 -481
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- package/contracts/shared/InitializableCustom.sol +0 -177
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,61 +1,41 @@
|
|
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";
|
6
|
+
import {IBundleService} from "./IBundleService.sol";
|
8
7
|
import {IComponents} from "../instance/module/IComponents.sol";
|
8
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
9
|
+
import {IInstance} from "../instance/IInstance.sol";
|
9
10
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
10
|
-
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
import {
|
11
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
12
|
+
import {IPoolService} from "./IPoolService.sol";
|
13
|
+
import {IProductComponent} from "../product/IProductComponent.sol";
|
14
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
15
|
+
import {IStaking} from "../staking/IStaking.sol";
|
14
16
|
|
15
17
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
18
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
19
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
16
20
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
17
|
-
import {NftId
|
18
|
-
import {ObjectType, POOL, BUNDLE,
|
19
|
-
import {PUBLIC_ROLE, POOL_OWNER_ROLE, POLICY_SERVICE_ROLE, RoleId} from "../type/RoleId.sol";
|
21
|
+
import {NftId} from "../type/NftId.sol";
|
22
|
+
import {ObjectType, ACCOUNTING, POOL, BUNDLE, PRODUCT, POLICY, COMPONENT} from "../type/ObjectType.sol";
|
20
23
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
21
|
-
import {
|
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";
|
24
|
+
import {KEEP_STATE} from "../type/StateId.sol";
|
26
25
|
import {UFixed} from "../type/UFixed.sol";
|
27
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
28
|
-
|
29
|
-
import {IService} from "../shared/IService.sol";
|
30
26
|
import {Service} from "../shared/Service.sol";
|
31
|
-
import {BundleManager} from "../instance/BundleManager.sol";
|
32
|
-
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
33
|
-
import {IBundleService} from "./IBundleService.sol";
|
34
|
-
import {IComponentService} from "../shared/IComponentService.sol";
|
35
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
36
|
-
import {IPoolService} from "./IPoolService.sol";
|
37
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
38
|
-
import {IStaking} from "../staking/IStaking.sol";
|
39
|
-
import {InstanceService} from "../instance/InstanceService.sol";
|
40
27
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
41
28
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
42
|
-
import {IComponent} from "../shared/IComponent.sol";
|
43
|
-
import {IPoolComponent} from "./IPoolComponent.sol";
|
44
29
|
|
45
30
|
string constant POOL_SERVICE_NAME = "PoolService";
|
46
31
|
|
47
32
|
contract PoolService is
|
48
|
-
|
33
|
+
Service,
|
49
34
|
IPoolService
|
50
35
|
{
|
51
|
-
|
52
|
-
using AmountLib for Amount;
|
53
|
-
|
36
|
+
IAccountingService private _accountingService;
|
54
37
|
IBundleService internal _bundleService;
|
55
38
|
IComponentService internal _componentService;
|
56
|
-
IInstanceService private _instanceService;
|
57
|
-
IRegistryService private _registryService;
|
58
|
-
|
59
39
|
IStaking private _staking;
|
60
40
|
|
61
41
|
function _initialize(
|
@@ -63,191 +43,306 @@ contract PoolService is
|
|
63
43
|
bytes memory data
|
64
44
|
)
|
65
45
|
internal
|
66
|
-
initializer
|
67
46
|
virtual override
|
47
|
+
initializer()
|
68
48
|
{
|
69
49
|
(
|
70
|
-
address
|
71
|
-
|
72
|
-
|
73
|
-
) = abi.decode(data, (address, address, address));
|
50
|
+
address authority,
|
51
|
+
address registry
|
52
|
+
) = abi.decode(data, (address, address));
|
74
53
|
|
75
|
-
|
54
|
+
__Service_init(authority, registry, owner);
|
76
55
|
|
77
|
-
|
56
|
+
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
78
57
|
_bundleService = IBundleService(_getServiceAddress(BUNDLE()));
|
79
|
-
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
80
58
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
81
|
-
|
82
59
|
_staking = IStaking(getRegistry().getStakingAddress());
|
83
60
|
|
84
|
-
|
61
|
+
_registerInterface(type(IPoolService).interfaceId);
|
85
62
|
}
|
86
63
|
|
87
64
|
|
88
|
-
|
65
|
+
/// @inheritdoc IPoolService
|
66
|
+
function setMaxBalanceAmount(Amount maxBalanceAmount)
|
89
67
|
external
|
90
68
|
virtual
|
91
69
|
{
|
92
|
-
|
93
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
70
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
94
71
|
InstanceReader instanceReader = instance.getInstanceReader();
|
72
|
+
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
95
73
|
|
96
|
-
|
97
|
-
|
98
|
-
Amount previousMaxCapitalAmount = poolInfo.maxCapitalAmount;
|
99
|
-
|
100
|
-
poolInfo.maxCapitalAmount = maxCapitalAmount;
|
74
|
+
Amount previousMaxBalanceAmount = poolInfo.maxBalanceAmount;
|
75
|
+
poolInfo.maxBalanceAmount = maxBalanceAmount;
|
101
76
|
instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
|
102
77
|
|
103
|
-
emit
|
104
|
-
*/
|
78
|
+
emit LogPoolServiceMaxBalanceAmountUpdated(poolNftId, previousMaxBalanceAmount, maxBalanceAmount);
|
105
79
|
}
|
106
80
|
|
107
|
-
|
81
|
+
|
82
|
+
function closeBundle(NftId bundleNftId)
|
108
83
|
external
|
109
84
|
virtual
|
110
85
|
{
|
111
|
-
(
|
112
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
86
|
+
_checkNftType(bundleNftId, BUNDLE());
|
113
87
|
|
114
|
-
|
115
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
|
88
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
116
89
|
|
117
|
-
//
|
118
|
-
if(poolInfo.bundleOwnerRole != PUBLIC_ROLE()) {
|
119
|
-
revert ErrorPoolServiceBundleOwnerRoleAlreadySet(poolNftId);
|
120
|
-
}
|
90
|
+
// TODO get performance fee for pool (#477)
|
121
91
|
|
122
|
-
|
123
|
-
|
92
|
+
// releasing collateral in bundle
|
93
|
+
(Amount unstakedAmount, Amount feeAmount) = _bundleService.close(instance, bundleNftId);
|
124
94
|
|
125
|
-
|
95
|
+
_accountingService.decreasePoolBalance(
|
96
|
+
instance.getInstanceStore(),
|
97
|
+
poolNftId,
|
98
|
+
unstakedAmount + feeAmount,
|
99
|
+
AmountLib.zero());
|
100
|
+
|
101
|
+
emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
|
102
|
+
|
103
|
+
if ((unstakedAmount + feeAmount).gtz()){
|
104
|
+
IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
|
105
|
+
poolComponentInfo.tokenHandler.distributeTokens(
|
106
|
+
poolComponentInfo.tokenHandler.getWallet(),
|
107
|
+
getRegistry().ownerOf(bundleNftId),
|
108
|
+
unstakedAmount + feeAmount);
|
109
|
+
}
|
126
110
|
}
|
127
111
|
|
128
112
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
113
|
+
/// @inheritdoc IPoolService
|
114
|
+
function processFundedClaim(
|
115
|
+
NftId policyNftId,
|
116
|
+
ClaimId claimId,
|
117
|
+
Amount availableAmount
|
118
|
+
)
|
134
119
|
external
|
135
120
|
virtual
|
136
121
|
{
|
137
|
-
(
|
122
|
+
_checkNftType(policyNftId, POLICY());
|
138
123
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
124
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
125
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
126
|
+
NftId productNftId = getRegistry().getObjectInfo(poolNftId).parentNftId;
|
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
|
+
}
|
143
136
|
|
144
|
-
|
137
|
+
emit LogPoolServiceProcessFundedClaim(policyNftId, claimId, availableAmount);
|
145
138
|
|
146
|
-
//
|
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
|
+
}
|
147
144
|
}
|
148
145
|
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
153
|
-
Seconds lifetime, // initial duration for which new policies are covered
|
154
|
-
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
155
|
-
)
|
146
|
+
|
147
|
+
/// @inheritdoc IPoolService
|
148
|
+
function stake(NftId bundleNftId, Amount amount)
|
156
149
|
external
|
157
150
|
virtual
|
158
|
-
|
151
|
+
// TODO: restricted() (once #462 is done)
|
152
|
+
returns(Amount netAmount)
|
159
153
|
{
|
160
|
-
(
|
154
|
+
_checkNftType(bundleNftId, BUNDLE());
|
155
|
+
|
156
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
161
157
|
InstanceReader instanceReader = instance.getInstanceReader();
|
158
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
159
|
+
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
162
160
|
|
163
|
-
(
|
164
|
-
|
165
|
-
|
166
|
-
) = FeeLib.calculateFee(
|
167
|
-
_getStakingFee(instanceReader, poolNftId),
|
168
|
-
stakingAmount);
|
161
|
+
if (bundleInfo.poolNftId != poolNftId) {
|
162
|
+
revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
163
|
+
}
|
169
164
|
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
165
|
+
{
|
166
|
+
Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
|
167
|
+
if (currentPoolBalance + amount > poolInfo.maxBalanceAmount) {
|
168
|
+
revert ErrorPoolServiceMaxBalanceAmountExceeded(poolNftId, poolInfo.maxBalanceAmount, currentPoolBalance, amount);
|
169
|
+
}
|
170
|
+
}
|
171
|
+
|
172
|
+
// calculate fees
|
173
|
+
IRegistry registry = getRegistry();
|
174
|
+
Amount feeAmount;
|
175
|
+
|
176
|
+
{
|
177
|
+
NftId productNftId = registry.getObjectInfo(poolNftId).parentNftId;
|
178
|
+
Fee memory stakingFee = instanceReader.getFeeInfo(productNftId).stakingFee;
|
179
|
+
(
|
180
|
+
feeAmount,
|
181
|
+
netAmount
|
182
|
+
) = FeeLib.calculateFee(
|
183
|
+
stakingFee,
|
184
|
+
amount);
|
185
|
+
}
|
186
|
+
|
187
|
+
// do all the book keeping
|
188
|
+
_accountingService.increasePoolBalance(
|
181
189
|
instance.getInstanceStore(),
|
182
190
|
poolNftId,
|
183
|
-
|
184
|
-
|
191
|
+
netAmount,
|
192
|
+
feeAmount);
|
185
193
|
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
poolNftId,
|
190
|
-
bundleOwner,
|
191
|
-
stakingAmount);
|
194
|
+
_bundleService.stake(instance, bundleNftId, netAmount);
|
195
|
+
|
196
|
+
emit LogPoolServiceBundleStaked(instance.getNftId(), poolNftId, bundleNftId, amount, netAmount);
|
192
197
|
|
193
|
-
|
198
|
+
// only collect staking amount when pool is not externally managed
|
199
|
+
if (!poolInfo.isExternallyManaged) {
|
200
|
+
|
201
|
+
// collect tokens from bundle owner
|
202
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
203
|
+
_collectStakingAmount(
|
204
|
+
instanceReader,
|
205
|
+
poolNftId,
|
206
|
+
bundleOwner,
|
207
|
+
amount);
|
208
|
+
}
|
194
209
|
}
|
195
210
|
|
196
|
-
|
197
|
-
|
211
|
+
|
212
|
+
/// @inheritdoc IPoolService
|
213
|
+
function unstake(NftId bundleNftId, Amount amount)
|
214
|
+
external
|
198
215
|
virtual
|
199
|
-
|
200
|
-
returns
|
216
|
+
// TODO: restricted() (once #462 is done)
|
217
|
+
returns(Amount netAmount)
|
201
218
|
{
|
202
|
-
|
203
|
-
|
219
|
+
_checkNftType(bundleNftId, BUNDLE());
|
220
|
+
|
221
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
|
222
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
223
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
224
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
225
|
+
|
226
|
+
if (bundleInfo.poolNftId != poolNftId) {
|
227
|
+
revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
|
228
|
+
}
|
229
|
+
|
230
|
+
// call bundle service for bookkeeping and additional checks
|
231
|
+
Amount unstakedAmount = _bundleService.unstake(instance, bundleNftId, amount);
|
232
|
+
|
233
|
+
// Important: from now on work only with unstakedAmount as it is the only reliable amount.
|
234
|
+
// if amount was max, this was set to the available amount
|
235
|
+
|
236
|
+
// TODO: handle performance fees (issue #477)
|
237
|
+
netAmount = unstakedAmount;
|
238
|
+
|
239
|
+
// update pool bookkeeping - performance fees stay in the pool, but as fees
|
240
|
+
_accountingService.decreasePoolBalance(
|
241
|
+
instanceStore,
|
242
|
+
poolNftId,
|
243
|
+
unstakedAmount,
|
244
|
+
AmountLib.zero());
|
245
|
+
|
246
|
+
|
247
|
+
emit LogPoolServiceBundleUnstaked(instance.getNftId(), poolNftId, bundleNftId, unstakedAmount, netAmount);
|
248
|
+
|
249
|
+
// only distribute staking amount when pool is not externally managed
|
250
|
+
if (!instanceReader.getPoolInfo(poolNftId).isExternallyManaged) {
|
251
|
+
|
252
|
+
// transfer amount to bundle owner
|
253
|
+
address bundleOwner = getRegistry().ownerOf(bundleNftId);
|
254
|
+
_distributeUnstakingAmount(
|
255
|
+
instanceReader,
|
256
|
+
poolNftId,
|
257
|
+
bundleOwner,
|
258
|
+
netAmount);
|
259
|
+
}
|
204
260
|
}
|
205
261
|
|
206
|
-
|
262
|
+
|
263
|
+
function fundPoolWallet(Amount amount)
|
207
264
|
external
|
208
265
|
virtual
|
266
|
+
// restricted()
|
209
267
|
{
|
210
|
-
(
|
268
|
+
(
|
269
|
+
NftId poolNftId,
|
270
|
+
IInstance instance
|
271
|
+
) = _getAndVerifyActivePool();
|
272
|
+
|
273
|
+
// check that pool is externally managed
|
274
|
+
InstanceReader reader = instance.getInstanceReader();
|
275
|
+
if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
|
276
|
+
revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
|
277
|
+
}
|
211
278
|
|
212
|
-
|
279
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
280
|
+
emit LogPoolServiceWalletFunded(poolNftId, poolOwner, amount);
|
213
281
|
|
214
|
-
|
215
|
-
|
282
|
+
_collectStakingAmount(
|
283
|
+
reader,
|
284
|
+
poolNftId,
|
285
|
+
poolOwner,
|
286
|
+
amount);
|
287
|
+
}
|
216
288
|
|
217
|
-
// TODO get performance fee for pool, transfer of remaining funds + bundle fees to bundle owner
|
218
289
|
|
219
|
-
|
290
|
+
function defundPoolWallet(Amount amount)
|
291
|
+
external
|
292
|
+
virtual
|
293
|
+
// restricted()
|
294
|
+
{
|
295
|
+
(
|
296
|
+
NftId poolNftId,
|
297
|
+
IInstance instance
|
298
|
+
) = _getAndVerifyActivePool();
|
299
|
+
|
300
|
+
// check that pool is externally managed
|
301
|
+
InstanceReader reader = instance.getInstanceReader();
|
302
|
+
if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
|
303
|
+
revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
|
304
|
+
}
|
305
|
+
|
306
|
+
address poolOwner = getRegistry().ownerOf(poolNftId);
|
307
|
+
emit LogPoolServiceWalletDefunded(poolNftId, poolOwner, amount);
|
308
|
+
|
309
|
+
_distributeUnstakingAmount(
|
310
|
+
reader,
|
311
|
+
poolNftId,
|
312
|
+
poolOwner,
|
313
|
+
amount);
|
220
314
|
}
|
221
315
|
|
222
316
|
|
223
317
|
function processSale(
|
224
318
|
NftId bundleNftId,
|
225
|
-
IPolicy.
|
319
|
+
IPolicy.PremiumInfo memory premium
|
226
320
|
)
|
227
321
|
external
|
228
322
|
virtual
|
229
323
|
restricted()
|
230
324
|
{
|
325
|
+
_checkNftType(bundleNftId, BUNDLE());
|
326
|
+
|
231
327
|
IRegistry registry = getRegistry();
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
IInstance instance = IInstance(instanceObjectInfo.objectAddress);
|
328
|
+
NftId poolNftId = registry.getObjectInfo(bundleNftId).parentNftId;
|
329
|
+
(, address instanceAddress) = ContractLib.getInfoAndInstance(registry, poolNftId, true);
|
330
|
+
IInstance instance = IInstance(instanceAddress);
|
236
331
|
|
237
|
-
Amount poolFeeAmount =
|
238
|
-
Amount bundleFeeAmount =
|
239
|
-
Amount bundleNetAmount =
|
332
|
+
Amount poolFeeAmount = premium.poolFeeFixAmount + premium.poolFeeVarAmount;
|
333
|
+
Amount bundleFeeAmount = premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
|
334
|
+
Amount bundleNetAmount = premium.netPremiumAmount;
|
240
335
|
|
241
336
|
InstanceStore instanceStore = instance.getInstanceStore();
|
242
|
-
|
337
|
+
_accountingService.increasePoolBalance(
|
243
338
|
instanceStore,
|
244
|
-
|
339
|
+
poolNftId,
|
245
340
|
bundleNetAmount + bundleFeeAmount,
|
246
341
|
poolFeeAmount);
|
247
342
|
|
248
|
-
|
343
|
+
_accountingService.increaseBundleBalanceForPool(
|
249
344
|
instanceStore,
|
250
|
-
|
345
|
+
bundleNftId,
|
251
346
|
bundleNetAmount,
|
252
347
|
bundleFeeAmount);
|
253
348
|
}
|
@@ -265,13 +360,21 @@ contract PoolService is
|
|
265
360
|
virtual
|
266
361
|
restricted()
|
267
362
|
returns (
|
268
|
-
Amount
|
269
|
-
Amount
|
363
|
+
Amount totalCollateralAmount,
|
364
|
+
Amount localCollateralAmount
|
270
365
|
)
|
271
366
|
{
|
367
|
+
_checkNftType(productNftId, PRODUCT());
|
368
|
+
_checkNftType(applicationNftId, POLICY());
|
369
|
+
_checkNftType(bundleNftId, BUNDLE());
|
370
|
+
|
371
|
+
NftId poolNftId;
|
372
|
+
bool poolIsVerifyingApplications;
|
272
373
|
(
|
374
|
+
poolNftId,
|
375
|
+
totalCollateralAmount,
|
273
376
|
localCollateralAmount,
|
274
|
-
|
377
|
+
poolIsVerifyingApplications
|
275
378
|
) = calculateRequiredCollateral(
|
276
379
|
instance.getInstanceReader(),
|
277
380
|
productNftId,
|
@@ -290,15 +393,23 @@ contract PoolService is
|
|
290
393
|
token,
|
291
394
|
totalCollateralAmount);
|
292
395
|
|
293
|
-
//
|
294
|
-
|
295
|
-
|
396
|
+
// pool callback when required
|
397
|
+
if (poolIsVerifyingApplications) {
|
398
|
+
IPoolComponent pool = IPoolComponent(
|
399
|
+
getRegistry().getObjectAddress(poolNftId));
|
296
400
|
|
401
|
+
pool.verifyApplication(
|
402
|
+
applicationNftId,
|
403
|
+
bundleNftId,
|
404
|
+
totalCollateralAmount);
|
405
|
+
|
406
|
+
// TODO add logging
|
297
407
|
}
|
298
|
-
}
|
299
408
|
|
409
|
+
// TODO add logging
|
410
|
+
}
|
300
411
|
|
301
|
-
function
|
412
|
+
function processPayout(
|
302
413
|
IInstance instance,
|
303
414
|
address token,
|
304
415
|
NftId policyNftId,
|
@@ -309,6 +420,24 @@ contract PoolService is
|
|
309
420
|
virtual
|
310
421
|
restricted()
|
311
422
|
{
|
423
|
+
_checkNftType(policyNftId, POLICY());
|
424
|
+
|
425
|
+
NftId bundleNftId = policyInfo.bundleNftId;
|
426
|
+
NftId poolNftId = getRegistry().getObjectInfo(bundleNftId).parentNftId;
|
427
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
428
|
+
|
429
|
+
_accountingService.decreasePoolBalance(
|
430
|
+
instanceStore,
|
431
|
+
poolNftId,
|
432
|
+
payoutAmount,
|
433
|
+
AmountLib.zero());
|
434
|
+
|
435
|
+
_accountingService.decreaseBundleBalanceForPool(
|
436
|
+
instanceStore,
|
437
|
+
bundleNftId,
|
438
|
+
payoutAmount,
|
439
|
+
AmountLib.zero());
|
440
|
+
|
312
441
|
_bundleService.releaseCollateral(
|
313
442
|
instance,
|
314
443
|
policyNftId,
|
@@ -335,6 +464,8 @@ contract PoolService is
|
|
335
464
|
virtual
|
336
465
|
restricted()
|
337
466
|
{
|
467
|
+
_checkNftType(policyNftId, POLICY());
|
468
|
+
|
338
469
|
Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
|
339
470
|
|
340
471
|
_bundleService.releaseCollateral(
|
@@ -343,10 +474,6 @@ contract PoolService is
|
|
343
474
|
policyInfo.bundleNftId,
|
344
475
|
remainingCollateralAmount);
|
345
476
|
|
346
|
-
_bundleService.unlinkPolicy(
|
347
|
-
instance,
|
348
|
-
policyNftId);
|
349
|
-
|
350
477
|
// update value locked with staking service
|
351
478
|
_staking.decreaseTotalValueLocked(
|
352
479
|
instance.getNftId(),
|
@@ -363,16 +490,21 @@ contract PoolService is
|
|
363
490
|
public
|
364
491
|
view
|
365
492
|
returns(
|
493
|
+
NftId poolNftId,
|
494
|
+
Amount totalCollateralAmount,
|
366
495
|
Amount localCollateralAmount,
|
367
|
-
|
496
|
+
bool poolIsVerifyingApplications
|
368
497
|
)
|
369
498
|
{
|
370
|
-
|
499
|
+
_checkNftType(productNftId, PRODUCT());
|
500
|
+
|
501
|
+
poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
|
371
502
|
IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
|
503
|
+
poolIsVerifyingApplications = poolInfo.isVerifyingApplications;
|
372
504
|
|
373
505
|
(
|
374
|
-
|
375
|
-
|
506
|
+
totalCollateralAmount,
|
507
|
+
localCollateralAmount
|
376
508
|
) = calculateRequiredCollateral(
|
377
509
|
poolInfo.collateralizationLevel,
|
378
510
|
poolInfo.retentionLevel,
|
@@ -388,18 +520,17 @@ contract PoolService is
|
|
388
520
|
public
|
389
521
|
pure
|
390
522
|
returns(
|
391
|
-
Amount
|
392
|
-
Amount
|
523
|
+
Amount totalCollateralAmount,
|
524
|
+
Amount localCollateralAmount
|
393
525
|
)
|
394
526
|
{
|
395
|
-
//
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
//
|
400
|
-
|
401
|
-
|
402
|
-
totalCollateralAmount = localCollateralAmount;
|
527
|
+
// collateralization is applied to sum insured
|
528
|
+
UFixed totalUFixed = collateralizationLevel * sumInsuredAmount.toUFixed();
|
529
|
+
totalCollateralAmount = AmountLib.toAmount(totalUFixed.toInt());
|
530
|
+
|
531
|
+
// retention level defines how much capital is required locally
|
532
|
+
localCollateralAmount = AmountLib.toAmount(
|
533
|
+
(retentionLevel * totalUFixed).toInt());
|
403
534
|
}
|
404
535
|
|
405
536
|
|
@@ -408,6 +539,7 @@ contract PoolService is
|
|
408
539
|
Amount stakingAmount
|
409
540
|
)
|
410
541
|
internal
|
542
|
+
pure
|
411
543
|
returns (Amount stakingNetAmount)
|
412
544
|
{
|
413
545
|
stakingNetAmount = stakingAmount;
|
@@ -422,30 +554,61 @@ contract PoolService is
|
|
422
554
|
}
|
423
555
|
|
424
556
|
|
425
|
-
|
426
|
-
/// @dev transfers the specified amount from the bundle owner to the pool's wallet
|
557
|
+
/// @dev transfers the specified amount from the "from account" to the pool's wallet
|
427
558
|
function _collectStakingAmount(
|
428
|
-
InstanceReader
|
559
|
+
InstanceReader reader,
|
560
|
+
NftId poolNftId,
|
561
|
+
address from,
|
562
|
+
Amount amount
|
563
|
+
)
|
564
|
+
internal
|
565
|
+
{
|
566
|
+
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
567
|
+
info.tokenHandler.collectTokens(
|
568
|
+
from,
|
569
|
+
amount);
|
570
|
+
}
|
571
|
+
|
572
|
+
/// @dev distributes the specified amount from the pool's wallet to the "to account"
|
573
|
+
function _distributeUnstakingAmount(
|
574
|
+
InstanceReader reader,
|
429
575
|
NftId poolNftId,
|
430
|
-
address
|
576
|
+
address to,
|
431
577
|
Amount amount
|
432
578
|
)
|
433
579
|
internal
|
434
580
|
{
|
581
|
+
IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
|
582
|
+
info.tokenHandler.distributeTokens(
|
583
|
+
info.tokenHandler.getWallet(),
|
584
|
+
to,
|
585
|
+
amount);
|
586
|
+
}
|
435
587
|
|
436
|
-
// collecting investor token
|
437
|
-
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
|
438
|
-
TokenHandler tokenHandler = componentInfo.tokenHandler;
|
439
|
-
address poolWallet = componentInfo.wallet;
|
440
588
|
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
589
|
+
function _getAndVerifyActivePool()
|
590
|
+
internal
|
591
|
+
virtual
|
592
|
+
view
|
593
|
+
returns (
|
594
|
+
NftId poolNftId,
|
595
|
+
IInstance instance
|
596
|
+
)
|
597
|
+
{
|
598
|
+
(
|
599
|
+
IRegistry.ObjectInfo memory info,
|
600
|
+
address instanceAddress
|
601
|
+
) = ContractLib.getAndVerifyComponent(
|
602
|
+
getRegistry(),
|
603
|
+
msg.sender,
|
604
|
+
POOL(),
|
605
|
+
true); // only active pools
|
606
|
+
|
607
|
+
poolNftId = info.nftId;
|
608
|
+
instance = IInstance(instanceAddress);
|
447
609
|
}
|
448
610
|
|
611
|
+
|
449
612
|
function _getDomain() internal pure override returns(ObjectType) {
|
450
613
|
return POOL();
|
451
614
|
}
|