@etherisc/gif-next 3.0.0-c46a89a-335 → 3.0.0-cdd3800-286
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 +1 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +72 -139
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +116 -110
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +33 -72
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +70 -105
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +150 -126
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +65 -20
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +55 -31
- 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 +10 -20
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +42 -18
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +75 -126
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +65 -41
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -72
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +139 -198
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +150 -140
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +56 -84
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -71
- 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 +104 -166
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +138 -200
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +251 -56
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +217 -167
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +112 -41
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +108 -170
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +335 -805
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +113 -42
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +102 -159
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +106 -163
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +120 -177
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +114 -171
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +54 -49
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +25 -77
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +44 -83
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +50 -144
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +151 -185
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +95 -36
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +75 -138
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -104
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +58 -53
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.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 +8 -3
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
- 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 +81 -132
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
- 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 +66 -94
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +83 -80
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -82
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +148 -149
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +129 -111
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +73 -88
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +117 -176
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +139 -129
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +32 -71
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +72 -100
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +86 -94
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +73 -88
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +247 -24
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +165 -233
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +130 -140
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +63 -138
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +112 -110
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +57 -72
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +115 -182
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +138 -132
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +32 -71
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +32 -71
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +64 -82
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -82
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +56 -84
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +36 -75
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +127 -173
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +128 -122
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +94 -161
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +122 -116
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +57 -72
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +63 -146
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +107 -109
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +56 -155
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +216 -202
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
- 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 +96 -314
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +146 -179
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -57
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +244 -285
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +110 -115
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +154 -175
- 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 +187 -135
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +29 -13
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +39 -84
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +320 -164
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -115
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
- 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 +1 -1
- 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/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +38 -96
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -96
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +226 -82
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +56 -84
- 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 +28 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +25 -77
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +32 -71
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -72
- 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 +34 -15
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -76
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +31 -70
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +29 -42
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +17 -30
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +56 -101
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +36 -75
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +109 -170
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -26
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +124 -112
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +65 -132
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +111 -105
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +204 -212
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +19 -27
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
- 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/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
- 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/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 +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- 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 +6 -6
- 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 +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- 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/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +86 -63
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
- package/contracts/accounting/AccountingService.sol +6 -5
- package/contracts/accounting/AccountingServiceManager.sol +6 -4
- package/contracts/accounting/IAccountingService.sol +1 -1
- package/contracts/authorization/AccessAdmin.sol +44 -45
- package/contracts/authorization/AccessAdminLib.sol +27 -13
- package/contracts/authorization/AccessManagerCloneable.sol +48 -24
- package/contracts/authorization/Authorization.sol +2 -2
- package/contracts/authorization/IAccessAdmin.sol +3 -3
- package/contracts/authorization/IServiceAuthorization.sol +1 -1
- package/contracts/authorization/ServiceAuthorization.sol +4 -4
- package/contracts/distribution/BasicDistribution.sol +2 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
- package/contracts/distribution/Distribution.sol +2 -0
- package/contracts/distribution/DistributionService.sol +20 -24
- package/contracts/distribution/DistributionServiceManager.sol +6 -4
- package/contracts/examples/fire/FirePool.sol +4 -0
- package/contracts/examples/fire/FireProduct.sol +4 -0
- package/contracts/examples/flight/FlightLib.sol +90 -75
- package/contracts/examples/flight/FlightOracle.sol +36 -2
- package/contracts/examples/flight/FlightOracleAuthorization.sol +24 -5
- package/contracts/examples/flight/FlightPool.sol +4 -0
- package/contracts/examples/flight/FlightProduct.sol +225 -216
- package/contracts/examples/flight/FlightProductAuthorization.sol +35 -10
- package/contracts/examples/flight/FlightProductManager.sol +49 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
- package/contracts/instance/Instance.sol +11 -7
- package/contracts/instance/InstanceAdmin.sol +17 -11
- package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
- package/contracts/instance/InstanceReader.sol +31 -19
- package/contracts/instance/InstanceService.sol +20 -18
- package/contracts/instance/InstanceServiceManager.sol +6 -4
- package/contracts/instance/base/Cloneable.sol +10 -4
- package/contracts/instance/base/ObjectSet.sol +2 -2
- package/contracts/oracle/BasicOracle.sol +3 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
- package/contracts/oracle/IOracleService.sol +4 -0
- package/contracts/oracle/Oracle.sol +6 -5
- package/contracts/oracle/OracleService.sol +67 -37
- package/contracts/oracle/OracleServiceManager.sol +6 -4
- package/contracts/pool/BasicPool.sol +4 -2
- package/contracts/pool/BasicPoolAuthorization.sol +4 -5
- package/contracts/pool/BundleService.sol +19 -25
- package/contracts/pool/BundleServiceManager.sol +7 -5
- package/contracts/pool/IPoolService.sol +6 -5
- package/contracts/pool/Pool.sol +3 -1
- package/contracts/pool/PoolLib.sol +102 -5
- package/contracts/pool/PoolService.sol +101 -67
- package/contracts/pool/PoolServiceManager.sol +6 -4
- package/contracts/product/ApplicationService.sol +34 -13
- package/contracts/product/ApplicationServiceManager.sol +6 -4
- package/contracts/product/BasicProduct.sol +2 -0
- package/contracts/product/BasicProductAuthorization.sol +4 -5
- package/contracts/product/ClaimService.sol +34 -10
- package/contracts/product/ClaimServiceManager.sol +7 -5
- package/contracts/product/IPolicyService.sol +1 -0
- package/contracts/product/PolicyService.sol +57 -44
- package/contracts/product/PolicyServiceLib.sol +5 -3
- package/contracts/product/PolicyServiceManager.sol +6 -4
- package/contracts/product/PricingService.sol +8 -7
- package/contracts/product/PricingServiceManager.sol +6 -4
- package/contracts/product/Product.sol +2 -0
- package/contracts/product/RiskService.sol +40 -8
- package/contracts/product/RiskServiceManager.sol +6 -4
- package/contracts/registry/IRegistry.sol +14 -20
- package/contracts/registry/IRegistryService.sol +14 -10
- package/contracts/registry/IRelease.sol +3 -0
- package/contracts/registry/Registry.sol +78 -124
- package/contracts/registry/RegistryAdmin.sol +29 -12
- package/contracts/registry/RegistryAuthorization.sol +3 -4
- package/contracts/registry/RegistryService.sol +82 -99
- package/contracts/registry/RegistryServiceManager.sol +11 -4
- package/contracts/registry/ReleaseAdmin.sol +23 -9
- package/contracts/registry/ReleaseRegistry.sol +74 -64
- package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
- package/contracts/registry/TokenRegistry.sol +15 -6
- package/contracts/shared/Component.sol +22 -27
- package/contracts/shared/ComponentService.sol +130 -45
- package/contracts/shared/ComponentServiceManager.sol +7 -5
- package/contracts/shared/ContractLib.sol +93 -359
- package/contracts/shared/IComponent.sol +3 -5
- package/contracts/shared/IComponentService.sol +14 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +7 -3
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +3 -14
- package/contracts/shared/IRegistryLinked.sol +3 -1
- package/contracts/shared/IService.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +64 -29
- package/contracts/shared/NftOwnable.sol +22 -9
- package/contracts/shared/PolicyHolder.sol +4 -2
- package/contracts/shared/Registerable.sol +20 -37
- package/contracts/shared/RegistryLinked.sol +23 -4
- package/contracts/shared/Service.sol +9 -8
- package/contracts/shared/TokenHandler.sol +1 -4
- package/contracts/staking/IStaking.sol +2 -2
- package/contracts/staking/Staking.sol +33 -28
- package/contracts/staking/StakingLib.sol +1 -3
- package/contracts/staking/StakingManager.sol +6 -3
- package/contracts/staking/StakingReader.sol +17 -9
- package/contracts/staking/StakingService.sol +13 -16
- package/contracts/staking/StakingServiceManager.sol +8 -4
- package/contracts/staking/StakingStore.sol +8 -8
- package/contracts/staking/TargetHandler.sol +5 -4
- package/contracts/type/Version.sol +16 -15
- package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
- package/contracts/upgradeability/ProxyManager.sol +54 -46
- package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
- package/package.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
- package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
- package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
- package/contracts/shared/IVersionable.sol +0 -19
- package/contracts/shared/Versionable.sol +0 -47
@@ -6,10 +6,11 @@ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IER
|
|
6
6
|
|
7
7
|
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
8
8
|
import {IComponents} from "../../instance/module/IComponents.sol";
|
9
|
+
import {IPolicy} from "../../instance/module/IPolicy.sol";
|
9
10
|
|
10
11
|
import {Amount, AmountLib} from "../../type/Amount.sol";
|
11
|
-
import {BasicProduct} from "../../product/BasicProduct.sol";
|
12
12
|
import {ClaimId} from "../../type/ClaimId.sol";
|
13
|
+
import {Component} from "../../shared/Component.sol";
|
13
14
|
import {FeeLib} from "../../type/Fee.sol";
|
14
15
|
import {FlightLib} from "./FlightLib.sol";
|
15
16
|
import {FlightMessageVerifier} from "./FlightMessageVerifier.sol";
|
@@ -17,6 +18,7 @@ import {FlightOracle} from "./FlightOracle.sol";
|
|
17
18
|
import {InstanceReader} from "../../instance/InstanceReader.sol";
|
18
19
|
import {NftId, NftIdLib} from "../../type/NftId.sol";
|
19
20
|
import {PayoutId} from "../../type/PayoutId.sol";
|
21
|
+
import {Product} from "../../product/Product.sol";
|
20
22
|
import {ReferralLib} from "../../type/Referral.sol";
|
21
23
|
import {RiskId, RiskIdLib} from "../../type/RiskId.sol";
|
22
24
|
import {RequestId} from "../../type/RequestId.sol";
|
@@ -27,99 +29,75 @@ import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
|
27
29
|
|
28
30
|
/// @dev FlightProduct implements the flight delay product.
|
29
31
|
contract FlightProduct is
|
30
|
-
|
32
|
+
Product
|
31
33
|
{
|
32
34
|
|
33
|
-
event
|
34
|
-
event
|
35
|
-
event LogPayoutTransferred(bytes32 bpKey, uint256 claimId, uint256 payoutId, uint256 amount);
|
36
|
-
event LogFlightStatusProcessed(RequestId requestId, RiskId riskId, bytes1 status, int256 delayMinutes, uint8 payoutOption);
|
37
|
-
|
38
|
-
// TODO convert error logs to custom errors
|
39
|
-
event LogError(string error, uint256 index, uint256 stored, uint256 calculated);
|
40
|
-
event LogPolicyExpired(bytes32 bpKey);
|
35
|
+
event LogFlightPolicyPurchased(NftId policyNftId, string flightData, Amount premiumAmount);
|
36
|
+
event LogFlightPolicyClosed(NftId policyNftId, Amount payoutAmount);
|
41
37
|
|
42
|
-
event
|
43
|
-
event
|
44
|
-
event LogErrorUnexpectedStatus(RequestId requestId, RiskId riskId, bytes1 status, int256 delayMinutes);
|
45
|
-
|
46
|
-
error ErrorApplicationDataSignatureMismatch(address expectedSigner, address actualSigner);
|
47
|
-
error ErrorFlightProductClusterRisk(Amount totalSumInsured, Amount maxTotalPayout);
|
48
|
-
error ErrorFlightProductPremiumAmountTooSmall(Amount premiumAmount, Amount minPremium);
|
49
|
-
error ErrorFlightProductPremiumAmountTooLarge(Amount premiumAmount, Amount maxPremium);
|
50
|
-
error ErrorFlightProductArrivalBeforeDepartureTime(Timestamp departureTime, Timestamp arrivalTime);
|
51
|
-
error ErrorFlightProductArrivalAfterMaxFlightDuration(Timestamp arrivalTime, Timestamp maxArrivalTime, Seconds maxDuration);
|
52
|
-
error ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(Timestamp departureTime, Timestamp now, Seconds minTimeBeforeDeparture);
|
53
|
-
error ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(Timestamp departureTime, Timestamp now, Seconds maxTimeBeforeDeparture);
|
54
|
-
error ErrorFlightProductNotEnoughObservations(uint256 observations, uint256 minObservations);
|
38
|
+
event LogFlightStatusProcessed(RequestId requestId, RiskId riskId, bytes1 status, int256 delayMinutes, uint8 payoutOption);
|
39
|
+
event LogFlightPoliciesProcessed(RiskId riskId, uint8 payoutOption, uint256 policiesProcessed, uint256 policiesRemaining);
|
55
40
|
|
56
41
|
// solhint-disable
|
57
|
-
|
58
|
-
|
42
|
+
Amount public MIN_PREMIUM;
|
43
|
+
Amount public MAX_PREMIUM;
|
44
|
+
Amount public MAX_PAYOUT;
|
45
|
+
Amount public MAX_TOTAL_PAYOUT; // Maximum risk per flight/risk
|
46
|
+
|
59
47
|
// Minimum time before departure for applying
|
60
|
-
Seconds public MIN_TIME_BEFORE_DEPARTURE
|
48
|
+
Seconds public MIN_TIME_BEFORE_DEPARTURE;
|
61
49
|
// Maximum time before departure for applying
|
62
|
-
Seconds public MAX_TIME_BEFORE_DEPARTURE
|
50
|
+
Seconds public MAX_TIME_BEFORE_DEPARTURE;
|
63
51
|
// Maximum duration of flight
|
64
|
-
Seconds public MAX_FLIGHT_DURATION
|
65
|
-
// Check for delay after .. minutes after scheduled arrival
|
66
|
-
Seconds public CHECK_OFFSET = SecondsLib.fromHours(1);
|
52
|
+
Seconds public MAX_FLIGHT_DURATION;
|
67
53
|
// Max time to process claims after departure
|
68
|
-
Seconds public LIFETIME
|
69
|
-
|
70
|
-
// uint256 public constant MIN_PREMIUM = 15 * 10 ** 18; // production
|
71
|
-
// All amounts in cent = multiplier is 10 ** 16!
|
72
|
-
Amount public MIN_PREMIUM;
|
73
|
-
Amount public MAX_PREMIUM;
|
74
|
-
Amount public MAX_PAYOUT;
|
75
|
-
Amount public MAX_TOTAL_PAYOUT; // Maximum risk per flight is 3x max payout.
|
54
|
+
Seconds public LIFETIME;
|
76
55
|
|
56
|
+
// ['observations','late15','late30','late45','cancelled','diverted']
|
57
|
+
// no payouts for delays of 30' or less
|
58
|
+
uint8[6] public WEIGHT_PATTERN;
|
59
|
+
// Minimum number of observations for valid prediction/premium calculation
|
60
|
+
uint256 public MIN_OBSERVATIONS;
|
77
61
|
// Maximum cumulated weighted premium per risk
|
78
|
-
uint256 public MARGIN_PERCENT
|
79
|
-
|
62
|
+
uint256 public MARGIN_PERCENT;
|
80
63
|
// Maximum number of policies to process in one callback
|
81
|
-
uint8 public MAX_POLICIES_TO_PROCESS
|
64
|
+
uint8 public MAX_POLICIES_TO_PROCESS;
|
65
|
+
// solhint-enable
|
82
66
|
|
83
|
-
|
84
|
-
// no payouts for delays of 30' or less
|
85
|
-
uint8[6] public WEIGHT_PATTERN = [0, 0, 0, 30, 50, 50];
|
86
|
-
uint8 public constant MAX_WEIGHT = 50;
|
67
|
+
bool internal _testMode;
|
87
68
|
|
88
69
|
// GIF V3 specifics
|
89
70
|
NftId internal _defaultBundleNftId;
|
90
|
-
|
91
|
-
// TODO add product (base contract) functions
|
92
|
-
// - getOracleNftId(idx)
|
93
|
-
// - getDistributionNftId()
|
94
|
-
// - getPoolNftId()
|
95
|
-
NftId internal _oracleNftId; // TODO refactor to getOracleNftId(0)
|
96
|
-
// solhint-enable
|
97
|
-
|
98
|
-
FlightMessageVerifier internal _flightMessageVerifier;
|
71
|
+
NftId internal _oracleNftId;
|
99
72
|
|
100
73
|
|
101
74
|
struct FlightRisk {
|
102
75
|
Str flightData; // example: "LX 180 ZRH BKK 20241104"
|
103
76
|
Timestamp departureTime;
|
77
|
+
// this field contains static data required by the frontend and is not directly used by the product
|
78
|
+
string departureTimeLocal; // example "2024-10-14T10:10:00.000 Asia/Seoul"
|
104
79
|
Timestamp arrivalTime;
|
80
|
+
// this field contains static data required by the frontend and is not directly used by the product
|
81
|
+
string arrivalTimeLocal; // example "2024-10-14T10:10:00.000 Asia/Seoul"
|
105
82
|
Amount sumOfSumInsuredAmounts;
|
106
|
-
// uint256 premiumMultiplier; // what is this? UFixed?
|
107
|
-
// uint256 weight; // what is this? UFixed?
|
108
83
|
bytes1 status; // 'L'ate, 'C'ancelled, 'D'iverted, ...
|
109
84
|
int256 delayMinutes;
|
85
|
+
uint8 payoutOption;
|
86
|
+
Timestamp statusUpdatedAt;
|
110
87
|
}
|
111
88
|
|
89
|
+
|
112
90
|
struct ApplicationData {
|
113
91
|
Str flightData;
|
114
92
|
Timestamp departureTime;
|
93
|
+
string departureTimeLocal;
|
115
94
|
Timestamp arrivalTime;
|
95
|
+
string arrivalTimeLocal;
|
116
96
|
Amount premiumAmount;
|
117
97
|
uint256[6] statistics;
|
118
|
-
uint8 v;
|
119
|
-
bytes32 r;
|
120
|
-
bytes32 s;
|
121
98
|
}
|
122
99
|
|
100
|
+
|
123
101
|
struct PermitData {
|
124
102
|
address owner;
|
125
103
|
address spender;
|
@@ -132,23 +110,23 @@ contract FlightProduct is
|
|
132
110
|
|
133
111
|
|
134
112
|
constructor(
|
135
|
-
|
113
|
+
address registry,
|
114
|
+
NftId instanceNftId,
|
136
115
|
string memory componentName,
|
137
|
-
IAuthorization authorization
|
138
|
-
FlightMessageVerifier messageVerifier
|
116
|
+
IAuthorization authorization
|
139
117
|
)
|
140
118
|
{
|
141
119
|
address initialOwner = msg.sender;
|
142
120
|
|
143
121
|
_initialize(
|
144
|
-
|
122
|
+
registry,
|
123
|
+
instanceNftId,
|
145
124
|
componentName,
|
146
125
|
authorization,
|
147
126
|
initialOwner);
|
148
|
-
|
149
|
-
_flightMessageVerifier = messageVerifier;
|
150
127
|
}
|
151
128
|
|
129
|
+
|
152
130
|
//--- external functions ------------------------------------------------//
|
153
131
|
//--- unpermissioned functions ------------------------------------------//
|
154
132
|
|
@@ -195,62 +173,37 @@ contract FlightProduct is
|
|
195
173
|
)
|
196
174
|
{
|
197
175
|
// process permit data
|
198
|
-
|
176
|
+
_processPermit(permit);
|
199
177
|
|
200
178
|
// create policy
|
201
179
|
address policyHolder = permit.owner;
|
202
180
|
(
|
203
181
|
riskId,
|
204
182
|
policyNftId
|
205
|
-
) =
|
183
|
+
) = _createPolicy(
|
206
184
|
policyHolder,
|
207
185
|
application.flightData,
|
208
186
|
application.departureTime,
|
187
|
+
application.departureTimeLocal,
|
209
188
|
application.arrivalTime,
|
189
|
+
application.arrivalTimeLocal,
|
210
190
|
application.premiumAmount,
|
211
191
|
application.statistics);
|
212
|
-
// application.v,
|
213
|
-
// application.r,
|
214
|
-
// application.s);
|
215
192
|
}
|
216
193
|
|
217
194
|
|
218
|
-
function
|
219
|
-
PermitData memory permit
|
220
|
-
)
|
221
|
-
public
|
222
|
-
virtual
|
223
|
-
restricted()
|
224
|
-
{
|
225
|
-
address tokenAddress = address(getToken());
|
226
|
-
|
227
|
-
// process permit data
|
228
|
-
ERC20Permit(tokenAddress).permit(
|
229
|
-
permit.owner,
|
230
|
-
permit.spender,
|
231
|
-
permit.value,
|
232
|
-
permit.deadline,
|
233
|
-
permit.v,
|
234
|
-
permit.r,
|
235
|
-
permit.s);
|
236
|
-
}
|
237
|
-
|
238
|
-
|
239
|
-
function createPolicy(
|
195
|
+
function _createPolicy(
|
240
196
|
address policyHolder,
|
241
197
|
Str flightData,
|
242
198
|
Timestamp departureTime,
|
199
|
+
string memory departureTimeLocal,
|
243
200
|
Timestamp arrivalTime,
|
201
|
+
string memory arrivalTimeLocal,
|
244
202
|
Amount premiumAmount,
|
245
203
|
uint256[6] memory statistics
|
246
|
-
// signature fields
|
247
|
-
// uint8 v,
|
248
|
-
// bytes32 r,
|
249
|
-
// bytes32 s
|
250
204
|
)
|
251
|
-
|
205
|
+
internal
|
252
206
|
virtual
|
253
|
-
restricted()
|
254
207
|
returns (
|
255
208
|
RiskId riskId,
|
256
209
|
NftId policyNftId
|
@@ -258,20 +211,20 @@ contract FlightProduct is
|
|
258
211
|
{
|
259
212
|
// checks
|
260
213
|
// disabled for now - using rbac for security
|
261
|
-
FlightLib.
|
214
|
+
FlightLib.checkApplicationData(
|
262
215
|
this,
|
263
216
|
flightData,
|
264
217
|
departureTime,
|
265
218
|
arrivalTime,
|
266
|
-
premiumAmount
|
267
|
-
statistics);
|
268
|
-
// v, r, s);
|
219
|
+
premiumAmount);
|
269
220
|
|
270
221
|
(riskId, policyNftId) = _prepareApplication(
|
271
222
|
policyHolder,
|
272
223
|
flightData,
|
273
224
|
departureTime,
|
225
|
+
departureTimeLocal,
|
274
226
|
arrivalTime,
|
227
|
+
arrivalTimeLocal,
|
275
228
|
premiumAmount,
|
276
229
|
statistics);
|
277
230
|
|
@@ -296,49 +249,8 @@ contract FlightProduct is
|
|
296
249
|
// allow up to 30 days to process the claim
|
297
250
|
arrivalTime.addSeconds(SecondsLib.fromDays(30)),
|
298
251
|
"flightStatusCallback");
|
299
|
-
}
|
300
|
-
|
301
|
-
|
302
|
-
function _prepareApplication(
|
303
|
-
address policyHolder,
|
304
|
-
Str flightData,
|
305
|
-
Timestamp departureTime,
|
306
|
-
Timestamp arrivalTime,
|
307
|
-
Amount premiumAmount,
|
308
|
-
uint256[6] memory statistics
|
309
|
-
)
|
310
|
-
internal
|
311
|
-
virtual
|
312
|
-
returns (
|
313
|
-
RiskId riskId,
|
314
|
-
NftId policyNftId
|
315
|
-
)
|
316
|
-
{
|
317
|
-
Amount[5] memory payoutAmounts;
|
318
|
-
Amount sumInsuredAmount;
|
319
252
|
|
320
|
-
(
|
321
|
-
riskId,
|
322
|
-
payoutAmounts,
|
323
|
-
sumInsuredAmount
|
324
|
-
) = _createRiskAndPayoutAmounts(
|
325
|
-
flightData,
|
326
|
-
departureTime,
|
327
|
-
arrivalTime,
|
328
|
-
premiumAmount,
|
329
|
-
statistics);
|
330
|
-
|
331
|
-
policyNftId = _createApplication(
|
332
|
-
policyHolder,
|
333
|
-
riskId,
|
334
|
-
sumInsuredAmount,
|
335
|
-
premiumAmount,
|
336
|
-
LIFETIME,
|
337
|
-
_defaultBundleNftId,
|
338
|
-
ReferralLib.zero(),
|
339
|
-
abi.encode(
|
340
|
-
premiumAmount,
|
341
|
-
payoutAmounts)); // application data
|
253
|
+
emit LogFlightPolicyPurchased(policyNftId, flightData.toString(), premiumAmount);
|
342
254
|
}
|
343
255
|
|
344
256
|
|
@@ -359,17 +271,22 @@ contract FlightProduct is
|
|
359
271
|
requestId,
|
360
272
|
response.riskId,
|
361
273
|
response.status,
|
362
|
-
response.delayMinutes
|
363
|
-
|
274
|
+
response.delayMinutes);
|
275
|
+
}
|
276
|
+
|
277
|
+
|
278
|
+
function resendRequest(RequestId requestId)
|
279
|
+
external
|
280
|
+
virtual
|
281
|
+
restricted()
|
282
|
+
{
|
283
|
+
_resendRequest(requestId);
|
364
284
|
}
|
365
285
|
|
366
286
|
|
367
287
|
/// @dev Manual fallback function for product owner.
|
368
|
-
function
|
369
|
-
RequestId requestId,
|
288
|
+
function processPayoutsAndClosePolicies(
|
370
289
|
RiskId riskId,
|
371
|
-
bytes1 status,
|
372
|
-
int256 delayMinutes,
|
373
290
|
uint8 maxPoliciesToProcess
|
374
291
|
)
|
375
292
|
external
|
@@ -377,34 +294,43 @@ contract FlightProduct is
|
|
377
294
|
restricted()
|
378
295
|
onlyOwner()
|
379
296
|
{
|
380
|
-
|
381
|
-
requestId,
|
297
|
+
_processPayoutsAndClosePolicies(
|
382
298
|
riskId,
|
383
|
-
status,
|
384
|
-
delayMinutes,
|
385
299
|
maxPoliciesToProcess);
|
386
|
-
}
|
300
|
+
}
|
301
|
+
|
387
302
|
|
388
303
|
//--- owner functions ---------------------------------------------------//
|
389
304
|
|
390
|
-
/// @dev Call after product registration with the instance
|
391
|
-
|
305
|
+
/// @dev Call after product registration with the instance
|
306
|
+
/// when the product token/tokenhandler is available
|
307
|
+
function setConstants(
|
308
|
+
Amount minPremium,
|
309
|
+
Amount maxPremium,
|
310
|
+
Amount maxPayout,
|
311
|
+
Amount maxTotalPayout,
|
312
|
+
Seconds minTimeBeforeDeparture,
|
313
|
+
Seconds maxTimeBeforeDeparture,
|
314
|
+
uint8 maxPoliciesToProcess
|
315
|
+
)
|
392
316
|
external
|
393
317
|
virtual
|
394
318
|
restricted()
|
395
319
|
onlyOwner()
|
396
320
|
{
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
321
|
+
MIN_PREMIUM = minPremium;
|
322
|
+
MAX_PREMIUM = maxPremium;
|
323
|
+
MAX_PAYOUT = maxPayout;
|
324
|
+
MAX_TOTAL_PAYOUT = maxTotalPayout;
|
325
|
+
|
326
|
+
MIN_TIME_BEFORE_DEPARTURE = minTimeBeforeDeparture;
|
327
|
+
MAX_TIME_BEFORE_DEPARTURE = maxTimeBeforeDeparture;
|
328
|
+
MAX_POLICIES_TO_PROCESS = maxPoliciesToProcess;
|
404
329
|
}
|
405
330
|
|
406
|
-
|
407
331
|
function setDefaultBundle(NftId bundleNftId) external restricted() onlyOwner() { _defaultBundleNftId = bundleNftId; }
|
332
|
+
function setTestMode(bool testMode) external restricted() onlyOwner() { _testMode = testMode; }
|
333
|
+
|
408
334
|
function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
|
409
335
|
function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
|
410
336
|
function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
|
@@ -412,7 +338,6 @@ contract FlightProduct is
|
|
412
338
|
|
413
339
|
//--- view functions ----------------------------------------------------//
|
414
340
|
|
415
|
-
|
416
341
|
function calculateNetPremium(
|
417
342
|
Amount, // sumInsuredAmount: not used in this product
|
418
343
|
RiskId, // riskId: not used in this product
|
@@ -428,34 +353,87 @@ contract FlightProduct is
|
|
428
353
|
}
|
429
354
|
|
430
355
|
|
431
|
-
function
|
432
|
-
|
433
|
-
|
434
|
-
|
356
|
+
function getOracleNftId() public view returns (NftId oracleNftId) { return _oracleNftId; }
|
357
|
+
function isTestMode() public view returns (bool) { return _testMode; }
|
358
|
+
function decodeFlightRiskData(bytes memory data) public pure returns (FlightRisk memory) { return abi.decode(data, (FlightRisk)); }
|
359
|
+
|
360
|
+
//--- internal functions ------------------------------------------------//
|
361
|
+
|
362
|
+
|
363
|
+
function _processPermit(
|
364
|
+
PermitData memory permit
|
365
|
+
)
|
366
|
+
internal
|
367
|
+
virtual
|
368
|
+
restricted()
|
435
369
|
{
|
436
|
-
|
370
|
+
address tokenAddress = address(getToken());
|
371
|
+
|
372
|
+
// process permit data
|
373
|
+
ERC20Permit(tokenAddress).permit(
|
374
|
+
permit.owner,
|
375
|
+
permit.spender,
|
376
|
+
permit.value,
|
377
|
+
permit.deadline,
|
378
|
+
permit.v,
|
379
|
+
permit.r,
|
380
|
+
permit.s);
|
437
381
|
}
|
438
382
|
|
439
383
|
|
440
|
-
function
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
384
|
+
function _prepareApplication(
|
385
|
+
address policyHolder,
|
386
|
+
Str flightData,
|
387
|
+
Timestamp departureTime,
|
388
|
+
string memory departureTimeLocal,
|
389
|
+
Timestamp arrivalTime,
|
390
|
+
string memory arrivalTimeLocal,
|
391
|
+
Amount premiumAmount,
|
392
|
+
uint256[6] memory statistics
|
393
|
+
)
|
394
|
+
internal
|
395
|
+
virtual
|
396
|
+
returns (
|
397
|
+
RiskId riskId,
|
398
|
+
NftId policyNftId
|
399
|
+
)
|
400
|
+
{
|
401
|
+
Amount[5] memory payoutAmounts;
|
402
|
+
Amount sumInsuredAmount;
|
447
403
|
|
448
|
-
|
449
|
-
|
450
|
-
|
404
|
+
(
|
405
|
+
riskId,
|
406
|
+
payoutAmounts,
|
407
|
+
sumInsuredAmount
|
408
|
+
) = _createRiskAndPayoutAmounts(
|
409
|
+
flightData,
|
410
|
+
departureTime,
|
411
|
+
departureTimeLocal,
|
412
|
+
arrivalTime,
|
413
|
+
arrivalTimeLocal,
|
414
|
+
premiumAmount,
|
415
|
+
statistics);
|
451
416
|
|
452
|
-
|
417
|
+
policyNftId = _createApplication(
|
418
|
+
policyHolder,
|
419
|
+
riskId,
|
420
|
+
sumInsuredAmount,
|
421
|
+
premiumAmount,
|
422
|
+
LIFETIME,
|
423
|
+
_defaultBundleNftId,
|
424
|
+
ReferralLib.zero(),
|
425
|
+
abi.encode(
|
426
|
+
premiumAmount,
|
427
|
+
payoutAmounts)); // application data
|
428
|
+
}
|
453
429
|
|
454
430
|
|
455
431
|
function _createRiskAndPayoutAmounts(
|
456
432
|
Str flightData,
|
457
433
|
Timestamp departureTime,
|
434
|
+
string memory departureTimeLocal,
|
458
435
|
Timestamp arrivalTime,
|
436
|
+
string memory arrivalTimeLocal,
|
459
437
|
Amount premiumAmount,
|
460
438
|
uint256[6] memory statistics
|
461
439
|
)
|
@@ -481,7 +459,9 @@ contract FlightProduct is
|
|
481
459
|
riskId = _checkAndUpdateFlightRisk(
|
482
460
|
flightData,
|
483
461
|
departureTime,
|
462
|
+
departureTimeLocal,
|
484
463
|
arrivalTime,
|
464
|
+
arrivalTimeLocal,
|
485
465
|
sumInsuredAmount,
|
486
466
|
weight);
|
487
467
|
}
|
@@ -490,7 +470,9 @@ contract FlightProduct is
|
|
490
470
|
function _checkAndUpdateFlightRisk(
|
491
471
|
Str flightData,
|
492
472
|
Timestamp departureTime,
|
473
|
+
string memory departureTimeLocal,
|
493
474
|
Timestamp arrivalTime,
|
475
|
+
string memory arrivalTimeLocal,
|
494
476
|
Amount sumInsuredAmount,
|
495
477
|
uint256 weight
|
496
478
|
)
|
@@ -505,7 +487,9 @@ contract FlightProduct is
|
|
505
487
|
getNftId(),
|
506
488
|
flightData,
|
507
489
|
departureTime,
|
508
|
-
|
490
|
+
departureTimeLocal,
|
491
|
+
arrivalTime,
|
492
|
+
arrivalTimeLocal);
|
509
493
|
|
510
494
|
// create risk, if new
|
511
495
|
if (!exists) {
|
@@ -513,10 +497,10 @@ contract FlightProduct is
|
|
513
497
|
_createRisk(riskKey, abi.encode(flightRisk));
|
514
498
|
}
|
515
499
|
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
500
|
+
FlightLib.checkClusterRisk(
|
501
|
+
flightRisk.sumOfSumInsuredAmounts,
|
502
|
+
sumInsuredAmount,
|
503
|
+
MAX_TOTAL_PAYOUT);
|
520
504
|
|
521
505
|
// update existing risk with additional sum insured amount
|
522
506
|
flightRisk.sumOfSumInsuredAmounts = flightRisk.sumOfSumInsuredAmounts + sumInsuredAmount;
|
@@ -528,8 +512,7 @@ contract FlightProduct is
|
|
528
512
|
RequestId requestId,
|
529
513
|
RiskId riskId,
|
530
514
|
bytes1 status,
|
531
|
-
int256 delayMinutes
|
532
|
-
uint8 maxPoliciesToProcess
|
515
|
+
int256 delayMinutes
|
533
516
|
)
|
534
517
|
internal
|
535
518
|
virtual
|
@@ -539,60 +522,73 @@ contract FlightProduct is
|
|
539
522
|
(
|
540
523
|
bool exists,
|
541
524
|
FlightRisk memory flightRisk
|
542
|
-
) = FlightLib.getFlightRisk(reader, getNftId(), riskId);
|
525
|
+
) = FlightLib.getFlightRisk(reader, getNftId(), riskId, true);
|
543
526
|
|
544
|
-
if
|
545
|
-
|
546
|
-
|
547
|
-
|
527
|
+
// update status, if not yet set
|
528
|
+
if (flightRisk.statusUpdatedAt.eqz()) {
|
529
|
+
flightRisk.statusUpdatedAt = TimestampLib.current();
|
530
|
+
flightRisk.status = status;
|
531
|
+
flightRisk.delayMinutes = delayMinutes;
|
532
|
+
flightRisk.payoutOption = FlightLib.checkAndGetPayoutOption(
|
533
|
+
requestId, riskId, status, delayMinutes);
|
548
534
|
|
549
|
-
|
550
|
-
|
535
|
+
_updateRisk(riskId, abi.encode(flightRisk));
|
536
|
+
}
|
551
537
|
|
552
|
-
_processPayoutsAndClosePolicies(
|
538
|
+
(,, uint8 payoutOption) = _processPayoutsAndClosePolicies(
|
553
539
|
riskId,
|
554
|
-
|
555
|
-
maxPoliciesToProcess);
|
540
|
+
MAX_POLICIES_TO_PROCESS);
|
556
541
|
|
557
542
|
// logging
|
558
543
|
emit LogFlightStatusProcessed(requestId, riskId, status, delayMinutes, payoutOption);
|
559
544
|
}
|
560
545
|
|
561
546
|
|
562
|
-
// REMARK caller responsible to check that risk exists.
|
563
547
|
function _processPayoutsAndClosePolicies(
|
564
548
|
RiskId riskId,
|
565
|
-
uint8 payoutOption,
|
566
549
|
uint8 maxPoliciesToProcess
|
567
550
|
)
|
568
551
|
internal
|
569
552
|
virtual
|
553
|
+
returns (
|
554
|
+
bool riskExists,
|
555
|
+
bool statusAvailable,
|
556
|
+
uint8 payoutOption
|
557
|
+
)
|
570
558
|
{
|
571
559
|
// determine numbers of policies to process
|
572
560
|
InstanceReader reader = _getInstanceReader();
|
561
|
+
(riskExists, statusAvailable, payoutOption) = FlightLib.getPayoutOption(reader, getNftId(), riskId);
|
562
|
+
|
563
|
+
// return with default values if risk does not exist or status is not yet available
|
564
|
+
if (!riskExists || !statusAvailable) {
|
565
|
+
return (riskExists, statusAvailable, payoutOption);
|
566
|
+
}
|
567
|
+
|
573
568
|
uint256 policiesToProcess = reader.policiesForRisk(riskId);
|
574
|
-
|
569
|
+
uint256 policiesProcessed = policiesToProcess < maxPoliciesToProcess ? policiesToProcess : maxPoliciesToProcess;
|
575
570
|
|
576
571
|
// go trough policies
|
577
|
-
for (uint256 i = 0; i <
|
572
|
+
for (uint256 i = 0; i < policiesProcessed; i++) {
|
578
573
|
NftId policyNftId = reader.getPolicyForRisk(riskId, i);
|
574
|
+
Amount payoutAmount = FlightLib.getPayoutAmount(
|
575
|
+
reader.getPolicyInfo(policyNftId).applicationData,
|
576
|
+
payoutOption);
|
579
577
|
|
580
|
-
// create payout (if
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
_resolvePayout(
|
586
|
-
policyNftId,
|
587
|
-
FlightLib.getPayoutAmount(
|
588
|
-
applicationData,
|
589
|
-
payoutOption));
|
590
|
-
}
|
578
|
+
// create claim/payout (if applicable)
|
579
|
+
_resolvePayout(
|
580
|
+
policyNftId,
|
581
|
+
payoutAmount);
|
591
582
|
|
592
583
|
// expire and close policy
|
593
584
|
_expire(policyNftId, TimestampLib.current());
|
594
585
|
_close(policyNftId);
|
586
|
+
|
587
|
+
emit LogFlightPolicyClosed(policyNftId, payoutAmount);
|
595
588
|
}
|
589
|
+
|
590
|
+
// logging
|
591
|
+
emit LogFlightPoliciesProcessed(riskId, payoutOption, policiesProcessed, policiesToProcess - policiesProcessed);
|
596
592
|
}
|
597
593
|
|
598
594
|
|
@@ -603,6 +599,11 @@ contract FlightProduct is
|
|
603
599
|
internal
|
604
600
|
virtual
|
605
601
|
{
|
602
|
+
// no action if no payout
|
603
|
+
if (payoutAmount.eqz()) {
|
604
|
+
return;
|
605
|
+
}
|
606
|
+
|
606
607
|
// create confirmed claim
|
607
608
|
ClaimId claimId = _submitClaim(policyNftId, payoutAmount, "");
|
608
609
|
_confirmClaim(policyNftId, claimId, payoutAmount, "");
|
@@ -614,15 +615,17 @@ contract FlightProduct is
|
|
614
615
|
|
615
616
|
|
616
617
|
function _initialize(
|
618
|
+
address registry,
|
617
619
|
NftId instanceNftId,
|
618
620
|
string memory componentName,
|
619
621
|
IAuthorization authorization,
|
620
622
|
address initialOwner
|
621
623
|
)
|
622
624
|
internal
|
623
|
-
initializer
|
625
|
+
initializer()
|
624
626
|
{
|
625
|
-
|
627
|
+
__Product_init(
|
628
|
+
registry,
|
626
629
|
instanceNftId,
|
627
630
|
componentName,
|
628
631
|
IComponents.ProductInfo({
|
@@ -646,5 +649,11 @@ contract FlightProduct is
|
|
646
649
|
}),
|
647
650
|
authorization,
|
648
651
|
initialOwner); // number of oracles
|
652
|
+
|
653
|
+
MAX_FLIGHT_DURATION = SecondsLib.fromDays(2);
|
654
|
+
LIFETIME = SecondsLib.fromDays(30);
|
655
|
+
WEIGHT_PATTERN = [0, 0, 0, 30, 50, 50];
|
656
|
+
MIN_OBSERVATIONS = 10;
|
657
|
+
MARGIN_PERCENT = 30;
|
649
658
|
}
|
650
659
|
}
|