@etherisc/gif-next 3.0.0-cf1abe2-268 → 3.0.0-d56146b-231

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 (490) hide show
  1. package/README.md +1 -0
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +72 -139
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +116 -110
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +33 -72
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +66 -89
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +101 -122
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +65 -20
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +55 -31
  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 +10 -20
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +42 -18
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +75 -126
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +65 -41
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -72
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +139 -198
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +150 -140
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +56 -84
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -71
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +104 -166
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +138 -200
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  50. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +604 -0
  51. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
  53. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1198 -0
  55. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +849 -0
  57. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  59. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  61. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2522 -0
  63. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +844 -0
  65. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
  67. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  68. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  69. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +102 -159
  71. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  72. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
  73. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  74. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +106 -163
  75. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +120 -177
  77. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  78. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
  79. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +114 -171
  81. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  82. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
  83. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  85. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +54 -49
  86. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  87. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  88. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +26 -78
  89. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  90. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +44 -83
  91. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  92. package/artifacts/contracts/instance/Instance.sol/Instance.json +51 -145
  93. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  94. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +147 -169
  95. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  96. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
  97. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  98. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +179 -77
  99. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +75 -138
  101. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -104
  103. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
  105. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  106. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
  107. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  108. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +58 -53
  109. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  110. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  111. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  112. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
  113. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  114. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  115. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  116. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  117. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  118. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +8 -3
  119. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  120. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  121. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  122. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  123. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  124. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  125. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  126. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  127. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  128. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +81 -132
  129. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  130. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
  131. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  132. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  133. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +66 -94
  134. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  135. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +83 -80
  136. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  137. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -82
  138. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  139. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +148 -149
  140. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +129 -111
  142. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  143. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +73 -88
  144. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  145. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
  146. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  147. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +117 -176
  148. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +139 -129
  150. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  151. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +32 -71
  152. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  153. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +72 -100
  154. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  155. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +86 -94
  156. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  157. package/artifacts/contracts/pool/Pool.sol/Pool.json +73 -88
  158. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  159. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +247 -24
  160. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  161. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +165 -233
  162. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +130 -140
  164. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  165. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +63 -138
  166. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  167. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +112 -110
  168. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  169. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +57 -72
  170. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  171. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
  172. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  173. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +115 -182
  174. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +138 -132
  176. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  177. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +32 -71
  178. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  179. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +32 -71
  180. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  181. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +64 -82
  182. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  183. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -82
  184. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  185. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +56 -84
  186. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  187. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +36 -75
  188. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  189. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +127 -173
  190. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  191. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
  192. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  193. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +128 -122
  194. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  195. package/artifacts/contracts/product/PricingService.sol/PricingService.json +94 -161
  196. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  197. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +122 -116
  198. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  199. package/artifacts/contracts/product/Product.sol/Product.json +57 -72
  200. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  201. package/artifacts/contracts/product/RiskService.sol/RiskService.json +63 -146
  202. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  203. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +107 -109
  204. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  205. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  206. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +56 -155
  207. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  208. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +216 -202
  209. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  210. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
  211. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  212. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/Registry.sol/Registry.json +96 -314
  214. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  215. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +142 -163
  216. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  217. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -57
  218. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  219. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +244 -285
  220. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  221. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +110 -115
  222. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  223. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +150 -159
  224. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  225. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  226. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  227. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +185 -127
  228. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  229. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
  230. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  231. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +29 -13
  232. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  233. package/artifacts/contracts/shared/Component.sol/Component.json +39 -84
  234. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  235. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +320 -164
  236. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  237. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -115
  238. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  239. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
  240. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  241. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  242. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  243. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  244. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  245. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
  246. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +633 -0
  247. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -96
  249. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +226 -82
  251. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  252. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +56 -84
  253. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  254. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  255. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +28 -1
  256. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  257. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
  258. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +25 -77
  260. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  261. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
  262. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  263. package/artifacts/contracts/shared/IService.sol/IService.json +32 -71
  264. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  265. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  266. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -72
  267. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  268. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  269. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  270. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  271. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +34 -15
  272. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  273. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
  274. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  275. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -76
  276. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  277. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
  278. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  279. package/artifacts/contracts/shared/Service.sol/Service.json +31 -70
  280. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  281. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +29 -42
  282. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  283. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +17 -30
  284. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  285. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  286. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  287. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +56 -101
  288. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  289. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +36 -75
  290. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  291. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  292. package/artifacts/contracts/staking/Staking.sol/Staking.json +109 -170
  293. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  294. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -26
  295. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  296. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +124 -112
  297. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  298. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
  299. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  300. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +65 -132
  301. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  302. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +111 -105
  303. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  304. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +204 -212
  305. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  306. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +19 -27
  307. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  308. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
  309. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  310. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  314. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  316. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  318. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  321. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  322. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  323. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  325. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  326. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  327. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
  329. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  331. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  333. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  335. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  336. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  337. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  339. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  341. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
  343. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
  348. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  350. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  352. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  353. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  354. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
  355. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  356. package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
  357. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  358. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +86 -63
  359. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  360. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  361. package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
  362. package/contracts/accounting/AccountingService.sol +6 -5
  363. package/contracts/accounting/AccountingServiceManager.sol +6 -4
  364. package/contracts/accounting/IAccountingService.sol +1 -1
  365. package/contracts/authorization/AccessAdmin.sol +18 -22
  366. package/contracts/authorization/AccessAdminLib.sol +11 -14
  367. package/contracts/authorization/AccessManagerCloneable.sol +48 -24
  368. package/contracts/authorization/Authorization.sol +2 -2
  369. package/contracts/authorization/IAccessAdmin.sol +3 -3
  370. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  371. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  372. package/contracts/distribution/BasicDistribution.sol +2 -0
  373. package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
  374. package/contracts/distribution/Distribution.sol +2 -0
  375. package/contracts/distribution/DistributionService.sol +20 -24
  376. package/contracts/distribution/DistributionServiceManager.sol +6 -4
  377. package/contracts/examples/fire/FirePool.sol +4 -0
  378. package/contracts/examples/fire/FireProduct.sol +4 -0
  379. package/contracts/examples/flight/FlightLib.sol +322 -0
  380. package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
  381. package/contracts/examples/flight/FlightOracle.sol +167 -0
  382. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  383. package/contracts/examples/flight/FlightPool.sol +89 -0
  384. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  385. package/contracts/examples/flight/FlightProduct.sol +651 -0
  386. package/contracts/examples/flight/FlightProductAuthorization.sol +45 -0
  387. package/contracts/examples/flight/FlightUSD.sol +28 -0
  388. package/contracts/examples/flight/originalV1.sol +396 -0
  389. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
  390. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
  391. package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
  392. package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
  393. package/contracts/instance/IInstance.sol +1 -1
  394. package/contracts/instance/Instance.sol +12 -8
  395. package/contracts/instance/InstanceAdmin.sol +17 -10
  396. package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
  397. package/contracts/instance/InstanceReader.sol +40 -18
  398. package/contracts/instance/InstanceService.sol +20 -18
  399. package/contracts/instance/InstanceServiceManager.sol +6 -4
  400. package/contracts/instance/base/Cloneable.sol +10 -4
  401. package/contracts/instance/base/ObjectSet.sol +2 -2
  402. package/contracts/oracle/BasicOracle.sol +2 -0
  403. package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
  404. package/contracts/oracle/IOracleService.sol +16 -12
  405. package/contracts/oracle/Oracle.sol +4 -3
  406. package/contracts/oracle/OracleService.sol +67 -37
  407. package/contracts/oracle/OracleServiceManager.sol +6 -4
  408. package/contracts/pool/BasicPool.sol +4 -2
  409. package/contracts/pool/BasicPoolAuthorization.sol +4 -5
  410. package/contracts/pool/BundleService.sol +19 -25
  411. package/contracts/pool/BundleServiceManager.sol +7 -5
  412. package/contracts/pool/IPoolService.sol +6 -5
  413. package/contracts/pool/Pool.sol +3 -1
  414. package/contracts/pool/PoolLib.sol +102 -5
  415. package/contracts/pool/PoolService.sol +101 -67
  416. package/contracts/pool/PoolServiceManager.sol +6 -4
  417. package/contracts/product/ApplicationService.sol +34 -13
  418. package/contracts/product/ApplicationServiceManager.sol +6 -4
  419. package/contracts/product/BasicProduct.sol +2 -0
  420. package/contracts/product/BasicProductAuthorization.sol +7 -7
  421. package/contracts/product/ClaimService.sol +34 -10
  422. package/contracts/product/ClaimServiceManager.sol +7 -5
  423. package/contracts/product/IPolicyService.sol +1 -0
  424. package/contracts/product/PolicyService.sol +57 -44
  425. package/contracts/product/PolicyServiceManager.sol +6 -4
  426. package/contracts/product/PricingService.sol +8 -7
  427. package/contracts/product/PricingServiceManager.sol +6 -4
  428. package/contracts/product/Product.sol +2 -0
  429. package/contracts/product/RiskService.sol +40 -8
  430. package/contracts/product/RiskServiceManager.sol +6 -4
  431. package/contracts/registry/IRegistry.sol +14 -20
  432. package/contracts/registry/IRegistryService.sol +14 -10
  433. package/contracts/registry/IRelease.sol +3 -0
  434. package/contracts/registry/Registry.sol +78 -124
  435. package/contracts/registry/RegistryAdmin.sol +22 -11
  436. package/contracts/registry/RegistryAuthorization.sol +3 -4
  437. package/contracts/registry/RegistryService.sol +82 -99
  438. package/contracts/registry/RegistryServiceManager.sol +11 -4
  439. package/contracts/registry/ReleaseAdmin.sol +16 -9
  440. package/contracts/registry/ReleaseRegistry.sol +74 -64
  441. package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
  442. package/contracts/registry/TokenRegistry.sol +15 -6
  443. package/contracts/shared/Component.sol +22 -27
  444. package/contracts/shared/ComponentService.sol +130 -45
  445. package/contracts/shared/ComponentServiceManager.sol +7 -5
  446. package/contracts/shared/ContractLib.sol +93 -359
  447. package/contracts/shared/EcdsaChecker.sol +5 -0
  448. package/contracts/shared/IAuthorizedComponent.sol +15 -0
  449. package/contracts/shared/IComponent.sol +3 -5
  450. package/contracts/shared/IComponentService.sol +14 -0
  451. package/contracts/shared/IInstanceLinkedComponent.sol +9 -9
  452. package/contracts/shared/INftOwnable.sol +2 -0
  453. package/contracts/shared/IRegisterable.sol +3 -14
  454. package/contracts/shared/IRegistryLinked.sol +3 -1
  455. package/contracts/shared/IService.sol +2 -2
  456. package/contracts/shared/InstanceLinkedComponent.sol +130 -39
  457. package/contracts/shared/NftOwnable.sol +22 -9
  458. package/contracts/shared/PolicyHolder.sol +4 -2
  459. package/contracts/shared/Registerable.sol +20 -37
  460. package/contracts/shared/RegistryLinked.sol +23 -4
  461. package/contracts/shared/Service.sol +9 -8
  462. package/contracts/shared/TokenHandler.sol +1 -4
  463. package/contracts/staking/IStaking.sol +2 -2
  464. package/contracts/staking/Staking.sol +33 -28
  465. package/contracts/staking/StakingLib.sol +1 -3
  466. package/contracts/staking/StakingManager.sol +6 -3
  467. package/contracts/staking/StakingReader.sol +17 -9
  468. package/contracts/staking/StakingService.sol +13 -16
  469. package/contracts/staking/StakingServiceManager.sol +8 -4
  470. package/contracts/staking/StakingStore.sol +8 -8
  471. package/contracts/staking/TargetHandler.sol +5 -4
  472. package/contracts/type/ObjectType.sol +2 -31
  473. package/contracts/type/Referral.sol +6 -0
  474. package/contracts/type/RequestIdSet.sol +62 -0
  475. package/contracts/type/Seconds.sol +4 -0
  476. package/contracts/type/String.sol +30 -0
  477. package/contracts/type/Timestamp.sol +10 -1
  478. package/contracts/type/Version.sol +16 -15
  479. package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
  480. package/contracts/upgradeability/ProxyManager.sol +54 -46
  481. package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
  482. package/package.json +2 -1
  483. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  484. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
  485. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  486. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
  487. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
  488. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
  489. package/contracts/shared/IVersionable.sol +0 -19
  490. package/contracts/shared/Versionable.sol +0 -47
@@ -16,6 +16,7 @@ contract FirePool is
16
16
  BasicPool
17
17
  {
18
18
  constructor(
19
+ address registry,
19
20
  NftId fireProductNftId,
20
21
  string memory componentName,
21
22
  IAuthorization authorization
@@ -23,6 +24,7 @@ contract FirePool is
23
24
  {
24
25
  address initialOwner = msg.sender;
25
26
  _intialize(
27
+ registry,
26
28
  fireProductNftId,
27
29
  componentName,
28
30
  IComponents.PoolInfo({
@@ -39,6 +41,7 @@ contract FirePool is
39
41
  }
40
42
 
41
43
  function _intialize(
44
+ address registry,
42
45
  NftId fireProductNftId,
43
46
  string memory componentName,
44
47
  IComponents.PoolInfo memory poolInfo,
@@ -49,6 +52,7 @@ contract FirePool is
49
52
  initializer
50
53
  {
51
54
  _initializeBasicPool(
55
+ registry,
52
56
  fireProductNftId,
53
57
  componentName,
54
58
  poolInfo,
@@ -65,6 +65,7 @@ contract FireProduct is
65
65
  mapping(uint256 fireId => mapping (NftId policyId => bool claimed)) private _claimed;
66
66
 
67
67
  constructor(
68
+ address registry,
68
69
  NftId instanceNftid,
69
70
  string memory componentName,
70
71
  IAuthorization authorization
@@ -73,6 +74,7 @@ contract FireProduct is
73
74
  address initialOwner = msg.sender;
74
75
 
75
76
  _initialize(
77
+ registry,
76
78
  instanceNftid,
77
79
  componentName,
78
80
  authorization,
@@ -80,6 +82,7 @@ contract FireProduct is
80
82
  }
81
83
 
82
84
  function _initialize(
85
+ address registry,
83
86
  NftId instanceNftId,
84
87
  string memory componentName,
85
88
  IAuthorization authorization,
@@ -89,6 +92,7 @@ contract FireProduct is
89
92
  initializer
90
93
  {
91
94
  _initializeBasicProduct(
95
+ registry,
92
96
  instanceNftId,
93
97
  componentName,
94
98
  IComponents.ProductInfo({
@@ -0,0 +1,322 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IPolicy} from "../../instance/module/IPolicy.sol";
5
+ import {IPolicyService} from "../../product/IPolicyService.sol";
6
+
7
+ import {Amount, AmountLib} from "../../type/Amount.sol";
8
+ import {FlightMessageVerifier} from "./FlightMessageVerifier.sol";
9
+ import {FlightProduct} from "./FlightProduct.sol";
10
+ import {InstanceReader} from "../../instance/InstanceReader.sol";
11
+ import {NftId} from "../../type/NftId.sol";
12
+ import {RequestId} from "../../type/RequestId.sol";
13
+ import {RiskId, RiskIdLib} from "../../type/RiskId.sol";
14
+ import {StateId} from "../../type/StateId.sol";
15
+ import {Str} from "../../type/String.sol";
16
+ import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
17
+
18
+
19
+ library FlightLib {
20
+
21
+ function checkApplicationDataAndSignature(
22
+ FlightProduct flightProduct,
23
+ Str flightData,
24
+ Timestamp departureTime,
25
+ Timestamp arrivalTime,
26
+ Amount premiumAmount,
27
+ uint256[6] memory statistics
28
+ // signature fields
29
+ // uint8 v,
30
+ // bytes32 r,
31
+ // bytes32 s
32
+ )
33
+ public
34
+ view
35
+ {
36
+ _checkApplicationData(flightProduct, premiumAmount, arrivalTime, departureTime);
37
+
38
+ // (
39
+ // address actualSigner,,
40
+ // bool success
41
+ // ) = flightProduct.getFlightMessageVerifier().verifyRatingsHash(
42
+ // flightData,
43
+ // departureTime,
44
+ // arrivalTime,
45
+ // premiumAmount,
46
+ // statistics,
47
+ // v, r, s);
48
+
49
+ // if (!success) {
50
+ // revert FlightProduct.ErrorApplicationDataSignatureMismatch(
51
+ // flightProduct.getFlightMessageVerifier().getExpectedSigner(),
52
+ // actualSigner);
53
+ // }
54
+ }
55
+
56
+
57
+ function _checkApplicationData(
58
+ FlightProduct flightProduct,
59
+ Amount premiumAmount,
60
+ Timestamp arrivalTime,
61
+ Timestamp departureTime
62
+ )
63
+ internal
64
+ view
65
+ {
66
+ // solhint-disable
67
+ if (premiumAmount < flightProduct.MIN_PREMIUM()) {
68
+ revert FlightProduct.ErrorFlightProductPremiumAmountTooSmall(premiumAmount, flightProduct.MIN_PREMIUM());
69
+ }
70
+ if (premiumAmount > flightProduct.MAX_PREMIUM()) {
71
+ revert FlightProduct.ErrorFlightProductPremiumAmountTooLarge(premiumAmount, flightProduct.MAX_PREMIUM());
72
+ }
73
+ if (arrivalTime <= departureTime) {
74
+ revert FlightProduct.ErrorFlightProductArrivalBeforeDepartureTime(departureTime, arrivalTime);
75
+ }
76
+
77
+ if (arrivalTime > departureTime.addSeconds(flightProduct.MAX_FLIGHT_DURATION())) {
78
+ revert FlightProduct.ErrorFlightProductArrivalAfterMaxFlightDuration(arrivalTime, departureTime, flightProduct.MAX_FLIGHT_DURATION());
79
+ }
80
+ if (departureTime < TimestampLib.current().addSeconds(flightProduct.MIN_TIME_BEFORE_DEPARTURE())) {
81
+ revert FlightProduct.ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MIN_TIME_BEFORE_DEPARTURE());
82
+ }
83
+ if (departureTime > TimestampLib.current().addSeconds(flightProduct.MAX_TIME_BEFORE_DEPARTURE())) {
84
+ revert FlightProduct.ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MAX_TIME_BEFORE_DEPARTURE());
85
+ }
86
+ // solhint-enable
87
+ }
88
+
89
+
90
+ // TODO fix or cleanup
91
+ // function checkApplication(
92
+ // FlightProduct flightProduct,
93
+ // Str carrierFlightNumber,
94
+ // Timestamp departureTime,
95
+ // Timestamp arrivalTime,
96
+ // Amount premium
97
+ // )
98
+ // external
99
+ // view
100
+ // returns (uint256 errors)
101
+ // {
102
+ // // Validate input parameters
103
+ // if (premium < flightProduct.MIN_PREMIUM()) { errors = errors | (uint256(1) << 0); }
104
+ // if (premium > flightProduct.MAX_PREMIUM()) { errors = errors | (uint256(1) << 1); }
105
+ // if (arrivalTime < departureTime) { errors = errors | (uint256(1) << 2); }
106
+ // if (arrivalTime > departureTime.addSeconds(flightProduct.MAX_FLIGHT_DURATION())) { errors = errors | (uint256(1) << 3); }
107
+ // if (departureTime < TimestampLib.current().addSeconds(flightProduct.MIN_TIME_BEFORE_DEPARTURE())) { errors = errors | (uint256(1) << 4); }
108
+ // if (departureTime > TimestampLib.current().addSeconds(flightProduct.MAX_TIME_BEFORE_DEPARTURE())) { errors = errors | (uint256(1) << 5); }
109
+
110
+ // (, bool exists, FlightProduct.FlightRisk memory flightRisk) = getFlightRisk(
111
+ // flightProduct.getInstanceReader(), flightProduct.getNftId(), carrierFlightNumber, departureTime, arrivalTime);
112
+
113
+ // if (exists) {
114
+ // Amount sumInsured = AmountLib.toAmount(premium.toInt() * flightRisk.premiumMultiplier);
115
+ // if (flightRisk.sumOfSumInsuredAmounts + sumInsured > flightProduct.MAX_TOTAL_PAYOUT()) {
116
+ // errors = errors | (uint256(1) << 6);
117
+ // }
118
+ // }
119
+
120
+ // return errors;
121
+ // }
122
+
123
+
124
+ /// @dev calculates payout option based on flight status and delay minutes.
125
+ /// Is not a view function as it emits log evens in case of unexpected status.
126
+ // TODO decide if reverts instead of log events could work too (and convert the function into a view function)
127
+ function checkAndGetPayoutOption(
128
+ RequestId requestId,
129
+ RiskId riskId,
130
+ bytes1 status,
131
+ int256 delayMinutes
132
+ )
133
+ public
134
+ returns (uint8 payoutOption)
135
+ {
136
+ // default: no payout
137
+ payoutOption = type(uint8).max;
138
+
139
+ // check status
140
+ if (status != "L" && status != "A" && status != "C" && status != "D") {
141
+ emit FlightProduct.LogErrorUnprocessableStatus(requestId, riskId, status);
142
+ return payoutOption;
143
+ }
144
+
145
+ if (status == "A") {
146
+ // todo: active, reschedule oracle call + 45 min
147
+ emit FlightProduct.LogErrorUnexpectedStatus(requestId, riskId, status, delayMinutes);
148
+ return payoutOption;
149
+ }
150
+
151
+ // trigger payout if applicable
152
+ if (status == "C") { payoutOption = 3; }
153
+ else if (status == "D") { payoutOption = 4; }
154
+ else if (delayMinutes >= 15 && delayMinutes < 30) { payoutOption = 0; }
155
+ else if (delayMinutes >= 30 && delayMinutes < 45) { payoutOption = 1; }
156
+ else if (delayMinutes >= 45) { payoutOption = 2; }
157
+ }
158
+
159
+
160
+ function calculateWeight(
161
+ FlightProduct flightProduct,
162
+ uint256[6] memory statistics
163
+ )
164
+ public
165
+ view
166
+ returns (uint256 weight)
167
+ {
168
+ // check we have enough observations
169
+ if (statistics[0] < flightProduct.MIN_OBSERVATIONS()) {
170
+ revert FlightProduct.ErrorFlightProductNotEnoughObservations(statistics[0], flightProduct.MIN_OBSERVATIONS());
171
+ }
172
+
173
+ weight = 0;
174
+ for (uint256 i = 1; i < 6; i++) {
175
+ weight += flightProduct.WEIGHT_PATTERN(i) * statistics[i] * 10000 / statistics[0];
176
+ }
177
+
178
+ // To avoid div0 in the payout section, we have to make a minimal assumption on weight
179
+ if (weight == 0) {
180
+ weight = 100000 / statistics[0];
181
+ }
182
+
183
+ // TODO comment on intended effect
184
+ weight = (weight * (100 + flightProduct.MARGIN_PERCENT())) / 100;
185
+ }
186
+
187
+
188
+ // REMARK: each flight may get different payouts depending on the latest statics
189
+ function calculatePayoutAmounts(
190
+ FlightProduct flightProduct,
191
+ Amount premium,
192
+ uint256[6] memory statistics
193
+ )
194
+ public
195
+ view
196
+ returns (
197
+ uint256 weight,
198
+ Amount[5] memory payoutAmounts,
199
+ Amount sumInsuredAmount // simply the max of payoutAmounts
200
+ )
201
+ {
202
+ if (premium < flightProduct.MIN_PREMIUM()) {
203
+ revert FlightProduct.ErrorFlightProductPremiumAmountTooSmall(premium, flightProduct.MIN_PREMIUM());
204
+ }
205
+ if (premium > flightProduct.MAX_PREMIUM()) {
206
+ revert FlightProduct.ErrorFlightProductPremiumAmountTooLarge(premium, flightProduct.MAX_PREMIUM());
207
+ }
208
+
209
+ sumInsuredAmount = AmountLib.zero();
210
+ weight = calculateWeight(flightProduct, statistics);
211
+
212
+ for (uint256 i = 0; i < 5; i++) {
213
+ Amount payoutAmount = AmountLib.toAmount(
214
+ premium.toInt() * flightProduct.WEIGHT_PATTERN(i + 1) * 10000 / weight);
215
+
216
+ // cap payout and update sum insured if applicable
217
+ if (payoutAmount > flightProduct.MAX_PAYOUT()) { payoutAmount = flightProduct.MAX_PAYOUT(); }
218
+ if (payoutAmount > sumInsuredAmount) { sumInsuredAmount = payoutAmount; }
219
+
220
+ payoutAmounts[i] = payoutAmount;
221
+ }
222
+ }
223
+
224
+
225
+ function getPayoutAmount(
226
+ bytes memory applicationData,
227
+ uint8 payoutOption
228
+ )
229
+ public
230
+ returns (Amount payoutAmount)
231
+ {
232
+ // retrieve payout amounts from application data
233
+ (, Amount[5] memory payoutAmounts) = abi.decode(
234
+ applicationData, (Amount, Amount[5]));
235
+
236
+ // get payout amount for selected option
237
+ payoutAmount = payoutAmounts[payoutOption];
238
+ }
239
+
240
+
241
+ function getFlightRisk(
242
+ InstanceReader reader,
243
+ NftId productNftId,
244
+ Str flightData,
245
+ Timestamp departureTime,
246
+ Timestamp arrivalTime
247
+ )
248
+ public
249
+ view
250
+ returns (
251
+ RiskId riskId,
252
+ bool exists,
253
+ FlightProduct.FlightRisk memory flightRisk
254
+ )
255
+ {
256
+ riskId = getRiskId(productNftId, flightData);
257
+ (exists, flightRisk) = getFlightRisk(reader, productNftId, riskId);
258
+
259
+ // create new risk if not existing
260
+ if (!exists) {
261
+ flightRisk = FlightProduct.FlightRisk({
262
+ flightData: flightData,
263
+ departureTime: departureTime,
264
+ arrivalTime: arrivalTime,
265
+ sumOfSumInsuredAmounts: AmountLib.toAmount(0),
266
+ status: bytes1(0),
267
+ delayMinutes: 0});
268
+ }
269
+ }
270
+
271
+
272
+ function getFlightRisk(
273
+ InstanceReader reader,
274
+ NftId productNftId,
275
+ RiskId riskId
276
+ )
277
+ public
278
+ view
279
+ returns (
280
+ bool exists,
281
+ FlightProduct.FlightRisk memory flightRisk
282
+ )
283
+ {
284
+ // check if risk exists
285
+ exists = reader.isProductRisk(productNftId, riskId);
286
+
287
+ // get risk data if risk exists
288
+ if (exists) {
289
+ flightRisk = abi.decode(
290
+ reader.getRiskInfo(riskId).data, (FlightProduct.FlightRisk));
291
+ }
292
+ }
293
+
294
+
295
+ function getRiskId(
296
+ NftId productNftId,
297
+ Str flightData
298
+ )
299
+ public
300
+ view
301
+ returns (RiskId riskId)
302
+ {
303
+ bytes32 riskKey = getRiskKey(flightData);
304
+ riskId = getRiskId(productNftId, riskKey);
305
+ }
306
+
307
+
308
+ function getRiskKey(
309
+ Str flightData
310
+ )
311
+ internal
312
+ pure
313
+ returns (bytes32 riskKey)
314
+ {
315
+ return keccak256(abi.encode(flightData));
316
+ }
317
+
318
+
319
+ function getRiskId(NftId productNftId, bytes32 riskKey) internal view returns (RiskId riskId) {
320
+ return RiskIdLib.toRiskId(productNftId, riskKey);
321
+ }
322
+ }
@@ -0,0 +1,128 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
5
+ import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol";
6
+ import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
7
+
8
+
9
+ import {Amount} from "../../type/Amount.sol";
10
+ import {Str} from "../../type/String.sol";
11
+ import {Timestamp} from "../../type/Timestamp.sol";
12
+
13
+ contract FlightMessageVerifier is
14
+ Ownable
15
+ {
16
+
17
+ error ErrorFlightMessageVerifierSignerZero();
18
+ error ErrorFlightMessageVerifierContractSignerNotSupported();
19
+
20
+ address private _expectedSigner;
21
+
22
+
23
+ constructor() Ownable(msg.sender) { }
24
+
25
+
26
+ function setExpectedSigner(address signer) external onlyOwner {
27
+ if (signer == address(0)) { revert ErrorFlightMessageVerifierSignerZero(); }
28
+ if (signer.code.length > 0) { revert ErrorFlightMessageVerifierContractSignerNotSupported(); }
29
+ _expectedSigner = signer;
30
+ }
31
+
32
+
33
+ function getExpectedSigner() external view returns(address) {
34
+ return _expectedSigner;
35
+ }
36
+
37
+ /// @dev creates digest hash based on application parameters
38
+ /// proposal:
39
+ /// use "LX 180 ZRH BKK 20241104" (23 chars, should be enough for all flights)
40
+ /// carriers, airports: https://www.iata.org/en/publications/directories/code-search/
41
+ /// flight numbers: https://en.wikipedia.org/wiki/Flight_number
42
+ /// instead of separate strings, coding/decoding done anyway off-chain
43
+ function getRatingsHash(
44
+ Str flightData,
45
+ Timestamp departureTime,
46
+ Timestamp arrivalTime,
47
+ Amount premiumAmount,
48
+ uint256[6] memory statistics
49
+ )
50
+ public
51
+ view
52
+ returns(bytes32)
53
+ {
54
+ return MessageHashUtils.toEthSignedMessageHash(
55
+ abi.encode(
56
+ flightData,
57
+ departureTime,
58
+ arrivalTime,
59
+ premiumAmount,
60
+ statistics));
61
+ }
62
+
63
+
64
+ function verifyRatingsHash(
65
+ Str flightData,
66
+ Timestamp departureTime,
67
+ Timestamp arrivalTime,
68
+ Amount premiumAmount,
69
+ uint256[6] memory statistics,
70
+ // bytes memory signature,
71
+ uint8 v,
72
+ bytes32 r,
73
+ bytes32 s
74
+ )
75
+ public
76
+ view
77
+ returns (
78
+ address actualSigner,
79
+ ECDSA.RecoverError errorStatus,
80
+ bool success
81
+ )
82
+ {
83
+ bytes32 messageHash = getRatingsHash(
84
+ flightData,
85
+ departureTime,
86
+ arrivalTime,
87
+ premiumAmount,
88
+ statistics);
89
+
90
+ (
91
+ actualSigner,
92
+ errorStatus,
93
+ ) = ECDSA.tryRecover(messageHash, v, r, s);
94
+
95
+ success = (
96
+ errorStatus == ECDSA.RecoverError.NoError
97
+ && actualSigner == _expectedSigner);
98
+ }
99
+
100
+
101
+ // TODO re-enable or cleanup
102
+ // function checkAndRegisterSignature (
103
+ // address policyHolder,
104
+ // address protectedWallet,
105
+ // uint256 protectedBalance,
106
+ // uint256 duration,
107
+ // uint256 bundleId,
108
+ // bytes32 signatureId,
109
+ // bytes calldata signature
110
+ // )
111
+ // external
112
+ // {
113
+ // bytes32 signatureHash = keccak256(abi.encode(signature));
114
+ // require(!_signatureIsUsed[signatureHash], "ERROR:DMH-001:SIGNATURE_USED");
115
+
116
+ // address signer = getSignerFromDigestAndSignature(
117
+ // protectedWallet,
118
+ // protectedBalance,
119
+ // duration,
120
+ // bundleId,
121
+ // signatureId,
122
+ // signature);
123
+
124
+ // require(policyHolder == signer, "ERROR:DMH-002:SIGNATURE_INVALID");
125
+
126
+ // _signatureIsUsed[signatureHash] = true;
127
+ // }
128
+ }
@@ -0,0 +1,167 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
5
+
6
+ import {FULFILLED} from "../../type/StateId.sol";
7
+ import {NftId} from "../../type/NftId.sol";
8
+ import {BasicOracle} from "../../oracle/BasicOracle.sol";
9
+ import {RequestId} from "../../type/RequestId.sol";
10
+ import {LibRequestIdSet} from "../../type/RequestIdSet.sol";
11
+ import {RiskId} from "../../type/RiskId.sol";
12
+ import {Str} from "../../type/String.sol";
13
+ import {Timestamp} from "../../type/Timestamp.sol";
14
+
15
+ contract FlightOracle is
16
+ BasicOracle
17
+ {
18
+
19
+ struct FlightStatusRequest {
20
+ RiskId riskId;
21
+ Str flightData; // "LX 180 ZRH BKK 20241104"
22
+ Timestamp departureTime; // is this needed or is flight number and date unique aready?
23
+ }
24
+
25
+ struct FlightStatusResponse {
26
+ RiskId riskId;
27
+ bytes1 status;
28
+ int256 delayMinutes;
29
+ }
30
+
31
+ event LogFlightOracleRequestReceived(RequestId requestId, NftId requesterId);
32
+ event LogFlightOracleResponseSent(RequestId requestId, bytes1 status, int256 delay);
33
+ event LogFlightOracleRequestCancelled(RequestId requestId);
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
+
39
+
40
+ constructor(
41
+ address registry,
42
+ NftId productNftId,
43
+ string memory componentName,
44
+ IAuthorization authorization
45
+ )
46
+ {
47
+ address initialOwner = msg.sender;
48
+ initialize(
49
+ registry,
50
+ productNftId,
51
+ authorization,
52
+ initialOwner,
53
+ componentName
54
+ );
55
+ }
56
+
57
+
58
+ function initialize(
59
+ address registry,
60
+ NftId productNftId,
61
+ IAuthorization authorization,
62
+ address initialOwner,
63
+ string memory name
64
+ )
65
+ public
66
+ virtual
67
+ initializer()
68
+ {
69
+ _initializeBasicOracle(
70
+ registry,
71
+ productNftId,
72
+ authorization,
73
+ initialOwner,
74
+ name);
75
+ }
76
+
77
+
78
+ function respondWithFlightStatus(
79
+ RequestId requestId,
80
+ bytes1 status,
81
+ int256 delayMinutes
82
+ )
83
+ external
84
+ restricted()
85
+ {
86
+ // obtain riskId for request
87
+ bytes memory requestData = _getInstanceReader().getRequestInfo(requestId).requestData;
88
+ (RiskId riskId,,) = abi.decode(requestData, (RiskId, Str, Timestamp));
89
+ // assemble response data
90
+ bytes memory responseData = abi.encode(
91
+ FlightStatusResponse ({
92
+ riskId: riskId,
93
+ status: status,
94
+ delayMinutes: delayMinutes}));
95
+
96
+ // logging
97
+ emit LogFlightOracleResponseSent(requestId, status, delayMinutes);
98
+
99
+ // effects + interaction (via framework to receiving component)
100
+ _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
+ }
112
+
113
+ //--- view functions ----------------------------------------------------//
114
+
115
+ // TODO decide if the code below should be moved to GIF
116
+ function activeRequests()
117
+ external
118
+ view
119
+ returns(uint256 numberOfRequests)
120
+ {
121
+ return LibRequestIdSet.size(_activeRequests);
122
+ }
123
+
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
+ //--- internal functions ------------------------------------------------//
135
+
136
+ /// @dev use case specific handling of oracle requests
137
+ /// for now only log is emitted to verify that request has been received by oracle component
138
+ function _request(
139
+ RequestId requestId,
140
+ NftId requesterId,
141
+ bytes calldata requestData,
142
+ Timestamp expiryAt
143
+ )
144
+ internal
145
+ virtual override
146
+ {
147
+ FlightStatusRequest memory request = abi.decode(requestData, (FlightStatusRequest));
148
+
149
+ // TODO decide if the line below should be moved to GIF
150
+ LibRequestIdSet.add(_activeRequests, requestId);
151
+ emit LogFlightOracleRequestReceived(requestId, requesterId);
152
+ }
153
+
154
+
155
+ /// @dev use case specific handling of oracle requests
156
+ /// for now only log is emitted to verify that cancelling has been received by oracle component
157
+ function _cancel(
158
+ RequestId requestId
159
+ )
160
+ internal
161
+ virtual override
162
+ {
163
+ // TODO decide if the line below should be moved to GIF
164
+ LibRequestIdSet.remove(_activeRequests, requestId);
165
+ emit LogFlightOracleRequestCancelled(requestId);
166
+ }
167
+ }