@etherisc/gif-next 3.0.0-1a7e54a-113 → 3.0.0-1d08e65-733

Sign up to get free protection for your applications and to get access to all the features.
Files changed (202) hide show
  1. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  2. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  4. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  6. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  13. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  14. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  15. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  16. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  17. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  18. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  19. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  20. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  21. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  22. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  23. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  24. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  25. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  26. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
  27. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +160 -56
  28. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
  29. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +1 -1
  30. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
  31. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
  32. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
  33. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
  34. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +396 -63
  35. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
  36. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +20 -20
  37. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +1 -1
  38. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +212 -2
  39. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
  40. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  41. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  42. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  43. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  44. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  45. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  46. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  48. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  49. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  50. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  51. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  52. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  54. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  56. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  57. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  58. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  59. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  60. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  61. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  62. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  63. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  64. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  72. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  73. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  74. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  75. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  76. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  77. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  78. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  79. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  80. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  81. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  82. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  83. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  84. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  85. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  86. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  87. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  88. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  89. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  90. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  91. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  92. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  93. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  94. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  95. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  96. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  97. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  98. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  99. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  100. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  101. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  102. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  103. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  104. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  105. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  106. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  107. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  108. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  110. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  111. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  112. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  113. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  114. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  116. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  117. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  118. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  119. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  120. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  121. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  123. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  124. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  125. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  126. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  127. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  128. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  129. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  131. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  132. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  133. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  134. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  135. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  136. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  137. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  138. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  139. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  140. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  141. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  142. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  143. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  144. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  145. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  146. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  147. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  148. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  149. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  150. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  151. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  152. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  153. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  154. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  155. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  156. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  157. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  158. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  159. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  160. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  161. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  162. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  163. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  165. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  166. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  167. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  168. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  169. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  170. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  171. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  172. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  173. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  174. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  175. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  176. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  177. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  178. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  179. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  180. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  181. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  182. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
  183. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  184. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  185. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  186. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  187. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  188. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  189. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  190. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  191. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  192. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  193. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  194. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  195. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  196. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  197. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  198. package/contracts/examples/flight/FlightLib.sol +48 -37
  199. package/contracts/examples/flight/FlightProduct.sol +117 -11
  200. package/contracts/examples/flight/FlightProductAuthorization.sol +2 -1
  201. package/contracts/examples/flight/FlightUSD.sol +3 -1
  202. package/package.json +1 -1
@@ -24,33 +24,33 @@ library FlightLib {
24
24
  Timestamp departureTime,
25
25
  Timestamp arrivalTime,
26
26
  Amount premiumAmount,
27
- uint256[6] memory statistics,
27
+ uint256[6] memory statistics
28
28
  // signature fields
29
- uint8 v,
30
- bytes32 r,
31
- bytes32 s
29
+ // uint8 v,
30
+ // bytes32 r,
31
+ // bytes32 s
32
32
  )
33
33
  public
34
34
  view
35
35
  {
36
36
  _checkApplicationData(flightProduct, premiumAmount, arrivalTime, departureTime);
37
37
 
38
- (
39
- address actualSigner,,
40
- bool success
41
- ) = flightProduct.getFlightMessageVerifier().verifyRatingsHash(
42
- flightData,
43
- departureTime,
44
- arrivalTime,
45
- premiumAmount,
46
- statistics,
47
- v, r, s);
48
-
49
- if (!success) {
50
- revert FlightProduct.ErrorApplicationDataSignatureMismatch(
51
- flightProduct.getFlightMessageVerifier().getExpectedSigner(),
52
- actualSigner);
53
- }
38
+ // (
39
+ // address actualSigner,,
40
+ // bool success
41
+ // ) = flightProduct.getFlightMessageVerifier().verifyRatingsHash(
42
+ // flightData,
43
+ // departureTime,
44
+ // arrivalTime,
45
+ // premiumAmount,
46
+ // statistics,
47
+ // v, r, s);
48
+
49
+ // if (!success) {
50
+ // revert FlightProduct.ErrorApplicationDataSignatureMismatch(
51
+ // flightProduct.getFlightMessageVerifier().getExpectedSigner(),
52
+ // actualSigner);
53
+ // }
54
54
  }
55
55
 
56
56
 
@@ -64,20 +64,25 @@ library FlightLib {
64
64
  view
65
65
  {
66
66
  // solhint-disable
67
- require(premiumAmount >= flightProduct.MIN_PREMIUM(), "ERROR:FDD-001:INVALID_PREMIUM");
68
- require(premiumAmount <= flightProduct.MAX_PREMIUM(), "ERROR:FDD-002:INVALID_PREMIUM");
69
- require(arrivalTime > departureTime, "ERROR:FDD-003:ARRIVAL_BEFORE_DEPARTURE_TIME");
70
-
71
- // TODO decide how to handle demo mode
72
- require(
73
- arrivalTime <= departureTime.addSeconds(flightProduct.MAX_FLIGHT_DURATION()),
74
- "ERROR:FDD-004:INVALID_ARRIVAL/DEPARTURE_TIME");
75
- require(
76
- TimestampLib.current() >= departureTime.subtractSeconds(flightProduct.MAX_TIME_BEFORE_DEPARTURE()),
77
- "ERROR:FDD-005:INVALID_ARRIVAL/DEPARTURE_TIME");
78
- require(
79
- TimestampLib.current() <= departureTime.subtractSeconds(flightProduct.MIN_TIME_BEFORE_DEPARTURE()),
80
- "ERROR:FDD-012:INVALID_ARRIVAL/DEPARTURE_TIME");
67
+ if (premiumAmount < flightProduct.MIN_PREMIUM()) {
68
+ revert FlightProduct.ErrorFlightProductPremiumAmountTooSmall(premiumAmount, flightProduct.MIN_PREMIUM());
69
+ }
70
+ if (premiumAmount > flightProduct.MAX_PREMIUM()) {
71
+ revert FlightProduct.ErrorFlightProductPremiumAmountTooLarge(premiumAmount, flightProduct.MAX_PREMIUM());
72
+ }
73
+ if (arrivalTime <= departureTime) {
74
+ revert FlightProduct.ErrorFlightProductArrivalBeforeDepartureTime(departureTime, arrivalTime);
75
+ }
76
+
77
+ if (arrivalTime > departureTime.addSeconds(flightProduct.MAX_FLIGHT_DURATION())) {
78
+ revert FlightProduct.ErrorFlightProductArrivalAfterMaxFlightDuration(arrivalTime, departureTime, flightProduct.MAX_FLIGHT_DURATION());
79
+ }
80
+ if (departureTime < TimestampLib.current().addSeconds(flightProduct.MIN_TIME_BEFORE_DEPARTURE())) {
81
+ revert FlightProduct.ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MIN_TIME_BEFORE_DEPARTURE());
82
+ }
83
+ if (departureTime > TimestampLib.current().addSeconds(flightProduct.MAX_TIME_BEFORE_DEPARTURE())) {
84
+ revert FlightProduct.ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MAX_TIME_BEFORE_DEPARTURE());
85
+ }
81
86
  // solhint-enable
82
87
  }
83
88
 
@@ -161,7 +166,9 @@ library FlightLib {
161
166
  returns (uint256 weight)
162
167
  {
163
168
  // check we have enough observations
164
- require(statistics[0] >= flightProduct.MIN_OBSERVATIONS(), "ERROR:FDD-011:LOW_OBSERVATIONS");
169
+ if (statistics[0] < flightProduct.MIN_OBSERVATIONS()) {
170
+ revert FlightProduct.ErrorFlightProductNotEnoughObservations(statistics[0], flightProduct.MIN_OBSERVATIONS());
171
+ }
165
172
 
166
173
  weight = 0;
167
174
  for (uint256 i = 1; i < 6; i++) {
@@ -192,8 +199,12 @@ library FlightLib {
192
199
  Amount sumInsuredAmount // simply the max of payoutAmounts
193
200
  )
194
201
  {
195
- require(premium >= flightProduct.MIN_PREMIUM(), "ERROR:FDD-009:INVALID_PREMIUM");
196
- require(premium <= flightProduct.MAX_PREMIUM(), "ERROR:FDD-010:INVALID_PREMIUM");
202
+ if (premium < flightProduct.MIN_PREMIUM()) {
203
+ revert FlightProduct.ErrorFlightProductPremiumAmountTooSmall(premium, flightProduct.MIN_PREMIUM());
204
+ }
205
+ if (premium > flightProduct.MAX_PREMIUM()) {
206
+ revert FlightProduct.ErrorFlightProductPremiumAmountTooLarge(premium, flightProduct.MAX_PREMIUM());
207
+ }
197
208
 
198
209
  sumInsuredAmount = AmountLib.zero();
199
210
  weight = calculateWeight(flightProduct, statistics);
@@ -1,6 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";
4
5
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
6
 
6
7
  import {IAuthorization} from "../../authorization/IAuthorization.sol";
@@ -43,6 +44,14 @@ contract FlightProduct is
43
44
  event LogErrorUnexpectedStatus(RequestId requestId, RiskId riskId, bytes1 status, int256 delayMinutes);
44
45
 
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);
46
55
 
47
56
  // solhint-disable
48
57
  // Minimum observations for valid prediction
@@ -100,6 +109,27 @@ contract FlightProduct is
100
109
  int256 delayMinutes;
101
110
  }
102
111
 
112
+ struct ApplicationData {
113
+ Str flightData;
114
+ Timestamp departureTime;
115
+ Timestamp arrivalTime;
116
+ Amount premiumAmount;
117
+ uint256[6] statistics;
118
+ uint8 v;
119
+ bytes32 r;
120
+ bytes32 s;
121
+ }
122
+
123
+ struct PermitData {
124
+ address owner;
125
+ address spender;
126
+ uint256 value;
127
+ uint256 deadline;
128
+ uint8 v;
129
+ bytes32 r;
130
+ bytes32 s;
131
+ }
132
+
103
133
 
104
134
  constructor(
105
135
  address registry,
@@ -131,6 +161,82 @@ contract FlightProduct is
131
161
  getNftId()).oracleNftId[0];
132
162
  }
133
163
 
164
+ function calculatePayoutAmounts(
165
+ FlightProduct flightProduct,
166
+ Amount premium,
167
+ uint256[6] memory statistics
168
+ )
169
+ external
170
+ view
171
+ returns (
172
+ uint256 weight,
173
+ Amount[5] memory payoutAmounts,
174
+ Amount sumInsuredAmount // simply the max of payoutAmounts
175
+ )
176
+ {
177
+ return FlightLib.calculatePayoutAmounts(
178
+ flightProduct,
179
+ premium,
180
+ statistics);
181
+ }
182
+
183
+ /// @dev Creates a policy using a permit for the policy holder.
184
+ /// The policy holder is defined as the owner parameter of the permit data.
185
+ /// NOTE: This function makes the assumption that the product token
186
+ /// supports permits. This assumption is not verfied.
187
+ function createPolicyWithPermit(
188
+ PermitData memory permit,
189
+ ApplicationData memory application
190
+ )
191
+ external
192
+ virtual
193
+ restricted()
194
+ returns (
195
+ RiskId riskId,
196
+ NftId policyNftId
197
+ )
198
+ {
199
+ // process permit data
200
+ processPermit(permit);
201
+
202
+ // create policy
203
+ address policyHolder = permit.owner;
204
+ (
205
+ riskId,
206
+ policyNftId
207
+ ) = createPolicy(
208
+ policyHolder,
209
+ application.flightData,
210
+ application.departureTime,
211
+ application.arrivalTime,
212
+ application.premiumAmount,
213
+ application.statistics);
214
+ // application.v,
215
+ // application.r,
216
+ // application.s);
217
+ }
218
+
219
+
220
+ function processPermit(
221
+ PermitData memory permit
222
+ )
223
+ public
224
+ virtual
225
+ restricted()
226
+ {
227
+ address tokenAddress = address(getToken());
228
+
229
+ // process permit data
230
+ ERC20Permit(tokenAddress).permit(
231
+ permit.owner,
232
+ permit.spender,
233
+ permit.value,
234
+ permit.deadline,
235
+ permit.v,
236
+ permit.r,
237
+ permit.s);
238
+ }
239
+
134
240
 
135
241
  function createPolicy(
136
242
  address policyHolder,
@@ -138,13 +244,13 @@ contract FlightProduct is
138
244
  Timestamp departureTime,
139
245
  Timestamp arrivalTime,
140
246
  Amount premiumAmount,
141
- uint256[6] memory statistics,
247
+ uint256[6] memory statistics
142
248
  // signature fields
143
- uint8 v,
144
- bytes32 r,
145
- bytes32 s
249
+ // uint8 v,
250
+ // bytes32 r,
251
+ // bytes32 s
146
252
  )
147
- external
253
+ public
148
254
  virtual
149
255
  restricted()
150
256
  returns (
@@ -153,14 +259,15 @@ contract FlightProduct is
153
259
  )
154
260
  {
155
261
  // checks
262
+ // disabled for now - using rbac for security
156
263
  FlightLib.checkApplicationDataAndSignature(
157
264
  this,
158
265
  flightData,
159
266
  departureTime,
160
267
  arrivalTime,
161
268
  premiumAmount,
162
- statistics,
163
- v, r, s);
269
+ statistics);
270
+ // v, r, s);
164
271
 
165
272
  (riskId, policyNftId) = _prepareApplication(
166
273
  policyHolder,
@@ -406,10 +513,9 @@ contract FlightProduct is
406
513
  }
407
514
 
408
515
  // check for cluster risk: additional sum insured amount must not exceed MAX_TOTAL_PAYOUT
409
- require (
410
- flightRisk.sumOfSumInsuredAmounts + sumInsuredAmount <= MAX_TOTAL_PAYOUT,
411
- "ERROR:FDD-006:CLUSTER_RISK"
412
- );
516
+ if (flightRisk.sumOfSumInsuredAmounts + sumInsuredAmount > MAX_TOTAL_PAYOUT) {
517
+ revert ErrorFlightProductClusterRisk(flightRisk.sumOfSumInsuredAmounts + sumInsuredAmount, MAX_TOTAL_PAYOUT);
518
+ }
413
519
 
414
520
  // update existing risk with additional sum insured amount
415
521
  flightRisk.sumOfSumInsuredAmounts = flightRisk.sumOfSumInsuredAmounts + sumInsuredAmount;
@@ -31,8 +31,9 @@ contract FlightProductAuthorization
31
31
  // authorize public role (open access to any account, only allows to lock target)
32
32
  functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
33
33
  _authorize(functions, FlightProduct.createPolicy.selector, "createPolicy");
34
+ _authorize(functions, FlightProduct.createPolicyWithPermit.selector, "createPolicyWithPermit");
34
35
 
35
- // only owner
36
+ // TODO: only owner
36
37
  _authorize(functions, FlightProduct.processFlightStatus.selector, "processFlightStatus");
37
38
  _authorize(functions, FlightProduct.completeSetup.selector, "completeSetup");
38
39
  _authorize(functions, FlightProduct.setDefaultBundle.selector, "setDefaultBundle");
@@ -2,9 +2,10 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
5
+ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";
5
6
 
6
7
  /// @dev FireUSD is a stablecoin with 6 decimals and an initial supply of 1 Billion tokens.
7
- contract FlightUSD is ERC20 {
8
+ contract FlightUSD is ERC20Permit {
8
9
 
9
10
  string public constant NAME = "FlightUSD";
10
11
  string public constant SYMBOL = "FLTD";
@@ -12,6 +13,7 @@ contract FlightUSD is ERC20 {
12
13
  uint256 public constant INITIAL_SUPPLY = 10**12 * 10**DECIMALS; // 1'000'000'000'000
13
14
 
14
15
  constructor()
16
+ ERC20Permit(NAME)
15
17
  ERC20(NAME, SYMBOL)
16
18
  {
17
19
  _mint(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etherisc/gif-next",
3
- "version": "3.0.0-1a7e54a-113",
3
+ "version": "3.0.0-1d08e65-733",
4
4
  "description": "This is the repository for the next version of the Generic Insurance Framework (GIF) smart contracts. ",
5
5
  "main": "index.js",
6
6
  "scripts": {