@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,31 +1,30 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
4
5
|
import {IBundle} from "../instance/module/IBundle.sol";
|
5
6
|
import {IBundleService} from "./IBundleService.sol";
|
6
|
-
import {IComponents} from "../instance/module/IComponents.sol";
|
7
7
|
import {IComponentService} from "../shared/IComponentService.sol";
|
8
8
|
import {IRegistry} from "../registry/IRegistry.sol";
|
9
9
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
10
10
|
import {IInstance} from "../instance/IInstance.sol";
|
11
11
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
12
|
-
import {IPolicy} from "../instance/module/IPolicy.sol";
|
13
12
|
|
14
13
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
15
14
|
import {BundleSet} from "../instance/BundleSet.sol";
|
16
|
-
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
17
15
|
import {Fee} from "../type/Fee.sol";
|
18
16
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
19
17
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
20
|
-
import {ObjectType, COMPONENT, POOL, BUNDLE, POLICY, REGISTRY} from "../type/ObjectType.sol";
|
21
|
-
import {
|
18
|
+
import {ObjectType, ACCOUNTING, COMPONENT, POOL, BUNDLE, POLICY, REGISTRY} from "../type/ObjectType.sol";
|
19
|
+
import {PoolLib} from "./PoolLib.sol";
|
22
20
|
import {Seconds} from "../type/Seconds.sol";
|
21
|
+
import {Service} from "../shared/Service.sol";
|
22
|
+
import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../type/StateId.sol";
|
23
23
|
import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
24
24
|
|
25
|
-
string constant BUNDLE_SERVICE_NAME = "BundleService";
|
26
25
|
|
27
26
|
contract BundleService is
|
28
|
-
|
27
|
+
Service,
|
29
28
|
IBundleService
|
30
29
|
{
|
31
30
|
|
@@ -33,6 +32,7 @@ contract BundleService is
|
|
33
32
|
|
34
33
|
address private _registryAddress;
|
35
34
|
IRegistryService private _registryService;
|
35
|
+
IAccountingService private _accountingService;
|
36
36
|
IComponentService private _componentService;
|
37
37
|
|
38
38
|
function _initialize(
|
@@ -44,13 +44,14 @@ contract BundleService is
|
|
44
44
|
initializer()
|
45
45
|
{
|
46
46
|
(
|
47
|
-
address
|
48
|
-
address
|
47
|
+
address authority,
|
48
|
+
address registry
|
49
49
|
) = abi.decode(data, (address, address));
|
50
50
|
|
51
|
-
|
51
|
+
__Service_init(authority, registry, owner);
|
52
52
|
|
53
53
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
54
|
+
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
54
55
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
55
56
|
|
56
57
|
_registerInterface(type(IBundleService).interfaceId);
|
@@ -63,10 +64,11 @@ contract BundleService is
|
|
63
64
|
)
|
64
65
|
external
|
65
66
|
virtual
|
67
|
+
restricted()
|
66
68
|
{
|
67
69
|
_checkNftType(bundleNftId, BUNDLE());
|
68
70
|
|
69
|
-
(NftId poolNftId
|
71
|
+
(NftId poolNftId, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
70
72
|
InstanceReader instanceReader = instance.getInstanceReader();
|
71
73
|
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
72
74
|
if(bundleInfo.poolNftId.eqz()) {
|
@@ -79,24 +81,23 @@ contract BundleService is
|
|
79
81
|
|
80
82
|
bundleInfo.fee = fee;
|
81
83
|
instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
84
|
+
|
85
|
+
emit LogBundleServiceBundleFeeUpdated(bundleNftId, fee.fixedFee, fee.fractionalFee);
|
82
86
|
}
|
83
87
|
|
84
88
|
|
85
89
|
function create(
|
86
|
-
IInstance instance,
|
87
|
-
NftId poolNftId,
|
88
90
|
address owner,
|
89
91
|
Fee memory bundleFee,
|
90
|
-
Amount stakingAmount,
|
91
92
|
Seconds lifetime,
|
92
93
|
bytes calldata filter
|
93
94
|
)
|
94
95
|
external
|
95
|
-
|
96
|
-
restricted
|
96
|
+
virtual
|
97
|
+
restricted()
|
97
98
|
returns(NftId bundleNftId)
|
98
99
|
{
|
99
|
-
|
100
|
+
(NftId poolNftId, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
100
101
|
|
101
102
|
// register bundle with registry
|
102
103
|
bundleNftId = _registryService.registerBundle(
|
@@ -119,25 +120,17 @@ contract BundleService is
|
|
119
120
|
poolNftId: poolNftId,
|
120
121
|
fee: bundleFee,
|
121
122
|
filter: filter,
|
122
|
-
activatedAt: TimestampLib.
|
123
|
-
expiredAt: TimestampLib.
|
123
|
+
activatedAt: TimestampLib.current(),
|
124
|
+
expiredAt: TimestampLib.current().addSeconds(lifetime),
|
124
125
|
closedAt: zeroTimestamp()
|
125
126
|
})
|
126
127
|
);
|
127
128
|
|
128
|
-
if (stakingAmount.gtz()) {
|
129
|
-
// bundle book keeping
|
130
|
-
_componentService.increaseBundleBalance(
|
131
|
-
instanceStore,
|
132
|
-
bundleNftId,
|
133
|
-
stakingAmount,
|
134
|
-
AmountLib.zero()); // fee amount
|
135
|
-
}
|
136
|
-
|
137
129
|
// put bundle under bundle managemet
|
138
130
|
BundleSet bundleManager = instance.getBundleSet();
|
139
131
|
bundleManager.add(bundleNftId);
|
140
|
-
|
132
|
+
|
133
|
+
emit LogBundleServiceBundleCreated(bundleNftId, poolNftId, lifetime);
|
141
134
|
}
|
142
135
|
|
143
136
|
|
@@ -152,6 +145,7 @@ contract BundleService is
|
|
152
145
|
virtual
|
153
146
|
restricted()
|
154
147
|
{
|
148
|
+
// checks
|
155
149
|
_checkNftType(policyNftId, POLICY());
|
156
150
|
_checkNftType(bundleNftId, BUNDLE());
|
157
151
|
|
@@ -162,7 +156,7 @@ contract BundleService is
|
|
162
156
|
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
163
157
|
|
164
158
|
// ensure bundle is active and not yet expired
|
165
|
-
if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.
|
159
|
+
if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.current()) {
|
166
160
|
revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
|
167
161
|
}
|
168
162
|
}
|
@@ -183,51 +177,37 @@ contract BundleService is
|
|
183
177
|
}
|
184
178
|
}
|
185
179
|
|
180
|
+
// effects
|
186
181
|
// updated locked amount
|
187
182
|
instanceStore.increaseLocked(bundleNftId, collateralAmount);
|
188
|
-
|
189
|
-
// link policy to bundle in bundle manger
|
190
|
-
_linkPolicy(instance, policyNftId);
|
191
|
-
}
|
192
|
-
|
193
|
-
|
194
|
-
function lock(NftId bundleNftId)
|
195
|
-
external
|
196
|
-
virtual
|
197
|
-
{
|
198
|
-
_checkNftType(bundleNftId, BUNDLE());
|
199
|
-
|
200
|
-
(,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
201
|
-
|
202
|
-
// udpate bundle state
|
203
|
-
instance.getInstanceStore().updateBundleState(bundleNftId, PAUSED());
|
204
|
-
|
205
|
-
// update set of active bundles
|
206
|
-
BundleSet bundleManager = instance.getBundleSet();
|
207
|
-
bundleManager.lock(bundleNftId);
|
208
183
|
|
209
|
-
emit
|
184
|
+
emit LogBundleServiceCollateralLocked(bundleNftId, policyNftId, collateralAmount);
|
210
185
|
}
|
211
186
|
|
212
187
|
|
213
|
-
function
|
188
|
+
function setLocked(NftId bundleNftId, bool locked)
|
214
189
|
external
|
215
190
|
virtual
|
191
|
+
restricted()
|
216
192
|
{
|
193
|
+
// checks
|
217
194
|
_checkNftType(bundleNftId, BUNDLE());
|
218
195
|
|
219
|
-
(
|
220
|
-
|
221
|
-
// udpate bundle state
|
222
|
-
instance.getInstanceStore().updateBundleState(bundleNftId, ACTIVE());
|
196
|
+
(, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
223
197
|
|
198
|
+
// effects
|
224
199
|
// update set of active bundles
|
225
200
|
BundleSet bundleManager = instance.getBundleSet();
|
226
|
-
bundleManager.unlock(bundleNftId);
|
227
201
|
|
228
|
-
|
202
|
+
if (locked) {
|
203
|
+
bundleManager.lock(bundleNftId);
|
204
|
+
emit LogBundleServiceBundleLocked(bundleNftId);
|
205
|
+
} else {
|
206
|
+
bundleManager.unlock(bundleNftId);
|
207
|
+
emit LogBundleServiceBundleUnlocked(bundleNftId);
|
208
|
+
}
|
229
209
|
}
|
230
|
-
|
210
|
+
|
231
211
|
|
232
212
|
function close(
|
233
213
|
IInstance instance,
|
@@ -235,9 +215,10 @@ contract BundleService is
|
|
235
215
|
)
|
236
216
|
external
|
237
217
|
virtual
|
238
|
-
restricted
|
218
|
+
restricted()
|
239
219
|
returns (Amount unstakedAmount, Amount feeAmount)
|
240
220
|
{
|
221
|
+
// checks
|
241
222
|
_checkNftType(bundleNftId, BUNDLE());
|
242
223
|
|
243
224
|
InstanceReader instanceReader = instance.getInstanceReader();
|
@@ -249,6 +230,7 @@ contract BundleService is
|
|
249
230
|
revert ErrorBundleServiceBundleWithOpenPolicies(bundleNftId, openPolicies);
|
250
231
|
}
|
251
232
|
|
233
|
+
// effects
|
252
234
|
{
|
253
235
|
// update bundle state
|
254
236
|
InstanceStore instanceStore = instance.getInstanceStore();
|
@@ -259,52 +241,59 @@ contract BundleService is
|
|
259
241
|
Amount balanceAmountWithFees = instanceReader.getBalanceAmount(bundleNftId);
|
260
242
|
feeAmount = instanceReader.getFeeAmount(bundleNftId);
|
261
243
|
unstakedAmount = balanceAmountWithFees - feeAmount;
|
262
|
-
|
244
|
+
_accountingService.decreaseBundleBalance(instanceStore, bundleNftId, unstakedAmount, feeAmount);
|
263
245
|
}
|
246
|
+
|
247
|
+
emit LogBundleServiceBundleClosed(bundleNftId);
|
264
248
|
}
|
265
249
|
|
266
250
|
/// @inheritdoc IBundleService
|
267
251
|
function stake(
|
268
|
-
|
252
|
+
InstanceReader instanceReader,
|
253
|
+
InstanceStore instanceStore,
|
269
254
|
NftId bundleNftId,
|
270
255
|
Amount amount
|
271
256
|
)
|
272
257
|
external
|
273
258
|
virtual
|
274
|
-
|
259
|
+
restricted()
|
275
260
|
{
|
261
|
+
// checks
|
276
262
|
_checkNftType(bundleNftId, BUNDLE());
|
277
263
|
|
278
|
-
IBundle.BundleInfo memory bundleInfo =
|
279
|
-
StateId bundleState =
|
264
|
+
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
265
|
+
StateId bundleState = instanceReader.getBundleState(bundleNftId);
|
280
266
|
|
281
267
|
if( (bundleState != ACTIVE() && bundleState != PAUSED()) // locked bundles can be staked
|
282
|
-
|| bundleInfo.expiredAt < TimestampLib.
|
268
|
+
|| bundleInfo.expiredAt < TimestampLib.current()
|
283
269
|
|| bundleInfo.closedAt.gtz()) {
|
284
270
|
revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
|
285
271
|
}
|
286
272
|
|
287
|
-
|
288
|
-
|
273
|
+
// effects
|
274
|
+
_accountingService.increaseBundleBalance(
|
275
|
+
instanceStore,
|
289
276
|
bundleNftId,
|
290
277
|
amount,
|
291
278
|
AmountLib.zero());
|
279
|
+
|
280
|
+
emit LogBundleServiceBundleStaked(bundleNftId, amount);
|
292
281
|
}
|
293
282
|
|
294
283
|
/// @inheritdoc IBundleService
|
295
284
|
function unstake(
|
296
|
-
|
285
|
+
InstanceStore instanceStore,
|
297
286
|
NftId bundleNftId,
|
298
287
|
Amount amount
|
299
288
|
)
|
300
289
|
external
|
301
290
|
virtual
|
302
|
-
|
291
|
+
restricted()
|
303
292
|
returns (Amount unstakedAmount)
|
304
293
|
{
|
294
|
+
// checks
|
305
295
|
_checkNftType(bundleNftId, BUNDLE());
|
306
296
|
|
307
|
-
InstanceStore instanceStore = instance.getInstanceStore();
|
308
297
|
(
|
309
298
|
Amount balanceAmount,
|
310
299
|
Amount lockedAmount,
|
@@ -324,23 +313,27 @@ contract BundleService is
|
|
324
313
|
revert ErrorBundleServiceUnstakeAmountExceedsLimit(amount, availableAmount);
|
325
314
|
}
|
326
315
|
|
327
|
-
|
316
|
+
// effects
|
317
|
+
_accountingService.decreaseBundleBalance(
|
328
318
|
instanceStore,
|
329
319
|
bundleNftId,
|
330
320
|
unstakedAmount,
|
331
321
|
AmountLib.zero());
|
322
|
+
|
323
|
+
emit LogBundleServiceBundleUnstaked(bundleNftId, unstakedAmount);
|
332
324
|
}
|
333
325
|
|
334
326
|
/// @inheritdoc IBundleService
|
335
327
|
function extend(NftId bundleNftId, Seconds lifetimeExtension)
|
336
328
|
external
|
337
329
|
virtual
|
338
|
-
|
330
|
+
restricted()
|
339
331
|
returns (Timestamp extendedExpiredAt)
|
340
332
|
{
|
333
|
+
// checks
|
341
334
|
_checkNftType(bundleNftId, BUNDLE());
|
342
335
|
|
343
|
-
(NftId poolNftId
|
336
|
+
(NftId poolNftId, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
|
344
337
|
IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
|
345
338
|
StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
|
346
339
|
|
@@ -350,7 +343,7 @@ contract BundleService is
|
|
350
343
|
}
|
351
344
|
|
352
345
|
// ensure bundle is active and not yet expired
|
353
|
-
if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.
|
346
|
+
if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.current()) {
|
354
347
|
revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
|
355
348
|
}
|
356
349
|
|
@@ -358,17 +351,18 @@ contract BundleService is
|
|
358
351
|
revert ErrorBundleServiceExtensionLifetimeIsZero();
|
359
352
|
}
|
360
353
|
|
354
|
+
// effects
|
361
355
|
bundleInfo.expiredAt = bundleInfo.expiredAt.addSeconds(lifetimeExtension);
|
362
|
-
|
356
|
+
extendedExpiredAt = bundleInfo.expiredAt;
|
363
357
|
|
364
|
-
|
358
|
+
instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
|
365
359
|
|
366
|
-
|
360
|
+
emit LogBundleServiceBundleExtended(bundleNftId, lifetimeExtension, extendedExpiredAt);
|
367
361
|
}
|
368
362
|
|
369
363
|
|
370
364
|
function releaseCollateral(
|
371
|
-
|
365
|
+
InstanceStore instanceStore,
|
372
366
|
NftId policyNftId,
|
373
367
|
NftId bundleNftId,
|
374
368
|
Amount collateralAmount
|
@@ -380,112 +374,11 @@ contract BundleService is
|
|
380
374
|
_checkNftType(policyNftId, POLICY());
|
381
375
|
_checkNftType(bundleNftId, BUNDLE());
|
382
376
|
|
383
|
-
|
384
|
-
}
|
385
|
-
|
386
|
-
/// @dev unlinks policy from bundle
|
387
|
-
function unlinkPolicy(
|
388
|
-
IInstance instance,
|
389
|
-
NftId policyNftId
|
390
|
-
)
|
391
|
-
external
|
392
|
-
virtual
|
393
|
-
restricted
|
394
|
-
{
|
395
|
-
_checkNftType(policyNftId, POLICY());
|
396
|
-
|
397
|
-
// ensure policy is closeable
|
398
|
-
if (!policyIsCloseable(instance, policyNftId)) {
|
399
|
-
revert ErrorBundleServicePolicyNotCloseable(policyNftId);
|
400
|
-
}
|
401
|
-
|
402
|
-
instance.getBundleSet().unlinkPolicy(policyNftId);
|
403
|
-
}
|
404
|
-
|
405
|
-
/// @inheritdoc IBundleService
|
406
|
-
function withdrawBundleFees(NftId bundleNftId, Amount amount)
|
407
|
-
public
|
408
|
-
virtual
|
409
|
-
// TODO: restricted() (once #462 is done)
|
410
|
-
returns (Amount withdrawnAmount)
|
411
|
-
{
|
412
|
-
_checkNftType(bundleNftId, BUNDLE());
|
413
|
-
|
414
|
-
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
415
|
-
InstanceReader reader = instance.getInstanceReader();
|
416
|
-
|
417
|
-
IComponents.ComponentInfo memory poolInfo = reader.getComponentInfo(poolNftId);
|
418
|
-
address poolWallet = poolInfo.wallet;
|
419
|
-
|
420
|
-
// IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
|
421
|
-
|
422
|
-
// determine withdrawn amount
|
423
|
-
withdrawnAmount = amount;
|
424
|
-
if (withdrawnAmount.gte(AmountLib.max())) {
|
425
|
-
withdrawnAmount = reader.getFeeAmount(bundleNftId);
|
426
|
-
} else {
|
427
|
-
if (withdrawnAmount.gt(reader.getFeeAmount(bundleNftId))) {
|
428
|
-
revert ErrorBundleServiceFeesWithdrawAmountExceedsLimit(withdrawnAmount, reader.getFeeAmount(bundleNftId));
|
429
|
-
}
|
430
|
-
}
|
377
|
+
instanceStore.decreaseLocked(bundleNftId, collateralAmount);
|
431
378
|
|
432
|
-
|
433
|
-
{
|
434
|
-
InstanceStore store = instance.getInstanceStore();
|
435
|
-
// decrease fee amount of the bundle
|
436
|
-
_componentService.decreaseBundleBalance(store, bundleNftId, AmountLib.zero(), withdrawnAmount);
|
437
|
-
// decrease pool balance
|
438
|
-
_componentService.decreasePoolBalance(store, poolNftId, withdrawnAmount, AmountLib.zero());
|
439
|
-
}
|
440
|
-
|
441
|
-
// transfer amount to bundle owner
|
442
|
-
{
|
443
|
-
address owner = getRegistry().ownerOf(bundleNftId);
|
444
|
-
emit LogBundleServiceFeesWithdrawn(bundleNftId, owner, address(poolInfo.token), withdrawnAmount);
|
445
|
-
poolInfo.tokenHandler.distributeTokens(poolWallet, owner, withdrawnAmount);
|
446
|
-
}
|
379
|
+
emit LogBundleServiceCollateralReleased(bundleNftId, policyNftId, collateralAmount);
|
447
380
|
}
|
448
381
|
|
449
|
-
/// @inheritdoc IBundleService
|
450
|
-
function policyIsCloseable(IInstance instance, NftId policyNftId)
|
451
|
-
public
|
452
|
-
view
|
453
|
-
returns (bool isCloseable)
|
454
|
-
{
|
455
|
-
_checkNftType(policyNftId, POLICY());
|
456
|
-
|
457
|
-
IPolicy.PolicyInfo memory info = instance.getInstanceReader().getPolicyInfo(policyNftId);
|
458
|
-
|
459
|
-
if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
|
460
|
-
if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
|
461
|
-
if (info.closedAt.gtz()) { return false; } // not closeable: already closed
|
462
|
-
if (info.openClaimsCount > 0) { return false; } // not closeable: has open claims
|
463
|
-
|
464
|
-
// closeable: if sum of claims matches sum insured a policy may be closed prior to the expiry date
|
465
|
-
if (info.claimAmount == info.sumInsuredAmount) { return true; }
|
466
|
-
|
467
|
-
// not closeable: not yet expired
|
468
|
-
if (TimestampLib.blockTimestamp() < info.expiredAt) { return false; }
|
469
|
-
|
470
|
-
// all conditionsl to close the policy are met
|
471
|
-
return true;
|
472
|
-
}
|
473
|
-
|
474
|
-
/// @dev links policy to bundle
|
475
|
-
function _linkPolicy(IInstance instance, NftId policyNftId)
|
476
|
-
internal
|
477
|
-
{
|
478
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
479
|
-
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
480
|
-
|
481
|
-
// ensure policy has not yet been activated in a previous tx already
|
482
|
-
if (policyInfo.activatedAt.gtz() && policyInfo.activatedAt < TimestampLib.blockTimestamp()) {
|
483
|
-
revert BundleSet.ErrorBundleSetPolicyAlreadyActivated(policyNftId);
|
484
|
-
}
|
485
|
-
|
486
|
-
BundleSet bundleManager = instance.getBundleSet();
|
487
|
-
bundleManager.linkPolicy(policyNftId);
|
488
|
-
}
|
489
382
|
|
490
383
|
function _getDomain() internal pure override returns(ObjectType) {
|
491
384
|
return BUNDLE();
|
@@ -17,7 +17,7 @@ contract BundleServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
BundleService svc = new BundleService{salt: salt}();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
22
|
registry,
|
23
23
|
address(svc),
|
@@ -1,21 +1,21 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IService} from "../shared/IService.sol";
|
5
|
+
import {IInstance} from "../instance/IInstance.sol";
|
6
|
+
|
4
7
|
import {Amount} from "../type/Amount.sol";
|
5
8
|
import {NftId} from "../type/NftId.sol";
|
6
9
|
import {Fee} from "../type/Fee.sol";
|
7
|
-
import {
|
8
|
-
import {
|
9
|
-
import {IInstance} from "../instance/IInstance.sol";
|
10
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
11
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
10
12
|
import {Seconds} from "../type/Seconds.sol";
|
11
13
|
import {StateId} from "../type/StateId.sol";
|
12
14
|
import {Timestamp} from "../type/Timestamp.sol";
|
15
|
+
import {UFixed} from "../type/UFixed.sol";
|
13
16
|
|
14
17
|
interface IBundleService is IService {
|
15
18
|
|
16
|
-
event LogBundleServiceBundleActivated(NftId bundleNftId);
|
17
|
-
event LogBundleServiceBundleLocked(NftId bundleNftId);
|
18
|
-
|
19
19
|
error ErrorBundleServiceInsufficientAllowance(address bundleOwner, address tokenHandlerAddress, Amount amount);
|
20
20
|
error ErrorBundleServiceBundleNotOpen(NftId bundleNftId, StateId state, Timestamp expiredAt);
|
21
21
|
error ErrorBundleServiceCapacityInsufficient(NftId bundleNftId, Amount capacityAmount, Amount collateralAmount);
|
@@ -25,24 +25,26 @@ interface IBundleService is IService {
|
|
25
25
|
error ErrorBundleServiceBundlePoolMismatch(NftId bundleNftId, NftId expectedPool, NftId actualPool);
|
26
26
|
|
27
27
|
error ErrorBundleServicePolicyNotCloseable(NftId policyNftId);
|
28
|
-
|
29
|
-
error ErrorBundleServiceFeesWithdrawAmountExceedsLimit(Amount amount, Amount limit);
|
30
28
|
|
31
29
|
error ErrorBundleServiceUnstakeAmountExceedsLimit(Amount amount, Amount limit);
|
32
30
|
|
33
31
|
error ErrorBundleServiceExtensionLifetimeIsZero();
|
34
32
|
|
35
|
-
event
|
33
|
+
event LogBundleServiceBundleCreated(NftId bundleNftId, NftId poolNftId, Seconds lifetime);
|
34
|
+
event LogBundleServiceBundleClosed(NftId bundleNftId);
|
35
|
+
event LogBundleServiceBundleLocked(NftId bundleNftId);
|
36
|
+
event LogBundleServiceBundleUnlocked(NftId bundleNftId);
|
36
37
|
event LogBundleServiceBundleExtended(NftId bundleNftId, Seconds lifetimeExtension, Timestamp extendedExpiredAt);
|
38
|
+
event LogBundleServiceBundleFeeUpdated(NftId bundleNftId, Amount fixedFee, UFixed fractionalFee);
|
39
|
+
event LogBundleServiceCollateralLocked(NftId bundleNftId, NftId policyNftId, Amount collateralAmount);
|
40
|
+
event LogBundleServiceCollateralReleased(NftId bundleNftId, NftId policyNftId, Amount collateralAmount);
|
41
|
+
event LogBundleServiceBundleStaked(NftId bundleNftId, Amount amount);
|
42
|
+
event LogBundleServiceBundleUnstaked(NftId bundleNftId, Amount amount);
|
37
43
|
|
38
|
-
/// @dev
|
39
|
-
/// may only be called by pool service
|
44
|
+
/// @dev Create a new bundle for the specified attributes.
|
40
45
|
function create(
|
41
|
-
IInstance instance, // instance relevant for bundle
|
42
|
-
NftId poolNftId, // the pool the bundle will be linked to
|
43
46
|
address owner, // initial bundle owner
|
44
47
|
Fee memory fee, // fees deducted from premium that go to bundle owner
|
45
|
-
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
46
48
|
Seconds lifetime, // initial duration for which new policies are covered
|
47
49
|
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
48
50
|
)
|
@@ -52,28 +54,24 @@ interface IBundleService is IService {
|
|
52
54
|
|
53
55
|
/// @dev increase bundle stakes by the specified amount. bundle must not be expired or closed
|
54
56
|
/// may only be called by the pool service
|
55
|
-
function stake(
|
57
|
+
function stake(
|
58
|
+
InstanceReader instanceReader,
|
59
|
+
InstanceStore instanceStore,
|
60
|
+
NftId bundleNftId,
|
61
|
+
Amount amount
|
62
|
+
) external;
|
56
63
|
|
57
64
|
/// @dev decrease bundle stakes by the specified amount
|
58
65
|
/// may only be called by the pool service
|
59
|
-
|
60
|
-
/// @param bundleNftId the bundle nft id
|
61
|
-
/// @param amount the amount to unstake (set to AmountLib.max() to unstake all available stakes)
|
62
|
-
/// @return unstakedAmount the effective unstaked amount
|
63
|
-
function unstake(IInstance instance, NftId bundleNftId, Amount amount) external returns (Amount unstakedAmount);
|
66
|
+
function unstake(InstanceStore instanceStore, NftId bundleNftId, Amount amount) external returns (Amount unstakedAmount);
|
64
67
|
|
65
68
|
/// @dev extend the lifetime of the bundle by the specified time in seconds
|
66
69
|
function extend(NftId bundleNftId, Seconds lifetimeExtension) external returns (Timestamp extendedExpiredAt);
|
67
70
|
|
68
|
-
/// @dev locks the specified bundle
|
69
|
-
///
|
70
|
-
/// may only be called by registered and unlocked pool components
|
71
|
-
function
|
72
|
-
|
73
|
-
/// @dev activates the specified bundle
|
74
|
-
/// only locked bundles may be unlocked
|
75
|
-
/// may only be called by registered and unlocked pool components
|
76
|
-
function unlock(NftId bundleNftId) external;
|
71
|
+
/// @dev locks/unlocks the specified bundle.
|
72
|
+
/// locked bundles are not available to collateralize new policies.
|
73
|
+
/// may only be called by registered and unlocked pool components.
|
74
|
+
function setLocked(NftId bundleNftId, bool locked) external;
|
77
75
|
|
78
76
|
/// @dev closes the specified bundle
|
79
77
|
/// only open bundles (active or locked) may be closed
|
@@ -110,34 +108,9 @@ interface IBundleService is IService {
|
|
110
108
|
/// @dev releases the specified collateral in the bundle
|
111
109
|
/// may only be called by pool service
|
112
110
|
function releaseCollateral(
|
113
|
-
|
111
|
+
InstanceStore instanceStore,
|
114
112
|
NftId policyNftId,
|
115
113
|
NftId bundleNftId,
|
116
114
|
Amount collateralAmount
|
117
115
|
) external;
|
118
|
-
|
119
|
-
/// @dev unlink policy from bundle
|
120
|
-
/// policy may only be unlinked if policy is closeable
|
121
|
-
/// may only be called by pool service
|
122
|
-
function unlinkPolicy(
|
123
|
-
IInstance instance,
|
124
|
-
NftId policyNftId
|
125
|
-
) external;
|
126
|
-
|
127
|
-
// FIXME: move to pool service
|
128
|
-
/// @dev Withdraw bundle feeds for the given bundle
|
129
|
-
/// @param bundleNftId the bundle Nft Id
|
130
|
-
/// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
|
131
|
-
/// @return withdrawnAmount the effective withdrawn amount
|
132
|
-
function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
|
133
|
-
|
134
|
-
/// @dev returns true iff policy may be closed
|
135
|
-
/// a policy can be closed all conditions below are met
|
136
|
-
/// - policy exists
|
137
|
-
/// - has been activated
|
138
|
-
/// - is not yet closed
|
139
|
-
/// - has no open claims
|
140
|
-
/// - claim amount matches sum insured amount or is expired
|
141
|
-
function policyIsCloseable(IInstance instance, NftId policyNftId) external view returns (bool isCloseable);
|
142
|
-
|
143
116
|
}
|
@@ -27,9 +27,7 @@ interface IPoolComponent is IInstanceLinkedComponent {
|
|
27
27
|
/// The default implementation is empty.
|
28
28
|
function verifyApplication(
|
29
29
|
NftId applicationNftId,
|
30
|
-
bytes memory applicationData,
|
31
30
|
NftId bundleNftId,
|
32
|
-
bytes memory bundleFilter,
|
33
31
|
Amount collateralizationAmount
|
34
32
|
) external;
|
35
33
|
|
@@ -47,6 +45,7 @@ interface IPoolComponent is IInstanceLinkedComponent {
|
|
47
45
|
view
|
48
46
|
returns (bool isMatching);
|
49
47
|
|
48
|
+
|
50
49
|
/// @dev This is a callback function that is called by the claim service when a claim is confirmed.
|
51
50
|
/// The pool has the option to implement custom behavirous such as triggering a reinsurance claim or blocking the claim confirmaation.
|
52
51
|
/// The default implementation is empty.
|
@@ -56,11 +55,6 @@ interface IPoolComponent is IInstanceLinkedComponent {
|
|
56
55
|
Amount amount
|
57
56
|
) external;
|
58
57
|
|
59
|
-
/// @dev Withdraw bundle feeds for the given bundle
|
60
|
-
/// @param bundleNftId the bundle Nft Id
|
61
|
-
/// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
|
62
|
-
/// @return withdrawnAmount the effective withdrawn amount
|
63
|
-
function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
|
64
58
|
|
65
59
|
/// @dev Returns initial pool specific infos for this pool
|
66
60
|
function getInitialPoolInfo() external view returns (IComponents.PoolInfo memory info);
|