@etherisc/gif-next 0.0.2-f13c010-035 → 0.0.2-f13d67f-541
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 +90 -317
- 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 +810 -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 +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +729 -287
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -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 +438 -35
- 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 +560 -220
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +191 -21
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +132 -300
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +427 -53
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +64 -173
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +585 -231
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +190 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -135
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +401 -78
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +160 -224
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +426 -52
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +308 -337
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +426 -52
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +408 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1198 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +849 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2185 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +215 -257
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -165
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +278 -233
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +946 -466
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- 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 +551 -50
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +417 -17
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +615 -105
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1121 -374
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +379 -68
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1127 -557
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +434 -81
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +119 -49
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1286 -1925
- 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 +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- 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 +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- 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/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +83 -175
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +425 -54
- 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 +48 -74
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -111
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +157 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +154 -46
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +106 -173
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +426 -52
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +317 -344
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -92
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +219 -146
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +63 -128
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +380 -214
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +76 -159
- 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 +621 -413
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +186 -66
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +327 -62
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +143 -43
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +199 -223
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +426 -52
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +294 -189
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +151 -83
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +268 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +181 -19
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +167 -56
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +175 -181
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +258 -22
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +296 -194
- 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 +169 -77
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +139 -114
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +131 -59
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +193 -217
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +338 -87
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +141 -41
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +78 -19
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
- 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/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +116 -57
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +848 -479
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +89 -37
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +119 -39
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +398 -64
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +66 -96
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +308 -542
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +155 -83
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +544 -4
- 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 +48 -60
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +171 -356
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +48 -74
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +139 -1
- 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 +56 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +66 -110
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +137 -62
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +51 -11
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +289 -112
- 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 +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +70 -30
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1446 -164
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +214 -110
- 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 +1583 -296
- 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 +160 -69
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +257 -162
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +122 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1632 -818
- 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 +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +160 -88
- 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 +11 -11
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
- 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 +2 -2
- 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 +94 -38
- 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 +49 -50
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
- 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/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +69 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +64 -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/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +69 -2
- 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 +61 -37
- 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 +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +95 -25
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- 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 +389 -306
- package/contracts/authorization/AccessAdminLib.sol +678 -0
- package/contracts/authorization/AccessManagerCloneable.sol +128 -4
- package/contracts/authorization/Authorization.sol +161 -260
- package/contracts/authorization/IAccess.sol +29 -12
- package/contracts/authorization/IAccessAdmin.sol +89 -84
- package/contracts/authorization/IAuthorization.sol +9 -43
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +19 -18
- package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
- package/contracts/distribution/Distribution.sol +45 -85
- package/contracts/distribution/DistributionService.sol +192 -99
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +38 -24
- package/contracts/examples/fire/FirePool.sol +21 -8
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +38 -20
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/flight/FlightLib.sol +279 -0
- package/contracts/examples/flight/FlightOracle.sol +168 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +470 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
- package/contracts/examples/flight/FlightUSD.sol +26 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +39 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +32 -6
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +132 -46
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +109 -19
- package/contracts/instance/IInstanceService.sol +61 -14
- package/contracts/instance/Instance.sol +184 -65
- package/contracts/instance/InstanceAdmin.sol +221 -193
- package/contracts/instance/InstanceAuthorizationV3.sol +153 -72
- package/contracts/instance/InstanceReader.sol +447 -314
- package/contracts/instance/InstanceService.sol +315 -214
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +152 -116
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +126 -0
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +6 -8
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +19 -10
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -7
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/oracle/BasicOracle.sol +3 -6
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleService.sol +12 -12
- package/contracts/oracle/Oracle.sol +5 -9
- package/contracts/oracle/OracleService.sol +98 -79
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +26 -19
- package/contracts/pool/BasicPoolAuthorization.sol +34 -10
- package/contracts/pool/BundleService.sol +75 -182
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +28 -55
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +65 -62
- package/contracts/pool/Pool.sol +111 -115
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +299 -229
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +93 -25
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +10 -15
- package/contracts/product/BasicProductAuthorization.sol +33 -11
- package/contracts/product/ClaimService.sol +221 -207
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +28 -3
- package/contracts/product/IClaimService.sol +18 -5
- package/contracts/product/IPolicyService.sol +34 -12
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +25 -10
- package/contracts/product/PolicyService.sol +260 -306
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +52 -46
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +106 -70
- package/contracts/product/RiskService.sol +130 -37
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +25 -24
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +31 -12
- package/contracts/registry/RegistryAdmin.sol +94 -369
- package/contracts/registry/RegistryAuthorization.sol +337 -0
- package/contracts/registry/RegistryService.sol +4 -4
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +199 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +158 -134
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -52
- package/contracts/registry/TokenRegistry.sol +61 -59
- package/contracts/shared/Component.sol +58 -119
- package/contracts/shared/ComponentService.sol +400 -395
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ContractLib.sol +277 -3
- package/contracts/shared/IComponent.sol +2 -18
- package/contracts/shared/IComponentService.sol +28 -38
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +15 -5
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +63 -44
- package/contracts/shared/NftOwnable.sol +8 -6
- package/contracts/shared/PolicyHolder.sol +4 -3
- package/contracts/shared/Registerable.sol +41 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +264 -105
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +270 -72
- package/contracts/staking/IStakingService.sol +45 -75
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +522 -222
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +58 -77
- package/contracts/staking/StakingService.sol +62 -148
- package/contracts/staking/StakingServiceManager.sol +6 -4
- package/contracts/staking/StakingStore.sol +1093 -330
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +17 -22
- package/contracts/type/ChainId.sol +101 -0
- 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 +6 -0
- package/contracts/type/ObjectType.sol +70 -68
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/RiskId.sol +26 -8
- package/contracts/type/RoleId.sol +63 -45
- package/contracts/type/Seconds.sol +23 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/String.sol +42 -0
- package/contracts/type/Timestamp.sol +14 -8
- package/contracts/type/UFixed.sol +35 -127
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +27 -13
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +4 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- 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/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.json +0 -206
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentServiceHelperLib.sol +0 -118
- package/contracts/shared/ComponentVerifyingService.sol +0 -126
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
| @@ -1,39 +1,46 @@ | |
| 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 {ClaimId} from "../type/ClaimId.sol";
         | 
| 6 | 
            -
            import {Fee} from "../type/Fee.sol";
         | 
| 7 | 
            -
            import {IBundle} from "../instance/module/IBundle.sol";
         | 
| 8 4 | 
             
            import {IInstance} from "../instance/IInstance.sol";
         | 
| 9 | 
            -
            import {InstanceReader} from "../instance/InstanceReader.sol";
         | 
| 10 5 | 
             
            import {IPolicy} from "../instance/module/IPolicy.sol";
         | 
| 11 6 | 
             
            import {IService} from "../shared/IService.sol";
         | 
| 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 12 | 
             
            import {NftId} from "../type/NftId.sol";
         | 
| 13 13 | 
             
            import {PayoutId} from "../type/PayoutId.sol";
         | 
| 14 | 
            -
            import {RoleId} from "../type/RoleId.sol";
         | 
| 15 | 
            -
            import {Seconds} from "../type/Seconds.sol";
         | 
| 16 | 
            -
            import {StateId} from "../type/StateId.sol";
         | 
| 17 | 
            -
            import {UFixed} from "../type/UFixed.sol";
         | 
| 18 14 |  | 
| 19 15 | 
             
            interface IPoolService is IService {
         | 
| 20 16 |  | 
| 21 17 | 
             
                event LogPoolServiceMaxBalanceAmountUpdated(NftId poolNftId, Amount previousMaxCapitalAmount, Amount currentMaxCapitalAmount);
         | 
| 22 | 
            -
                event  | 
| 18 | 
            +
                event LogPoolServiceWalletFunded(NftId poolNftId, address poolOwner, Amount amount);
         | 
| 19 | 
            +
                event LogPoolServiceWalletDefunded(NftId poolNftId, address poolOwner, Amount amount);
         | 
| 23 20 |  | 
| 24 21 | 
             
                event LogPoolServiceBundleCreated(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
         | 
| 25 22 | 
             
                event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
         | 
| 26 23 |  | 
| 27 24 | 
             
                event LogPoolServiceBundleStaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
         | 
| 28 | 
            -
                event LogPoolServiceBundleUnstaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount);
         | 
| 25 | 
            +
                event LogPoolServiceBundleUnstaked(NftId instanceNftId, NftId poolNftId, NftId bundleNftId, Amount amount, Amount netAmount);
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                event LogPoolServiceFeesWithdrawn(NftId bundleNftId, address recipient, address tokenAddress, Amount amount);
         | 
| 29 28 |  | 
| 30 29 | 
             
                event LogPoolServiceProcessFundedClaim(NftId policyNftId, ClaimId claimId, Amount availableAmount);
         | 
| 31 30 |  | 
| 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);
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                error ErrorPoolServicePoolNotExternallyManaged(NftId poolNftId);
         | 
| 32 38 | 
             
                error ErrorPoolServicePolicyPoolMismatch(NftId policyNftId, NftId productNftId, NftId expectedProductNftId);
         | 
| 33 39 | 
             
                error ErrorPoolServiceBundleOwnerRoleAlreadySet(NftId poolNftId);
         | 
| 34 40 | 
             
                error ErrorPoolServiceInvalidTransferAmount(Amount expectedAmount, Amount actualAmount);
         | 
| 35 41 | 
             
                error ErrorPoolServiceBundlePoolMismatch(NftId bundleNftId, NftId poolNftId);
         | 
| 36 42 | 
             
                error ErrorPoolServiceMaxBalanceAmountExceeded(NftId poolNftId, Amount maxBalanceAmount, Amount currentBalanceAmount, Amount transferAmount);
         | 
| 43 | 
            +
                error ErrorPoolServiceFeesWithdrawAmountExceedsLimit(Amount amount, Amount limit);
         | 
| 37 44 |  | 
| 38 45 | 
             
                /// @dev sets the max balance amount for the calling pool
         | 
| 39 46 | 
             
                function setMaxBalanceAmount(Amount maxBalanceAmount) external;
         | 
| @@ -62,7 +69,6 @@ interface IPoolService is IService { | |
| 62 69 | 
             
                /// may only be called by the policy service for unlocked pool components
         | 
| 63 70 | 
             
                function releaseCollateral(
         | 
| 64 71 | 
             
                    IInstance instance, 
         | 
| 65 | 
            -
                    address token,
         | 
| 66 72 | 
             
                    NftId policyNftId, 
         | 
| 67 73 | 
             
                    IPolicy.PolicyInfo memory policyInfo
         | 
| 68 74 | 
             
                ) external;
         | 
| @@ -72,24 +78,15 @@ interface IPoolService is IService { | |
| 72 78 | 
             
                /// every payout of a policy reduces the collateral by the payout amount
         | 
| 73 79 | 
             
                /// may only be called by the claim service for unlocked pool components
         | 
| 74 80 | 
             
                function processPayout(
         | 
| 75 | 
            -
                     | 
| 76 | 
            -
                     | 
| 81 | 
            +
                    InstanceReader instanceReader,
         | 
| 82 | 
            +
                    InstanceStore instanceStore, 
         | 
| 83 | 
            +
                    NftId productNftId,
         | 
| 77 84 | 
             
                    NftId policyNftId, 
         | 
| 78 | 
            -
                     | 
| 79 | 
            -
                     | 
| 80 | 
            -
             | 
| 81 | 
            -
             | 
| 82 | 
            -
             | 
| 83 | 
            -
                /// @dev create a new empty bundle with the provided parameters
         | 
| 84 | 
            -
                /// may only be called by registered and unlocked pool components.
         | 
| 85 | 
            -
                function createBundle(
         | 
| 86 | 
            -
                    address owner, // initial bundle owner
         | 
| 87 | 
            -
                    Fee memory fee, // fees deducted from premium that go to bundle owner
         | 
| 88 | 
            -
                    Seconds lifetime, // initial duration for which new policies are covered
         | 
| 89 | 
            -
                    bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
         | 
| 90 | 
            -
                )
         | 
| 91 | 
            -
                    external 
         | 
| 92 | 
            -
                    returns(NftId bundleNftId); // the nft id of the newly created bundle
         | 
| 85 | 
            +
                    NftId bundleNftId,
         | 
| 86 | 
            +
                    PayoutId payoutId,
         | 
| 87 | 
            +
                    Amount payoutAmount,
         | 
| 88 | 
            +
                    address payoutBeneficiary
         | 
| 89 | 
            +
                ) external returns (Amount netPayoutAmount, Amount processingFeeAmount);
         | 
| 93 90 |  | 
| 94 91 |  | 
| 95 92 | 
             
                /// @dev increase stakes for bundle
         | 
| @@ -112,56 +109,62 @@ interface IPoolService is IService { | |
| 112 109 | 
             
                function closeBundle(NftId bundleNftId) external;
         | 
| 113 110 |  | 
| 114 111 |  | 
| 112 | 
            +
                /// @dev Withdraw bundle feeds for the specified bundle.
         | 
| 113 | 
            +
                function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
         | 
| 114 | 
            +
             | 
| 115 | 
            +
             | 
| 115 116 | 
             
                /// @dev Informs product about available funds to process a confirmed claim.
         | 
| 116 117 | 
             
                /// The function triggers a callback to the product component when the product's property isProcessingFundedClaims is set.
         | 
| 117 118 | 
             
                function processFundedClaim(NftId policyNftId, ClaimId claimId, Amount availableAmount) external;
         | 
| 118 119 |  | 
| 119 120 |  | 
| 120 | 
            -
                /// @dev Fund the  | 
| 121 | 
            -
                /// This function will collect the amount from the  | 
| 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.
         | 
| 122 123 | 
             
                /// The function will not update balance amounts managed by the framework.
         | 
| 123 124 | 
             
                /// Only available for externally managed pools.
         | 
| 124 | 
            -
                function fundPoolWallet( | 
| 125 | 
            +
                function fundPoolWallet(Amount amount) external;
         | 
| 125 126 |  | 
| 126 127 |  | 
| 127 128 | 
             
                /// @dev Defund the specified pool wallet with the provided amount.
         | 
| 128 | 
            -
                /// This function will transfer the amount from the pool wallet to the  | 
| 129 | 
            +
                /// This function will transfer the amount from the pool wallet to the pool owner.
         | 
| 129 130 | 
             
                /// The function will not update balance amounts managed by the framework.
         | 
| 130 131 | 
             
                /// Only available for externally managed pools.
         | 
| 131 | 
            -
                function defundPoolWallet( | 
| 132 | 
            +
                function defundPoolWallet(Amount amount) external;
         | 
| 132 133 |  | 
| 133 134 |  | 
| 134 135 | 
             
                /// @dev processes the sale of a bundle and track the pool fee and bundle fee amounts
         | 
| 135 136 | 
             
                function processSale(NftId bundleNftId, IPolicy.PremiumInfo memory premium) external;
         | 
| 136 137 |  | 
| 137 138 |  | 
| 138 | 
            -
                /// @dev Calulate required collateral for the provided parameters.
         | 
| 139 | 
            -
                function calculateRequiredCollateral(
         | 
| 140 | 
            -
             | 
| 141 | 
            -
             | 
| 142 | 
            -
             | 
| 143 | 
            -
                )
         | 
| 144 | 
            -
             | 
| 145 | 
            -
             | 
| 146 | 
            -
             | 
| 147 | 
            -
             | 
| 148 | 
            -
             | 
| 149 | 
            -
             | 
| 150 | 
            -
             | 
| 151 | 
            -
             | 
| 152 | 
            -
             | 
| 153 | 
            -
             | 
| 154 | 
            -
                ///  | 
| 155 | 
            -
                 | 
| 156 | 
            -
             | 
| 157 | 
            -
             | 
| 158 | 
            -
             | 
| 159 | 
            -
                 | 
| 160 | 
            -
             | 
| 161 | 
            -
             | 
| 162 | 
            -
             | 
| 163 | 
            -
             | 
| 164 | 
            -
             | 
| 165 | 
            -
             | 
| 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 | 
            +
                //     );
         | 
| 166 169 |  | 
| 167 170 | 
             
            }
         | 
    
        package/contracts/pool/Pool.sol
    CHANGED
    
    | @@ -11,12 +11,13 @@ import {IPoolService} from "./IPoolService.sol"; | |
| 11 11 | 
             
            import {IComponents} from "../instance/module/IComponents.sol";
         | 
| 12 12 | 
             
            import {IComponentService} from "../shared/IComponentService.sol";
         | 
| 13 13 | 
             
            import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
         | 
| 14 | 
            +
            import {InstanceReader} from "../instance/InstanceReader.sol";
         | 
| 14 15 | 
             
            import {Fee} from "../type/Fee.sol";
         | 
| 15 16 | 
             
            import {NftId} from "../type/NftId.sol";
         | 
| 16 17 | 
             
            import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
         | 
| 17 18 | 
             
            import {Seconds} from "../type/Seconds.sol";
         | 
| 18 19 | 
             
            import {Timestamp} from "../type/Timestamp.sol";
         | 
| 19 | 
            -
            import { | 
| 20 | 
            +
            import {UFixed} from "../type/UFixed.sol";
         | 
| 20 21 |  | 
| 21 22 | 
             
            abstract contract Pool is
         | 
| 22 23 | 
             
                InstanceLinkedComponent, 
         | 
| @@ -26,6 +27,7 @@ abstract contract Pool is | |
| 26 27 | 
             
                bytes32 public constant POOL_STORAGE_LOCATION_V1 = 0x25e3e51823fbfffb988e0a2744bb93722d9f3e906c07cc0a9e77884c46c58300;
         | 
| 27 28 |  | 
| 28 29 | 
             
                struct PoolStorage {
         | 
| 30 | 
            +
                    IComponents.PoolInfo _poolInfo;
         | 
| 29 31 | 
             
                    IComponentService _componentService;
         | 
| 30 32 | 
             
                    IPoolService _poolService;
         | 
| 31 33 | 
             
                    IBundleService _bundleService;
         | 
| @@ -40,12 +42,16 @@ abstract contract Pool is | |
| 40 42 | 
             
                }
         | 
| 41 43 |  | 
| 42 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 | 
            +
             | 
| 43 51 | 
             
                /// @dev see {IPoolComponent.verifyApplication}
         | 
| 44 52 | 
             
                function verifyApplication(
         | 
| 45 53 | 
             
                    NftId applicationNftId, 
         | 
| 46 | 
            -
                    bytes memory applicationData,
         | 
| 47 54 | 
             
                    NftId bundleNftId, 
         | 
| 48 | 
            -
                    bytes memory bundleFilter,
         | 
| 49 55 | 
             
                    Amount collateralizationAmount
         | 
| 50 56 | 
             
                )
         | 
| 51 57 | 
             
                    public
         | 
| @@ -53,11 +59,12 @@ abstract contract Pool is | |
| 53 59 | 
             
                    restricted()
         | 
| 54 60 | 
             
                    onlyNftOfType(applicationNftId, POLICY())
         | 
| 55 61 | 
             
                {
         | 
| 62 | 
            +
                    InstanceReader reader = _getInstanceReader();
         | 
| 56 63 | 
             
                    if(!applicationMatchesBundle(
         | 
| 57 64 | 
             
                        applicationNftId,
         | 
| 58 | 
            -
                        applicationData, 
         | 
| 65 | 
            +
                        reader.getPolicyInfo(applicationNftId).applicationData, 
         | 
| 59 66 | 
             
                        bundleNftId, 
         | 
| 60 | 
            -
                         | 
| 67 | 
            +
                        reader.getBundleInfo(bundleNftId).filter,
         | 
| 61 68 | 
             
                        collateralizationAmount)
         | 
| 62 69 | 
             
                    )
         | 
| 63 70 | 
             
                    {
         | 
| @@ -84,8 +91,9 @@ abstract contract Pool is | |
| 84 91 |  | 
| 85 92 |  | 
| 86 93 | 
             
                /// @dev see {IPoolComponent.applicationMatchesBundle}
         | 
| 87 | 
            -
                ///  | 
| 88 | 
            -
                ///  | 
| 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.
         | 
| 89 97 | 
             
                function applicationMatchesBundle(
         | 
| 90 98 | 
             
                    NftId applicationNftId, 
         | 
| 91 99 | 
             
                    bytes memory applicationData,
         | 
| @@ -103,18 +111,6 @@ abstract contract Pool is | |
| 103 111 | 
             
                    return true;
         | 
| 104 112 | 
             
                }
         | 
| 105 113 |  | 
| 106 | 
            -
                /// @inheritdoc IPoolComponent
         | 
| 107 | 
            -
                function withdrawBundleFees(NftId bundleNftId, Amount amount) 
         | 
| 108 | 
            -
                    external 
         | 
| 109 | 
            -
                    virtual
         | 
| 110 | 
            -
                    restricted()
         | 
| 111 | 
            -
                    onlyBundleOwner(bundleNftId)
         | 
| 112 | 
            -
                    onlyNftOfType(bundleNftId, BUNDLE())
         | 
| 113 | 
            -
                    returns (Amount withdrawnAmount) 
         | 
| 114 | 
            -
                {
         | 
| 115 | 
            -
                    return _withdrawBundleFees(bundleNftId, amount);
         | 
| 116 | 
            -
                }
         | 
| 117 | 
            -
             | 
| 118 114 |  | 
| 119 115 | 
             
                function getInitialPoolInfo()
         | 
| 120 116 | 
             
                    public 
         | 
| @@ -122,46 +118,35 @@ abstract contract Pool is | |
| 122 118 | 
             
                    view 
         | 
| 123 119 | 
             
                    returns (IComponents.PoolInfo memory poolInfo)
         | 
| 124 120 | 
             
                {
         | 
| 125 | 
            -
                    return  | 
| 126 | 
            -
                        maxBalanceAmount: AmountLib.max(),
         | 
| 127 | 
            -
                        bundleOwnerRole: PUBLIC_ROLE(), 
         | 
| 128 | 
            -
                        isInterceptingBundleTransfers: isNftInterceptor(),
         | 
| 129 | 
            -
                        isProcessingConfirmedClaims: false,
         | 
| 130 | 
            -
                        isExternallyManaged: false,
         | 
| 131 | 
            -
                        isVerifyingApplications: false,
         | 
| 132 | 
            -
                        collateralizationLevel: UFixedLib.toUFixed(1),
         | 
| 133 | 
            -
                        retentionLevel: UFixedLib.toUFixed(1)
         | 
| 134 | 
            -
                    });
         | 
| 121 | 
            +
                    return _getPoolStorage()._poolInfo;
         | 
| 135 122 | 
             
                }
         | 
| 136 123 |  | 
| 137 124 | 
             
                // Internals
         | 
| 138 125 |  | 
| 139 | 
            -
                function  | 
| 126 | 
            +
                function __Pool_init(
         | 
| 140 127 | 
             
                    address registry,
         | 
| 141 128 | 
             
                    NftId productNftId,
         | 
| 142 129 | 
             
                    string memory name,
         | 
| 143 | 
            -
                     | 
| 130 | 
            +
                    IComponents.PoolInfo memory poolInfo,
         | 
| 144 131 | 
             
                    IAuthorization authorization,
         | 
| 145 | 
            -
                     | 
| 146 | 
            -
                    address initialOwner,
         | 
| 147 | 
            -
                    bytes memory componentData // component specifidc data 
         | 
| 132 | 
            +
                    address initialOwner
         | 
| 148 133 | 
             
                )
         | 
| 149 134 | 
             
                    internal
         | 
| 150 135 | 
             
                    virtual
         | 
| 151 136 | 
             
                    onlyInitializing()
         | 
| 152 137 | 
             
                {
         | 
| 153 | 
            -
                     | 
| 138 | 
            +
                    __InstanceLinkedComponent_init(
         | 
| 154 139 | 
             
                        registry, 
         | 
| 155 140 | 
             
                        productNftId,  
         | 
| 156 141 | 
             
                        name, 
         | 
| 157 | 
            -
                        token, 
         | 
| 158 142 | 
             
                        POOL(), 
         | 
| 159 143 | 
             
                        authorization, 
         | 
| 160 | 
            -
                         | 
| 161 | 
            -
                        initialOwner | 
| 162 | 
            -
                        componentData);
         | 
| 144 | 
            +
                        poolInfo.isInterceptingBundleTransfers, 
         | 
| 145 | 
            +
                        initialOwner);
         | 
| 163 146 |  | 
| 164 147 | 
             
                    PoolStorage storage $ = _getPoolStorage();
         | 
| 148 | 
            +
             | 
| 149 | 
            +
                    $._poolInfo = poolInfo;
         | 
| 165 150 | 
             
                    $._poolService = IPoolService(_getServiceAddress(POOL())); 
         | 
| 166 151 | 
             
                    $._bundleService = IBundleService(_getServiceAddress(BUNDLE()));
         | 
| 167 152 | 
             
                    $._componentService = IComponentService(_getServiceAddress(COMPONENT())); 
         | 
| @@ -169,79 +154,71 @@ abstract contract Pool is | |
| 169 154 | 
             
                    _registerInterface(type(IPoolComponent).interfaceId);
         | 
| 170 155 | 
             
                }
         | 
| 171 156 |  | 
| 172 | 
            -
                /// @dev increases the staked tokens by the specified amount
         | 
| 173 | 
            -
                /// bundle MUST be in active or locked state
         | 
| 174 | 
            -
                function _stake(
         | 
| 175 | 
            -
                    NftId bundleNftId, 
         | 
| 176 | 
            -
                    Amount amount
         | 
| 177 | 
            -
                )
         | 
| 178 | 
            -
                    internal
         | 
| 179 | 
            -
                    virtual
         | 
| 180 | 
            -
                    returns(Amount) 
         | 
| 181 | 
            -
                {
         | 
| 182 | 
            -
                    return _getPoolStorage()._poolService.stake(bundleNftId, amount);
         | 
| 183 | 
            -
                }
         | 
| 184 | 
            -
             | 
| 185 157 |  | 
| 186 | 
            -
                /// @dev  | 
| 187 | 
            -
                ///  | 
| 188 | 
            -
                 | 
| 189 | 
            -
             | 
| 190 | 
            -
             | 
| 158 | 
            +
                /// @dev Update pool fees to the specified values.
         | 
| 159 | 
            +
                /// Pool fee: are deducted from the premium amount and goes to the pool owner.
         | 
| 160 | 
            +
                /// Staking fee: are deducted from the staked tokens by a bundle owner and goes to the pool owner.
         | 
| 161 | 
            +
                /// Performance fee: when a bundle is closed a bundle specific profit is calculated.
         | 
| 162 | 
            +
                /// The performance fee is deducted from this profit and goes to the pool owner.
         | 
| 163 | 
            +
                function _setPoolFees(
         | 
| 164 | 
            +
                    Fee memory poolFee,
         | 
| 165 | 
            +
                    Fee memory stakingFee,
         | 
| 166 | 
            +
                    Fee memory performanceFee
         | 
| 191 167 | 
             
                )
         | 
| 192 168 | 
             
                    internal
         | 
| 193 169 | 
             
                    virtual
         | 
| 194 | 
            -
                    returns(Amount netAmount) 
         | 
| 195 170 | 
             
                {
         | 
| 196 | 
            -
                     | 
| 171 | 
            +
                    _getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
         | 
| 197 172 | 
             
                }
         | 
| 198 173 |  | 
| 199 174 |  | 
| 200 | 
            -
                /// @dev  | 
| 201 | 
            -
                ///  | 
| 202 | 
            -
                function  | 
| 203 | 
            -
                    NftId bundleNftId, 
         | 
| 204 | 
            -
                    Seconds lifetimeExtension
         | 
| 205 | 
            -
                )
         | 
| 175 | 
            +
                /// @dev Sets the maximum balance amound held by this pool.
         | 
| 176 | 
            +
                /// Function may only be called by pool owner.
         | 
| 177 | 
            +
                function _setMaxBalanceAmount(Amount maxBalanceAmount)
         | 
| 206 178 | 
             
                    internal
         | 
| 207 179 | 
             
                    virtual
         | 
| 208 | 
            -
                    returns (Timestamp extendedExpiredAt) 
         | 
| 209 180 | 
             
                {
         | 
| 210 | 
            -
                     | 
| 181 | 
            +
                    _getPoolStorage()._poolService.setMaxBalanceAmount(maxBalanceAmount);
         | 
| 211 182 | 
             
                }
         | 
| 212 183 |  | 
| 213 184 |  | 
| 214 | 
            -
                /// @dev  | 
| 215 | 
            -
                ///  | 
| 216 | 
            -
                 | 
| 217 | 
            -
                function _lockBundle(NftId bundleNftId)
         | 
| 185 | 
            +
                /// @dev Fund the pool wallet with the specified amount.
         | 
| 186 | 
            +
                /// Function is only available for externally managed pools.
         | 
| 187 | 
            +
                function _fundPoolWallet(Amount amount)
         | 
| 218 188 | 
             
                    internal
         | 
| 219 189 | 
             
                    virtual
         | 
| 220 190 | 
             
                {
         | 
| 221 | 
            -
                    _getPoolStorage(). | 
| 191 | 
            +
                    _getPoolStorage()._poolService.fundPoolWallet(amount);
         | 
| 222 192 | 
             
                }
         | 
| 223 193 |  | 
| 224 194 |  | 
| 225 | 
            -
                /// @dev  | 
| 226 | 
            -
                ///  | 
| 227 | 
            -
                function  | 
| 195 | 
            +
                /// @dev Withdraw the specified amount from the pool wallet.
         | 
| 196 | 
            +
                /// Function is only available for externally managed pools.
         | 
| 197 | 
            +
                function _defundPoolWallet(Amount amount)
         | 
| 228 198 | 
             
                    internal
         | 
| 229 199 | 
             
                    virtual
         | 
| 230 200 | 
             
                {
         | 
| 231 | 
            -
                    _getPoolStorage(). | 
| 201 | 
            +
                    _getPoolStorage()._poolService.defundPoolWallet(amount);
         | 
| 232 202 | 
             
                }
         | 
| 233 203 |  | 
| 234 204 |  | 
| 235 | 
            -
                /// @dev  | 
| 236 | 
            -
                 | 
| 237 | 
            -
             | 
| 238 | 
            -
             | 
| 239 | 
            -
             | 
| 240 | 
            -
             | 
| 205 | 
            +
                /// @dev Creates a new empty bundle using the provided parameter values.
         | 
| 206 | 
            +
                function _createBundle(
         | 
| 207 | 
            +
                    address bundleOwner,
         | 
| 208 | 
            +
                    Fee memory fee,
         | 
| 209 | 
            +
                    Seconds lifetime, 
         | 
| 210 | 
            +
                    bytes memory filter
         | 
| 211 | 
            +
                )
         | 
| 241 212 | 
             
                    internal
         | 
| 242 | 
            -
                     | 
| 213 | 
            +
                    returns(NftId bundleNftId)
         | 
| 243 214 | 
             
                {
         | 
| 244 | 
            -
                    _getPoolStorage(). | 
| 215 | 
            +
                    bundleNftId = _getPoolStorage()._bundleService.create(
         | 
| 216 | 
            +
                        bundleOwner,
         | 
| 217 | 
            +
                        fee,
         | 
| 218 | 
            +
                        lifetime,
         | 
| 219 | 
            +
                        filter);
         | 
| 220 | 
            +
             | 
| 221 | 
            +
                    // TODO add logging
         | 
| 245 222 | 
             
                }
         | 
| 246 223 |  | 
| 247 224 |  | 
| @@ -259,63 +236,81 @@ abstract contract Pool is | |
| 259 236 | 
             
                }
         | 
| 260 237 |  | 
| 261 238 |  | 
| 262 | 
            -
                /// @dev  | 
| 263 | 
            -
                ///  | 
| 264 | 
            -
                function  | 
| 239 | 
            +
                /// @dev increases the staked tokens by the specified amount
         | 
| 240 | 
            +
                /// bundle MUST be in active or locked state
         | 
| 241 | 
            +
                function _stake(
         | 
| 242 | 
            +
                    NftId bundleNftId, 
         | 
| 243 | 
            +
                    Amount amount
         | 
| 244 | 
            +
                )
         | 
| 265 245 | 
             
                    internal
         | 
| 266 246 | 
             
                    virtual
         | 
| 247 | 
            +
                    returns(Amount) 
         | 
| 267 248 | 
             
                {
         | 
| 268 | 
            -
                    _getPoolStorage()._poolService. | 
| 249 | 
            +
                    return _getPoolStorage()._poolService.stake(bundleNftId, amount);
         | 
| 269 250 | 
             
                }
         | 
| 270 251 |  | 
| 271 252 |  | 
| 272 | 
            -
                /// @dev  | 
| 273 | 
            -
                ///  | 
| 274 | 
            -
                 | 
| 275 | 
            -
             | 
| 276 | 
            -
             | 
| 277 | 
            -
                function _setPoolFees(
         | 
| 278 | 
            -
                    Fee memory poolFee,
         | 
| 279 | 
            -
                    Fee memory stakingFee,
         | 
| 280 | 
            -
                    Fee memory performanceFee
         | 
| 253 | 
            +
                /// @dev decreases the staked tokens by the specified amount
         | 
| 254 | 
            +
                /// bundle MUST be in active, locked or closed state
         | 
| 255 | 
            +
                function _unstake(
         | 
| 256 | 
            +
                    NftId bundleNftId, 
         | 
| 257 | 
            +
                    Amount amount
         | 
| 281 258 | 
             
                )
         | 
| 282 259 | 
             
                    internal
         | 
| 283 260 | 
             
                    virtual
         | 
| 261 | 
            +
                    returns(Amount netAmount) 
         | 
| 284 262 | 
             
                {
         | 
| 285 | 
            -
                    _getPoolStorage(). | 
| 263 | 
            +
                    return _getPoolStorage()._poolService.unstake(bundleNftId, amount);
         | 
| 286 264 | 
             
                }
         | 
| 287 265 |  | 
| 288 | 
            -
             | 
| 289 | 
            -
                 | 
| 290 | 
            -
             | 
| 291 | 
            -
             | 
| 292 | 
            -
                     | 
| 293 | 
            -
                     | 
| 266 | 
            +
             | 
| 267 | 
            +
                /// @dev extends the bundle lifetime of the bundle by the specified time
         | 
| 268 | 
            +
                /// bundle MUST be in active or locked state
         | 
| 269 | 
            +
                function _extend(
         | 
| 270 | 
            +
                    NftId bundleNftId, 
         | 
| 271 | 
            +
                    Seconds lifetimeExtension
         | 
| 294 272 | 
             
                )
         | 
| 295 273 | 
             
                    internal
         | 
| 296 | 
            -
                     | 
| 274 | 
            +
                    virtual
         | 
| 275 | 
            +
                    returns (Timestamp extendedExpiredAt) 
         | 
| 297 276 | 
             
                {
         | 
| 298 | 
            -
                     | 
| 299 | 
            -
             | 
| 300 | 
            -
                        fee,
         | 
| 301 | 
            -
                        lifetime,
         | 
| 302 | 
            -
                        filter);
         | 
| 277 | 
            +
                    return _getPoolStorage()._bundleService.extend(bundleNftId, lifetimeExtension);
         | 
| 278 | 
            +
                }
         | 
| 303 279 |  | 
| 304 | 
            -
             | 
| 280 | 
            +
             | 
| 281 | 
            +
                /// @dev Locks the specified bundle.
         | 
| 282 | 
            +
                /// A bundle to be locked MUST be in active state.
         | 
| 283 | 
            +
                /// Locked bundles may not be used to collateralize any new policy.
         | 
| 284 | 
            +
                function _setBundleLocked(NftId bundleNftId, bool locked)
         | 
| 285 | 
            +
                    internal
         | 
| 286 | 
            +
                    virtual
         | 
| 287 | 
            +
                {
         | 
| 288 | 
            +
                    _getPoolStorage()._bundleService.setLocked(bundleNftId, locked);
         | 
| 305 289 | 
             
                }
         | 
| 306 290 |  | 
| 307 | 
            -
             | 
| 308 | 
            -
                 | 
| 309 | 
            -
             | 
| 291 | 
            +
             | 
| 292 | 
            +
                /// @dev Close the specified bundle.
         | 
| 293 | 
            +
                /// A bundle to be closed MUST be in active or locked state.
         | 
| 294 | 
            +
                /// To close a bundle all all linked policies MUST be in closed state as well.
         | 
| 295 | 
            +
                /// Closing a bundle finalizes the bundle bookkeeping including overall profit calculation.
         | 
| 296 | 
            +
                /// Once a bundle is closed this action cannot be reversed.
         | 
| 297 | 
            +
                function _closeBundle(NftId bundleNftId)
         | 
| 298 | 
            +
                    internal
         | 
| 299 | 
            +
                    virtual
         | 
| 300 | 
            +
                {
         | 
| 301 | 
            +
                    _getPoolStorage()._poolService.closeBundle(bundleNftId);
         | 
| 310 302 | 
             
                }
         | 
| 311 303 |  | 
| 304 | 
            +
             | 
| 305 | 
            +
                /// @dev Withdraws the specified amount of fees from the bundle.
         | 
| 312 306 | 
             
                function _withdrawBundleFees(NftId bundleNftId, Amount amount) 
         | 
| 313 307 | 
             
                    internal
         | 
| 314 308 | 
             
                    returns (Amount withdrawnAmount) 
         | 
| 315 309 | 
             
                {
         | 
| 316 | 
            -
                    return _getPoolStorage(). | 
| 310 | 
            +
                    return _getPoolStorage()._poolService.withdrawBundleFees(bundleNftId, amount);
         | 
| 317 311 | 
             
                }
         | 
| 318 312 |  | 
| 313 | 
            +
             | 
| 319 314 | 
             
                function _processFundedClaim(
         | 
| 320 315 | 
             
                    NftId policyNftId, 
         | 
| 321 316 | 
             
                    ClaimId claimId, 
         | 
| @@ -327,6 +322,7 @@ abstract contract Pool is | |
| 327 322 | 
             
                        policyNftId, claimId, availableAmount);
         | 
| 328 323 | 
             
                }
         | 
| 329 324 |  | 
| 325 | 
            +
             | 
| 330 326 | 
             
                function _getPoolStorage() private pure returns (PoolStorage storage $) {
         | 
| 331 327 | 
             
                    assembly {
         | 
| 332 328 | 
             
                        $.slot := POOL_STORAGE_LOCATION_V1
         |