@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
@@ -0,0 +1,651 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";
5
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
+
7
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
8
+ import {IComponents} from "../../instance/module/IComponents.sol";
9
+
10
+ import {Amount, AmountLib} from "../../type/Amount.sol";
11
+ import {BasicProduct} from "../../product/BasicProduct.sol";
12
+ import {ClaimId} from "../../type/ClaimId.sol";
13
+ import {FeeLib} from "../../type/Fee.sol";
14
+ import {FlightLib} from "./FlightLib.sol";
15
+ import {FlightMessageVerifier} from "./FlightMessageVerifier.sol";
16
+ import {FlightOracle} from "./FlightOracle.sol";
17
+ import {InstanceReader} from "../../instance/InstanceReader.sol";
18
+ import {NftId, NftIdLib} from "../../type/NftId.sol";
19
+ import {PayoutId} from "../../type/PayoutId.sol";
20
+ import {ReferralLib} from "../../type/Referral.sol";
21
+ import {RiskId, RiskIdLib} from "../../type/RiskId.sol";
22
+ import {RequestId} from "../../type/RequestId.sol";
23
+ import {Seconds, SecondsLib} from "../../type/Seconds.sol";
24
+ import {Str} from "../../type/String.sol";
25
+ import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
26
+
27
+
28
+ /// @dev FlightProduct implements the flight delay product.
29
+ contract FlightProduct is
30
+ BasicProduct
31
+ {
32
+
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);
36
+ event LogFlightStatusProcessed(RequestId requestId, RiskId riskId, bytes1 status, int256 delayMinutes, uint8 payoutOption);
37
+
38
+ // TODO convert error logs to custom errors
39
+ event LogError(string error, uint256 index, uint256 stored, uint256 calculated);
40
+ event LogPolicyExpired(bytes32 bpKey);
41
+
42
+ event LogErrorRiskInvalid(RequestId requestId, RiskId riskId);
43
+ event LogErrorUnprocessableStatus(RequestId requestId, RiskId riskId, bytes1 status);
44
+ event LogErrorUnexpectedStatus(RequestId requestId, RiskId riskId, bytes1 status, int256 delayMinutes);
45
+
46
+ error ErrorApplicationDataSignatureMismatch(address expectedSigner, address actualSigner);
47
+ error ErrorFlightProductClusterRisk(Amount totalSumInsured, Amount maxTotalPayout);
48
+ error ErrorFlightProductPremiumAmountTooSmall(Amount premiumAmount, Amount minPremium);
49
+ error ErrorFlightProductPremiumAmountTooLarge(Amount premiumAmount, Amount maxPremium);
50
+ error ErrorFlightProductArrivalBeforeDepartureTime(Timestamp departureTime, Timestamp arrivalTime);
51
+ error ErrorFlightProductArrivalAfterMaxFlightDuration(Timestamp arrivalTime, Timestamp maxArrivalTime, Seconds maxDuration);
52
+ error ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(Timestamp departureTime, Timestamp now, Seconds minTimeBeforeDeparture);
53
+ error ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(Timestamp departureTime, Timestamp now, Seconds maxTimeBeforeDeparture);
54
+ error ErrorFlightProductNotEnoughObservations(uint256 observations, uint256 minObservations);
55
+
56
+ // solhint-disable
57
+ // Minimum observations for valid prediction
58
+ uint256 public immutable MIN_OBSERVATIONS = 10;
59
+ // Minimum time before departure for applying
60
+ Seconds public MIN_TIME_BEFORE_DEPARTURE = SecondsLib.fromDays(14);
61
+ // Maximum time before departure for applying
62
+ Seconds public MAX_TIME_BEFORE_DEPARTURE = SecondsLib.fromDays(90);
63
+ // Maximum duration of flight
64
+ Seconds public MAX_FLIGHT_DURATION = SecondsLib.fromDays(2);
65
+ // Check for delay after .. minutes after scheduled arrival
66
+ Seconds public CHECK_OFFSET = SecondsLib.fromHours(1);
67
+ // Max time to process claims after departure
68
+ Seconds public LIFETIME = SecondsLib.fromDays(30);
69
+
70
+ // uint256 public constant MIN_PREMIUM = 15 * 10 ** 18; // production
71
+ // All amounts in cent = multiplier is 10 ** 16!
72
+ Amount public MIN_PREMIUM;
73
+ Amount public MAX_PREMIUM;
74
+ Amount public MAX_PAYOUT;
75
+ Amount public MAX_TOTAL_PAYOUT; // Maximum risk per flight is 3x max payout.
76
+
77
+ // Maximum cumulated weighted premium per risk
78
+ uint256 public MARGIN_PERCENT = 30;
79
+
80
+ // Maximum number of policies to process in one callback
81
+ uint8 public MAX_POLICIES_TO_PROCESS = 5;
82
+
83
+ // ['observations','late15','late30','late45','cancelled','diverted']
84
+ // no payouts for delays of 30' or less
85
+ uint8[6] public WEIGHT_PATTERN = [0, 0, 0, 30, 50, 50];
86
+ uint8 public constant MAX_WEIGHT = 50;
87
+
88
+ // GIF V3 specifics
89
+ NftId internal _defaultBundleNftId;
90
+
91
+ // TODO add product (base contract) functions
92
+ // - getOracleNftId(idx)
93
+ // - getDistributionNftId()
94
+ // - getPoolNftId()
95
+ NftId internal _oracleNftId; // TODO refactor to getOracleNftId(0)
96
+ // solhint-enable
97
+
98
+ FlightMessageVerifier internal _flightMessageVerifier;
99
+
100
+
101
+ struct FlightRisk {
102
+ Str flightData; // example: "LX 180 ZRH BKK 20241104"
103
+ Timestamp departureTime;
104
+ Timestamp arrivalTime;
105
+ Amount sumOfSumInsuredAmounts;
106
+ // uint256 premiumMultiplier; // what is this? UFixed?
107
+ // uint256 weight; // what is this? UFixed?
108
+ bytes1 status; // 'L'ate, 'C'ancelled, 'D'iverted, ...
109
+ int256 delayMinutes;
110
+ }
111
+
112
+ struct ApplicationData {
113
+ Str flightData;
114
+ Timestamp departureTime;
115
+ Timestamp arrivalTime;
116
+ Amount premiumAmount;
117
+ uint256[6] statistics;
118
+ uint8 v;
119
+ bytes32 r;
120
+ bytes32 s;
121
+ }
122
+
123
+ struct PermitData {
124
+ address owner;
125
+ address spender;
126
+ uint256 value;
127
+ uint256 deadline;
128
+ uint8 v;
129
+ bytes32 r;
130
+ bytes32 s;
131
+ }
132
+
133
+
134
+ constructor(
135
+ address registry,
136
+ NftId instanceNftid,
137
+ string memory componentName,
138
+ IAuthorization authorization,
139
+ FlightMessageVerifier messageVerifier
140
+ )
141
+ {
142
+ address initialOwner = msg.sender;
143
+
144
+ _initialize(
145
+ registry,
146
+ instanceNftid,
147
+ componentName,
148
+ authorization,
149
+ initialOwner);
150
+
151
+ _flightMessageVerifier = messageVerifier;
152
+ }
153
+
154
+ //--- external functions ------------------------------------------------//
155
+ //--- unpermissioned functions ------------------------------------------//
156
+
157
+ function setOracleNftId()
158
+ external
159
+ {
160
+ _oracleNftId = _getInstanceReader().getProductInfo(
161
+ getNftId()).oracleNftId[0];
162
+ }
163
+
164
+ function calculatePayoutAmounts(
165
+ FlightProduct flightProduct,
166
+ Amount premium,
167
+ uint256[6] memory statistics
168
+ )
169
+ external
170
+ view
171
+ returns (
172
+ uint256 weight,
173
+ Amount[5] memory payoutAmounts,
174
+ Amount sumInsuredAmount // simply the max of payoutAmounts
175
+ )
176
+ {
177
+ return FlightLib.calculatePayoutAmounts(
178
+ flightProduct,
179
+ premium,
180
+ statistics);
181
+ }
182
+
183
+ /// @dev Creates a policy using a permit for the policy holder.
184
+ /// The policy holder is defined as the owner parameter of the permit data.
185
+ /// NOTE: This function makes the assumption that the product token
186
+ /// supports permits. This assumption is not verfied.
187
+ function createPolicyWithPermit(
188
+ PermitData memory permit,
189
+ ApplicationData memory application
190
+ )
191
+ external
192
+ virtual
193
+ restricted()
194
+ returns (
195
+ RiskId riskId,
196
+ NftId policyNftId
197
+ )
198
+ {
199
+ // process permit data
200
+ processPermit(permit);
201
+
202
+ // create policy
203
+ address policyHolder = permit.owner;
204
+ (
205
+ riskId,
206
+ policyNftId
207
+ ) = createPolicy(
208
+ policyHolder,
209
+ application.flightData,
210
+ application.departureTime,
211
+ application.arrivalTime,
212
+ application.premiumAmount,
213
+ application.statistics);
214
+ // application.v,
215
+ // application.r,
216
+ // application.s);
217
+ }
218
+
219
+
220
+ function processPermit(
221
+ PermitData memory permit
222
+ )
223
+ public
224
+ virtual
225
+ restricted()
226
+ {
227
+ address tokenAddress = address(getToken());
228
+
229
+ // process permit data
230
+ ERC20Permit(tokenAddress).permit(
231
+ permit.owner,
232
+ permit.spender,
233
+ permit.value,
234
+ permit.deadline,
235
+ permit.v,
236
+ permit.r,
237
+ permit.s);
238
+ }
239
+
240
+
241
+ function createPolicy(
242
+ address policyHolder,
243
+ Str flightData,
244
+ Timestamp departureTime,
245
+ Timestamp arrivalTime,
246
+ Amount premiumAmount,
247
+ uint256[6] memory statistics
248
+ // signature fields
249
+ // uint8 v,
250
+ // bytes32 r,
251
+ // bytes32 s
252
+ )
253
+ public
254
+ virtual
255
+ restricted()
256
+ returns (
257
+ RiskId riskId,
258
+ NftId policyNftId
259
+ )
260
+ {
261
+ // checks
262
+ // disabled for now - using rbac for security
263
+ FlightLib.checkApplicationDataAndSignature(
264
+ this,
265
+ flightData,
266
+ departureTime,
267
+ arrivalTime,
268
+ premiumAmount,
269
+ statistics);
270
+ // v, r, s);
271
+
272
+ (riskId, policyNftId) = _prepareApplication(
273
+ policyHolder,
274
+ flightData,
275
+ departureTime,
276
+ arrivalTime,
277
+ premiumAmount,
278
+ statistics);
279
+
280
+ _createPolicy(
281
+ policyNftId,
282
+ TimestampLib.zero(), // do not ativate yet
283
+ premiumAmount); // max premium amount
284
+
285
+ // interactions (token transfer + callback to token holder, if contract)
286
+ _collectPremium(
287
+ policyNftId,
288
+ departureTime); // activate at scheduled departure time of flight
289
+
290
+ // send oracle request for flight status (interacts with flight oracle contract)
291
+ _sendRequest(
292
+ _oracleNftId,
293
+ abi.encode(
294
+ FlightOracle.FlightStatusRequest(
295
+ riskId,
296
+ flightData,
297
+ departureTime)),
298
+ // allow up to 30 days to process the claim
299
+ arrivalTime.addSeconds(SecondsLib.fromDays(30)),
300
+ "flightStatusCallback");
301
+ }
302
+
303
+
304
+ function _prepareApplication(
305
+ address policyHolder,
306
+ Str flightData,
307
+ Timestamp departureTime,
308
+ Timestamp arrivalTime,
309
+ Amount premiumAmount,
310
+ uint256[6] memory statistics
311
+ )
312
+ internal
313
+ virtual
314
+ returns (
315
+ RiskId riskId,
316
+ NftId policyNftId
317
+ )
318
+ {
319
+ Amount[5] memory payoutAmounts;
320
+ Amount sumInsuredAmount;
321
+
322
+ (
323
+ riskId,
324
+ payoutAmounts,
325
+ sumInsuredAmount
326
+ ) = _createRiskAndPayoutAmounts(
327
+ flightData,
328
+ departureTime,
329
+ arrivalTime,
330
+ premiumAmount,
331
+ statistics);
332
+
333
+ policyNftId = _createApplication(
334
+ policyHolder,
335
+ riskId,
336
+ sumInsuredAmount,
337
+ premiumAmount,
338
+ LIFETIME,
339
+ _defaultBundleNftId,
340
+ ReferralLib.zero(),
341
+ abi.encode(
342
+ premiumAmount,
343
+ payoutAmounts)); // application data
344
+ }
345
+
346
+
347
+ /// @dev Callback for flight status oracle.
348
+ /// Function may only be alled by oracle service.
349
+ function flightStatusCallback(
350
+ RequestId requestId,
351
+ bytes memory responseData
352
+ )
353
+ external
354
+ virtual
355
+ restricted()
356
+ {
357
+ FlightOracle.FlightStatusResponse memory response = abi.decode(
358
+ responseData, (FlightOracle.FlightStatusResponse));
359
+
360
+ _processFlightStatus(
361
+ requestId,
362
+ response.riskId,
363
+ response.status,
364
+ response.delayMinutes,
365
+ MAX_POLICIES_TO_PROCESS);
366
+ }
367
+
368
+
369
+ /// @dev Manual fallback function for product owner.
370
+ function processFlightStatus(
371
+ RequestId requestId,
372
+ RiskId riskId,
373
+ bytes1 status,
374
+ int256 delayMinutes,
375
+ uint8 maxPoliciesToProcess
376
+ )
377
+ external
378
+ virtual
379
+ restricted()
380
+ onlyOwner()
381
+ {
382
+ _processFlightStatus(
383
+ requestId,
384
+ riskId,
385
+ status,
386
+ delayMinutes,
387
+ maxPoliciesToProcess);
388
+ }
389
+
390
+ //--- owner functions ---------------------------------------------------//
391
+
392
+ /// @dev Call after product registration with the instance, when the product token/tokenhandler is available
393
+ function completeSetup()
394
+ external
395
+ virtual
396
+ restricted()
397
+ onlyOwner()
398
+ {
399
+ IERC20Metadata token = IERC20Metadata(getToken());
400
+ uint256 tokenMultiplier = 10 ** token.decimals();
401
+
402
+ MIN_PREMIUM = AmountLib.toAmount(15 * tokenMultiplier);
403
+ MAX_PREMIUM = AmountLib.toAmount(200 * tokenMultiplier);
404
+ MAX_PAYOUT = AmountLib.toAmount(500 * tokenMultiplier);
405
+ MAX_TOTAL_PAYOUT = AmountLib.toAmount(3 * MAX_PAYOUT.toInt());
406
+ }
407
+
408
+
409
+ function setDefaultBundle(NftId bundleNftId) external restricted() onlyOwner() { _defaultBundleNftId = bundleNftId; }
410
+ function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
411
+ function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
412
+ function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
413
+
414
+
415
+ //--- view functions ----------------------------------------------------//
416
+
417
+
418
+ function calculateNetPremium(
419
+ Amount, // sumInsuredAmount: not used in this product
420
+ RiskId, // riskId: not used in this product
421
+ Seconds, // lifetime: not used in this product, a flight is a one time risk
422
+ bytes memory applicationData // holds the premium amount the customer is willing to pay
423
+ )
424
+ external
425
+ virtual override
426
+ view
427
+ returns (Amount netPremiumAmount)
428
+ {
429
+ (netPremiumAmount, ) = abi.decode(applicationData, (Amount, Amount[5]));
430
+ }
431
+
432
+
433
+ function getFlightMessageVerifier()
434
+ external
435
+ view
436
+ returns (FlightMessageVerifier)
437
+ {
438
+ return _flightMessageVerifier;
439
+ }
440
+
441
+
442
+ function getOracleNftId()
443
+ public
444
+ view
445
+ returns (NftId oracleNftId)
446
+ {
447
+ return _oracleNftId;
448
+ }
449
+
450
+
451
+ //--- internal functions ------------------------------------------------//
452
+
453
+
454
+ function _createRiskAndPayoutAmounts(
455
+ Str flightData,
456
+ Timestamp departureTime,
457
+ Timestamp arrivalTime,
458
+ Amount premiumAmount,
459
+ uint256[6] memory statistics
460
+ )
461
+ internal
462
+ virtual
463
+ returns (
464
+ RiskId riskId,
465
+ Amount[5] memory payoutAmounts,
466
+ Amount sumInsuredAmount
467
+ )
468
+ {
469
+ uint256 weight;
470
+
471
+ (
472
+ weight,
473
+ payoutAmounts,
474
+ sumInsuredAmount
475
+ ) = FlightLib.calculatePayoutAmounts(
476
+ this,
477
+ premiumAmount,
478
+ statistics);
479
+
480
+ riskId = _checkAndUpdateFlightRisk(
481
+ flightData,
482
+ departureTime,
483
+ arrivalTime,
484
+ sumInsuredAmount,
485
+ weight);
486
+ }
487
+
488
+
489
+ function _checkAndUpdateFlightRisk(
490
+ Str flightData,
491
+ Timestamp departureTime,
492
+ Timestamp arrivalTime,
493
+ Amount sumInsuredAmount,
494
+ uint256 weight
495
+ )
496
+ internal
497
+ virtual
498
+ returns (RiskId riskId)
499
+ {
500
+ bool exists;
501
+ FlightRisk memory flightRisk;
502
+ (riskId, exists, flightRisk) = FlightLib.getFlightRisk(
503
+ _getInstanceReader(),
504
+ getNftId(),
505
+ flightData,
506
+ departureTime,
507
+ arrivalTime);
508
+
509
+ // create risk, if new
510
+ if (!exists) {
511
+ bytes32 riskKey = FlightLib.getRiskKey(flightData);
512
+ _createRisk(riskKey, abi.encode(flightRisk));
513
+ }
514
+
515
+ // check for cluster risk: additional sum insured amount must not exceed MAX_TOTAL_PAYOUT
516
+ if (flightRisk.sumOfSumInsuredAmounts + sumInsuredAmount > MAX_TOTAL_PAYOUT) {
517
+ revert ErrorFlightProductClusterRisk(flightRisk.sumOfSumInsuredAmounts + sumInsuredAmount, MAX_TOTAL_PAYOUT);
518
+ }
519
+
520
+ // update existing risk with additional sum insured amount
521
+ flightRisk.sumOfSumInsuredAmounts = flightRisk.sumOfSumInsuredAmounts + sumInsuredAmount;
522
+ _updateRisk(riskId, abi.encode(flightRisk));
523
+ }
524
+
525
+
526
+ function _processFlightStatus(
527
+ RequestId requestId,
528
+ RiskId riskId,
529
+ bytes1 status,
530
+ int256 delayMinutes,
531
+ uint8 maxPoliciesToProcess
532
+ )
533
+ internal
534
+ virtual
535
+ {
536
+ // check risk exists
537
+ InstanceReader reader = _getInstanceReader();
538
+ (
539
+ bool exists,
540
+ FlightRisk memory flightRisk
541
+ ) = FlightLib.getFlightRisk(reader, getNftId(), riskId);
542
+
543
+ if (!exists) {
544
+ emit LogErrorRiskInvalid(requestId, riskId);
545
+ return;
546
+ }
547
+
548
+ uint8 payoutOption = FlightLib.checkAndGetPayoutOption(
549
+ requestId, riskId, status, delayMinutes);
550
+
551
+ _processPayoutsAndClosePolicies(
552
+ riskId,
553
+ payoutOption,
554
+ maxPoliciesToProcess);
555
+
556
+ // logging
557
+ emit LogFlightStatusProcessed(requestId, riskId, status, delayMinutes, payoutOption);
558
+ }
559
+
560
+
561
+ // REMARK caller responsible to check that risk exists.
562
+ function _processPayoutsAndClosePolicies(
563
+ RiskId riskId,
564
+ uint8 payoutOption,
565
+ uint8 maxPoliciesToProcess
566
+ )
567
+ internal
568
+ virtual
569
+ {
570
+ // determine numbers of policies to process
571
+ InstanceReader reader = _getInstanceReader();
572
+ uint256 policiesToProcess = reader.policiesForRisk(riskId);
573
+ policiesToProcess = policiesToProcess < maxPoliciesToProcess ? policiesToProcess : maxPoliciesToProcess;
574
+
575
+ // go trough policies
576
+ for (uint256 i = 0; i < policiesToProcess; i++) {
577
+ NftId policyNftId = reader.getPolicyForRisk(riskId, i);
578
+
579
+ // create payout (if any)
580
+ if (payoutOption < type(uint8).max) {
581
+ bytes memory applicationData = reader.getPolicyInfo(
582
+ policyNftId).applicationData;
583
+
584
+ _resolvePayout(
585
+ policyNftId,
586
+ FlightLib.getPayoutAmount(
587
+ applicationData,
588
+ payoutOption));
589
+ }
590
+
591
+ // expire and close policy
592
+ _expire(policyNftId, TimestampLib.current());
593
+ _close(policyNftId);
594
+ }
595
+ }
596
+
597
+
598
+ function _resolvePayout(
599
+ NftId policyNftId,
600
+ Amount payoutAmount
601
+ )
602
+ internal
603
+ virtual
604
+ {
605
+ // create confirmed claim
606
+ ClaimId claimId = _submitClaim(policyNftId, payoutAmount, "");
607
+ _confirmClaim(policyNftId, claimId, payoutAmount, "");
608
+
609
+ // create and execute payout
610
+ PayoutId payoutId = _createPayout(policyNftId, claimId, payoutAmount, "");
611
+ _processPayout(policyNftId, payoutId);
612
+ }
613
+
614
+
615
+ function _initialize(
616
+ address registry,
617
+ NftId instanceNftId,
618
+ string memory componentName,
619
+ IAuthorization authorization,
620
+ address initialOwner
621
+ )
622
+ internal
623
+ initializer
624
+ {
625
+ _initializeBasicProduct(
626
+ registry,
627
+ instanceNftId,
628
+ componentName,
629
+ IComponents.ProductInfo({
630
+ isProcessingFundedClaims: false,
631
+ isInterceptingPolicyTransfers: false,
632
+ hasDistribution: false,
633
+ expectedNumberOfOracles: 1,
634
+ numberOfOracles: 0,
635
+ poolNftId: NftIdLib.zero(),
636
+ distributionNftId: NftIdLib.zero(),
637
+ oracleNftId: new NftId[](0)
638
+ }),
639
+ IComponents.FeeInfo({
640
+ productFee: FeeLib.zero(),
641
+ processingFee: FeeLib.zero(),
642
+ distributionFee: FeeLib.zero(),
643
+ minDistributionOwnerFee: FeeLib.zero(),
644
+ poolFee: FeeLib.zero(),
645
+ stakingFee: FeeLib.zero(),
646
+ performanceFee: FeeLib.zero()
647
+ }),
648
+ authorization,
649
+ initialOwner); // number of oracles
650
+ }
651
+ }
@@ -0,0 +1,45 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccess} from "../../../contracts/authorization/IAccess.sol";
5
+
6
+ import {BasicProductAuthorization} from "../../product/BasicProductAuthorization.sol";
7
+ import {FlightProduct} from "./FlightProduct.sol";
8
+ import {ORACLE} from "../../../contracts/type/ObjectType.sol";
9
+ import {PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
10
+
11
+
12
+ contract FlightProductAuthorization
13
+ is BasicProductAuthorization
14
+ {
15
+
16
+ constructor(string memory poolName)
17
+ BasicProductAuthorization(poolName)
18
+ {}
19
+
20
+ function _setupTargetAuthorizations()
21
+ internal
22
+ virtual override
23
+ {
24
+ super._setupTargetAuthorizations();
25
+ IAccess.FunctionInfo[] storage functions;
26
+
27
+ // authorize oracle service
28
+ functions = _authorizeForTarget(getMainTargetName(), getServiceRole(ORACLE()));
29
+ _authorize(functions, FlightProduct.flightStatusCallback.selector, "flightStatusCallback");
30
+
31
+ // authorize public role (open access to any account, only allows to lock target)
32
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
33
+ _authorize(functions, FlightProduct.createPolicy.selector, "createPolicy");
34
+ _authorize(functions, FlightProduct.createPolicyWithPermit.selector, "createPolicyWithPermit");
35
+
36
+ // TODO: only owner
37
+ _authorize(functions, FlightProduct.processFlightStatus.selector, "processFlightStatus");
38
+ _authorize(functions, FlightProduct.completeSetup.selector, "completeSetup");
39
+ _authorize(functions, FlightProduct.setDefaultBundle.selector, "setDefaultBundle");
40
+ _authorize(functions, FlightProduct.approveTokenHandler.selector, "approveTokenHandler");
41
+ _authorize(functions, FlightProduct.setLocked.selector, "setLocked");
42
+ _authorize(functions, FlightProduct.setWallet.selector, "setWallet");
43
+ }
44
+ }
45
+