@etherisc/gif-next 3.0.0-65fa82c-553 → 3.0.0-6788417-745

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.
Files changed (465) hide show
  1. package/README.md +9 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +42 -56
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +44 -48
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +14 -20
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +99 -87
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2 -2
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +42 -29
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +75 -63
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +20 -114
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +2 -96
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +187 -114
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +75 -75
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +2 -96
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +113 -40
  37. package/artifacts/contracts/examples/crop/AccountingToken.sol/AccountingToken.dbg.json +4 -0
  38. package/artifacts/contracts/examples/crop/AccountingToken.sol/AccountingToken.json +376 -0
  39. package/artifacts/contracts/examples/crop/CropPool.sol/CropPool.dbg.json +4 -0
  40. package/artifacts/contracts/examples/crop/CropPool.sol/CropPool.json +1391 -0
  41. package/artifacts/contracts/examples/crop/CropPoolAuthorization.sol/CropPoolAuthorization.dbg.json +4 -0
  42. package/artifacts/contracts/examples/crop/CropPoolAuthorization.sol/CropPoolAuthorization.json +844 -0
  43. package/artifacts/contracts/examples/crop/CropProduct.sol/CropProduct.dbg.json +4 -0
  44. package/artifacts/contracts/examples/crop/CropProduct.sol/CropProduct.json +2327 -0
  45. package/artifacts/contracts/examples/crop/CropProductAuthorization.sol/CropProductAuthorization.dbg.json +4 -0
  46. package/artifacts/contracts/examples/crop/CropProductAuthorization.sol/CropProductAuthorization.json +891 -0
  47. package/artifacts/contracts/examples/crop/Location.sol/LocationLib.dbg.json +4 -0
  48. package/artifacts/contracts/examples/crop/Location.sol/LocationLib.json +199 -0
  49. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  50. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
  51. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  52. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +21 -96
  53. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  54. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +2 -2
  55. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  56. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +49 -129
  57. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +2 -2
  59. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  60. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
  61. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
  62. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +136 -65
  63. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
  64. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +2 -2
  65. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
  67. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +1 -1
  68. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +131 -132
  69. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
  70. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +2 -2
  71. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
  72. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +23 -98
  73. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
  74. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +2 -2
  75. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
  76. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +302 -585
  77. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
  78. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +20 -20
  79. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
  80. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
  81. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +1 -1
  82. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +2 -2
  83. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
  84. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +2 -2
  85. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  86. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +28 -122
  87. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  88. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +2 -2
  89. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  90. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +91 -83
  91. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  92. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +29 -104
  93. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  94. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +2 -2
  95. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  96. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +25 -100
  97. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  98. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +2 -2
  99. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  100. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
  101. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  102. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +59 -72
  103. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  104. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
  105. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  106. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +34 -21
  107. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  108. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +108 -9
  109. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  110. package/artifacts/contracts/instance/Instance.sol/Instance.json +51 -33
  111. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  112. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +191 -179
  113. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  114. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +21 -21
  115. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  116. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +136 -34
  117. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  118. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +151 -36
  119. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  120. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +41 -41
  121. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  122. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +171 -121
  123. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  124. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +141 -91
  125. package/artifacts/contracts/instance/RequestSet.sol/RequestSet.dbg.json +4 -0
  126. package/artifacts/contracts/instance/RequestSet.sol/RequestSet.json +466 -0
  127. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  128. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +66 -79
  129. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  130. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +9 -9
  131. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  132. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  133. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  134. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  135. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  136. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  137. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +3 -3
  138. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  139. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +38 -2
  140. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  141. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  142. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  143. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  144. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  145. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  146. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  147. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  148. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +85 -77
  149. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  150. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  151. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  152. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  153. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +67 -59
  154. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  155. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +19 -13
  156. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  157. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +71 -63
  158. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  159. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +57 -51
  160. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  161. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +50 -50
  162. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  163. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +4 -79
  164. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  165. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +2 -2
  166. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  167. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +90 -85
  168. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +62 -62
  170. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  171. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +32 -27
  172. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  173. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +4 -79
  174. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  175. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +55 -43
  176. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  177. package/artifacts/contracts/pool/Pool.sol/Pool.json +4 -79
  178. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  179. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +4 -9
  180. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  181. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +113 -101
  182. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  183. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +63 -63
  184. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  185. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +37 -37
  186. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  187. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +44 -44
  188. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  189. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +2 -77
  190. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  191. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
  192. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  193. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +86 -80
  194. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  195. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +67 -67
  196. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  197. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +11 -11
  198. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  199. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +24 -18
  200. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  201. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +21 -9
  202. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  203. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +2 -2
  204. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  205. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +2 -77
  206. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  207. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +15 -28
  208. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  209. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +81 -69
  210. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  211. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
  212. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  213. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +60 -60
  214. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  215. package/artifacts/contracts/product/PricingService.sol/PricingService.json +34 -34
  216. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  217. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +51 -51
  218. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  219. package/artifacts/contracts/product/Product.sol/Product.json +2 -77
  220. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  221. package/artifacts/contracts/product/RiskService.sol/RiskService.json +37 -50
  222. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  223. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +42 -42
  224. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  225. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +58 -8
  226. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  227. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +30 -24
  228. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  229. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +2 -2
  230. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  231. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  232. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  233. package/artifacts/contracts/registry/Registry.sol/Registry.json +132 -66
  234. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  235. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +168 -156
  236. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  237. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +2 -27
  238. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  239. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +8 -8
  240. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  241. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +37 -37
  242. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  243. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +198 -186
  244. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  245. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  246. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  247. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +119 -110
  248. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  249. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +19 -19
  250. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  251. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +20 -20
  252. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  253. package/artifacts/contracts/shared/Component.sol/Component.json +2 -77
  254. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  255. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +329 -113
  256. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  257. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +61 -61
  258. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  259. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
  260. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  261. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  262. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  263. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +1 -1
  264. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +2 -77
  265. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  266. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +2 -77
  267. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  268. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +271 -55
  269. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  270. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +2 -77
  271. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  272. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  273. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +2 -2
  274. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  275. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  276. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +2 -2
  277. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  278. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  279. package/artifacts/contracts/shared/IService.sol/IService.json +2 -2
  280. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  281. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  282. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  283. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +2 -77
  284. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  285. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  286. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  287. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  288. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +4 -4
  289. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  290. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  291. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  292. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
  293. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  294. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  295. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  296. package/artifacts/contracts/shared/Service.sol/Service.json +2 -2
  297. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  298. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +39 -66
  299. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  300. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +22 -49
  301. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  302. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +28 -28
  303. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  304. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +91 -147
  305. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  306. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +15 -221
  307. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  308. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  309. package/artifacts/contracts/staking/Staking.sol/Staking.json +139 -195
  310. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  311. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -7
  312. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  313. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +53 -53
  314. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  315. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  316. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  317. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +35 -241
  318. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  319. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +40 -40
  320. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  321. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +220 -220
  322. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  323. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +9 -14
  324. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  325. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -7
  326. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  327. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  328. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
  330. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  332. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  334. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  336. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  338. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -7
  340. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  341. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  342. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  343. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  344. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  346. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  347. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  348. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  350. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  352. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  354. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  355. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +23 -4
  356. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
  357. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +2 -2
  358. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  360. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  361. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  362. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  363. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -2
  364. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  365. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  366. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  367. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  368. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  369. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  370. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  371. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  372. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  373. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  374. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  375. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
  376. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  377. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  378. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  379. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
  380. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  381. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  382. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +22 -22
  383. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  384. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  385. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  386. package/contracts/accounting/AccountingService.sol +17 -29
  387. package/contracts/accounting/IAccountingService.sol +7 -8
  388. package/contracts/authorization/AccessAdmin.sol +10 -29
  389. package/contracts/authorization/AccessManagerCloneable.sol +4 -0
  390. package/contracts/authorization/IAccessAdmin.sol +9 -8
  391. package/contracts/distribution/DistributionService.sol +24 -19
  392. package/contracts/distribution/IDistributionComponent.sol +0 -2
  393. package/contracts/distribution/IDistributionService.sol +8 -7
  394. package/contracts/examples/crop/AccountingToken.sol +26 -0
  395. package/contracts/examples/crop/CropPool.sol +89 -0
  396. package/contracts/examples/crop/CropPoolAuthorization.sol +37 -0
  397. package/contracts/examples/crop/CropProduct.sol +495 -0
  398. package/contracts/examples/crop/CropProductAuthorization.sol +69 -0
  399. package/contracts/examples/crop/Location.sol +50 -0
  400. package/contracts/examples/flight/FlightLib.sol +55 -18
  401. package/contracts/examples/flight/FlightNft.sol +234 -0
  402. package/contracts/examples/flight/FlightOracle.sol +20 -62
  403. package/contracts/examples/flight/FlightOracleAuthorization.sol +4 -1
  404. package/contracts/examples/flight/FlightPool.sol +1 -1
  405. package/contracts/examples/flight/FlightProduct.sol +182 -180
  406. package/contracts/examples/flight/FlightProductAuthorization.sol +3 -2
  407. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  408. package/contracts/instance/BaseStore.sol +4 -0
  409. package/contracts/instance/BundleSet.sol +7 -8
  410. package/contracts/instance/IBaseStore.sol +8 -0
  411. package/contracts/instance/IInstance.sol +10 -7
  412. package/contracts/instance/IInstanceService.sol +11 -4
  413. package/contracts/instance/Instance.sol +8 -0
  414. package/contracts/instance/InstanceAdmin.sol +2 -1
  415. package/contracts/instance/InstanceAuthorizationV3.sol +15 -1
  416. package/contracts/instance/InstanceReader.sol +28 -5
  417. package/contracts/instance/InstanceService.sol +68 -36
  418. package/contracts/instance/InstanceStore.sol +14 -14
  419. package/contracts/instance/ProductStore.sol +14 -14
  420. package/contracts/instance/RequestSet.sol +63 -0
  421. package/contracts/instance/RiskSet.sol +6 -7
  422. package/contracts/instance/TargetNames.sol +1 -0
  423. package/contracts/instance/base/BalanceStore.sol +7 -7
  424. package/contracts/instance/base/ObjectSet.sol +9 -1
  425. package/contracts/instance/base/ObjectSetHelperLib.sol +5 -1
  426. package/contracts/oracle/BasicOracle.sol +1 -0
  427. package/contracts/oracle/IOracleComponent.sol +10 -0
  428. package/contracts/oracle/IOracleService.sol +5 -5
  429. package/contracts/oracle/Oracle.sol +50 -26
  430. package/contracts/oracle/OracleService.sol +26 -23
  431. package/contracts/pool/BundleService.sol +3 -3
  432. package/contracts/pool/IBundleService.sol +9 -10
  433. package/contracts/pool/IPoolComponent.sol +1 -1
  434. package/contracts/pool/IPoolService.sol +14 -14
  435. package/contracts/pool/PoolService.sol +2 -2
  436. package/contracts/product/ClaimService.sol +1 -1
  437. package/contracts/product/IApplicationService.sol +8 -8
  438. package/contracts/product/IClaimService.sol +9 -9
  439. package/contracts/product/IPolicyService.sol +7 -7
  440. package/contracts/product/IRiskService.sol +4 -5
  441. package/contracts/product/PolicyService.sol +1 -1
  442. package/contracts/product/PolicyServiceLib.sol +5 -3
  443. package/contracts/product/RiskService.sol +2 -2
  444. package/contracts/registry/ChainNft.sol +10 -9
  445. package/contracts/registry/IRegistry.sol +11 -10
  446. package/contracts/registry/Registry.sol +16 -13
  447. package/contracts/registry/RegistryAuthorization.sol +0 -2
  448. package/contracts/registry/ReleaseAdmin.sol +4 -4
  449. package/contracts/registry/ReleaseRegistry.sol +7 -8
  450. package/contracts/registry/TokenRegistry.sol +3 -3
  451. package/contracts/shared/ComponentService.sol +38 -4
  452. package/contracts/shared/IComponent.sol +0 -4
  453. package/contracts/shared/IComponentService.sol +31 -9
  454. package/contracts/shared/INftOwnable.sol +1 -1
  455. package/contracts/shared/InstanceLinkedComponent.sol +1 -1
  456. package/contracts/shared/TokenHandler.sol +5 -5
  457. package/contracts/staking/IStaking.sol +33 -31
  458. package/contracts/staking/IStakingService.sol +7 -16
  459. package/contracts/staking/Staking.sol +5 -4
  460. package/contracts/staking/StakingService.sol +2 -3
  461. package/contracts/staking/StakingStore.sol +3 -3
  462. package/contracts/staking/TargetHandler.sol +2 -2
  463. package/contracts/type/RequestId.sol +6 -0
  464. package/contracts/upgradeability/ProxyManager.sol +2 -2
  465. package/package.json +3 -3
@@ -11,6 +11,7 @@ import {InstanceReader} from "../../instance/InstanceReader.sol";
11
11
  import {NftId} from "../../type/NftId.sol";
12
12
  import {RequestId} from "../../type/RequestId.sol";
13
13
  import {RiskId, RiskIdLib} from "../../type/RiskId.sol";
14
+ import {Seconds} from "../../type/Seconds.sol";
14
15
  import {StateId} from "../../type/StateId.sol";
15
16
  import {Str} from "../../type/String.sol";
16
17
  import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
@@ -18,6 +19,19 @@ import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
18
19
 
19
20
  library FlightLib {
20
21
 
22
+ event LogFlightProductErrorUnprocessableStatus(RequestId requestId, RiskId riskId, bytes1 status);
23
+ event LogFlightProductErrorUnexpectedStatus(RequestId requestId, RiskId riskId, bytes1 status, int256 delayMinutes);
24
+
25
+ error ErrorFlightProductRiskInvalid(RiskId riskId);
26
+ error ErrorFlightProductPremiumAmountTooSmall(Amount premiumAmount, Amount minPremium);
27
+ error ErrorFlightProductPremiumAmountTooLarge(Amount premiumAmount, Amount maxPremium);
28
+ error ErrorFlightProductArrivalBeforeDepartureTime(Timestamp departureTime, Timestamp arrivalTime);
29
+ error ErrorFlightProductArrivalAfterMaxFlightDuration(Timestamp arrivalTime, Timestamp maxArrivalTime, Seconds maxDuration);
30
+ error ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(Timestamp departureTime, Timestamp now, Seconds minTimeBeforeDeparture);
31
+ error ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(Timestamp departureTime, Timestamp now, Seconds maxTimeBeforeDeparture);
32
+ error ErrorFlightProductNotEnoughObservations(uint256 observations, uint256 minObservations);
33
+ error ErrorFlightProductClusterRisk(Amount totalSumInsured, Amount maxTotalPayout);
34
+
21
35
  function checkApplicationData(
22
36
  FlightProduct flightProduct,
23
37
  Str flightData,
@@ -45,32 +59,45 @@ library FlightLib {
45
59
 
46
60
  // solhint-disable
47
61
  if (premiumAmount < flightProduct.MIN_PREMIUM()) {
48
- revert FlightProduct.ErrorFlightProductPremiumAmountTooSmall(premiumAmount, flightProduct.MIN_PREMIUM());
62
+ revert ErrorFlightProductPremiumAmountTooSmall(premiumAmount, flightProduct.MIN_PREMIUM());
49
63
  }
50
64
  if (premiumAmount > flightProduct.MAX_PREMIUM()) {
51
- revert FlightProduct.ErrorFlightProductPremiumAmountTooLarge(premiumAmount, flightProduct.MAX_PREMIUM());
65
+ revert ErrorFlightProductPremiumAmountTooLarge(premiumAmount, flightProduct.MAX_PREMIUM());
52
66
  }
53
67
  if (arrivalTime <= departureTime) {
54
- revert FlightProduct.ErrorFlightProductArrivalBeforeDepartureTime(departureTime, arrivalTime);
68
+ revert ErrorFlightProductArrivalBeforeDepartureTime(departureTime, arrivalTime);
55
69
  }
56
-
57
- // test mode allows the creation for policies that ore not time constrained
58
- if (!testMode && arrivalTime > departureTime.addSeconds(flightProduct.MAX_FLIGHT_DURATION())) {
59
- revert FlightProduct.ErrorFlightProductArrivalAfterMaxFlightDuration(arrivalTime, departureTime, flightProduct.MAX_FLIGHT_DURATION());
70
+ if (arrivalTime > departureTime.addSeconds(flightProduct.MAX_FLIGHT_DURATION())) {
71
+ revert ErrorFlightProductArrivalAfterMaxFlightDuration(arrivalTime, departureTime, flightProduct.MAX_FLIGHT_DURATION());
60
72
  }
73
+
74
+ // test mode allows the creation for policies that are outside restricted policy creation times
61
75
  if (!testMode && departureTime < TimestampLib.current().addSeconds(flightProduct.MIN_TIME_BEFORE_DEPARTURE())) {
62
- revert FlightProduct.ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MIN_TIME_BEFORE_DEPARTURE());
76
+ revert ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MIN_TIME_BEFORE_DEPARTURE());
63
77
  }
64
78
  if (!testMode && departureTime > TimestampLib.current().addSeconds(flightProduct.MAX_TIME_BEFORE_DEPARTURE())) {
65
- revert FlightProduct.ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MAX_TIME_BEFORE_DEPARTURE());
79
+ revert ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MAX_TIME_BEFORE_DEPARTURE());
66
80
  }
67
81
  // solhint-enable
68
82
  }
69
83
 
70
84
 
85
+ function checkClusterRisk(
86
+ Amount sumOfSumInsuredAmounts,
87
+ Amount sumInsuredAmount,
88
+ Amount maxTotalPayout
89
+ )
90
+ public
91
+ pure
92
+ {
93
+ if (sumOfSumInsuredAmounts + sumInsuredAmount > maxTotalPayout) {
94
+ revert ErrorFlightProductClusterRisk(sumOfSumInsuredAmounts + sumInsuredAmount, maxTotalPayout);
95
+ }
96
+ }
97
+
98
+
71
99
  /// @dev calculates payout option based on flight status and delay minutes.
72
100
  /// Is not a view function as it emits log evens in case of unexpected status.
73
- // TODO decide if reverts instead of log events could work too (and convert the function into a view function)
74
101
  function checkAndGetPayoutOption(
75
102
  RequestId requestId,
76
103
  RiskId riskId,
@@ -85,13 +112,13 @@ library FlightLib {
85
112
 
86
113
  // check status
87
114
  if (status != "L" && status != "A" && status != "C" && status != "D") {
88
- emit FlightProduct.LogErrorUnprocessableStatus(requestId, riskId, status);
115
+ emit LogFlightProductErrorUnprocessableStatus(requestId, riskId, status);
89
116
  return payoutOption;
90
117
  }
91
118
 
92
119
  if (status == "A") {
93
120
  // todo: active, reschedule oracle call + 45 min
94
- emit FlightProduct.LogErrorUnexpectedStatus(requestId, riskId, status, delayMinutes);
121
+ emit LogFlightProductErrorUnexpectedStatus(requestId, riskId, status, delayMinutes);
95
122
  return payoutOption;
96
123
  }
97
124
 
@@ -114,7 +141,7 @@ library FlightLib {
114
141
  {
115
142
  // check we have enough observations
116
143
  if (statistics[0] < flightProduct.MIN_OBSERVATIONS()) {
117
- revert FlightProduct.ErrorFlightProductNotEnoughObservations(statistics[0], flightProduct.MIN_OBSERVATIONS());
144
+ revert ErrorFlightProductNotEnoughObservations(statistics[0], flightProduct.MIN_OBSERVATIONS());
118
145
  }
119
146
 
120
147
  weight = 0;
@@ -147,10 +174,10 @@ library FlightLib {
147
174
  )
148
175
  {
149
176
  if (premium < flightProduct.MIN_PREMIUM()) {
150
- revert FlightProduct.ErrorFlightProductPremiumAmountTooSmall(premium, flightProduct.MIN_PREMIUM());
177
+ revert ErrorFlightProductPremiumAmountTooSmall(premium, flightProduct.MIN_PREMIUM());
151
178
  }
152
179
  if (premium > flightProduct.MAX_PREMIUM()) {
153
- revert FlightProduct.ErrorFlightProductPremiumAmountTooLarge(premium, flightProduct.MAX_PREMIUM());
180
+ revert ErrorFlightProductPremiumAmountTooLarge(premium, flightProduct.MAX_PREMIUM());
154
181
  }
155
182
 
156
183
  sumInsuredAmount = AmountLib.zero();
@@ -186,7 +213,8 @@ library FlightLib {
186
213
  (exists, flightRisk) = getFlightRisk(
187
214
  reader,
188
215
  productNftId,
189
- riskId);
216
+ riskId,
217
+ false);
190
218
 
191
219
  statusAvailable = flightRisk.statusUpdatedAt.gtz();
192
220
  payoutOption = flightRisk.payoutOption;
@@ -201,6 +229,10 @@ library FlightLib {
201
229
  pure
202
230
  returns (Amount payoutAmount)
203
231
  {
232
+ if (payoutOption == type(uint8).max) {
233
+ return AmountLib.zero();
234
+ }
235
+
204
236
  // retrieve payout amounts from application data
205
237
  (, Amount[5] memory payoutAmounts) = abi.decode(
206
238
  applicationData, (Amount, Amount[5]));
@@ -228,7 +260,7 @@ library FlightLib {
228
260
  )
229
261
  {
230
262
  riskId = getRiskId(productNftId, flightData);
231
- (exists, flightRisk) = getFlightRisk(reader, productNftId, riskId);
263
+ (exists, flightRisk) = getFlightRisk(reader, productNftId, riskId, false);
232
264
 
233
265
  // create new risk if not existing
234
266
  if (!exists) {
@@ -250,7 +282,8 @@ library FlightLib {
250
282
  function getFlightRisk(
251
283
  InstanceReader reader,
252
284
  NftId productNftId,
253
- RiskId riskId
285
+ RiskId riskId,
286
+ bool requireRiskExists
254
287
  )
255
288
  public
256
289
  view
@@ -262,6 +295,10 @@ library FlightLib {
262
295
  // check if risk exists
263
296
  exists = reader.isProductRisk(productNftId, riskId);
264
297
 
298
+ if (!exists && requireRiskExists) {
299
+ revert ErrorFlightProductRiskInvalid(riskId);
300
+ }
301
+
265
302
  // get risk data if risk exists
266
303
  if (exists) {
267
304
  flightRisk = abi.decode(
@@ -0,0 +1,234 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";
5
+ import {IERC721Metadata} from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol";
6
+ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
7
+
8
+ import {IPolicy} from "../../instance/module/IPolicy.sol";
9
+ import {IRegistry} from "../../registry/IRegistry.sol";
10
+
11
+ import {Amount} from "../../type/Amount.sol";
12
+ import {ChainNft} from "../../registry/ChainNft.sol";
13
+ import {FlightProduct} from "./FlightProduct.sol";
14
+ import {InstanceReader} from "../../instance/InstanceReader.sol";
15
+ import {NftId, NftIdLib} from "../../type/NftId.sol";
16
+ import {RiskId} from "../../type/RiskId.sol";
17
+
18
+
19
+ /**
20
+ * @title FlightNft
21
+ * @dev FlightNft provides NFT data for flight delay policies.
22
+ */
23
+ // contract FlightNft is IERC721Metadata {
24
+ contract FlightNft is
25
+ ERC721,
26
+ Ownable
27
+ {
28
+
29
+ error ErrorFlightNftNotMinter();
30
+ error ErrorFlightNftAlreadyMinted(uint256 tokenId);
31
+ error ErrorFlightNftNotAvailable(uint256 tokenId);
32
+ error ErrorFlightNftNotFlightPolicy(uint256 tokenId);
33
+
34
+ ChainNft public immutable chainNft;
35
+ FlightProduct public immutable flightProduct;
36
+ InstanceReader public immutable instanceReader;
37
+ IRegistry public registry;
38
+
39
+ address public minter;
40
+ string private _baseUri;
41
+
42
+
43
+ modifier onlyMinter() {
44
+ if(msg.sender != minter) {
45
+ revert ErrorFlightNftNotMinter();
46
+ }
47
+ _;
48
+ }
49
+
50
+
51
+ constructor(
52
+ address flightProductAddress,
53
+ string memory nftName,
54
+ string memory nftSymbol,
55
+ string memory baseUri
56
+ )
57
+ ERC721(nftName, nftSymbol)
58
+ Ownable(msg.sender)
59
+ {
60
+ flightProduct = FlightProduct(flightProductAddress);
61
+ registry = flightProduct.getRegistry();
62
+ chainNft = ChainNft(registry.getChainNftAddress());
63
+ instanceReader = flightProduct.getInstance().getInstanceReader();
64
+
65
+ minter = msg.sender;
66
+ _baseUri = baseUri;
67
+ }
68
+
69
+
70
+ /**
71
+ * Set the base URI to the specified value.
72
+ * Once set, this results in tokenURI() to return <baseUri><tokenId>.
73
+ */
74
+ function setBaseURI(string memory baseUri)
75
+ public
76
+ onlyOwner()
77
+ {
78
+ _baseUri = baseUri;
79
+ }
80
+
81
+
82
+ /**
83
+ * Set the minter address.
84
+ */
85
+ function setMinter(address minterAddress)
86
+ public
87
+ onlyOwner()
88
+ {
89
+ minter = minterAddress;
90
+ }
91
+
92
+
93
+ /**
94
+ * Mints a metadata NFT for the specified chainNft NFT.
95
+ * Only the minter can mint such NFTs.
96
+ */
97
+ function mint(uint256 tokenId)
98
+ external
99
+ onlyMinter()
100
+ {
101
+ // verify nft does not yet exist
102
+ if (_ownerOf(tokenId) != address(0)) {
103
+ revert ErrorFlightNftAlreadyMinted(tokenId);
104
+ }
105
+
106
+ // verify nft on chainNft exists
107
+ // also checks if nft exists (ERC721NonexistentToken)
108
+ address nftOwner = chainNft.ownerOf(tokenId);
109
+
110
+ // verify nft is flight delay policy
111
+ if (registry.getParentNftId(NftIdLib.toNftId(tokenId)) != registry.getNftIdForAddress(address(flightProduct))) {
112
+ revert ErrorFlightNftNotFlightPolicy(tokenId);
113
+ }
114
+
115
+ _mint(nftOwner, tokenId);
116
+ }
117
+
118
+
119
+ /**
120
+ * @dev Return the NFT token URI for the specified token.
121
+ * No check is performed to ensure the token exists.
122
+ */
123
+ function tokenURI(uint256 tokenId) public view override returns (string memory) {
124
+ string memory baseURI = _baseURI();
125
+ return bytes(baseURI).length > 0 ? string.concat(baseURI, toString(tokenId)) : "";
126
+ }
127
+
128
+
129
+ /**
130
+ * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each
131
+ * token will be the concatenation of the `baseURI` and the `tokenId`. Empty
132
+ * by default, can be overridden in child contracts.
133
+ */
134
+ function _baseURI() internal override view returns (string memory) {
135
+ return _baseUri;
136
+ }
137
+
138
+
139
+ function approve(address to, uint256 tokenId) public override { _revert(); }
140
+ function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public override { _revert(); }
141
+ function setApprovalForAll(address operator, bool approved) public override { _revert(); }
142
+ function transferFrom(address from, address to, uint256 tokenId) public override { _revert(); }
143
+
144
+ function balanceOf(address owner) public override view returns (uint256 balance) {
145
+ return chainNft.balanceOf(owner);
146
+ }
147
+
148
+ function getApproved(uint256 tokenId) public override view returns (address operator) {
149
+ return chainNft.getApproved(tokenId);
150
+ }
151
+
152
+ function isApprovedForAll(address owner, address operator) public override view returns (bool) {
153
+ return chainNft.isApprovedForAll(owner, operator);
154
+ }
155
+
156
+ function ownerOf(uint256 tokenId) public override view returns (address owner) {
157
+ return chainNft.ownerOf(tokenId);
158
+ }
159
+
160
+ function supportsInterface(bytes4 interfaceId) public override view returns (bool) {
161
+ return chainNft.supportsInterface(interfaceId);
162
+ }
163
+
164
+
165
+ function getPolicyData(NftId policyNftId)
166
+ public
167
+ view
168
+ returns (
169
+ RiskId riskId,
170
+ string memory flightData,
171
+ string memory departureTimeLocal,
172
+ string memory arrivalTimeLocal,
173
+ Amount premiumAmount,
174
+ Amount[5] memory payoutAmounts,
175
+ bytes1 status,
176
+ int256 delayMinutes
177
+ )
178
+ {
179
+ IPolicy.PolicyInfo memory info = instanceReader.getPolicyInfo(policyNftId);
180
+
181
+ // get financial data
182
+ premiumAmount = info.premiumAmount;
183
+
184
+ if (info.applicationData.length > 0) {
185
+ (, payoutAmounts) = abi.decode(info.applicationData, (Amount, Amount[5]));
186
+ }
187
+
188
+ // get risk data
189
+ riskId = info.riskId;
190
+ bytes memory data = instanceReader.getRiskInfo(riskId).data;
191
+
192
+ if (data.length > 0) {
193
+ FlightProduct.FlightRisk memory flightRisk = flightProduct.decodeFlightRiskData(data);
194
+ flightData = flightRisk.flightData.toString();
195
+ departureTimeLocal = flightRisk.departureTimeLocal;
196
+ arrivalTimeLocal = flightRisk.arrivalTimeLocal;
197
+ status = flightRisk.status;
198
+ delayMinutes = flightRisk.delayMinutes;
199
+ }
200
+ }
201
+
202
+
203
+ function toString(uint256 value) public pure returns (string memory) {
204
+ if (value == 0) {
205
+ return "0";
206
+ }
207
+
208
+ uint256 temp = value;
209
+ uint256 digits = 0;
210
+ while (temp != 0) {
211
+ digits++;
212
+ temp /= 10;
213
+ }
214
+
215
+ bytes memory buffer = new bytes(digits);
216
+ uint index = digits - 1;
217
+
218
+ temp = value;
219
+ while (temp != 0) {
220
+ buffer[index] = bytes1(uint8(48 + temp % 10));
221
+ temp /= 10;
222
+
223
+ if (index > 0) {
224
+ index--;
225
+ }
226
+ }
227
+
228
+ return string(buffer);
229
+ }
230
+
231
+ function _revert() private pure {
232
+ revert("FlightNft: Use GIF Chain NFT contract to interact with NFTs. See function getChainNft()");
233
+ }
234
+ }
@@ -3,14 +3,14 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IAuthorization} from "../../authorization/IAuthorization.sol";
5
5
 
6
- import {FULFILLED} from "../../type/StateId.sol";
6
+ import {ACTIVE, FAILED} from "../../type/StateId.sol";
7
7
  import {NftId} from "../../type/NftId.sol";
8
8
  import {BasicOracle} from "../../oracle/BasicOracle.sol";
9
9
  import {RequestId} from "../../type/RequestId.sol";
10
- import {LibRequestIdSet} from "../../type/RequestIdSet.sol";
11
10
  import {RiskId} from "../../type/RiskId.sol";
11
+ import {StateId} from "../../type/StateId.sol";
12
12
  import {Str} from "../../type/String.sol";
13
- import {Timestamp} from "../../type/Timestamp.sol";
13
+ import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
14
14
 
15
15
  contract FlightOracle is
16
16
  BasicOracle
@@ -32,9 +32,6 @@ contract FlightOracle is
32
32
  event LogFlightOracleResponseSent(RequestId requestId, bytes1 status, int256 delay);
33
33
  event LogFlightOracleRequestCancelled(RequestId requestId);
34
34
 
35
- // TODO decide if this variable should be moved to instance store
36
- // if so it need to manage active requests by requestor nft id
37
- LibRequestIdSet.Set internal _activeRequests;
38
35
 
39
36
 
40
37
  constructor(
@@ -98,74 +95,35 @@ contract FlightOracle is
98
95
 
99
96
  // effects + interaction (via framework to receiving component)
100
97
  _respond(requestId, responseData);
101
-
102
- // TODO decide if the code below should be moved to GIF
103
- // check callback result
104
- bool requestFulfilled = _getInstanceReader().getRequestState(
105
- requestId) == FULFILLED();
106
-
107
- // remove from active requests when successful
108
- if (requestFulfilled) {
109
- LibRequestIdSet.remove(_activeRequests, requestId);
110
- }
111
98
  }
112
99
 
113
100
  //--- view functions ----------------------------------------------------//
114
101
 
115
- // TODO decide if the code below should be moved to GIF
116
- function activeRequests()
102
+ function getRequestState(RequestId requestId)
117
103
  external
118
104
  view
119
- returns(uint256 numberOfRequests)
105
+ returns (
106
+ RiskId riskId,
107
+ string memory flightData,
108
+ StateId requestState,
109
+ bool readyForResponse,
110
+ bool waitingForResend
111
+ )
120
112
  {
121
- return LibRequestIdSet.size(_activeRequests);
113
+ bytes memory requestData = _getInstanceReader().getRequestInfo(requestId).requestData;
114
+ Str fltData;
115
+ Timestamp departureTime;
116
+ (riskId, fltData, departureTime) = abi.decode(requestData, (RiskId, Str, Timestamp));
117
+
118
+ flightData = fltData.toString();
119
+ requestState = _getInstanceReader().getRequestState(requestId);
120
+ readyForResponse = requestState == ACTIVE() && TimestampLib.current() >= departureTime;
121
+ waitingForResend = requestState == FAILED();
122
122
  }
123
123
 
124
124
 
125
- // TODO decide if the code below should be moved to GIF
126
- function getActiveRequest(uint256 idx)
127
- external
128
- view
129
- returns(RequestId requestId)
130
- {
131
- return LibRequestIdSet.getElementAt(_activeRequests, idx);
132
- }
133
-
134
125
  function decodeFlightStatusRequestData(bytes memory data) external pure returns (FlightStatusRequest memory) {
135
126
  return abi.decode(data, (FlightStatusRequest));
136
127
  }
137
128
 
138
- //--- internal functions ------------------------------------------------//
139
-
140
- /// @dev use case specific handling of oracle requests
141
- /// for now only log is emitted to verify that request has been received by oracle component
142
- function _request(
143
- RequestId requestId,
144
- NftId requesterId,
145
- bytes calldata requestData,
146
- Timestamp expiryAt
147
- )
148
- internal
149
- virtual override
150
- {
151
- FlightStatusRequest memory request = abi.decode(requestData, (FlightStatusRequest));
152
-
153
- // TODO decide if the line below should be moved to GIF
154
- LibRequestIdSet.add(_activeRequests, requestId);
155
- emit LogFlightOracleRequestReceived(requestId, requesterId);
156
- }
157
-
158
-
159
- /// @dev use case specific handling of oracle requests
160
- /// for now only log is emitted to verify that cancelling has been received by oracle component
161
- function _cancel(
162
- RequestId requestId
163
- )
164
- internal
165
- virtual override
166
- {
167
- // TODO decide if the line below should be moved to GIF
168
- LibRequestIdSet.remove(_activeRequests, requestId);
169
- emit LogFlightOracleRequestCancelled(requestId);
170
- }
171
129
  }
@@ -8,7 +8,7 @@ import {IAccess} from "../../../contracts/authorization/IAccess.sol";
8
8
  import {AccessAdminLib} from "../../authorization/AccessAdminLib.sol";
9
9
  import {BasicOracleAuthorization} from "../../oracle/BasicOracleAuthorization.sol";
10
10
  import {FlightOracle} from "./FlightOracle.sol";
11
- import {RoleId, ADMIN_ROLE} from "../../../contracts/type/RoleId.sol";
11
+ import {RoleId, ADMIN_ROLE, PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
12
12
 
13
13
  contract FlightOracleAuthorization
14
14
  is BasicOracleAuthorization
@@ -48,6 +48,9 @@ contract FlightOracleAuthorization
48
48
 
49
49
  functions = _authorizeForTarget(getMainTargetName(), STATUS_PROVIDER_ROLE);
50
50
  _authorize(functions, FlightOracle.respondWithFlightStatus.selector, "respondWithFlightStatus");
51
+
52
+ // // authorize public role (additional authz via onlyOwner)
53
+ // functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
51
54
  }
52
55
  }
53
56
 
@@ -35,7 +35,7 @@ contract FlightPool is
35
35
  maxBalanceAmount: AmountLib.max(),
36
36
  isInterceptingBundleTransfers: false,
37
37
  isProcessingConfirmedClaims: false,
38
- isExternallyManaged: false,
38
+ isExternallyManaged: true,
39
39
  isVerifyingApplications: false,
40
40
  collateralizationLevel: UFixedLib.one(),
41
41
  retentionLevel: UFixedLib.one()