@etherisc/gif-next 3.0.0-06d5e8b-738 → 3.0.0-0b94571-537

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 (470) hide show
  1. package/README.md +8 -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 +2433 -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 +79 -159
  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 +123 -112
  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 +132 -133
  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 +320 -587
  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 +42 -122
  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 +160 -42
  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 +166 -107
  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 +92 -105
  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 +40 -4
  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 +56 -44
  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 +124 -112
  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 +44 -44
  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 +4 -79
  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 +18 -18
  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 +4 -4
  204. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  205. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +4 -79
  206. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  207. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -45
  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 +25 -17
  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 +42 -42
  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 +4 -79
  220. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  221. package/artifacts/contracts/product/RiskService.sol/RiskService.json +53 -87
  222. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  223. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +41 -49
  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 +17 -22
  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 +512 -0
  398. package/contracts/examples/crop/CropProductAuthorization.sol +69 -0
  399. package/contracts/examples/crop/Location.sol +50 -0
  400. package/contracts/examples/fire/FireProduct.sol +1 -1
  401. package/contracts/examples/flight/FlightLib.sol +65 -56
  402. package/contracts/examples/flight/FlightNft.sol +234 -0
  403. package/contracts/examples/flight/FlightOracle.sol +20 -62
  404. package/contracts/examples/flight/FlightOracleAuthorization.sol +4 -1
  405. package/contracts/examples/flight/FlightPool.sol +1 -1
  406. package/contracts/examples/flight/FlightProduct.sol +191 -186
  407. package/contracts/examples/flight/FlightProductAuthorization.sol +3 -2
  408. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  409. package/contracts/examples/unpermissioned/SimpleProduct.sol +1 -5
  410. package/contracts/instance/BaseStore.sol +4 -0
  411. package/contracts/instance/BundleSet.sol +7 -8
  412. package/contracts/instance/IBaseStore.sol +8 -0
  413. package/contracts/instance/IInstance.sol +10 -7
  414. package/contracts/instance/IInstanceService.sol +11 -4
  415. package/contracts/instance/Instance.sol +8 -0
  416. package/contracts/instance/InstanceAdmin.sol +2 -1
  417. package/contracts/instance/InstanceAuthorizationV3.sol +15 -1
  418. package/contracts/instance/InstanceReader.sol +49 -8
  419. package/contracts/instance/InstanceService.sol +68 -36
  420. package/contracts/instance/InstanceStore.sol +14 -14
  421. package/contracts/instance/ProductStore.sol +16 -15
  422. package/contracts/instance/RequestSet.sol +63 -0
  423. package/contracts/instance/RiskSet.sol +6 -7
  424. package/contracts/instance/TargetNames.sol +1 -0
  425. package/contracts/instance/base/BalanceStore.sol +7 -7
  426. package/contracts/instance/base/ObjectCounter.sol +7 -5
  427. package/contracts/instance/base/ObjectSet.sol +9 -1
  428. package/contracts/instance/base/ObjectSetHelperLib.sol +5 -1
  429. package/contracts/oracle/BasicOracle.sol +1 -0
  430. package/contracts/oracle/IOracleComponent.sol +10 -0
  431. package/contracts/oracle/IOracleService.sol +5 -5
  432. package/contracts/oracle/Oracle.sol +50 -26
  433. package/contracts/oracle/OracleService.sol +26 -23
  434. package/contracts/pool/BundleService.sol +3 -3
  435. package/contracts/pool/IBundleService.sol +9 -10
  436. package/contracts/pool/IPoolComponent.sol +1 -1
  437. package/contracts/pool/IPoolService.sol +14 -14
  438. package/contracts/pool/PoolService.sol +2 -2
  439. package/contracts/product/ClaimService.sol +1 -1
  440. package/contracts/product/IApplicationService.sol +8 -8
  441. package/contracts/product/IClaimService.sol +9 -9
  442. package/contracts/product/IPolicyService.sol +7 -7
  443. package/contracts/product/IRiskService.sol +4 -6
  444. package/contracts/product/PolicyService.sol +1 -1
  445. package/contracts/product/PolicyServiceLib.sol +5 -3
  446. package/contracts/product/Product.sol +1 -5
  447. package/contracts/product/RiskService.sol +3 -8
  448. package/contracts/registry/ChainNft.sol +10 -9
  449. package/contracts/registry/IRegistry.sol +11 -10
  450. package/contracts/registry/Registry.sol +16 -13
  451. package/contracts/registry/RegistryAuthorization.sol +0 -2
  452. package/contracts/registry/ReleaseAdmin.sol +4 -4
  453. package/contracts/registry/ReleaseRegistry.sol +7 -8
  454. package/contracts/registry/TokenRegistry.sol +3 -3
  455. package/contracts/shared/ComponentService.sol +38 -4
  456. package/contracts/shared/IComponent.sol +0 -4
  457. package/contracts/shared/IComponentService.sol +31 -9
  458. package/contracts/shared/INftOwnable.sol +1 -1
  459. package/contracts/shared/InstanceLinkedComponent.sol +1 -1
  460. package/contracts/shared/TokenHandler.sol +5 -5
  461. package/contracts/staking/IStaking.sol +33 -31
  462. package/contracts/staking/IStakingService.sol +7 -16
  463. package/contracts/staking/Staking.sol +5 -4
  464. package/contracts/staking/StakingService.sol +2 -3
  465. package/contracts/staking/StakingStore.sol +3 -3
  466. package/contracts/staking/TargetHandler.sol +2 -2
  467. package/contracts/type/RequestId.sol +6 -0
  468. package/contracts/type/RiskId.sol +8 -8
  469. package/contracts/upgradeability/ProxyManager.sol +2 -2
  470. package/package.json +3 -3
@@ -6,9 +6,11 @@ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IER
6
6
 
7
7
  import {IAuthorization} from "../../authorization/IAuthorization.sol";
8
8
  import {IComponents} from "../../instance/module/IComponents.sol";
9
+ import {IPolicy} from "../../instance/module/IPolicy.sol";
9
10
 
10
11
  import {Amount, AmountLib} from "../../type/Amount.sol";
11
12
  import {ClaimId} from "../../type/ClaimId.sol";
13
+ import {Component} from "../../shared/Component.sol";
12
14
  import {FeeLib} from "../../type/Fee.sol";
13
15
  import {FlightLib} from "./FlightLib.sol";
14
16
  import {FlightMessageVerifier} from "./FlightMessageVerifier.sol";
@@ -21,7 +23,7 @@ import {ReferralLib} from "../../type/Referral.sol";
21
23
  import {RiskId, RiskIdLib} from "../../type/RiskId.sol";
22
24
  import {RequestId} from "../../type/RequestId.sol";
23
25
  import {Seconds, SecondsLib} from "../../type/Seconds.sol";
24
- import {Str} from "../../type/String.sol";
26
+ import {Str, StrLib} from "../../type/String.sol";
25
27
  import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
26
28
 
27
29
 
@@ -30,68 +32,46 @@ contract FlightProduct is
30
32
  Product
31
33
  {
32
34
 
33
- event LogRequestFlightRatings(uint256 requestId, bytes32 carrierFlightNumber, uint256 departureTime, uint256 arrivalTime, bytes32 riskId);
34
- event LogRequestFlightStatus(uint256 requestId, uint256 arrivalTime, bytes32 carrierFlightNumber, bytes32 departureYearMonthDay);
35
- event LogPayoutTransferred(bytes32 bpKey, uint256 claimId, uint256 payoutId, uint256 amount);
35
+ event LogFlightPolicyPurchased(NftId policyNftId, string flightData, Amount premiumAmount);
36
+ event LogFlightPolicyClosed(NftId policyNftId, Amount payoutAmount);
37
+
36
38
  event LogFlightStatusProcessed(RequestId requestId, RiskId riskId, bytes1 status, int256 delayMinutes, uint8 payoutOption);
37
39
  event LogFlightPoliciesProcessed(RiskId riskId, uint8 payoutOption, uint256 policiesProcessed, uint256 policiesRemaining);
38
40
 
39
- // TODO convert error logs to custom errors
40
- // event LogError(string error, uint256 index, uint256 stored, uint256 calculated);
41
- event LogPolicyExpired(bytes32 bpKey);
42
-
43
- event LogErrorRiskInvalid(RequestId requestId, RiskId riskId);
44
- event LogErrorUnprocessableStatus(RequestId requestId, RiskId riskId, bytes1 status);
45
- event LogErrorUnexpectedStatus(RequestId requestId, RiskId riskId, bytes1 status, int256 delayMinutes);
46
-
47
- error ErrorApplicationDataSignatureMismatch(address expectedSigner, address actualSigner);
48
- error ErrorFlightProductClusterRisk(Amount totalSumInsured, Amount maxTotalPayout);
49
- error ErrorFlightProductPremiumAmountTooSmall(Amount premiumAmount, Amount minPremium);
50
- error ErrorFlightProductPremiumAmountTooLarge(Amount premiumAmount, Amount maxPremium);
51
- error ErrorFlightProductArrivalBeforeDepartureTime(Timestamp departureTime, Timestamp arrivalTime);
52
- error ErrorFlightProductArrivalAfterMaxFlightDuration(Timestamp arrivalTime, Timestamp maxArrivalTime, Seconds maxDuration);
53
- error ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(Timestamp departureTime, Timestamp now, Seconds minTimeBeforeDeparture);
54
- error ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(Timestamp departureTime, Timestamp now, Seconds maxTimeBeforeDeparture);
55
- error ErrorFlightProductNotEnoughObservations(uint256 observations, uint256 minObservations);
56
-
57
41
  // solhint-disable
58
- // Minimum observations for valid prediction
59
- uint256 public immutable MIN_OBSERVATIONS = 10;
60
- // Minimum time before departure for applying
61
- Seconds public MIN_TIME_BEFORE_DEPARTURE = SecondsLib.fromDays(14);
62
- // Maximum time before departure for applying
63
- Seconds public MAX_TIME_BEFORE_DEPARTURE = SecondsLib.fromDays(90);
64
- // Maximum duration of flight
65
- Seconds public MAX_FLIGHT_DURATION = SecondsLib.fromDays(2);
66
- // Check for delay after .. minutes after scheduled arrival
67
- Seconds public CHECK_OFFSET = SecondsLib.fromHours(1);
68
- // Max time to process claims after departure
69
- Seconds public LIFETIME = SecondsLib.fromDays(30);
70
-
71
- // uint256 public constant MIN_PREMIUM = 15 * 10 ** 18; // production
72
- // All amounts in cent = multiplier is 10 ** 16!
73
42
  Amount public MIN_PREMIUM;
74
43
  Amount public MAX_PREMIUM;
75
44
  Amount public MAX_PAYOUT;
76
- Amount public MAX_TOTAL_PAYOUT; // Maximum risk per flight is 3x max payout.
45
+ Amount public MAX_TOTAL_PAYOUT; // Maximum risk per flight/risk
77
46
 
78
- // Maximum cumulated weighted premium per risk
79
- uint256 public MARGIN_PERCENT = 30;
80
-
81
- // Maximum number of policies to process in one callback
82
- uint8 public MAX_POLICIES_TO_PROCESS = 5;
47
+ // Minimum time before departure for applying
48
+ Seconds public MIN_TIME_BEFORE_DEPARTURE;
49
+ // Maximum time before departure for applying
50
+ Seconds public MAX_TIME_BEFORE_DEPARTURE;
51
+ // Maximum duration of flight
52
+ Seconds public MAX_FLIGHT_DURATION;
53
+ // Max time to process claims after departure
54
+ Seconds public LIFETIME;
83
55
 
84
56
  // ['observations','late15','late30','late45','cancelled','diverted']
85
57
  // no payouts for delays of 30' or less
86
- uint8[6] public WEIGHT_PATTERN = [0, 0, 0, 30, 50, 50];
87
- uint8 public constant MAX_WEIGHT = 50;
58
+ uint8[6] public WEIGHT_PATTERN;
59
+ // Minimum number of observations for valid prediction/premium calculation
60
+ uint256 public MIN_OBSERVATIONS;
61
+ // Maximum cumulated weighted premium per risk
62
+ uint256 public MARGIN_PERCENT;
63
+ // Maximum number of policies to process in one callback
64
+ uint8 public MAX_POLICIES_TO_PROCESS;
65
+ // solhint-enable
88
66
 
89
67
  bool internal _testMode;
90
68
 
69
+ mapping(RiskId riskId => RequestId requestId) internal _requests;
70
+ mapping(bytes32 encodedRisk => RiskId) internal _risks;
71
+
91
72
  // GIF V3 specifics
92
73
  NftId internal _defaultBundleNftId;
93
74
  NftId internal _oracleNftId;
94
- // solhint-enable
95
75
 
96
76
 
97
77
  struct FlightRisk {
@@ -103,16 +83,15 @@ contract FlightProduct is
103
83
  // this field contains static data required by the frontend and is not directly used by the product
104
84
  string arrivalTimeLocal; // example "2024-10-14T10:10:00.000 Asia/Seoul"
105
85
  Amount sumOfSumInsuredAmounts;
106
- // uint256 premiumMultiplier; // what is this? UFixed?
107
- // uint256 weight; // what is this? UFixed?
108
86
  bytes1 status; // 'L'ate, 'C'ancelled, 'D'iverted, ...
109
87
  int256 delayMinutes;
110
88
  uint8 payoutOption;
111
89
  Timestamp statusUpdatedAt;
112
90
  }
113
91
 
92
+
114
93
  struct ApplicationData {
115
- Str flightData;
94
+ string flightData;
116
95
  Timestamp departureTime;
117
96
  string departureTimeLocal;
118
97
  Timestamp arrivalTime;
@@ -135,7 +114,7 @@ contract FlightProduct is
135
114
 
136
115
  constructor(
137
116
  address registry,
138
- NftId instanceNftid,
117
+ NftId instanceNftId,
139
118
  string memory componentName,
140
119
  IAuthorization authorization
141
120
  )
@@ -144,12 +123,13 @@ contract FlightProduct is
144
123
 
145
124
  _initialize(
146
125
  registry,
147
- instanceNftid,
126
+ instanceNftId,
148
127
  componentName,
149
128
  authorization,
150
129
  initialOwner);
151
130
  }
152
131
 
132
+
153
133
  //--- external functions ------------------------------------------------//
154
134
  //--- unpermissioned functions ------------------------------------------//
155
135
 
@@ -160,6 +140,7 @@ contract FlightProduct is
160
140
  getNftId()).oracleNftId[0];
161
141
  }
162
142
 
143
+
163
144
  function calculatePayoutAmounts(
164
145
  FlightProduct flightProduct,
165
146
  Amount premium,
@@ -205,7 +186,7 @@ contract FlightProduct is
205
186
  policyNftId
206
187
  ) = _createPolicy(
207
188
  policyHolder,
208
- application.flightData,
189
+ StrLib.toStr(application.flightData),
209
190
  application.departureTime,
210
191
  application.departureTimeLocal,
211
192
  application.arrivalTime,
@@ -215,66 +196,6 @@ contract FlightProduct is
215
196
  }
216
197
 
217
198
 
218
- function _createPolicy(
219
- address policyHolder,
220
- Str flightData,
221
- Timestamp departureTime,
222
- string memory departureTimeLocal,
223
- Timestamp arrivalTime,
224
- string memory arrivalTimeLocal,
225
- Amount premiumAmount,
226
- uint256[6] memory statistics
227
- )
228
- internal
229
- virtual
230
- returns (
231
- RiskId riskId,
232
- NftId policyNftId
233
- )
234
- {
235
- // checks
236
- // disabled for now - using rbac for security
237
- FlightLib.checkApplicationData(
238
- this,
239
- flightData,
240
- departureTime,
241
- arrivalTime,
242
- premiumAmount);
243
-
244
- (riskId, policyNftId) = _prepareApplication(
245
- policyHolder,
246
- flightData,
247
- departureTime,
248
- departureTimeLocal,
249
- arrivalTime,
250
- arrivalTimeLocal,
251
- premiumAmount,
252
- statistics);
253
-
254
- _createPolicy(
255
- policyNftId,
256
- TimestampLib.zero(), // do not ativate yet
257
- premiumAmount); // max premium amount
258
-
259
- // interactions (token transfer + callback to token holder, if contract)
260
- _collectPremium(
261
- policyNftId,
262
- departureTime); // activate at scheduled departure time of flight
263
-
264
- // send oracle request for flight status (interacts with flight oracle contract)
265
- _sendRequest(
266
- _oracleNftId,
267
- abi.encode(
268
- FlightOracle.FlightStatusRequest(
269
- riskId,
270
- flightData,
271
- departureTime)),
272
- // allow up to 30 days to process the claim
273
- arrivalTime.addSeconds(SecondsLib.fromDays(30)),
274
- "flightStatusCallback");
275
- }
276
-
277
-
278
199
  /// @dev Callback for flight status oracle.
279
200
  /// Function may only be alled by oracle service.
280
201
  function flightStatusCallback(
@@ -292,31 +213,17 @@ contract FlightProduct is
292
213
  requestId,
293
214
  response.riskId,
294
215
  response.status,
295
- response.delayMinutes,
296
- MAX_POLICIES_TO_PROCESS);
216
+ response.delayMinutes);
297
217
  }
298
218
 
299
219
 
300
- /// @dev Manual fallback function for product owner.
301
- function processFlightStatus(
302
- RequestId requestId,
303
- RiskId riskId,
304
- bytes1 status,
305
- int256 delayMinutes,
306
- uint8 maxPoliciesToProcess
307
- )
220
+ function resendResponse(RequestId requestId)
308
221
  external
309
222
  virtual
310
223
  restricted()
311
- onlyOwner()
312
224
  {
313
- _processFlightStatus(
314
- requestId,
315
- riskId,
316
- status,
317
- delayMinutes,
318
- maxPoliciesToProcess);
319
- }
225
+ _resendResponse(requestId);
226
+ }
320
227
 
321
228
 
322
229
  /// @dev Manual fallback function for product owner.
@@ -339,22 +246,30 @@ contract FlightProduct is
339
246
 
340
247
  /// @dev Call after product registration with the instance
341
248
  /// when the product token/tokenhandler is available
342
- function completeSetup()
249
+ function setConstants(
250
+ Amount minPremium,
251
+ Amount maxPremium,
252
+ Amount maxPayout,
253
+ Amount maxTotalPayout,
254
+ Seconds minTimeBeforeDeparture,
255
+ Seconds maxTimeBeforeDeparture,
256
+ uint8 maxPoliciesToProcess
257
+ )
343
258
  external
344
259
  virtual
345
260
  restricted()
346
261
  onlyOwner()
347
262
  {
348
- IERC20Metadata token = IERC20Metadata(getToken());
349
- uint256 tokenMultiplier = 10 ** token.decimals();
350
-
351
- MIN_PREMIUM = AmountLib.toAmount(15 * tokenMultiplier);
352
- MAX_PREMIUM = AmountLib.toAmount(200 * tokenMultiplier);
353
- MAX_PAYOUT = AmountLib.toAmount(500 * tokenMultiplier);
354
- MAX_TOTAL_PAYOUT = AmountLib.toAmount(3 * MAX_PAYOUT.toInt());
263
+ MIN_PREMIUM = minPremium;
264
+ MAX_PREMIUM = maxPremium;
265
+ MAX_PAYOUT = maxPayout;
266
+ MAX_TOTAL_PAYOUT = maxTotalPayout;
267
+
268
+ MIN_TIME_BEFORE_DEPARTURE = minTimeBeforeDeparture;
269
+ MAX_TIME_BEFORE_DEPARTURE = maxTimeBeforeDeparture;
270
+ MAX_POLICIES_TO_PROCESS = maxPoliciesToProcess;
355
271
  }
356
272
 
357
-
358
273
  function setDefaultBundle(NftId bundleNftId) external restricted() onlyOwner() { _defaultBundleNftId = bundleNftId; }
359
274
  function setTestMode(bool testMode) external restricted() onlyOwner() { _testMode = testMode; }
360
275
 
@@ -382,6 +297,27 @@ contract FlightProduct is
382
297
 
383
298
  function getOracleNftId() public view returns (NftId oracleNftId) { return _oracleNftId; }
384
299
  function isTestMode() public view returns (bool) { return _testMode; }
300
+
301
+
302
+ function getFlightRisk(
303
+ RiskId riskId,
304
+ bool requireRiskExists
305
+ )
306
+ public
307
+ view
308
+ returns (
309
+ bool exists,
310
+ FlightRisk memory flightRisk
311
+ )
312
+ {
313
+ (exists, flightRisk) = FlightLib.getFlightRisk(
314
+ _getInstanceReader(),
315
+ getNftId(),
316
+ riskId,
317
+ requireRiskExists);
318
+ }
319
+
320
+ function getRequestForRisk(RiskId riskId) public view returns (RequestId requestId) { return _requests[riskId]; }
385
321
  function decodeFlightRiskData(bytes memory data) public pure returns (FlightRisk memory) { return abi.decode(data, (FlightRisk)); }
386
322
 
387
323
  //--- internal functions ------------------------------------------------//
@@ -408,6 +344,70 @@ contract FlightProduct is
408
344
  }
409
345
 
410
346
 
347
+ function _createPolicy(
348
+ address policyHolder,
349
+ Str flightData,
350
+ Timestamp departureTime,
351
+ string memory departureTimeLocal,
352
+ Timestamp arrivalTime,
353
+ string memory arrivalTimeLocal,
354
+ Amount premiumAmount,
355
+ uint256[6] memory statistics
356
+ )
357
+ internal
358
+ virtual
359
+ returns (
360
+ RiskId riskId,
361
+ NftId policyNftId
362
+ )
363
+ {
364
+ // checks
365
+ // disabled for now - using rbac for security
366
+ FlightLib.checkApplicationData(
367
+ this,
368
+ flightData,
369
+ departureTime,
370
+ arrivalTime,
371
+ premiumAmount);
372
+
373
+ (riskId, policyNftId) = _prepareApplication(
374
+ policyHolder,
375
+ flightData,
376
+ departureTime,
377
+ departureTimeLocal,
378
+ arrivalTime,
379
+ arrivalTimeLocal,
380
+ premiumAmount,
381
+ statistics);
382
+
383
+ _createPolicy(
384
+ policyNftId,
385
+ TimestampLib.zero(), // do not ativate yet
386
+ premiumAmount); // max premium amount
387
+
388
+ // interactions (token transfer + callback to token holder, if contract)
389
+ _collectPremium(
390
+ policyNftId,
391
+ departureTime); // activate at scheduled departure time of flight
392
+
393
+ // send oracle request for for new risk to obtain flight status (interacts with flight oracle contract)
394
+ if (_requests[riskId].eqz()) {
395
+ _requests[riskId] = _sendRequest(
396
+ _oracleNftId,
397
+ abi.encode(
398
+ FlightOracle.FlightStatusRequest(
399
+ riskId,
400
+ flightData,
401
+ departureTime)),
402
+ // allow up to 30 days to process the claim
403
+ arrivalTime.addSeconds(SecondsLib.fromDays(30)),
404
+ "flightStatusCallback");
405
+ }
406
+
407
+ emit LogFlightPolicyPurchased(policyNftId, flightData.toString(), premiumAmount);
408
+ }
409
+
410
+
411
411
  function _prepareApplication(
412
412
  address policyHolder,
413
413
  Str flightData,
@@ -508,26 +508,28 @@ contract FlightProduct is
508
508
  returns (RiskId riskId)
509
509
  {
510
510
  bool exists;
511
- FlightRisk memory flightRisk;
512
- (riskId, exists, flightRisk) = FlightLib.getFlightRisk(
513
- _getInstanceReader(),
514
- getNftId(),
511
+ FlightRisk memory flightRisk = FlightLib.getFlightRisk(
515
512
  flightData,
516
513
  departureTime,
517
514
  departureTimeLocal,
518
515
  arrivalTime,
519
516
  arrivalTimeLocal);
520
517
 
518
+ bytes32 riskKey = FlightLib.getRiskKey(flightData);
519
+ exists = _risks[riskKey].gtz();
520
+
521
521
  // create risk, if new
522
522
  if (!exists) {
523
- bytes32 riskKey = FlightLib.getRiskKey(flightData);
524
- _createRisk(riskKey, abi.encode(flightRisk));
523
+ riskId = _createRisk(abi.encode(flightRisk));
524
+ _risks[riskKey] = riskId;
525
+ } else {
526
+ riskId = _risks[riskKey];
525
527
  }
526
528
 
527
- // check for cluster risk: additional sum insured amount must not exceed MAX_TOTAL_PAYOUT
528
- if (flightRisk.sumOfSumInsuredAmounts + sumInsuredAmount > MAX_TOTAL_PAYOUT) {
529
- revert ErrorFlightProductClusterRisk(flightRisk.sumOfSumInsuredAmounts + sumInsuredAmount, MAX_TOTAL_PAYOUT);
530
- }
529
+ FlightLib.checkClusterRisk(
530
+ flightRisk.sumOfSumInsuredAmounts,
531
+ sumInsuredAmount,
532
+ MAX_TOTAL_PAYOUT);
531
533
 
532
534
  // update existing risk with additional sum insured amount
533
535
  flightRisk.sumOfSumInsuredAmounts = flightRisk.sumOfSumInsuredAmounts + sumInsuredAmount;
@@ -539,40 +541,28 @@ contract FlightProduct is
539
541
  RequestId requestId,
540
542
  RiskId riskId,
541
543
  bytes1 status,
542
- int256 delayMinutes,
543
- uint8 maxPoliciesToProcess
544
+ int256 delayMinutes
544
545
  )
545
546
  internal
546
547
  virtual
547
548
  {
548
549
  // check risk exists
549
- InstanceReader reader = _getInstanceReader();
550
- (
551
- bool exists,
552
- FlightRisk memory flightRisk
553
- ) = FlightLib.getFlightRisk(reader, getNftId(), riskId);
550
+ (, FlightRisk memory flightRisk) = getFlightRisk(riskId, true);
554
551
 
555
- if (!exists) {
556
- // TODO decide to switch from log to error
557
- emit LogErrorRiskInvalid(requestId, riskId);
558
- return;
559
- } else {
560
- // update status, if not yet set
561
- if (flightRisk.statusUpdatedAt.eqz()) {
562
- flightRisk.status = status;
563
- flightRisk.delayMinutes = delayMinutes;
564
- flightRisk.payoutOption = FlightLib.checkAndGetPayoutOption(
565
- requestId, riskId, status, delayMinutes);
566
- flightRisk.statusUpdatedAt = TimestampLib.current();
567
-
568
- _updateRisk(riskId, abi.encode(flightRisk));
569
- }
570
- // TODO revert in else case?
552
+ // update status, if not yet set
553
+ if (flightRisk.statusUpdatedAt.eqz()) {
554
+ flightRisk.statusUpdatedAt = TimestampLib.current();
555
+ flightRisk.status = status;
556
+ flightRisk.delayMinutes = delayMinutes;
557
+ flightRisk.payoutOption = FlightLib.checkAndGetPayoutOption(
558
+ requestId, riskId, status, delayMinutes);
559
+
560
+ _updateRisk(riskId, abi.encode(flightRisk));
571
561
  }
572
562
 
573
563
  (,, uint8 payoutOption) = _processPayoutsAndClosePolicies(
574
564
  riskId,
575
- maxPoliciesToProcess);
565
+ MAX_POLICIES_TO_PROCESS);
576
566
 
577
567
  // logging
578
568
  emit LogFlightStatusProcessed(requestId, riskId, status, delayMinutes, payoutOption);
@@ -603,25 +593,29 @@ contract FlightProduct is
603
593
  uint256 policiesToProcess = reader.policiesForRisk(riskId);
604
594
  uint256 policiesProcessed = policiesToProcess < maxPoliciesToProcess ? policiesToProcess : maxPoliciesToProcess;
605
595
 
606
- // go trough policies
596
+ // assemble array with policies to process
597
+ NftId [] memory policies = new NftId[](policiesProcessed);
607
598
  for (uint256 i = 0; i < policiesProcessed; i++) {
608
- NftId policyNftId = reader.getPolicyForRisk(riskId, i);
599
+ policies[i] = reader.getPolicyForRisk(riskId, i);
600
+ }
609
601
 
610
- // create payout (if any)
611
- if (payoutOption < type(uint8).max) {
612
- bytes memory applicationData = reader.getPolicyInfo(
613
- policyNftId).applicationData;
602
+ // go through policies
603
+ for (uint256 i = 0; i < policiesProcessed; i++) {
604
+ NftId policyNftId = policies[i];
605
+ Amount payoutAmount = FlightLib.getPayoutAmount(
606
+ reader.getPolicyInfo(policyNftId).applicationData,
607
+ payoutOption);
614
608
 
615
- _resolvePayout(
616
- policyNftId,
617
- FlightLib.getPayoutAmount(
618
- applicationData,
619
- payoutOption));
620
- }
609
+ // create claim/payout (if applicable)
610
+ _resolvePayout(
611
+ policyNftId,
612
+ payoutAmount);
621
613
 
622
614
  // expire and close policy
623
615
  _expire(policyNftId, TimestampLib.current());
624
616
  _close(policyNftId);
617
+
618
+ emit LogFlightPolicyClosed(policyNftId, payoutAmount);
625
619
  }
626
620
 
627
621
  // logging
@@ -636,6 +630,11 @@ contract FlightProduct is
636
630
  internal
637
631
  virtual
638
632
  {
633
+ // no action if no payout
634
+ if (payoutAmount.eqz()) {
635
+ return;
636
+ }
637
+
639
638
  // create confirmed claim
640
639
  ClaimId claimId = _submitClaim(policyNftId, payoutAmount, "");
641
640
  _confirmClaim(policyNftId, claimId, payoutAmount, "");
@@ -654,7 +653,7 @@ contract FlightProduct is
654
653
  address initialOwner
655
654
  )
656
655
  internal
657
- initializer
656
+ initializer()
658
657
  {
659
658
  __Product_init(
660
659
  registry,
@@ -681,5 +680,11 @@ contract FlightProduct is
681
680
  }),
682
681
  authorization,
683
682
  initialOwner); // number of oracles
683
+
684
+ MAX_FLIGHT_DURATION = SecondsLib.fromDays(2);
685
+ LIFETIME = SecondsLib.fromDays(30);
686
+ WEIGHT_PATTERN = [0, 0, 0, 30, 50, 50];
687
+ MIN_OBSERVATIONS = 10;
688
+ MARGIN_PERCENT = 30;
684
689
  }
685
690
  }
@@ -57,9 +57,10 @@ contract FlightProductAuthorization
57
57
 
58
58
  // authorize public role (additional authz via onlyOwner)
59
59
  functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
60
- _authorize(functions, FlightProduct.processFlightStatus.selector, "processFlightStatus");
60
+ _authorize(functions, FlightProduct.resendResponse.selector, "resendResponse");
61
61
  _authorize(functions, FlightProduct.processPayoutsAndClosePolicies.selector, "processPayoutsAndClosePolicies");
62
- _authorize(functions, FlightProduct.completeSetup.selector, "completeSetup");
62
+ _authorize(functions, FlightProduct.setConstants.selector, "setConstants");
63
+ _authorize(functions, FlightProduct.setTestMode.selector, "setTestMode");
63
64
  _authorize(functions, FlightProduct.setDefaultBundle.selector, "setDefaultBundle");
64
65
  _authorize(functions, FlightProduct.approveTokenHandler.selector, "approveTokenHandler");
65
66
  _authorize(functions, FlightProduct.setLocked.selector, "setLocked");
@@ -0,0 +1,49 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
5
+ import {IVersionable} from "../../upgradeability/IVersionable.sol";
6
+
7
+ import {NftId} from "../../type/NftId.sol";
8
+ import {ProxyManager} from "../../upgradeability/ProxyManager.sol";
9
+ import {FlightProduct} from "./FlightProduct.sol";
10
+
11
+
12
+ contract FlightProductManager is ProxyManager {
13
+
14
+ FlightProduct private _flightProduct;
15
+ bytes32 private _salt = "0x1234";
16
+
17
+ /// @dev initializes proxy manager with flight product implementation
18
+ constructor(
19
+ address registry,
20
+ NftId instanceNftId,
21
+ string memory componentName,
22
+ IAuthorization authorization
23
+ )
24
+ {
25
+ // FlightProduct prd = new FlightProduct{salt: _salt}();
26
+ // bytes memory data = abi.encode(
27
+ // registry,
28
+ // instanceNftId,
29
+ // componentName,
30
+ // authorization);
31
+
32
+ // IVersionable versionable = initialize(
33
+ // registry,
34
+ // address(prd),
35
+ // data,
36
+ // _salt);
37
+
38
+ // _flightProduct = FlightProduct(address(versionable));
39
+ }
40
+
41
+ //--- view functions ----------------------------------------------------//
42
+ function getFlightProduct()
43
+ external
44
+ view
45
+ returns (FlightProduct flightProduct)
46
+ {
47
+ return _flightProduct;
48
+ }
49
+ }
@@ -81,13 +81,9 @@ contract SimpleProduct is
81
81
 
82
82
 
83
83
  function createRisk(
84
- string memory id,
85
84
  bytes memory data
86
85
  ) public returns (RiskId) {
87
- return _createRisk(
88
- bytes32(abi.encodePacked(id)),
89
- data
90
- );
86
+ return _createRisk(data);
91
87
  }
92
88
 
93
89
  function updateRisk(
@@ -42,6 +42,8 @@ abstract contract BaseStore is
42
42
  metadata.objectType = objectType;
43
43
  metadata.state = initialState;
44
44
  metadata.updatedIn = blocknumber;
45
+
46
+ emit LogBaseStoreMetadataCreated(key32, objectType, initialState);
45
47
  }
46
48
 
47
49
  function _updateState(
@@ -73,6 +75,8 @@ abstract contract BaseStore is
73
75
 
74
76
  // update metadata
75
77
  metadata.updatedIn = BlocknumberLib.current();
78
+
79
+ emit LogBaseStoreMetadataUpdated(key32, oldState, state);
76
80
  }
77
81
 
78
82
  function exists(Key32 key32) public view returns (bool) {