@ledgerhq/context-module 0.0.0-rnble-transport-20250422084848 → 0.0.0-safe-20250917153142

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 (537) hide show
  1. package/lib/cjs/package.json +12 -12
  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 +3 -3
  6. package/lib/cjs/src/ContextModuleBuilder.test.js +1 -1
  7. package/lib/cjs/src/ContextModuleBuilder.test.js.map +3 -3
  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/di/configModuleFactory.js +1 -1
  13. package/lib/cjs/src/config/di/configModuleFactory.js.map +3 -3
  14. package/lib/cjs/src/config/model/ContextModuleConfig.js +1 -1
  15. package/lib/cjs/src/config/model/ContextModuleConfig.js.map +1 -1
  16. package/lib/cjs/src/di.js +1 -1
  17. package/lib/cjs/src/di.js.map +3 -3
  18. package/lib/cjs/src/dynamic-network/data/DynamicNetworkDataSource.js +2 -0
  19. package/lib/cjs/src/dynamic-network/data/DynamicNetworkDataSource.js.map +7 -0
  20. package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.js +2 -0
  21. package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.js.map +7 -0
  22. package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js +2 -0
  23. package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js.map +7 -0
  24. package/lib/cjs/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.js +2 -0
  25. package/lib/cjs/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.js.map +7 -0
  26. package/lib/cjs/src/dynamic-network/di/dynamicNetworkModuleFactory.js +2 -0
  27. package/lib/cjs/src/dynamic-network/di/dynamicNetworkModuleFactory.js.map +7 -0
  28. package/lib/cjs/src/dynamic-network/di/dynamicNetworkTypes.js +2 -0
  29. package/lib/cjs/src/dynamic-network/di/dynamicNetworkTypes.js.map +7 -0
  30. package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.js +2 -0
  31. package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.js.map +7 -0
  32. package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js +2 -0
  33. package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js.map +7 -0
  34. package/lib/cjs/src/dynamic-network/model/DynamicNetworkConfiguration.js +2 -0
  35. package/lib/cjs/src/dynamic-network/model/DynamicNetworkConfiguration.js.map +7 -0
  36. package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.js +1 -1
  37. package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.js.map +2 -2
  38. package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.test.js +1 -1
  39. package/lib/cjs/src/external-plugin/data/HttpExternalPluginDataSource.test.js.map +3 -3
  40. package/lib/cjs/src/external-plugin/di/externalPluginModuleFactory.js +1 -1
  41. package/lib/cjs/src/external-plugin/di/externalPluginModuleFactory.js.map +3 -3
  42. package/lib/cjs/src/external-plugin/domain/ExternalPluginContextLoader.js +1 -1
  43. package/lib/cjs/src/external-plugin/domain/ExternalPluginContextLoader.js.map +3 -3
  44. package/lib/cjs/src/external-plugin/domain/ExternalPluginContextLoader.test.js +1 -1
  45. package/lib/cjs/src/external-plugin/domain/ExternalPluginContextLoader.test.js.map +3 -3
  46. package/lib/cjs/src/index.js +1 -1
  47. package/lib/cjs/src/index.js.map +2 -2
  48. package/lib/cjs/src/nft/data/HttpNftDataSource.js +1 -1
  49. package/lib/cjs/src/nft/data/HttpNftDataSource.js.map +3 -3
  50. package/lib/cjs/src/nft/data/HttpNftDataSource.test.js +1 -1
  51. package/lib/cjs/src/nft/data/HttpNftDataSource.test.js.map +3 -3
  52. package/lib/cjs/src/nft/di/nftModuleFactory.js +1 -1
  53. package/lib/cjs/src/nft/di/nftModuleFactory.js.map +3 -3
  54. package/lib/cjs/src/nft/di/nftTypes.js +1 -1
  55. package/lib/cjs/src/nft/di/nftTypes.js.map +2 -2
  56. package/lib/cjs/src/nft/domain/NftContextFieldLoader.js +2 -0
  57. package/lib/cjs/src/nft/domain/NftContextFieldLoader.js.map +7 -0
  58. package/lib/cjs/src/nft/domain/NftContextFieldLoader.test.js +2 -0
  59. package/lib/cjs/src/nft/domain/NftContextFieldLoader.test.js.map +7 -0
  60. package/lib/cjs/src/nft/domain/NftContextLoader.js +1 -1
  61. package/lib/cjs/src/nft/domain/NftContextLoader.js.map +3 -3
  62. package/lib/cjs/src/nft/domain/NftContextLoader.test.js +1 -1
  63. package/lib/cjs/src/nft/domain/NftContextLoader.test.js.map +3 -3
  64. package/lib/cjs/src/pki/di/pkiModuleFactory.js +1 -1
  65. package/lib/cjs/src/pki/di/pkiModuleFactory.js.map +3 -3
  66. package/lib/cjs/src/pki/domain/DefaultPkiCertificateLoader.js.map +2 -2
  67. package/lib/cjs/src/pki/domain/DefaultPkiCertificateLoader.test.js +1 -1
  68. package/lib/cjs/src/pki/domain/DefaultPkiCertificateLoader.test.js.map +3 -3
  69. package/lib/cjs/src/proxy/data/HttpProxyDataSource.js +2 -0
  70. package/lib/cjs/src/proxy/data/HttpProxyDataSource.js.map +7 -0
  71. package/lib/cjs/src/proxy/data/HttpProxyDataSource.test.js +2 -0
  72. package/lib/cjs/src/proxy/data/HttpProxyDataSource.test.js.map +7 -0
  73. package/lib/cjs/src/proxy/data/HttpSafeProxyDataSource.js +2 -0
  74. package/lib/cjs/src/proxy/data/HttpSafeProxyDataSource.js.map +7 -0
  75. package/lib/cjs/src/proxy/data/HttpSafeProxyDataSource.test.js +2 -0
  76. package/lib/cjs/src/proxy/data/HttpSafeProxyDataSource.test.js.map +7 -0
  77. package/lib/cjs/src/proxy/data/ProxyDataSource.js +2 -0
  78. package/lib/cjs/src/proxy/data/ProxyDataSource.js.map +7 -0
  79. package/lib/cjs/src/proxy/data/dto/ProxyDelegateCallDto.js +2 -0
  80. package/lib/cjs/src/proxy/data/dto/ProxyDelegateCallDto.js.map +7 -0
  81. package/lib/cjs/src/proxy/data/dto/ProxyImplementationAddressDto.js +2 -0
  82. package/lib/cjs/src/proxy/data/dto/ProxyImplementationAddressDto.js.map +7 -0
  83. package/lib/cjs/src/proxy/data/dto/SafeProxyImplementationAddressDto.js +2 -0
  84. package/lib/cjs/src/proxy/data/dto/SafeProxyImplementationAddressDto.js.map +7 -0
  85. package/lib/cjs/src/proxy/di/proxyModuleFactory.js +2 -0
  86. package/lib/cjs/src/proxy/di/proxyModuleFactory.js.map +7 -0
  87. package/lib/cjs/src/proxy/di/proxyModuleFactory.test.js +2 -0
  88. package/lib/cjs/src/proxy/di/proxyModuleFactory.test.js.map +7 -0
  89. package/lib/cjs/src/proxy/di/proxyTypes.js +2 -0
  90. package/lib/cjs/src/proxy/di/proxyTypes.js.map +7 -0
  91. package/lib/cjs/src/proxy/domain/ProxyContextFieldLoader.js +2 -0
  92. package/lib/cjs/src/proxy/domain/ProxyContextFieldLoader.js.map +7 -0
  93. package/lib/cjs/src/proxy/domain/ProxyContextFieldLoader.test.js +2 -0
  94. package/lib/cjs/src/proxy/domain/ProxyContextFieldLoader.test.js.map +7 -0
  95. package/lib/cjs/src/proxy/model/ProxyDelegateCall.js +2 -0
  96. package/lib/cjs/src/proxy/model/ProxyDelegateCall.js.map +7 -0
  97. package/lib/cjs/src/shared/constant/HttpHeaders.js +1 -1
  98. package/lib/cjs/src/shared/constant/HttpHeaders.js.map +1 -1
  99. package/lib/cjs/src/shared/domain/ContextFieldLoader.js +2 -0
  100. package/lib/cjs/src/shared/domain/ContextFieldLoader.js.map +7 -0
  101. package/lib/cjs/src/shared/domain/ContextLoader.js +1 -1
  102. package/lib/cjs/src/shared/domain/ContextLoader.js.map +1 -1
  103. package/lib/cjs/src/shared/model/ClearSignContext.js +1 -1
  104. package/lib/cjs/src/shared/model/ClearSignContext.js.map +3 -3
  105. package/lib/cjs/src/shared/model/SolanaTransactionContext.js +2 -0
  106. package/lib/cjs/src/shared/model/SolanaTransactionContext.js.map +7 -0
  107. package/lib/cjs/src/shared/model/TransactionContext.js +1 -1
  108. package/lib/cjs/src/shared/model/TransactionContext.js.map +1 -1
  109. package/lib/cjs/src/shared/model/TransactionFieldContext.js +2 -0
  110. package/lib/cjs/src/shared/model/TransactionFieldContext.js.map +7 -0
  111. package/lib/cjs/src/shared/model/TransactionSubset.js +1 -1
  112. package/lib/cjs/src/shared/model/TransactionSubset.js.map +1 -1
  113. package/lib/cjs/src/shared/model/TypedDataClearSignContext.js +1 -1
  114. package/lib/cjs/src/shared/model/TypedDataClearSignContext.js.map +3 -3
  115. package/lib/cjs/src/shared/model/TypedDataContext.js +1 -1
  116. package/lib/cjs/src/shared/model/TypedDataContext.js.map +1 -1
  117. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.js +2 -0
  118. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.js.map +7 -0
  119. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js +2 -0
  120. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js.map +7 -0
  121. package/lib/cjs/src/solana/data/SolanaDataSource.js +2 -0
  122. package/lib/cjs/src/solana/data/SolanaDataSource.js.map +7 -0
  123. package/lib/cjs/src/solana/di/SolanaContextModuleFactory.js +2 -0
  124. package/lib/cjs/src/solana/di/SolanaContextModuleFactory.js.map +7 -0
  125. package/lib/cjs/src/solana/di/solanaContextTypes.js +2 -0
  126. package/lib/cjs/src/solana/di/solanaContextTypes.js.map +7 -0
  127. package/lib/cjs/src/solana/domain/DefaultSolanaContextLoader.js +2 -0
  128. package/lib/cjs/src/solana/domain/DefaultSolanaContextLoader.js.map +7 -0
  129. package/lib/cjs/src/solana/domain/DefaultSolanaContextLoader.test.js +2 -0
  130. package/lib/cjs/src/solana/domain/DefaultSolanaContextLoader.test.js.map +7 -0
  131. package/lib/cjs/src/solana/domain/SolanaContextLoader.js +2 -0
  132. package/lib/cjs/src/solana/domain/SolanaContextLoader.js.map +7 -0
  133. package/lib/cjs/src/solana/domain/solanaContextTypes.js +2 -0
  134. package/lib/cjs/src/solana/domain/solanaContextTypes.js.map +7 -0
  135. package/lib/cjs/src/token/di/tokenModuleFactory.js +1 -1
  136. package/lib/cjs/src/token/di/tokenModuleFactory.js.map +3 -3
  137. package/lib/cjs/src/token/di/tokenTypes.js +1 -1
  138. package/lib/cjs/src/token/di/tokenTypes.js.map +2 -2
  139. package/lib/cjs/src/token/domain/TokenContextFieldLoader.js +2 -0
  140. package/lib/cjs/src/token/domain/TokenContextFieldLoader.js.map +7 -0
  141. package/lib/cjs/src/token/domain/TokenContextFieldLoader.test.js +2 -0
  142. package/lib/cjs/src/token/domain/TokenContextFieldLoader.test.js.map +7 -0
  143. package/lib/cjs/src/token/domain/TokenContextLoader.js +1 -1
  144. package/lib/cjs/src/token/domain/TokenContextLoader.js.map +3 -3
  145. package/lib/cjs/src/token/domain/TokenContextLoader.test.js +1 -1
  146. package/lib/cjs/src/token/domain/TokenContextLoader.test.js.map +3 -3
  147. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.js +1 -1
  148. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.js.map +2 -2
  149. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.test.js +1 -1
  150. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.test.js.map +3 -3
  151. package/lib/cjs/src/transaction/data/dto/CalldataDto.js +2 -0
  152. package/lib/cjs/src/transaction/data/dto/CalldataDto.js.map +7 -0
  153. package/lib/cjs/src/transaction/di/transactionModuleFactory.js +1 -1
  154. package/lib/cjs/src/transaction/di/transactionModuleFactory.js.map +3 -3
  155. package/lib/cjs/src/transaction/domain/TransactionContextLoader.js +1 -1
  156. package/lib/cjs/src/transaction/domain/TransactionContextLoader.js.map +3 -3
  157. package/lib/cjs/src/transaction/domain/TransactionContextLoader.test.js +1 -1
  158. package/lib/cjs/src/transaction/domain/TransactionContextLoader.test.js.map +3 -3
  159. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.js +1 -1
  160. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.js.map +2 -2
  161. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.test.js +1 -1
  162. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.test.js.map +3 -3
  163. package/lib/cjs/src/trusted-name/di/trustedNameModuleFactory.js +1 -1
  164. package/lib/cjs/src/trusted-name/di/trustedNameModuleFactory.js.map +3 -3
  165. package/lib/cjs/src/trusted-name/di/trustedNameTypes.js +1 -1
  166. package/lib/cjs/src/trusted-name/di/trustedNameTypes.js.map +2 -2
  167. package/lib/cjs/src/trusted-name/domain/TrustedNameContextFieldLoader.js +2 -0
  168. package/lib/cjs/src/trusted-name/domain/TrustedNameContextFieldLoader.js.map +7 -0
  169. package/lib/cjs/src/trusted-name/domain/TrustedNameContextFieldLoader.test.js +2 -0
  170. package/lib/cjs/src/trusted-name/domain/TrustedNameContextFieldLoader.test.js.map +7 -0
  171. package/lib/cjs/src/trusted-name/domain/TrustedNameContextLoader.js +1 -1
  172. package/lib/cjs/src/trusted-name/domain/TrustedNameContextLoader.js.map +3 -3
  173. package/lib/cjs/src/trusted-name/domain/TrustedNameContextLoader.test.js +1 -1
  174. package/lib/cjs/src/trusted-name/domain/TrustedNameContextLoader.test.js.map +3 -3
  175. package/lib/cjs/src/typed-data/data/FiltersDto.js +1 -1
  176. package/lib/cjs/src/typed-data/data/FiltersDto.js.map +1 -1
  177. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.js +1 -1
  178. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.js.map +3 -3
  179. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.test.js +1 -1
  180. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.test.js.map +3 -3
  181. package/lib/cjs/src/typed-data/data/TypedDataDataSource.js +1 -1
  182. package/lib/cjs/src/typed-data/data/TypedDataDataSource.js.map +1 -1
  183. package/lib/cjs/src/typed-data/di/typedDataModuleFactory.js +1 -1
  184. package/lib/cjs/src/typed-data/di/typedDataModuleFactory.js.map +3 -3
  185. package/lib/cjs/src/typed-data/domain/DefaultTypedDataContextLoader.js +1 -1
  186. package/lib/cjs/src/typed-data/domain/DefaultTypedDataContextLoader.js.map +3 -3
  187. package/lib/cjs/src/typed-data/domain/DefaultTypedDataContextLoader.test.js +1 -1
  188. package/lib/cjs/src/typed-data/domain/DefaultTypedDataContextLoader.test.js.map +3 -3
  189. package/lib/cjs/src/uniswap/di/uniswapModuleFactory.js +1 -1
  190. package/lib/cjs/src/uniswap/di/uniswapModuleFactory.js.map +3 -3
  191. package/lib/cjs/src/uniswap/domain/UniswapContextLoader.js +1 -1
  192. package/lib/cjs/src/uniswap/domain/UniswapContextLoader.js.map +3 -3
  193. package/lib/cjs/src/uniswap/domain/UniswapContextLoader.test.js +1 -1
  194. package/lib/cjs/src/uniswap/domain/UniswapContextLoader.test.js.map +2 -2
  195. package/lib/cjs/src/web3-check/data/HttpWeb3CheckDataSource.js +1 -1
  196. package/lib/cjs/src/web3-check/data/HttpWeb3CheckDataSource.js.map +2 -2
  197. package/lib/cjs/src/web3-check/data/HttpWeb3CheckDataSource.test.js +1 -1
  198. package/lib/cjs/src/web3-check/data/HttpWeb3CheckDataSource.test.js.map +2 -2
  199. package/lib/cjs/src/web3-check/di/web3CheckModuleFactory.js +1 -1
  200. package/lib/cjs/src/web3-check/di/web3CheckModuleFactory.js.map +3 -3
  201. package/lib/esm/package.json +12 -12
  202. package/lib/esm/src/ContextModuleBuilder.js +1 -1
  203. package/lib/esm/src/ContextModuleBuilder.js.map +3 -3
  204. package/lib/esm/src/ContextModuleBuilder.test.js +1 -1
  205. package/lib/esm/src/ContextModuleBuilder.test.js.map +3 -3
  206. package/lib/esm/src/DefaultContextModule.js +1 -1
  207. package/lib/esm/src/DefaultContextModule.js.map +3 -3
  208. package/lib/esm/src/DefaultContextModule.test.js +1 -1
  209. package/lib/esm/src/DefaultContextModule.test.js.map +3 -3
  210. package/lib/esm/src/config/di/configModuleFactory.js +1 -1
  211. package/lib/esm/src/config/di/configModuleFactory.js.map +3 -3
  212. package/lib/esm/src/di.js +1 -1
  213. package/lib/esm/src/di.js.map +3 -3
  214. package/lib/esm/src/dynamic-network/data/DynamicNetworkDataSource.js +1 -0
  215. package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.js +2 -0
  216. package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.js.map +7 -0
  217. package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js +2 -0
  218. package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js.map +7 -0
  219. package/lib/esm/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.js +1 -0
  220. package/lib/esm/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.js.map +7 -0
  221. package/lib/esm/src/dynamic-network/di/dynamicNetworkModuleFactory.js +2 -0
  222. package/lib/esm/src/dynamic-network/di/dynamicNetworkModuleFactory.js.map +7 -0
  223. package/lib/esm/src/dynamic-network/di/dynamicNetworkTypes.js +2 -0
  224. package/lib/esm/src/dynamic-network/di/dynamicNetworkTypes.js.map +7 -0
  225. package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.js +2 -0
  226. package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.js.map +7 -0
  227. package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js +2 -0
  228. package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js.map +7 -0
  229. package/lib/esm/src/dynamic-network/model/DynamicNetworkConfiguration.js +1 -0
  230. package/lib/esm/src/dynamic-network/model/DynamicNetworkConfiguration.js.map +7 -0
  231. package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.js +1 -1
  232. package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.js.map +3 -3
  233. package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.test.js +1 -1
  234. package/lib/esm/src/external-plugin/data/HttpExternalPluginDataSource.test.js.map +3 -3
  235. package/lib/esm/src/external-plugin/di/externalPluginModuleFactory.js +1 -1
  236. package/lib/esm/src/external-plugin/di/externalPluginModuleFactory.js.map +3 -3
  237. package/lib/esm/src/external-plugin/domain/ExternalPluginContextLoader.js +1 -1
  238. package/lib/esm/src/external-plugin/domain/ExternalPluginContextLoader.js.map +3 -3
  239. package/lib/esm/src/external-plugin/domain/ExternalPluginContextLoader.test.js +1 -1
  240. package/lib/esm/src/external-plugin/domain/ExternalPluginContextLoader.test.js.map +3 -3
  241. package/lib/esm/src/index.js +1 -1
  242. package/lib/esm/src/index.js.map +2 -2
  243. package/lib/esm/src/nft/data/HttpNftDataSource.js +1 -1
  244. package/lib/esm/src/nft/data/HttpNftDataSource.js.map +3 -3
  245. package/lib/esm/src/nft/data/HttpNftDataSource.test.js +1 -1
  246. package/lib/esm/src/nft/data/HttpNftDataSource.test.js.map +3 -3
  247. package/lib/esm/src/nft/di/nftModuleFactory.js +1 -1
  248. package/lib/esm/src/nft/di/nftModuleFactory.js.map +3 -3
  249. package/lib/esm/src/nft/di/nftTypes.js +1 -1
  250. package/lib/esm/src/nft/di/nftTypes.js.map +2 -2
  251. package/lib/esm/src/nft/domain/NftContextFieldLoader.js +2 -0
  252. package/lib/esm/src/nft/domain/NftContextFieldLoader.js.map +7 -0
  253. package/lib/esm/src/nft/domain/NftContextFieldLoader.test.js +2 -0
  254. package/lib/esm/src/nft/domain/NftContextFieldLoader.test.js.map +7 -0
  255. package/lib/esm/src/nft/domain/NftContextLoader.js +1 -1
  256. package/lib/esm/src/nft/domain/NftContextLoader.js.map +3 -3
  257. package/lib/esm/src/nft/domain/NftContextLoader.test.js +1 -1
  258. package/lib/esm/src/nft/domain/NftContextLoader.test.js.map +3 -3
  259. package/lib/esm/src/pki/di/pkiModuleFactory.js +1 -1
  260. package/lib/esm/src/pki/di/pkiModuleFactory.js.map +3 -3
  261. package/lib/esm/src/pki/domain/DefaultPkiCertificateLoader.js.map +2 -2
  262. package/lib/esm/src/pki/domain/DefaultPkiCertificateLoader.test.js +1 -1
  263. package/lib/esm/src/pki/domain/DefaultPkiCertificateLoader.test.js.map +3 -3
  264. package/lib/esm/src/proxy/data/HttpProxyDataSource.js +2 -0
  265. package/lib/esm/src/proxy/data/HttpProxyDataSource.js.map +7 -0
  266. package/lib/esm/src/proxy/data/HttpProxyDataSource.test.js +2 -0
  267. package/lib/esm/src/proxy/data/HttpProxyDataSource.test.js.map +7 -0
  268. package/lib/esm/src/proxy/data/HttpSafeProxyDataSource.js +2 -0
  269. package/lib/esm/src/proxy/data/HttpSafeProxyDataSource.js.map +7 -0
  270. package/lib/esm/src/proxy/data/HttpSafeProxyDataSource.test.js +2 -0
  271. package/lib/esm/src/proxy/data/HttpSafeProxyDataSource.test.js.map +7 -0
  272. package/lib/esm/src/proxy/data/ProxyDataSource.js +1 -0
  273. package/lib/esm/src/proxy/data/ProxyDataSource.js.map +7 -0
  274. package/lib/esm/src/proxy/data/dto/ProxyDelegateCallDto.js +1 -0
  275. package/lib/esm/src/proxy/data/dto/ProxyDelegateCallDto.js.map +7 -0
  276. package/lib/esm/src/proxy/data/dto/ProxyImplementationAddressDto.js +1 -0
  277. package/lib/esm/src/proxy/data/dto/ProxyImplementationAddressDto.js.map +7 -0
  278. package/lib/esm/src/proxy/data/dto/SafeProxyImplementationAddressDto.js +1 -0
  279. package/lib/esm/src/proxy/data/dto/SafeProxyImplementationAddressDto.js.map +7 -0
  280. package/lib/esm/src/proxy/di/proxyModuleFactory.js +2 -0
  281. package/lib/esm/src/proxy/di/proxyModuleFactory.js.map +7 -0
  282. package/lib/esm/src/proxy/di/proxyModuleFactory.test.js +2 -0
  283. package/lib/esm/src/proxy/di/proxyModuleFactory.test.js.map +7 -0
  284. package/lib/esm/src/proxy/di/proxyTypes.js +2 -0
  285. package/lib/esm/src/proxy/di/proxyTypes.js.map +7 -0
  286. package/lib/esm/src/proxy/domain/ProxyContextFieldLoader.js +2 -0
  287. package/lib/esm/src/proxy/domain/ProxyContextFieldLoader.js.map +7 -0
  288. package/lib/esm/src/proxy/domain/ProxyContextFieldLoader.test.js +2 -0
  289. package/lib/esm/src/proxy/domain/ProxyContextFieldLoader.test.js.map +7 -0
  290. package/lib/esm/src/proxy/model/ProxyDelegateCall.js +1 -0
  291. package/lib/esm/src/proxy/model/ProxyDelegateCall.js.map +7 -0
  292. package/lib/esm/src/shared/constant/HttpHeaders.js +1 -1
  293. package/lib/esm/src/shared/constant/HttpHeaders.js.map +1 -1
  294. package/lib/esm/src/shared/domain/ContextFieldLoader.js +2 -0
  295. package/lib/esm/src/shared/domain/ContextFieldLoader.js.map +7 -0
  296. package/lib/esm/src/shared/model/ClearSignContext.js +1 -1
  297. package/lib/esm/src/shared/model/ClearSignContext.js.map +3 -3
  298. package/lib/esm/src/shared/model/SolanaTransactionContext.js +1 -0
  299. package/lib/esm/src/shared/model/SolanaTransactionContext.js.map +7 -0
  300. package/lib/esm/src/shared/model/TransactionFieldContext.js +1 -0
  301. package/lib/esm/src/shared/model/TransactionFieldContext.js.map +7 -0
  302. package/lib/esm/src/shared/model/TypedDataClearSignContext.js +1 -1
  303. package/lib/esm/src/shared/model/TypedDataClearSignContext.js.map +3 -3
  304. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.js +2 -0
  305. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.js.map +7 -0
  306. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js +2 -0
  307. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js.map +7 -0
  308. package/lib/esm/src/solana/data/SolanaDataSource.js +1 -0
  309. package/lib/esm/src/solana/data/SolanaDataSource.js.map +7 -0
  310. package/lib/esm/src/solana/di/SolanaContextModuleFactory.js +2 -0
  311. package/lib/esm/src/solana/di/SolanaContextModuleFactory.js.map +7 -0
  312. package/lib/esm/src/solana/di/solanaContextTypes.js +2 -0
  313. package/lib/esm/src/solana/di/solanaContextTypes.js.map +7 -0
  314. package/lib/esm/src/solana/domain/DefaultSolanaContextLoader.js +2 -0
  315. package/lib/esm/src/solana/domain/DefaultSolanaContextLoader.js.map +7 -0
  316. package/lib/esm/src/solana/domain/DefaultSolanaContextLoader.test.js +2 -0
  317. package/lib/esm/src/solana/domain/DefaultSolanaContextLoader.test.js.map +7 -0
  318. package/lib/esm/src/solana/domain/SolanaContextLoader.js +1 -0
  319. package/lib/esm/src/solana/domain/SolanaContextLoader.js.map +7 -0
  320. package/lib/esm/src/solana/domain/solanaContextTypes.js +1 -0
  321. package/lib/esm/src/solana/domain/solanaContextTypes.js.map +7 -0
  322. package/lib/esm/src/token/di/tokenModuleFactory.js +1 -1
  323. package/lib/esm/src/token/di/tokenModuleFactory.js.map +3 -3
  324. package/lib/esm/src/token/di/tokenTypes.js +1 -1
  325. package/lib/esm/src/token/di/tokenTypes.js.map +2 -2
  326. package/lib/esm/src/token/domain/TokenContextFieldLoader.js +2 -0
  327. package/lib/esm/src/token/domain/TokenContextFieldLoader.js.map +7 -0
  328. package/lib/esm/src/token/domain/TokenContextFieldLoader.test.js +2 -0
  329. package/lib/esm/src/token/domain/TokenContextFieldLoader.test.js.map +7 -0
  330. package/lib/esm/src/token/domain/TokenContextLoader.js +1 -1
  331. package/lib/esm/src/token/domain/TokenContextLoader.js.map +3 -3
  332. package/lib/esm/src/token/domain/TokenContextLoader.test.js +1 -1
  333. package/lib/esm/src/token/domain/TokenContextLoader.test.js.map +3 -3
  334. package/lib/esm/src/transaction/data/HttpTransactionDataSource.js +1 -1
  335. package/lib/esm/src/transaction/data/HttpTransactionDataSource.js.map +3 -3
  336. package/lib/esm/src/transaction/data/HttpTransactionDataSource.test.js +1 -1
  337. package/lib/esm/src/transaction/data/HttpTransactionDataSource.test.js.map +3 -3
  338. package/lib/esm/src/transaction/data/dto/CalldataDto.js.map +7 -0
  339. package/lib/esm/src/transaction/di/transactionModuleFactory.js +1 -1
  340. package/lib/esm/src/transaction/di/transactionModuleFactory.js.map +3 -3
  341. package/lib/esm/src/transaction/domain/TransactionContextLoader.js +1 -1
  342. package/lib/esm/src/transaction/domain/TransactionContextLoader.js.map +3 -3
  343. package/lib/esm/src/transaction/domain/TransactionContextLoader.test.js +1 -1
  344. package/lib/esm/src/transaction/domain/TransactionContextLoader.test.js.map +3 -3
  345. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.js +1 -1
  346. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.js.map +3 -3
  347. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.test.js +1 -1
  348. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.test.js.map +3 -3
  349. package/lib/esm/src/trusted-name/di/trustedNameModuleFactory.js +1 -1
  350. package/lib/esm/src/trusted-name/di/trustedNameModuleFactory.js.map +3 -3
  351. package/lib/esm/src/trusted-name/di/trustedNameTypes.js +1 -1
  352. package/lib/esm/src/trusted-name/di/trustedNameTypes.js.map +2 -2
  353. package/lib/esm/src/trusted-name/domain/TrustedNameContextFieldLoader.js +2 -0
  354. package/lib/esm/src/trusted-name/domain/TrustedNameContextFieldLoader.js.map +7 -0
  355. package/lib/esm/src/trusted-name/domain/TrustedNameContextFieldLoader.test.js +2 -0
  356. package/lib/esm/src/trusted-name/domain/TrustedNameContextFieldLoader.test.js.map +7 -0
  357. package/lib/esm/src/trusted-name/domain/TrustedNameContextLoader.js +1 -1
  358. package/lib/esm/src/trusted-name/domain/TrustedNameContextLoader.js.map +3 -3
  359. package/lib/esm/src/trusted-name/domain/TrustedNameContextLoader.test.js +1 -1
  360. package/lib/esm/src/trusted-name/domain/TrustedNameContextLoader.test.js.map +3 -3
  361. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.js +1 -1
  362. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.js.map +3 -3
  363. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.test.js +1 -1
  364. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.test.js.map +3 -3
  365. package/lib/esm/src/typed-data/di/typedDataModuleFactory.js +1 -1
  366. package/lib/esm/src/typed-data/di/typedDataModuleFactory.js.map +3 -3
  367. package/lib/esm/src/typed-data/domain/DefaultTypedDataContextLoader.js +1 -1
  368. package/lib/esm/src/typed-data/domain/DefaultTypedDataContextLoader.js.map +3 -3
  369. package/lib/esm/src/typed-data/domain/DefaultTypedDataContextLoader.test.js +1 -1
  370. package/lib/esm/src/typed-data/domain/DefaultTypedDataContextLoader.test.js.map +3 -3
  371. package/lib/esm/src/uniswap/di/uniswapModuleFactory.js +1 -1
  372. package/lib/esm/src/uniswap/di/uniswapModuleFactory.js.map +3 -3
  373. package/lib/esm/src/uniswap/domain/UniswapContextLoader.js +1 -1
  374. package/lib/esm/src/uniswap/domain/UniswapContextLoader.js.map +3 -3
  375. package/lib/esm/src/uniswap/domain/UniswapContextLoader.test.js +1 -1
  376. package/lib/esm/src/uniswap/domain/UniswapContextLoader.test.js.map +2 -2
  377. package/lib/esm/src/web3-check/data/HttpWeb3CheckDataSource.js +1 -1
  378. package/lib/esm/src/web3-check/data/HttpWeb3CheckDataSource.js.map +3 -3
  379. package/lib/esm/src/web3-check/data/HttpWeb3CheckDataSource.test.js +1 -1
  380. package/lib/esm/src/web3-check/data/HttpWeb3CheckDataSource.test.js.map +3 -3
  381. package/lib/esm/src/web3-check/di/web3CheckModuleFactory.js +1 -1
  382. package/lib/esm/src/web3-check/di/web3CheckModuleFactory.js.map +3 -3
  383. package/lib/types/src/ContextModule.d.ts +6 -3
  384. package/lib/types/src/ContextModule.d.ts.map +1 -1
  385. package/lib/types/src/ContextModuleBuilder.d.ts +25 -3
  386. package/lib/types/src/ContextModuleBuilder.d.ts.map +1 -1
  387. package/lib/types/src/DefaultContextModule.d.ts +9 -2
  388. package/lib/types/src/DefaultContextModule.d.ts.map +1 -1
  389. package/lib/types/src/config/di/configModuleFactory.d.ts.map +1 -1
  390. package/lib/types/src/config/model/ContextModuleConfig.d.ts +13 -0
  391. package/lib/types/src/config/model/ContextModuleConfig.d.ts.map +1 -1
  392. package/lib/types/src/di.d.ts.map +1 -1
  393. package/lib/types/src/dynamic-network/data/DynamicNetworkDataSource.d.ts +6 -0
  394. package/lib/types/src/dynamic-network/data/DynamicNetworkDataSource.d.ts.map +1 -0
  395. package/lib/types/src/dynamic-network/data/HttpDynamicNetworkDataSource.d.ts +13 -0
  396. package/lib/types/src/dynamic-network/data/HttpDynamicNetworkDataSource.d.ts.map +1 -0
  397. package/lib/types/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.d.ts +2 -0
  398. package/lib/types/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.d.ts.map +1 -0
  399. package/lib/types/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.d.ts +14 -0
  400. package/lib/types/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.d.ts.map +1 -0
  401. package/lib/types/src/dynamic-network/di/dynamicNetworkModuleFactory.d.ts +3 -0
  402. package/lib/types/src/dynamic-network/di/dynamicNetworkModuleFactory.d.ts.map +1 -0
  403. package/lib/types/src/dynamic-network/di/dynamicNetworkTypes.d.ts +5 -0
  404. package/lib/types/src/dynamic-network/di/dynamicNetworkTypes.d.ts.map +1 -0
  405. package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.d.ts +14 -0
  406. package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.d.ts.map +1 -0
  407. package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.test.d.ts +2 -0
  408. package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.test.d.ts.map +1 -0
  409. package/lib/types/src/dynamic-network/model/DynamicNetworkConfiguration.d.ts +16 -0
  410. package/lib/types/src/dynamic-network/model/DynamicNetworkConfiguration.d.ts.map +1 -0
  411. package/lib/types/src/external-plugin/data/HttpExternalPluginDataSource.d.ts.map +1 -1
  412. package/lib/types/src/external-plugin/domain/ExternalPluginContextLoader.d.ts +1 -1
  413. package/lib/types/src/external-plugin/domain/ExternalPluginContextLoader.d.ts.map +1 -1
  414. package/lib/types/src/index.d.ts +41 -0
  415. package/lib/types/src/index.d.ts.map +1 -1
  416. package/lib/types/src/nft/data/HttpNftDataSource.d.ts +3 -0
  417. package/lib/types/src/nft/data/HttpNftDataSource.d.ts.map +1 -1
  418. package/lib/types/src/nft/di/nftModuleFactory.d.ts.map +1 -1
  419. package/lib/types/src/nft/di/nftTypes.d.ts +1 -0
  420. package/lib/types/src/nft/di/nftTypes.d.ts.map +1 -1
  421. package/lib/types/src/nft/domain/NftContextFieldLoader.d.ts +16 -0
  422. package/lib/types/src/nft/domain/NftContextFieldLoader.d.ts.map +1 -0
  423. package/lib/types/src/nft/domain/NftContextFieldLoader.test.d.ts +2 -0
  424. package/lib/types/src/nft/domain/NftContextFieldLoader.test.d.ts.map +1 -0
  425. package/lib/types/src/nft/domain/NftContextLoader.d.ts +2 -3
  426. package/lib/types/src/nft/domain/NftContextLoader.d.ts.map +1 -1
  427. package/lib/types/src/pki/domain/DefaultPkiCertificateLoader.d.ts.map +1 -1
  428. package/lib/types/src/proxy/data/HttpProxyDataSource.d.ts +13 -0
  429. package/lib/types/src/proxy/data/HttpProxyDataSource.d.ts.map +1 -0
  430. package/lib/types/src/proxy/data/HttpProxyDataSource.test.d.ts +2 -0
  431. package/lib/types/src/proxy/data/HttpProxyDataSource.test.d.ts.map +1 -0
  432. package/lib/types/src/proxy/data/HttpSafeProxyDataSource.d.ts +13 -0
  433. package/lib/types/src/proxy/data/HttpSafeProxyDataSource.d.ts.map +1 -0
  434. package/lib/types/src/proxy/data/HttpSafeProxyDataSource.test.d.ts +2 -0
  435. package/lib/types/src/proxy/data/HttpSafeProxyDataSource.test.d.ts.map +1 -0
  436. package/lib/types/src/proxy/data/ProxyDataSource.d.ts +15 -0
  437. package/lib/types/src/proxy/data/ProxyDataSource.d.ts.map +1 -0
  438. package/lib/types/src/proxy/data/dto/ProxyDelegateCallDto.d.ts +5 -0
  439. package/lib/types/src/proxy/data/dto/ProxyDelegateCallDto.d.ts.map +1 -0
  440. package/lib/types/src/proxy/data/dto/ProxyImplementationAddressDto.d.ts +6 -0
  441. package/lib/types/src/proxy/data/dto/ProxyImplementationAddressDto.d.ts.map +1 -0
  442. package/lib/types/src/proxy/data/dto/SafeProxyImplementationAddressDto.d.ts +8 -0
  443. package/lib/types/src/proxy/data/dto/SafeProxyImplementationAddressDto.d.ts.map +1 -0
  444. package/lib/types/src/proxy/di/proxyModuleFactory.d.ts +4 -0
  445. package/lib/types/src/proxy/di/proxyModuleFactory.d.ts.map +1 -0
  446. package/lib/types/src/proxy/di/proxyModuleFactory.test.d.ts +2 -0
  447. package/lib/types/src/proxy/di/proxyModuleFactory.test.d.ts.map +1 -0
  448. package/lib/types/src/proxy/di/proxyTypes.d.ts +5 -0
  449. package/lib/types/src/proxy/di/proxyTypes.d.ts.map +1 -0
  450. package/lib/types/src/proxy/domain/ProxyContextFieldLoader.d.ts +22 -0
  451. package/lib/types/src/proxy/domain/ProxyContextFieldLoader.d.ts.map +1 -0
  452. package/lib/types/src/proxy/domain/ProxyContextFieldLoader.test.d.ts +2 -0
  453. package/lib/types/src/proxy/domain/ProxyContextFieldLoader.test.d.ts.map +1 -0
  454. package/lib/types/src/proxy/model/ProxyDelegateCall.d.ts +5 -0
  455. package/lib/types/src/proxy/model/ProxyDelegateCall.d.ts.map +1 -0
  456. package/lib/types/src/shared/constant/HttpHeaders.d.ts +1 -1
  457. package/lib/types/src/shared/constant/HttpHeaders.d.ts.map +1 -1
  458. package/lib/types/src/shared/domain/ContextFieldLoader.d.ts +12 -0
  459. package/lib/types/src/shared/domain/ContextFieldLoader.d.ts.map +1 -0
  460. package/lib/types/src/shared/domain/ContextLoader.d.ts +1 -2
  461. package/lib/types/src/shared/domain/ContextLoader.d.ts.map +1 -1
  462. package/lib/types/src/shared/model/ClearSignContext.d.ts +29 -8
  463. package/lib/types/src/shared/model/ClearSignContext.d.ts.map +1 -1
  464. package/lib/types/src/shared/model/SolanaTransactionContext.d.ts +11 -0
  465. package/lib/types/src/shared/model/SolanaTransactionContext.d.ts.map +1 -0
  466. package/lib/types/src/shared/model/TransactionContext.d.ts +0 -13
  467. package/lib/types/src/shared/model/TransactionContext.d.ts.map +1 -1
  468. package/lib/types/src/shared/model/TransactionFieldContext.d.ts +26 -0
  469. package/lib/types/src/shared/model/TransactionFieldContext.d.ts.map +1 -0
  470. package/lib/types/src/shared/model/TransactionSubset.d.ts +3 -2
  471. package/lib/types/src/shared/model/TransactionSubset.d.ts.map +1 -1
  472. package/lib/types/src/shared/model/TypedDataClearSignContext.d.ts +33 -1
  473. package/lib/types/src/shared/model/TypedDataClearSignContext.d.ts.map +1 -1
  474. package/lib/types/src/shared/model/TypedDataContext.d.ts +3 -0
  475. package/lib/types/src/shared/model/TypedDataContext.d.ts.map +1 -1
  476. package/lib/types/src/solana/data/HttpSolanaOwnerInfoDataSource.d.ts +13 -0
  477. package/lib/types/src/solana/data/HttpSolanaOwnerInfoDataSource.d.ts.map +1 -0
  478. package/lib/types/src/solana/data/HttpSolanaOwnerInfoDataSource.test.d.ts +2 -0
  479. package/lib/types/src/solana/data/HttpSolanaOwnerInfoDataSource.test.d.ts.map +1 -0
  480. package/lib/types/src/solana/data/SolanaDataSource.d.ts +12 -0
  481. package/lib/types/src/solana/data/SolanaDataSource.d.ts.map +1 -0
  482. package/lib/types/src/solana/di/SolanaContextModuleFactory.d.ts +3 -0
  483. package/lib/types/src/solana/di/SolanaContextModuleFactory.d.ts.map +1 -0
  484. package/lib/types/src/solana/di/solanaContextTypes.d.ts +5 -0
  485. package/lib/types/src/solana/di/solanaContextTypes.d.ts.map +1 -0
  486. package/lib/types/src/solana/domain/DefaultSolanaContextLoader.d.ts +11 -0
  487. package/lib/types/src/solana/domain/DefaultSolanaContextLoader.d.ts.map +1 -0
  488. package/lib/types/src/solana/domain/DefaultSolanaContextLoader.test.d.ts +2 -0
  489. package/lib/types/src/solana/domain/DefaultSolanaContextLoader.test.d.ts.map +1 -0
  490. package/lib/types/src/solana/domain/SolanaContextLoader.d.ts +5 -0
  491. package/lib/types/src/solana/domain/SolanaContextLoader.d.ts.map +1 -0
  492. package/lib/types/src/solana/domain/solanaContextTypes.d.ts +27 -0
  493. package/lib/types/src/solana/domain/solanaContextTypes.d.ts.map +1 -0
  494. package/lib/types/src/token/di/tokenModuleFactory.d.ts.map +1 -1
  495. package/lib/types/src/token/di/tokenTypes.d.ts +1 -0
  496. package/lib/types/src/token/di/tokenTypes.d.ts.map +1 -1
  497. package/lib/types/src/token/domain/TokenContextFieldLoader.d.ts +15 -0
  498. package/lib/types/src/token/domain/TokenContextFieldLoader.d.ts.map +1 -0
  499. package/lib/types/src/token/domain/TokenContextFieldLoader.test.d.ts +2 -0
  500. package/lib/types/src/token/domain/TokenContextFieldLoader.test.d.ts.map +1 -0
  501. package/lib/types/src/token/domain/TokenContextLoader.d.ts +2 -3
  502. package/lib/types/src/token/domain/TokenContextLoader.d.ts.map +1 -1
  503. package/lib/types/src/transaction/data/HttpTransactionDataSource.d.ts.map +1 -1
  504. package/lib/types/src/transaction/data/{CalldataDto.d.ts → dto/CalldataDto.d.ts} +10 -1
  505. package/lib/types/src/transaction/data/dto/CalldataDto.d.ts.map +1 -0
  506. package/lib/types/src/transaction/domain/TransactionContextLoader.d.ts +4 -2
  507. package/lib/types/src/transaction/domain/TransactionContextLoader.d.ts.map +1 -1
  508. package/lib/types/src/trusted-name/data/HttpTrustedNameDataSource.d.ts.map +1 -1
  509. package/lib/types/src/trusted-name/di/trustedNameModuleFactory.d.ts.map +1 -1
  510. package/lib/types/src/trusted-name/di/trustedNameTypes.d.ts +1 -0
  511. package/lib/types/src/trusted-name/di/trustedNameTypes.d.ts.map +1 -1
  512. package/lib/types/src/trusted-name/domain/TrustedNameContextFieldLoader.d.ts +19 -0
  513. package/lib/types/src/trusted-name/domain/TrustedNameContextFieldLoader.d.ts.map +1 -0
  514. package/lib/types/src/trusted-name/domain/TrustedNameContextFieldLoader.test.d.ts +2 -0
  515. package/lib/types/src/trusted-name/domain/TrustedNameContextFieldLoader.test.d.ts.map +1 -0
  516. package/lib/types/src/trusted-name/domain/TrustedNameContextLoader.d.ts +2 -3
  517. package/lib/types/src/trusted-name/domain/TrustedNameContextLoader.d.ts.map +1 -1
  518. package/lib/types/src/typed-data/data/FiltersDto.d.ts +32 -2
  519. package/lib/types/src/typed-data/data/FiltersDto.d.ts.map +1 -1
  520. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.d.ts +3 -0
  521. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.d.ts.map +1 -1
  522. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.test.d.ts +1 -0
  523. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.test.d.ts.map +1 -1
  524. package/lib/types/src/typed-data/data/TypedDataDataSource.d.ts +2 -1
  525. package/lib/types/src/typed-data/data/TypedDataDataSource.d.ts.map +1 -1
  526. package/lib/types/src/typed-data/domain/DefaultTypedDataContextLoader.d.ts +12 -1
  527. package/lib/types/src/typed-data/domain/DefaultTypedDataContextLoader.d.ts.map +1 -1
  528. package/lib/types/src/uniswap/domain/UniswapContextLoader.d.ts +1 -1
  529. package/lib/types/src/uniswap/domain/UniswapContextLoader.d.ts.map +1 -1
  530. package/lib/types/src/web3-check/data/HttpWeb3CheckDataSource.d.ts.map +1 -1
  531. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  532. package/package.json +15 -15
  533. package/lib/cjs/src/transaction/data/CalldataDto.js +0 -2
  534. package/lib/cjs/src/transaction/data/CalldataDto.js.map +0 -7
  535. package/lib/types/src/transaction/data/CalldataDto.d.ts.map +0 -1
  536. /package/lib/esm/src/{transaction/data/CalldataDto.js.map → dynamic-network/data/DynamicNetworkDataSource.js.map} +0 -0
  537. /package/lib/esm/src/transaction/data/{CalldataDto.js → dto/CalldataDto.js} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=ProxyDelegateCallDto.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=ProxyImplementationAddressDto.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=SafeProxyImplementationAddressDto.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ import{ContainerModule as e}from"inversify";import{HttpProxyDataSource as a}from"../../proxy/data/HttpProxyDataSource";import{HttpSafeProxyDataSource as p}from"../../proxy/data/HttpSafeProxyDataSource";import{proxyTypes as r}from"../../proxy/di/proxyTypes";import{ProxyContextFieldLoader as x}from"../../proxy/domain/ProxyContextFieldLoader";const n=t=>new e(({bind:o})=>{t?.datasource?.proxy==="safe"?o(r.ProxyDataSource).to(p):o(r.ProxyDataSource).to(a),o(r.ProxyContextFieldLoader).to(x)});export{n as proxyModuleFactory};
2
+ //# sourceMappingURL=proxyModuleFactory.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/proxy/di/proxyModuleFactory.ts"],
4
+ "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { HttpProxyDataSource } from \"@/proxy/data/HttpProxyDataSource\";\nimport { HttpSafeProxyDataSource } from \"@/proxy/data/HttpSafeProxyDataSource\";\nimport { proxyTypes } from \"@/proxy/di/proxyTypes\";\nimport { ProxyContextFieldLoader } from \"@/proxy/domain/ProxyContextFieldLoader\";\n\nexport const proxyModuleFactory = (config?: ContextModuleConfig) =>\n new ContainerModule(({ bind }) => {\n if (config?.datasource?.proxy === \"safe\") {\n bind(proxyTypes.ProxyDataSource).to(HttpSafeProxyDataSource);\n } else {\n bind(proxyTypes.ProxyDataSource).to(HttpProxyDataSource);\n }\n bind(proxyTypes.ProxyContextFieldLoader).to(ProxyContextFieldLoader);\n });\n"],
5
+ "mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAGhC,OAAS,uBAAAC,MAA2B,mCACpC,OAAS,2BAAAC,MAA+B,uCACxC,OAAS,cAAAC,MAAkB,wBAC3B,OAAS,2BAAAC,MAA+B,yCAEjC,MAAMC,EAAsBC,GACjC,IAAIN,EAAgB,CAAC,CAAE,KAAAO,CAAK,IAAM,CAC5BD,GAAQ,YAAY,QAAU,OAChCC,EAAKJ,EAAW,eAAe,EAAE,GAAGD,CAAuB,EAE3DK,EAAKJ,EAAW,eAAe,EAAE,GAAGF,CAAmB,EAEzDM,EAAKJ,EAAW,uBAAuB,EAAE,GAAGC,CAAuB,CACrE,CAAC",
6
+ "names": ["ContainerModule", "HttpProxyDataSource", "HttpSafeProxyDataSource", "proxyTypes", "ProxyContextFieldLoader", "proxyModuleFactory", "config", "bind"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{Container as u}from"inversify";import{configTypes as f}from"../../config/di/configTypes";import{pkiTypes as x}from"../../pki/di/pkiTypes";import{HttpProxyDataSource as i}from"../../proxy/data/HttpProxyDataSource";import{HttpSafeProxyDataSource as l}from"../../proxy/data/HttpSafeProxyDataSource";import{ProxyContextFieldLoader as c}from"../../proxy/domain/ProxyContextFieldLoader";import{proxyModuleFactory as n}from"./proxyModuleFactory";import{proxyTypes as r}from"./proxyTypes";describe("proxyModuleFactory",()=>{let o;const d={metadataServiceDomain:{url:"https://metadata.api.live.ledger.com"},originToken:"test-origin-token"},s={loadCertificate:vi.fn()};beforeEach(()=>{o=new u,o.bind(f.Config).toConstantValue(d),o.bind(x.PkiCertificateLoader).toConstantValue(s)}),describe("when config is undefined",()=>{it("should bind HttpProxyDataSource as the default ProxyDataSource",()=>{const a=n();o.load(a);const e=o.get(r.ProxyDataSource);expect(e).toBeInstanceOf(i)}),it("should bind ProxyContextFieldLoader",()=>{const a=n();o.load(a);const e=o.get(r.ProxyContextFieldLoader);expect(e).toBeInstanceOf(c)})}),describe("when config.datasource.proxy is 'safe'",()=>{it("should bind HttpSafeProxyDataSource as the ProxyDataSource",()=>{const e=n({datasource:{proxy:"safe"}});o.load(e);const t=o.get(r.ProxyDataSource);expect(t).toBeInstanceOf(l)}),it("should bind ProxyContextFieldLoader",()=>{const e=n({datasource:{proxy:"safe"}});o.load(e);const t=o.get(r.ProxyContextFieldLoader);expect(t).toBeInstanceOf(c)})}),describe("when config.datasource.proxy is 'default'",()=>{it("should bind HttpProxyDataSource as the ProxyDataSource",()=>{const e=n({datasource:{proxy:"default"}});o.load(e);const t=o.get(r.ProxyDataSource);expect(t).toBeInstanceOf(i)})}),describe("when config.datasource is undefined",()=>{it("should bind HttpProxyDataSource as the default ProxyDataSource",()=>{const e=n({});o.load(e);const t=o.get(r.ProxyDataSource);expect(t).toBeInstanceOf(i)})}),describe("when config.datasource.proxy is an unexpected value",()=>{it("should bind HttpProxyDataSource as the default ProxyDataSource",()=>{const e=n({datasource:{proxy:"unknown"}});o.load(e);const t=o.get(r.ProxyDataSource);expect(t).toBeInstanceOf(i)})})});
2
+ //# sourceMappingURL=proxyModuleFactory.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/proxy/di/proxyModuleFactory.test.ts"],
4
+ "sourcesContent": ["import { Container } 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 { HttpProxyDataSource } from \"@/proxy/data/HttpProxyDataSource\";\nimport { HttpSafeProxyDataSource } from \"@/proxy/data/HttpSafeProxyDataSource\";\nimport { ProxyContextFieldLoader } from \"@/proxy/domain/ProxyContextFieldLoader\";\n\nimport { proxyModuleFactory } from \"./proxyModuleFactory\";\nimport { proxyTypes } from \"./proxyTypes\";\n\ndescribe(\"proxyModuleFactory\", () => {\n let container: Container;\n const mockConfig: ContextModuleConfig = {\n metadataServiceDomain: {\n url: \"https://metadata.api.live.ledger.com\",\n },\n originToken: \"test-origin-token\",\n } as ContextModuleConfig;\n\n const mockPkiCertificateLoader: PkiCertificateLoader = {\n loadCertificate: vi.fn(),\n };\n\n beforeEach(() => {\n container = new Container();\n // Bind the config that the datasources depend on\n container.bind(configTypes.Config).toConstantValue(mockConfig);\n // Bind the PKI certificate loader that ProxyContextFieldLoader depends on\n container\n .bind(pkiTypes.PkiCertificateLoader)\n .toConstantValue(mockPkiCertificateLoader);\n });\n\n describe(\"when config is undefined\", () => {\n it(\"should bind HttpProxyDataSource as the default ProxyDataSource\", () => {\n const module = proxyModuleFactory();\n container.load(module);\n\n const proxyDataSource = container.get(proxyTypes.ProxyDataSource);\n expect(proxyDataSource).toBeInstanceOf(HttpProxyDataSource);\n });\n\n it(\"should bind ProxyContextFieldLoader\", () => {\n const module = proxyModuleFactory();\n container.load(module);\n\n const proxyContextFieldLoader = container.get(\n proxyTypes.ProxyContextFieldLoader,\n );\n expect(proxyContextFieldLoader).toBeInstanceOf(ProxyContextFieldLoader);\n });\n });\n\n describe(\"when config.datasource.proxy is 'safe'\", () => {\n it(\"should bind HttpSafeProxyDataSource as the ProxyDataSource\", () => {\n const config: ContextModuleConfig = {\n datasource: {\n proxy: \"safe\",\n },\n } as ContextModuleConfig;\n\n const module = proxyModuleFactory(config);\n container.load(module);\n\n const proxyDataSource = container.get(proxyTypes.ProxyDataSource);\n expect(proxyDataSource).toBeInstanceOf(HttpSafeProxyDataSource);\n });\n\n it(\"should bind ProxyContextFieldLoader\", () => {\n const config: ContextModuleConfig = {\n datasource: {\n proxy: \"safe\",\n },\n } as ContextModuleConfig;\n\n const module = proxyModuleFactory(config);\n container.load(module);\n\n const proxyContextFieldLoader = container.get(\n proxyTypes.ProxyContextFieldLoader,\n );\n expect(proxyContextFieldLoader).toBeInstanceOf(ProxyContextFieldLoader);\n });\n });\n\n describe(\"when config.datasource.proxy is 'default'\", () => {\n it(\"should bind HttpProxyDataSource as the ProxyDataSource\", () => {\n const config: ContextModuleConfig = {\n datasource: {\n proxy: \"default\",\n },\n } as ContextModuleConfig;\n\n const module = proxyModuleFactory(config);\n container.load(module);\n\n const proxyDataSource = container.get(proxyTypes.ProxyDataSource);\n expect(proxyDataSource).toBeInstanceOf(HttpProxyDataSource);\n });\n });\n\n describe(\"when config.datasource is undefined\", () => {\n it(\"should bind HttpProxyDataSource as the default ProxyDataSource\", () => {\n const config: ContextModuleConfig = {} as ContextModuleConfig;\n\n const module = proxyModuleFactory(config);\n container.load(module);\n\n const proxyDataSource = container.get(proxyTypes.ProxyDataSource);\n expect(proxyDataSource).toBeInstanceOf(HttpProxyDataSource);\n });\n });\n\n describe(\"when config.datasource.proxy is an unexpected value\", () => {\n it(\"should bind HttpProxyDataSource as the default ProxyDataSource\", () => {\n const config: ContextModuleConfig = {\n datasource: {\n proxy: \"unknown\" as unknown as \"safe\" | \"default\",\n },\n } as ContextModuleConfig;\n\n const module = proxyModuleFactory(config);\n container.load(module);\n\n const proxyDataSource = container.get(proxyTypes.ProxyDataSource);\n expect(proxyDataSource).toBeInstanceOf(HttpProxyDataSource);\n });\n });\n});\n"],
5
+ "mappings": "AAAA,OAAS,aAAAA,MAAiB,YAE1B,OAAS,eAAAC,MAAmB,0BAE5B,OAAS,YAAAC,MAAgB,oBAEzB,OAAS,uBAAAC,MAA2B,mCACpC,OAAS,2BAAAC,MAA+B,uCACxC,OAAS,2BAAAC,MAA+B,yCAExC,OAAS,sBAAAC,MAA0B,uBACnC,OAAS,cAAAC,MAAkB,eAE3B,SAAS,qBAAsB,IAAM,CACnC,IAAIC,EACJ,MAAMC,EAAkC,CACtC,sBAAuB,CACrB,IAAK,sCACP,EACA,YAAa,mBACf,EAEMC,EAAiD,CACrD,gBAAiB,GAAG,GAAG,CACzB,EAEA,WAAW,IAAM,CACfF,EAAY,IAAIR,EAEhBQ,EAAU,KAAKP,EAAY,MAAM,EAAE,gBAAgBQ,CAAU,EAE7DD,EACG,KAAKN,EAAS,oBAAoB,EAClC,gBAAgBQ,CAAwB,CAC7C,CAAC,EAED,SAAS,2BAA4B,IAAM,CACzC,GAAG,iEAAkE,IAAM,CACzE,MAAMC,EAASL,EAAmB,EAClCE,EAAU,KAAKG,CAAM,EAErB,MAAMC,EAAkBJ,EAAU,IAAID,EAAW,eAAe,EAChE,OAAOK,CAAe,EAAE,eAAeT,CAAmB,CAC5D,CAAC,EAED,GAAG,sCAAuC,IAAM,CAC9C,MAAMQ,EAASL,EAAmB,EAClCE,EAAU,KAAKG,CAAM,EAErB,MAAME,EAA0BL,EAAU,IACxCD,EAAW,uBACb,EACA,OAAOM,CAAuB,EAAE,eAAeR,CAAuB,CACxE,CAAC,CACH,CAAC,EAED,SAAS,yCAA0C,IAAM,CACvD,GAAG,6DAA8D,IAAM,CAOrE,MAAMM,EAASL,EANqB,CAClC,WAAY,CACV,MAAO,MACT,CACF,CAEwC,EACxCE,EAAU,KAAKG,CAAM,EAErB,MAAMC,EAAkBJ,EAAU,IAAID,EAAW,eAAe,EAChE,OAAOK,CAAe,EAAE,eAAeR,CAAuB,CAChE,CAAC,EAED,GAAG,sCAAuC,IAAM,CAO9C,MAAMO,EAASL,EANqB,CAClC,WAAY,CACV,MAAO,MACT,CACF,CAEwC,EACxCE,EAAU,KAAKG,CAAM,EAErB,MAAME,EAA0BL,EAAU,IACxCD,EAAW,uBACb,EACA,OAAOM,CAAuB,EAAE,eAAeR,CAAuB,CACxE,CAAC,CACH,CAAC,EAED,SAAS,4CAA6C,IAAM,CAC1D,GAAG,yDAA0D,IAAM,CAOjE,MAAMM,EAASL,EANqB,CAClC,WAAY,CACV,MAAO,SACT,CACF,CAEwC,EACxCE,EAAU,KAAKG,CAAM,EAErB,MAAMC,EAAkBJ,EAAU,IAAID,EAAW,eAAe,EAChE,OAAOK,CAAe,EAAE,eAAeT,CAAmB,CAC5D,CAAC,CACH,CAAC,EAED,SAAS,sCAAuC,IAAM,CACpD,GAAG,iEAAkE,IAAM,CAGzE,MAAMQ,EAASL,EAFqB,CAAC,CAEG,EACxCE,EAAU,KAAKG,CAAM,EAErB,MAAMC,EAAkBJ,EAAU,IAAID,EAAW,eAAe,EAChE,OAAOK,CAAe,EAAE,eAAeT,CAAmB,CAC5D,CAAC,CACH,CAAC,EAED,SAAS,sDAAuD,IAAM,CACpE,GAAG,iEAAkE,IAAM,CAOzE,MAAMQ,EAASL,EANqB,CAClC,WAAY,CACV,MAAO,SACT,CACF,CAEwC,EACxCE,EAAU,KAAKG,CAAM,EAErB,MAAMC,EAAkBJ,EAAU,IAAID,EAAW,eAAe,EAChE,OAAOK,CAAe,EAAE,eAAeT,CAAmB,CAC5D,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["Container", "configTypes", "pkiTypes", "HttpProxyDataSource", "HttpSafeProxyDataSource", "ProxyContextFieldLoader", "proxyModuleFactory", "proxyTypes", "container", "mockConfig", "mockPkiCertificateLoader", "module", "proxyDataSource", "proxyContextFieldLoader"]
7
+ }
@@ -0,0 +1,2 @@
1
+ const o={ProxyDataSource:Symbol.for("ProxyDataSource"),ProxyContextFieldLoader:Symbol.for("ProxyContextFieldLoader")};export{o as proxyTypes};
2
+ //# sourceMappingURL=proxyTypes.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/proxy/di/proxyTypes.ts"],
4
+ "sourcesContent": ["export const proxyTypes = {\n ProxyDataSource: Symbol.for(\"ProxyDataSource\"),\n ProxyContextFieldLoader: Symbol.for(\"ProxyContextFieldLoader\"),\n};\n"],
5
+ "mappings": "AAAO,MAAMA,EAAa,CACxB,gBAAiB,OAAO,IAAI,iBAAiB,EAC7C,wBAAyB,OAAO,IAAI,yBAAyB,CAC/D",
6
+ "names": ["proxyTypes"]
7
+ }
@@ -0,0 +1,2 @@
1
+ var s=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var d=(o,e,a,t)=>{for(var r=t>1?void 0:t?m(e,a):e,n=o.length-1,l;n>=0;n--)(l=o[n])&&(r=(t?l(e,a,r):l(r))||r);return t&&r&&s(e,a,r),r},c=(o,e)=>(a,t)=>e(a,t,o);import{inject as p,injectable as C}from"inversify";import{pkiTypes as x}from"../../pki/di/pkiTypes";import{KeyId as g}from"../../pki/model/KeyId";import{KeyUsage as u}from"../../pki/model/KeyUsage";import{proxyTypes as I}from"../../proxy/di/proxyTypes";import{ContextFieldLoaderKind as L}from"../../shared/domain/ContextFieldLoader";import{ClearSignContextType as y}from"../../shared/model/ClearSignContext";let i=class{constructor(e,a){this._proxyDataSource=e;this._certificateLoader=a}canHandle(e){return typeof e=="object"&&e!==null&&"kind"in e&&e.kind===L.PROXY_DELEGATE_CALL&&"chainId"in e&&"proxyAddress"in e&&"calldata"in e&&"challenge"in e&&"deviceModelId"in e}async loadField(e){return(await this._proxyDataSource.getProxyImplementationAddress({calldata:e.calldata,proxyAddress:e.proxyAddress,chainId:e.chainId,challenge:e.challenge})).caseOf({Left:t=>Promise.resolve({type:y.ERROR,error:t}),Right:async({signedDescriptor:t})=>{const r=await this._certificateLoader.loadCertificate({keyId:g.CalCalldataKey,keyUsage:u.Calldata,targetDevice:e.deviceModelId});return{type:y.PROXY_DELEGATE_CALL,payload:t,certificate:r}}})}};i=d([C(),c(0,p(I.ProxyDataSource)),c(1,p(x.PkiCertificateLoader))],i);export{i as ProxyContextFieldLoader};
2
+ //# sourceMappingURL=ProxyContextFieldLoader.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/proxy/domain/ProxyContextFieldLoader.ts"],
4
+ "sourcesContent": ["import { DeviceModelId } from \"@ledgerhq/device-management-kit\";\nimport { inject, injectable } from \"inversify\";\n\nimport { pkiTypes } from \"@/pki/di/pkiTypes\";\nimport { type PkiCertificateLoader } from \"@/pki/domain/PkiCertificateLoader\";\nimport { KeyId } from \"@/pki/model/KeyId\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport { type ProxyDataSource } from \"@/proxy/data/ProxyDataSource\";\nimport { proxyTypes } from \"@/proxy/di/proxyTypes\";\nimport { type ProxyDelegateCall } from \"@/proxy/model/ProxyDelegateCall\";\nimport {\n type ContextFieldLoader,\n ContextFieldLoaderKind,\n} from \"@/shared/domain/ContextFieldLoader\";\nimport {\n type ClearSignContext,\n ClearSignContextType,\n} from \"@/shared/model/ClearSignContext\";\n\ntype ProxyFieldInput = {\n kind: ContextFieldLoaderKind.PROXY_DELEGATE_CALL;\n chainId: number;\n proxyAddress: string;\n calldata: string;\n challenge: string;\n deviceModelId: DeviceModelId;\n};\n\n@injectable()\nexport class ProxyContextFieldLoader\n implements ContextFieldLoader<ProxyFieldInput>\n{\n constructor(\n @inject(proxyTypes.ProxyDataSource)\n private _proxyDataSource: ProxyDataSource,\n @inject(pkiTypes.PkiCertificateLoader)\n private _certificateLoader: PkiCertificateLoader,\n ) {}\n\n canHandle(field: unknown): field is ProxyFieldInput {\n return (\n typeof field === \"object\" &&\n field !== null &&\n \"kind\" in field &&\n field.kind === ContextFieldLoaderKind.PROXY_DELEGATE_CALL &&\n \"chainId\" in field &&\n \"proxyAddress\" in field &&\n \"calldata\" in field &&\n \"challenge\" in field &&\n \"deviceModelId\" in field\n );\n }\n\n async loadField(field: ProxyFieldInput): Promise<ClearSignContext> {\n const proxyDelegateCall =\n await this._proxyDataSource.getProxyImplementationAddress({\n calldata: field.calldata,\n proxyAddress: field.proxyAddress,\n chainId: field.chainId,\n challenge: field.challenge,\n });\n\n return proxyDelegateCall.caseOf<Promise<ClearSignContext>>({\n Left: (error) =>\n Promise.resolve({\n type: ClearSignContextType.ERROR,\n error: error,\n }),\n Right: async ({ signedDescriptor }: ProxyDelegateCall) => {\n const certificate = await this._certificateLoader.loadCertificate({\n keyId: KeyId.CalCalldataKey,\n keyUsage: KeyUsage.Calldata,\n targetDevice: field.deviceModelId,\n });\n\n return {\n type: ClearSignContextType.PROXY_DELEGATE_CALL,\n payload: signedDescriptor,\n certificate,\n };\n },\n });\n }\n}\n"],
5
+ "mappings": "iOACA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YAEnC,OAAS,YAAAC,MAAgB,oBAEzB,OAAS,SAAAC,MAAa,oBACtB,OAAS,YAAAC,MAAgB,uBAEzB,OAAS,cAAAC,MAAkB,wBAE3B,OAEE,0BAAAC,MACK,qCACP,OAEE,wBAAAC,MACK,kCAYA,IAAMC,EAAN,KAEP,CACE,YAEUC,EAEAC,EACR,CAHQ,sBAAAD,EAEA,wBAAAC,CACP,CAEH,UAAUC,EAA0C,CAClD,OACE,OAAOA,GAAU,UACjBA,IAAU,MACV,SAAUA,GACVA,EAAM,OAASC,EAAuB,qBACtC,YAAaD,GACb,iBAAkBA,GAClB,aAAcA,GACd,cAAeA,GACf,kBAAmBA,CAEvB,CAEA,MAAM,UAAUA,EAAmD,CASjE,OAPE,MAAM,KAAK,iBAAiB,8BAA8B,CACxD,SAAUA,EAAM,SAChB,aAAcA,EAAM,aACpB,QAASA,EAAM,QACf,UAAWA,EAAM,SACnB,CAAC,GAEsB,OAAkC,CACzD,KAAOE,GACL,QAAQ,QAAQ,CACd,KAAMC,EAAqB,MAC3B,MAAOD,CACT,CAAC,EACH,MAAO,MAAO,CAAE,iBAAAE,CAAiB,IAAyB,CACxD,MAAMC,EAAc,MAAM,KAAK,mBAAmB,gBAAgB,CAChE,MAAOC,EAAM,eACb,SAAUC,EAAS,SACnB,aAAcP,EAAM,aACtB,CAAC,EAED,MAAO,CACL,KAAMG,EAAqB,oBAC3B,QAASC,EACT,YAAAC,CACF,CACF,CACF,CAAC,CACH,CACF,EAtDaR,EAANW,EAAA,CADNC,EAAW,EAKPC,EAAA,EAAAC,EAAOC,EAAW,eAAe,GAEjCF,EAAA,EAAAC,EAAOE,EAAS,oBAAoB,IAN5BhB",
6
+ "names": ["inject", "injectable", "pkiTypes", "KeyId", "KeyUsage", "proxyTypes", "ContextFieldLoaderKind", "ClearSignContextType", "ProxyContextFieldLoader", "_proxyDataSource", "_certificateLoader", "field", "ContextFieldLoaderKind", "error", "ClearSignContextType", "signedDescriptor", "certificate", "KeyId", "KeyUsage", "__decorateClass", "injectable", "__decorateParam", "inject", "proxyTypes", "pkiTypes"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{DeviceModelId as r}from"@ledgerhq/device-management-kit";import{Left as x,Right as p}from"purify-ts";import{KeyId as y}from"../../pki/model/KeyId";import{KeyUsage as m}from"../../pki/model/KeyUsage";import{ProxyContextFieldLoader as u}from"../../proxy/domain/ProxyContextFieldLoader";import{ContextFieldLoaderKind as n}from"../../shared/domain/ContextFieldLoader";import{ClearSignContextType as s}from"../../shared/model/ClearSignContext";describe("ProxyContextFieldLoader",()=>{const t={getProxyImplementationAddress:vi.fn()},d={loadCertificate:vi.fn()},o=new u(t,d),e={kind:n.PROXY_DELEGATE_CALL,chainId:1,proxyAddress:"0x1234567890abcdef",calldata:"0xabcdef1234567890",challenge:"test-challenge",deviceModelId:r.STAX},i={implementationAddress:"0x987654321fedcba0",signedDescriptor:"0x123456789abcdef0"},c={keyUsageNumber:1,payload:new Uint8Array([1,2,3,4])};beforeEach(()=>{vi.resetAllMocks()}),describe("canHandle",()=>{it("should return true for valid proxy field",()=>{const a={kind:n.PROXY_DELEGATE_CALL,chainId:1,proxyAddress:"0x1234567890abcdef",calldata:"0xabcdef1234567890",challenge:"test-challenge",deviceModelId:r.STAX};expect(o.canHandle(a)).toBe(!0)}),describe("should return false for invalid fields",()=>{const a=[{name:"null",value:null},{name:"undefined",value:void 0},{name:"string",value:"invalid"},{name:"number",value:123},{name:"boolean",value:!0},{name:"array",value:[]},{name:"empty object",value:{}},{name:"object missing kind",value:{chainId:1,proxyAddress:"0x123",calldata:"0xabc",challenge:"test",deviceModelId:r.STAX}},{name:"object missing chainId",value:{kind:n.PROXY_DELEGATE_CALL,proxyAddress:"0x123",calldata:"0xabc",challenge:"test",deviceModelId:r.STAX}},{name:"object missing proxyAddress",value:{kind:n.PROXY_DELEGATE_CALL,chainId:1,calldata:"0xabc",challenge:"test",deviceModelId:r.STAX}},{name:"object missing calldata",value:{kind:n.PROXY_DELEGATE_CALL,chainId:1,proxyAddress:"0x123",challenge:"test",deviceModelId:r.STAX}},{name:"object missing challenge",value:{kind:n.PROXY_DELEGATE_CALL,chainId:1,proxyAddress:"0x123",calldata:"0xabc",deviceModelId:r.STAX}},{name:"object missing deviceModelId",value:{kind:n.PROXY_DELEGATE_CALL,chainId:1,proxyAddress:"0x123",calldata:"0xabc",challenge:"test"}},{name:"object with wrong kind",value:{kind:n.TOKEN,chainId:1,proxyAddress:"0x123",calldata:"0xabc",challenge:"test",deviceModelId:r.STAX}}];test.each(a)("$name",({value:l})=>{expect(o.canHandle(l)).toBe(!1)})})}),describe("loadField",()=>{it("should return error context when proxy data source fails",async()=>{const a=new Error("Proxy data source error");vi.spyOn(t,"getProxyImplementationAddress").mockResolvedValue(x(a));const l=await o.loadField(e);expect(t.getProxyImplementationAddress).toHaveBeenCalledWith({calldata:e.calldata,proxyAddress:e.proxyAddress,chainId:e.chainId,challenge:e.challenge}),expect(l).toEqual({type:s.ERROR,error:a}),expect(d.loadCertificate).not.toHaveBeenCalled()}),it("should return proxy delegate call context when successful",async()=>{vi.spyOn(t,"getProxyImplementationAddress").mockResolvedValue(p(i)),vi.spyOn(d,"loadCertificate").mockResolvedValue(c);const a=await o.loadField(e);expect(t.getProxyImplementationAddress).toHaveBeenCalledWith({calldata:e.calldata,proxyAddress:e.proxyAddress,chainId:e.chainId,challenge:e.challenge}),expect(d.loadCertificate).toHaveBeenCalledWith({keyId:y.CalCalldataKey,keyUsage:m.Calldata,targetDevice:e.deviceModelId}),expect(a).toEqual({type:s.PROXY_DELEGATE_CALL,payload:i.signedDescriptor,certificate:c})}),it("should return proxy delegate call context with undefined certificate when certificate loading returns undefined",async()=>{vi.spyOn(t,"getProxyImplementationAddress").mockResolvedValue(p(i)),vi.spyOn(d,"loadCertificate").mockResolvedValue(void 0);const a=await o.loadField(e);expect(t.getProxyImplementationAddress).toHaveBeenCalledWith({calldata:e.calldata,proxyAddress:e.proxyAddress,chainId:e.chainId,challenge:e.challenge}),expect(d.loadCertificate).toHaveBeenCalledWith({keyId:y.CalCalldataKey,keyUsage:m.Calldata,targetDevice:e.deviceModelId}),expect(a).toEqual({type:s.PROXY_DELEGATE_CALL,payload:i.signedDescriptor,certificate:void 0})}),it("should handle different device model IDs correctly",async()=>{const a={...e,deviceModelId:r.NANO_X};vi.spyOn(t,"getProxyImplementationAddress").mockResolvedValue(p(i)),vi.spyOn(d,"loadCertificate").mockResolvedValue(c);const l=await o.loadField(a);expect(d.loadCertificate).toHaveBeenCalledWith({keyId:y.CalCalldataKey,keyUsage:m.Calldata,targetDevice:r.NANO_X}),expect(l).toEqual({type:s.PROXY_DELEGATE_CALL,payload:i.signedDescriptor,certificate:c})}),it("should handle different chain IDs and addresses correctly",async()=>{const a={...e,chainId:137,proxyAddress:"0xdeadbeef",calldata:"0xcafebabe",challenge:"custom-challenge"};vi.spyOn(t,"getProxyImplementationAddress").mockResolvedValue(p(i)),vi.spyOn(d,"loadCertificate").mockResolvedValue(c);const l=await o.loadField(a);expect(t.getProxyImplementationAddress).toHaveBeenCalledWith({calldata:"0xcafebabe",proxyAddress:"0xdeadbeef",chainId:137,challenge:"custom-challenge"}),expect(l).toEqual({type:s.PROXY_DELEGATE_CALL,payload:i.signedDescriptor,certificate:c})}),it("should handle certificate loading failure gracefully",async()=>{vi.spyOn(t,"getProxyImplementationAddress").mockResolvedValue(p(i)),vi.spyOn(d,"loadCertificate").mockRejectedValue(new Error("Certificate loading failed")),await expect(o.loadField(e)).rejects.toThrow("Certificate loading failed"),expect(t.getProxyImplementationAddress).toHaveBeenCalled(),expect(d.loadCertificate).toHaveBeenCalled()}),it("should preserve error message from proxy data source",async()=>{const a=new Error("Network timeout error");vi.spyOn(t,"getProxyImplementationAddress").mockResolvedValue(x(a));const l=await o.loadField(e);expect(l).toEqual({type:s.ERROR,error:a})}),it("should handle empty signed descriptor",async()=>{const a={...i,signedDescriptor:""};vi.spyOn(t,"getProxyImplementationAddress").mockResolvedValue(p(a)),vi.spyOn(d,"loadCertificate").mockResolvedValue(c);const l=await o.loadField(e);expect(l).toEqual({type:s.PROXY_DELEGATE_CALL,payload:"",certificate:c})})})});
2
+ //# sourceMappingURL=ProxyContextFieldLoader.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/proxy/domain/ProxyContextFieldLoader.test.ts"],
4
+ "sourcesContent": ["import { DeviceModelId } from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type PkiCertificateLoader } from \"@/pki/domain/PkiCertificateLoader\";\nimport { KeyId } from \"@/pki/model/KeyId\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport { type PkiCertificate } from \"@/pki/model/PkiCertificate\";\nimport { type ProxyDataSource } from \"@/proxy/data/ProxyDataSource\";\nimport { ProxyContextFieldLoader } from \"@/proxy/domain/ProxyContextFieldLoader\";\nimport { type ProxyDelegateCall } from \"@/proxy/model/ProxyDelegateCall\";\nimport { ContextFieldLoaderKind } from \"@/shared/domain/ContextFieldLoader\";\nimport { ClearSignContextType } from \"@/shared/model/ClearSignContext\";\nimport { type TransactionFieldContext } from \"@/shared/model/TransactionFieldContext\";\n\ndescribe(\"ProxyContextFieldLoader\", () => {\n const mockProxyDataSource: ProxyDataSource = {\n getProxyImplementationAddress: vi.fn(),\n };\n const mockCertificateLoader: PkiCertificateLoader = {\n loadCertificate: vi.fn(),\n };\n const proxyContextFieldLoader = new ProxyContextFieldLoader(\n mockProxyDataSource,\n mockCertificateLoader,\n );\n\n const mockTransactionField: TransactionFieldContext<ContextFieldLoaderKind.PROXY_DELEGATE_CALL> =\n {\n kind: ContextFieldLoaderKind.PROXY_DELEGATE_CALL,\n chainId: 1,\n proxyAddress: \"0x1234567890abcdef\",\n calldata: \"0xabcdef1234567890\",\n challenge: \"test-challenge\",\n deviceModelId: DeviceModelId.STAX,\n };\n\n const mockProxyDelegateCall: ProxyDelegateCall = {\n implementationAddress: \"0x987654321fedcba0\",\n signedDescriptor: \"0x123456789abcdef0\",\n };\n\n const mockCertificate: PkiCertificate = {\n keyUsageNumber: 1,\n payload: new Uint8Array([1, 2, 3, 4]),\n };\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n describe(\"canHandle\", () => {\n it(\"should return true for valid proxy field\", () => {\n // GIVEN\n const validField = {\n kind: ContextFieldLoaderKind.PROXY_DELEGATE_CALL,\n chainId: 1,\n proxyAddress: \"0x1234567890abcdef\",\n calldata: \"0xabcdef1234567890\",\n challenge: \"test-challenge\",\n deviceModelId: DeviceModelId.STAX,\n };\n\n // THEN\n expect(proxyContextFieldLoader.canHandle(validField)).toBe(true);\n });\n\n describe(\"should return false for invalid fields\", () => {\n const invalidFields = [\n { name: \"null\", value: null },\n { name: \"undefined\", value: undefined },\n { name: \"string\", value: \"invalid\" },\n { name: \"number\", value: 123 },\n { name: \"boolean\", value: true },\n { name: \"array\", value: [] },\n { name: \"empty object\", value: {} },\n {\n name: \"object missing kind\",\n value: {\n chainId: 1,\n proxyAddress: \"0x123\",\n calldata: \"0xabc\",\n challenge: \"test\",\n deviceModelId: DeviceModelId.STAX,\n },\n },\n {\n name: \"object missing chainId\",\n value: {\n kind: ContextFieldLoaderKind.PROXY_DELEGATE_CALL,\n proxyAddress: \"0x123\",\n calldata: \"0xabc\",\n challenge: \"test\",\n deviceModelId: DeviceModelId.STAX,\n },\n },\n {\n name: \"object missing proxyAddress\",\n value: {\n kind: ContextFieldLoaderKind.PROXY_DELEGATE_CALL,\n chainId: 1,\n calldata: \"0xabc\",\n challenge: \"test\",\n deviceModelId: DeviceModelId.STAX,\n },\n },\n {\n name: \"object missing calldata\",\n value: {\n kind: ContextFieldLoaderKind.PROXY_DELEGATE_CALL,\n chainId: 1,\n proxyAddress: \"0x123\",\n challenge: \"test\",\n deviceModelId: DeviceModelId.STAX,\n },\n },\n {\n name: \"object missing challenge\",\n value: {\n kind: ContextFieldLoaderKind.PROXY_DELEGATE_CALL,\n chainId: 1,\n proxyAddress: \"0x123\",\n calldata: \"0xabc\",\n deviceModelId: DeviceModelId.STAX,\n },\n },\n {\n name: \"object missing deviceModelId\",\n value: {\n kind: ContextFieldLoaderKind.PROXY_DELEGATE_CALL,\n chainId: 1,\n proxyAddress: \"0x123\",\n calldata: \"0xabc\",\n challenge: \"test\",\n },\n },\n {\n name: \"object with wrong kind\",\n value: {\n kind: ContextFieldLoaderKind.TOKEN,\n chainId: 1,\n proxyAddress: \"0x123\",\n calldata: \"0xabc\",\n challenge: \"test\",\n deviceModelId: DeviceModelId.STAX,\n },\n },\n ];\n\n test.each(invalidFields)(\"$name\", ({ value }) => {\n expect(proxyContextFieldLoader.canHandle(value)).toBe(false);\n });\n });\n });\n\n describe(\"loadField\", () => {\n it(\"should return error context when proxy data source fails\", async () => {\n // GIVEN\n const error = new Error(\"Proxy data source error\");\n vi.spyOn(\n mockProxyDataSource,\n \"getProxyImplementationAddress\",\n ).mockResolvedValue(Left(error));\n\n // WHEN\n const result =\n await proxyContextFieldLoader.loadField(mockTransactionField);\n\n // THEN\n expect(\n mockProxyDataSource.getProxyImplementationAddress,\n ).toHaveBeenCalledWith({\n calldata: mockTransactionField.calldata,\n proxyAddress: mockTransactionField.proxyAddress,\n chainId: mockTransactionField.chainId,\n challenge: mockTransactionField.challenge,\n });\n expect(result).toEqual({\n type: ClearSignContextType.ERROR,\n error: error,\n });\n expect(mockCertificateLoader.loadCertificate).not.toHaveBeenCalled();\n });\n\n it(\"should return proxy delegate call context when successful\", async () => {\n // GIVEN\n vi.spyOn(\n mockProxyDataSource,\n \"getProxyImplementationAddress\",\n ).mockResolvedValue(Right(mockProxyDelegateCall));\n vi.spyOn(mockCertificateLoader, \"loadCertificate\").mockResolvedValue(\n mockCertificate,\n );\n\n // WHEN\n const result =\n await proxyContextFieldLoader.loadField(mockTransactionField);\n\n // THEN\n expect(\n mockProxyDataSource.getProxyImplementationAddress,\n ).toHaveBeenCalledWith({\n calldata: mockTransactionField.calldata,\n proxyAddress: mockTransactionField.proxyAddress,\n chainId: mockTransactionField.chainId,\n challenge: mockTransactionField.challenge,\n });\n expect(mockCertificateLoader.loadCertificate).toHaveBeenCalledWith({\n keyId: KeyId.CalCalldataKey,\n keyUsage: KeyUsage.Calldata,\n targetDevice: mockTransactionField.deviceModelId,\n });\n expect(result).toEqual({\n type: ClearSignContextType.PROXY_DELEGATE_CALL,\n payload: mockProxyDelegateCall.signedDescriptor,\n certificate: mockCertificate,\n });\n });\n\n it(\"should return proxy delegate call context with undefined certificate when certificate loading returns undefined\", async () => {\n // GIVEN\n vi.spyOn(\n mockProxyDataSource,\n \"getProxyImplementationAddress\",\n ).mockResolvedValue(Right(mockProxyDelegateCall));\n vi.spyOn(mockCertificateLoader, \"loadCertificate\").mockResolvedValue(\n undefined,\n );\n\n // WHEN\n const result =\n await proxyContextFieldLoader.loadField(mockTransactionField);\n\n // THEN\n expect(\n mockProxyDataSource.getProxyImplementationAddress,\n ).toHaveBeenCalledWith({\n calldata: mockTransactionField.calldata,\n proxyAddress: mockTransactionField.proxyAddress,\n chainId: mockTransactionField.chainId,\n challenge: mockTransactionField.challenge,\n });\n expect(mockCertificateLoader.loadCertificate).toHaveBeenCalledWith({\n keyId: KeyId.CalCalldataKey,\n keyUsage: KeyUsage.Calldata,\n targetDevice: mockTransactionField.deviceModelId,\n });\n expect(result).toEqual({\n type: ClearSignContextType.PROXY_DELEGATE_CALL,\n payload: mockProxyDelegateCall.signedDescriptor,\n certificate: undefined,\n });\n });\n\n it(\"should handle different device model IDs correctly\", async () => {\n // GIVEN\n const nanoXField = {\n ...mockTransactionField,\n deviceModelId: DeviceModelId.NANO_X,\n };\n vi.spyOn(\n mockProxyDataSource,\n \"getProxyImplementationAddress\",\n ).mockResolvedValue(Right(mockProxyDelegateCall));\n vi.spyOn(mockCertificateLoader, \"loadCertificate\").mockResolvedValue(\n mockCertificate,\n );\n\n // WHEN\n const result = await proxyContextFieldLoader.loadField(nanoXField);\n\n // THEN\n expect(mockCertificateLoader.loadCertificate).toHaveBeenCalledWith({\n keyId: KeyId.CalCalldataKey,\n keyUsage: KeyUsage.Calldata,\n targetDevice: DeviceModelId.NANO_X,\n });\n expect(result).toEqual({\n type: ClearSignContextType.PROXY_DELEGATE_CALL,\n payload: mockProxyDelegateCall.signedDescriptor,\n certificate: mockCertificate,\n });\n });\n\n it(\"should handle different chain IDs and addresses correctly\", async () => {\n // GIVEN\n const customField = {\n ...mockTransactionField,\n chainId: 137,\n proxyAddress: \"0xdeadbeef\",\n calldata: \"0xcafebabe\",\n challenge: \"custom-challenge\",\n };\n vi.spyOn(\n mockProxyDataSource,\n \"getProxyImplementationAddress\",\n ).mockResolvedValue(Right(mockProxyDelegateCall));\n vi.spyOn(mockCertificateLoader, \"loadCertificate\").mockResolvedValue(\n mockCertificate,\n );\n\n // WHEN\n const result = await proxyContextFieldLoader.loadField(customField);\n\n // THEN\n expect(\n mockProxyDataSource.getProxyImplementationAddress,\n ).toHaveBeenCalledWith({\n calldata: \"0xcafebabe\",\n proxyAddress: \"0xdeadbeef\",\n chainId: 137,\n challenge: \"custom-challenge\",\n });\n expect(result).toEqual({\n type: ClearSignContextType.PROXY_DELEGATE_CALL,\n payload: mockProxyDelegateCall.signedDescriptor,\n certificate: mockCertificate,\n });\n });\n\n it(\"should handle certificate loading failure gracefully\", async () => {\n // GIVEN\n vi.spyOn(\n mockProxyDataSource,\n \"getProxyImplementationAddress\",\n ).mockResolvedValue(Right(mockProxyDelegateCall));\n vi.spyOn(mockCertificateLoader, \"loadCertificate\").mockRejectedValue(\n new Error(\"Certificate loading failed\"),\n );\n\n // WHEN & THEN\n await expect(\n proxyContextFieldLoader.loadField(mockTransactionField),\n ).rejects.toThrow(\"Certificate loading failed\");\n\n expect(\n mockProxyDataSource.getProxyImplementationAddress,\n ).toHaveBeenCalled();\n expect(mockCertificateLoader.loadCertificate).toHaveBeenCalled();\n });\n\n it(\"should preserve error message from proxy data source\", async () => {\n // GIVEN\n const specificError = new Error(\"Network timeout error\");\n vi.spyOn(\n mockProxyDataSource,\n \"getProxyImplementationAddress\",\n ).mockResolvedValue(Left(specificError));\n\n // WHEN\n const result =\n await proxyContextFieldLoader.loadField(mockTransactionField);\n\n // THEN\n expect(result).toEqual({\n type: ClearSignContextType.ERROR,\n error: specificError,\n });\n });\n\n it(\"should handle empty signed descriptor\", async () => {\n // GIVEN\n const proxyCallWithEmptyDescriptor = {\n ...mockProxyDelegateCall,\n signedDescriptor: \"\",\n };\n vi.spyOn(\n mockProxyDataSource,\n \"getProxyImplementationAddress\",\n ).mockResolvedValue(Right(proxyCallWithEmptyDescriptor));\n vi.spyOn(mockCertificateLoader, \"loadCertificate\").mockResolvedValue(\n mockCertificate,\n );\n\n // WHEN\n const result =\n await proxyContextFieldLoader.loadField(mockTransactionField);\n\n // THEN\n expect(result).toEqual({\n type: ClearSignContextType.PROXY_DELEGATE_CALL,\n payload: \"\",\n certificate: mockCertificate,\n });\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["DeviceModelId", "Left", "Right", "KeyId", "KeyUsage", "ProxyContextFieldLoader", "ContextFieldLoaderKind", "ClearSignContextType", "mockProxyDataSource", "mockCertificateLoader", "proxyContextFieldLoader", "mockTransactionField", "mockProxyDelegateCall", "mockCertificate", "validField", "invalidFields", "value", "error", "result", "nanoXField", "customField", "specificError", "proxyCallWithEmptyDescriptor"]
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=ProxyDelegateCall.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -1,2 +1,2 @@
1
- const E="X-Ledger-Client-Version",e="X-Ledger-Origin-Token";export{E as LEDGER_CLIENT_VERSION_HEADER,e as LEDGER_ORIGIN_TOKEN_HEADER};
1
+ const E="X-Ledger-Client-Version",e="X-Ledger-Client-Origin";export{E as LEDGER_CLIENT_VERSION_HEADER,e as LEDGER_ORIGIN_TOKEN_HEADER};
2
2
  //# sourceMappingURL=HttpHeaders.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/shared/constant/HttpHeaders.ts"],
4
- "sourcesContent": ["export const LEDGER_CLIENT_VERSION_HEADER = \"X-Ledger-Client-Version\";\nexport const LEDGER_ORIGIN_TOKEN_HEADER = \"X-Ledger-Origin-Token\";\n"],
4
+ "sourcesContent": ["export const LEDGER_CLIENT_VERSION_HEADER = \"X-Ledger-Client-Version\";\nexport const LEDGER_ORIGIN_TOKEN_HEADER = \"X-Ledger-Client-Origin\";\n"],
5
5
  "mappings": "AAAO,MAAMA,EAA+B,0BAC/BC,EAA6B",
6
6
  "names": ["LEDGER_CLIENT_VERSION_HEADER", "LEDGER_ORIGIN_TOKEN_HEADER"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ var n=(e=>(e.PROXY_DELEGATE_CALL="proxy_delegate_call",e.TOKEN="token",e.NFT="nft",e.TRUSTED_NAME="trusted_name",e))(n||{});export{n as ContextFieldLoaderKind};
2
+ //# sourceMappingURL=ContextFieldLoader.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/shared/domain/ContextFieldLoader.ts"],
4
+ "sourcesContent": ["import { type ClearSignContext } from \"@/shared/model/ClearSignContext\";\n\nexport enum ContextFieldLoaderKind {\n PROXY_DELEGATE_CALL = \"proxy_delegate_call\",\n TOKEN = \"token\",\n NFT = \"nft\",\n TRUSTED_NAME = \"trusted_name\",\n}\n\nexport interface ContextFieldLoader<TInput = unknown> {\n loadField: (field: TInput) => Promise<ClearSignContext>;\n canHandle: (field: unknown) => boolean;\n}\n"],
5
+ "mappings": "AAEO,IAAKA,OACVA,EAAA,oBAAsB,sBACtBA,EAAA,MAAQ,QACRA,EAAA,IAAM,MACNA,EAAA,aAAe,eAJLA,OAAA",
6
+ "names": ["ContextFieldLoaderKind"]
7
+ }
@@ -1,2 +1,2 @@
1
- var t=(e=>(e.TOKEN="token",e.NFT="nft",e.TRUSTED_NAME="trustedName",e.PLUGIN="plugin",e.EXTERNAL_PLUGIN="externalPlugin",e.TRANSACTION_INFO="transactionInfo",e.ENUM="enum",e.TRANSACTION_FIELD_DESCRIPTION="transactionFieldDescription",e.WEB3_CHECK="web3Check",e.ERROR="error",e))(t||{});export{t as ClearSignContextType};
1
+ var r=(e=>(e.TOKEN="token",e.NFT="nft",e.TRUSTED_NAME="trustedName",e.PLUGIN="plugin",e.EXTERNAL_PLUGIN="externalPlugin",e.TRANSACTION_INFO="transactionInfo",e.PROXY_DELEGATE_CALL="proxyDelegateCall",e.ENUM="enum",e.TRANSACTION_FIELD_DESCRIPTION="transactionFieldDescription",e.WEB3_CHECK="web3Check",e.DYNAMIC_NETWORK="dynamicNetwork",e.DYNAMIC_NETWORK_ICON="dynamicNetworkIcon",e.ERROR="error",e))(r||{}),n=(t=>(t.TOKEN="token",t.NFT="nft",t.TRUSTED_NAME="trustedName",t.ENUM="enum",t.CALLDATA="calldata",t))(n||{});export{n as ClearSignContextReferenceType,r as ClearSignContextType};
2
2
  //# sourceMappingURL=ClearSignContext.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/shared/model/ClearSignContext.ts"],
4
- "sourcesContent": ["import { type PkiCertificate } from \"@/pki/model/PkiCertificate\";\n\nimport { type GenericPath } from \"./GenericPath\";\n\nexport enum ClearSignContextType {\n TOKEN = \"token\",\n NFT = \"nft\",\n TRUSTED_NAME = \"trustedName\",\n PLUGIN = \"plugin\",\n EXTERNAL_PLUGIN = \"externalPlugin\",\n TRANSACTION_INFO = \"transactionInfo\",\n ENUM = \"enum\",\n TRANSACTION_FIELD_DESCRIPTION = \"transactionFieldDescription\",\n WEB3_CHECK = \"web3Check\",\n ERROR = \"error\",\n}\n\nexport type ClearSignContextReferenceType =\n | ClearSignContextType.TOKEN\n | ClearSignContextType.NFT\n | ClearSignContextType.ENUM\n | ClearSignContextType.TRUSTED_NAME;\n\nexport type ClearSignContextReference<\n Type extends ClearSignContextReferenceType = ClearSignContextReferenceType,\n> = Type extends ClearSignContextType.ENUM\n ? {\n type: ClearSignContextType.ENUM;\n valuePath: GenericPath;\n id: number; // enum id to reference\n }\n : Type extends ClearSignContextType.TRUSTED_NAME\n ? {\n type: ClearSignContextType.TRUSTED_NAME;\n valuePath: GenericPath;\n types: string[];\n sources: string[];\n }\n :\n | {\n type: Type;\n valuePath: GenericPath;\n value?: never;\n }\n | {\n type: Type;\n valuePath?: never;\n value: string;\n };\n\nexport type ClearSignContextSuccessType = Exclude<\n ClearSignContextType,\n ClearSignContextType.ERROR\n>;\n\n// NOTE: this is a union of all possible success types\n// There is currently two types of success:\n// - ENUM: which is a special case, we need to handle it differently\n// because we don't want to send the whole enum\n// but only the parts that are needed.\n// - id: the enum id to reference\n// - payload: the payload to send with a provideEnum command\n// - name: the name of the enum to be displayed on the device\n// - value: the value of the enum to be retrieved from the transaction\n// - All other types\n// - payload: the payload to send with a provide command\n// - reference: the reference to the value to be retrieved from the transaction\nexport type ClearSignContextSuccess<\n Type extends ClearSignContextSuccessType = ClearSignContextSuccessType,\n> = Type extends ClearSignContextType.ENUM\n ? {\n type: ClearSignContextType.ENUM;\n id: number;\n payload: string;\n value: number;\n certificate?: PkiCertificate;\n }\n : {\n type: Exclude<\n ClearSignContextType,\n ClearSignContextType.ENUM | ClearSignContextType.ERROR\n >;\n payload: string;\n reference?: ClearSignContextReference;\n certificate?: PkiCertificate;\n };\n\nexport type ClearSignContextError = {\n type: ClearSignContextType.ERROR;\n error: Error;\n};\n\nexport type ClearSignContext = ClearSignContextSuccess | ClearSignContextError;\n"],
5
- "mappings": "AAIO,IAAKA,OACVA,EAAA,MAAQ,QACRA,EAAA,IAAM,MACNA,EAAA,aAAe,cACfA,EAAA,OAAS,SACTA,EAAA,gBAAkB,iBAClBA,EAAA,iBAAmB,kBACnBA,EAAA,KAAO,OACPA,EAAA,8BAAgC,8BAChCA,EAAA,WAAa,YACbA,EAAA,MAAQ,QAVEA,OAAA",
6
- "names": ["ClearSignContextType"]
4
+ "sourcesContent": ["import { type PkiCertificate } from \"@/pki/model/PkiCertificate\";\n\nimport { type GenericPath } from \"./GenericPath\";\n\nexport enum ClearSignContextType {\n TOKEN = \"token\",\n NFT = \"nft\",\n TRUSTED_NAME = \"trustedName\",\n PLUGIN = \"plugin\",\n EXTERNAL_PLUGIN = \"externalPlugin\",\n TRANSACTION_INFO = \"transactionInfo\",\n PROXY_DELEGATE_CALL = \"proxyDelegateCall\",\n ENUM = \"enum\",\n TRANSACTION_FIELD_DESCRIPTION = \"transactionFieldDescription\",\n WEB3_CHECK = \"web3Check\",\n DYNAMIC_NETWORK = \"dynamicNetwork\",\n DYNAMIC_NETWORK_ICON = \"dynamicNetworkIcon\",\n ERROR = \"error\",\n}\n\nexport enum ClearSignContextReferenceType {\n TOKEN = ClearSignContextType.TOKEN,\n NFT = ClearSignContextType.NFT,\n TRUSTED_NAME = ClearSignContextType.TRUSTED_NAME,\n ENUM = ClearSignContextType.ENUM,\n CALLDATA = \"calldata\",\n}\n\nexport type ClearSignContextReference<\n Type extends ClearSignContextReferenceType = ClearSignContextReferenceType,\n> = Type extends ClearSignContextReferenceType.ENUM\n ? {\n type: ClearSignContextReferenceType.ENUM;\n valuePath: GenericPath;\n id: number; // enum id to reference\n }\n : Type extends ClearSignContextReferenceType.TRUSTED_NAME\n ? {\n type: ClearSignContextReferenceType.TRUSTED_NAME;\n valuePath: GenericPath;\n types: string[];\n sources: string[];\n }\n : Type extends ClearSignContextReferenceType.CALLDATA\n ? {\n type: ClearSignContextReferenceType.CALLDATA;\n callee: GenericPath;\n valuePath: GenericPath;\n selector?: GenericPath;\n amount?: GenericPath;\n spender?: GenericPath;\n chainId?: GenericPath;\n }\n :\n | {\n type: Type;\n valuePath: GenericPath;\n value?: never;\n }\n | {\n type: Type;\n valuePath?: never;\n value: string;\n };\n\nexport type ClearSignContextSuccessType = Exclude<\n ClearSignContextType,\n ClearSignContextType.ERROR\n>;\n\nexport type ClearSignContextSuccess<\n T extends Exclude<\n ClearSignContextType,\n ClearSignContextType.ERROR\n > = ClearSignContextSuccessType,\n> = T extends ClearSignContextType.ENUM\n ? {\n type: ClearSignContextType.ENUM;\n id: number;\n payload: string;\n value: number;\n certificate?: PkiCertificate;\n }\n : T extends ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION\n ? {\n type: ClearSignContextType.TRANSACTION_FIELD_DESCRIPTION;\n payload: string;\n reference?: ClearSignContextReference;\n certificate?: PkiCertificate;\n }\n : {\n type: T;\n payload: string;\n certificate?: PkiCertificate;\n };\n\nexport type ClearSignContextError = {\n type: ClearSignContextType.ERROR;\n error: Error;\n};\n\nexport type ClearSignContext = ClearSignContextSuccess | ClearSignContextError;\n"],
5
+ "mappings": "AAIO,IAAKA,OACVA,EAAA,MAAQ,QACRA,EAAA,IAAM,MACNA,EAAA,aAAe,cACfA,EAAA,OAAS,SACTA,EAAA,gBAAkB,iBAClBA,EAAA,iBAAmB,kBACnBA,EAAA,oBAAsB,oBACtBA,EAAA,KAAO,OACPA,EAAA,8BAAgC,8BAChCA,EAAA,WAAa,YACbA,EAAA,gBAAkB,iBAClBA,EAAA,qBAAuB,qBACvBA,EAAA,MAAQ,QAbEA,OAAA,IAgBAC,OACVA,EAAA,MAAQ,QACRA,EAAA,IAAM,MACNA,EAAA,aAAe,cACfA,EAAA,KAAO,OACPA,EAAA,SAAW,WALDA,OAAA",
6
+ "names": ["ClearSignContextType", "ClearSignContextReferenceType"]
7
7
  }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=SolanaTransactionContext.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=TransactionFieldContext.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -1,2 +1,2 @@
1
- const e=255;export{e as VERIFYING_CONTRACT_TOKEN_INDEX};
1
+ const a=255;var t=(e=>(e.None="none",e.Present="present",e.VerifyingContract="verifying_contract",e))(t||{});export{t as TypedDataCalldataParamPresence,a as VERIFYING_CONTRACT_TOKEN_INDEX};
2
2
  //# sourceMappingURL=TypedDataClearSignContext.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/shared/model/TypedDataClearSignContext.ts"],
4
- "sourcesContent": ["import type { HexaString } from \"@ledgerhq/device-management-kit\";\n\n// The general informations for a typed message\nexport type TypedDataMessageInfo = {\n displayName: string;\n filtersCount: number;\n signature: string;\n};\n\n// Token index and descriptor. Needed for tokens that are referenced by a typed message\nexport type TypedDataTokenIndex = number;\nexport type TypedDataToken = string;\n// Special token index value when the referenced token is the verifying contract\nexport const VERIFYING_CONTRACT_TOKEN_INDEX = 255;\n\n// Typed message filters, to select fields to display, and provide formatting informations\nexport type TypedDataFilterPath = string;\nexport type TypedDataFilterWithToken = {\n type: \"amount\" | \"token\";\n displayName: string;\n tokenIndex: TypedDataTokenIndex;\n path: TypedDataFilterPath;\n signature: string;\n};\nexport type TypedDataFilterWithTrustedName = {\n type: \"trusted-name\";\n displayName: string;\n types: string[];\n sources: string[];\n typesAndSourcesPayload: string;\n path: TypedDataFilterPath;\n signature: string;\n};\nexport type TypedDataFilter =\n | {\n type: \"datetime\" | \"raw\";\n displayName: string;\n path: TypedDataFilterPath;\n signature: string;\n }\n | TypedDataFilterWithToken\n | TypedDataFilterWithTrustedName;\n\n// Clear signing context for a typed message\nexport type TypedDataClearSignContextSuccess = {\n type: \"success\";\n messageInfo: TypedDataMessageInfo;\n filters: Record<TypedDataFilterPath, TypedDataFilter>;\n trustedNamesAddresses: Record<TypedDataFilterPath, HexaString>;\n tokens: Record<TypedDataTokenIndex, TypedDataToken>;\n};\nexport type TypedDataClearSignContextError = {\n type: \"error\";\n error: Error;\n};\nexport type TypedDataClearSignContext =\n | TypedDataClearSignContextSuccess\n | TypedDataClearSignContextError;\n"],
5
- "mappings": "AAaO,MAAMA,EAAiC",
6
- "names": ["VERIFYING_CONTRACT_TOKEN_INDEX"]
4
+ "sourcesContent": ["import type { HexaString } from \"@ledgerhq/device-management-kit\";\n\nimport {\n type ClearSignContextSuccess,\n type ClearSignContextType,\n} from \"@/shared/model/ClearSignContext\";\nimport { type TransactionSubset } from \"@/shared/model/TransactionSubset\";\n\n// The general informations for a typed message\nexport type TypedDataMessageInfo = {\n displayName: string;\n filtersCount: number;\n signature: string;\n};\n\n// Token index and descriptor. Needed for tokens that are referenced by a typed message\nexport type TypedDataTokenIndex = number;\nexport type TypedDataToken = string;\n// Calldata index. Needed for calldatas that are referenced by a typed message\nexport type TypedDataCalldataIndex = number;\n// Special token index value when the referenced token is the verifying contract\nexport const VERIFYING_CONTRACT_TOKEN_INDEX = 255;\n\n// Typed message filters, to select fields to display, and provide formatting informations\nexport type TypedDataFilterPath = string;\nexport type TypedDataFilterWithToken = {\n type: \"amount\" | \"token\";\n displayName: string;\n tokenIndex: TypedDataTokenIndex;\n path: TypedDataFilterPath;\n signature: string;\n};\nexport type TypedDataFilterWithTrustedName = {\n type: \"trusted-name\";\n displayName: string;\n types: string[];\n sources: string[];\n typesAndSourcesPayload: string;\n path: TypedDataFilterPath;\n signature: string;\n};\nexport type TypedDataFilterCalldata = {\n type:\n | \"calldata-value\"\n | \"calldata-callee\"\n | \"calldata-chain-id\"\n | \"calldata-selector\"\n | \"calldata-amount\"\n | \"calldata-spender\";\n displayName: string;\n calldataIndex: TypedDataCalldataIndex;\n path: TypedDataFilterPath;\n signature: string;\n};\nexport type TypedDataFilter =\n | {\n type: \"datetime\" | \"raw\";\n displayName: string;\n path: TypedDataFilterPath;\n signature: string;\n }\n | TypedDataFilterWithToken\n | TypedDataFilterWithTrustedName\n | TypedDataFilterCalldata;\n\n// Calldata info when referenced by a typed message\nexport enum TypedDataCalldataParamPresence {\n None = \"none\",\n Present = \"present\",\n VerifyingContract = \"verifying_contract\",\n}\nexport type TypedDataFilterCalldataInfo = {\n displayName: string;\n calldataIndex: TypedDataCalldataIndex;\n valueFlag: boolean;\n calleeFlag: TypedDataCalldataParamPresence;\n chainIdFlag: boolean;\n selectorFlag: boolean;\n amountFlag: boolean;\n spenderFlag: TypedDataCalldataParamPresence;\n signature: string;\n};\nexport type TypedDataCalldataInfo = {\n filter: TypedDataFilterCalldataInfo;\n subset: TransactionSubset;\n};\n\n// Clear signing context for a typed message\nexport type TypedDataClearSignContextSuccess = {\n type: \"success\";\n messageInfo: TypedDataMessageInfo;\n filters: Record<TypedDataFilterPath, TypedDataFilter>;\n trustedNamesAddresses: Record<TypedDataFilterPath, HexaString>;\n tokens: Record<TypedDataTokenIndex, TypedDataToken>;\n calldatas: Record<TypedDataCalldataIndex, TypedDataCalldataInfo>;\n proxy?: ClearSignContextSuccess<ClearSignContextType.PROXY_DELEGATE_CALL>;\n};\nexport type TypedDataClearSignContextError = {\n type: \"error\";\n error: Error;\n};\nexport type TypedDataClearSignContext =\n | TypedDataClearSignContextSuccess\n | TypedDataClearSignContextError;\n"],
5
+ "mappings": "AAqBO,MAAMA,EAAiC,IA6CvC,IAAKC,OACVA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,kBAAoB,qBAHVA,OAAA",
6
+ "names": ["VERIFYING_CONTRACT_TOKEN_INDEX", "TypedDataCalldataParamPresence"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ var w=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var u=(s,e,o,t)=>{for(var r=t>1?void 0:t?g(e,o):e,a=s.length-1,n;a>=0;a--)(n=s[a])&&(r=(t?n(e,o,r):n(r))||r);return t&&r&&w(e,o,r),r},f=(s,e)=>(o,t)=>e(o,t,s);import{hexaStringToBuffer as h}from"@ledgerhq/device-management-kit";import m from"axios";import{inject as E,injectable as A}from"inversify";import{Left as i,Right as d}from"purify-ts";import{configTypes as O}from"../../config/di/configTypes";import{LEDGER_CLIENT_VERSION_HEADER as p,LEDGER_ORIGIN_TOKEN_HEADER as C}from"../../shared/constant/HttpHeaders";import S from"../../../package.json";let c=class{constructor(e){this.config=e;if(!this.config.originToken)throw new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: origin token is required")}isSolanaSPLOwnerInfo(e){return typeof e!="object"||e===null?!1:typeof e.tokenAccount=="string"&&typeof e.owner=="string"&&typeof e.contract=="string"&&typeof e.signedDescriptor=="string"}async fetchAddressMetadata(e,o){return await m.request({method:"GET",url:`${this.config.metadataServiceDomain.url}/v2/solana/owner/${e}?challenge=${o}`,headers:{[p]:`context-module/${S.version}`,[C]:this.config.originToken}}).then(t=>this.isSolanaSPLOwnerInfo(t.data)?d(t.data):i(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid fetchAddressMetadata response shape"))).catch(()=>i(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: Failed to fetch address metadata")))}async computeAddressMetadata(e,o,t){return await m.request({method:"GET",url:`${this.config.metadataServiceDomain.url}/v2/solana/computed-token-account/${e}/${o}?challenge=${t}`,headers:{[p]:`context-module/${S.version}`,"X-Ledger-Client-Origin":this.config.originToken}}).then(r=>this.isSolanaSPLOwnerInfo(r.data)?d(r.data):i(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid computeAddressMetadata response shape"))).catch(()=>i(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: Failed to compute address metadata")))}async getOwnerInfo(e){const{tokenAddress:o,challenge:t,createATA:r}=e;if(!t)return i(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: challenge is required"));let a;if(o)a=await this.fetchAddressMetadata(o,t);else if(r?.address&&r?.mintAddress)a=await this.computeAddressMetadata(r.address,r.mintAddress,t);else return i(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: either tokenAddress or valid createATA must be provided"));return a.chain(n=>{const l=h(n.signedDescriptor);return l?d({descriptor:l,tokenAccount:n.tokenAccount,owner:n.owner,contract:n.contract}):i(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid base64 descriptor received"))})}};c=u([A(),f(0,E(O.Config))],c);export{c as HttpSolanaOwnerInfoDataSource};
2
+ //# sourceMappingURL=HttpSolanaOwnerInfoDataSource.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/solana/data/HttpSolanaOwnerInfoDataSource.ts"],
4
+ "sourcesContent": ["import { hexaStringToBuffer } from \"@ledgerhq/device-management-kit\";\nimport 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 {\n SolanaSPLOwnerInfo,\n type SolanaTransactionContext,\n} from \"@/solana/domain/solanaContextTypes\";\nimport PACKAGE from \"@root/package.json\";\n\nimport {\n HttpSolanaOwnerInfoDataSourceResult,\n SolanaDataSource,\n} from \"./SolanaDataSource\";\n\n@injectable()\nexport class HttpSolanaOwnerInfoDataSource implements SolanaDataSource {\n constructor(\n @inject(configTypes.Config) private readonly config: ContextModuleConfig,\n ) {\n if (!this.config.originToken) {\n throw new Error(\n \"[ContextModule] - HttpSolanaOwnerInfoDataSource: origin token is required\",\n );\n }\n }\n\n private isSolanaSPLOwnerInfo(data: {\n tokenAccount?: unknown;\n owner?: unknown;\n contract?: unknown;\n signedDescriptor?: unknown;\n }): data is SolanaSPLOwnerInfo {\n if (typeof data !== \"object\" || data === null) return false;\n return (\n typeof data.tokenAccount === \"string\" &&\n typeof data.owner === \"string\" &&\n typeof data.contract === \"string\" &&\n typeof data.signedDescriptor === \"string\"\n );\n }\n\n async fetchAddressMetadata(\n tokenAddress: string,\n challenge: string,\n ): Promise<Either<Error, SolanaSPLOwnerInfo>> {\n return await axios\n .request<SolanaSPLOwnerInfo>({\n method: \"GET\",\n url: `${this.config.metadataServiceDomain.url}/v2/solana/owner/${tokenAddress}?challenge=${challenge}`,\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: this.config.originToken,\n },\n })\n .then((res) => {\n if (!this.isSolanaSPLOwnerInfo(res.data))\n return Left(\n new Error(\n \"[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid fetchAddressMetadata response shape\",\n ),\n );\n return Right(res.data);\n })\n .catch(() =>\n Left(\n new Error(\n \"[ContextModule] - HttpSolanaOwnerInfoDataSource: Failed to fetch address metadata\",\n ),\n ),\n );\n }\n\n async computeAddressMetadata(\n address: string,\n mintAddress: string,\n challenge: string,\n ): Promise<Either<Error, SolanaSPLOwnerInfo>> {\n return await axios\n .request<SolanaSPLOwnerInfo>({\n method: \"GET\",\n url: `${this.config.metadataServiceDomain.url}/v2/solana/computed-token-account/${address}/${mintAddress}?challenge=${challenge}`,\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n \"X-Ledger-Client-Origin\": this.config.originToken,\n },\n })\n .then((res) => {\n if (!this.isSolanaSPLOwnerInfo(res.data))\n return Left(\n new Error(\n \"[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid computeAddressMetadata response shape\",\n ),\n );\n return Right(res.data);\n })\n .catch(() =>\n Left(\n new Error(\n \"[ContextModule] - HttpSolanaOwnerInfoDataSource: Failed to compute address metadata\",\n ),\n ),\n );\n }\n\n async getOwnerInfo(\n context: SolanaTransactionContext,\n ): Promise<Either<Error, HttpSolanaOwnerInfoDataSourceResult>> {\n const { tokenAddress, challenge, createATA } = context;\n\n if (!challenge) {\n return Left(\n new Error(\n \"[ContextModule] - HttpSolanaOwnerInfoDataSource: challenge is required\",\n ),\n );\n }\n\n let ownerInfoResult: Either<Error, SolanaSPLOwnerInfo>;\n\n if (tokenAddress) {\n ownerInfoResult = await this.fetchAddressMetadata(\n tokenAddress,\n challenge,\n );\n } else if (createATA?.address && createATA?.mintAddress) {\n ownerInfoResult = await this.computeAddressMetadata(\n createATA.address,\n createATA.mintAddress,\n challenge,\n );\n } else {\n return Left(\n new Error(\n \"[ContextModule] - HttpSolanaOwnerInfoDataSource: either tokenAddress or valid createATA must be provided\",\n ),\n );\n }\n\n return ownerInfoResult.chain((ownerInfo) => {\n const descriptor = hexaStringToBuffer(ownerInfo.signedDescriptor);\n if (!descriptor) {\n return Left(\n new Error(\n \"[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid base64 descriptor received\",\n ),\n );\n }\n return Right({\n descriptor,\n tokenAccount: ownerInfo.tokenAccount,\n owner: ownerInfo.owner,\n contract: ownerInfo.contract,\n });\n });\n }\n}\n"],
5
+ "mappings": "iOAAA,OAAS,sBAAAA,MAA0B,kCACnC,OAAOC,MAAW,QAClB,OAAS,UAAAC,EAAQ,cAAAC,MAAkB,YACnC,OAAiB,QAAAC,EAAM,SAAAC,MAAa,YAEpC,OAAS,eAAAC,MAAmB,0BAE5B,OACE,gCAAAC,EACA,8BAAAC,MACK,gCAKP,OAAOC,MAAa,qBAQb,IAAMC,EAAN,KAAgE,CACrE,YAC+CC,EAC7C,CAD6C,YAAAA,EAE7C,GAAI,CAAC,KAAK,OAAO,YACf,MAAM,IAAI,MACR,2EACF,CAEJ,CAEQ,qBAAqBC,EAKE,CAC7B,OAAI,OAAOA,GAAS,UAAYA,IAAS,KAAa,GAEpD,OAAOA,EAAK,cAAiB,UAC7B,OAAOA,EAAK,OAAU,UACtB,OAAOA,EAAK,UAAa,UACzB,OAAOA,EAAK,kBAAqB,QAErC,CAEA,MAAM,qBACJC,EACAC,EAC4C,CAC5C,OAAO,MAAMC,EACV,QAA4B,CAC3B,OAAQ,MACR,IAAK,GAAG,KAAK,OAAO,sBAAsB,GAAG,oBAAoBF,CAAY,cAAcC,CAAS,GACpG,QAAS,CACP,CAACE,CAA4B,EAAG,kBAAkBC,EAAQ,OAAO,GACjE,CAACC,CAA0B,EAAG,KAAK,OAAO,WAC5C,CACF,CAAC,EACA,KAAMC,GACA,KAAK,qBAAqBA,EAAI,IAAI,EAMhCC,EAAMD,EAAI,IAAI,EALZE,EACL,IAAI,MACF,8FACF,CACF,CAEH,EACA,MAAM,IACLA,EACE,IAAI,MACF,mFACF,CACF,CACF,CACJ,CAEA,MAAM,uBACJC,EACAC,EACAT,EAC4C,CAC5C,OAAO,MAAMC,EACV,QAA4B,CAC3B,OAAQ,MACR,IAAK,GAAG,KAAK,OAAO,sBAAsB,GAAG,qCAAqCO,CAAO,IAAIC,CAAW,cAAcT,CAAS,GAC/H,QAAS,CACP,CAACE,CAA4B,EAAG,kBAAkBC,EAAQ,OAAO,GACjE,yBAA0B,KAAK,OAAO,WACxC,CACF,CAAC,EACA,KAAME,GACA,KAAK,qBAAqBA,EAAI,IAAI,EAMhCC,EAAMD,EAAI,IAAI,EALZE,EACL,IAAI,MACF,gGACF,CACF,CAEH,EACA,MAAM,IACLA,EACE,IAAI,MACF,qFACF,CACF,CACF,CACJ,CAEA,MAAM,aACJG,EAC6D,CAC7D,KAAM,CAAE,aAAAX,EAAc,UAAAC,EAAW,UAAAW,CAAU,EAAID,EAE/C,GAAI,CAACV,EACH,OAAOO,EACL,IAAI,MACF,wEACF,CACF,EAGF,IAAIK,EAEJ,GAAIb,EACFa,EAAkB,MAAM,KAAK,qBAC3Bb,EACAC,CACF,UACSW,GAAW,SAAWA,GAAW,YAC1CC,EAAkB,MAAM,KAAK,uBAC3BD,EAAU,QACVA,EAAU,YACVX,CACF,MAEA,QAAOO,EACL,IAAI,MACF,0GACF,CACF,EAGF,OAAOK,EAAgB,MAAOC,GAAc,CAC1C,MAAMC,EAAaC,EAAmBF,EAAU,gBAAgB,EAChE,OAAKC,EAOER,EAAM,CACX,WAAAQ,EACA,aAAcD,EAAU,aACxB,MAAOA,EAAU,MACjB,SAAUA,EAAU,QACtB,CAAC,EAXQN,EACL,IAAI,MACF,qFACF,CACF,CAQJ,CAAC,CACH,CACF,EA5IaX,EAANoB,EAAA,CADNC,EAAW,EAGPC,EAAA,EAAAC,EAAOC,EAAY,MAAM,IAFjBxB",
6
+ "names": ["hexaStringToBuffer", "axios", "inject", "injectable", "Left", "Right", "configTypes", "LEDGER_CLIENT_VERSION_HEADER", "LEDGER_ORIGIN_TOKEN_HEADER", "PACKAGE", "HttpSolanaOwnerInfoDataSource", "config", "data", "tokenAddress", "challenge", "axios", "LEDGER_CLIENT_VERSION_HEADER", "PACKAGE", "LEDGER_ORIGIN_TOKEN_HEADER", "res", "Right", "Left", "address", "mintAddress", "context", "createATA", "ownerInfoResult", "ownerInfo", "descriptor", "hexaStringToBuffer", "__decorateClass", "injectable", "__decorateParam", "inject", "configTypes"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{DeviceModelId as r,hexaStringToBuffer as l}from"@ledgerhq/device-management-kit";import s from"axios";import{Left as c}from"purify-ts";import{LEDGER_CLIENT_VERSION_HEADER as u}from"../../shared/constant/HttpHeaders";import{HttpSolanaOwnerInfoDataSource as n}from"../../solana/data/HttpSolanaOwnerInfoDataSource";import m from"../../../package.json";vi.mock("axios");function f(o){const d=new TextEncoder().encode(o);return Array.from(d).map(e=>e.toString(16).padStart(2,"0")).join("")}describe("HttpSolanaOwnerInfoDataSource",()=>{const o={metadataServiceDomain:{url:"https://some.doma.in"},originToken:"mock-origin-token"},i=f("mock-descriptor"),d={tokenAccount:"token-account",owner:"owner-address",contract:"contract-address",signedDescriptor:i};beforeEach(()=>{vi.resetAllMocks()}),it("should fetch address metadata via tokenAddress",async()=>{const e={deviceModelId:r.FLEX,tokenAddress:"some-token",challenge:"random",createATA:void 0};vi.spyOn(s,"request").mockResolvedValueOnce({data:d});const t=await new n(o).getOwnerInfo(e);expect(t.isRight()).toBe(!0),expect(t.extract()).toEqual({descriptor:l(i),tokenAccount:"token-account",owner:"owner-address",contract:"contract-address"})}),it("should compute address when tokenAddress is not provided",async()=>{const e={deviceModelId:r.FLEX,tokenAddress:void 0,challenge:"random",createATA:{address:"some-address",mintAddress:"some-mint"}};vi.spyOn(s,"request").mockResolvedValueOnce({data:d});const t=await new n(o).getOwnerInfo(e);expect(t.isRight()).toBe(!0),expect(t.extract().tokenAccount).toBe("token-account")}),it("should return an error if both tokenAddress and createATA are missing or invalid",async()=>{const e={deviceModelId:r.FLEX,tokenAddress:void 0,challenge:"random",createATA:void 0},t=await new n(o).getOwnerInfo(e);expect(t).toEqual(c(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: either tokenAddress or valid createATA must be provided")))}),it("should return an error if challenge is missing",async()=>{const e={deviceModelId:r.FLEX,tokenAddress:"some-token",challenge:void 0,createATA:void 0},t=await new n(o).getOwnerInfo(e);expect(t).toEqual(c(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: challenge is required")))}),it("should return an error if the descriptor is not valid base64",async()=>{vi.spyOn(s,"request").mockResolvedValueOnce({data:{...d,signedDescriptor:"!!!not-valid-base64!!!"}});const e={deviceModelId:r.FLEX,tokenAddress:"some-token",challenge:"random",createATA:void 0},t=await new n(o).getOwnerInfo(e);expect(t).toEqual(c(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid base64 descriptor received")))}),it("should return an error if the metadata request fails",async()=>{vi.spyOn(s,"request").mockRejectedValueOnce(new Error("Network error"));const e={deviceModelId:r.FLEX,tokenAddress:"some-token",challenge:"random",createATA:void 0},t=await new n(o).getOwnerInfo(e);expect(t).toEqual(c(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: Failed to fetch address metadata")))}),it("should return an error if axios request return wrong shape for fetchAddressMetadata",async()=>{vi.spyOn(s,"request").mockResolvedValueOnce({data:{wrong:"field"}});const e={deviceModelId:r.FLEX,tokenAddress:"some-token",challenge:"random",createATA:void 0},t=await new n(o).getOwnerInfo(e);expect(t).toEqual(c(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid fetchAddressMetadata response shape")))}),it("should return an error if axios request return wrong shape for computeAddressMetadata",async()=>{vi.spyOn(s,"request").mockResolvedValueOnce({data:{wrong:"field"}});const e={deviceModelId:r.FLEX,tokenAddress:void 0,challenge:"random",createATA:{address:"some-address",mintAddress:"some-mint"}},t=await new n(o).getOwnerInfo(e);expect(t).toEqual(c(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid computeAddressMetadata response shape")))}),it("should throw if originToken is missing",()=>{expect(()=>{new n({...o,originToken:void 0})}).toThrow("[ContextModule] - HttpSolanaOwnerInfoDataSource: origin token is required")}),it("should call axios with correct headers",async()=>{const e={deviceModelId:r.FLEX,tokenAddress:"some-token",challenge:"random",createATA:void 0},a=vi.spyOn(s,"request").mockResolvedValueOnce({data:d});await new n(o).getOwnerInfo(e),expect(a).toHaveBeenCalledWith(expect.objectContaining({headers:{[u]:`context-module/${m.version}`,"X-Ledger-Client-Origin":o.originToken}}))})});
2
+ //# sourceMappingURL=HttpSolanaOwnerInfoDataSource.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/solana/data/HttpSolanaOwnerInfoDataSource.test.ts"],
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n DeviceModelId,\n hexaStringToBuffer,\n} from \"@ledgerhq/device-management-kit\";\nimport axios from \"axios\";\nimport { Left } from \"purify-ts\";\n\nimport type { ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { LEDGER_CLIENT_VERSION_HEADER } from \"@/shared/constant/HttpHeaders\";\nimport { HttpSolanaOwnerInfoDataSource } from \"@/solana/data/HttpSolanaOwnerInfoDataSource\";\nimport type { SolanaTransactionContext } from \"@/solana/domain/solanaContextTypes\";\nimport PACKAGE from \"@root/package.json\";\n\nvi.mock(\"axios\");\n\nfunction stringToHex(str: string): string {\n const encoder = new TextEncoder();\n const bytes = encoder.encode(str); // Uint8Array\n return Array.from(bytes)\n .map((byte) => byte.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n\ndescribe(\"HttpSolanaOwnerInfoDataSource\", () => {\n const config = {\n metadataServiceDomain: { url: \"https://some.doma.in\" },\n originToken: \"mock-origin-token\",\n } as ContextModuleConfig;\n\n const signedDescriptorHex = stringToHex(\"mock-descriptor\");\n const responseData = {\n tokenAccount: \"token-account\",\n owner: \"owner-address\",\n contract: \"contract-address\",\n signedDescriptor: signedDescriptorHex,\n };\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n it(\"should fetch address metadata via tokenAddress\", async () => {\n const context: SolanaTransactionContext = {\n deviceModelId: DeviceModelId.FLEX,\n tokenAddress: \"some-token\",\n challenge: \"random\",\n createATA: undefined,\n };\n vi.spyOn(axios, \"request\").mockResolvedValueOnce({ data: responseData });\n\n const dataSource = new HttpSolanaOwnerInfoDataSource(config);\n const result = await dataSource.getOwnerInfo(context);\n\n expect(result.isRight()).toBe(true);\n expect(result.extract()).toEqual({\n descriptor: hexaStringToBuffer(signedDescriptorHex),\n tokenAccount: \"token-account\",\n owner: \"owner-address\",\n contract: \"contract-address\",\n });\n });\n\n it(\"should compute address when tokenAddress is not provided\", async () => {\n const context: SolanaTransactionContext = {\n deviceModelId: DeviceModelId.FLEX,\n tokenAddress: undefined,\n challenge: \"random\",\n createATA: {\n address: \"some-address\",\n mintAddress: \"some-mint\",\n },\n };\n vi.spyOn(axios, \"request\").mockResolvedValueOnce({ data: responseData });\n\n const dataSource = new HttpSolanaOwnerInfoDataSource(config);\n const result = await dataSource.getOwnerInfo(context);\n\n expect(result.isRight()).toBe(true);\n expect((result.extract() as any).tokenAccount).toBe(\"token-account\");\n });\n\n it(\"should return an error if both tokenAddress and createATA are missing or invalid\", async () => {\n const context: SolanaTransactionContext = {\n deviceModelId: DeviceModelId.FLEX,\n tokenAddress: undefined,\n challenge: \"random\",\n createATA: undefined,\n };\n\n const dataSource = new HttpSolanaOwnerInfoDataSource(config);\n const result = await dataSource.getOwnerInfo(context);\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] - HttpSolanaOwnerInfoDataSource: either tokenAddress or valid createATA must be provided\",\n ),\n ),\n );\n });\n\n it(\"should return an error if challenge is missing\", async () => {\n const context: SolanaTransactionContext = {\n deviceModelId: DeviceModelId.FLEX,\n tokenAddress: \"some-token\",\n challenge: undefined,\n createATA: undefined,\n };\n\n const dataSource = new HttpSolanaOwnerInfoDataSource(config);\n const result = await dataSource.getOwnerInfo(context);\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] - HttpSolanaOwnerInfoDataSource: challenge is required\",\n ),\n ),\n );\n });\n\n it(\"should return an error if the descriptor is not valid base64\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValueOnce({\n data: { ...responseData, signedDescriptor: \"!!!not-valid-base64!!!\" },\n });\n const context: SolanaTransactionContext = {\n deviceModelId: DeviceModelId.FLEX,\n tokenAddress: \"some-token\",\n challenge: \"random\",\n createATA: undefined,\n };\n\n const dataSource = new HttpSolanaOwnerInfoDataSource(config);\n const result = await dataSource.getOwnerInfo(context);\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid base64 descriptor received\",\n ),\n ),\n );\n });\n\n it(\"should return an error if the metadata request fails\", async () => {\n vi.spyOn(axios, \"request\").mockRejectedValueOnce(\n new Error(\"Network error\"),\n );\n const context: SolanaTransactionContext = {\n deviceModelId: DeviceModelId.FLEX,\n tokenAddress: \"some-token\",\n challenge: \"random\",\n createATA: undefined,\n };\n\n const dataSource = new HttpSolanaOwnerInfoDataSource(config);\n const result = await dataSource.getOwnerInfo(context);\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] - HttpSolanaOwnerInfoDataSource: Failed to fetch address metadata\",\n ),\n ),\n );\n });\n\n it(\"should return an error if axios request return wrong shape for fetchAddressMetadata\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValueOnce({\n data: { wrong: \"field\" },\n });\n\n const context: SolanaTransactionContext = {\n deviceModelId: DeviceModelId.FLEX,\n tokenAddress: \"some-token\",\n challenge: \"random\",\n createATA: undefined,\n };\n\n const dataSource = new HttpSolanaOwnerInfoDataSource(config);\n const result = await dataSource.getOwnerInfo(context);\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid fetchAddressMetadata response shape\",\n ),\n ),\n );\n });\n\n it(\"should return an error if axios request return wrong shape for computeAddressMetadata\", async () => {\n vi.spyOn(axios, \"request\").mockResolvedValueOnce({\n data: { wrong: \"field\" },\n });\n\n const context: SolanaTransactionContext = {\n deviceModelId: DeviceModelId.FLEX,\n tokenAddress: undefined,\n challenge: \"random\",\n createATA: {\n address: \"some-address\",\n mintAddress: \"some-mint\",\n },\n };\n\n const dataSource = new HttpSolanaOwnerInfoDataSource(config);\n const result = await dataSource.getOwnerInfo(context);\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid computeAddressMetadata response shape\",\n ),\n ),\n );\n });\n\n it(\"should throw if originToken is missing\", () => {\n expect(() => {\n new HttpSolanaOwnerInfoDataSource({\n ...config,\n originToken: undefined,\n } as any);\n }).toThrow(\n \"[ContextModule] - HttpSolanaOwnerInfoDataSource: origin token is required\",\n );\n });\n\n it(\"should call axios with correct headers\", async () => {\n const context: SolanaTransactionContext = {\n deviceModelId: DeviceModelId.FLEX,\n tokenAddress: \"some-token\",\n challenge: \"random\",\n createATA: undefined,\n };\n const spy = vi\n .spyOn(axios, \"request\")\n .mockResolvedValueOnce({ data: responseData });\n\n const dataSource = new HttpSolanaOwnerInfoDataSource(config);\n await dataSource.getOwnerInfo(context);\n\n expect(spy).toHaveBeenCalledWith(\n expect.objectContaining({\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n \"X-Ledger-Client-Origin\": config.originToken,\n },\n }),\n );\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["DeviceModelId", "hexaStringToBuffer", "axios", "Left", "LEDGER_CLIENT_VERSION_HEADER", "HttpSolanaOwnerInfoDataSource", "PACKAGE", "stringToHex", "str", "bytes", "byte", "config", "signedDescriptorHex", "responseData", "context", "result", "spy"]
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=SolanaDataSource.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ import{ContainerModule as a}from"inversify";import{HttpSolanaOwnerInfoDataSource as e}from"../../solana/data/HttpSolanaOwnerInfoDataSource";import{solanaContextTypes as t}from"../../solana/di/solanaContextTypes";import{DefaultSolanaContextLoader as r}from"../../solana/domain/DefaultSolanaContextLoader";const f=()=>new a(({bind:o})=>{o(t.SolanaDataSource).to(e),o(t.SolanaContextLoader).to(r)});export{f as solanaContextModuleFactory};
2
+ //# sourceMappingURL=SolanaContextModuleFactory.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/solana/di/SolanaContextModuleFactory.ts"],
4
+ "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { HttpSolanaOwnerInfoDataSource } from \"@/solana/data/HttpSolanaOwnerInfoDataSource\";\nimport { solanaContextTypes } from \"@/solana/di/solanaContextTypes\";\nimport { DefaultSolanaContextLoader } from \"@/solana/domain/DefaultSolanaContextLoader\";\n\nexport const solanaContextModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(solanaContextTypes.SolanaDataSource).to(HttpSolanaOwnerInfoDataSource);\n bind(solanaContextTypes.SolanaContextLoader).to(DefaultSolanaContextLoader);\n });\n"],
5
+ "mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,iCAAAC,MAAqC,8CAC9C,OAAS,sBAAAC,MAA0B,iCACnC,OAAS,8BAAAC,MAAkC,6CAEpC,MAAMC,EAA6B,IACxC,IAAIJ,EAAgB,CAAC,CAAE,KAAAK,CAAK,IAAM,CAChCA,EAAKH,EAAmB,gBAAgB,EAAE,GAAGD,CAA6B,EAC1EI,EAAKH,EAAmB,mBAAmB,EAAE,GAAGC,CAA0B,CAC5E,CAAC",
6
+ "names": ["ContainerModule", "HttpSolanaOwnerInfoDataSource", "solanaContextTypes", "DefaultSolanaContextLoader", "solanaContextModuleFactory", "bind"]
7
+ }
@@ -0,0 +1,2 @@
1
+ const o={SolanaDataSource:Symbol.for("SolanaDataSource"),SolanaContextLoader:Symbol.for("SolanaContextLoader")};export{o as solanaContextTypes};
2
+ //# sourceMappingURL=solanaContextTypes.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/solana/di/solanaContextTypes.ts"],
4
+ "sourcesContent": ["export const solanaContextTypes = {\n SolanaDataSource: Symbol.for(\"SolanaDataSource\"),\n SolanaContextLoader: Symbol.for(\"SolanaContextLoader\"),\n};\n"],
5
+ "mappings": "AAAO,MAAMA,EAAqB,CAChC,iBAAkB,OAAO,IAAI,kBAAkB,EAC/C,oBAAqB,OAAO,IAAI,qBAAqB,CACvD",
6
+ "names": ["solanaContextTypes"]
7
+ }
@@ -0,0 +1,2 @@
1
+ var f=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var s=(r,e,t,o)=>{for(var a=o>1?void 0:o?p(e,t):e,i=r.length-1,n;i>=0;i--)(n=r[i])&&(a=(o?n(e,t,a):n(a))||a);return o&&a&&f(e,t,a),a},m=(r,e)=>(t,o)=>e(t,o,r);import{inject as d,injectable as l}from"inversify";import{Left as S}from"purify-ts";import{pkiTypes as u}from"../../pki/di/pkiTypes";import{KeyUsage as y}from"../../pki/model/KeyUsage";import{solanaContextTypes as C}from"../../solana/di/solanaContextTypes";let c=class{constructor(e,t){this._certificateLoader=t;this._dataSource=e}_dataSource;async load(e){const t=await this._certificateLoader.loadCertificate({keyId:"domain_metadata_key",keyUsage:y.TrustedName,targetDevice:e.deviceModelId});return t?(await this._dataSource.getOwnerInfo(e)).map(({descriptor:o,tokenAccount:a,owner:i,contract:n})=>({descriptor:o,tokenAccount:a,owner:i,contract:n,certificate:t})):S(new Error("[ContextModule] - DefaultSolanaContextLoader: CAL certificate is undefined"))}};c=s([l(),m(0,d(C.SolanaDataSource)),m(1,d(u.PkiCertificateLoader))],c);export{c as DefaultSolanaContextLoader};
2
+ //# sourceMappingURL=DefaultSolanaContextLoader.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/solana/domain/DefaultSolanaContextLoader.ts"],
4
+ "sourcesContent": ["import { inject, injectable } from \"inversify\";\nimport { Left } from \"purify-ts\";\n\nimport { pkiTypes } from \"@/pki/di/pkiTypes\";\nimport { type PkiCertificateLoader } from \"@/pki/domain/PkiCertificateLoader\";\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport { type SolanaDataSource } from \"@/solana/data/SolanaDataSource\";\nimport { solanaContextTypes } from \"@/solana/di/solanaContextTypes\";\n\nimport { SolanaContextLoader } from \"./SolanaContextLoader\";\nimport {\n SolanaTransactionContext,\n SolanaTransactionContextResult,\n} from \"./solanaContextTypes\";\n\n@injectable()\nexport class DefaultSolanaContextLoader implements SolanaContextLoader {\n private _dataSource: SolanaDataSource;\n\n constructor(\n @inject(solanaContextTypes.SolanaDataSource)\n dataSource: SolanaDataSource,\n @inject(pkiTypes.PkiCertificateLoader)\n private readonly _certificateLoader: PkiCertificateLoader,\n ) {\n this._dataSource = dataSource;\n }\n\n async load(\n solanaContext: SolanaTransactionContext,\n ): Promise<SolanaTransactionContextResult> {\n // load the CAL certificate\n const certificate = await this._certificateLoader.loadCertificate({\n keyId: \"domain_metadata_key\",\n keyUsage: KeyUsage.TrustedName,\n targetDevice: solanaContext.deviceModelId,\n });\n if (!certificate) {\n return Left(\n new Error(\n \"[ContextModule] - DefaultSolanaContextLoader: CAL certificate is undefined\",\n ),\n );\n }\n\n // fetch the Solana context\n return (await this._dataSource.getOwnerInfo(solanaContext)).map(\n ({ descriptor, tokenAccount, owner, contract }) => ({\n descriptor,\n tokenAccount,\n owner,\n contract,\n certificate,\n }),\n );\n }\n}\n"],
5
+ "mappings": "iOAAA,OAAS,UAAAA,EAAQ,cAAAC,MAAkB,YACnC,OAAS,QAAAC,MAAY,YAErB,OAAS,YAAAC,MAAgB,oBAEzB,OAAS,YAAAC,MAAgB,uBAEzB,OAAS,sBAAAC,MAA0B,iCAS5B,IAAMC,EAAN,KAAgE,CAGrE,YAEEC,EAEiBC,EACjB,CADiB,wBAAAA,EAEjB,KAAK,YAAcD,CACrB,CATQ,YAWR,MAAM,KACJE,EACyC,CAEzC,MAAMC,EAAc,MAAM,KAAK,mBAAmB,gBAAgB,CAChE,MAAO,sBACP,SAAUC,EAAS,YACnB,aAAcF,EAAc,aAC9B,CAAC,EACD,OAAKC,GASG,MAAM,KAAK,YAAY,aAAaD,CAAa,GAAG,IAC1D,CAAC,CAAE,WAAAG,EAAY,aAAAC,EAAc,MAAAC,EAAO,SAAAC,CAAS,KAAO,CAClD,WAAAH,EACA,aAAAC,EACA,MAAAC,EACA,SAAAC,EACA,YAAAL,CACF,EACF,EAhBSM,EACL,IAAI,MACF,4EACF,CACF,CAaJ,CACF,EAxCaV,EAANW,EAAA,CADNC,EAAW,EAKPC,EAAA,EAAAC,EAAOC,EAAmB,gBAAgB,GAE1CF,EAAA,EAAAC,EAAOE,EAAS,oBAAoB,IAN5BhB",
6
+ "names": ["inject", "injectable", "Left", "pkiTypes", "KeyUsage", "solanaContextTypes", "DefaultSolanaContextLoader", "dataSource", "_certificateLoader", "solanaContext", "certificate", "KeyUsage", "descriptor", "tokenAccount", "owner", "contract", "Left", "__decorateClass", "injectable", "__decorateParam", "inject", "solanaContextTypes", "pkiTypes"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{DeviceModelId as i}from"@ledgerhq/device-management-kit";import{Left as d,Right as l}from"purify-ts";import{KeyUsage as s}from"../../pki/model/KeyUsage";import{DefaultSolanaContextLoader as f}from"../../solana/domain/DefaultSolanaContextLoader";describe("DefaultSolanaContextLoader",()=>{let a,e,r;const o={deviceModelId:i.FLEX,tokenAddress:"token-addr",challenge:"challenge-str"},n={descriptor:"cert-desc",signature:"cert-sig",keyUsageNumber:0,payload:new Uint8Array};beforeEach(()=>{vi.resetAllMocks(),a={getOwnerInfo:vi.fn()},e={loadCertificate:vi.fn()},r=new f(a,e)}),it("should call dataSource.getSolanaContext and certificateLoader.loadCertificate with correct args",async()=>{e.loadCertificate.mockResolvedValue(n),a.getOwnerInfo.mockResolvedValue(l({descriptor:Buffer.from("d"),tokenAccount:"tkn",owner:"own",contract:"ctr"})),await r.load(o),expect(e.loadCertificate).toHaveBeenCalledWith({keyId:"domain_metadata_key",keyUsage:s.TrustedName,targetDevice:o.deviceModelId}),expect(a.getOwnerInfo).toHaveBeenCalledWith(o)}),it("should return Left if certificate loader returns undefined",async()=>{e.loadCertificate.mockResolvedValue(void 0);const t=await r.load(o);expect(t).toEqual(d(new Error("[ContextModule] - DefaultSolanaContextLoader: CAL certificate is undefined")))}),it("should propagate Left from dataSource.getSolanaContext",async()=>{e.loadCertificate.mockResolvedValue(n);const t=new Error("DS failure");a.getOwnerInfo.mockResolvedValue(d(t));const c=await r.load(o);expect(c).toEqual(d(t))}),it("should return Right with merged data and certificate on success",async()=>{e.loadCertificate.mockResolvedValue(n);const t={descriptor:Buffer.from("dd"),tokenAccount:"tokenAcct",owner:"ownerAddr",contract:"contractAddr",certificate:n};a.getOwnerInfo.mockResolvedValue(l(t));const c=await r.load(o);expect(c.isRight()).toBe(!0),expect(c.extract()).toEqual({...t,certificate:n})})});
2
+ //# sourceMappingURL=DefaultSolanaContextLoader.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/solana/domain/DefaultSolanaContextLoader.test.ts"],
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { DeviceModelId } from \"@ledgerhq/device-management-kit\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport { DefaultSolanaContextLoader } from \"@/solana/domain/DefaultSolanaContextLoader\";\nimport type {\n SolanaTransactionContext,\n SolanaTransactionContextResultSuccess,\n} from \"@/solana/domain/solanaContextTypes\";\n\ndescribe(\"DefaultSolanaContextLoader\", () => {\n let mockDataSource: {\n getOwnerInfo: any;\n };\n let mockCertLoader: {\n loadCertificate: any;\n };\n let loader: DefaultSolanaContextLoader;\n\n const context: SolanaTransactionContext = {\n deviceModelId: DeviceModelId.FLEX,\n tokenAddress: \"token-addr\",\n challenge: \"challenge-str\",\n } as any;\n\n const fakeCert = {\n descriptor: \"cert-desc\",\n signature: \"cert-sig\",\n keyUsageNumber: 0,\n payload: new Uint8Array(),\n };\n\n beforeEach(() => {\n vi.resetAllMocks();\n mockDataSource = {\n getOwnerInfo: vi.fn(),\n };\n mockCertLoader = {\n loadCertificate: vi.fn(),\n };\n\n loader = new DefaultSolanaContextLoader(\n mockDataSource as any,\n mockCertLoader as any,\n );\n });\n\n it(\"should call dataSource.getSolanaContext and certificateLoader.loadCertificate with correct args\", async () => {\n // given\n mockCertLoader.loadCertificate.mockResolvedValue(fakeCert);\n mockDataSource.getOwnerInfo.mockResolvedValue(\n Right({\n descriptor: Buffer.from(\"d\"),\n tokenAccount: \"tkn\",\n owner: \"own\",\n contract: \"ctr\",\n }),\n );\n\n // when\n await loader.load(context);\n\n // then\n expect(mockCertLoader.loadCertificate).toHaveBeenCalledWith({\n keyId: \"domain_metadata_key\",\n keyUsage: KeyUsage.TrustedName,\n targetDevice: context.deviceModelId,\n });\n expect(mockDataSource.getOwnerInfo).toHaveBeenCalledWith(context);\n });\n\n it(\"should return Left if certificate loader returns undefined\", async () => {\n mockCertLoader.loadCertificate.mockResolvedValue(undefined);\n\n const result = await loader.load(context);\n\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] - DefaultSolanaContextLoader: CAL certificate is undefined\",\n ),\n ),\n );\n });\n\n it(\"should propagate Left from dataSource.getSolanaContext\", async () => {\n mockCertLoader.loadCertificate.mockResolvedValue(fakeCert);\n const dsError = new Error(\"DS failure\");\n mockDataSource.getOwnerInfo.mockResolvedValue(Left(dsError));\n\n const result = await loader.load(context);\n\n expect(result).toEqual(Left(dsError));\n });\n\n it(\"should return Right with merged data and certificate on success\", async () => {\n mockCertLoader.loadCertificate.mockResolvedValue(fakeCert);\n\n const dsPayload: SolanaTransactionContextResultSuccess = {\n descriptor: Buffer.from(\"dd\"),\n tokenAccount: \"tokenAcct\",\n owner: \"ownerAddr\",\n contract: \"contractAddr\",\n certificate: fakeCert,\n };\n mockDataSource.getOwnerInfo.mockResolvedValue(Right(dsPayload));\n\n const result = await loader.load(context);\n\n expect(result.isRight()).toBe(true);\n expect(result.extract()).toEqual({\n ...dsPayload,\n certificate: fakeCert,\n });\n });\n});\n"],
5
+ "mappings": "AACA,OAAS,iBAAAA,MAAqB,kCAC9B,OAAS,QAAAC,EAAM,SAAAC,MAAa,YAE5B,OAAS,YAAAC,MAAgB,uBACzB,OAAS,8BAAAC,MAAkC,6CAM3C,SAAS,6BAA8B,IAAM,CAC3C,IAAIC,EAGAC,EAGAC,EAEJ,MAAMC,EAAoC,CACxC,cAAeR,EAAc,KAC7B,aAAc,aACd,UAAW,eACb,EAEMS,EAAW,CACf,WAAY,YACZ,UAAW,WACX,eAAgB,EAChB,QAAS,IAAI,UACf,EAEA,WAAW,IAAM,CACf,GAAG,cAAc,EACjBJ,EAAiB,CACf,aAAc,GAAG,GAAG,CACtB,EACAC,EAAiB,CACf,gBAAiB,GAAG,GAAG,CACzB,EAEAC,EAAS,IAAIH,EACXC,EACAC,CACF,CACF,CAAC,EAED,GAAG,kGAAmG,SAAY,CAEhHA,EAAe,gBAAgB,kBAAkBG,CAAQ,EACzDJ,EAAe,aAAa,kBAC1BH,EAAM,CACJ,WAAY,OAAO,KAAK,GAAG,EAC3B,aAAc,MACd,MAAO,MACP,SAAU,KACZ,CAAC,CACH,EAGA,MAAMK,EAAO,KAAKC,CAAO,EAGzB,OAAOF,EAAe,eAAe,EAAE,qBAAqB,CAC1D,MAAO,sBACP,SAAUH,EAAS,YACnB,aAAcK,EAAQ,aACxB,CAAC,EACD,OAAOH,EAAe,YAAY,EAAE,qBAAqBG,CAAO,CAClE,CAAC,EAED,GAAG,6DAA8D,SAAY,CAC3EF,EAAe,gBAAgB,kBAAkB,MAAS,EAE1D,MAAMI,EAAS,MAAMH,EAAO,KAAKC,CAAO,EAExC,OAAOE,CAAM,EAAE,QACbT,EACE,IAAI,MACF,4EACF,CACF,CACF,CACF,CAAC,EAED,GAAG,yDAA0D,SAAY,CACvEK,EAAe,gBAAgB,kBAAkBG,CAAQ,EACzD,MAAME,EAAU,IAAI,MAAM,YAAY,EACtCN,EAAe,aAAa,kBAAkBJ,EAAKU,CAAO,CAAC,EAE3D,MAAMD,EAAS,MAAMH,EAAO,KAAKC,CAAO,EAExC,OAAOE,CAAM,EAAE,QAAQT,EAAKU,CAAO,CAAC,CACtC,CAAC,EAED,GAAG,kEAAmE,SAAY,CAChFL,EAAe,gBAAgB,kBAAkBG,CAAQ,EAEzD,MAAMG,EAAmD,CACvD,WAAY,OAAO,KAAK,IAAI,EAC5B,aAAc,YACd,MAAO,YACP,SAAU,eACV,YAAaH,CACf,EACAJ,EAAe,aAAa,kBAAkBH,EAAMU,CAAS,CAAC,EAE9D,MAAMF,EAAS,MAAMH,EAAO,KAAKC,CAAO,EAExC,OAAOE,EAAO,QAAQ,CAAC,EAAE,KAAK,EAAI,EAClC,OAAOA,EAAO,QAAQ,CAAC,EAAE,QAAQ,CAC/B,GAAGE,EACH,YAAaH,CACf,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["DeviceModelId", "Left", "Right", "KeyUsage", "DefaultSolanaContextLoader", "mockDataSource", "mockCertLoader", "loader", "context", "fakeCert", "result", "dsError", "dsPayload"]
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=SolanaContextLoader.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=solanaContextTypes.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -1,2 +1,2 @@
1
- import{ContainerModule as e}from"inversify";import{HttpTokenDataSource as r}from"../../token/data/HttpTokenDataSource";import{tokenTypes as t}from"../../token/di/tokenTypes";import{TokenContextLoader as n}from"../../token/domain/TokenContextLoader";const T=()=>new e((o,a,m,i)=>{o(t.TokenDataSource).to(r),o(t.TokenContextLoader).to(n)});export{T as tokenModuleFactory};
1
+ import{ContainerModule as t}from"inversify";import{HttpTokenDataSource as r}from"../../token/data/HttpTokenDataSource";import{tokenTypes as e}from"../../token/di/tokenTypes";import{TokenContextFieldLoader as n}from"../../token/domain/TokenContextFieldLoader";import{TokenContextLoader as a}from"../../token/domain/TokenContextLoader";const i=()=>new t(({bind:o})=>{o(e.TokenDataSource).to(r),o(e.TokenContextLoader).to(a),o(e.TokenContextFieldLoader).to(n)});export{i as tokenModuleFactory};
2
2
  //# sourceMappingURL=tokenModuleFactory.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/token/di/tokenModuleFactory.ts"],
4
- "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { HttpTokenDataSource } from \"@/token/data/HttpTokenDataSource\";\nimport { tokenTypes } from \"@/token/di/tokenTypes\";\nimport { TokenContextLoader } from \"@/token/domain/TokenContextLoader\";\n\nexport const tokenModuleFactory = () =>\n new ContainerModule((bind, _unbind, _isBound, _rebind) => {\n bind(tokenTypes.TokenDataSource).to(HttpTokenDataSource);\n bind(tokenTypes.TokenContextLoader).to(TokenContextLoader);\n });\n"],
5
- "mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,uBAAAC,MAA2B,mCACpC,OAAS,cAAAC,MAAkB,wBAC3B,OAAS,sBAAAC,MAA0B,oCAE5B,MAAMC,EAAqB,IAChC,IAAIJ,EAAgB,CAACK,EAAMC,EAASC,EAAUC,IAAY,CACxDH,EAAKH,EAAW,eAAe,EAAE,GAAGD,CAAmB,EACvDI,EAAKH,EAAW,kBAAkB,EAAE,GAAGC,CAAkB,CAC3D,CAAC",
6
- "names": ["ContainerModule", "HttpTokenDataSource", "tokenTypes", "TokenContextLoader", "tokenModuleFactory", "bind", "_unbind", "_isBound", "_rebind"]
4
+ "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { HttpTokenDataSource } from \"@/token/data/HttpTokenDataSource\";\nimport { tokenTypes } from \"@/token/di/tokenTypes\";\nimport { TokenContextFieldLoader } from \"@/token/domain/TokenContextFieldLoader\";\nimport { TokenContextLoader } from \"@/token/domain/TokenContextLoader\";\n\nexport const tokenModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(tokenTypes.TokenDataSource).to(HttpTokenDataSource);\n bind(tokenTypes.TokenContextLoader).to(TokenContextLoader);\n bind(tokenTypes.TokenContextFieldLoader).to(TokenContextFieldLoader);\n });\n"],
5
+ "mappings": "AAAA,OAAS,mBAAAA,MAAuB,YAEhC,OAAS,uBAAAC,MAA2B,mCACpC,OAAS,cAAAC,MAAkB,wBAC3B,OAAS,2BAAAC,MAA+B,yCACxC,OAAS,sBAAAC,MAA0B,oCAE5B,MAAMC,EAAqB,IAChC,IAAIL,EAAgB,CAAC,CAAE,KAAAM,CAAK,IAAM,CAChCA,EAAKJ,EAAW,eAAe,EAAE,GAAGD,CAAmB,EACvDK,EAAKJ,EAAW,kBAAkB,EAAE,GAAGE,CAAkB,EACzDE,EAAKJ,EAAW,uBAAuB,EAAE,GAAGC,CAAuB,CACrE,CAAC",
6
+ "names": ["ContainerModule", "HttpTokenDataSource", "tokenTypes", "TokenContextFieldLoader", "TokenContextLoader", "tokenModuleFactory", "bind"]
7
7
  }
@@ -1,2 +1,2 @@
1
- const o={TokenDataSource:Symbol.for("TokenDataSource"),TokenContextLoader:Symbol.for("TokenContextLoader")};export{o as tokenTypes};
1
+ const o={TokenDataSource:Symbol.for("TokenDataSource"),TokenContextLoader:Symbol.for("TokenContextLoader"),TokenContextFieldLoader:Symbol.for("TokenContextFieldLoader")};export{o as tokenTypes};
2
2
  //# sourceMappingURL=tokenTypes.js.map