@etherisc/gif-next 3.0.0-46119ac-539 → 3.0.0-701b106-642

Sign up to get free protection for your applications and to get access to all the features.
Files changed (200) 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 +2 -2
  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 +245 -63
  35. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
  36. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +2 -2
  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/FlightProduct.sol +112 -13
  199. package/contracts/examples/flight/FlightUSD.sol +3 -1
  200. package/package.json +1 -1
@@ -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";
@@ -100,6 +101,27 @@ contract FlightProduct is
100
101
  int256 delayMinutes;
101
102
  }
102
103
 
104
+ struct ApplicationData {
105
+ Str flightData;
106
+ Timestamp departureTime;
107
+ Timestamp arrivalTime;
108
+ Amount premiumAmount;
109
+ uint256[6] statistics;
110
+ uint8 v;
111
+ bytes32 r;
112
+ bytes32 s;
113
+ }
114
+
115
+ struct PermitData {
116
+ address owner;
117
+ address spender;
118
+ uint256 value;
119
+ uint256 deadline;
120
+ uint8 v;
121
+ bytes32 r;
122
+ bytes32 s;
123
+ }
124
+
103
125
 
104
126
  constructor(
105
127
  address registry,
@@ -131,6 +153,82 @@ contract FlightProduct is
131
153
  getNftId()).oracleNftId[0];
132
154
  }
133
155
 
156
+ function calculatePayoutAmounts(
157
+ FlightProduct flightProduct,
158
+ Amount premium,
159
+ uint256[6] memory statistics
160
+ )
161
+ external
162
+ view
163
+ returns (
164
+ uint256 weight,
165
+ Amount[5] memory payoutAmounts,
166
+ Amount sumInsuredAmount // simply the max of payoutAmounts
167
+ )
168
+ {
169
+ return FlightLib.calculatePayoutAmounts(
170
+ flightProduct,
171
+ premium,
172
+ statistics);
173
+ }
174
+
175
+ /// @dev Creates a policy using a permit for the policy holder.
176
+ /// The policy holder is defined as the owner parameter of the permit data.
177
+ /// NOTE: This function makes the assumption that the product token
178
+ /// supports permits. This assumption is not verfied.
179
+ function createPolicyWithPermit(
180
+ PermitData memory permit,
181
+ ApplicationData memory application
182
+ )
183
+ external
184
+ virtual
185
+ restricted()
186
+ returns (
187
+ RiskId riskId,
188
+ NftId policyNftId
189
+ )
190
+ {
191
+ // process permit data
192
+ processPermit(permit);
193
+
194
+ // create policy
195
+ address policyHolder = permit.owner;
196
+ (
197
+ riskId,
198
+ policyNftId
199
+ ) = createPolicy(
200
+ policyHolder,
201
+ application.flightData,
202
+ application.departureTime,
203
+ application.arrivalTime,
204
+ application.premiumAmount,
205
+ application.statistics);
206
+ // application.v,
207
+ // application.r,
208
+ // application.s);
209
+ }
210
+
211
+
212
+ function processPermit(
213
+ PermitData memory permit
214
+ )
215
+ public
216
+ virtual
217
+ restricted()
218
+ {
219
+ address tokenAddress = address(getToken());
220
+
221
+ // process permit data
222
+ ERC20Permit(tokenAddress).permit(
223
+ permit.owner,
224
+ permit.spender,
225
+ permit.value,
226
+ permit.deadline,
227
+ permit.v,
228
+ permit.r,
229
+ permit.s);
230
+ }
231
+
134
232
 
135
233
  function createPolicy(
136
234
  address policyHolder,
@@ -138,13 +236,13 @@ contract FlightProduct is
138
236
  Timestamp departureTime,
139
237
  Timestamp arrivalTime,
140
238
  Amount premiumAmount,
141
- uint256[6] memory statistics,
239
+ uint256[6] memory statistics
142
240
  // signature fields
143
- uint8 v,
144
- bytes32 r,
145
- bytes32 s
241
+ // uint8 v,
242
+ // bytes32 r,
243
+ // bytes32 s
146
244
  )
147
- external
245
+ public
148
246
  virtual
149
247
  restricted()
150
248
  returns (
@@ -153,14 +251,15 @@ contract FlightProduct is
153
251
  )
154
252
  {
155
253
  // checks
156
- FlightLib.checkApplicationDataAndSignature(
157
- this,
158
- flightData,
159
- departureTime,
160
- arrivalTime,
161
- premiumAmount,
162
- statistics,
163
- v, r, s);
254
+ // disabled for now - using rbac for security
255
+ // FlightLib.checkApplicationDataAndSignature(
256
+ // this,
257
+ // flightData,
258
+ // departureTime,
259
+ // arrivalTime,
260
+ // premiumAmount,
261
+ // statistics,
262
+ // v, r, s);
164
263
 
165
264
  (riskId, policyNftId) = _prepareApplication(
166
265
  policyHolder,
@@ -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-46119ac-539",
3
+ "version": "3.0.0-701b106-642",
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": {