@etherisc/gif-next 0.0.2-ff282a4-523 → 0.0.2-ff3a8a0-504
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 +139 -10
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
- 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/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
- 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 +1244 -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 +174 -601
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +788 -535
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +278 -128
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +178 -330
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +622 -178
- 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 +1484 -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 +2053 -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 +1439 -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 +1171 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -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 +2585 -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/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/{base/IKeyValueStore.sol/IKeyValueStore.json → BaseStore.sol/BaseStore.json} +59 -205
- 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/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +604 -92
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +532 -56
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +657 -257
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2284 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +837 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1772 -822
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +552 -193
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +210 -94
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1705 -1498
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- 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 +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- 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 +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -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 +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +873 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1242 -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 +550 -400
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +272 -102
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +384 -86
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +233 -423
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +749 -377
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +247 -629
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +954 -743
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +271 -113
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +370 -252
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +231 -89
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1159 -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 +491 -341
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +253 -115
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +320 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +369 -18
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +454 -69
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +217 -75
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +380 -225
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +289 -66
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +507 -384
- 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 +237 -123
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +261 -333
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +235 -109
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +428 -509
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -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 +478 -61
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +280 -127
- 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 +920 -125
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +332 -245
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +208 -92
- 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 +361 -125
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +128 -296
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1076 -156
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
- 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 +129 -135
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +42 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +173 -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 +103 -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 +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
- 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 +45 -55
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +148 -90
- 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 +96 -102
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +615 -6
- 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 +2576 -128
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +705 -103
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2914 -226
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +298 -74
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +754 -207
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +218 -84
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
- 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 +122 -5
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +92 -15
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- 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 +119 -58
- 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 +66 -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 +153 -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 +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- 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 +167 -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 +37 -5
- 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 +656 -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 +169 -0
- package/contracts/authorization/IAccess.sol +67 -0
- package/contracts/authorization/IAccessAdmin.sol +144 -0
- package/contracts/authorization/IAuthorization.sol +26 -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 +137 -175
- package/contracts/distribution/DistributionService.sol +314 -215
- package/contracts/distribution/DistributionServiceManager.sol +13 -25
- package/contracts/distribution/IDistributionComponent.sol +23 -49
- package/contracts/distribution/IDistributionService.sol +61 -33
- 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 +437 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +128 -49
- package/contracts/instance/IInstanceService.sol +83 -37
- package/contracts/instance/Instance.sol +254 -132
- package/contracts/instance/InstanceAdmin.sol +379 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
- package/contracts/instance/InstanceReader.sol +489 -243
- package/contracts/instance/InstanceService.sol +418 -212
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +228 -104
- package/contracts/instance/ProductStore.sol +303 -0
- package/contracts/instance/RiskSet.sol +126 -0
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +121 -0
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +20 -0
- package/contracts/instance/base/ObjectLifecycle.sol +109 -0
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -8
- package/contracts/instance/module/IComponents.sol +40 -19
- package/contracts/instance/module/IDistribution.sol +21 -9
- package/contracts/instance/module/IPolicy.sol +57 -30
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +45 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
- package/contracts/oracle/IOracle.sol +41 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +66 -0
- package/contracts/oracle/Oracle.sol +154 -0
- package/contracts/oracle/OracleService.sol +310 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +162 -0
- package/contracts/pool/BasicPoolAuthorization.sol +81 -0
- package/contracts/pool/BundleService.sol +250 -246
- package/contracts/pool/BundleServiceManager.sol +13 -25
- package/contracts/pool/IBundleService.sol +47 -49
- package/contracts/pool/IPoolComponent.sol +23 -75
- package/contracts/pool/IPoolService.sol +112 -56
- package/contracts/pool/Pool.sol +200 -169
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +475 -264
- package/contracts/pool/PoolServiceManager.sol +12 -24
- package/contracts/product/ApplicationService.sol +223 -82
- package/contracts/product/ApplicationServiceManager.sol +12 -9
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +63 -0
- package/contracts/product/ClaimService.sol +398 -214
- package/contracts/product/ClaimServiceManager.sol +12 -9
- package/contracts/product/IApplicationService.sol +30 -4
- package/contracts/product/IClaimService.sol +52 -9
- package/contracts/product/IPolicyService.sol +62 -40
- package/contracts/product/IPricingService.sol +14 -11
- package/contracts/product/IProductComponent.sol +31 -10
- package/contracts/product/IRiskService.sol +48 -0
- package/contracts/product/PolicyService.sol +505 -236
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +12 -27
- package/contracts/product/PricingService.sol +133 -102
- package/contracts/product/PricingServiceManager.sol +12 -24
- package/contracts/product/Product.sol +267 -153
- package/contracts/product/RiskService.sol +189 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -39
- package/contracts/registry/IRegistry.sol +100 -38
- package/contracts/registry/IRegistryService.sol +28 -35
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +453 -222
- package/contracts/registry/RegistryAdmin.sol +191 -0
- package/contracts/registry/RegistryAuthorization.sol +336 -0
- package/contracts/registry/RegistryService.sol +75 -138
- package/contracts/registry/RegistryServiceManager.sol +23 -30
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +525 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
- package/contracts/registry/TokenRegistry.sol +264 -63
- package/contracts/shared/Component.sol +126 -183
- package/contracts/shared/ComponentService.sol +640 -99
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ContractLib.sol +312 -0
- package/contracts/shared/IComponent.sol +18 -50
- package/contracts/shared/IComponentService.sol +111 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +5 -1
- package/contracts/shared/IPolicyHolder.sol +12 -17
- package/contracts/shared/IRegisterable.sol +22 -1
- package/contracts/shared/IService.sol +11 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
- package/contracts/shared/InstanceLinkedComponent.sol +194 -0
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +35 -24
- package/contracts/shared/PolicyHolder.sol +19 -50
- package/contracts/shared/Registerable.sol +54 -23
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +36 -41
- package/contracts/shared/TokenHandler.sol +320 -13
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +358 -6
- package/contracts/staking/IStakingService.sol +98 -76
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +761 -27
- package/contracts/staking/StakingLib.sol +195 -0
- package/contracts/staking/StakingManager.sol +27 -18
- package/contracts/staking/StakingReader.sol +171 -0
- package/contracts/staking/StakingService.sol +175 -58
- package/contracts/staking/StakingServiceManager.sol +13 -8
- package/contracts/staking/StakingStore.sol +1368 -0
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +234 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +48 -3
- package/contracts/type/Blocknumber.sol +36 -13
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +22 -21
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +21 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +204 -63
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +39 -7
- package/contracts/type/RoleId.sol +122 -74
- package/contracts/type/Seconds.sol +67 -1
- package/contracts/type/Selector.sol +107 -0
- package/contracts/type/StateId.sol +41 -2
- package/contracts/type/String.sol +65 -0
- package/contracts/type/Timestamp.sol +20 -9
- package/contracts/type/UFixed.sol +62 -125
- package/contracts/type/Version.sol +58 -7
- package/contracts/{shared → upgradeability}/IVersionable.sol +3 -0
- package/contracts/{shared → upgradeability}/ProxyManager.sol +115 -38
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
- package/contracts/{shared → upgradeability}/Versionable.sol +8 -5
- package/package.json +12 -8
- 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/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- 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 -237
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- 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 -864
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -640
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -620
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
- 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/InstanceAccessManager.sol +0 -543
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
- package/contracts/instance/base/IKeyValueStore.sol +0 -53
- package/contracts/instance/base/KeyValueStore.sol +0 -169
- package/contracts/instance/base/Lifecycle.sol +0 -121
- package/contracts/instance/base/ObjectManager.sol +0 -82
- package/contracts/instance/module/IAccess.sol +0 -54
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/product/IProductService.sol +0 -40
- package/contracts/product/ProductService.sol +0 -210
- package/contracts/product/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -207
- package/contracts/registry/ReleaseManager.sol +0 -360
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
@@ -1,12 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IVersionable} from "../
|
5
|
-
import {ProxyManager} from "../
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {BundleService} from "./BundleService.sol";
|
7
|
-
import {Registry} from "../registry/Registry.sol";
|
8
|
-
import {RegistryService} from "../registry/RegistryService.sol";
|
9
|
-
import {ObjectType, REGISTRY} from "../type/ObjectType.sol";
|
10
7
|
|
11
8
|
contract BundleServiceManager is ProxyManager {
|
12
9
|
|
@@ -14,29 +11,20 @@ contract BundleServiceManager is ProxyManager {
|
|
14
11
|
|
15
12
|
/// @dev initializes proxy manager with pool service implementation
|
16
13
|
constructor(
|
17
|
-
address
|
18
|
-
|
19
|
-
|
14
|
+
address authority,
|
15
|
+
address registry,
|
16
|
+
bytes32 salt
|
17
|
+
)
|
20
18
|
{
|
21
|
-
BundleService
|
22
|
-
bytes memory data = abi.encode(
|
23
|
-
IVersionable versionable =
|
24
|
-
|
25
|
-
|
19
|
+
BundleService svc = new BundleService{salt: salt}();
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
|
+
address(svc),
|
24
|
+
data,
|
25
|
+
salt);
|
26
26
|
|
27
27
|
_bundleService = BundleService(address(versionable));
|
28
|
-
|
29
|
-
// TODO `this` must have a role or own nft to register service
|
30
|
-
//Registry registry = Registry(registryAddress);
|
31
|
-
//address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _bundleService.getMajorVersion());
|
32
|
-
//RegistryService registryService = RegistryService(registryServiceAddress);
|
33
|
-
//registryService.registerService(_poolService);
|
34
|
-
|
35
|
-
// TODO no nft to link yet
|
36
|
-
// link ownership of instance service manager ot nft owner of instance service
|
37
|
-
//_linkToNftOwnable(
|
38
|
-
// address(registryAddress),
|
39
|
-
// address(_poolService));
|
40
28
|
}
|
41
29
|
|
42
30
|
//--- view functions ----------------------------------------------------//
|
@@ -1,21 +1,21 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IService} from "../shared/IService.sol";
|
5
|
+
import {IInstance} from "../instance/IInstance.sol";
|
3
6
|
|
4
7
|
import {Amount} from "../type/Amount.sol";
|
5
8
|
import {NftId} from "../type/NftId.sol";
|
6
9
|
import {Fee} from "../type/Fee.sol";
|
7
|
-
import {
|
8
|
-
import {
|
9
|
-
import {IInstance} from "../instance/IInstance.sol";
|
10
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
11
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
10
12
|
import {Seconds} from "../type/Seconds.sol";
|
11
13
|
import {StateId} from "../type/StateId.sol";
|
12
14
|
import {Timestamp} from "../type/Timestamp.sol";
|
15
|
+
import {UFixed} from "../type/UFixed.sol";
|
13
16
|
|
14
17
|
interface IBundleService is IService {
|
15
18
|
|
16
|
-
event LogBundleServiceBundleActivated(NftId bundleNftId);
|
17
|
-
event LogBundleServiceBundleLocked(NftId bundleNftId);
|
18
|
-
|
19
19
|
error ErrorBundleServiceInsufficientAllowance(address bundleOwner, address tokenHandlerAddress, Amount amount);
|
20
20
|
error ErrorBundleServiceBundleNotOpen(NftId bundleNftId, StateId state, Timestamp expiredAt);
|
21
21
|
error ErrorBundleServiceCapacityInsufficient(NftId bundleNftId, Amount capacityAmount, Amount collateralAmount);
|
@@ -25,15 +25,26 @@ interface IBundleService is IService {
|
|
25
25
|
error ErrorBundleServiceBundlePoolMismatch(NftId bundleNftId, NftId expectedPool, NftId actualPool);
|
26
26
|
|
27
27
|
error ErrorBundleServicePolicyNotCloseable(NftId policyNftId);
|
28
|
+
|
29
|
+
error ErrorBundleServiceUnstakeAmountExceedsLimit(Amount amount, Amount limit);
|
28
30
|
|
29
|
-
|
30
|
-
|
31
|
+
error ErrorBundleServiceExtensionLifetimeIsZero();
|
32
|
+
|
33
|
+
event LogBundleServiceBundleCreated(NftId bundleNftId, NftId poolNftId, Seconds lifetime);
|
34
|
+
event LogBundleServiceBundleClosed(NftId bundleNftId);
|
35
|
+
event LogBundleServiceBundleLocked(NftId bundleNftId);
|
36
|
+
event LogBundleServiceBundleUnlocked(NftId bundleNftId);
|
37
|
+
event LogBundleServiceBundleExtended(NftId bundleNftId, Seconds lifetimeExtension, Timestamp extendedExpiredAt);
|
38
|
+
event LogBundleServiceBundleFeeUpdated(NftId bundleNftId, Amount fixedFee, UFixed fractionalFee);
|
39
|
+
event LogBundleServiceCollateralLocked(NftId bundleNftId, NftId policyNftId, Amount collateralAmount);
|
40
|
+
event LogBundleServiceCollateralReleased(NftId bundleNftId, NftId policyNftId, Amount collateralAmount);
|
41
|
+
event LogBundleServiceBundleStaked(NftId bundleNftId, Amount amount);
|
42
|
+
event LogBundleServiceBundleUnstaked(NftId bundleNftId, Amount amount);
|
43
|
+
|
44
|
+
/// @dev Create a new bundle for the specified attributes.
|
31
45
|
function create(
|
32
|
-
IInstance instance, // instance relevant for bundle
|
33
|
-
NftId poolNftId, // the pool the bundle will be linked to
|
34
46
|
address owner, // initial bundle owner
|
35
47
|
Fee memory fee, // fees deducted from premium that go to bundle owner
|
36
|
-
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
37
48
|
Seconds lifetime, // initial duration for which new policies are covered
|
38
49
|
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
39
50
|
)
|
@@ -41,30 +52,37 @@ interface IBundleService is IService {
|
|
41
52
|
returns(NftId bundleNftId); // the nft id of the newly created bundle
|
42
53
|
|
43
54
|
|
44
|
-
/// @dev increase bundle stakes by the specified amount
|
45
|
-
/// may only be called by the
|
46
|
-
|
55
|
+
/// @dev increase bundle stakes by the specified amount. bundle must not be expired or closed
|
56
|
+
/// may only be called by the pool service
|
57
|
+
function stake(
|
58
|
+
InstanceReader instanceReader,
|
59
|
+
InstanceStore instanceStore,
|
60
|
+
NftId bundleNftId,
|
61
|
+
Amount amount
|
62
|
+
) external;
|
47
63
|
|
48
|
-
|
64
|
+
/// @dev decrease bundle stakes by the specified amount
|
65
|
+
/// may only be called by the pool service
|
66
|
+
function unstake(InstanceStore instanceStore, NftId bundleNftId, Amount amount) external returns (Amount unstakedAmount);
|
49
67
|
|
50
|
-
/// @dev
|
51
|
-
|
52
|
-
/// may only be called by registered and unlocked pool components
|
53
|
-
function lock(NftId bundleNftId) external;
|
68
|
+
/// @dev extend the lifetime of the bundle by the specified time in seconds
|
69
|
+
function extend(NftId bundleNftId, Seconds lifetimeExtension) external returns (Timestamp extendedExpiredAt);
|
54
70
|
|
55
|
-
/// @dev
|
56
|
-
///
|
57
|
-
/// may only be called by registered and unlocked pool components
|
58
|
-
function
|
71
|
+
/// @dev locks/unlocks the specified bundle.
|
72
|
+
/// locked bundles are not available to collateralize new policies.
|
73
|
+
/// may only be called by registered and unlocked pool components.
|
74
|
+
function setLocked(NftId bundleNftId, bool locked) external;
|
59
75
|
|
60
76
|
/// @dev closes the specified bundle
|
61
77
|
/// only open bundles (active or locked) may be closed
|
62
78
|
/// to close a bundle it may not have any non-closed polices attached to it
|
63
79
|
/// may only be called by registered and unlocked pool components
|
80
|
+
/// @return balanceAmount the unstaked amount that was remaining in the bundle
|
81
|
+
/// @return feeAmount the fee amount that was remaining for the bundle
|
64
82
|
function close(
|
65
83
|
IInstance instance,
|
66
84
|
NftId bundleNftId
|
67
|
-
) external;
|
85
|
+
) external returns (Amount balanceAmount, Amount feeAmount);
|
68
86
|
|
69
87
|
/// @dev set bundle fee to provided value
|
70
88
|
/// may only be called by registered and unlocked pool components
|
@@ -80,39 +98,19 @@ interface IBundleService is IService {
|
|
80
98
|
/// the premium (minus bundle fee) is added to the bundle capital
|
81
99
|
/// may only be called by pool service
|
82
100
|
function lockCollateral(
|
83
|
-
IInstance
|
101
|
+
IInstance instance,
|
84
102
|
NftId policyNftId,
|
85
103
|
NftId bundleNftId,
|
86
|
-
Amount collateralAmount
|
87
|
-
Amount premiumAmount // premium after pool fee
|
104
|
+
Amount collateralAmount
|
88
105
|
) external;
|
89
106
|
|
107
|
+
|
90
108
|
/// @dev releases the specified collateral in the bundle
|
91
109
|
/// may only be called by pool service
|
92
110
|
function releaseCollateral(
|
93
|
-
|
111
|
+
InstanceStore instanceStore,
|
94
112
|
NftId policyNftId,
|
95
113
|
NftId bundleNftId,
|
96
114
|
Amount collateralAmount
|
97
115
|
) external;
|
98
|
-
|
99
|
-
/// @dev unlink policy from bundle
|
100
|
-
/// policy may only be unlinked if policy is closeable
|
101
|
-
/// may only be called by pool service
|
102
|
-
function unlinkPolicy(
|
103
|
-
IInstance instance,
|
104
|
-
NftId policyNftId
|
105
|
-
) external;
|
106
|
-
|
107
|
-
/// @dev updates the bundle's fees of with the provided fee amount
|
108
|
-
function updateBundleFees(
|
109
|
-
IInstance instance,
|
110
|
-
NftId bundleNftId,
|
111
|
-
Amount feeAmount
|
112
|
-
) external;
|
113
|
-
|
114
|
-
function increaseBalance(
|
115
|
-
IInstance instance,
|
116
|
-
NftId bundleNftId,
|
117
|
-
Amount amount) external;
|
118
116
|
}
|
@@ -2,8 +2,9 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
5
6
|
import {Fee} from "../type/Fee.sol";
|
6
|
-
import {
|
7
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
7
8
|
import {IComponents} from "../instance/module/IComponents.sol";
|
8
9
|
import {NftId} from "../type/NftId.sol";
|
9
10
|
import {RoleId} from "../type/RoleId.sol";
|
@@ -12,89 +13,27 @@ import {UFixed} from "../type/UFixed.sol";
|
|
12
13
|
|
13
14
|
/// @dev pool components hold and manage the collateral to cover active policies
|
14
15
|
/// pools come in different flavors
|
15
|
-
interface IPoolComponent is
|
16
|
+
interface IPoolComponent is IInstanceLinkedComponent {
|
16
17
|
|
17
18
|
error ErrorPoolNotBundleOwner(NftId bundleNftId, address caller);
|
18
19
|
error ErrorPoolNotPoolService(address caller);
|
19
|
-
|
20
20
|
error ErrorPoolApplicationBundleMismatch(NftId applicationNftId);
|
21
21
|
|
22
22
|
event LogPoolVerifiedByPool(address pool, NftId applicationNftId, Amount collateralizationAmount);
|
23
23
|
|
24
|
-
/// @dev
|
25
|
-
///
|
26
|
-
///
|
27
|
-
|
28
|
-
|
29
|
-
/// @dev decreases the staked tokens by the specified amount
|
30
|
-
/// only the bundle owner may unstake tokens from the bundle
|
31
|
-
/// bundle MUST be in active, locked or closed state
|
32
|
-
function unstake(NftId bundleNftId, Amount amount) external;
|
33
|
-
|
34
|
-
/// @dev extends the bundle lifetime of the bundle by the specified time
|
35
|
-
/// only the bundle owner may extend the bundle's lifetime
|
36
|
-
/// bundle MUST be in active or locked state
|
37
|
-
function extend(NftId bundleNftId, Seconds lifetimeExtension) external;
|
38
|
-
|
39
|
-
/// @dev locks the specified bundle
|
40
|
-
/// a bundle to be locked MUST be in active state
|
41
|
-
/// locked bundles may not be used to collateralize any new policy
|
42
|
-
function lockBundle(NftId bundleNftId) external;
|
43
|
-
|
44
|
-
/// @dev unlocks the specified bundle
|
45
|
-
/// a bundle to be unlocked MUST be in locked state
|
46
|
-
function unlockBundle(NftId bundleNftId) external;
|
47
|
-
|
48
|
-
/// @dev close the specified bundle
|
49
|
-
/// a bundle to be closed MUST be in active or locked state
|
50
|
-
/// to close a bundle all all linked policies MUST be in closed state as well
|
51
|
-
/// closing a bundle finalizes the bundle bookkeeping including overall profit calculation
|
52
|
-
/// once a bundle is closed this action cannot be reversed
|
53
|
-
function close(NftId bundleNftId) external;
|
54
|
-
|
55
|
-
/// @dev sets the fee for the specified bundle
|
56
|
-
/// the fee is added on top of the poolFee and deducted from the premium amounts
|
57
|
-
/// via these fees individual bundler owner may earn income per policy in the context of peer to peer pools
|
58
|
-
function setBundleFee(
|
59
|
-
NftId bundleNftId,
|
60
|
-
Fee memory fee
|
61
|
-
) external;
|
62
|
-
|
63
|
-
/// @dev sets the maximum overall capital amound held by this pool
|
64
|
-
/// function may only be called by pool owner
|
65
|
-
function setMaxCapitalAmount(Amount maxCapitalAmount) external;
|
66
|
-
|
67
|
-
/// @dev sets the required role to create/own bundles
|
68
|
-
/// may only be called once after setting up a pool
|
69
|
-
/// may only be called by pool owner
|
70
|
-
function setBundleOwnerRole(RoleId bundleOwnerRole) external;
|
71
|
-
|
72
|
-
/// @dev update pool fees to the specified values
|
73
|
-
/// pool fees: are deducted from the premium amount and goes to the pool owner
|
74
|
-
/// staking fees: are deducted from the staked tokens by a bundle owner and goes to the pool owner
|
75
|
-
/// performance fees: when a bundle is closed a bundle specific profit is calculated
|
76
|
-
/// the performance fee is deducted from this profit and goes to the pool owner
|
77
|
-
function setFees(
|
78
|
-
Fee memory poolFee,
|
79
|
-
Fee memory stakingFee,
|
80
|
-
Fee memory performanceFee
|
81
|
-
) external;
|
82
|
-
|
83
|
-
/// @dev this is a callback function that is called by the product service when underwriting a policy.
|
84
|
-
/// the pool has the option to check the details and object to underwriting by reverting.
|
85
|
-
/// the function is only called for "active" pools that ask to be involved/notified
|
86
|
-
/// by product related state changes.
|
24
|
+
/// @dev This is a callback function that is called by the product service when underwriting a policy.
|
25
|
+
/// The pool has the option to check the details and object to underwriting by reverting.
|
26
|
+
/// The function is only called for "active" pools that ask to be involved/notified.
|
27
|
+
/// The default implementation is empty.
|
87
28
|
function verifyApplication(
|
88
29
|
NftId applicationNftId,
|
89
|
-
bytes memory applicationData,
|
90
30
|
NftId bundleNftId,
|
91
|
-
bytes memory bundleFilter,
|
92
31
|
Amount collateralizationAmount
|
93
32
|
) external;
|
94
33
|
|
95
|
-
/// @dev
|
96
|
-
///
|
97
|
-
/// default implementation returns true
|
34
|
+
/// @dev Returns true iff the application matches with the bundle.
|
35
|
+
/// This is a callback function that is only called if a pool declares itself as a verifying pool
|
36
|
+
/// The default implementation returns true.
|
98
37
|
function applicationMatchesBundle(
|
99
38
|
NftId applicationNftId,
|
100
39
|
bytes memory applicationData,
|
@@ -106,9 +45,18 @@ interface IPoolComponent is IComponent {
|
|
106
45
|
view
|
107
46
|
returns (bool isMatching);
|
108
47
|
|
109
|
-
|
110
|
-
///
|
111
|
-
///
|
112
|
-
|
48
|
+
|
49
|
+
/// @dev This is a callback function that is called by the claim service when a claim is confirmed.
|
50
|
+
/// The pool has the option to implement custom behavirous such as triggering a reinsurance claim or blocking the claim confirmaation.
|
51
|
+
/// The default implementation is empty.
|
52
|
+
function processConfirmedClaim(
|
53
|
+
NftId policyNftId,
|
54
|
+
ClaimId claimId,
|
55
|
+
Amount amount
|
56
|
+
) external;
|
57
|
+
|
58
|
+
|
59
|
+
/// @dev Returns initial pool specific infos for this pool
|
60
|
+
function getInitialPoolInfo() external view returns (IComponents.PoolInfo memory info);
|
113
61
|
|
114
62
|
}
|
@@ -1,47 +1,49 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Amount} from "../type/Amount.sol";
|
5
|
-
import {Fee} from "../type/Fee.sol";
|
6
|
-
import {NftId} from "../type/NftId.sol";
|
7
|
-
import {PayoutId} from "../type/PayoutId.sol";
|
8
|
-
import {IBundle} from "../instance/module/IBundle.sol";
|
9
4
|
import {IInstance} from "../instance/IInstance.sol";
|
10
5
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
11
6
|
import {IService} from "../shared/IService.sol";
|
12
|
-
|
13
|
-
import {
|
14
|
-
import {
|
7
|
+
|
8
|
+
import {Amount} from "../type/Amount.sol";
|
9
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
10
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
11
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
12
|
+
import {NftId} from "../type/NftId.sol";
|
13
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
15
14
|
|
16
15
|
interface IPoolService is IService {
|
17
16
|
|
18
|
-
event
|
19
|
-
event
|
17
|
+
event LogPoolServiceMaxBalanceAmountUpdated(NftId poolNftId, Amount previousMaxCapitalAmount, Amount currentMaxCapitalAmount);
|
18
|
+
event LogPoolServiceWalletFunded(NftId poolNftId, address poolOwner, Amount amount);
|
19
|
+
event LogPoolServiceWalletDefunded(NftId poolNftId, address poolOwner, Amount amount);
|
20
20
|
|
21
21
|
event LogPoolServiceBundleCreated(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
22
22
|
event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
error ErrorPoolServiceInvalidTransferAmount(Amount expectedAmount, Amount actualAmount);
|
24
|
+
event LogPoolServiceBundleStaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
|
25
|
+
event LogPoolServiceBundleUnstaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
|
27
26
|
|
28
|
-
|
29
|
-
function register(address poolAddress) external returns(NftId);
|
27
|
+
event LogPoolServiceFeesWithdrawn(NftId bundleNftId, address recipient, address tokenAddress, Amount amount);
|
30
28
|
|
31
|
-
|
32
|
-
/// default implementation returns PUBLIC ROLE
|
33
|
-
function setBundleOwnerRole(RoleId bundleOwnerRole) external;
|
29
|
+
event LogPoolServiceProcessFundedClaim(NftId policyNftId, ClaimId claimId, Amount availableAmount);
|
34
30
|
|
35
|
-
|
36
|
-
|
31
|
+
event LogPoolServiceApplicationVerified(NftId poolNftId, NftId bundleNftId, NftId applicationNftId, Amount totalCollateralAmount);
|
32
|
+
event LogPoolServiceCollateralLocked(NftId poolNftId, NftId bundleNftId, NftId applicationNftId, Amount totalCollateralAmount, Amount lockedCollateralAmount);
|
33
|
+
event LogPoolServiceCollateralReleased(NftId bundleNftId, NftId policyNftId, Amount remainingCollateralAmount);
|
34
|
+
event LogPoolServiceSaleProcessed(NftId poolNftId, NftId bundleNftId, Amount bundleNetAmount, Amount bundleFeeAmount, Amount poolFeeAmount);
|
35
|
+
event LogPoolServicePayoutProcessed(NftId poolNftId, NftId bundleNftId, NftId policyNftId, PayoutId payoutId, Amount netPayoutAmount, Amount processingFeeAmount, address payoutBeneficiary);
|
37
36
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
)
|
37
|
+
error ErrorPoolServicePoolNotExternallyManaged(NftId poolNftId);
|
38
|
+
error ErrorPoolServicePolicyPoolMismatch(NftId policyNftId, NftId productNftId, NftId expectedProductNftId);
|
39
|
+
error ErrorPoolServiceBundleOwnerRoleAlreadySet(NftId poolNftId);
|
40
|
+
error ErrorPoolServiceInvalidTransferAmount(Amount expectedAmount, Amount actualAmount);
|
41
|
+
error ErrorPoolServiceBundlePoolMismatch(NftId bundleNftId, NftId poolNftId);
|
42
|
+
error ErrorPoolServiceMaxBalanceAmountExceeded(NftId poolNftId, Amount maxBalanceAmount, Amount currentBalanceAmount, Amount transferAmount);
|
43
|
+
error ErrorPoolServiceFeesWithdrawAmountExceedsLimit(Amount amount, Amount limit);
|
44
44
|
|
45
|
+
/// @dev sets the max balance amount for the calling pool
|
46
|
+
function setMaxBalanceAmount(Amount maxBalanceAmount) external;
|
45
47
|
|
46
48
|
/// @dev locks required collateral to cover the specified application (and turn it into a policy)
|
47
49
|
/// - retention level == 1: the full collateral amount will be locked by the specified bundle
|
@@ -50,11 +52,17 @@ interface IPoolService is IService {
|
|
50
52
|
/// may only be called by the policy service for unlocked pool components
|
51
53
|
function lockCollateral(
|
52
54
|
IInstance instance,
|
55
|
+
address token,
|
53
56
|
NftId productNftId,
|
54
57
|
NftId applicationNftId,
|
55
|
-
|
56
|
-
Amount
|
57
|
-
)
|
58
|
+
NftId bundleNftId,
|
59
|
+
Amount sumInsuredAmount // premium amount after product and distribution fees
|
60
|
+
)
|
61
|
+
external
|
62
|
+
returns (
|
63
|
+
Amount localCollateralAmount,
|
64
|
+
Amount totalCollateralAmount
|
65
|
+
);
|
58
66
|
|
59
67
|
|
60
68
|
/// @dev releases the remaining collateral linked to the specified policy
|
@@ -66,29 +74,31 @@ interface IPoolService is IService {
|
|
66
74
|
) external;
|
67
75
|
|
68
76
|
|
69
|
-
/// @dev reduces the locked collateral in the bundle associated with the specified policy
|
77
|
+
/// @dev reduces the locked collateral in the bundle associated with the specified policy and updates pool/bundle counters
|
70
78
|
/// every payout of a policy reduces the collateral by the payout amount
|
71
79
|
/// may only be called by the claim service for unlocked pool components
|
72
|
-
function
|
73
|
-
|
80
|
+
function processPayout(
|
81
|
+
InstanceReader instanceReader,
|
82
|
+
InstanceStore instanceStore,
|
83
|
+
NftId productNftId,
|
74
84
|
NftId policyNftId,
|
75
|
-
|
76
|
-
|
77
|
-
|
85
|
+
NftId bundleNftId,
|
86
|
+
PayoutId payoutId,
|
87
|
+
Amount payoutAmount,
|
88
|
+
address payoutBeneficiary
|
89
|
+
) external returns (Amount netPayoutAmount, Amount processingFeeAmount);
|
78
90
|
|
79
91
|
|
80
|
-
/// @dev
|
92
|
+
/// @dev increase stakes for bundle
|
81
93
|
/// staking fees will be deducted by the pool service from the staking amount
|
82
94
|
/// may only be called by registered and unlocked pool components
|
83
|
-
function
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
)
|
90
|
-
external
|
91
|
-
returns(NftId bundleNftId); // the nft id of the newly created bundle
|
95
|
+
function stake(NftId bundleNftId, Amount amount) external returns(Amount netAmount);
|
96
|
+
|
97
|
+
|
98
|
+
/// @dev decrease stakes for bundle
|
99
|
+
/// performance fees will be deducted by the pool service from the staking amount
|
100
|
+
/// may only be called by registered and unlocked pool components
|
101
|
+
function unstake(NftId bundleNftId, Amount amount) external returns(Amount netAmount);
|
92
102
|
|
93
103
|
|
94
104
|
/// @dev closes the specified bundle
|
@@ -98,17 +108,63 @@ interface IPoolService is IService {
|
|
98
108
|
/// may only be called by registered and unlocked pool components
|
99
109
|
function closeBundle(NftId bundleNftId) external;
|
100
110
|
|
101
|
-
/// @dev processes the sale of a bundle and track the pool fee and bundle fee amounts
|
102
|
-
function processSale(NftId bundleNftId, IPolicy.Premium memory premium, Amount actualAmountTransferred) external;
|
103
111
|
|
104
|
-
/// @dev
|
105
|
-
|
106
|
-
/// may only be called by registered and unlocked pool components
|
107
|
-
// function stake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
|
112
|
+
/// @dev Withdraw bundle feeds for the specified bundle.
|
113
|
+
function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
|
108
114
|
|
109
115
|
|
110
|
-
/// @dev
|
111
|
-
///
|
112
|
-
|
113
|
-
|
116
|
+
/// @dev Informs product about available funds to process a confirmed claim.
|
117
|
+
/// The function triggers a callback to the product component when the product's property isProcessingFundedClaims is set.
|
118
|
+
function processFundedClaim(NftId policyNftId, ClaimId claimId, Amount availableAmount) external;
|
119
|
+
|
120
|
+
|
121
|
+
/// @dev Fund the pool wallet with the provided amount.
|
122
|
+
/// This function will collect the amount from the pool owner and transfers it to the pool wallet.
|
123
|
+
/// The function will not update balance amounts managed by the framework.
|
124
|
+
/// Only available for externally managed pools.
|
125
|
+
function fundPoolWallet(Amount amount) external;
|
126
|
+
|
127
|
+
|
128
|
+
/// @dev Defund the specified pool wallet with the provided amount.
|
129
|
+
/// This function will transfer the amount from the pool wallet to the pool owner.
|
130
|
+
/// The function will not update balance amounts managed by the framework.
|
131
|
+
/// Only available for externally managed pools.
|
132
|
+
function defundPoolWallet(Amount amount) external;
|
133
|
+
|
134
|
+
|
135
|
+
/// @dev processes the sale of a bundle and track the pool fee and bundle fee amounts
|
136
|
+
function processSale(NftId bundleNftId, IPolicy.PremiumInfo memory premium) external;
|
137
|
+
|
138
|
+
|
139
|
+
// /// @dev Calulate required collateral for the provided parameters.
|
140
|
+
// function calculateRequiredCollateral(
|
141
|
+
// InstanceReader instanceReader,
|
142
|
+
// NftId productNftId,
|
143
|
+
// Amount sumInsuredAmount
|
144
|
+
// )
|
145
|
+
// external
|
146
|
+
// view
|
147
|
+
// returns(
|
148
|
+
// NftId poolNftId,
|
149
|
+
// Amount totalCollateralAmount,
|
150
|
+
// Amount localCollateralAmount,
|
151
|
+
// bool poolIsVerifyingApplications
|
152
|
+
// );
|
153
|
+
|
154
|
+
|
155
|
+
// /// @dev calulate required collateral for the provided parameters.
|
156
|
+
// /// Collateralization is applied to sum insured.
|
157
|
+
// /// Retention level defines the fraction of the collateral that is required locally.
|
158
|
+
// function calculateRequiredCollateral(
|
159
|
+
// UFixed collateralizationLevel,
|
160
|
+
// UFixed retentionLevel,
|
161
|
+
// Amount sumInsuredAmount
|
162
|
+
// )
|
163
|
+
// external
|
164
|
+
// pure
|
165
|
+
// returns(
|
166
|
+
// Amount totalCollateralAmount,
|
167
|
+
// Amount localCollateralAmount
|
168
|
+
// );
|
169
|
+
|
114
170
|
}
|