@etherisc/gif-next 0.0.2-f18fb8b-243 → 0.0.2-f1b01e0-214
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 +89 -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 +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +496 -255
- 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/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +277 -20
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +395 -203
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +143 -19
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +180 -476
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +265 -31
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +119 -380
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +473 -287
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +151 -109
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +123 -194
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +318 -90
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1445 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2002 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -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 +1388 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1612 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2389 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -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 +242 -45
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +147 -96
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +263 -130
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +738 -328
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +209 -94
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1080 -357
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +175 -281
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +96 -96
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +863 -726
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +133 -350
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +247 -33
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +117 -136
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +109 -318
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +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 +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +175 -421
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +265 -31
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +337 -210
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +143 -97
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +212 -35
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +139 -212
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +460 -308
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +129 -392
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +673 -552
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +163 -97
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +194 -178
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +100 -90
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +276 -435
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +265 -31
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +415 -234
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +140 -114
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +136 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +308 -16
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +365 -104
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +157 -83
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +260 -229
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +88 -8
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +459 -309
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +141 -99
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +232 -333
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +109 -131
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +268 -427
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +370 -22
- 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 +597 -80
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +645 -373
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1337 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +67 -277
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +608 -539
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +142 -110
- 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 +597 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +80 -100
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +568 -252
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +106 -136
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +98 -318
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +196 -143
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +152 -20
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +274 -391
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +126 -95
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +35 -67
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +205 -168
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +103 -85
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +198 -138
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +82 -36
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +109 -35
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
- 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/authorization/AccessAdmin.sol +338 -225
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +350 -203
- package/contracts/authorization/IAccess.sol +13 -4
- package/contracts/authorization/IAccessAdmin.sol +69 -35
- package/contracts/authorization/IAuthorization.sol +33 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +20 -28
- package/contracts/distribution/BasicDistributionAuthorization.sol +26 -9
- package/contracts/distribution/Distribution.sol +41 -80
- package/contracts/distribution/DistributionService.sol +206 -123
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +9 -14
- package/contracts/distribution/IDistributionService.sol +40 -22
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +68 -48
- package/contracts/instance/IInstanceService.sol +30 -34
- package/contracts/instance/Instance.sol +121 -71
- package/contracts/instance/InstanceAdmin.sol +289 -105
- package/contracts/instance/InstanceAuthorizationV3.sol +99 -66
- package/contracts/instance/InstanceReader.sol +288 -43
- package/contracts/instance/InstanceService.sol +209 -193
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +24 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +11 -4
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +30 -20
- package/contracts/instance/module/IDistribution.sol +21 -9
- package/contracts/instance/module/IPolicy.sol +50 -29
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +1 -4
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +21 -24
- package/contracts/oracle/OracleService.sol +113 -81
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +37 -28
- package/contracts/pool/BasicPoolAuthorization.sol +36 -9
- package/contracts/pool/BundleService.sol +204 -105
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +31 -22
- package/contracts/pool/IPoolComponent.sol +20 -10
- package/contracts/pool/IPoolService.sol +90 -75
- package/contracts/pool/Pool.sol +145 -113
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +544 -241
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +98 -78
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +12 -45
- package/contracts/product/BasicProductAuthorization.sol +25 -9
- package/contracts/product/ClaimService.sol +365 -175
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +9 -2
- package/contracts/product/IClaimService.sol +44 -8
- package/contracts/product/IPolicyService.sol +53 -36
- package/contracts/product/IPricingService.sol +11 -10
- package/contracts/product/IProductComponent.sol +28 -5
- package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
- package/contracts/product/PolicyService.sol +458 -269
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +69 -60
- package/contracts/product/PricingServiceManager.sol +6 -9
- package/contracts/product/Product.sol +168 -93
- package/contracts/product/RiskService.sol +154 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +78 -29
- package/contracts/registry/IRegistryService.sol +3 -10
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +368 -216
- package/contracts/registry/RegistryAdmin.sol +166 -273
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +41 -66
- package/contracts/registry/RegistryServiceManager.sol +5 -5
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +517 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +183 -52
- package/contracts/registry/TokenRegistry.sol +8 -10
- package/contracts/shared/Component.sol +65 -136
- package/contracts/shared/ComponentService.sol +463 -336
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +28 -17
- package/contracts/shared/ContractLib.sol +281 -0
- package/contracts/shared/IComponent.sol +5 -17
- package/contracts/shared/IComponentService.sol +51 -41
- package/contracts/shared/IInstanceLinkedComponent.sol +7 -27
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +4 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
- package/contracts/shared/InstanceLinkedComponent.sol +81 -37
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +31 -11
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +52 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +18 -36
- package/contracts/shared/TokenHandler.sol +310 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +20 -13
- package/contracts/staking/IStakingService.sol +28 -9
- package/contracts/staking/Staking.sol +118 -85
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +95 -45
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +26 -33
- package/contracts/staking/StakingService.sol +90 -37
- package/contracts/staking/StakingServiceManager.sol +8 -7
- package/contracts/staking/StakingStore.sol +14 -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/Fee.sol +8 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +60 -41
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +38 -6
- package/contracts/type/RoleId.sol +23 -15
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/Timestamp.sol +10 -5
- package/contracts/type/UFixed.sol +56 -126
- package/contracts/type/Version.sol +57 -6
- package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +5 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -181
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/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/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -460
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/base/ObjectManager.sol +0 -79
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/product/ProductService.sol +0 -124
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -487
- package/contracts/shared/InitializableCustom.sol +0 -177
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
| @@ -1,45 +1,44 @@ | |
| 1 1 | 
             
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 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 | 
            -
            import {InstanceReader} from "../instance/InstanceReader.sol";
         | 
| 11 5 | 
             
            import {IPolicy} from "../instance/module/IPolicy.sol";
         | 
| 12 6 | 
             
            import {IService} from "../shared/IService.sol";
         | 
| 13 | 
            -
             | 
| 14 | 
            -
            import { | 
| 15 | 
            -
            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";
         | 
| 16 14 | 
             
            import {UFixed} from "../type/UFixed.sol";
         | 
| 17 15 |  | 
| 18 16 | 
             
            interface IPoolService is IService {
         | 
| 19 17 |  | 
| 20 | 
            -
                event  | 
| 21 | 
            -
                event  | 
| 18 | 
            +
                event LogPoolServiceMaxBalanceAmountUpdated(NftId poolNftId, Amount previousMaxCapitalAmount, Amount currentMaxCapitalAmount);
         | 
| 19 | 
            +
                event LogPoolServiceWalletFunded(NftId poolNftId, address poolOwner, Amount amount);
         | 
| 20 | 
            +
                event LogPoolServiceWalletDefunded(NftId poolNftId, address poolOwner, Amount amount);
         | 
| 22 21 |  | 
| 23 22 | 
             
                event LogPoolServiceBundleCreated(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
         | 
| 24 23 | 
             
                event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
         | 
| 25 24 |  | 
| 26 | 
            -
                 | 
| 27 | 
            -
                 | 
| 25 | 
            +
                event LogPoolServiceBundleStaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
         | 
| 26 | 
            +
                event LogPoolServiceBundleUnstaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
         | 
| 28 27 |  | 
| 29 | 
            -
                 | 
| 30 | 
            -
                /// default implementation returns PUBLIC ROLE
         | 
| 31 | 
            -
                function setBundleOwnerRole(RoleId bundleOwnerRole) external;
         | 
| 28 | 
            +
                event LogPoolServiceFeesWithdrawn(NftId bundleNftId, address recipient, address tokenAddress, Amount amount);
         | 
| 32 29 |  | 
| 33 | 
            -
                 | 
| 34 | 
            -
                function setMaxCapitalAmount(Amount maxCapitalAmount) external;
         | 
| 30 | 
            +
                event LogPoolServiceProcessFundedClaim(NftId policyNftId, ClaimId claimId, Amount availableAmount);
         | 
| 35 31 |  | 
| 36 | 
            -
                 | 
| 37 | 
            -
                 | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
                ) | 
| 32 | 
            +
                error ErrorPoolServicePoolNotExternallyManaged(NftId poolNftId);
         | 
| 33 | 
            +
                error ErrorPoolServicePolicyPoolMismatch(NftId policyNftId, NftId productNftId, NftId expectedProductNftId);
         | 
| 34 | 
            +
                error ErrorPoolServiceBundleOwnerRoleAlreadySet(NftId poolNftId);
         | 
| 35 | 
            +
                error ErrorPoolServiceInvalidTransferAmount(Amount expectedAmount, Amount actualAmount);
         | 
| 36 | 
            +
                error ErrorPoolServiceBundlePoolMismatch(NftId bundleNftId, NftId poolNftId);
         | 
| 37 | 
            +
                error ErrorPoolServiceMaxBalanceAmountExceeded(NftId poolNftId, Amount maxBalanceAmount, Amount currentBalanceAmount, Amount transferAmount);
         | 
| 38 | 
            +
                error ErrorPoolServiceFeesWithdrawAmountExceedsLimit(Amount amount, Amount limit);
         | 
| 42 39 |  | 
| 40 | 
            +
                /// @dev sets the max balance amount for the calling pool
         | 
| 41 | 
            +
                function setMaxBalanceAmount(Amount maxBalanceAmount) external;
         | 
| 43 42 |  | 
| 44 43 | 
             
                /// @dev locks required collateral to cover the specified application (and turn it into a policy)
         | 
| 45 44 | 
             
                /// - retention level == 1: the full collateral amount will be locked by the specified bundle
         | 
| @@ -65,36 +64,36 @@ interface IPoolService is IService { | |
| 65 64 | 
             
                /// may only be called by the policy service for unlocked pool components
         | 
| 66 65 | 
             
                function releaseCollateral(
         | 
| 67 66 | 
             
                    IInstance instance, 
         | 
| 68 | 
            -
                    address token,
         | 
| 69 67 | 
             
                    NftId policyNftId, 
         | 
| 70 68 | 
             
                    IPolicy.PolicyInfo memory policyInfo
         | 
| 71 69 | 
             
                ) external;
         | 
| 72 70 |  | 
| 73 71 |  | 
| 74 | 
            -
                /// @dev reduces the locked collateral in the bundle associated with the specified policy
         | 
| 72 | 
            +
                /// @dev reduces the locked collateral in the bundle associated with the specified policy and updates pool/bundle counters
         | 
| 75 73 | 
             
                /// every payout of a policy reduces the collateral by the payout amount
         | 
| 76 74 | 
             
                /// may only be called by the claim service for unlocked pool components
         | 
| 77 | 
            -
                function  | 
| 78 | 
            -
                     | 
| 79 | 
            -
                     | 
| 75 | 
            +
                function processPayout(
         | 
| 76 | 
            +
                    InstanceReader instanceReader,
         | 
| 77 | 
            +
                    InstanceStore instanceStore, 
         | 
| 78 | 
            +
                    NftId productNftId,
         | 
| 80 79 | 
             
                    NftId policyNftId, 
         | 
| 81 | 
            -
                     | 
| 82 | 
            -
                     | 
| 80 | 
            +
                    NftId bundleNftId,
         | 
| 81 | 
            +
                    PayoutId payoutId,
         | 
| 82 | 
            +
                    Amount payoutAmount,
         | 
| 83 | 
            +
                    address payoutBeneficiary
         | 
| 83 84 | 
             
                ) external;
         | 
| 84 85 |  | 
| 85 86 |  | 
| 86 | 
            -
                /// @dev  | 
| 87 | 
            +
                /// @dev increase stakes for bundle
         | 
| 87 88 | 
             
                /// staking fees will be deducted by the pool service from the staking amount
         | 
| 88 89 | 
             
                /// may only be called by registered and unlocked pool components
         | 
| 89 | 
            -
                function  | 
| 90 | 
            -
             | 
| 91 | 
            -
             | 
| 92 | 
            -
             | 
| 93 | 
            -
             | 
| 94 | 
            -
             | 
| 95 | 
            -
                )
         | 
| 96 | 
            -
                    external 
         | 
| 97 | 
            -
                    returns(NftId bundleNftId); // the nft id of the newly created bundle
         | 
| 90 | 
            +
                function stake(NftId bundleNftId, Amount amount) external returns(Amount netAmount);
         | 
| 91 | 
            +
             | 
| 92 | 
            +
             | 
| 93 | 
            +
                /// @dev decrease stakes for bundle
         | 
| 94 | 
            +
                /// performance fees will be deducted by the pool service from the staking amount
         | 
| 95 | 
            +
                /// may only be called by registered and unlocked pool components
         | 
| 96 | 
            +
                function unstake(NftId bundleNftId, Amount amount) external returns(Amount netAmount);
         | 
| 98 97 |  | 
| 99 98 |  | 
| 100 99 | 
             
                /// @dev closes the specified bundle
         | 
| @@ -105,46 +104,62 @@ interface IPoolService is IService { | |
| 105 104 | 
             
                function closeBundle(NftId bundleNftId) external;
         | 
| 106 105 |  | 
| 107 106 |  | 
| 108 | 
            -
                /// @dev  | 
| 109 | 
            -
                function  | 
| 107 | 
            +
                /// @dev Withdraw bundle feeds for the specified bundle.
         | 
| 108 | 
            +
                function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
         | 
| 110 109 |  | 
| 111 | 
            -
                /// @dev increase stakes for bundle
         | 
| 112 | 
            -
                /// staking fees will be deducted by the pool service from the staking amount
         | 
| 113 | 
            -
                /// may only be called by registered and unlocked pool components
         | 
| 114 | 
            -
                // function stake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
         | 
| 115 110 |  | 
| 111 | 
            +
                /// @dev Informs product about available funds to process a confirmed claim.
         | 
| 112 | 
            +
                /// The function triggers a callback to the product component when the product's property isProcessingFundedClaims is set.
         | 
| 113 | 
            +
                function processFundedClaim(NftId policyNftId, ClaimId claimId, Amount availableAmount) external;
         | 
| 116 114 |  | 
| 117 | 
            -
                /// @dev decrease stakes for bundle
         | 
| 118 | 
            -
                /// performance fees will be deducted by the pool service from the staking amount
         | 
| 119 | 
            -
                /// may only be called by registered and unlocked pool components
         | 
| 120 | 
            -
                // function unstake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
         | 
| 121 115 |  | 
| 116 | 
            +
                /// @dev Fund the pool wallet with the provided amount.
         | 
| 117 | 
            +
                /// This function will collect the amount from the pool owner and transfers it to the pool wallet.
         | 
| 118 | 
            +
                /// The function will not update balance amounts managed by the framework.
         | 
| 119 | 
            +
                /// Only available for externally managed pools.
         | 
| 120 | 
            +
                function fundPoolWallet(Amount amount) external;
         | 
| 122 121 |  | 
| 123 | 
            -
                /// @dev calulate required collateral for the provided parameters
         | 
| 124 | 
            -
                function calculateRequiredCollateral(
         | 
| 125 | 
            -
                    InstanceReader instanceReader,
         | 
| 126 | 
            -
                    NftId productNftId, 
         | 
| 127 | 
            -
                    Amount sumInsuredAmount
         | 
| 128 | 
            -
                )
         | 
| 129 | 
            -
                    external
         | 
| 130 | 
            -
                    view 
         | 
| 131 | 
            -
                    returns(
         | 
| 132 | 
            -
                        Amount localCollateralAmount,
         | 
| 133 | 
            -
                        Amount totalCollateralAmount
         | 
| 134 | 
            -
                    );
         | 
| 135 122 |  | 
| 123 | 
            +
                /// @dev Defund the specified pool wallet with the provided amount.
         | 
| 124 | 
            +
                /// This function will transfer the amount from the pool wallet to the pool owner.
         | 
| 125 | 
            +
                /// The function will not update balance amounts managed by the framework.
         | 
| 126 | 
            +
                /// Only available for externally managed pools.
         | 
| 127 | 
            +
                function defundPoolWallet(Amount amount) external;
         | 
| 136 128 |  | 
| 137 | 
            -
             | 
| 138 | 
            -
                 | 
| 139 | 
            -
             | 
| 140 | 
            -
             | 
| 141 | 
            -
             | 
| 142 | 
            -
                 | 
| 143 | 
            -
             | 
| 144 | 
            -
             | 
| 145 | 
            -
             | 
| 146 | 
            -
             | 
| 147 | 
            -
             | 
| 148 | 
            -
             | 
| 129 | 
            +
             | 
| 130 | 
            +
                /// @dev processes the sale of a bundle and track the pool fee and bundle fee amounts
         | 
| 131 | 
            +
                function processSale(NftId bundleNftId, IPolicy.PremiumInfo memory premium) external;
         | 
| 132 | 
            +
             | 
| 133 | 
            +
             | 
| 134 | 
            +
                // /// @dev Calulate required collateral for the provided parameters.
         | 
| 135 | 
            +
                // function calculateRequiredCollateral(
         | 
| 136 | 
            +
                //     InstanceReader instanceReader,
         | 
| 137 | 
            +
                //     NftId productNftId, 
         | 
| 138 | 
            +
                //     Amount sumInsuredAmount
         | 
| 139 | 
            +
                // )
         | 
| 140 | 
            +
                //     external
         | 
| 141 | 
            +
                //     view 
         | 
| 142 | 
            +
                //     returns(
         | 
| 143 | 
            +
                //         NftId poolNftId,
         | 
| 144 | 
            +
                //         Amount totalCollateralAmount,
         | 
| 145 | 
            +
                //         Amount localCollateralAmount,
         | 
| 146 | 
            +
                //         bool poolIsVerifyingApplications
         | 
| 147 | 
            +
                //     );
         | 
| 148 | 
            +
             | 
| 149 | 
            +
             | 
| 150 | 
            +
                // /// @dev calulate required collateral for the provided parameters.
         | 
| 151 | 
            +
                // /// Collateralization is applied to sum insured.
         | 
| 152 | 
            +
                // /// Retention level defines the fraction of the collateral that is required locally.
         | 
| 153 | 
            +
                // function calculateRequiredCollateral(
         | 
| 154 | 
            +
                //     UFixed collateralizationLevel, 
         | 
| 155 | 
            +
                //     UFixed retentionLevel, 
         | 
| 156 | 
            +
                //     Amount sumInsuredAmount
         | 
| 157 | 
            +
                // )
         | 
| 158 | 
            +
                //     external
         | 
| 159 | 
            +
                //     pure 
         | 
| 160 | 
            +
                //     returns(
         | 
| 161 | 
            +
                //         Amount totalCollateralAmount,
         | 
| 162 | 
            +
                //         Amount localCollateralAmount
         | 
| 163 | 
            +
                //     );
         | 
| 149 164 |  | 
| 150 165 | 
             
            }
         | 
    
        package/contracts/pool/Pool.sol
    CHANGED
    
    | @@ -2,7 +2,8 @@ | |
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 4 | 
             
            import {Amount, AmountLib} from "../type/Amount.sol";
         | 
| 5 | 
            -
            import {BUNDLE, COMPONENT, POOL} from "../type/ObjectType.sol";
         | 
| 5 | 
            +
            import {BUNDLE, COMPONENT, POLICY, POOL} from "../type/ObjectType.sol";
         | 
| 6 | 
            +
            import {ClaimId} from "../type/ClaimId.sol";
         | 
| 6 7 | 
             
            import {IBundleService} from "./IBundleService.sol";
         | 
| 7 8 | 
             
            import {IAuthorization} from "../authorization/IAuthorization.sol";
         | 
| 8 9 | 
             
            import {IPoolComponent} from "./IPoolComponent.sol";
         | 
| @@ -10,12 +11,13 @@ import {IPoolService} from "./IPoolService.sol"; | |
| 10 11 | 
             
            import {IComponents} from "../instance/module/IComponents.sol";
         | 
| 11 12 | 
             
            import {IComponentService} from "../shared/IComponentService.sol";
         | 
| 12 13 | 
             
            import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
         | 
| 13 | 
            -
            import { | 
| 14 | 
            -
            import { | 
| 14 | 
            +
            import {InstanceReader} from "../instance/InstanceReader.sol";
         | 
| 15 | 
            +
            import {Fee} from "../type/Fee.sol";
         | 
| 16 | 
            +
            import {NftId} from "../type/NftId.sol";
         | 
| 15 17 | 
             
            import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
         | 
| 16 18 | 
             
            import {Seconds} from "../type/Seconds.sol";
         | 
| 17 | 
            -
            import { | 
| 18 | 
            -
            import {UFixed | 
| 19 | 
            +
            import {Timestamp} from "../type/Timestamp.sol";
         | 
| 20 | 
            +
            import {UFixed} from "../type/UFixed.sol";
         | 
| 19 21 |  | 
| 20 22 | 
             
            abstract contract Pool is
         | 
| 21 23 | 
             
                InstanceLinkedComponent, 
         | 
| @@ -25,6 +27,7 @@ abstract contract Pool is | |
| 25 27 | 
             
                bytes32 public constant POOL_STORAGE_LOCATION_V1 = 0x25e3e51823fbfffb988e0a2744bb93722d9f3e906c07cc0a9e77884c46c58300;
         | 
| 26 28 |  | 
| 27 29 | 
             
                struct PoolStorage {
         | 
| 30 | 
            +
                    IComponents.PoolInfo _poolInfo;
         | 
| 28 31 | 
             
                    IComponentService _componentService;
         | 
| 29 32 | 
             
                    IPoolService _poolService;
         | 
| 30 33 | 
             
                    IBundleService _bundleService;
         | 
| @@ -39,23 +42,29 @@ abstract contract Pool is | |
| 39 42 | 
             
                }
         | 
| 40 43 |  | 
| 41 44 |  | 
| 45 | 
            +
                // TODO remove function once this is no longer used to produce contract locations on the fly ...
         | 
| 46 | 
            +
                function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
         | 
| 47 | 
            +
                    return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
         | 
| 48 | 
            +
                }
         | 
| 49 | 
            +
             | 
| 50 | 
            +
             | 
| 42 51 | 
             
                /// @dev see {IPoolComponent.verifyApplication}
         | 
| 43 52 | 
             
                function verifyApplication(
         | 
| 44 53 | 
             
                    NftId applicationNftId, 
         | 
| 45 | 
            -
                    bytes memory applicationData,
         | 
| 46 54 | 
             
                    NftId bundleNftId, 
         | 
| 47 | 
            -
                    bytes memory bundleFilter,
         | 
| 48 55 | 
             
                    Amount collateralizationAmount
         | 
| 49 56 | 
             
                )
         | 
| 50 57 | 
             
                    public
         | 
| 51 58 | 
             
                    virtual
         | 
| 52 59 | 
             
                    restricted()
         | 
| 60 | 
            +
                    onlyNftOfType(applicationNftId, POLICY())
         | 
| 53 61 | 
             
                {
         | 
| 62 | 
            +
                    InstanceReader reader = _getInstanceReader();
         | 
| 54 63 | 
             
                    if(!applicationMatchesBundle(
         | 
| 55 64 | 
             
                        applicationNftId,
         | 
| 56 | 
            -
                        applicationData, 
         | 
| 65 | 
            +
                        reader.getPolicyInfo(applicationNftId).applicationData, 
         | 
| 57 66 | 
             
                        bundleNftId, 
         | 
| 58 | 
            -
                         | 
| 67 | 
            +
                        reader.getBundleInfo(bundleNftId).filter,
         | 
| 59 68 | 
             
                        collateralizationAmount)
         | 
| 60 69 | 
             
                    )
         | 
| 61 70 | 
             
                    {
         | 
| @@ -66,9 +75,25 @@ abstract contract Pool is | |
| 66 75 | 
             
                }
         | 
| 67 76 |  | 
| 68 77 |  | 
| 78 | 
            +
                /// @dev see {IPoolComponent.processConfirmedClaim}
         | 
| 79 | 
            +
                function processConfirmedClaim(
         | 
| 80 | 
            +
                    NftId policyNftId, 
         | 
| 81 | 
            +
                    ClaimId claimId, 
         | 
| 82 | 
            +
                    Amount amount
         | 
| 83 | 
            +
                )
         | 
| 84 | 
            +
                    public
         | 
| 85 | 
            +
                    virtual
         | 
| 86 | 
            +
                    restricted()
         | 
| 87 | 
            +
                    onlyNftOfType(policyNftId, POLICY())
         | 
| 88 | 
            +
                {
         | 
| 89 | 
            +
                    // default implementation is empty
         | 
| 90 | 
            +
                }
         | 
| 91 | 
            +
             | 
| 92 | 
            +
             | 
| 69 93 | 
             
                /// @dev see {IPoolComponent.applicationMatchesBundle}
         | 
| 70 | 
            -
                ///  | 
| 71 | 
            -
                ///  | 
| 94 | 
            +
                /// Default implementation always returns true.
         | 
| 95 | 
            +
                /// Override this function to implement any custom application verification.
         | 
| 96 | 
            +
                /// Calling super.applicationMatchesBundle will ensure validation of application and bundle nft ids.
         | 
| 72 97 | 
             
                function applicationMatchesBundle(
         | 
| 73 98 | 
             
                    NftId applicationNftId, 
         | 
| 74 99 | 
             
                    bytes memory applicationData,
         | 
| @@ -79,53 +104,32 @@ abstract contract Pool is | |
| 79 104 | 
             
                    public
         | 
| 80 105 | 
             
                    virtual
         | 
| 81 106 | 
             
                    view
         | 
| 107 | 
            +
                    onlyNftOfType(applicationNftId, POLICY())
         | 
| 108 | 
            +
                    onlyNftOfType(bundleNftId, BUNDLE())
         | 
| 82 109 | 
             
                    returns (bool isMatching)
         | 
| 83 110 | 
             
                {
         | 
| 84 111 | 
             
                    return true;
         | 
| 85 112 | 
             
                }
         | 
| 86 113 |  | 
| 87 114 |  | 
| 88 | 
            -
                function register()
         | 
| 89 | 
            -
                    external
         | 
| 90 | 
            -
                    virtual
         | 
| 91 | 
            -
                    onlyOwner()
         | 
| 92 | 
            -
                {
         | 
| 93 | 
            -
                    _getPoolStorage()._componentService.registerPool();
         | 
| 94 | 
            -
                }
         | 
| 95 | 
            -
             | 
| 96 | 
            -
             | 
| 97 115 | 
             
                function getInitialPoolInfo()
         | 
| 98 116 | 
             
                    public 
         | 
| 99 117 | 
             
                    virtual 
         | 
| 100 118 | 
             
                    view 
         | 
| 101 119 | 
             
                    returns (IComponents.PoolInfo memory poolInfo)
         | 
| 102 120 | 
             
                {
         | 
| 103 | 
            -
                    return  | 
| 104 | 
            -
                        NftIdLib.zero(), // will be set when GIF registers the related product
         | 
| 105 | 
            -
                        PUBLIC_ROLE(), // bundleOwnerRole
         | 
| 106 | 
            -
                        AmountLib.max(), // maxCapitalAmount,
         | 
| 107 | 
            -
                        isNftInterceptor(), // isInterceptingBundleTransfers
         | 
| 108 | 
            -
                        false, // isExternallyManaged,
         | 
| 109 | 
            -
                        false, // isVerifyingApplications,
         | 
| 110 | 
            -
                        UFixedLib.toUFixed(1), // collateralizationLevel,
         | 
| 111 | 
            -
                        UFixedLib.toUFixed(1), // retentionLevel,
         | 
| 112 | 
            -
                        FeeLib.zero(), // initialPoolFee,
         | 
| 113 | 
            -
                        FeeLib.zero(), // initialStakingFee,
         | 
| 114 | 
            -
                        FeeLib.zero() // initialPerformanceFee,
         | 
| 115 | 
            -
                    );
         | 
| 121 | 
            +
                    return _getPoolStorage()._poolInfo;
         | 
| 116 122 | 
             
                }
         | 
| 117 123 |  | 
| 118 124 | 
             
                // Internals
         | 
| 119 125 |  | 
| 120 126 | 
             
                function _initializePool(
         | 
| 121 127 | 
             
                    address registry,
         | 
| 122 | 
            -
                    NftId  | 
| 128 | 
            +
                    NftId productNftId,
         | 
| 123 129 | 
             
                    string memory name,
         | 
| 124 | 
            -
                     | 
| 130 | 
            +
                    IComponents.PoolInfo memory poolInfo,
         | 
| 125 131 | 
             
                    IAuthorization authorization,
         | 
| 126 | 
            -
                    bool isInterceptingNftTransfers,
         | 
| 127 132 | 
             
                    address initialOwner,
         | 
| 128 | 
            -
                    bytes memory registryData, // writeonly data that will saved in the object info record of the registry
         | 
| 129 133 | 
             
                    bytes memory componentData // component specifidc data 
         | 
| 130 134 | 
             
                )
         | 
| 131 135 | 
             
                    internal
         | 
| @@ -134,24 +138,106 @@ abstract contract Pool is | |
| 134 138 | 
             
                {
         | 
| 135 139 | 
             
                    _initializeInstanceLinkedComponent(
         | 
| 136 140 | 
             
                        registry, 
         | 
| 137 | 
            -
                         | 
| 141 | 
            +
                        productNftId,  
         | 
| 138 142 | 
             
                        name, 
         | 
| 139 | 
            -
                        token, 
         | 
| 140 143 | 
             
                        POOL(), 
         | 
| 141 144 | 
             
                        authorization, 
         | 
| 142 | 
            -
                         | 
| 145 | 
            +
                        poolInfo.isInterceptingBundleTransfers, 
         | 
| 143 146 | 
             
                        initialOwner, 
         | 
| 144 | 
            -
                        registryData, 
         | 
| 145 147 | 
             
                        componentData);
         | 
| 146 148 |  | 
| 147 149 | 
             
                    PoolStorage storage $ = _getPoolStorage();
         | 
| 150 | 
            +
             | 
| 151 | 
            +
                    $._poolInfo = poolInfo;
         | 
| 148 152 | 
             
                    $._poolService = IPoolService(_getServiceAddress(POOL())); 
         | 
| 149 153 | 
             
                    $._bundleService = IBundleService(_getServiceAddress(BUNDLE()));
         | 
| 150 154 | 
             
                    $._componentService = IComponentService(_getServiceAddress(COMPONENT())); 
         | 
| 151 155 |  | 
| 152 | 
            -
                     | 
| 156 | 
            +
                    _registerInterface(type(IPoolComponent).interfaceId);
         | 
| 157 | 
            +
                }
         | 
| 158 | 
            +
             | 
| 159 | 
            +
             | 
| 160 | 
            +
                /// @dev Update pool fees to the specified values.
         | 
| 161 | 
            +
                /// Pool fee: are deducted from the premium amount and goes to the pool owner.
         | 
| 162 | 
            +
                /// Staking fee: are deducted from the staked tokens by a bundle owner and goes to the pool owner.
         | 
| 163 | 
            +
                /// Performance fee: when a bundle is closed a bundle specific profit is calculated.
         | 
| 164 | 
            +
                /// The performance fee is deducted from this profit and goes to the pool owner.
         | 
| 165 | 
            +
                function _setPoolFees(
         | 
| 166 | 
            +
                    Fee memory poolFee,
         | 
| 167 | 
            +
                    Fee memory stakingFee,
         | 
| 168 | 
            +
                    Fee memory performanceFee
         | 
| 169 | 
            +
                )
         | 
| 170 | 
            +
                    internal
         | 
| 171 | 
            +
                    virtual
         | 
| 172 | 
            +
                {
         | 
| 173 | 
            +
                    _getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
         | 
| 174 | 
            +
                }
         | 
| 175 | 
            +
             | 
| 176 | 
            +
             | 
| 177 | 
            +
                /// @dev Sets the maximum balance amound held by this pool.
         | 
| 178 | 
            +
                /// Function may only be called by pool owner.
         | 
| 179 | 
            +
                function _setMaxBalanceAmount(Amount maxBalanceAmount)
         | 
| 180 | 
            +
                    internal
         | 
| 181 | 
            +
                    virtual
         | 
| 182 | 
            +
                {
         | 
| 183 | 
            +
                    _getPoolStorage()._poolService.setMaxBalanceAmount(maxBalanceAmount);
         | 
| 153 184 | 
             
                }
         | 
| 154 185 |  | 
| 186 | 
            +
             | 
| 187 | 
            +
                /// @dev Fund the pool wallet with the specified amount.
         | 
| 188 | 
            +
                /// Function is only available for externally managed pools.
         | 
| 189 | 
            +
                function _fundPoolWallet(Amount amount)
         | 
| 190 | 
            +
                    internal
         | 
| 191 | 
            +
                    virtual
         | 
| 192 | 
            +
                {
         | 
| 193 | 
            +
                    _getPoolStorage()._poolService.fundPoolWallet(amount);
         | 
| 194 | 
            +
                }
         | 
| 195 | 
            +
             | 
| 196 | 
            +
             | 
| 197 | 
            +
                /// @dev Withdraw the specified amount from the pool wallet.
         | 
| 198 | 
            +
                /// Function is only available for externally managed pools.
         | 
| 199 | 
            +
                function _defundPoolWallet(Amount amount)
         | 
| 200 | 
            +
                    internal
         | 
| 201 | 
            +
                    virtual
         | 
| 202 | 
            +
                {
         | 
| 203 | 
            +
                    _getPoolStorage()._poolService.defundPoolWallet(amount);
         | 
| 204 | 
            +
                }
         | 
| 205 | 
            +
             | 
| 206 | 
            +
             | 
| 207 | 
            +
                /// @dev Creates a new empty bundle using the provided parameter values.
         | 
| 208 | 
            +
                function _createBundle(
         | 
| 209 | 
            +
                    address bundleOwner,
         | 
| 210 | 
            +
                    Fee memory fee,
         | 
| 211 | 
            +
                    Seconds lifetime, 
         | 
| 212 | 
            +
                    bytes memory filter
         | 
| 213 | 
            +
                )
         | 
| 214 | 
            +
                    internal
         | 
| 215 | 
            +
                    returns(NftId bundleNftId)
         | 
| 216 | 
            +
                {
         | 
| 217 | 
            +
                    bundleNftId = _getPoolStorage()._bundleService.create(
         | 
| 218 | 
            +
                        bundleOwner,
         | 
| 219 | 
            +
                        fee,
         | 
| 220 | 
            +
                        lifetime,
         | 
| 221 | 
            +
                        filter);
         | 
| 222 | 
            +
             | 
| 223 | 
            +
                    // TODO add logging
         | 
| 224 | 
            +
                }
         | 
| 225 | 
            +
             | 
| 226 | 
            +
             | 
| 227 | 
            +
                /// @dev Sets the fee for the specified bundle.
         | 
| 228 | 
            +
                /// The fee is added on top of the poolFee and deducted from the premium amounts
         | 
| 229 | 
            +
                /// Via these fees individual bundler owner may earn income per policy in the context of peer to peer pools.
         | 
| 230 | 
            +
                function _setBundleFee(
         | 
| 231 | 
            +
                    NftId bundleNftId, 
         | 
| 232 | 
            +
                    Fee memory fee
         | 
| 233 | 
            +
                )
         | 
| 234 | 
            +
                    internal
         | 
| 235 | 
            +
                    virtual
         | 
| 236 | 
            +
                {
         | 
| 237 | 
            +
                    _getPoolStorage()._bundleService.setFee(bundleNftId, fee);
         | 
| 238 | 
            +
                }
         | 
| 239 | 
            +
             | 
| 240 | 
            +
             | 
| 155 241 | 
             
                /// @dev increases the staked tokens by the specified amount
         | 
| 156 242 | 
             
                /// bundle MUST be in active or locked state
         | 
| 157 243 | 
             
                function _stake(
         | 
| @@ -160,8 +246,9 @@ abstract contract Pool is | |
| 160 246 | 
             
                )
         | 
| 161 247 | 
             
                    internal
         | 
| 162 248 | 
             
                    virtual
         | 
| 249 | 
            +
                    returns(Amount) 
         | 
| 163 250 | 
             
                {
         | 
| 164 | 
            -
                     | 
| 251 | 
            +
                    return _getPoolStorage()._poolService.stake(bundleNftId, amount);
         | 
| 165 252 | 
             
                }
         | 
| 166 253 |  | 
| 167 254 |  | 
| @@ -173,8 +260,9 @@ abstract contract Pool is | |
| 173 260 | 
             
                )
         | 
| 174 261 | 
             
                    internal
         | 
| 175 262 | 
             
                    virtual
         | 
| 263 | 
            +
                    returns(Amount netAmount) 
         | 
| 176 264 | 
             
                {
         | 
| 177 | 
            -
                     | 
| 265 | 
            +
                    return _getPoolStorage()._poolService.unstake(bundleNftId, amount);
         | 
| 178 266 | 
             
                }
         | 
| 179 267 |  | 
| 180 268 |  | 
| @@ -186,8 +274,9 @@ abstract contract Pool is | |
| 186 274 | 
             
                )
         | 
| 187 275 | 
             
                    internal
         | 
| 188 276 | 
             
                    virtual
         | 
| 277 | 
            +
                    returns (Timestamp extendedExpiredAt) 
         | 
| 189 278 | 
             
                {
         | 
| 190 | 
            -
                     | 
| 279 | 
            +
                    return _getPoolStorage()._bundleService.extend(bundleNftId, lifetimeExtension);
         | 
| 191 280 | 
             
                }
         | 
| 192 281 |  | 
| 193 282 |  | 
| @@ -217,7 +306,7 @@ abstract contract Pool is | |
| 217 306 | 
             
                /// To close a bundle all all linked policies MUST be in closed state as well.
         | 
| 218 307 | 
             
                /// Closing a bundle finalizes the bundle bookkeeping including overall profit calculation.
         | 
| 219 308 | 
             
                /// Once a bundle is closed this action cannot be reversed.
         | 
| 220 | 
            -
                function  | 
| 309 | 
            +
                function _closeBundle(NftId bundleNftId)
         | 
| 221 310 | 
             
                    internal
         | 
| 222 311 | 
             
                    virtual
         | 
| 223 312 | 
             
                {
         | 
| @@ -225,81 +314,24 @@ abstract contract Pool is | |
| 225 314 | 
             
                }
         | 
| 226 315 |  | 
| 227 316 |  | 
| 228 | 
            -
                /// @dev  | 
| 229 | 
            -
                 | 
| 230 | 
            -
                /// Via these fees individual bundler owner may earn income per policy in the context of peer to peer pools.
         | 
| 231 | 
            -
                function _setBundleFee(
         | 
| 232 | 
            -
                    NftId bundleNftId, 
         | 
| 233 | 
            -
                    Fee memory fee
         | 
| 234 | 
            -
                )
         | 
| 317 | 
            +
                /// @dev Withdraws the specified amount of fees from the bundle.
         | 
| 318 | 
            +
                function _withdrawBundleFees(NftId bundleNftId, Amount amount) 
         | 
| 235 319 | 
             
                    internal
         | 
| 236 | 
            -
                     | 
| 320 | 
            +
                    returns (Amount withdrawnAmount) 
         | 
| 237 321 | 
             
                {
         | 
| 238 | 
            -
                    _getPoolStorage(). | 
| 322 | 
            +
                    return _getPoolStorage()._poolService.withdrawBundleFees(bundleNftId, amount);
         | 
| 239 323 | 
             
                }
         | 
| 240 324 |  | 
| 241 325 |  | 
| 242 | 
            -
                 | 
| 243 | 
            -
             | 
| 244 | 
            -
             | 
| 245 | 
            -
                     | 
| 246 | 
            -
                    virtual
         | 
| 247 | 
            -
                {
         | 
| 248 | 
            -
                    _getPoolStorage()._poolService.setMaxCapitalAmount(maxCapitalAmount);
         | 
| 249 | 
            -
                }
         | 
| 250 | 
            -
             | 
| 251 | 
            -
                /// @dev Sets the required role to create/own bundles.
         | 
| 252 | 
            -
                /// May only be called once after setting up a pool.
         | 
| 253 | 
            -
                /// May only be called by pool owner.
         | 
| 254 | 
            -
                function _setBundleOwnerRole(RoleId bundleOwnerRole)
         | 
| 255 | 
            -
                    internal
         | 
| 256 | 
            -
                    virtual
         | 
| 257 | 
            -
                {
         | 
| 258 | 
            -
                    _getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
         | 
| 259 | 
            -
                }
         | 
| 260 | 
            -
             | 
| 261 | 
            -
             | 
| 262 | 
            -
                /// @dev Update pool fees to the specified values.
         | 
| 263 | 
            -
                /// Pool fee: are deducted from the premium amount and goes to the pool owner.
         | 
| 264 | 
            -
                /// Staking fee: are deducted from the staked tokens by a bundle owner and goes to the pool owner.
         | 
| 265 | 
            -
                /// Performance fee: when a bundle is closed a bundle specific profit is calculated.
         | 
| 266 | 
            -
                /// The performance fee is deducted from this profit and goes to the pool owner.
         | 
| 267 | 
            -
                function _setPoolFees(
         | 
| 268 | 
            -
                    Fee memory poolFee,
         | 
| 269 | 
            -
                    Fee memory stakingFee,
         | 
| 270 | 
            -
                    Fee memory performanceFee
         | 
| 271 | 
            -
                )
         | 
| 272 | 
            -
                    internal
         | 
| 273 | 
            -
                    virtual
         | 
| 274 | 
            -
                {
         | 
| 275 | 
            -
                    _getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
         | 
| 276 | 
            -
                }
         | 
| 277 | 
            -
             | 
| 278 | 
            -
                /// @dev Creates a new bundle using the provided parameter values.
         | 
| 279 | 
            -
                function _createBundle(
         | 
| 280 | 
            -
                    address bundleOwner,
         | 
| 281 | 
            -
                    Fee memory fee,
         | 
| 282 | 
            -
                    Amount amount,
         | 
| 283 | 
            -
                    Seconds lifetime, 
         | 
| 284 | 
            -
                    bytes memory filter
         | 
| 326 | 
            +
                function _processFundedClaim(
         | 
| 327 | 
            +
                    NftId policyNftId, 
         | 
| 328 | 
            +
                    ClaimId claimId, 
         | 
| 329 | 
            +
                    Amount availableAmount
         | 
| 285 330 | 
             
                )
         | 
| 286 331 | 
             
                    internal
         | 
| 287 | 
            -
                    returns(NftId bundleNftId)
         | 
| 288 332 | 
             
                {
         | 
| 289 | 
            -
                     | 
| 290 | 
            -
                         | 
| 291 | 
            -
                        fee,
         | 
| 292 | 
            -
                        amount,
         | 
| 293 | 
            -
                        lifetime,
         | 
| 294 | 
            -
                        filter);
         | 
| 295 | 
            -
             | 
| 296 | 
            -
                    // TODO add logging
         | 
| 297 | 
            -
                }
         | 
| 298 | 
            -
             | 
| 299 | 
            -
             | 
| 300 | 
            -
                // TODO remove function once this is no longer used to produce contract locations on the fly ...
         | 
| 301 | 
            -
                function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
         | 
| 302 | 
            -
                    return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
         | 
| 333 | 
            +
                    _getPoolStorage()._poolService.processFundedClaim(
         | 
| 334 | 
            +
                        policyNftId, claimId, availableAmount);
         | 
| 303 335 | 
             
                }
         | 
| 304 336 |  | 
| 305 337 |  |