@ledgerhq/context-module 0.0.0-wrong-error-when-in-experimental-provider-20251021162636 → 0.0.0-z-intent-queue-7-20251204111630

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 (314) hide show
  1. package/lib/cjs/package.json +38 -34
  2. package/lib/cjs/src/ContextModule.js +1 -1
  3. package/lib/cjs/src/ContextModule.js.map +1 -1
  4. package/lib/cjs/src/ContextModuleBuilder.js +1 -1
  5. package/lib/cjs/src/ContextModuleBuilder.js.map +2 -2
  6. package/lib/cjs/src/ContextModuleBuilder.test.js +1 -1
  7. package/lib/cjs/src/ContextModuleBuilder.test.js.map +2 -2
  8. package/lib/cjs/src/DefaultContextModule.js +1 -1
  9. package/lib/cjs/src/DefaultContextModule.js.map +3 -3
  10. package/lib/cjs/src/DefaultContextModule.test.js +1 -1
  11. package/lib/cjs/src/DefaultContextModule.test.js.map +3 -3
  12. package/lib/cjs/src/config/model/ContextModuleConfig.js +1 -1
  13. package/lib/cjs/src/config/model/ContextModuleConfig.js.map +1 -1
  14. package/lib/cjs/src/di.js +1 -1
  15. package/lib/cjs/src/di.js.map +3 -3
  16. package/lib/cjs/src/index.js +1 -1
  17. package/lib/cjs/src/index.js.map +2 -2
  18. package/lib/cjs/src/shared/domain/ContextFieldLoader.js +1 -1
  19. package/lib/cjs/src/shared/domain/ContextFieldLoader.js.map +1 -1
  20. package/lib/cjs/src/shared/model/ClearSignContext.js +1 -1
  21. package/lib/cjs/src/shared/model/ClearSignContext.js.map +2 -2
  22. package/lib/cjs/src/shared/model/SolanaContextTypes.js +2 -0
  23. package/lib/cjs/src/shared/model/SolanaContextTypes.js.map +7 -0
  24. package/lib/cjs/src/shared/model/SolanaTransactionContext.js +1 -1
  25. package/lib/cjs/src/shared/model/SolanaTransactionContext.js.map +1 -1
  26. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.js +1 -1
  27. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.js.map +3 -3
  28. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js +1 -1
  29. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js.map +2 -2
  30. package/lib/cjs/src/solana/data/SolanaDataSource.js +1 -1
  31. package/lib/cjs/src/solana/data/SolanaDataSource.js.map +1 -1
  32. package/lib/cjs/src/solana/domain/DefaultSolanaContextLoader.js +1 -1
  33. package/lib/cjs/src/solana/domain/DefaultSolanaContextLoader.js.map +3 -3
  34. package/lib/cjs/src/solana/domain/DefaultSolanaContextLoader.test.js +1 -1
  35. package/lib/cjs/src/solana/domain/DefaultSolanaContextLoader.test.js.map +3 -3
  36. package/lib/cjs/src/solana/domain/solanaContextTypes.js +1 -1
  37. package/lib/cjs/src/solana/domain/solanaContextTypes.js.map +1 -1
  38. package/lib/cjs/src/solanaLifi/data/HttpSolanaLifiDataSource.js +2 -0
  39. package/lib/cjs/src/solanaLifi/data/HttpSolanaLifiDataSource.js.map +7 -0
  40. package/lib/cjs/src/solanaLifi/data/HttpSolanaLifiDataSource.test.js +2 -0
  41. package/lib/cjs/src/solanaLifi/data/HttpSolanaLifiDataSource.test.js.map +7 -0
  42. package/lib/cjs/src/solanaLifi/data/SolanaLifiDataSource.js +2 -0
  43. package/lib/cjs/src/solanaLifi/data/SolanaLifiDataSource.js.map +7 -0
  44. package/lib/cjs/src/solanaLifi/di/lifiModuleFactory.js +2 -0
  45. package/lib/cjs/src/solanaLifi/di/lifiModuleFactory.js.map +7 -0
  46. package/lib/cjs/src/solanaLifi/di/solanaLifiTypes.js +2 -0
  47. package/lib/cjs/src/solanaLifi/di/solanaLifiTypes.js.map +7 -0
  48. package/lib/cjs/src/solanaLifi/domain/SolanaLifiContextLoader.js +2 -0
  49. package/lib/cjs/src/solanaLifi/domain/SolanaLifiContextLoader.js.map +7 -0
  50. package/lib/cjs/src/solanaLifi/domain/SolanaLifiContextLoader.test.js +2 -0
  51. package/lib/cjs/src/solanaLifi/domain/SolanaLifiContextLoader.test.js.map +7 -0
  52. package/lib/cjs/src/solanaToken/data/HttpSolanaTokenDataSource.js +2 -0
  53. package/lib/cjs/src/solanaToken/data/HttpSolanaTokenDataSource.js.map +7 -0
  54. package/lib/cjs/src/solanaToken/data/HttpSolanaTokenDataSource.test.js +7 -0
  55. package/lib/cjs/src/solanaToken/data/HttpSolanaTokenDataSource.test.js.map +7 -0
  56. package/lib/cjs/src/solanaToken/data/SolanaTokenDataSource.js +2 -0
  57. package/lib/cjs/src/solanaToken/data/SolanaTokenDataSource.js.map +7 -0
  58. package/lib/cjs/src/solanaToken/di/solanaTokenTypes.js +2 -0
  59. package/lib/cjs/src/solanaToken/di/solanaTokenTypes.js.map +7 -0
  60. package/lib/cjs/src/solanaToken/di/tokenModuleFactory.js +2 -0
  61. package/lib/cjs/src/solanaToken/di/tokenModuleFactory.js.map +7 -0
  62. package/lib/cjs/src/solanaToken/domain/SolanaTokenContextLoader.js +2 -0
  63. package/lib/cjs/src/solanaToken/domain/SolanaTokenContextLoader.js.map +7 -0
  64. package/lib/cjs/src/solanaToken/domain/SolanaTokenContextLoader.test.js +2 -0
  65. package/lib/cjs/src/solanaToken/domain/SolanaTokenContextLoader.test.js.map +7 -0
  66. package/lib/cjs/src/transaction-check/data/HttpTransactionCheckDataSource.js +2 -0
  67. package/lib/cjs/src/transaction-check/data/HttpTransactionCheckDataSource.js.map +7 -0
  68. package/lib/cjs/src/transaction-check/data/HttpTransactionCheckDataSource.test.js +2 -0
  69. package/lib/cjs/src/transaction-check/data/HttpTransactionCheckDataSource.test.js.map +7 -0
  70. package/lib/cjs/src/transaction-check/data/HttpTypedDataCheckDataSource.js +2 -0
  71. package/lib/cjs/src/transaction-check/data/HttpTypedDataCheckDataSource.js.map +7 -0
  72. package/lib/cjs/src/transaction-check/data/HttpTypedDataCheckDataSource.test.js +2 -0
  73. package/lib/cjs/src/transaction-check/data/HttpTypedDataCheckDataSource.test.js.map +7 -0
  74. package/lib/cjs/src/transaction-check/data/TransactionCheckDataSource.js +2 -0
  75. package/lib/cjs/src/transaction-check/data/TransactionCheckDataSource.js.map +7 -0
  76. package/lib/cjs/src/transaction-check/data/TypedDataCheckDataSource.js +2 -0
  77. package/lib/cjs/src/transaction-check/data/TypedDataCheckDataSource.js.map +7 -0
  78. package/lib/cjs/src/transaction-check/data/dto/TransactionCheckDto.js +2 -0
  79. package/lib/cjs/src/transaction-check/data/dto/TransactionCheckDto.js.map +7 -0
  80. package/lib/cjs/src/transaction-check/data/dto/TypedDataCheckDto.js +2 -0
  81. package/lib/cjs/src/transaction-check/data/dto/TypedDataCheckDto.js.map +7 -0
  82. package/lib/cjs/src/transaction-check/di/transactionCheckModuleFactory.js +2 -0
  83. package/lib/cjs/src/transaction-check/di/transactionCheckModuleFactory.js.map +7 -0
  84. package/lib/cjs/src/transaction-check/di/transactionCheckTypes.js +2 -0
  85. package/lib/cjs/src/transaction-check/di/transactionCheckTypes.js.map +7 -0
  86. package/lib/cjs/src/transaction-check/domain/TransactionCheckContextLoader.js +2 -0
  87. package/lib/cjs/src/transaction-check/domain/TransactionCheckContextLoader.js.map +7 -0
  88. package/lib/cjs/src/transaction-check/domain/TransactionCheckContextLoader.test.js +2 -0
  89. package/lib/cjs/src/transaction-check/domain/TransactionCheckContextLoader.test.js.map +7 -0
  90. package/lib/cjs/src/transaction-check/domain/TypedDataCheckContextLoader.js +2 -0
  91. package/lib/cjs/src/transaction-check/domain/TypedDataCheckContextLoader.js.map +7 -0
  92. package/lib/cjs/src/transaction-check/domain/TypedDataCheckContextLoader.test.js +2 -0
  93. package/lib/cjs/src/transaction-check/domain/TypedDataCheckContextLoader.test.js.map +7 -0
  94. package/lib/esm/package.json +38 -34
  95. package/lib/esm/src/ContextModuleBuilder.js +1 -1
  96. package/lib/esm/src/ContextModuleBuilder.js.map +2 -2
  97. package/lib/esm/src/ContextModuleBuilder.test.js +1 -1
  98. package/lib/esm/src/ContextModuleBuilder.test.js.map +2 -2
  99. package/lib/esm/src/DefaultContextModule.js +1 -1
  100. package/lib/esm/src/DefaultContextModule.js.map +3 -3
  101. package/lib/esm/src/DefaultContextModule.test.js +1 -1
  102. package/lib/esm/src/DefaultContextModule.test.js.map +3 -3
  103. package/lib/esm/src/di.js +1 -1
  104. package/lib/esm/src/di.js.map +3 -3
  105. package/lib/esm/src/index.js +1 -1
  106. package/lib/esm/src/index.js.map +2 -2
  107. package/lib/esm/src/shared/model/ClearSignContext.js +1 -1
  108. package/lib/esm/src/shared/model/ClearSignContext.js.map +2 -2
  109. package/lib/esm/src/shared/model/SolanaContextTypes.js +2 -0
  110. package/lib/esm/src/shared/model/SolanaContextTypes.js.map +7 -0
  111. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.js +1 -1
  112. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.js.map +3 -3
  113. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js +1 -1
  114. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js.map +2 -2
  115. package/lib/esm/src/solana/domain/DefaultSolanaContextLoader.js +1 -1
  116. package/lib/esm/src/solana/domain/DefaultSolanaContextLoader.js.map +3 -3
  117. package/lib/esm/src/solana/domain/DefaultSolanaContextLoader.test.js +1 -1
  118. package/lib/esm/src/solana/domain/DefaultSolanaContextLoader.test.js.map +3 -3
  119. package/lib/esm/src/solanaLifi/data/HttpSolanaLifiDataSource.js +2 -0
  120. package/lib/esm/src/solanaLifi/data/HttpSolanaLifiDataSource.js.map +7 -0
  121. package/lib/esm/src/solanaLifi/data/HttpSolanaLifiDataSource.test.js +2 -0
  122. package/lib/esm/src/solanaLifi/data/HttpSolanaLifiDataSource.test.js.map +7 -0
  123. package/lib/esm/src/solanaLifi/data/SolanaLifiDataSource.js +1 -0
  124. package/lib/esm/src/solanaLifi/di/lifiModuleFactory.js +2 -0
  125. package/lib/esm/src/solanaLifi/di/lifiModuleFactory.js.map +7 -0
  126. package/lib/esm/src/solanaLifi/di/solanaLifiTypes.js +2 -0
  127. package/lib/esm/src/solanaLifi/di/solanaLifiTypes.js.map +7 -0
  128. package/lib/esm/src/solanaLifi/domain/SolanaLifiContextLoader.js +2 -0
  129. package/lib/esm/src/solanaLifi/domain/SolanaLifiContextLoader.js.map +7 -0
  130. package/lib/esm/src/solanaLifi/domain/SolanaLifiContextLoader.test.js +2 -0
  131. package/lib/esm/src/solanaLifi/domain/SolanaLifiContextLoader.test.js.map +7 -0
  132. package/lib/esm/src/solanaToken/data/HttpSolanaTokenDataSource.js +2 -0
  133. package/lib/esm/src/solanaToken/data/HttpSolanaTokenDataSource.js.map +7 -0
  134. package/lib/esm/src/solanaToken/data/HttpSolanaTokenDataSource.test.js +7 -0
  135. package/lib/esm/src/solanaToken/data/HttpSolanaTokenDataSource.test.js.map +7 -0
  136. package/lib/esm/src/solanaToken/data/SolanaTokenDataSource.js +1 -0
  137. package/lib/esm/src/solanaToken/di/solanaTokenTypes.js +2 -0
  138. package/lib/esm/src/solanaToken/di/solanaTokenTypes.js.map +7 -0
  139. package/lib/esm/src/solanaToken/di/tokenModuleFactory.js +2 -0
  140. package/lib/esm/src/solanaToken/di/tokenModuleFactory.js.map +7 -0
  141. package/lib/esm/src/solanaToken/domain/SolanaTokenContextLoader.js +2 -0
  142. package/lib/esm/src/solanaToken/domain/SolanaTokenContextLoader.js.map +7 -0
  143. package/lib/esm/src/solanaToken/domain/SolanaTokenContextLoader.test.js +2 -0
  144. package/lib/esm/src/solanaToken/domain/SolanaTokenContextLoader.test.js.map +7 -0
  145. package/lib/esm/src/transaction-check/data/HttpTransactionCheckDataSource.js +2 -0
  146. package/lib/esm/src/transaction-check/data/HttpTransactionCheckDataSource.js.map +7 -0
  147. package/lib/esm/src/transaction-check/data/HttpTransactionCheckDataSource.test.js +2 -0
  148. package/lib/esm/src/transaction-check/data/HttpTransactionCheckDataSource.test.js.map +7 -0
  149. package/lib/esm/src/transaction-check/data/HttpTypedDataCheckDataSource.js +2 -0
  150. package/lib/esm/src/transaction-check/data/HttpTypedDataCheckDataSource.js.map +7 -0
  151. package/lib/esm/src/transaction-check/data/HttpTypedDataCheckDataSource.test.js +2 -0
  152. package/lib/esm/src/transaction-check/data/HttpTypedDataCheckDataSource.test.js.map +7 -0
  153. package/lib/esm/src/transaction-check/data/TransactionCheckDataSource.js +1 -0
  154. package/lib/esm/src/transaction-check/data/TypedDataCheckDataSource.js +1 -0
  155. package/lib/esm/src/transaction-check/data/dto/TransactionCheckDto.js +1 -0
  156. package/lib/esm/src/transaction-check/data/dto/TransactionCheckDto.js.map +7 -0
  157. package/lib/esm/src/transaction-check/data/dto/TypedDataCheckDto.js +1 -0
  158. package/lib/esm/src/transaction-check/data/dto/TypedDataCheckDto.js.map +7 -0
  159. package/lib/esm/src/transaction-check/di/transactionCheckModuleFactory.js +2 -0
  160. package/lib/esm/src/transaction-check/di/transactionCheckModuleFactory.js.map +7 -0
  161. package/lib/esm/src/transaction-check/di/transactionCheckTypes.js +2 -0
  162. package/lib/esm/src/transaction-check/di/transactionCheckTypes.js.map +7 -0
  163. package/lib/esm/src/transaction-check/domain/TransactionCheckContextLoader.js +2 -0
  164. package/lib/esm/src/transaction-check/domain/TransactionCheckContextLoader.js.map +7 -0
  165. package/lib/esm/src/transaction-check/domain/TransactionCheckContextLoader.test.js +2 -0
  166. package/lib/esm/src/transaction-check/domain/TransactionCheckContextLoader.test.js.map +7 -0
  167. package/lib/esm/src/transaction-check/domain/TypedDataCheckContextLoader.js +2 -0
  168. package/lib/esm/src/transaction-check/domain/TypedDataCheckContextLoader.js.map +7 -0
  169. package/lib/esm/src/transaction-check/domain/TypedDataCheckContextLoader.test.js +2 -0
  170. package/lib/esm/src/transaction-check/domain/TypedDataCheckContextLoader.test.js.map +7 -0
  171. package/lib/types/src/ContextModule.d.ts +0 -2
  172. package/lib/types/src/ContextModule.d.ts.map +1 -1
  173. package/lib/types/src/ContextModuleBuilder.d.ts +0 -9
  174. package/lib/types/src/ContextModuleBuilder.d.ts.map +1 -1
  175. package/lib/types/src/DefaultContextModule.d.ts +1 -5
  176. package/lib/types/src/DefaultContextModule.d.ts.map +1 -1
  177. package/lib/types/src/config/model/ContextModuleConfig.d.ts +0 -2
  178. package/lib/types/src/config/model/ContextModuleConfig.d.ts.map +1 -1
  179. package/lib/types/src/di.d.ts.map +1 -1
  180. package/lib/types/src/index.d.ts +2 -5
  181. package/lib/types/src/index.d.ts.map +1 -1
  182. package/lib/types/src/shared/domain/ContextFieldLoader.d.ts +14 -4
  183. package/lib/types/src/shared/domain/ContextFieldLoader.d.ts.map +1 -1
  184. package/lib/types/src/shared/model/ClearSignContext.d.ts +60 -33
  185. package/lib/types/src/shared/model/ClearSignContext.d.ts.map +1 -1
  186. package/lib/types/src/shared/model/SolanaContextTypes.d.ts +47 -0
  187. package/lib/types/src/shared/model/SolanaContextTypes.d.ts.map +1 -0
  188. package/lib/types/src/shared/model/SolanaTransactionContext.d.ts +2 -0
  189. package/lib/types/src/shared/model/SolanaTransactionContext.d.ts.map +1 -1
  190. package/lib/types/src/solana/data/HttpSolanaOwnerInfoDataSource.d.ts.map +1 -1
  191. package/lib/types/src/solana/data/SolanaDataSource.d.ts +1 -4
  192. package/lib/types/src/solana/data/SolanaDataSource.d.ts.map +1 -1
  193. package/lib/types/src/solana/domain/DefaultSolanaContextLoader.d.ts +5 -3
  194. package/lib/types/src/solana/domain/DefaultSolanaContextLoader.d.ts.map +1 -1
  195. package/lib/types/src/solana/domain/solanaContextTypes.d.ts +7 -5
  196. package/lib/types/src/solana/domain/solanaContextTypes.d.ts.map +1 -1
  197. package/lib/types/src/solanaLifi/data/HttpSolanaLifiDataSource.d.ts +9 -0
  198. package/lib/types/src/solanaLifi/data/HttpSolanaLifiDataSource.d.ts.map +1 -0
  199. package/lib/types/src/solanaLifi/data/HttpSolanaLifiDataSource.test.d.ts +2 -0
  200. package/lib/types/src/solanaLifi/data/HttpSolanaLifiDataSource.test.d.ts.map +1 -0
  201. package/lib/types/src/solanaLifi/data/SolanaLifiDataSource.d.ts +13 -0
  202. package/lib/types/src/solanaLifi/data/SolanaLifiDataSource.d.ts.map +1 -0
  203. package/lib/types/src/solanaLifi/di/lifiModuleFactory.d.ts +3 -0
  204. package/lib/types/src/solanaLifi/di/lifiModuleFactory.d.ts.map +1 -0
  205. package/lib/types/src/solanaLifi/di/solanaLifiTypes.d.ts +5 -0
  206. package/lib/types/src/solanaLifi/di/solanaLifiTypes.d.ts.map +1 -0
  207. package/lib/types/src/solanaLifi/domain/SolanaLifiContextLoader.d.ts +16 -0
  208. package/lib/types/src/solanaLifi/domain/SolanaLifiContextLoader.d.ts.map +1 -0
  209. package/lib/types/src/solanaLifi/domain/SolanaLifiContextLoader.test.d.ts +2 -0
  210. package/lib/types/src/solanaLifi/domain/SolanaLifiContextLoader.test.d.ts.map +1 -0
  211. package/lib/types/src/solanaToken/data/HttpSolanaTokenDataSource.d.ts +9 -0
  212. package/lib/types/src/solanaToken/data/HttpSolanaTokenDataSource.d.ts.map +1 -0
  213. package/lib/types/src/solanaToken/data/HttpSolanaTokenDataSource.test.d.ts +2 -0
  214. package/lib/types/src/solanaToken/data/HttpSolanaTokenDataSource.test.d.ts.map +1 -0
  215. package/lib/types/src/solanaToken/data/SolanaTokenDataSource.d.ts +44 -0
  216. package/lib/types/src/solanaToken/data/SolanaTokenDataSource.d.ts.map +1 -0
  217. package/lib/types/src/solanaToken/di/solanaTokenTypes.d.ts +5 -0
  218. package/lib/types/src/solanaToken/di/solanaTokenTypes.d.ts.map +1 -0
  219. package/lib/types/src/solanaToken/di/tokenModuleFactory.d.ts +3 -0
  220. package/lib/types/src/solanaToken/di/tokenModuleFactory.d.ts.map +1 -0
  221. package/lib/types/src/solanaToken/domain/SolanaTokenContextLoader.d.ts +22 -0
  222. package/lib/types/src/solanaToken/domain/SolanaTokenContextLoader.d.ts.map +1 -0
  223. package/lib/types/src/solanaToken/domain/SolanaTokenContextLoader.test.d.ts +2 -0
  224. package/lib/types/src/solanaToken/domain/SolanaTokenContextLoader.test.d.ts.map +1 -0
  225. package/lib/types/src/transaction-check/data/HttpTransactionCheckDataSource.d.ts +10 -0
  226. package/lib/types/src/transaction-check/data/HttpTransactionCheckDataSource.d.ts.map +1 -0
  227. package/lib/types/src/transaction-check/data/HttpTransactionCheckDataSource.test.d.ts +2 -0
  228. package/lib/types/src/transaction-check/data/HttpTransactionCheckDataSource.test.d.ts.map +1 -0
  229. package/lib/types/src/transaction-check/data/HttpTypedDataCheckDataSource.d.ts +10 -0
  230. package/lib/types/src/transaction-check/data/HttpTypedDataCheckDataSource.d.ts.map +1 -0
  231. package/lib/types/src/transaction-check/data/HttpTypedDataCheckDataSource.test.d.ts +2 -0
  232. package/lib/types/src/transaction-check/data/HttpTypedDataCheckDataSource.test.d.ts.map +1 -0
  233. package/lib/types/src/transaction-check/data/TransactionCheckDataSource.d.ts +14 -0
  234. package/lib/types/src/transaction-check/data/TransactionCheckDataSource.d.ts.map +1 -0
  235. package/lib/types/src/transaction-check/data/TypedDataCheckDataSource.d.ts +28 -0
  236. package/lib/types/src/transaction-check/data/TypedDataCheckDataSource.d.ts.map +1 -0
  237. package/lib/types/src/transaction-check/data/dto/TransactionCheckDto.d.ts +5 -0
  238. package/lib/types/src/transaction-check/data/dto/TransactionCheckDto.d.ts.map +1 -0
  239. package/lib/types/src/transaction-check/data/dto/TypedDataCheckDto.d.ts +5 -0
  240. package/lib/types/src/transaction-check/data/dto/TypedDataCheckDto.d.ts.map +1 -0
  241. package/lib/types/src/transaction-check/di/transactionCheckModuleFactory.d.ts +3 -0
  242. package/lib/types/src/transaction-check/di/transactionCheckModuleFactory.d.ts.map +1 -0
  243. package/lib/types/src/transaction-check/di/transactionCheckTypes.d.ts +7 -0
  244. package/lib/types/src/transaction-check/di/transactionCheckTypes.d.ts.map +1 -0
  245. package/lib/types/src/transaction-check/domain/TransactionCheckContextLoader.d.ts +19 -0
  246. package/lib/types/src/transaction-check/domain/TransactionCheckContextLoader.d.ts.map +1 -0
  247. package/lib/types/src/transaction-check/domain/TransactionCheckContextLoader.test.d.ts +2 -0
  248. package/lib/types/src/transaction-check/domain/TransactionCheckContextLoader.test.d.ts.map +1 -0
  249. package/lib/types/src/transaction-check/domain/TypedDataCheckContextLoader.d.ts +18 -0
  250. package/lib/types/src/transaction-check/domain/TypedDataCheckContextLoader.d.ts.map +1 -0
  251. package/lib/types/src/transaction-check/domain/TypedDataCheckContextLoader.test.d.ts +2 -0
  252. package/lib/types/src/transaction-check/domain/TypedDataCheckContextLoader.test.d.ts.map +1 -0
  253. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  254. package/package.json +36 -32
  255. package/lib/cjs/src/web3-check/data/HttpWeb3CheckDataSource.js +0 -2
  256. package/lib/cjs/src/web3-check/data/HttpWeb3CheckDataSource.js.map +0 -7
  257. package/lib/cjs/src/web3-check/data/HttpWeb3CheckDataSource.test.js +0 -2
  258. package/lib/cjs/src/web3-check/data/HttpWeb3CheckDataSource.test.js.map +0 -7
  259. package/lib/cjs/src/web3-check/data/Web3CheckDataSource.js +0 -2
  260. package/lib/cjs/src/web3-check/data/Web3CheckDataSource.js.map +0 -7
  261. package/lib/cjs/src/web3-check/data/Web3CheckDto.js +0 -2
  262. package/lib/cjs/src/web3-check/data/Web3CheckDto.js.map +0 -7
  263. package/lib/cjs/src/web3-check/di/web3CheckModuleFactory.js +0 -2
  264. package/lib/cjs/src/web3-check/di/web3CheckModuleFactory.js.map +0 -7
  265. package/lib/cjs/src/web3-check/di/web3CheckTypes.js +0 -2
  266. package/lib/cjs/src/web3-check/di/web3CheckTypes.js.map +0 -7
  267. package/lib/cjs/src/web3-check/domain/DefaultWeb3CheckLoader.js +0 -2
  268. package/lib/cjs/src/web3-check/domain/DefaultWeb3CheckLoader.js.map +0 -7
  269. package/lib/cjs/src/web3-check/domain/DefaultWeb3CheckLoader.test.js +0 -2
  270. package/lib/cjs/src/web3-check/domain/DefaultWeb3CheckLoader.test.js.map +0 -7
  271. package/lib/cjs/src/web3-check/domain/Web3CheckContextLoader.js +0 -2
  272. package/lib/cjs/src/web3-check/domain/Web3CheckContextLoader.js.map +0 -7
  273. package/lib/cjs/src/web3-check/domain/web3CheckTypes.js +0 -2
  274. package/lib/cjs/src/web3-check/domain/web3CheckTypes.js.map +0 -7
  275. package/lib/esm/src/web3-check/data/HttpWeb3CheckDataSource.js +0 -2
  276. package/lib/esm/src/web3-check/data/HttpWeb3CheckDataSource.js.map +0 -7
  277. package/lib/esm/src/web3-check/data/HttpWeb3CheckDataSource.test.js +0 -2
  278. package/lib/esm/src/web3-check/data/HttpWeb3CheckDataSource.test.js.map +0 -7
  279. package/lib/esm/src/web3-check/data/Web3CheckDataSource.js +0 -1
  280. package/lib/esm/src/web3-check/data/Web3CheckDto.js +0 -1
  281. package/lib/esm/src/web3-check/di/web3CheckModuleFactory.js +0 -2
  282. package/lib/esm/src/web3-check/di/web3CheckModuleFactory.js.map +0 -7
  283. package/lib/esm/src/web3-check/di/web3CheckTypes.js +0 -2
  284. package/lib/esm/src/web3-check/di/web3CheckTypes.js.map +0 -7
  285. package/lib/esm/src/web3-check/domain/DefaultWeb3CheckLoader.js +0 -2
  286. package/lib/esm/src/web3-check/domain/DefaultWeb3CheckLoader.js.map +0 -7
  287. package/lib/esm/src/web3-check/domain/DefaultWeb3CheckLoader.test.js +0 -2
  288. package/lib/esm/src/web3-check/domain/DefaultWeb3CheckLoader.test.js.map +0 -7
  289. package/lib/esm/src/web3-check/domain/Web3CheckContextLoader.js +0 -1
  290. package/lib/esm/src/web3-check/domain/web3CheckTypes.js +0 -1
  291. package/lib/types/src/web3-check/data/HttpWeb3CheckDataSource.d.ts +0 -14
  292. package/lib/types/src/web3-check/data/HttpWeb3CheckDataSource.d.ts.map +0 -1
  293. package/lib/types/src/web3-check/data/HttpWeb3CheckDataSource.test.d.ts +0 -2
  294. package/lib/types/src/web3-check/data/HttpWeb3CheckDataSource.test.d.ts.map +0 -1
  295. package/lib/types/src/web3-check/data/Web3CheckDataSource.d.ts +0 -6
  296. package/lib/types/src/web3-check/data/Web3CheckDataSource.d.ts.map +0 -1
  297. package/lib/types/src/web3-check/data/Web3CheckDto.d.ts +0 -20
  298. package/lib/types/src/web3-check/data/Web3CheckDto.d.ts.map +0 -1
  299. package/lib/types/src/web3-check/di/web3CheckModuleFactory.d.ts +0 -3
  300. package/lib/types/src/web3-check/di/web3CheckModuleFactory.d.ts.map +0 -1
  301. package/lib/types/src/web3-check/di/web3CheckTypes.d.ts +0 -5
  302. package/lib/types/src/web3-check/di/web3CheckTypes.d.ts.map +0 -1
  303. package/lib/types/src/web3-check/domain/DefaultWeb3CheckLoader.d.ts +0 -10
  304. package/lib/types/src/web3-check/domain/DefaultWeb3CheckLoader.d.ts.map +0 -1
  305. package/lib/types/src/web3-check/domain/DefaultWeb3CheckLoader.test.d.ts +0 -2
  306. package/lib/types/src/web3-check/domain/DefaultWeb3CheckLoader.test.d.ts.map +0 -1
  307. package/lib/types/src/web3-check/domain/Web3CheckContextLoader.d.ts +0 -6
  308. package/lib/types/src/web3-check/domain/Web3CheckContextLoader.d.ts.map +0 -1
  309. package/lib/types/src/web3-check/domain/web3CheckTypes.d.ts +0 -35
  310. package/lib/types/src/web3-check/domain/web3CheckTypes.d.ts.map +0 -1
  311. /package/lib/esm/src/{web3-check/data/Web3CheckDataSource.js.map → solanaLifi/data/SolanaLifiDataSource.js.map} +0 -0
  312. /package/lib/esm/src/{web3-check/data/Web3CheckDto.js.map → solanaToken/data/SolanaTokenDataSource.js.map} +0 -0
  313. /package/lib/esm/src/{web3-check/domain/Web3CheckContextLoader.js.map → transaction-check/data/TransactionCheckDataSource.js.map} +0 -0
  314. /package/lib/esm/src/{web3-check/domain/web3CheckTypes.js.map → transaction-check/data/TypedDataCheckDataSource.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";var o=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var p=(e,t,i,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of a(t))!c.call(e,r)&&r!==i&&o(e,r,{get:()=>t[r],enumerable:!(n=s(t,r))||n.enumerable});return e};var d=e=>p(o({},"__esModule",{value:!0}),e);var g={};module.exports=d(g);
1
+ "use strict";var r=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(e,t,a,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of i(t))!l.call(e,o)&&o!==a&&r(e,o,{get:()=>t[o],enumerable:!(n=s(t,o))||n.enumerable});return e};var p=e=>c(r({},"__esModule",{value:!0}),e);var d={};module.exports=p(d);
2
2
  //# sourceMappingURL=solanaContextTypes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/solana/domain/solanaContextTypes.ts"],
4
- "sourcesContent": ["import { type DeviceModelId } from \"@ledgerhq/device-management-kit\";\nimport { type Either } from \"purify-ts\";\n\nimport { type PkiCertificate } from \"@/pki/model/PkiCertificate\";\n\nexport type SolanaTransactionContext = {\n deviceModelId: DeviceModelId;\n challenge?: string;\n tokenAddress?: string;\n createATA?: {\n address: string;\n mintAddress: string;\n };\n};\n\nexport type SolanaSPLOwnerInfo = {\n tokenAccount: string;\n owner: string;\n contract: string;\n signedDescriptor: string;\n};\n\nexport type SolanaTransactionContextResultSuccess = {\n descriptor: Uint8Array;\n tokenAccount: string;\n owner: string;\n contract: string;\n certificate: PkiCertificate;\n};\n\nexport type SolanaTransactionContextResult = Either<\n Error,\n SolanaTransactionContextResultSuccess\n>;\n"],
4
+ "sourcesContent": ["import { type DeviceModelId } from \"@ledgerhq/device-management-kit\";\nimport { type Either } from \"purify-ts\";\n\nimport { type PkiCertificate } from \"@/pki/model/PkiCertificate\";\nimport {\n type SolanaLifiContextResult,\n type SolanaTokenContextResult,\n} from \"@/shared/model/SolanaContextTypes\";\n\nexport type SolanaTransactionContext = {\n deviceModelId: DeviceModelId;\n challenge?: string;\n tokenAddress?: string;\n tokenInternalId?: string;\n templateId?: string;\n createATA?: {\n address: string;\n mintAddress: string;\n };\n};\n\nexport type SolanaSPLOwnerInfo = {\n tokenAccount: string;\n owner: string;\n contract: string;\n signedDescriptor: string;\n};\n\nexport type SolanaContextLoaderResults = Array<\n SolanaTokenContextResult | SolanaLifiContextResult\n>;\n\nexport type SolanaTransactionContextResultSuccess = {\n trustedNamePKICertificate: PkiCertificate;\n tlvDescriptor: Uint8Array;\n loadersResults: SolanaContextLoaderResults;\n};\n\nexport type SolanaTransactionContextResult = Either<\n Error,\n SolanaTransactionContextResultSuccess\n>;\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["solanaContextTypes_exports", "__toCommonJS"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var T=Object.create;var s=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var _=(t,r)=>{for(var o in r)s(t,o,{get:r[o],enumerable:!0})},d=(t,r,o,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let e of G(r))!R.call(t,e)&&e!==o&&s(t,e,{get:()=>r[e],enumerable:!(i=f(r,e))||i.enumerable});return t};var l=(t,r,o)=>(o=t!=null?T(x(t)):{},d(r||!t||!t.__esModule?s(o,"default",{value:t,enumerable:!0}):o,t)),y=t=>d(s({},"__esModule",{value:!0}),t),u=(t,r,o,i)=>{for(var e=i>1?void 0:i?f(r,o):r,p=t.length-1,m;p>=0;p--)(m=t[p])&&(e=(i?m(r,o,e):m(e))||e);return i&&e&&s(r,o,e),e},E=(t,r)=>(o,i)=>r(o,i,t);var b={};_(b,{HttpSolanaLifiDataSource:()=>n});module.exports=y(b);var h=l(require("axios")),c=require("inversify"),a=require("purify-ts"),g=require("../../config/di/configTypes"),C=require("../../shared/constant/HttpHeaders"),D=l(require("../../../package.json"));let n=class{constructor(r){this.config=r}async getTransactionDescriptorsPayload({templateId:r}){try{const{data:o}=await h.default.request({method:"GET",url:`${this.config.cal.url}/swap_templates`,params:{template_id:r,output:"id,chain_id,instructions,descriptors",ref:"ref=commit:866b6e7633a7a806fab7f9941bcc3df7ee640784"},headers:{[C.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${D.default.version}`}});return!o||o.length===0||!o[0]?(0,a.Left)(new Error(`[ContextModule] HttpSolanaLifiDataSource: no transaction descriptors for id ${r}`)):(0,a.Right)(o[0])}catch{return(0,a.Left)(new Error("[ContextModule] HttpSolanaLifiDataSource: Failed to fetch transaction descriptors"))}}};n=u([(0,c.injectable)(),E(0,(0,c.inject)(g.configTypes.Config))],n);0&&(module.exports={HttpSolanaLifiDataSource});
2
+ //# sourceMappingURL=HttpSolanaLifiDataSource.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/solanaLifi/data/HttpSolanaLifiDataSource.ts"],
4
+ "sourcesContent": ["import axios from \"axios\";\nimport { inject, injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { LEDGER_CLIENT_VERSION_HEADER } from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nimport {\n GetTransactionDescriptorsParams,\n GetTransactionDescriptorsResponse,\n SolanaLifiDataSource,\n} from \"./SolanaLifiDataSource\";\n\n@injectable()\nexport class HttpSolanaLifiDataSource implements SolanaLifiDataSource {\n constructor(\n @inject(configTypes.Config) private readonly config: ContextModuleConfig,\n ) {}\n public async getTransactionDescriptorsPayload({\n templateId,\n }: GetTransactionDescriptorsParams): Promise<\n Either<Error, GetTransactionDescriptorsResponse>\n > {\n try {\n const { data } = await axios.request<GetTransactionDescriptorsResponse[]>(\n {\n method: \"GET\",\n url: `${this.config.cal.url}/swap_templates`,\n params: {\n template_id: templateId,\n output: \"id,chain_id,instructions,descriptors\",\n // TODO LIFI\n // REVERT WHEN CAL SUPPORTS IT\n ref: \"ref=commit:866b6e7633a7a806fab7f9941bcc3df7ee640784\",\n },\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n },\n },\n );\n\n if (!data || data.length === 0 || !data[0]) {\n return Left(\n new Error(\n `[ContextModule] HttpSolanaLifiDataSource: no transaction descriptors for id ${templateId}`,\n ),\n );\n }\n\n return Right(data[0]);\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpSolanaLifiDataSource: Failed to fetch transaction descriptors\",\n ),\n );\n }\n }\n}\n"],
5
+ "mappings": "qtBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkB,oBAClBC,EAAmC,qBACnCC,EAAoC,qBAEpCC,EAA4B,mCAE5BC,EAA6C,yCAC7CC,EAAoB,iCASb,IAAMC,EAAN,KAA+D,CACpE,YAC+CC,EAC7C,CAD6C,YAAAA,CAC5C,CACH,MAAa,iCAAiC,CAC5C,WAAAC,CACF,EAEE,CACA,GAAI,CACF,KAAM,CAAE,KAAAC,CAAK,EAAI,MAAM,EAAAC,QAAM,QAC3B,CACE,OAAQ,MACR,IAAK,GAAG,KAAK,OAAO,IAAI,GAAG,kBAC3B,OAAQ,CACN,YAAaF,EACb,OAAQ,uCAGR,IAAK,qDACP,EACA,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAG,QAAQ,OAAO,EACnE,CACF,CACF,EAEA,MAAI,CAACF,GAAQA,EAAK,SAAW,GAAK,CAACA,EAAK,CAAC,KAChC,QACL,IAAI,MACF,+EAA+ED,CAAU,EAC3F,CACF,KAGK,SAAMC,EAAK,CAAC,CAAC,CACtB,MAAiB,CACf,SAAO,QACL,IAAI,MACF,mFACF,CACF,CACF,CACF,CACF,EA5CaH,EAANM,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,cAAY,MAAM,IAFjBP",
6
+ "names": ["HttpSolanaLifiDataSource_exports", "__export", "HttpSolanaLifiDataSource", "__toCommonJS", "import_axios", "import_inversify", "import_purify_ts", "import_configTypes", "import_HttpHeaders", "import_package", "HttpSolanaLifiDataSource", "config", "templateId", "data", "axios", "PACKAGE", "__decorateClass", "__decorateParam"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var m=Object.create;var c=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var E=(a,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of y(t))!w.call(a,s)&&s!==r&&c(a,s,{get:()=>t[s],enumerable:!(o=f(t,s))||o.enumerable});return a};var l=(a,t,r)=>(r=a!=null?m(h(a)):{},E(t||!a||!a.__esModule?c(r,"default",{value:a,enumerable:!0}):r,a));var n=l(require("axios")),i=require("purify-ts"),e=require("vitest"),d=require("../../shared/constant/HttpHeaders"),p=l(require("../../../package.json")),u=require("./HttpSolanaLifiDataSource");e.vi.mock("axios");(0,e.describe)("HttpSolanaLifiDataSource",()=>{let a;const t="tpl-123",r={cal:{url:"https://crypto-assets-service.api.ledger.com/v1",mode:"prod",branch:"main"}};(0,e.beforeAll)(()=>{a=new u.HttpSolanaLifiDataSource(r)}),(0,e.beforeEach)(()=>{e.vi.clearAllMocks()}),(0,e.it)("should call axios with the ledger client version header and correct params",async()=>{const o=e.vi.fn(()=>Promise.resolve({data:[]}));e.vi.spyOn(n.default,"request").mockImplementation(o),await a.getTransactionDescriptorsPayload({templateId:t}),(0,e.expect)(o).toHaveBeenCalledTimes(1),(0,e.expect)(o).toHaveBeenCalledWith(e.expect.objectContaining({method:"GET",url:`${r.cal.url}/swap_templates`,params:{template_id:t,output:"id,chain_id,instructions,descriptors",ref:"ref=commit:866b6e7633a7a806fab7f9941bcc3df7ee640784"},headers:{[d.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${p.default.version}`}}))}),(0,e.it)("should return Right(data[0]) when axios responds with a non-empty array",async()=>{const o={descriptors:{swap:{programId:"SwapProgram",accounts:[],data:"abcd"}}};e.vi.spyOn(n.default,"request").mockResolvedValue({data:[o]});const s=await a.getTransactionDescriptorsPayload({templateId:t});(0,e.expect)(s).toEqual((0,i.Right)(o))}),(0,e.it)("should return an error when data is undefined",async()=>{e.vi.spyOn(n.default,"request").mockResolvedValue({data:void 0});const o=await a.getTransactionDescriptorsPayload({templateId:t});(0,e.expect)(o).toEqual((0,i.Left)(new Error(`[ContextModule] HttpSolanaLifiDataSource: no transaction descriptors for id ${t}`)))}),(0,e.it)("should return an error when data array is empty",async()=>{e.vi.spyOn(n.default,"request").mockResolvedValue({data:[]});const o=await a.getTransactionDescriptorsPayload({templateId:t});(0,e.expect)(o).toEqual((0,i.Left)(new Error(`[ContextModule] HttpSolanaLifiDataSource: no transaction descriptors for id ${t}`)))}),(0,e.it)("should return an error when first element is falsy",async()=>{e.vi.spyOn(n.default,"request").mockResolvedValue({data:[void 0]});const o=await a.getTransactionDescriptorsPayload({templateId:t});(0,e.expect)(o).toEqual((0,i.Left)(new Error(`[ContextModule] HttpSolanaLifiDataSource: no transaction descriptors for id ${t}`)))}),(0,e.it)("should return an error when axios throws",async()=>{e.vi.spyOn(n.default,"request").mockRejectedValue(new Error("network"));const o=await a.getTransactionDescriptorsPayload({templateId:t});(0,e.expect)(o).toEqual((0,i.Left)(new Error("[ContextModule] HttpSolanaLifiDataSource: Failed to fetch transaction descriptors")))})});
2
+ //# sourceMappingURL=HttpSolanaLifiDataSource.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/solanaLifi/data/HttpSolanaLifiDataSource.test.ts"],
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport axios from \"axios\";\nimport { Left, Right } from \"purify-ts\";\nimport { beforeAll, beforeEach, describe, expect, it, vi } from \"vitest\";\n\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { LEDGER_CLIENT_VERSION_HEADER } from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nimport { HttpSolanaLifiDataSource } from \"./HttpSolanaLifiDataSource\";\nimport {\n type GetTransactionDescriptorsResponse,\n type SolanaLifiDataSource,\n} from \"./SolanaLifiDataSource\";\n\nvi.mock(\"axios\");\n\ndescribe(\"HttpSolanaLifiDataSource\", () => {\n let datasource: SolanaLifiDataSource;\n const templateId = \"tpl-123\";\n const config: ContextModuleConfig = {\n cal: {\n url: \"https://crypto-assets-service.api.ledger.com/v1\",\n mode: \"prod\",\n branch: \"main\",\n },\n } as ContextModuleConfig;\n\n beforeAll(() => {\n datasource = new HttpSolanaLifiDataSource(config);\n });\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"should call axios with the ledger client version header and correct params\", async () => {\n // given\n const requestSpy = vi.fn(() => Promise.resolve({ data: [] }));\n vi.spyOn(axios, \"request\").mockImplementation(requestSpy);\n\n // when\n await datasource.getTransactionDescriptorsPayload({ templateId });\n\n // then\n expect(requestSpy).toHaveBeenCalledTimes(1);\n expect(requestSpy).toHaveBeenCalledWith(\n expect.objectContaining({\n method: \"GET\",\n url: `${config.cal.url}/swap_templates`,\n params: {\n template_id: templateId,\n output: \"id,chain_id,instructions,descriptors\",\n // TODO LIFI\n // REVERT WHEN CAL SUPPORTS IT\n ref: \"ref=commit:866b6e7633a7a806fab7f9941bcc3df7ee640784\",\n },\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n },\n }),\n );\n });\n\n it(\"should return Right(data[0]) when axios responds with a non-empty array\", async () => {\n // given\n const response0: GetTransactionDescriptorsResponse = {\n descriptors: {\n swap: { programId: \"SwapProgram\", accounts: [], data: \"abcd\" } as any,\n },\n } as any;\n\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: [response0] });\n\n // when\n const result = await datasource.getTransactionDescriptorsPayload({\n templateId,\n });\n\n // then\n expect(result).toEqual(Right(response0));\n });\n\n it(\"should return an error when data is undefined\", async () => {\n // given\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: undefined });\n\n // when\n const result = await datasource.getTransactionDescriptorsPayload({\n templateId,\n });\n\n // then\n expect(result).toEqual(\n Left(\n new Error(\n `[ContextModule] HttpSolanaLifiDataSource: no transaction descriptors for id ${templateId}`,\n ),\n ),\n );\n });\n\n it(\"should return an error when data array is empty\", async () => {\n // given\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: [] });\n\n // when\n const result = await datasource.getTransactionDescriptorsPayload({\n templateId,\n });\n\n // then\n expect(result).toEqual(\n Left(\n new Error(\n `[ContextModule] HttpSolanaLifiDataSource: no transaction descriptors for id ${templateId}`,\n ),\n ),\n );\n });\n\n it(\"should return an error when first element is falsy\", async () => {\n // given\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: [undefined] });\n\n // when\n const result = await datasource.getTransactionDescriptorsPayload({\n templateId,\n });\n\n // then\n expect(result).toEqual(\n Left(\n new Error(\n `[ContextModule] HttpSolanaLifiDataSource: no transaction descriptors for id ${templateId}`,\n ),\n ),\n );\n });\n\n it(\"should return an error when axios throws\", async () => {\n // given\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"network\"));\n\n // when\n const result = await datasource.getTransactionDescriptorsPayload({\n templateId,\n });\n\n // then\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpSolanaLifiDataSource: Failed to fetch transaction descriptors\",\n ),\n ),\n );\n });\n});\n"],
5
+ "mappings": "wdAEA,IAAAA,EAAkB,oBAClBC,EAA4B,qBAC5BC,EAAgE,kBAGhEC,EAA6C,yCAC7CC,EAAoB,iCAEpBC,EAAyC,sCAMzC,KAAG,KAAK,OAAO,KAEf,YAAS,2BAA4B,IAAM,CACzC,IAAIC,EACJ,MAAMC,EAAa,UACbC,EAA8B,CAClC,IAAK,CACH,IAAK,kDACL,KAAM,OACN,OAAQ,MACV,CACF,KAEA,aAAU,IAAM,CACdF,EAAa,IAAI,2BAAyBE,CAAM,CAClD,CAAC,KAED,cAAW,IAAM,CACf,KAAG,cAAc,CACnB,CAAC,KAED,MAAG,6EAA8E,SAAY,CAE3F,MAAMC,EAAa,KAAG,GAAG,IAAM,QAAQ,QAAQ,CAAE,KAAM,CAAC,CAAE,CAAC,CAAC,EAC5D,KAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,mBAAmBD,CAAU,EAGxD,MAAMH,EAAW,iCAAiC,CAAE,WAAAC,CAAW,CAAC,KAGhE,UAAOE,CAAU,EAAE,sBAAsB,CAAC,KAC1C,UAAOA,CAAU,EAAE,qBACjB,SAAO,iBAAiB,CACtB,OAAQ,MACR,IAAK,GAAGD,EAAO,IAAI,GAAG,kBACtB,OAAQ,CACN,YAAaD,EACb,OAAQ,uCAGR,IAAK,qDACP,EACA,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAI,QAAQ,OAAO,EACnE,CACF,CAAC,CACH,CACF,CAAC,KAED,MAAG,0EAA2E,SAAY,CAExF,MAAMC,EAA+C,CACnD,YAAa,CACX,KAAM,CAAE,UAAW,cAAe,SAAU,CAAC,EAAG,KAAM,MAAO,CAC/D,CACF,EAEA,KAAG,MAAM,EAAAF,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAM,CAACE,CAAS,CAAE,CAAC,EAGlE,MAAMC,EAAS,MAAMP,EAAW,iCAAiC,CAC/D,WAAAC,CACF,CAAC,KAGD,UAAOM,CAAM,EAAE,WAAQ,SAAMD,CAAS,CAAC,CACzC,CAAC,KAED,MAAG,gDAAiD,SAAY,CAE9D,KAAG,MAAM,EAAAF,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAM,MAAU,CAAC,EAGhE,MAAMG,EAAS,MAAMP,EAAW,iCAAiC,CAC/D,WAAAC,CACF,CAAC,KAGD,UAAOM,CAAM,EAAE,WACb,QACE,IAAI,MACF,+EAA+EN,CAAU,EAC3F,CACF,CACF,CACF,CAAC,KAED,MAAG,kDAAmD,SAAY,CAEhE,KAAG,MAAM,EAAAG,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAM,CAAC,CAAE,CAAC,EAGzD,MAAMG,EAAS,MAAMP,EAAW,iCAAiC,CAC/D,WAAAC,CACF,CAAC,KAGD,UAAOM,CAAM,EAAE,WACb,QACE,IAAI,MACF,+EAA+EN,CAAU,EAC3F,CACF,CACF,CACF,CAAC,KAED,MAAG,qDAAsD,SAAY,CAEnE,KAAG,MAAM,EAAAG,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAM,CAAC,MAAS,CAAE,CAAC,EAGlE,MAAMG,EAAS,MAAMP,EAAW,iCAAiC,CAC/D,WAAAC,CACF,CAAC,KAGD,UAAOM,CAAM,EAAE,WACb,QACE,IAAI,MACF,+EAA+EN,CAAU,EAC3F,CACF,CACF,CACF,CAAC,KAED,MAAG,2CAA4C,SAAY,CAEzD,KAAG,MAAM,EAAAG,QAAO,SAAS,EAAE,kBAAkB,IAAI,MAAM,SAAS,CAAC,EAGjE,MAAMG,EAAS,MAAMP,EAAW,iCAAiC,CAC/D,WAAAC,CACF,CAAC,KAGD,UAAOM,CAAM,EAAE,WACb,QACE,IAAI,MACF,mFACF,CACF,CACF,CACF,CAAC,CACH,CAAC",
6
+ "names": ["import_axios", "import_purify_ts", "import_vitest", "import_HttpHeaders", "import_package", "import_HttpSolanaLifiDataSource", "datasource", "templateId", "config", "requestSpy", "axios", "PACKAGE", "response0", "result"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var a=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var c=(t,r,o,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let e of n(r))!p.call(t,e)&&e!==o&&a(t,e,{get:()=>r[e],enumerable:!(s=i(r,e))||s.enumerable});return t};var m=t=>c(a({},"__esModule",{value:!0}),t);var D={};module.exports=m(D);
2
+ //# sourceMappingURL=SolanaLifiDataSource.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/solanaLifi/data/SolanaLifiDataSource.ts"],
4
+ "sourcesContent": ["import { type Either } from \"purify-ts\";\n\nimport { type SolanaTransactionDescriptorList } from \"@/shared/model/SolanaContextTypes\";\n\nexport type GetTransactionDescriptorsParams = {\n templateId: string;\n};\n\nexport type GetTransactionDescriptorsResponse = {\n [key: string]: unknown;\n descriptors: SolanaTransactionDescriptorList;\n};\n\nexport interface SolanaLifiDataSource {\n getTransactionDescriptorsPayload(\n params: GetTransactionDescriptorsParams,\n ): Promise<Either<Error, GetTransactionDescriptorsResponse>>;\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["SolanaLifiDataSource_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var r=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var L=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var c=(o,a)=>{for(var i in a)r(o,i,{get:a[i],enumerable:!0})},u=(o,a,i,f)=>{if(a&&typeof a=="object"||typeof a=="function")for(let t of L(a))!S.call(o,t)&&t!==i&&r(o,t,{get:()=>a[t],enumerable:!(f=p(a,t))||f.enumerable});return o};var d=o=>u(r({},"__esModule",{value:!0}),o);var x={};c(x,{solanaLifiModuleFactory:()=>s});module.exports=d(x);var n=require("inversify"),l=require("../../solanaLifi/data/HttpSolanaLifiDataSource"),m=require("../../solanaLifi/domain/SolanaLifiContextLoader"),e=require("./solanaLifiTypes");const s=()=>new n.ContainerModule(({bind:o})=>{o(e.lifiTypes.SolanaLifiDataSource).to(l.HttpSolanaLifiDataSource),o(e.lifiTypes.SolanaLifiContextLoader).to(m.SolanaLifiContextLoader)});0&&(module.exports={solanaLifiModuleFactory});
2
+ //# sourceMappingURL=lifiModuleFactory.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/solanaLifi/di/lifiModuleFactory.ts"],
4
+ "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { HttpSolanaLifiDataSource } from \"@/solanaLifi/data/HttpSolanaLifiDataSource\";\nimport { SolanaLifiContextLoader } from \"@/solanaLifi/domain/SolanaLifiContextLoader\";\n\nimport { lifiTypes } from \"./solanaLifiTypes\";\n\nexport const solanaLifiModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(lifiTypes.SolanaLifiDataSource).to(HttpSolanaLifiDataSource);\n bind(lifiTypes.SolanaLifiContextLoader).to(SolanaLifiContextLoader);\n });\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,qBAEhCC,EAAyC,sDACzCC,EAAwC,uDAExCC,EAA0B,6BAEnB,MAAML,EAA0B,IACrC,IAAI,kBAAgB,CAAC,CAAE,KAAAM,CAAK,IAAM,CAChCA,EAAK,YAAU,oBAAoB,EAAE,GAAG,0BAAwB,EAChEA,EAAK,YAAU,uBAAuB,EAAE,GAAG,yBAAuB,CACpE,CAAC",
6
+ "names": ["lifiModuleFactory_exports", "__export", "solanaLifiModuleFactory", "__toCommonJS", "import_inversify", "import_HttpSolanaLifiDataSource", "import_SolanaLifiContextLoader", "import_solanaLifiTypes", "bind"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var t=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var r=(a,o)=>{for(var e in o)t(a,e,{get:o[e],enumerable:!0})},L=(a,o,e,S)=>{if(o&&typeof o=="object"||typeof o=="function")for(let i of l(o))!n.call(a,i)&&i!==e&&t(a,i,{get:()=>o[i],enumerable:!(S=f(o,i))||S.enumerable});return a};var c=a=>L(t({},"__esModule",{value:!0}),a);var y={};r(y,{lifiTypes:()=>x});module.exports=c(y);const x={SolanaLifiDataSource:Symbol.for("SolanaLifiDataSource"),SolanaLifiContextLoader:Symbol.for("SolanaLifiContextLoader")};0&&(module.exports={lifiTypes});
2
+ //# sourceMappingURL=solanaLifiTypes.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/solanaLifi/di/solanaLifiTypes.ts"],
4
+ "sourcesContent": ["export const lifiTypes = {\n SolanaLifiDataSource: Symbol.for(\"SolanaLifiDataSource\"),\n SolanaLifiContextLoader: Symbol.for(\"SolanaLifiContextLoader\"),\n};\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,EAAY,CACvB,qBAAsB,OAAO,IAAI,sBAAsB,EACvD,wBAAyB,OAAO,IAAI,yBAAyB,CAC/D",
6
+ "names": ["solanaLifiTypes_exports", "__export", "lifiTypes", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var r=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var L=(n,t)=>{for(var e in t)r(n,e,{get:t[e],enumerable:!0})},I=(n,t,e,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of d(t))!y.call(n,a)&&a!==e&&r(n,a,{get:()=>t[a],enumerable:!(o=u(t,a))||o.enumerable});return n};var T=n=>I(r({},"__esModule",{value:!0}),n),S=(n,t,e,o)=>{for(var a=o>1?void 0:o?u(t,e):t,p=n.length-1,c;p>=0;p--)(c=n[p])&&(a=(o?c(t,e,a):c(a))||a);return o&&a&&r(t,e,a),a},f=(n,t)=>(e,o)=>t(e,o,n);var R={};L(R,{SolanaLifiContextLoader:()=>i});module.exports=T(R);var s=require("inversify"),l=require("../../shared/model/SolanaContextTypes"),m=require("../../solanaLifi/di/solanaLifiTypes");let i=class{constructor(t){this.dataSource=t}canHandle(t,e){if(e!==l.SolanaContextTypes.SOLANA_LIFI)return!1;if(typeof t=="object"&&t!==null&&"templateId"in t){const o=t.templateId;return typeof o=="string"&&o.length>0}return!1}async loadField(t){const{templateId:e}=t;return(await this.dataSource.getTransactionDescriptorsPayload({templateId:e})).caseOf({Left:a=>({type:l.SolanaContextTypes.ERROR,error:a}),Right:a=>({type:l.SolanaContextTypes.SOLANA_LIFI,payload:this.pluckTransactionData(a)})})}pluckTransactionData(t){return{...t.descriptors}}};i=S([(0,s.injectable)(),f(0,(0,s.inject)(m.lifiTypes.SolanaLifiDataSource))],i);0&&(module.exports={SolanaLifiContextLoader});
2
+ //# sourceMappingURL=SolanaLifiContextLoader.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/solanaLifi/domain/SolanaLifiContextLoader.ts"],
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\n\nimport { ContextFieldLoader } from \"@/shared/domain/ContextFieldLoader\";\nimport {\n SolanaContextTypes,\n SolanaLifiContextResult,\n SolanaTransactionDescriptorList,\n} from \"@/shared/model/SolanaContextTypes\";\nimport { SolanaTransactionContext } from \"@/solana/domain/solanaContextTypes\";\nimport {\n GetTransactionDescriptorsResponse,\n type SolanaLifiDataSource,\n} from \"@/solanaLifi/data/SolanaLifiDataSource\";\nimport { lifiTypes } from \"@/solanaLifi/di/solanaLifiTypes\";\n\ntype SolanaLifiFieldInput = SolanaTransactionContext & {\n templateId: string;\n};\n\n@injectable()\nexport class SolanaLifiContextLoader\n implements\n ContextFieldLoader<\n SolanaLifiFieldInput,\n SolanaContextTypes,\n SolanaLifiContextResult\n >\n{\n constructor(\n @inject(lifiTypes.SolanaLifiDataSource)\n private readonly dataSource: SolanaLifiDataSource,\n ) {}\n\n public canHandle(\n field: unknown,\n expectedType: SolanaContextTypes,\n ): field is SolanaLifiFieldInput {\n if (expectedType !== SolanaContextTypes.SOLANA_LIFI) return false;\n\n if (typeof field === \"object\" && field !== null && \"templateId\" in field) {\n const templateId = (field as { templateId: unknown }).templateId;\n return typeof templateId === \"string\" && templateId.length > 0;\n }\n\n return false;\n }\n\n public async loadField(\n solanaTokenContextInput: SolanaLifiFieldInput,\n ): Promise<SolanaLifiContextResult> {\n const { templateId } = solanaTokenContextInput;\n\n const payload = await this.dataSource.getTransactionDescriptorsPayload({\n templateId,\n });\n\n return payload.caseOf({\n Left: (error): SolanaLifiContextResult => ({\n type: SolanaContextTypes.ERROR,\n error,\n }),\n Right: (value): SolanaLifiContextResult => ({\n type: SolanaContextTypes.SOLANA_LIFI,\n payload: this.pluckTransactionData(value),\n }),\n });\n }\n\n private pluckTransactionData(\n tokenData: GetTransactionDescriptorsResponse,\n ): SolanaTransactionDescriptorList {\n return {\n ...tokenData.descriptors,\n };\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,qBAGnCC,EAIO,6CAMPC,EAA0B,2CAOnB,IAAMC,EAAN,KAOP,CACE,YAEmBC,EACjB,CADiB,gBAAAA,CAChB,CAEI,UACLC,EACAC,EAC+B,CAC/B,GAAIA,IAAiB,qBAAmB,YAAa,MAAO,GAE5D,GAAI,OAAOD,GAAU,UAAYA,IAAU,MAAQ,eAAgBA,EAAO,CACxE,MAAME,EAAcF,EAAkC,WACtD,OAAO,OAAOE,GAAe,UAAYA,EAAW,OAAS,CAC/D,CAEA,MAAO,EACT,CAEA,MAAa,UACXC,EACkC,CAClC,KAAM,CAAE,WAAAD,CAAW,EAAIC,EAMvB,OAJgB,MAAM,KAAK,WAAW,iCAAiC,CACrE,WAAAD,CACF,CAAC,GAEc,OAAO,CACpB,KAAOE,IAAoC,CACzC,KAAM,qBAAmB,MACzB,MAAAA,CACF,GACA,MAAQC,IAAoC,CAC1C,KAAM,qBAAmB,YACzB,QAAS,KAAK,qBAAqBA,CAAK,CAC1C,EACF,CAAC,CACH,CAEQ,qBACNC,EACiC,CACjC,MAAO,CACL,GAAGA,EAAU,WACf,CACF,CACF,EAvDaR,EAANS,EAAA,IADN,cAAW,EAUPC,EAAA,eAAO,YAAU,oBAAoB,IAT7BV",
6
+ "names": ["SolanaLifiContextLoader_exports", "__export", "SolanaLifiContextLoader", "__toCommonJS", "import_inversify", "import_SolanaContextTypes", "import_solanaLifiTypes", "SolanaLifiContextLoader", "dataSource", "field", "expectedType", "templateId", "solanaTokenContextInput", "error", "value", "tokenData", "__decorateClass", "__decorateParam"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var l=require("purify-ts"),a=require("vitest"),t=require("../../shared/model/SolanaContextTypes"),d=require("./SolanaLifiContextLoader");(0,a.describe)("SolanaLifiContextLoader",()=>{let o;const c={swap:{programId:"SomeProgram",accounts:[],data:"abc123"},bridge:{programId:"AnotherProgram",accounts:[],data:"def456"}},i={descriptors:c};(0,a.beforeEach)(()=>{a.vi.restoreAllMocks(),o={getTransactionDescriptorsPayload:a.vi.fn()}});const r=()=>new d.SolanaLifiContextLoader(o);(0,a.describe)("canHandle",()=>{(0,a.it)("returns true when templateId is provided",()=>{const e=r();(0,a.expect)(e.canHandle({templateId:"tpl-123",deviceModelId:"nanoS"},t.SolanaContextTypes.SOLANA_LIFI)).toBe(!0)}),(0,a.it)("returns false when templateId is missing or falsy",()=>{const e=r();(0,a.expect)(e.canHandle({templateId:""},t.SolanaContextTypes.SOLANA_LIFI)).toBe(!1),(0,a.expect)(e.canHandle({templateId:void 0},t.SolanaContextTypes.SOLANA_LIFI)).toBe(!1),(0,a.expect)(e.canHandle({},t.SolanaContextTypes.SOLANA_LIFI)).toBe(!1)})}),(0,a.describe)("loadField",()=>{(0,a.it)("returns an error when datasource returns Left(error)",async()=>{const e=r(),n=new Error("boom");a.vi.spyOn(o,"getTransactionDescriptorsPayload").mockResolvedValue((0,l.Left)(n));const s={templateId:"tpl-err",deviceModelId:"nanoS"},p=await e.loadField(s);(0,a.expect)(o.getTransactionDescriptorsPayload).toHaveBeenCalledWith({templateId:"tpl-err"}),(0,a.expect)(p).toEqual({type:t.SolanaContextTypes.ERROR,error:n})}),(0,a.it)("returns SOLANA_LIFI with plucked descriptors when datasource returns Right(value)",async()=>{const e=r();a.vi.spyOn(o,"getTransactionDescriptorsPayload").mockResolvedValue((0,l.Right)(i));const n={templateId:"tpl-ok",deviceModelId:"nanoS"},s=await e.loadField(n);(0,a.expect)(o.getTransactionDescriptorsPayload).toHaveBeenCalledWith({templateId:"tpl-ok"}),(0,a.expect)(s).toEqual({type:t.SolanaContextTypes.SOLANA_LIFI,payload:c})})}),(0,a.describe)("pluckTransactionData (private)",()=>{(0,a.it)("simply returns the descriptors object from the response",()=>{const e=r(),s=e.pluckTransactionData.bind(e)(i);(0,a.expect)(s).toEqual(c)})})});
2
+ //# sourceMappingURL=SolanaLifiContextLoader.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/solanaLifi/domain/SolanaLifiContextLoader.test.ts"],
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { Left, Right } from \"purify-ts\";\nimport { beforeEach, describe, expect, it, vi } from \"vitest\";\n\nimport {\n SolanaContextTypes,\n type SolanaTransactionDescriptorList,\n} from \"@/shared/model/SolanaContextTypes\";\nimport {\n type GetTransactionDescriptorsResponse,\n type SolanaLifiDataSource,\n} from \"@/solanaLifi/data/SolanaLifiDataSource\";\n\nimport { SolanaLifiContextLoader } from \"./SolanaLifiContextLoader\";\n\ndescribe(\"SolanaLifiContextLoader\", () => {\n let mockDataSource: SolanaLifiDataSource;\n\n const descriptors: SolanaTransactionDescriptorList = {\n // Shape not important for the loader: it's plucked verbatim\n swap: { programId: \"SomeProgram\", accounts: [], data: \"abc123\" } as any,\n bridge: {\n programId: \"AnotherProgram\",\n accounts: [],\n data: \"def456\",\n } as any,\n };\n\n const txDescriptorsResponse: GetTransactionDescriptorsResponse = {\n descriptors,\n } as any;\n\n beforeEach(() => {\n vi.restoreAllMocks();\n mockDataSource = {\n getTransactionDescriptorsPayload: vi.fn(),\n } as unknown as SolanaLifiDataSource;\n });\n\n const makeLoader = () => new SolanaLifiContextLoader(mockDataSource);\n\n describe(\"canHandle\", () => {\n it(\"returns true when templateId is provided\", () => {\n const loader = makeLoader();\n\n expect(\n loader.canHandle(\n {\n templateId: \"tpl-123\",\n deviceModelId: \"nanoS\" as any,\n },\n SolanaContextTypes.SOLANA_LIFI,\n ),\n ).toBe(true);\n });\n\n it(\"returns false when templateId is missing or falsy\", () => {\n const loader = makeLoader();\n\n expect(\n loader.canHandle(\n { templateId: \"\" } as any,\n SolanaContextTypes.SOLANA_LIFI,\n ),\n ).toBe(false);\n expect(\n loader.canHandle(\n { templateId: undefined } as any,\n SolanaContextTypes.SOLANA_LIFI,\n ),\n ).toBe(false);\n expect(loader.canHandle({} as any, SolanaContextTypes.SOLANA_LIFI)).toBe(\n false,\n );\n });\n });\n\n describe(\"loadField\", () => {\n it(\"returns an error when datasource returns Left(error)\", async () => {\n const loader = makeLoader();\n const error = new Error(\"boom\");\n vi.spyOn(\n mockDataSource,\n \"getTransactionDescriptorsPayload\",\n ).mockResolvedValue(Left(error));\n const input = { templateId: \"tpl-err\", deviceModelId: \"nanoS\" as any };\n const result = await loader.loadField(input);\n\n expect(\n mockDataSource.getTransactionDescriptorsPayload,\n ).toHaveBeenCalledWith({\n templateId: \"tpl-err\",\n });\n expect(result).toEqual({\n type: SolanaContextTypes.ERROR,\n error,\n });\n });\n\n it(\"returns SOLANA_LIFI with plucked descriptors when datasource returns Right(value)\", async () => {\n const loader = makeLoader();\n vi.spyOn(\n mockDataSource,\n \"getTransactionDescriptorsPayload\",\n ).mockResolvedValue(Right(txDescriptorsResponse));\n const input = { templateId: \"tpl-ok\", deviceModelId: \"nanoS\" as any };\n const result = await loader.loadField(input);\n\n expect(\n mockDataSource.getTransactionDescriptorsPayload,\n ).toHaveBeenCalledWith({\n templateId: \"tpl-ok\",\n });\n expect(result).toEqual({\n type: SolanaContextTypes.SOLANA_LIFI,\n payload: descriptors,\n });\n });\n });\n\n describe(\"pluckTransactionData (private)\", () => {\n it(\"simply returns the descriptors object from the response\", () => {\n const loader = makeLoader();\n const pluck = (loader as any).pluckTransactionData.bind(loader);\n\n const result = pluck(txDescriptorsResponse);\n\n expect(result).toEqual(descriptors);\n });\n });\n});\n"],
5
+ "mappings": "aAIA,IAAAA,EAA4B,qBAC5BC,EAAqD,kBAErDC,EAGO,6CAMPC,EAAwC,wCAExC,YAAS,0BAA2B,IAAM,CACxC,IAAIC,EAEJ,MAAMC,EAA+C,CAEnD,KAAM,CAAE,UAAW,cAAe,SAAU,CAAC,EAAG,KAAM,QAAS,EAC/D,OAAQ,CACN,UAAW,iBACX,SAAU,CAAC,EACX,KAAM,QACR,CACF,EAEMC,EAA2D,CAC/D,YAAAD,CACF,KAEA,cAAW,IAAM,CACf,KAAG,gBAAgB,EACnBD,EAAiB,CACf,iCAAkC,KAAG,GAAG,CAC1C,CACF,CAAC,EAED,MAAMG,EAAa,IAAM,IAAI,0BAAwBH,CAAc,KAEnE,YAAS,YAAa,IAAM,IAC1B,MAAG,2CAA4C,IAAM,CACnD,MAAMI,EAASD,EAAW,KAE1B,UACEC,EAAO,UACL,CACE,WAAY,UACZ,cAAe,OACjB,EACA,qBAAmB,WACrB,CACF,EAAE,KAAK,EAAI,CACb,CAAC,KAED,MAAG,oDAAqD,IAAM,CAC5D,MAAMA,EAASD,EAAW,KAE1B,UACEC,EAAO,UACL,CAAE,WAAY,EAAG,EACjB,qBAAmB,WACrB,CACF,EAAE,KAAK,EAAK,KACZ,UACEA,EAAO,UACL,CAAE,WAAY,MAAU,EACxB,qBAAmB,WACrB,CACF,EAAE,KAAK,EAAK,KACZ,UAAOA,EAAO,UAAU,CAAC,EAAU,qBAAmB,WAAW,CAAC,EAAE,KAClE,EACF,CACF,CAAC,CACH,CAAC,KAED,YAAS,YAAa,IAAM,IAC1B,MAAG,uDAAwD,SAAY,CACrE,MAAMA,EAASD,EAAW,EACpBE,EAAQ,IAAI,MAAM,MAAM,EAC9B,KAAG,MACDL,EACA,kCACF,EAAE,qBAAkB,QAAKK,CAAK,CAAC,EAC/B,MAAMC,EAAQ,CAAE,WAAY,UAAW,cAAe,OAAe,EAC/DC,EAAS,MAAMH,EAAO,UAAUE,CAAK,KAE3C,UACEN,EAAe,gCACjB,EAAE,qBAAqB,CACrB,WAAY,SACd,CAAC,KACD,UAAOO,CAAM,EAAE,QAAQ,CACrB,KAAM,qBAAmB,MACzB,MAAAF,CACF,CAAC,CACH,CAAC,KAED,MAAG,oFAAqF,SAAY,CAClG,MAAMD,EAASD,EAAW,EAC1B,KAAG,MACDH,EACA,kCACF,EAAE,qBAAkB,SAAME,CAAqB,CAAC,EAChD,MAAMI,EAAQ,CAAE,WAAY,SAAU,cAAe,OAAe,EAC9DC,EAAS,MAAMH,EAAO,UAAUE,CAAK,KAE3C,UACEN,EAAe,gCACjB,EAAE,qBAAqB,CACrB,WAAY,QACd,CAAC,KACD,UAAOO,CAAM,EAAE,QAAQ,CACrB,KAAM,qBAAmB,YACzB,QAASN,CACX,CAAC,CACH,CAAC,CACH,CAAC,KAED,YAAS,iCAAkC,IAAM,IAC/C,MAAG,0DAA2D,IAAM,CAClE,MAAMG,EAASD,EAAW,EAGpBI,EAFSH,EAAe,qBAAqB,KAAKA,CAAM,EAEzCF,CAAqB,KAE1C,UAAOK,CAAM,EAAE,QAAQN,CAAW,CACpC,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["import_purify_ts", "import_vitest", "import_SolanaContextTypes", "import_SolanaLifiContextLoader", "mockDataSource", "descriptors", "txDescriptorsResponse", "makeLoader", "loader", "error", "input", "result"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var T=Object.create;var a=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var R=(e,o)=>{for(var r in o)a(e,r,{get:o[r],enumerable:!0})},p=(e,o,r,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of x(o))!C.call(e,t)&&t!==r&&a(e,t,{get:()=>o[t],enumerable:!(n=l(o,t))||n.enumerable});return e};var d=(e,o,r)=>(r=e!=null?T(y(e)):{},p(o||!e||!e.__esModule?a(r,"default",{value:e,enumerable:!0}):r,e)),b=e=>p(a({},"__esModule",{value:!0}),e),u=(e,o,r,n)=>{for(var t=n>1?void 0:n?l(o,r):o,m=e.length-1,f;m>=0;m--)(f=e[m])&&(t=(n?f(o,r,t):f(t))||t);return n&&t&&a(o,r,t),t},h=(e,o)=>(r,n)=>o(r,n,e);var w={};R(w,{HttpSolanaTokenDataSource:()=>i});module.exports=b(w);var _=d(require("axios")),c=require("inversify"),s=require("purify-ts"),g=require("../../config/di/configTypes"),k=require("../../shared/constant/HttpHeaders"),E=d(require("../../../package.json"));let i=class{constructor(o){this.config=o}async getTokenInfosPayload({tokenInternalId:o}){try{const{data:r}=await _.default.request({method:"GET",url:`${this.config.cal.url}/tokens`,params:{id:o,output:"id,name,network,network_family,network_type,exchange_app_config_serialized,live_signature,ticker,decimals,blockchain_name,chain_id,contract_address,descriptor,descriptor_exchange_app,units,symbol",ref:`branch:${this.config.cal.branch}`},headers:{[k.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${E.default.version}`}});return!r||r.length===0||!r[0]?(0,s.Left)(new Error(`[ContextModule] HttpSolanaTokenDataSource: no token metadata for id ${o}`)):(0,s.Right)(r[0])}catch{return(0,s.Left)(new Error("[ContextModule] HttpSolanaTokenDataSource: Failed to fetch token informations"))}}};i=u([(0,c.injectable)(),h(0,(0,c.inject)(g.configTypes.Config))],i);0&&(module.exports={HttpSolanaTokenDataSource});
2
+ //# sourceMappingURL=HttpSolanaTokenDataSource.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/solanaToken/data/HttpSolanaTokenDataSource.ts"],
4
+ "sourcesContent": ["import axios from \"axios\";\nimport { inject, injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { LEDGER_CLIENT_VERSION_HEADER } from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nimport {\n GetSolanaTokenInfosParams,\n SolanaTokenDataSource,\n TokenDataResponse,\n} from \"./SolanaTokenDataSource\";\n\n@injectable()\nexport class HttpSolanaTokenDataSource implements SolanaTokenDataSource {\n constructor(\n @inject(configTypes.Config) private readonly config: ContextModuleConfig,\n ) {}\n public async getTokenInfosPayload({\n tokenInternalId,\n }: GetSolanaTokenInfosParams): Promise<Either<Error, TokenDataResponse>> {\n try {\n const { data } = await axios.request<TokenDataResponse[]>({\n method: \"GET\",\n url: `${this.config.cal.url}/tokens`,\n params: {\n id: tokenInternalId,\n output:\n \"id,name,network,network_family,network_type,exchange_app_config_serialized,live_signature,ticker,decimals,blockchain_name,chain_id,contract_address,descriptor,descriptor_exchange_app,units,symbol\",\n ref: `branch:${this.config.cal.branch}`,\n },\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n },\n });\n\n if (!data || data.length === 0 || !data[0]) {\n return Left(\n new Error(\n `[ContextModule] HttpSolanaTokenDataSource: no token metadata for id ${tokenInternalId}`,\n ),\n );\n }\n\n return Right(data[0]);\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpSolanaTokenDataSource: Failed to fetch token informations\",\n ),\n );\n }\n }\n}\n"],
5
+ "mappings": "qtBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,+BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkB,oBAClBC,EAAmC,qBACnCC,EAAoC,qBAEpCC,EAA4B,mCAE5BC,EAA6C,yCAC7CC,EAAoB,iCASb,IAAMC,EAAN,KAAiE,CACtE,YAC+CC,EAC7C,CAD6C,YAAAA,CAC5C,CACH,MAAa,qBAAqB,CAChC,gBAAAC,CACF,EAAyE,CACvE,GAAI,CACF,KAAM,CAAE,KAAAC,CAAK,EAAI,MAAM,EAAAC,QAAM,QAA6B,CACxD,OAAQ,MACR,IAAK,GAAG,KAAK,OAAO,IAAI,GAAG,UAC3B,OAAQ,CACN,GAAIF,EACJ,OACE,sMACF,IAAK,UAAU,KAAK,OAAO,IAAI,MAAM,EACvC,EACA,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAG,QAAQ,OAAO,EACnE,CACF,CAAC,EAED,MAAI,CAACF,GAAQA,EAAK,SAAW,GAAK,CAACA,EAAK,CAAC,KAChC,QACL,IAAI,MACF,uEAAuED,CAAe,EACxF,CACF,KAGK,SAAMC,EAAK,CAAC,CAAC,CACtB,MAAiB,CACf,SAAO,QACL,IAAI,MACF,+EACF,CACF,CACF,CACF,CACF,EAvCaH,EAANM,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,cAAY,MAAM,IAFjBP",
6
+ "names": ["HttpSolanaTokenDataSource_exports", "__export", "HttpSolanaTokenDataSource", "__toCommonJS", "import_axios", "import_inversify", "import_purify_ts", "import_configTypes", "import_HttpHeaders", "import_package", "HttpSolanaTokenDataSource", "config", "tokenInternalId", "data", "axios", "PACKAGE", "__decorateClass", "__decorateParam"]
7
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";var h=Object.create;var c=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty;var S=(a,t,n,l)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of k(t))!E.call(a,o)&&o!==n&&c(a,o,{get:()=>t[o],enumerable:!(l=y(t,o))||l.enumerable});return a};var d=(a,t,n)=>(n=a!=null?h(g(a)):{},S(t||!a||!a.__esModule?c(n,"default",{value:a,enumerable:!0}):n,a));var r=d(require("axios")),s=require("purify-ts"),e=require("vitest"),u=require("../../shared/constant/HttpHeaders"),m=d(require("../../../package.json")),p=require("./HttpSolanaTokenDataSource");e.vi.mock("axios");(0,e.describe)("HttpSolanaTokenDataSource",()=>{let a;const t="sol:usdc",n={cal:{url:"https://crypto-assets-service.api.ledger.com/v1",mode:"prod",branch:"main"}},l=o=>`[ContextModule] HttpSolanaTokenDataSource: no token metadata for id ${o}`;(0,e.beforeAll)(()=>{a=new p.HttpSolanaTokenDataSource(n)}),(0,e.beforeEach)(()=>{e.vi.clearAllMocks()}),(0,e.it)("should call axios with the ledger client version header and correct params",async()=>{const o=e.vi.fn(()=>Promise.resolve({data:[]}));e.vi.spyOn(r.default,"request").mockImplementation(o),await a.getTokenInfosPayload({tokenInternalId:t}),(0,e.expect)(o).toHaveBeenCalledTimes(1),(0,e.expect)(o).toHaveBeenCalledWith(e.expect.objectContaining({method:"GET",url:`${n.cal.url}/tokens`,params:e.expect.objectContaining({id:t,ref:`branch:${n.cal.branch}`}),headers:{[u.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${m.default.version}`}}))}),(0,e.it)("should return Right(data[0]) when axios responds with a non-empty array",async()=>{const o={descriptor:{data:"ABCD",signatures:{prod:"SIG-PROD",test:"SIG-TEST"}}};e.vi.spyOn(r.default,"request").mockResolvedValue({data:[o]});const i=await a.getTokenInfosPayload({tokenInternalId:t});(0,e.expect)(i).toEqual((0,s.Right)(o))}),e.describe.each`
2
+ caseName | apiResponse
3
+ ${"data is undefined"} | ${{data:void 0}}
4
+ ${"data array is empty"} | ${{data:[]}}
5
+ ${"first element is falsy"} | ${{data:[void 0]}}
6
+ `("Error cases",({caseName:o,apiResponse:i})=>{(0,e.it)(`should return an error when ${o}`,async()=>{e.vi.spyOn(r.default,"request").mockResolvedValue(i);const f=await a.getTokenInfosPayload({tokenInternalId:t});(0,e.expect)(f).toEqual((0,s.Left)(new Error(l(t))))})}),(0,e.it)("should return an error when axios throws",async()=>{e.vi.spyOn(r.default,"request").mockRejectedValue(new Error("network"));const o=await a.getTokenInfosPayload({tokenInternalId:t});(0,e.expect)(o).toEqual((0,s.Left)(new Error("[ContextModule] HttpSolanaTokenDataSource: Failed to fetch token informations")))})});
7
+ //# sourceMappingURL=HttpSolanaTokenDataSource.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/solanaToken/data/HttpSolanaTokenDataSource.test.ts"],
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport axios from \"axios\";\nimport { Left, Right } from \"purify-ts\";\nimport { beforeAll, beforeEach, describe, expect, it, vi } from \"vitest\";\n\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { LEDGER_CLIENT_VERSION_HEADER } from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nimport { HttpSolanaTokenDataSource } from \"./HttpSolanaTokenDataSource\";\nimport {\n type SolanaTokenDataSource,\n type TokenDataResponse,\n} from \"./SolanaTokenDataSource\";\n\nvi.mock(\"axios\");\n\ndescribe(\"HttpSolanaTokenDataSource\", () => {\n let datasource: SolanaTokenDataSource;\n const tokenInternalId = \"sol:usdc\";\n const config: ContextModuleConfig = {\n cal: {\n url: \"https://crypto-assets-service.api.ledger.com/v1\",\n mode: \"prod\",\n branch: \"main\",\n },\n } as ContextModuleConfig;\n\n const errorMessage = (id: string) =>\n `[ContextModule] HttpSolanaTokenDataSource: no token metadata for id ${id}`;\n\n beforeAll(() => {\n datasource = new HttpSolanaTokenDataSource(config);\n });\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"should call axios with the ledger client version header and correct params\", async () => {\n // given\n const requestSpy = vi.fn(() => Promise.resolve({ data: [] }));\n vi.spyOn(axios, \"request\").mockImplementation(requestSpy);\n\n // when\n await datasource.getTokenInfosPayload({ tokenInternalId });\n\n // then\n expect(requestSpy).toHaveBeenCalledTimes(1);\n expect(requestSpy).toHaveBeenCalledWith(\n expect.objectContaining({\n method: \"GET\",\n url: `${config.cal.url}/tokens`,\n params: expect.objectContaining({\n id: tokenInternalId,\n ref: `branch:${config.cal.branch}`,\n }),\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n },\n }),\n );\n });\n\n it(\"should return Right(data[0]) when axios responds with a non-empty array\", async () => {\n // given\n const response0: TokenDataResponse = {\n descriptor: {\n data: \"ABCD\",\n signatures: {\n prod: \"SIG-PROD\",\n test: \"SIG-TEST\",\n } as any,\n },\n } as any;\n\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: [response0] });\n\n // when\n const result = await datasource.getTokenInfosPayload({ tokenInternalId });\n\n // then\n expect(result).toEqual(Right(response0));\n });\n\n describe.each`\n caseName | apiResponse\n ${\"data is undefined\"} | ${{ data: undefined }}\n ${\"data array is empty\"} | ${{ data: [] }}\n ${\"first element is falsy\"} | ${{ data: [undefined] }}\n `(\"Error cases\", ({ caseName, apiResponse }) => {\n it(`should return an error when ${caseName}`, async () => {\n // given\n vi.spyOn(axios, \"request\").mockResolvedValue(apiResponse);\n\n // when\n const result = await datasource.getTokenInfosPayload({ tokenInternalId });\n\n // then\n expect(result).toEqual(Left(new Error(errorMessage(tokenInternalId))));\n });\n });\n\n it(\"should return an error when axios throws\", async () => {\n // given\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"network\"));\n\n // when\n const result = await datasource.getTokenInfosPayload({ tokenInternalId });\n\n // then\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpSolanaTokenDataSource: Failed to fetch token informations\",\n ),\n ),\n );\n });\n});\n"],
5
+ "mappings": "wdAEA,IAAAA,EAAkB,oBAClBC,EAA4B,qBAC5BC,EAAgE,kBAGhEC,EAA6C,yCAC7CC,EAAoB,iCAEpBC,EAA0C,uCAM1C,KAAG,KAAK,OAAO,KAEf,YAAS,4BAA6B,IAAM,CAC1C,IAAIC,EACJ,MAAMC,EAAkB,WAClBC,EAA8B,CAClC,IAAK,CACH,IAAK,kDACL,KAAM,OACN,OAAQ,MACV,CACF,EAEMC,EAAgBC,GACpB,uEAAuEA,CAAE,MAE3E,aAAU,IAAM,CACdJ,EAAa,IAAI,4BAA0BE,CAAM,CACnD,CAAC,KAED,cAAW,IAAM,CACf,KAAG,cAAc,CACnB,CAAC,KAED,MAAG,6EAA8E,SAAY,CAE3F,MAAMG,EAAa,KAAG,GAAG,IAAM,QAAQ,QAAQ,CAAE,KAAM,CAAC,CAAE,CAAC,CAAC,EAC5D,KAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,mBAAmBD,CAAU,EAGxD,MAAML,EAAW,qBAAqB,CAAE,gBAAAC,CAAgB,CAAC,KAGzD,UAAOI,CAAU,EAAE,sBAAsB,CAAC,KAC1C,UAAOA,CAAU,EAAE,qBACjB,SAAO,iBAAiB,CACtB,OAAQ,MACR,IAAK,GAAGH,EAAO,IAAI,GAAG,UACtB,OAAQ,SAAO,iBAAiB,CAC9B,GAAID,EACJ,IAAK,UAAUC,EAAO,IAAI,MAAM,EAClC,CAAC,EACD,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAK,QAAQ,OAAO,EACnE,CACF,CAAC,CACH,CACF,CAAC,KAED,MAAG,0EAA2E,SAAY,CAExF,MAAMC,EAA+B,CACnC,WAAY,CACV,KAAM,OACN,WAAY,CACV,KAAM,WACN,KAAM,UACR,CACF,CACF,EAEA,KAAG,MAAM,EAAAF,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAM,CAACE,CAAS,CAAE,CAAC,EAGlE,MAAMC,EAAS,MAAMT,EAAW,qBAAqB,CAAE,gBAAAC,CAAgB,CAAC,KAGxE,UAAOQ,CAAM,EAAE,WAAQ,SAAMD,CAAS,CAAC,CACzC,CAAC,EAED,WAAS;AAAA;AAAA,MAEL,mBAAmB,WAAW,CAAE,KAAM,MAAU,CAAC;AAAA,MACjD,qBAAqB,SAAS,CAAE,KAAM,CAAC,CAAE,CAAC;AAAA,MAC1C,wBAAwB,MAAM,CAAE,KAAM,CAAC,MAAS,CAAE,CAAC;AAAA,IACrD,cAAe,CAAC,CAAE,SAAAE,EAAU,YAAAC,CAAY,IAAM,IAC9C,MAAG,+BAA+BD,CAAQ,GAAI,SAAY,CAExD,KAAG,MAAM,EAAAJ,QAAO,SAAS,EAAE,kBAAkBK,CAAW,EAGxD,MAAMF,EAAS,MAAMT,EAAW,qBAAqB,CAAE,gBAAAC,CAAgB,CAAC,KAGxE,UAAOQ,CAAM,EAAE,WAAQ,QAAK,IAAI,MAAMN,EAAaF,CAAe,CAAC,CAAC,CAAC,CACvE,CAAC,CACH,CAAC,KAED,MAAG,2CAA4C,SAAY,CAEzD,KAAG,MAAM,EAAAK,QAAO,SAAS,EAAE,kBAAkB,IAAI,MAAM,SAAS,CAAC,EAGjE,MAAMG,EAAS,MAAMT,EAAW,qBAAqB,CAAE,gBAAAC,CAAgB,CAAC,KAGxE,UAAOQ,CAAM,EAAE,WACb,QACE,IAAI,MACF,+EACF,CACF,CACF,CACF,CAAC,CACH,CAAC",
6
+ "names": ["import_axios", "import_purify_ts", "import_vitest", "import_HttpHeaders", "import_package", "import_HttpSolanaTokenDataSource", "datasource", "tokenInternalId", "config", "errorMessage", "id", "requestSpy", "axios", "PACKAGE", "response0", "result", "caseName", "apiResponse"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var s=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var p=(e,t,i,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of o(t))!g.call(e,n)&&n!==i&&s(e,n,{get:()=>t[n],enumerable:!(r=a(t,n))||r.enumerable});return e};var d=e=>p(s({},"__esModule",{value:!0}),e);var c={};module.exports=d(c);
2
+ //# sourceMappingURL=SolanaTokenDataSource.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/solanaToken/data/SolanaTokenDataSource.ts"],
4
+ "sourcesContent": ["import { type Either } from \"purify-ts\";\n\nexport type GetSolanaTokenInfosParams = {\n tokenInternalId: string;\n};\n\nexport type Unit = {\n code: string;\n name: string;\n magnitude: number;\n};\n\nexport type TokenDataResponse = {\n id: string;\n blockchain_name: string;\n chain_id?: number;\n contract_address: string;\n decimals: number;\n descriptor: {\n data: string;\n descriptorType: string;\n signatures: {\n prod: string;\n test: string;\n };\n };\n descriptor_exchange_app: {\n data: string;\n descriptorType: string;\n signatures: {\n prod: string;\n test: string;\n };\n };\n exchange_app_config_serialized: string;\n name: string;\n network: string;\n network_family: string;\n network_type: \"main\" | \"test\";\n symbol: string;\n ticker: string;\n units: Unit[];\n};\n\nexport interface SolanaTokenDataSource {\n getTokenInfosPayload(\n params: GetSolanaTokenInfosParams,\n ): Promise<Either<Error, TokenDataResponse>>;\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["SolanaTokenDataSource_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var t=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var k=(a,o)=>{for(var n in o)t(a,n,{get:o[n],enumerable:!0})},c=(a,o,n,S)=>{if(o&&typeof o=="object"||typeof o=="function")for(let e of r(o))!T.call(a,e)&&e!==n&&t(a,e,{get:()=>o[e],enumerable:!(S=l(o,e))||S.enumerable});return a};var s=a=>c(t({},"__esModule",{value:!0}),a);var y={};k(y,{solanaTokenTypes:()=>x});module.exports=s(y);const x={SolanaTokenDataSource:Symbol.for("SolanaTokenDataSource"),SolanaTokenContextLoader:Symbol.for("SolanaTokenContextLoader")};0&&(module.exports={solanaTokenTypes});
2
+ //# sourceMappingURL=solanaTokenTypes.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/solanaToken/di/solanaTokenTypes.ts"],
4
+ "sourcesContent": ["export const solanaTokenTypes = {\n SolanaTokenDataSource: Symbol.for(\"SolanaTokenDataSource\"),\n SolanaTokenContextLoader: Symbol.for(\"SolanaTokenContextLoader\"),\n};\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,EAAmB,CAC9B,sBAAuB,OAAO,IAAI,uBAAuB,EACzD,yBAA0B,OAAO,IAAI,0BAA0B,CACjE",
6
+ "names": ["solanaTokenTypes_exports", "__export", "solanaTokenTypes", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var n=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var f=(o,a)=>{for(var t in a)n(o,t,{get:a[t],enumerable:!0})},i=(o,a,t,l)=>{if(a&&typeof a=="object"||typeof a=="function")for(let e of S(a))!c.call(o,e)&&e!==t&&n(o,e,{get:()=>a[e],enumerable:!(l=k(a,e))||l.enumerable});return o};var s=o=>i(n({},"__esModule",{value:!0}),o);var d={};f(d,{solanaTokenModuleFactory:()=>u});module.exports=s(d);var m=require("inversify"),p=require("../../solanaToken/data/HttpSolanaTokenDataSource"),r=require("../../solanaToken/di/solanaTokenTypes"),T=require("../../solanaToken/domain/SolanaTokenContextLoader");const u=()=>new m.ContainerModule(({bind:o})=>{o(r.solanaTokenTypes.SolanaTokenDataSource).to(p.HttpSolanaTokenDataSource),o(r.solanaTokenTypes.SolanaTokenContextLoader).to(T.SolanaTokenContextLoader)});0&&(module.exports={solanaTokenModuleFactory});
2
+ //# sourceMappingURL=tokenModuleFactory.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/solanaToken/di/tokenModuleFactory.ts"],
4
+ "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { HttpSolanaTokenDataSource } from \"@/solanaToken/data/HttpSolanaTokenDataSource\";\nimport { solanaTokenTypes } from \"@/solanaToken/di/solanaTokenTypes\";\nimport { SolanaTokenContextLoader } from \"@/solanaToken/domain/SolanaTokenContextLoader\";\n\nexport const solanaTokenModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(solanaTokenTypes.SolanaTokenDataSource).to(HttpSolanaTokenDataSource);\n bind(solanaTokenTypes.SolanaTokenContextLoader).to(\n SolanaTokenContextLoader,\n );\n });\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,qBAEhCC,EAA0C,wDAC1CC,EAAiC,6CACjCC,EAAyC,yDAElC,MAAML,EAA2B,IACtC,IAAI,kBAAgB,CAAC,CAAE,KAAAM,CAAK,IAAM,CAChCA,EAAK,mBAAiB,qBAAqB,EAAE,GAAG,2BAAyB,EACzEA,EAAK,mBAAiB,wBAAwB,EAAE,GAC9C,0BACF,CACF,CAAC",
6
+ "names": ["tokenModuleFactory_exports", "__export", "solanaTokenModuleFactory", "__toCommonJS", "import_inversify", "import_HttpSolanaTokenDataSource", "import_solanaTokenTypes", "import_SolanaTokenContextLoader", "bind"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var s=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var C=(n,e)=>{for(var t in e)s(n,t,{get:e[t],enumerable:!0})},g=(n,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of S(e))!I.call(n,a)&&a!==t&&s(n,a,{get:()=>e[a],enumerable:!(o=k(e,a))||o.enumerable});return n};var x=n=>g(s({},"__esModule",{value:!0}),n),f=(n,e,t,o)=>{for(var a=o>1?void 0:o?k(e,t):e,l=n.length-1,i;l>=0;l--)(i=n[l])&&(a=(o?i(e,t,a):i(a))||a);return o&&a&&s(e,t,a),a},c=(n,e)=>(t,o)=>e(t,o,n);var D={};C(D,{SolanaTokenContextLoader:()=>p});module.exports=x(D);var r=require("inversify"),u=require("../../config/di/configTypes"),m=require("../../pki/di/pkiTypes"),T=require("../../pki/model/KeyUsage"),d=require("../../shared/model/SolanaContextTypes"),y=require("../../solanaToken/di/solanaTokenTypes");let p=class{constructor(e,t,o){this.dataSource=e;this.config=t;this._certificateLoader=o}canHandle(e,t){if(t!==d.SolanaContextTypes.SOLANA_TOKEN||typeof e!="object"||e===null||!("tokenInternalId"in e))return!1;const o=e.tokenInternalId;return typeof o=="string"&&o.length>0}async loadField(e){const{tokenInternalId:t,deviceModelId:o}=e,a=await this.dataSource.getTokenInfosPayload({tokenInternalId:t}),l=await this._certificateLoader.loadCertificate({keyId:"token_metadata_key",keyUsage:T.KeyUsage.CoinMeta,targetDevice:o});return a.caseOf({Left:i=>({type:d.SolanaContextTypes.ERROR,error:i}),Right:i=>({type:d.SolanaContextTypes.SOLANA_TOKEN,payload:this.pluckTokenData(i),certificate:l})})}pluckTokenData(e){const t=this.config.cal.mode||"prod";return{solanaTokenDescriptor:{data:e.descriptor.data,signature:e.descriptor.signatures[t]}}}};p=f([(0,r.injectable)(),c(0,(0,r.inject)(y.solanaTokenTypes.SolanaTokenDataSource)),c(1,(0,r.inject)(u.configTypes.Config)),c(2,(0,r.inject)(m.pkiTypes.PkiCertificateLoader))],p);0&&(module.exports={SolanaTokenContextLoader});
2
+ //# sourceMappingURL=SolanaTokenContextLoader.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/solanaToken/domain/SolanaTokenContextLoader.ts"],
4
+ "sourcesContent": ["import { DeviceModelId } from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { pkiTypes } from \"@/pki/di/pkiTypes\";\nimport { type PkiCertificateLoader } from \"@/pki/domain/PkiCertificateLoader\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport { PkiCertificate } from \"@/pki/model/PkiCertificate\";\nimport { ContextFieldLoader } from \"@/shared/domain/ContextFieldLoader\";\nimport {\n SolanaContextTypes,\n SolanaTokenContextResult,\n SolanaTokenData,\n} from \"@/shared/model/SolanaContextTypes\";\nimport { SolanaTransactionContext } from \"@/solana/domain/solanaContextTypes\";\nimport {\n type SolanaTokenDataSource,\n type TokenDataResponse,\n} from \"@/solanaToken/data/SolanaTokenDataSource\";\nimport { solanaTokenTypes } from \"@/solanaToken/di/solanaTokenTypes\";\n\ntype SolanaTokenFieldInput = SolanaTransactionContext & {\n deviceModelId: DeviceModelId;\n tokenInternalId: string;\n};\n\n@injectable()\nexport class SolanaTokenContextLoader\n implements\n ContextFieldLoader<\n SolanaTokenFieldInput,\n SolanaContextTypes,\n SolanaTokenContextResult\n >\n{\n constructor(\n @inject(solanaTokenTypes.SolanaTokenDataSource)\n private readonly dataSource: SolanaTokenDataSource,\n @inject(configTypes.Config) private readonly config: ContextModuleConfig,\n @inject(pkiTypes.PkiCertificateLoader)\n private readonly _certificateLoader: PkiCertificateLoader,\n ) {}\n\n public canHandle(\n field: unknown,\n expectedType: SolanaContextTypes,\n ): field is SolanaTokenFieldInput {\n if (expectedType !== SolanaContextTypes.SOLANA_TOKEN) {\n return false;\n }\n\n if (\n typeof field !== \"object\" ||\n field === null ||\n !(\"tokenInternalId\" in field)\n ) {\n return false;\n }\n\n const tokenInternalId = (field as { tokenInternalId: unknown })\n .tokenInternalId;\n\n return typeof tokenInternalId === \"string\" && tokenInternalId.length > 0;\n }\n\n public async loadField(\n solanaTokenContextInput: SolanaTokenFieldInput,\n ): Promise<SolanaTokenContextResult> {\n const { tokenInternalId, deviceModelId } = solanaTokenContextInput;\n\n const payload = await this.dataSource.getTokenInfosPayload({\n tokenInternalId,\n });\n\n const certificate: PkiCertificate | undefined =\n await this._certificateLoader.loadCertificate({\n keyId: \"token_metadata_key\",\n keyUsage: KeyUsage.CoinMeta,\n targetDevice: deviceModelId,\n });\n\n return payload.caseOf({\n Left: (error): SolanaTokenContextResult => ({\n type: SolanaContextTypes.ERROR,\n error,\n }),\n Right: (value): SolanaTokenContextResult => ({\n type: SolanaContextTypes.SOLANA_TOKEN,\n payload: this.pluckTokenData(value),\n certificate,\n }),\n });\n }\n\n private pluckTokenData(tokenData: TokenDataResponse): SolanaTokenData {\n const signatureKind = this.config.cal.mode || \"prod\";\n return {\n solanaTokenDescriptor: {\n data: tokenData.descriptor.data,\n signature: tokenData.descriptor.signatures[signatureKind],\n },\n };\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAAmC,qBAEnCC,EAA4B,mCAE5BC,EAAyB,6BAEzBC,EAAyB,gCAGzBC,EAIO,6CAMPC,EAAiC,6CAQ1B,IAAMC,EAAN,KAOP,CACE,YAEmBC,EAC4BC,EAE5BC,EACjB,CAJiB,gBAAAF,EAC4B,YAAAC,EAE5B,wBAAAC,CAChB,CAEI,UACLC,EACAC,EACgC,CAKhC,GAJIA,IAAiB,qBAAmB,cAKtC,OAAOD,GAAU,UACjBA,IAAU,MACV,EAAE,oBAAqBA,GAEvB,MAAO,GAGT,MAAME,EAAmBF,EACtB,gBAEH,OAAO,OAAOE,GAAoB,UAAYA,EAAgB,OAAS,CACzE,CAEA,MAAa,UACXC,EACmC,CACnC,KAAM,CAAE,gBAAAD,EAAiB,cAAAE,CAAc,EAAID,EAErCE,EAAU,MAAM,KAAK,WAAW,qBAAqB,CACzD,gBAAAH,CACF,CAAC,EAEKI,EACJ,MAAM,KAAK,mBAAmB,gBAAgB,CAC5C,MAAO,qBACP,SAAU,WAAS,SACnB,aAAcF,CAChB,CAAC,EAEH,OAAOC,EAAQ,OAAO,CACpB,KAAOE,IAAqC,CAC1C,KAAM,qBAAmB,MACzB,MAAAA,CACF,GACA,MAAQC,IAAqC,CAC3C,KAAM,qBAAmB,aACzB,QAAS,KAAK,eAAeA,CAAK,EAClC,YAAAF,CACF,EACF,CAAC,CACH,CAEQ,eAAeG,EAA+C,CACpE,MAAMC,EAAgB,KAAK,OAAO,IAAI,MAAQ,OAC9C,MAAO,CACL,sBAAuB,CACrB,KAAMD,EAAU,WAAW,KAC3B,UAAWA,EAAU,WAAW,WAAWC,CAAa,CAC1D,CACF,CACF,CACF,EA5Ead,EAANe,EAAA,IADN,cAAW,EAUPC,EAAA,eAAO,mBAAiB,qBAAqB,GAE7CA,EAAA,eAAO,cAAY,MAAM,GACzBA,EAAA,eAAO,WAAS,oBAAoB,IAZ5BhB",
6
+ "names": ["SolanaTokenContextLoader_exports", "__export", "SolanaTokenContextLoader", "__toCommonJS", "import_inversify", "import_configTypes", "import_pkiTypes", "import_KeyUsage", "import_SolanaContextTypes", "import_solanaTokenTypes", "SolanaTokenContextLoader", "dataSource", "config", "_certificateLoader", "field", "expectedType", "tokenInternalId", "solanaTokenContextInput", "deviceModelId", "payload", "certificate", "error", "value", "tokenData", "signatureKind", "__decorateClass", "__decorateParam"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var p=require("@ledgerhq/device-management-kit"),l=require("purify-ts"),e=require("vitest"),u=require("../../pki/model/KeyUsage"),n=require("../../shared/model/SolanaContextTypes"),f=require("./SolanaTokenContextLoader");(0,e.describe)("SolanaTokenContextLoader",()=>{let s,d;const i=new Uint8Array([240,202,204,26]),t={descriptor:{data:{symbol:"SOL",name:"Solana",decimals:9},signatures:{prod:"prod-sig",test:"test-sig"}}},c={tokenInternalId:"token-1",deviceModelId:p.DeviceModelId.FLEX};(0,e.beforeEach)(()=>{e.vi.restoreAllMocks(),s={getTokenInfosPayload:e.vi.fn()},d={loadCertificate:e.vi.fn()}});const r=a=>{const o={cal:{mode:a}};return new f.SolanaTokenContextLoader(s,o,d)};(0,e.describe)("canHandle",()=>{(0,e.it)("returns true when tokenInternalId is provided",()=>{const a=r("prod");(0,e.expect)(a.canHandle({tokenInternalId:"abc123"},n.SolanaContextTypes.SOLANA_TOKEN)).toBe(!0)}),(0,e.it)("returns false when tokenInternalId is missing or falsy",()=>{const a=r("prod");(0,e.expect)(a.canHandle({tokenInternalId:""},n.SolanaContextTypes.SOLANA_TOKEN)).toBe(!1),(0,e.expect)(a.canHandle({tokenInternalId:void 0},n.SolanaContextTypes.SOLANA_TOKEN)).toBe(!1),(0,e.expect)(a.canHandle({},n.SolanaContextTypes.SOLANA_TOKEN)).toBe(!1)})}),(0,e.describe)("loadField",()=>{(0,e.it)("returns an error when datasource returns Left(error) (certificate still retrieved)",async()=>{const a=r("prod"),o=new Error("datasource failed");e.vi.spyOn(s,"getTokenInfosPayload").mockResolvedValue((0,l.Left)(o)),e.vi.spyOn(d,"loadCertificate").mockResolvedValue({keyUsageNumber:0,payload:i});const k=await a.loadField(c);(0,e.expect)(s.getTokenInfosPayload).toHaveBeenCalledWith({tokenInternalId:"token-1"}),(0,e.expect)(d.loadCertificate).toHaveBeenCalledWith({keyId:"token_metadata_key",keyUsage:u.KeyUsage.CoinMeta,targetDevice:c.deviceModelId}),(0,e.expect)(k).toEqual({type:n.SolanaContextTypes.ERROR,error:o})}),(0,e.it)("returns SOLANA_TOKEN with prod signature by default (falsy mode) and includes certificate",async()=>{const a=r("");e.vi.spyOn(s,"getTokenInfosPayload").mockResolvedValue((0,l.Right)(t)),e.vi.spyOn(d,"loadCertificate").mockResolvedValue({keyUsageNumber:0,payload:i});const o=await a.loadField({...c,tokenInternalId:"token-2"});(0,e.expect)(o).toEqual({type:n.SolanaContextTypes.SOLANA_TOKEN,payload:{solanaTokenDescriptor:{data:t.descriptor.data,signature:"prod-sig"}},certificate:{keyUsageNumber:0,payload:i}})}),(0,e.it)("returns SOLANA_TOKEN with signature matching config.cal.mode",async()=>{const a=r("test");e.vi.spyOn(s,"getTokenInfosPayload").mockResolvedValue((0,l.Right)(t)),e.vi.spyOn(d,"loadCertificate").mockResolvedValue({keyUsageNumber:1,payload:i});const o=await a.loadField({...c,tokenInternalId:"token-3"});(0,e.expect)(o).toEqual({type:n.SolanaContextTypes.SOLANA_TOKEN,payload:{solanaTokenDescriptor:{data:t.descriptor.data,signature:"test-sig"}},certificate:{keyUsageNumber:1,payload:i}})}),(0,e.it)("works even if certificate loader returns undefined (certificate omitted)",async()=>{const a=r("prod");e.vi.spyOn(s,"getTokenInfosPayload").mockResolvedValue((0,l.Right)(t)),e.vi.spyOn(d,"loadCertificate").mockResolvedValue(void 0);const o=await a.loadField(c);(0,e.expect)(o).toEqual({type:n.SolanaContextTypes.SOLANA_TOKEN,payload:{solanaTokenDescriptor:{data:t.descriptor.data,signature:"prod-sig"}},certificate:void 0})})}),(0,e.describe)("pluckTokenData (private)",()=>{(0,e.it)("picks the signature for the configured mode",()=>{const a=r("test"),k=a.pluckTokenData.bind(a)(t);(0,e.expect)(k).toEqual({solanaTokenDescriptor:{data:t.descriptor.data,signature:"test-sig"}})}),(0,e.it)("falls back to 'prod' when config.cal.mode is falsy",()=>{const o=r(void 0).pluckTokenData(t);(0,e.expect)(o).toEqual({solanaTokenDescriptor:{data:t.descriptor.data,signature:"prod-sig"}})})})});
2
+ //# sourceMappingURL=SolanaTokenContextLoader.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/solanaToken/domain/SolanaTokenContextLoader.test.ts"],
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { DeviceModelId } from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\nimport { beforeEach, describe, expect, it, vi } from \"vitest\";\n\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport type { PkiCertificateLoader } from \"@/pki/domain/PkiCertificateLoader\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport { SolanaContextTypes } from \"@/shared/model/SolanaContextTypes\";\nimport type { SolanaTransactionContext } from \"@/solana/domain/solanaContextTypes\";\nimport {\n type SolanaTokenDataSource,\n type TokenDataResponse,\n} from \"@/solanaToken/data/SolanaTokenDataSource\";\n\nimport { SolanaTokenContextLoader } from \"./SolanaTokenContextLoader\";\n\ndescribe(\"SolanaTokenContextLoader\", () => {\n let mockDataSource: SolanaTokenDataSource;\n let mockCertLoader: PkiCertificateLoader;\n\n const bytes = new Uint8Array([0xf0, 0xca, 0xcc, 0x1a]);\n\n const tokenDataResponse: TokenDataResponse = {\n descriptor: {\n // The loader just forwards this; exact shape isn't important for the test\n data: { symbol: \"SOL\", name: \"Solana\", decimals: 9 } as any,\n signatures: {\n prod: \"prod-sig\",\n test: \"test-sig\",\n } as any,\n },\n } as any;\n\n const baseCtx = {\n tokenInternalId: \"token-1\",\n deviceModelId: DeviceModelId.FLEX,\n };\n\n beforeEach(() => {\n vi.restoreAllMocks();\n\n mockDataSource = {\n getTokenInfosPayload: vi.fn(),\n } as unknown as SolanaTokenDataSource;\n\n mockCertLoader = {\n loadCertificate: vi.fn(),\n } as unknown as PkiCertificateLoader;\n });\n\n const makeLoader = (mode?: string) => {\n const config = { cal: { mode } } as unknown as ContextModuleConfig;\n return new SolanaTokenContextLoader(mockDataSource, config, mockCertLoader);\n };\n\n describe(\"canHandle\", () => {\n it(\"returns true when tokenInternalId is provided\", () => {\n const loader = makeLoader(\"prod\");\n\n expect(\n loader.canHandle(\n {\n tokenInternalId: \"abc123\",\n } as SolanaTransactionContext,\n SolanaContextTypes.SOLANA_TOKEN,\n ),\n ).toBe(true);\n });\n\n it(\"returns false when tokenInternalId is missing or falsy\", () => {\n const loader = makeLoader(\"prod\");\n\n expect(\n loader.canHandle(\n { tokenInternalId: \"\" } as any,\n SolanaContextTypes.SOLANA_TOKEN,\n ),\n ).toBe(false);\n expect(\n loader.canHandle(\n { tokenInternalId: undefined } as any,\n SolanaContextTypes.SOLANA_TOKEN,\n ),\n ).toBe(false);\n expect(loader.canHandle({} as any, SolanaContextTypes.SOLANA_TOKEN)).toBe(\n false,\n );\n });\n });\n\n describe(\"loadField\", () => {\n it(\"returns an error when datasource returns Left(error) (certificate still retrieved)\", async () => {\n const loader = makeLoader(\"prod\");\n const error = new Error(\"datasource failed\");\n\n vi.spyOn(mockDataSource, \"getTokenInfosPayload\").mockResolvedValue(\n Left(error),\n );\n vi.spyOn(mockCertLoader, \"loadCertificate\").mockResolvedValue({\n keyUsageNumber: 0,\n payload: bytes,\n });\n\n const result = await loader.loadField(baseCtx);\n\n expect(mockDataSource.getTokenInfosPayload).toHaveBeenCalledWith({\n tokenInternalId: \"token-1\",\n });\n expect(mockCertLoader.loadCertificate).toHaveBeenCalledWith({\n keyId: \"token_metadata_key\",\n keyUsage: KeyUsage.CoinMeta,\n targetDevice: baseCtx.deviceModelId,\n });\n expect(result).toEqual({\n type: SolanaContextTypes.ERROR,\n error,\n });\n });\n\n it(\"returns SOLANA_TOKEN with prod signature by default (falsy mode) and includes certificate\", async () => {\n const loader = makeLoader(\"\"); // falsy -> default 'prod'\n\n vi.spyOn(mockDataSource, \"getTokenInfosPayload\").mockResolvedValue(\n Right(tokenDataResponse),\n );\n vi.spyOn(mockCertLoader, \"loadCertificate\").mockResolvedValue({\n keyUsageNumber: 0,\n payload: bytes,\n });\n\n const result = await loader.loadField({\n ...baseCtx,\n tokenInternalId: \"token-2\",\n });\n\n expect(result).toEqual({\n type: SolanaContextTypes.SOLANA_TOKEN,\n payload: {\n solanaTokenDescriptor: {\n data: tokenDataResponse.descriptor.data,\n signature: \"prod-sig\",\n },\n },\n certificate: { keyUsageNumber: 0, payload: bytes },\n });\n });\n\n it(\"returns SOLANA_TOKEN with signature matching config.cal.mode\", async () => {\n const loader = makeLoader(\"test\");\n\n vi.spyOn(mockDataSource, \"getTokenInfosPayload\").mockResolvedValue(\n Right(tokenDataResponse),\n );\n vi.spyOn(mockCertLoader, \"loadCertificate\").mockResolvedValue({\n keyUsageNumber: 1,\n payload: bytes,\n });\n\n const result = await loader.loadField({\n ...baseCtx,\n tokenInternalId: \"token-3\",\n });\n\n expect(result).toEqual({\n type: SolanaContextTypes.SOLANA_TOKEN,\n payload: {\n solanaTokenDescriptor: {\n data: tokenDataResponse.descriptor.data,\n signature: \"test-sig\",\n },\n },\n certificate: { keyUsageNumber: 1, payload: bytes },\n });\n });\n\n it(\"works even if certificate loader returns undefined (certificate omitted)\", async () => {\n const loader = makeLoader(\"prod\");\n\n vi.spyOn(mockDataSource, \"getTokenInfosPayload\").mockResolvedValue(\n Right(tokenDataResponse),\n );\n vi.spyOn(mockCertLoader, \"loadCertificate\").mockResolvedValue(undefined);\n\n const result = await loader.loadField(baseCtx);\n\n expect(result).toEqual({\n type: SolanaContextTypes.SOLANA_TOKEN,\n payload: {\n solanaTokenDescriptor: {\n data: tokenDataResponse.descriptor.data,\n signature: \"prod-sig\",\n },\n },\n certificate: undefined,\n });\n });\n });\n\n describe(\"pluckTokenData (private)\", () => {\n it(\"picks the signature for the configured mode\", () => {\n const loader = makeLoader(\"test\");\n const pluck = (loader as any).pluckTokenData.bind(loader);\n\n const result = pluck(tokenDataResponse);\n\n expect(result).toEqual({\n solanaTokenDescriptor: {\n data: tokenDataResponse.descriptor.data,\n signature: \"test-sig\",\n },\n });\n });\n\n it(\"falls back to 'prod' when config.cal.mode is falsy\", () => {\n const loader = makeLoader(undefined as any);\n const result = (loader as any).pluckTokenData(tokenDataResponse);\n\n expect(result).toEqual({\n solanaTokenDescriptor: {\n data: tokenDataResponse.descriptor.data,\n signature: \"prod-sig\",\n },\n });\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_device_management_kit", "import_purify_ts", "import_vitest", "import_KeyUsage", "import_SolanaContextTypes", "import_SolanaTokenContextLoader", "mockDataSource", "mockCertLoader", "bytes", "tokenDataResponse", "baseCtx", "makeLoader", "mode", "config", "loader", "error", "result"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var y=Object.create;var a=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var x=(t,r)=>{for(var o in r)a(t,o,{get:r[o],enumerable:!0})},u=(t,r,o,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let e of g(r))!b.call(t,e)&&e!==o&&a(t,e,{get:()=>r[e],enumerable:!(i=m(r,e))||i.enumerable});return t};var f=(t,r,o)=>(o=t!=null?y(D(t)):{},u(r||!t||!t.__esModule?a(o,"default",{value:t,enumerable:!0}):o,t)),w=t=>u(a({},"__esModule",{value:!0}),t),C=(t,r,o,i)=>{for(var e=i>1?void 0:i?m(r,o):r,n=t.length-1,c;n>=0;n--)(c=t[n])&&(e=(i?c(r,o,e):c(e))||e);return i&&e&&a(r,o,e),e},k=(t,r)=>(o,i)=>r(o,i,t);var R={};x(R,{HttpTransactionCheckDataSource:()=>s});module.exports=w(R);var d=f(require("axios")),h=require("inversify"),p=require("purify-ts"),E=require("../../config/di/configTypes"),l=require("../../shared/constant/HttpHeaders"),_=f(require("../../../package.json"));let s=class{constructor(r){this.config=r}async getTransactionCheck({chainId:r,rawTx:o,from:i}){let e;const n={tx:{from:i,raw:o},chain:r};try{e=(await d.default.request({method:"POST",url:`${this.config.web3checks.url}/ethereum/scan/tx`,data:n,headers:{[l.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${_.default.version}`,[l.LEDGER_ORIGIN_TOKEN_HEADER]:this.config.originToken}})).data}catch{return(0,p.Left)(new Error("[ContextModule] HttpTransactionCheckDataSource: Failed to fetch web3 checks information"))}if(!this._isTransactionCheckDto(e))return(0,p.Left)(new Error("[ContextModule] HttpTransactionCheckDataSource: Cannot exploit transaction check data received"));const c={publicKeyId:e.public_key_id,descriptor:e.descriptor};return(0,p.Right)(c)}_isTransactionCheckDto(r){return r!=null&&typeof r=="object"&&"public_key_id"in r&&r.public_key_id!=null&&typeof r.public_key_id=="string"&&"descriptor"in r&&r.descriptor!=null&&typeof r.descriptor=="string"}};s=C([(0,h.injectable)(),k(0,(0,h.inject)(E.configTypes.Config))],s);0&&(module.exports={HttpTransactionCheckDataSource});
2
+ //# sourceMappingURL=HttpTransactionCheckDataSource.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/transaction-check/data/HttpTransactionCheckDataSource.ts"],
4
+ "sourcesContent": ["import axios from \"axios\";\nimport { inject, injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nimport { TransactionCheckDto } from \"./dto/TransactionCheckDto\";\nimport {\n GetTransactionCheckParams,\n TransactionCheck,\n} from \"./TransactionCheckDataSource\";\n\n@injectable()\nexport class HttpTransactionCheckDataSource {\n constructor(\n @inject(configTypes.Config) private readonly config: ContextModuleConfig,\n ) {}\n\n public async getTransactionCheck({\n chainId,\n rawTx,\n from,\n }: GetTransactionCheckParams): Promise<Either<Error, TransactionCheck>> {\n let transactionCheckDto: TransactionCheckDto;\n const requestDto = {\n tx: {\n from,\n raw: rawTx,\n },\n chain: chainId,\n };\n\n try {\n const response = await axios.request<TransactionCheckDto>({\n method: \"POST\",\n url: `${this.config.web3checks.url}/ethereum/scan/tx`,\n data: requestDto,\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: this.config.originToken,\n },\n });\n transactionCheckDto = response.data;\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpTransactionCheckDataSource: Failed to fetch web3 checks information\",\n ),\n );\n }\n\n if (!this._isTransactionCheckDto(transactionCheckDto)) {\n return Left(\n new Error(\n \"[ContextModule] HttpTransactionCheckDataSource: Cannot exploit transaction check data received\",\n ),\n );\n }\n const result: TransactionCheck = {\n publicKeyId: transactionCheckDto.public_key_id,\n descriptor: transactionCheckDto.descriptor,\n };\n\n return Right(result);\n }\n\n private _isTransactionCheckDto(dto: unknown): dto is TransactionCheckDto {\n return (\n dto != null &&\n typeof dto == \"object\" &&\n \"public_key_id\" in dto &&\n dto.public_key_id != null &&\n typeof dto.public_key_id == \"string\" &&\n \"descriptor\" in dto &&\n dto.descriptor != null &&\n typeof dto.descriptor == \"string\"\n );\n }\n}\n"],
5
+ "mappings": "qtBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkB,oBAClBC,EAAmC,qBACnCC,EAAoC,qBAEpCC,EAA4B,mCAE5BC,EAGO,yCACPC,EAAoB,iCASb,IAAMC,EAAN,KAAqC,CAC1C,YAC+CC,EAC7C,CAD6C,YAAAA,CAC5C,CAEH,MAAa,oBAAoB,CAC/B,QAAAC,EACA,MAAAC,EACA,KAAAC,CACF,EAAwE,CACtE,IAAIC,EACJ,MAAMC,EAAa,CACjB,GAAI,CACF,KAAAF,EACA,IAAKD,CACP,EACA,MAAOD,CACT,EAEA,GAAI,CAUFG,GATiB,MAAM,EAAAE,QAAM,QAA6B,CACxD,OAAQ,OACR,IAAK,GAAG,KAAK,OAAO,WAAW,GAAG,oBAClC,KAAMD,EACN,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAE,QAAQ,OAAO,GACjE,CAAC,4BAA0B,EAAG,KAAK,OAAO,WAC5C,CACF,CAAC,GAC8B,IACjC,MAAiB,CACf,SAAO,QACL,IAAI,MACF,yFACF,CACF,CACF,CAEA,GAAI,CAAC,KAAK,uBAAuBH,CAAmB,EAClD,SAAO,QACL,IAAI,MACF,gGACF,CACF,EAEF,MAAMI,EAA2B,CAC/B,YAAaJ,EAAoB,cACjC,WAAYA,EAAoB,UAClC,EAEA,SAAO,SAAMI,CAAM,CACrB,CAEQ,uBAAuBC,EAA0C,CACvE,OACEA,GAAO,MACP,OAAOA,GAAO,UACd,kBAAmBA,GACnBA,EAAI,eAAiB,MACrB,OAAOA,EAAI,eAAiB,UAC5B,eAAgBA,GAChBA,EAAI,YAAc,MAClB,OAAOA,EAAI,YAAc,QAE7B,CACF,EAjEaV,EAANW,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,cAAY,MAAM,IAFjBZ",
6
+ "names": ["HttpTransactionCheckDataSource_exports", "__export", "HttpTransactionCheckDataSource", "__toCommonJS", "import_axios", "import_inversify", "import_purify_ts", "import_configTypes", "import_HttpHeaders", "import_package", "HttpTransactionCheckDataSource", "config", "chainId", "rawTx", "from", "transactionCheckDto", "requestDto", "axios", "PACKAGE", "result", "dto", "__decorateClass", "__decorateParam"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var l=Object.create;var d=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var C=(t,e,a,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of m(e))!k.call(t,o)&&o!==a&&d(t,o,{get:()=>e[o],enumerable:!(n=p(e,o))||n.enumerable});return t};var u=(t,e,a)=>(a=t!=null?l(x(t)):{},C(e||!t||!t.__esModule?d(a,"default",{value:t,enumerable:!0}):a,t));var c=u(require("axios")),s=require("purify-ts"),i=require("../../shared/constant/HttpHeaders"),r=require("../../transaction-check/data/HttpTransactionCheckDataSource"),h=u(require("../../../package.json"));vi.mock("axios");describe("HttpTransactionCheckDataSource",()=>{const t={web3checks:{url:"web3checksUrl"},originToken:"originToken"};beforeEach(()=>{vi.resetAllMocks()}),describe("getTransactionCheck",()=>{it("should return an object if the request is successful",async()=>{const e={from:"0x1234567890123456789012345678901234567890",rawTx:"0xabcdef",chainId:1},a={public_key_id:"test-key-id",descriptor:"test-descriptor"};vi.spyOn(c.default,"request").mockResolvedValueOnce({data:a});const o=await new r.HttpTransactionCheckDataSource(t).getTransactionCheck(e);expect(o).toEqual((0,s.Right)({publicKeyId:"test-key-id",descriptor:"test-descriptor"}))}),it("should return an error if the request fails",async()=>{const e={from:"0x1234567890123456789012345678901234567890",rawTx:"0xabcdef",chainId:1};vi.spyOn(c.default,"request").mockRejectedValue(new Error("error"));const n=await new r.HttpTransactionCheckDataSource(t).getTransactionCheck(e);expect(n).toEqual((0,s.Left)(new Error("[ContextModule] HttpTransactionCheckDataSource: Failed to fetch web3 checks information")))}),it("should return an error if the response is invalid",async()=>{const e={from:"0x1234567890123456789012345678901234567890",rawTx:"0xabcdef",chainId:1},a={};vi.spyOn(c.default,"request").mockResolvedValue({data:a});const o=await new r.HttpTransactionCheckDataSource(t).getTransactionCheck(e);expect(o).toEqual((0,s.Left)(new Error("[ContextModule] HttpTransactionCheckDataSource: Cannot exploit transaction check data received")))}),it("should return an error if public_key_id is missing",async()=>{const e={from:"0x1234567890123456789012345678901234567890",rawTx:"0xabcdef",chainId:1},a={descriptor:"test-descriptor"};vi.spyOn(c.default,"request").mockResolvedValue({data:a});const o=await new r.HttpTransactionCheckDataSource(t).getTransactionCheck(e);expect(o).toEqual((0,s.Left)(new Error("[ContextModule] HttpTransactionCheckDataSource: Cannot exploit transaction check data received")))}),it("should return an error if descriptor is missing",async()=>{const e={from:"0x1234567890123456789012345678901234567890",rawTx:"0xabcdef",chainId:1},a={public_key_id:"test-key-id"};vi.spyOn(c.default,"request").mockResolvedValue({data:a});const o=await new r.HttpTransactionCheckDataSource(t).getTransactionCheck(e);expect(o).toEqual((0,s.Left)(new Error("[ContextModule] HttpTransactionCheckDataSource: Cannot exploit transaction check data received")))}),it("should call axios with the correct headers",async()=>{const e={from:"0x1234567890123456789012345678901234567890",rawTx:"0xabcdef",chainId:1};vi.spyOn(c.default,"request").mockResolvedValueOnce({data:{}}),await new r.HttpTransactionCheckDataSource(t).getTransactionCheck(e),expect(c.default.request).toHaveBeenCalledWith(expect.objectContaining({headers:{[i.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${h.default.version}`,[i.LEDGER_ORIGIN_TOKEN_HEADER]:t.originToken}}))}),it("should call axios with the correct URL and method",async()=>{const e={from:"0x1234567890123456789012345678901234567890",rawTx:"0xabcdef",chainId:1};vi.spyOn(c.default,"request").mockResolvedValueOnce({data:{}}),await new r.HttpTransactionCheckDataSource(t).getTransactionCheck(e),expect(c.default.request).toHaveBeenCalledWith(expect.objectContaining({method:"POST",url:`${t.web3checks.url}/ethereum/scan/tx`}))}),it("should call axios with the correct request data",async()=>{const e={from:"0x1234567890123456789012345678901234567890",rawTx:"0xabcdef",chainId:1};vi.spyOn(c.default,"request").mockResolvedValueOnce({data:{}}),await new r.HttpTransactionCheckDataSource(t).getTransactionCheck(e),expect(c.default.request).toHaveBeenCalledWith(expect.objectContaining({data:{tx:{from:"0x1234567890123456789012345678901234567890",raw:"0xabcdef"},chain:1}}))})})});
2
+ //# sourceMappingURL=HttpTransactionCheckDataSource.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/transaction-check/data/HttpTransactionCheckDataSource.test.ts"],
4
+ "sourcesContent": ["import axios from \"axios\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport { type TransactionCheckDto } from \"@/transaction-check/data/dto/TransactionCheckDto\";\nimport { HttpTransactionCheckDataSource } from \"@/transaction-check/data/HttpTransactionCheckDataSource\";\nimport { type GetTransactionCheckParams } from \"@/transaction-check/data/TransactionCheckDataSource\";\nimport PACKAGE from \"@root/package.json\";\n\nvi.mock(\"axios\");\n\ndescribe(\"HttpTransactionCheckDataSource\", () => {\n const config = {\n web3checks: {\n url: \"web3checksUrl\",\n },\n originToken: \"originToken\",\n } as ContextModuleConfig;\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n describe(\"getTransactionCheck\", () => {\n it(\"should return an object if the request is successful\", async () => {\n // GIVEN\n const params: GetTransactionCheckParams = {\n from: \"0x1234567890123456789012345678901234567890\",\n rawTx: \"0xabcdef\",\n chainId: 1,\n };\n const dto: TransactionCheckDto = {\n public_key_id: \"test-key-id\",\n descriptor: \"test-descriptor\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValueOnce({ data: dto });\n\n // WHEN\n const dataSource = new HttpTransactionCheckDataSource(config);\n const result = await dataSource.getTransactionCheck(params);\n\n // THEN\n expect(result).toEqual(\n Right({\n publicKeyId: \"test-key-id\",\n descriptor: \"test-descriptor\",\n }),\n );\n });\n\n it(\"should return an error if the request fails\", async () => {\n // GIVEN\n const params: GetTransactionCheckParams = {\n from: \"0x1234567890123456789012345678901234567890\",\n rawTx: \"0xabcdef\",\n chainId: 1,\n };\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"error\"));\n\n // WHEN\n const dataSource = new HttpTransactionCheckDataSource(config);\n const result = await dataSource.getTransactionCheck(params);\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpTransactionCheckDataSource: Failed to fetch web3 checks information\",\n ),\n ),\n );\n });\n\n it(\"should return an error if the response is invalid\", async () => {\n // GIVEN\n const params: GetTransactionCheckParams = {\n from: \"0x1234567890123456789012345678901234567890\",\n rawTx: \"0xabcdef\",\n chainId: 1,\n };\n const dto = {};\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: dto });\n\n // WHEN\n const dataSource = new HttpTransactionCheckDataSource(config);\n const result = await dataSource.getTransactionCheck(params);\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpTransactionCheckDataSource: Cannot exploit transaction check data received\",\n ),\n ),\n );\n });\n\n it(\"should return an error if public_key_id is missing\", async () => {\n // GIVEN\n const params: GetTransactionCheckParams = {\n from: \"0x1234567890123456789012345678901234567890\",\n rawTx: \"0xabcdef\",\n chainId: 1,\n };\n const dto = {\n descriptor: \"test-descriptor\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: dto });\n\n // WHEN\n const dataSource = new HttpTransactionCheckDataSource(config);\n const result = await dataSource.getTransactionCheck(params);\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpTransactionCheckDataSource: Cannot exploit transaction check data received\",\n ),\n ),\n );\n });\n\n it(\"should return an error if descriptor is missing\", async () => {\n // GIVEN\n const params: GetTransactionCheckParams = {\n from: \"0x1234567890123456789012345678901234567890\",\n rawTx: \"0xabcdef\",\n chainId: 1,\n };\n const dto = {\n public_key_id: \"test-key-id\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: dto });\n\n // WHEN\n const dataSource = new HttpTransactionCheckDataSource(config);\n const result = await dataSource.getTransactionCheck(params);\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpTransactionCheckDataSource: Cannot exploit transaction check data received\",\n ),\n ),\n );\n });\n\n it(\"should call axios with the correct headers\", async () => {\n // GIVEN\n const params: GetTransactionCheckParams = {\n from: \"0x1234567890123456789012345678901234567890\",\n rawTx: \"0xabcdef\",\n chainId: 1,\n };\n vi.spyOn(axios, \"request\").mockResolvedValueOnce({ data: {} });\n\n // WHEN\n const dataSource = new HttpTransactionCheckDataSource(config);\n await dataSource.getTransactionCheck(params);\n\n // THEN\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: config.originToken,\n },\n }),\n );\n });\n\n it(\"should call axios with the correct URL and method\", async () => {\n // GIVEN\n const params: GetTransactionCheckParams = {\n from: \"0x1234567890123456789012345678901234567890\",\n rawTx: \"0xabcdef\",\n chainId: 1,\n };\n vi.spyOn(axios, \"request\").mockResolvedValueOnce({ data: {} });\n\n // WHEN\n const dataSource = new HttpTransactionCheckDataSource(config);\n await dataSource.getTransactionCheck(params);\n\n // THEN\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n method: \"POST\",\n url: `${config.web3checks.url}/ethereum/scan/tx`,\n }),\n );\n });\n\n it(\"should call axios with the correct request data\", async () => {\n // GIVEN\n const params: GetTransactionCheckParams = {\n from: \"0x1234567890123456789012345678901234567890\",\n rawTx: \"0xabcdef\",\n chainId: 1,\n };\n vi.spyOn(axios, \"request\").mockResolvedValueOnce({ data: {} });\n\n // WHEN\n const dataSource = new HttpTransactionCheckDataSource(config);\n await dataSource.getTransactionCheck(params);\n\n // THEN\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n data: {\n tx: {\n from: \"0x1234567890123456789012345678901234567890\",\n raw: \"0xabcdef\",\n },\n chain: 1,\n },\n }),\n );\n });\n });\n});\n"],
5
+ "mappings": "wdAAA,IAAAA,EAAkB,oBAClBC,EAA4B,qBAG5BC,EAGO,yCAEPC,EAA+C,mEAE/CC,EAAoB,iCAEpB,GAAG,KAAK,OAAO,EAEf,SAAS,iCAAkC,IAAM,CAC/C,MAAMC,EAAS,CACb,WAAY,CACV,IAAK,eACP,EACA,YAAa,aACf,EAEA,WAAW,IAAM,CACf,GAAG,cAAc,CACnB,CAAC,EAED,SAAS,sBAAuB,IAAM,CACpC,GAAG,uDAAwD,SAAY,CAErE,MAAMC,EAAoC,CACxC,KAAM,6CACN,MAAO,WACP,QAAS,CACX,EACMC,EAA2B,CAC/B,cAAe,cACf,WAAY,iBACd,EACA,GAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,sBAAsB,CAAE,KAAMD,CAAI,CAAC,EAI9D,MAAME,EAAS,MADI,IAAI,iCAA+BJ,CAAM,EAC5B,oBAAoBC,CAAM,EAG1D,OAAOG,CAAM,EAAE,WACb,SAAM,CACJ,YAAa,cACb,WAAY,iBACd,CAAC,CACH,CACF,CAAC,EAED,GAAG,8CAA+C,SAAY,CAE5D,MAAMH,EAAoC,CACxC,KAAM,6CACN,MAAO,WACP,QAAS,CACX,EACA,GAAG,MAAM,EAAAE,QAAO,SAAS,EAAE,kBAAkB,IAAI,MAAM,OAAO,CAAC,EAI/D,MAAMC,EAAS,MADI,IAAI,iCAA+BJ,CAAM,EAC5B,oBAAoBC,CAAM,EAG1D,OAAOG,CAAM,EAAE,WACb,QACE,IAAI,MACF,yFACF,CACF,CACF,CACF,CAAC,EAED,GAAG,oDAAqD,SAAY,CAElE,MAAMH,EAAoC,CACxC,KAAM,6CACN,MAAO,WACP,QAAS,CACX,EACMC,EAAM,CAAC,EACb,GAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAMD,CAAI,CAAC,EAI1D,MAAME,EAAS,MADI,IAAI,iCAA+BJ,CAAM,EAC5B,oBAAoBC,CAAM,EAG1D,OAAOG,CAAM,EAAE,WACb,QACE,IAAI,MACF,gGACF,CACF,CACF,CACF,CAAC,EAED,GAAG,qDAAsD,SAAY,CAEnE,MAAMH,EAAoC,CACxC,KAAM,6CACN,MAAO,WACP,QAAS,CACX,EACMC,EAAM,CACV,WAAY,iBACd,EACA,GAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAMD,CAAI,CAAC,EAI1D,MAAME,EAAS,MADI,IAAI,iCAA+BJ,CAAM,EAC5B,oBAAoBC,CAAM,EAG1D,OAAOG,CAAM,EAAE,WACb,QACE,IAAI,MACF,gGACF,CACF,CACF,CACF,CAAC,EAED,GAAG,kDAAmD,SAAY,CAEhE,MAAMH,EAAoC,CACxC,KAAM,6CACN,MAAO,WACP,QAAS,CACX,EACMC,EAAM,CACV,cAAe,aACjB,EACA,GAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAMD,CAAI,CAAC,EAI1D,MAAME,EAAS,MADI,IAAI,iCAA+BJ,CAAM,EAC5B,oBAAoBC,CAAM,EAG1D,OAAOG,CAAM,EAAE,WACb,QACE,IAAI,MACF,gGACF,CACF,CACF,CACF,CAAC,EAED,GAAG,6CAA8C,SAAY,CAE3D,MAAMH,EAAoC,CACxC,KAAM,6CACN,MAAO,WACP,QAAS,CACX,EACA,GAAG,MAAM,EAAAE,QAAO,SAAS,EAAE,sBAAsB,CAAE,KAAM,CAAC,CAAE,CAAC,EAI7D,MADmB,IAAI,iCAA+BH,CAAM,EAC3C,oBAAoBC,CAAM,EAG3C,OAAO,EAAAE,QAAM,OAAO,EAAE,qBACpB,OAAO,iBAAiB,CACtB,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAE,QAAQ,OAAO,GACjE,CAAC,4BAA0B,EAAGL,EAAO,WACvC,CACF,CAAC,CACH,CACF,CAAC,EAED,GAAG,oDAAqD,SAAY,CAElE,MAAMC,EAAoC,CACxC,KAAM,6CACN,MAAO,WACP,QAAS,CACX,EACA,GAAG,MAAM,EAAAE,QAAO,SAAS,EAAE,sBAAsB,CAAE,KAAM,CAAC,CAAE,CAAC,EAI7D,MADmB,IAAI,iCAA+BH,CAAM,EAC3C,oBAAoBC,CAAM,EAG3C,OAAO,EAAAE,QAAM,OAAO,EAAE,qBACpB,OAAO,iBAAiB,CACtB,OAAQ,OACR,IAAK,GAAGH,EAAO,WAAW,GAAG,mBAC/B,CAAC,CACH,CACF,CAAC,EAED,GAAG,kDAAmD,SAAY,CAEhE,MAAMC,EAAoC,CACxC,KAAM,6CACN,MAAO,WACP,QAAS,CACX,EACA,GAAG,MAAM,EAAAE,QAAO,SAAS,EAAE,sBAAsB,CAAE,KAAM,CAAC,CAAE,CAAC,EAI7D,MADmB,IAAI,iCAA+BH,CAAM,EAC3C,oBAAoBC,CAAM,EAG3C,OAAO,EAAAE,QAAM,OAAO,EAAE,qBACpB,OAAO,iBAAiB,CACtB,KAAM,CACJ,GAAI,CACF,KAAM,6CACN,IAAK,UACP,EACA,MAAO,CACT,CACF,CAAC,CACH,CACF,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["import_axios", "import_purify_ts", "import_HttpHeaders", "import_HttpTransactionCheckDataSource", "import_package", "config", "params", "dto", "axios", "result", "PACKAGE"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var T=Object.create;var p=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var _=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var b=(t,e)=>{for(var r in e)p(t,r,{get:e[r],enumerable:!0})},m=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of E(e))!g.call(t,o)&&o!==r&&p(t,o,{get:()=>e[o],enumerable:!(i=h(e,o))||i.enumerable});return t};var l=(t,e,r)=>(r=t!=null?T(_(t)):{},m(e||!t||!t.__esModule?p(r,"default",{value:t,enumerable:!0}):r,t)),x=t=>m(p({},"__esModule",{value:!0}),t),u=(t,e,r,i)=>{for(var o=i>1?void 0:i?h(e,r):e,a=t.length-1,c;a>=0;a--)(c=t[a])&&(o=(i?c(e,r,o):c(o))||o);return i&&o&&p(e,r,o),o},D=(t,e)=>(r,i)=>e(r,i,t);var R={};b(R,{HttpTypedDataCheckDataSource:()=>n});module.exports=x(R);var C=l(require("axios")),d=require("inversify"),s=require("purify-ts"),f=require("../../config/di/configTypes"),y=require("../../shared/constant/HttpHeaders"),k=l(require("../../../package.json"));let n=class{constructor(e){this.config=e}async getTypedDataCheck({from:e,data:r}){let i;const o={msg:{from:e,data:r}};try{i=(await C.default.request({method:"POST",url:`${this.config.web3checks.url}/ethereum/scan/eip-712`,data:o,headers:{[y.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${k.default.version}`,[y.LEDGER_ORIGIN_TOKEN_HEADER]:this.config.originToken}})).data}catch{return(0,s.Left)(new Error("[ContextModule] HttpTypedDataCheckDataSource: Failed to fetch typed data check information"))}if(!this._isTypedDataCheckDto(i))return(0,s.Left)(new Error("[ContextModule] HttpTypedDataCheckDataSource: Cannot exploit typed data check data received"));const a={publicKeyId:i.public_key_id,descriptor:i.descriptor};return(0,s.Right)(a)}_isTypedDataCheckDto(e){return e!=null&&typeof e=="object"&&"public_key_id"in e&&e.public_key_id!=null&&typeof e.public_key_id=="string"&&"descriptor"in e&&e.descriptor!=null&&typeof e.descriptor=="string"}};n=u([(0,d.injectable)(),D(0,(0,d.inject)(f.configTypes.Config))],n);0&&(module.exports={HttpTypedDataCheckDataSource});
2
+ //# sourceMappingURL=HttpTypedDataCheckDataSource.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/transaction-check/data/HttpTypedDataCheckDataSource.ts"],
4
+ "sourcesContent": ["import axios from \"axios\";\nimport { inject, injectable } from \"inversify\";\nimport { Either, Left, Right } from \"purify-ts\";\n\nimport { configTypes } from \"@/config/di/configTypes\";\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nimport { TypedDataCheckDto } from \"./dto/TypedDataCheckDto\";\nimport {\n GetTypedDataCheckParams,\n TypedDataCheck,\n TypedDataCheckDataSource,\n} from \"./TypedDataCheckDataSource\";\n\n@injectable()\nexport class HttpTypedDataCheckDataSource implements TypedDataCheckDataSource {\n constructor(\n @inject(configTypes.Config) private readonly config: ContextModuleConfig,\n ) {}\n\n public async getTypedDataCheck({\n from,\n data,\n }: GetTypedDataCheckParams): Promise<Either<Error, TypedDataCheck>> {\n let typedDataCheckDto: TypedDataCheckDto;\n const requestDto = {\n msg: {\n from,\n data,\n },\n };\n\n try {\n const response = await axios.request<TypedDataCheckDto>({\n method: \"POST\",\n url: `${this.config.web3checks.url}/ethereum/scan/eip-712`,\n data: requestDto,\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: this.config.originToken,\n },\n });\n typedDataCheckDto = response.data;\n } catch (_error) {\n return Left(\n new Error(\n \"[ContextModule] HttpTypedDataCheckDataSource: Failed to fetch typed data check information\",\n ),\n );\n }\n\n if (!this._isTypedDataCheckDto(typedDataCheckDto)) {\n return Left(\n new Error(\n \"[ContextModule] HttpTypedDataCheckDataSource: Cannot exploit typed data check data received\",\n ),\n );\n }\n\n const result: TypedDataCheck = {\n publicKeyId: typedDataCheckDto.public_key_id,\n descriptor: typedDataCheckDto.descriptor,\n };\n\n return Right(result);\n }\n\n private _isTypedDataCheckDto(dto: unknown): dto is TypedDataCheckDto {\n return (\n dto != null &&\n typeof dto == \"object\" &&\n \"public_key_id\" in dto &&\n dto.public_key_id != null &&\n typeof dto.public_key_id == \"string\" &&\n \"descriptor\" in dto &&\n dto.descriptor != null &&\n typeof dto.descriptor == \"string\"\n );\n }\n}\n"],
5
+ "mappings": "qtBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkB,oBAClBC,EAAmC,qBACnCC,EAAoC,qBAEpCC,EAA4B,mCAE5BC,EAGO,yCACPC,EAAoB,iCAUb,IAAMC,EAAN,KAAuE,CAC5E,YAC+CC,EAC7C,CAD6C,YAAAA,CAC5C,CAEH,MAAa,kBAAkB,CAC7B,KAAAC,EACA,KAAAC,CACF,EAAoE,CAClE,IAAIC,EACJ,MAAMC,EAAa,CACjB,IAAK,CACH,KAAAH,EACA,KAAAC,CACF,CACF,EAEA,GAAI,CAUFC,GATiB,MAAM,EAAAE,QAAM,QAA2B,CACtD,OAAQ,OACR,IAAK,GAAG,KAAK,OAAO,WAAW,GAAG,yBAClC,KAAMD,EACN,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAE,QAAQ,OAAO,GACjE,CAAC,4BAA0B,EAAG,KAAK,OAAO,WAC5C,CACF,CAAC,GAC4B,IAC/B,MAAiB,CACf,SAAO,QACL,IAAI,MACF,4FACF,CACF,CACF,CAEA,GAAI,CAAC,KAAK,qBAAqBH,CAAiB,EAC9C,SAAO,QACL,IAAI,MACF,6FACF,CACF,EAGF,MAAMI,EAAyB,CAC7B,YAAaJ,EAAkB,cAC/B,WAAYA,EAAkB,UAChC,EAEA,SAAO,SAAMI,CAAM,CACrB,CAEQ,qBAAqBC,EAAwC,CACnE,OACEA,GAAO,MACP,OAAOA,GAAO,UACd,kBAAmBA,GACnBA,EAAI,eAAiB,MACrB,OAAOA,EAAI,eAAiB,UAC5B,eAAgBA,GAChBA,EAAI,YAAc,MAClB,OAAOA,EAAI,YAAc,QAE7B,CACF,EAhEaT,EAANU,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,cAAY,MAAM,IAFjBX",
6
+ "names": ["HttpTypedDataCheckDataSource_exports", "__export", "HttpTypedDataCheckDataSource", "__toCommonJS", "import_axios", "import_inversify", "import_purify_ts", "import_configTypes", "import_HttpHeaders", "import_package", "HttpTypedDataCheckDataSource", "config", "from", "data", "typedDataCheckDto", "requestDto", "axios", "PACKAGE", "result", "dto", "__decorateClass", "__decorateParam"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var h=Object.create;var p=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var T=(e,i,a,t)=>{if(i&&typeof i=="object"||typeof i=="function")for(let o of m(i))!C.call(e,o)&&o!==a&&p(e,o,{get:()=>i[o],enumerable:!(t=k(i,o))||t.enumerable});return e};var u=(e,i,a)=>(a=e!=null?h(D(e)):{},T(i||!e||!e.__esModule?p(a,"default",{value:e,enumerable:!0}):a,e));var r=u(require("axios")),s=require("purify-ts"),n=require("../../shared/constant/HttpHeaders"),d=require("../../transaction-check/data/HttpTypedDataCheckDataSource"),l=u(require("../../../package.json"));vi.mock("axios");describe("HttpTypedDataCheckDataSource",()=>{const e={web3checks:{url:"web3checksUrl"},originToken:"originToken"};beforeEach(()=>{vi.resetAllMocks()}),describe("getTypedDataCheck",()=>{const a={from:"0x1234567890123456789012345678901234567890",data:{domain:{name:"Test Domain",version:"1",chainId:1,verifyingContract:"0x1234567890123456789012345678901234567890"},types:{EIP712Domain:[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],Person:[{name:"name",type:"string"},{name:"wallet",type:"address"}]},primaryType:"Person",message:{name:"Alice",wallet:"0x1234567890123456789012345678901234567890"}}};it("should return an object if the request is successful",async()=>{const t={public_key_id:"test-key-id",descriptor:"test-descriptor"};vi.spyOn(r.default,"request").mockResolvedValueOnce({data:t});const c=await new d.HttpTypedDataCheckDataSource(e).getTypedDataCheck(a);expect(c).toEqual((0,s.Right)({publicKeyId:"test-key-id",descriptor:"test-descriptor"}))}),it("should return an error if the request fails",async()=>{vi.spyOn(r.default,"request").mockRejectedValue(new Error("error"));const o=await new d.HttpTypedDataCheckDataSource(e).getTypedDataCheck(a);expect(o).toEqual((0,s.Left)(new Error("[ContextModule] HttpTypedDataCheckDataSource: Failed to fetch typed data check information")))}),it("should return an error if the response is invalid",async()=>{const t={};vi.spyOn(r.default,"request").mockResolvedValue({data:t});const c=await new d.HttpTypedDataCheckDataSource(e).getTypedDataCheck(a);expect(c).toEqual((0,s.Left)(new Error("[ContextModule] HttpTypedDataCheckDataSource: Cannot exploit typed data check data received")))}),it("should return an error if public_key_id is missing",async()=>{const t={descriptor:"test-descriptor"};vi.spyOn(r.default,"request").mockResolvedValue({data:t});const c=await new d.HttpTypedDataCheckDataSource(e).getTypedDataCheck(a);expect(c).toEqual((0,s.Left)(new Error("[ContextModule] HttpTypedDataCheckDataSource: Cannot exploit typed data check data received")))}),it("should return an error if descriptor is missing",async()=>{const t={public_key_id:"test-key-id"};vi.spyOn(r.default,"request").mockResolvedValue({data:t});const c=await new d.HttpTypedDataCheckDataSource(e).getTypedDataCheck(a);expect(c).toEqual((0,s.Left)(new Error("[ContextModule] HttpTypedDataCheckDataSource: Cannot exploit typed data check data received")))}),it("should return an error if public_key_id is null",async()=>{const t={public_key_id:null,descriptor:"test-descriptor"};vi.spyOn(r.default,"request").mockResolvedValue({data:t});const c=await new d.HttpTypedDataCheckDataSource(e).getTypedDataCheck(a);expect(c).toEqual((0,s.Left)(new Error("[ContextModule] HttpTypedDataCheckDataSource: Cannot exploit typed data check data received")))}),it("should return an error if descriptor is null",async()=>{const t={public_key_id:"test-key-id",descriptor:null};vi.spyOn(r.default,"request").mockResolvedValue({data:t});const c=await new d.HttpTypedDataCheckDataSource(e).getTypedDataCheck(a);expect(c).toEqual((0,s.Left)(new Error("[ContextModule] HttpTypedDataCheckDataSource: Cannot exploit typed data check data received")))}),it("should call axios with the correct headers",async()=>{const t={public_key_id:"test-key-id",descriptor:"test-descriptor"};vi.spyOn(r.default,"request").mockResolvedValueOnce({data:t}),await new d.HttpTypedDataCheckDataSource(e).getTypedDataCheck(a),expect(r.default.request).toHaveBeenCalledWith(expect.objectContaining({headers:{[n.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${l.default.version}`,[n.LEDGER_ORIGIN_TOKEN_HEADER]:e.originToken}}))}),it("should call axios with the correct URL and method",async()=>{const t={public_key_id:"test-key-id",descriptor:"test-descriptor"};vi.spyOn(r.default,"request").mockResolvedValueOnce({data:t}),await new d.HttpTypedDataCheckDataSource(e).getTypedDataCheck(a),expect(r.default.request).toHaveBeenCalledWith(expect.objectContaining({method:"POST",url:`${e.web3checks.url}/ethereum/scan/eip-712`}))}),it("should call axios with the correct request data",async()=>{const t={public_key_id:"test-key-id",descriptor:"test-descriptor"};vi.spyOn(r.default,"request").mockResolvedValueOnce({data:t}),await new d.HttpTypedDataCheckDataSource(e).getTypedDataCheck(a),expect(r.default.request).toHaveBeenCalledWith(expect.objectContaining({data:{msg:{from:a.from,data:a.data}}}))}),it("should handle empty typed data",async()=>{const o={from:"0x1234567890123456789012345678901234567890",data:{domain:{},types:{},primaryType:"",message:{}}},c={public_key_id:"test-key-id",descriptor:"test-descriptor"};vi.spyOn(r.default,"request").mockResolvedValueOnce({data:c});const y=await new d.HttpTypedDataCheckDataSource(e).getTypedDataCheck(o);expect(y).toEqual((0,s.Right)({publicKeyId:"test-key-id",descriptor:"test-descriptor"}))})})});
2
+ //# sourceMappingURL=HttpTypedDataCheckDataSource.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/transaction-check/data/HttpTypedDataCheckDataSource.test.ts"],
4
+ "sourcesContent": ["import axios from \"axios\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport { type TypedDataCheckDto } from \"@/transaction-check/data/dto/TypedDataCheckDto\";\nimport { HttpTypedDataCheckDataSource } from \"@/transaction-check/data/HttpTypedDataCheckDataSource\";\nimport {\n type GetTypedDataCheckParams,\n type TypedData,\n} from \"@/transaction-check/data/TypedDataCheckDataSource\";\nimport PACKAGE from \"@root/package.json\";\n\nvi.mock(\"axios\");\n\ndescribe(\"HttpTypedDataCheckDataSource\", () => {\n const config = {\n web3checks: {\n url: \"web3checksUrl\",\n },\n originToken: \"originToken\",\n } as ContextModuleConfig;\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n describe(\"getTypedDataCheck\", () => {\n const validTypedData: TypedData = {\n domain: {\n name: \"Test Domain\",\n version: \"1\",\n chainId: 1,\n verifyingContract: \"0x1234567890123456789012345678901234567890\",\n },\n types: {\n EIP712Domain: [\n { name: \"name\", type: \"string\" },\n { name: \"version\", type: \"string\" },\n { name: \"chainId\", type: \"uint256\" },\n { name: \"verifyingContract\", type: \"address\" },\n ],\n Person: [\n { name: \"name\", type: \"string\" },\n { name: \"wallet\", type: \"address\" },\n ],\n },\n primaryType: \"Person\",\n message: {\n name: \"Alice\",\n wallet: \"0x1234567890123456789012345678901234567890\",\n },\n };\n\n const params: GetTypedDataCheckParams = {\n from: \"0x1234567890123456789012345678901234567890\",\n data: validTypedData,\n };\n\n it(\"should return an object if the request is successful\", async () => {\n // GIVEN\n const dto: TypedDataCheckDto = {\n public_key_id: \"test-key-id\",\n descriptor: \"test-descriptor\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValueOnce({ data: dto });\n\n // WHEN\n const dataSource = new HttpTypedDataCheckDataSource(config);\n const result = await dataSource.getTypedDataCheck(params);\n\n // THEN\n expect(result).toEqual(\n Right({\n publicKeyId: \"test-key-id\",\n descriptor: \"test-descriptor\",\n }),\n );\n });\n\n it(\"should return an error if the request fails\", async () => {\n // GIVEN\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"error\"));\n\n // WHEN\n const dataSource = new HttpTypedDataCheckDataSource(config);\n const result = await dataSource.getTypedDataCheck(params);\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpTypedDataCheckDataSource: Failed to fetch typed data check information\",\n ),\n ),\n );\n });\n\n it(\"should return an error if the response is invalid\", async () => {\n // GIVEN\n const dto = {};\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: dto });\n\n // WHEN\n const dataSource = new HttpTypedDataCheckDataSource(config);\n const result = await dataSource.getTypedDataCheck(params);\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpTypedDataCheckDataSource: Cannot exploit typed data check data received\",\n ),\n ),\n );\n });\n\n it(\"should return an error if public_key_id is missing\", async () => {\n // GIVEN\n const dto = {\n descriptor: \"test-descriptor\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: dto });\n\n // WHEN\n const dataSource = new HttpTypedDataCheckDataSource(config);\n const result = await dataSource.getTypedDataCheck(params);\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpTypedDataCheckDataSource: Cannot exploit typed data check data received\",\n ),\n ),\n );\n });\n\n it(\"should return an error if descriptor is missing\", async () => {\n // GIVEN\n const dto = {\n public_key_id: \"test-key-id\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: dto });\n\n // WHEN\n const dataSource = new HttpTypedDataCheckDataSource(config);\n const result = await dataSource.getTypedDataCheck(params);\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpTypedDataCheckDataSource: Cannot exploit typed data check data received\",\n ),\n ),\n );\n });\n\n it(\"should return an error if public_key_id is null\", async () => {\n // GIVEN\n const dto = {\n public_key_id: null,\n descriptor: \"test-descriptor\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: dto });\n\n // WHEN\n const dataSource = new HttpTypedDataCheckDataSource(config);\n const result = await dataSource.getTypedDataCheck(params);\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpTypedDataCheckDataSource: Cannot exploit typed data check data received\",\n ),\n ),\n );\n });\n\n it(\"should return an error if descriptor is null\", async () => {\n // GIVEN\n const dto = {\n public_key_id: \"test-key-id\",\n descriptor: null,\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({ data: dto });\n\n // WHEN\n const dataSource = new HttpTypedDataCheckDataSource(config);\n const result = await dataSource.getTypedDataCheck(params);\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpTypedDataCheckDataSource: Cannot exploit typed data check data received\",\n ),\n ),\n );\n });\n\n it(\"should call axios with the correct headers\", async () => {\n // GIVEN\n const dto: TypedDataCheckDto = {\n public_key_id: \"test-key-id\",\n descriptor: \"test-descriptor\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValueOnce({ data: dto });\n\n // WHEN\n const dataSource = new HttpTypedDataCheckDataSource(config);\n await dataSource.getTypedDataCheck(params);\n\n // THEN\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: config.originToken,\n },\n }),\n );\n });\n\n it(\"should call axios with the correct URL and method\", async () => {\n // GIVEN\n const dto: TypedDataCheckDto = {\n public_key_id: \"test-key-id\",\n descriptor: \"test-descriptor\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValueOnce({ data: dto });\n\n // WHEN\n const dataSource = new HttpTypedDataCheckDataSource(config);\n await dataSource.getTypedDataCheck(params);\n\n // THEN\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n method: \"POST\",\n url: `${config.web3checks.url}/ethereum/scan/eip-712`,\n }),\n );\n });\n\n it(\"should call axios with the correct request data\", async () => {\n // GIVEN\n const dto: TypedDataCheckDto = {\n public_key_id: \"test-key-id\",\n descriptor: \"test-descriptor\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValueOnce({ data: dto });\n\n // WHEN\n const dataSource = new HttpTypedDataCheckDataSource(config);\n await dataSource.getTypedDataCheck(params);\n\n // THEN\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n data: {\n msg: {\n from: params.from,\n data: params.data,\n },\n },\n }),\n );\n });\n\n it(\"should handle empty typed data\", async () => {\n // GIVEN\n const emptyTypedData: TypedData = {\n domain: {},\n types: {},\n primaryType: \"\",\n message: {},\n };\n const paramsWithEmptyData: GetTypedDataCheckParams = {\n from: \"0x1234567890123456789012345678901234567890\",\n data: emptyTypedData,\n };\n const dto: TypedDataCheckDto = {\n public_key_id: \"test-key-id\",\n descriptor: \"test-descriptor\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValueOnce({ data: dto });\n\n // WHEN\n const dataSource = new HttpTypedDataCheckDataSource(config);\n const result = await dataSource.getTypedDataCheck(paramsWithEmptyData);\n\n // THEN\n expect(result).toEqual(\n Right({\n publicKeyId: \"test-key-id\",\n descriptor: \"test-descriptor\",\n }),\n );\n });\n });\n});\n"],
5
+ "mappings": "wdAAA,IAAAA,EAAkB,oBAClBC,EAA4B,qBAG5BC,EAGO,yCAEPC,EAA6C,iEAK7CC,EAAoB,iCAEpB,GAAG,KAAK,OAAO,EAEf,SAAS,+BAAgC,IAAM,CAC7C,MAAMC,EAAS,CACb,WAAY,CACV,IAAK,eACP,EACA,YAAa,aACf,EAEA,WAAW,IAAM,CACf,GAAG,cAAc,CACnB,CAAC,EAED,SAAS,oBAAqB,IAAM,CA2BlC,MAAMC,EAAkC,CACtC,KAAM,6CACN,KA5BgC,CAChC,OAAQ,CACN,KAAM,cACN,QAAS,IACT,QAAS,EACT,kBAAmB,4CACrB,EACA,MAAO,CACL,aAAc,CACZ,CAAE,KAAM,OAAQ,KAAM,QAAS,EAC/B,CAAE,KAAM,UAAW,KAAM,QAAS,EAClC,CAAE,KAAM,UAAW,KAAM,SAAU,EACnC,CAAE,KAAM,oBAAqB,KAAM,SAAU,CAC/C,EACA,OAAQ,CACN,CAAE,KAAM,OAAQ,KAAM,QAAS,EAC/B,CAAE,KAAM,SAAU,KAAM,SAAU,CACpC,CACF,EACA,YAAa,SACb,QAAS,CACP,KAAM,QACN,OAAQ,4CACV,CACF,CAKA,EAEA,GAAG,uDAAwD,SAAY,CAErE,MAAMC,EAAyB,CAC7B,cAAe,cACf,WAAY,iBACd,EACA,GAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,sBAAsB,CAAE,KAAMD,CAAI,CAAC,EAI9D,MAAME,EAAS,MADI,IAAI,+BAA6BJ,CAAM,EAC1B,kBAAkBC,CAAM,EAGxD,OAAOG,CAAM,EAAE,WACb,SAAM,CACJ,YAAa,cACb,WAAY,iBACd,CAAC,CACH,CACF,CAAC,EAED,GAAG,8CAA+C,SAAY,CAE5D,GAAG,MAAM,EAAAD,QAAO,SAAS,EAAE,kBAAkB,IAAI,MAAM,OAAO,CAAC,EAI/D,MAAMC,EAAS,MADI,IAAI,+BAA6BJ,CAAM,EAC1B,kBAAkBC,CAAM,EAGxD,OAAOG,CAAM,EAAE,WACb,QACE,IAAI,MACF,4FACF,CACF,CACF,CACF,CAAC,EAED,GAAG,oDAAqD,SAAY,CAElE,MAAMF,EAAM,CAAC,EACb,GAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAMD,CAAI,CAAC,EAI1D,MAAME,EAAS,MADI,IAAI,+BAA6BJ,CAAM,EAC1B,kBAAkBC,CAAM,EAGxD,OAAOG,CAAM,EAAE,WACb,QACE,IAAI,MACF,6FACF,CACF,CACF,CACF,CAAC,EAED,GAAG,qDAAsD,SAAY,CAEnE,MAAMF,EAAM,CACV,WAAY,iBACd,EACA,GAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAMD,CAAI,CAAC,EAI1D,MAAME,EAAS,MADI,IAAI,+BAA6BJ,CAAM,EAC1B,kBAAkBC,CAAM,EAGxD,OAAOG,CAAM,EAAE,WACb,QACE,IAAI,MACF,6FACF,CACF,CACF,CACF,CAAC,EAED,GAAG,kDAAmD,SAAY,CAEhE,MAAMF,EAAM,CACV,cAAe,aACjB,EACA,GAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAMD,CAAI,CAAC,EAI1D,MAAME,EAAS,MADI,IAAI,+BAA6BJ,CAAM,EAC1B,kBAAkBC,CAAM,EAGxD,OAAOG,CAAM,EAAE,WACb,QACE,IAAI,MACF,6FACF,CACF,CACF,CACF,CAAC,EAED,GAAG,kDAAmD,SAAY,CAEhE,MAAMF,EAAM,CACV,cAAe,KACf,WAAY,iBACd,EACA,GAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAMD,CAAI,CAAC,EAI1D,MAAME,EAAS,MADI,IAAI,+BAA6BJ,CAAM,EAC1B,kBAAkBC,CAAM,EAGxD,OAAOG,CAAM,EAAE,WACb,QACE,IAAI,MACF,6FACF,CACF,CACF,CACF,CAAC,EAED,GAAG,+CAAgD,SAAY,CAE7D,MAAMF,EAAM,CACV,cAAe,cACf,WAAY,IACd,EACA,GAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,kBAAkB,CAAE,KAAMD,CAAI,CAAC,EAI1D,MAAME,EAAS,MADI,IAAI,+BAA6BJ,CAAM,EAC1B,kBAAkBC,CAAM,EAGxD,OAAOG,CAAM,EAAE,WACb,QACE,IAAI,MACF,6FACF,CACF,CACF,CACF,CAAC,EAED,GAAG,6CAA8C,SAAY,CAE3D,MAAMF,EAAyB,CAC7B,cAAe,cACf,WAAY,iBACd,EACA,GAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,sBAAsB,CAAE,KAAMD,CAAI,CAAC,EAI9D,MADmB,IAAI,+BAA6BF,CAAM,EACzC,kBAAkBC,CAAM,EAGzC,OAAO,EAAAE,QAAM,OAAO,EAAE,qBACpB,OAAO,iBAAiB,CACtB,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAE,QAAQ,OAAO,GACjE,CAAC,4BAA0B,EAAGL,EAAO,WACvC,CACF,CAAC,CACH,CACF,CAAC,EAED,GAAG,oDAAqD,SAAY,CAElE,MAAME,EAAyB,CAC7B,cAAe,cACf,WAAY,iBACd,EACA,GAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,sBAAsB,CAAE,KAAMD,CAAI,CAAC,EAI9D,MADmB,IAAI,+BAA6BF,CAAM,EACzC,kBAAkBC,CAAM,EAGzC,OAAO,EAAAE,QAAM,OAAO,EAAE,qBACpB,OAAO,iBAAiB,CACtB,OAAQ,OACR,IAAK,GAAGH,EAAO,WAAW,GAAG,wBAC/B,CAAC,CACH,CACF,CAAC,EAED,GAAG,kDAAmD,SAAY,CAEhE,MAAME,EAAyB,CAC7B,cAAe,cACf,WAAY,iBACd,EACA,GAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,sBAAsB,CAAE,KAAMD,CAAI,CAAC,EAI9D,MADmB,IAAI,+BAA6BF,CAAM,EACzC,kBAAkBC,CAAM,EAGzC,OAAO,EAAAE,QAAM,OAAO,EAAE,qBACpB,OAAO,iBAAiB,CACtB,KAAM,CACJ,IAAK,CACH,KAAMF,EAAO,KACb,KAAMA,EAAO,IACf,CACF,CACF,CAAC,CACH,CACF,CAAC,EAED,GAAG,iCAAkC,SAAY,CAQ/C,MAAMK,EAA+C,CACnD,KAAM,6CACN,KARgC,CAChC,OAAQ,CAAC,EACT,MAAO,CAAC,EACR,YAAa,GACb,QAAS,CAAC,CACZ,CAIA,EACMJ,EAAyB,CAC7B,cAAe,cACf,WAAY,iBACd,EACA,GAAG,MAAM,EAAAC,QAAO,SAAS,EAAE,sBAAsB,CAAE,KAAMD,CAAI,CAAC,EAI9D,MAAME,EAAS,MADI,IAAI,+BAA6BJ,CAAM,EAC1B,kBAAkBM,CAAmB,EAGrE,OAAOF,CAAM,EAAE,WACb,SAAM,CACJ,YAAa,cACb,WAAY,iBACd,CAAC,CACH,CACF,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["import_axios", "import_purify_ts", "import_HttpHeaders", "import_HttpTypedDataCheckDataSource", "import_package", "config", "params", "dto", "axios", "result", "PACKAGE", "paramsWithEmptyData"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var n=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var p=(t,r,i,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let e of o(r))!s.call(t,e)&&e!==i&&n(t,e,{get:()=>r[e],enumerable:!(a=c(r,e))||a.enumerable});return t};var h=t=>p(n({},"__esModule",{value:!0}),t);var m={};module.exports=h(m);
2
+ //# sourceMappingURL=TransactionCheckDataSource.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/transaction-check/data/TransactionCheckDataSource.ts"],
4
+ "sourcesContent": ["import { type Either } from \"purify-ts\";\n\nexport type GetTransactionCheckParams = {\n chainId: number;\n rawTx: string;\n from: string;\n};\n\nexport type TransactionCheck = {\n publicKeyId: string;\n descriptor: string;\n};\n\nexport interface TransactionCheckDataSource {\n getTransactionCheck(\n params: GetTransactionCheckParams,\n ): Promise<Either<Error, TransactionCheck>>;\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["TransactionCheckDataSource_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var i=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var o=(t,e,n,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of s(e))!y.call(t,r)&&r!==n&&i(t,r,{get:()=>e[r],enumerable:!(a=p(e,r))||a.enumerable});return t};var d=t=>o(i({},"__esModule",{value:!0}),t);var g={};module.exports=d(g);
2
+ //# sourceMappingURL=TypedDataCheckDataSource.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/transaction-check/data/TypedDataCheckDataSource.ts"],
4
+ "sourcesContent": ["import { type Either } from \"purify-ts\";\n\nexport type TypedData = {\n domain: {\n name?: string;\n version?: string;\n chainId?: number;\n verifyingContract?: string;\n salt?: string;\n };\n types: Record<string, Array<{ name: string; type: string }>>;\n primaryType: string;\n message: Record<string, unknown>;\n};\n\nexport type GetTypedDataCheckParams = {\n from: string;\n data: TypedData;\n};\n\nexport type TypedDataCheck = {\n publicKeyId: string;\n descriptor: string;\n};\n\nexport interface TypedDataCheckDataSource {\n getTypedDataCheck(\n params: GetTypedDataCheckParams,\n ): Promise<Either<Error, TypedDataCheck>>;\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["TypedDataCheckDataSource_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var c=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var a=(i,t,n,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of p(t))!s.call(i,r)&&r!==n&&c(i,r,{get:()=>t[r],enumerable:!(e=o(t,r))||e.enumerable});return i};var d=i=>a(c({},"__esModule",{value:!0}),i);var g={};module.exports=d(g);
2
+ //# sourceMappingURL=TransactionCheckDto.js.map