@ledgerhq/context-module 0.0.0-legacy-speculos-datasource-20250821095840 → 0.0.0-log-apdu-format-20251022090324

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 (618) hide show
  1. package/lib/cjs/package.json +1 -1
  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/calldata/data/CalldataDescriptorDataSource.js +2 -0
  13. package/lib/cjs/src/calldata/data/CalldataDescriptorDataSource.js.map +7 -0
  14. package/lib/cjs/src/calldata/data/HttpCalldataDescriptorDataSource.js +2 -0
  15. package/lib/cjs/src/calldata/data/HttpCalldataDescriptorDataSource.js.map +7 -0
  16. package/lib/cjs/src/calldata/data/HttpCalldataDescriptorDataSource.test.js +2 -0
  17. package/lib/cjs/src/calldata/data/HttpCalldataDescriptorDataSource.test.js.map +7 -0
  18. package/lib/cjs/src/calldata/data/dto/CalldataDto.js +2 -0
  19. package/lib/cjs/src/calldata/data/dto/CalldataDto.js.map +7 -0
  20. package/lib/cjs/src/calldata/di/calldataModuleFactory.js +2 -0
  21. package/lib/cjs/src/calldata/di/calldataModuleFactory.js.map +7 -0
  22. package/lib/cjs/src/calldata/di/calldataTypes.js +2 -0
  23. package/lib/cjs/src/calldata/di/calldataTypes.js.map +7 -0
  24. package/lib/cjs/src/calldata/domain/CalldataContextLoader.js +2 -0
  25. package/lib/cjs/src/calldata/domain/CalldataContextLoader.js.map +7 -0
  26. package/lib/cjs/src/calldata/domain/CalldataContextLoader.test.js +2 -0
  27. package/lib/cjs/src/calldata/domain/CalldataContextLoader.test.js.map +7 -0
  28. package/lib/cjs/src/config/model/ContextModuleConfig.js +1 -1
  29. package/lib/cjs/src/config/model/ContextModuleConfig.js.map +1 -1
  30. package/lib/cjs/src/di.js +1 -1
  31. package/lib/cjs/src/di.js.map +3 -3
  32. package/lib/cjs/src/dynamic-network/data/DynamicNetworkDataSource.js +2 -0
  33. package/lib/cjs/src/dynamic-network/data/DynamicNetworkDataSource.js.map +7 -0
  34. package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.js +2 -0
  35. package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.js.map +7 -0
  36. package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js +2 -0
  37. package/lib/cjs/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js.map +7 -0
  38. package/lib/cjs/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.js +2 -0
  39. package/lib/cjs/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.js.map +7 -0
  40. package/lib/cjs/src/dynamic-network/di/dynamicNetworkModuleFactory.js +2 -0
  41. package/lib/cjs/src/dynamic-network/di/dynamicNetworkModuleFactory.js.map +7 -0
  42. package/lib/cjs/src/dynamic-network/di/dynamicNetworkTypes.js +2 -0
  43. package/lib/cjs/src/dynamic-network/di/dynamicNetworkTypes.js.map +7 -0
  44. package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.js +2 -0
  45. package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.js.map +7 -0
  46. package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js +2 -0
  47. package/lib/cjs/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js.map +7 -0
  48. package/lib/cjs/src/dynamic-network/model/DynamicNetworkConfiguration.js +2 -0
  49. package/lib/cjs/src/dynamic-network/model/DynamicNetworkConfiguration.js.map +7 -0
  50. package/lib/cjs/src/external-plugin/domain/ExternalPluginContextLoader.js +1 -1
  51. package/lib/cjs/src/external-plugin/domain/ExternalPluginContextLoader.js.map +3 -3
  52. package/lib/cjs/src/external-plugin/domain/ExternalPluginContextLoader.test.js +1 -1
  53. package/lib/cjs/src/external-plugin/domain/ExternalPluginContextLoader.test.js.map +3 -3
  54. package/lib/cjs/src/index.js +1 -1
  55. package/lib/cjs/src/index.js.map +2 -2
  56. package/lib/cjs/src/nft/data/HttpNftDataSource.js +1 -1
  57. package/lib/cjs/src/nft/data/HttpNftDataSource.js.map +2 -2
  58. package/lib/cjs/src/nft/data/HttpNftDataSource.test.js +1 -1
  59. package/lib/cjs/src/nft/data/HttpNftDataSource.test.js.map +2 -2
  60. package/lib/cjs/src/nft/di/nftModuleFactory.js +1 -1
  61. package/lib/cjs/src/nft/di/nftModuleFactory.js.map +3 -3
  62. package/lib/cjs/src/nft/di/nftTypes.js +1 -1
  63. package/lib/cjs/src/nft/di/nftTypes.js.map +2 -2
  64. package/lib/cjs/src/nft/domain/NftContextFieldLoader.js +2 -0
  65. package/lib/cjs/src/nft/domain/NftContextFieldLoader.js.map +7 -0
  66. package/lib/cjs/src/nft/domain/NftContextFieldLoader.test.js +2 -0
  67. package/lib/cjs/src/nft/domain/NftContextFieldLoader.test.js.map +7 -0
  68. package/lib/cjs/src/nft/domain/NftContextLoader.js +1 -1
  69. package/lib/cjs/src/nft/domain/NftContextLoader.js.map +3 -3
  70. package/lib/cjs/src/nft/domain/NftContextLoader.test.js +1 -1
  71. package/lib/cjs/src/nft/domain/NftContextLoader.test.js.map +3 -3
  72. package/lib/cjs/src/pki/domain/DefaultPkiCertificateLoader.js +1 -1
  73. package/lib/cjs/src/pki/domain/DefaultPkiCertificateLoader.js.map +3 -3
  74. package/lib/cjs/src/pki/domain/DefaultPkiCertificateLoader.test.js +1 -1
  75. package/lib/cjs/src/pki/domain/DefaultPkiCertificateLoader.test.js.map +3 -3
  76. package/lib/cjs/src/pki/model/KeyUsage.js +1 -1
  77. package/lib/cjs/src/pki/model/KeyUsage.js.map +2 -2
  78. package/lib/cjs/src/pki/model/PkiCertificateInfo.js +1 -1
  79. package/lib/cjs/src/pki/model/PkiCertificateInfo.js.map +1 -1
  80. package/lib/cjs/src/proxy/data/HttpProxyDataSource.js +2 -0
  81. package/lib/cjs/src/proxy/data/HttpProxyDataSource.js.map +7 -0
  82. package/lib/cjs/src/proxy/data/HttpProxyDataSource.test.js +2 -0
  83. package/lib/cjs/src/proxy/data/HttpProxyDataSource.test.js.map +7 -0
  84. package/lib/cjs/src/proxy/data/HttpSafeProxyDataSource.js +2 -0
  85. package/lib/cjs/src/proxy/data/HttpSafeProxyDataSource.js.map +7 -0
  86. package/lib/cjs/src/proxy/data/HttpSafeProxyDataSource.test.js +2 -0
  87. package/lib/cjs/src/proxy/data/HttpSafeProxyDataSource.test.js.map +7 -0
  88. package/lib/cjs/src/proxy/data/ProxyDataSource.js +2 -0
  89. package/lib/cjs/src/proxy/data/ProxyDataSource.js.map +7 -0
  90. package/lib/cjs/src/proxy/data/dto/ProxyDelegateCallDto.js +2 -0
  91. package/lib/cjs/src/proxy/data/dto/ProxyDelegateCallDto.js.map +7 -0
  92. package/lib/cjs/src/{transaction → proxy}/data/dto/ProxyImplementationAddressDto.js.map +1 -1
  93. package/lib/cjs/src/proxy/data/dto/SafeProxyImplementationAddressDto.js +2 -0
  94. package/lib/cjs/src/proxy/data/dto/SafeProxyImplementationAddressDto.js.map +7 -0
  95. package/lib/cjs/src/proxy/di/proxyModuleFactory.js +2 -0
  96. package/lib/cjs/src/proxy/di/proxyModuleFactory.js.map +7 -0
  97. package/lib/cjs/src/proxy/di/proxyModuleFactory.test.js +2 -0
  98. package/lib/cjs/src/proxy/di/proxyModuleFactory.test.js.map +7 -0
  99. package/lib/cjs/src/proxy/di/proxyTypes.js +2 -0
  100. package/lib/cjs/src/proxy/di/proxyTypes.js.map +7 -0
  101. package/lib/cjs/src/proxy/domain/ProxyContextFieldLoader.js +2 -0
  102. package/lib/cjs/src/proxy/domain/ProxyContextFieldLoader.js.map +7 -0
  103. package/lib/cjs/src/proxy/domain/ProxyContextFieldLoader.test.js +2 -0
  104. package/lib/cjs/src/proxy/domain/ProxyContextFieldLoader.test.js.map +7 -0
  105. package/lib/cjs/src/proxy/model/ProxyDelegateCall.js +2 -0
  106. package/lib/cjs/src/proxy/model/ProxyDelegateCall.js.map +7 -0
  107. package/lib/cjs/src/safe/data/HttpSafeAccountDataSource.js +2 -0
  108. package/lib/cjs/src/safe/data/HttpSafeAccountDataSource.js.map +7 -0
  109. package/lib/cjs/src/safe/data/HttpSafeAccountDataSource.test.js +2 -0
  110. package/lib/cjs/src/safe/data/HttpSafeAccountDataSource.test.js.map +7 -0
  111. package/lib/cjs/src/safe/data/SafeAccountDataSource.js +2 -0
  112. package/lib/cjs/src/safe/data/SafeAccountDataSource.js.map +7 -0
  113. package/lib/cjs/src/safe/data/dto/SafeAccountDto.js +2 -0
  114. package/lib/cjs/src/safe/data/dto/SafeAccountDto.js.map +7 -0
  115. package/lib/cjs/src/safe/di/safeModuleFactory.js +2 -0
  116. package/lib/cjs/src/safe/di/safeModuleFactory.js.map +7 -0
  117. package/lib/cjs/src/safe/di/safeModuleFactory.test.js +2 -0
  118. package/lib/cjs/src/safe/di/safeModuleFactory.test.js.map +7 -0
  119. package/lib/cjs/src/safe/di/safeTypes.js +2 -0
  120. package/lib/cjs/src/safe/di/safeTypes.js.map +7 -0
  121. package/lib/cjs/src/safe/domain/SafeAddressLoader.js +2 -0
  122. package/lib/cjs/src/safe/domain/SafeAddressLoader.js.map +7 -0
  123. package/lib/cjs/src/safe/domain/SafeAddressLoader.test.js +2 -0
  124. package/lib/cjs/src/safe/domain/SafeAddressLoader.test.js.map +7 -0
  125. package/lib/cjs/src/shared/domain/ContextFieldLoader.js +2 -0
  126. package/lib/cjs/src/shared/domain/ContextFieldLoader.js.map +7 -0
  127. package/lib/cjs/src/shared/domain/ContextLoader.js +1 -1
  128. package/lib/cjs/src/shared/domain/ContextLoader.js.map +1 -1
  129. package/lib/cjs/src/shared/model/ClearSignContext.js +1 -1
  130. package/lib/cjs/src/shared/model/ClearSignContext.js.map +3 -3
  131. package/lib/cjs/src/shared/model/TransactionSubset.js +1 -1
  132. package/lib/cjs/src/shared/model/TransactionSubset.js.map +1 -1
  133. package/lib/cjs/src/shared/model/TypedDataClearSignContext.js +1 -1
  134. package/lib/cjs/src/shared/model/TypedDataClearSignContext.js.map +3 -3
  135. package/lib/cjs/src/shared/model/TypedDataContext.js +1 -1
  136. package/lib/cjs/src/shared/model/TypedDataContext.js.map +1 -1
  137. package/lib/cjs/src/shared/utils/KeyUsageMapper.js +1 -1
  138. package/lib/cjs/src/shared/utils/KeyUsageMapper.js.map +2 -2
  139. package/lib/cjs/src/shared/utils/KeyUsageMapper.test.js +1 -1
  140. package/lib/cjs/src/shared/utils/KeyUsageMapper.test.js.map +2 -2
  141. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.js +1 -1
  142. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.js.map +2 -2
  143. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js +1 -1
  144. package/lib/cjs/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js.map +2 -2
  145. package/lib/cjs/src/token/data/HttpTokenDataSource.js +1 -1
  146. package/lib/cjs/src/token/data/HttpTokenDataSource.js.map +2 -2
  147. package/lib/cjs/src/token/data/HttpTokenDataSource.test.js +1 -1
  148. package/lib/cjs/src/token/data/HttpTokenDataSource.test.js.map +2 -2
  149. package/lib/cjs/src/token/di/tokenModuleFactory.js +1 -1
  150. package/lib/cjs/src/token/di/tokenModuleFactory.js.map +3 -3
  151. package/lib/cjs/src/token/di/tokenTypes.js +1 -1
  152. package/lib/cjs/src/token/di/tokenTypes.js.map +2 -2
  153. package/lib/cjs/src/token/domain/TokenContextFieldLoader.js +2 -0
  154. package/lib/cjs/src/token/domain/TokenContextFieldLoader.js.map +7 -0
  155. package/lib/cjs/src/token/domain/TokenContextFieldLoader.test.js +2 -0
  156. package/lib/cjs/src/token/domain/TokenContextFieldLoader.test.js.map +7 -0
  157. package/lib/cjs/src/token/domain/TokenContextLoader.js +1 -1
  158. package/lib/cjs/src/token/domain/TokenContextLoader.js.map +3 -3
  159. package/lib/cjs/src/token/domain/TokenContextLoader.test.js +1 -1
  160. package/lib/cjs/src/token/domain/TokenContextLoader.test.js.map +3 -3
  161. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.js +1 -1
  162. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.js.map +3 -3
  163. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.test.js +1 -1
  164. package/lib/cjs/src/trusted-name/data/HttpTrustedNameDataSource.test.js.map +2 -2
  165. package/lib/cjs/src/trusted-name/data/TrustedNameDataSource.js +1 -1
  166. package/lib/cjs/src/trusted-name/data/TrustedNameDataSource.js.map +1 -1
  167. package/lib/cjs/src/trusted-name/data/TrustedNameDto.js +1 -1
  168. package/lib/cjs/src/trusted-name/data/TrustedNameDto.js.map +1 -1
  169. package/lib/cjs/src/trusted-name/di/trustedNameModuleFactory.js +1 -1
  170. package/lib/cjs/src/trusted-name/di/trustedNameModuleFactory.js.map +3 -3
  171. package/lib/cjs/src/trusted-name/di/trustedNameTypes.js +1 -1
  172. package/lib/cjs/src/trusted-name/di/trustedNameTypes.js.map +2 -2
  173. package/lib/cjs/src/trusted-name/domain/TrustedNameContextFieldLoader.js +2 -0
  174. package/lib/cjs/src/trusted-name/domain/TrustedNameContextFieldLoader.js.map +7 -0
  175. package/lib/cjs/src/trusted-name/domain/TrustedNameContextFieldLoader.test.js +2 -0
  176. package/lib/cjs/src/trusted-name/domain/TrustedNameContextFieldLoader.test.js.map +7 -0
  177. package/lib/cjs/src/trusted-name/domain/TrustedNameContextLoader.js +1 -1
  178. package/lib/cjs/src/trusted-name/domain/TrustedNameContextLoader.js.map +3 -3
  179. package/lib/cjs/src/trusted-name/domain/TrustedNameContextLoader.test.js +1 -1
  180. package/lib/cjs/src/trusted-name/domain/TrustedNameContextLoader.test.js.map +3 -3
  181. package/lib/cjs/src/typed-data/data/FiltersDto.js +1 -1
  182. package/lib/cjs/src/typed-data/data/FiltersDto.js.map +1 -1
  183. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.js +1 -1
  184. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.js.map +3 -3
  185. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.test.js +1 -1
  186. package/lib/cjs/src/typed-data/data/HttpTypedDataDataSource.test.js.map +3 -3
  187. package/lib/cjs/src/typed-data/data/TypedDataDataSource.js +1 -1
  188. package/lib/cjs/src/typed-data/data/TypedDataDataSource.js.map +1 -1
  189. package/lib/cjs/src/typed-data/domain/DefaultTypedDataContextLoader.js +1 -1
  190. package/lib/cjs/src/typed-data/domain/DefaultTypedDataContextLoader.js.map +3 -3
  191. package/lib/cjs/src/typed-data/domain/DefaultTypedDataContextLoader.test.js +1 -1
  192. package/lib/cjs/src/typed-data/domain/DefaultTypedDataContextLoader.test.js.map +3 -3
  193. package/lib/cjs/src/uniswap/constants/uniswap.js +1 -1
  194. package/lib/cjs/src/uniswap/constants/uniswap.js.map +3 -3
  195. package/lib/cjs/src/uniswap/domain/UniswapContextLoader.js +1 -1
  196. package/lib/cjs/src/uniswap/domain/UniswapContextLoader.js.map +3 -3
  197. package/lib/cjs/src/uniswap/domain/UniswapContextLoader.test.js +1 -1
  198. package/lib/cjs/src/uniswap/domain/UniswapContextLoader.test.js.map +3 -3
  199. package/lib/esm/package.json +1 -1
  200. package/lib/esm/src/ContextModuleBuilder.js +1 -1
  201. package/lib/esm/src/ContextModuleBuilder.js.map +3 -3
  202. package/lib/esm/src/ContextModuleBuilder.test.js +1 -1
  203. package/lib/esm/src/ContextModuleBuilder.test.js.map +3 -3
  204. package/lib/esm/src/DefaultContextModule.js +1 -1
  205. package/lib/esm/src/DefaultContextModule.js.map +3 -3
  206. package/lib/esm/src/DefaultContextModule.test.js +1 -1
  207. package/lib/esm/src/DefaultContextModule.test.js.map +3 -3
  208. package/lib/esm/src/calldata/data/CalldataDescriptorDataSource.js +1 -0
  209. package/lib/esm/src/calldata/data/HttpCalldataDescriptorDataSource.js +2 -0
  210. package/lib/esm/src/calldata/data/HttpCalldataDescriptorDataSource.js.map +7 -0
  211. package/lib/esm/src/calldata/data/HttpCalldataDescriptorDataSource.test.js +2 -0
  212. package/lib/esm/src/calldata/data/HttpCalldataDescriptorDataSource.test.js.map +7 -0
  213. package/lib/esm/src/calldata/di/calldataModuleFactory.js +2 -0
  214. package/lib/esm/src/calldata/di/calldataModuleFactory.js.map +7 -0
  215. package/lib/esm/src/calldata/di/calldataTypes.js +2 -0
  216. package/lib/esm/src/calldata/di/calldataTypes.js.map +7 -0
  217. package/lib/esm/src/calldata/domain/CalldataContextLoader.js +2 -0
  218. package/lib/esm/src/calldata/domain/CalldataContextLoader.js.map +7 -0
  219. package/lib/esm/src/calldata/domain/CalldataContextLoader.test.js +2 -0
  220. package/lib/esm/src/calldata/domain/CalldataContextLoader.test.js.map +7 -0
  221. package/lib/esm/src/di.js +1 -1
  222. package/lib/esm/src/di.js.map +3 -3
  223. package/lib/esm/src/dynamic-network/data/DynamicNetworkDataSource.js +1 -0
  224. package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.js +2 -0
  225. package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.js.map +7 -0
  226. package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js +2 -0
  227. package/lib/esm/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.js.map +7 -0
  228. package/lib/esm/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.js +1 -0
  229. package/lib/esm/src/dynamic-network/di/dynamicNetworkModuleFactory.js +2 -0
  230. package/lib/esm/src/dynamic-network/di/dynamicNetworkModuleFactory.js.map +7 -0
  231. package/lib/esm/src/dynamic-network/di/dynamicNetworkTypes.js +2 -0
  232. package/lib/esm/src/dynamic-network/di/dynamicNetworkTypes.js.map +7 -0
  233. package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.js +2 -0
  234. package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.js.map +7 -0
  235. package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js +2 -0
  236. package/lib/esm/src/dynamic-network/domain/DynamicNetworkContextLoader.test.js.map +7 -0
  237. package/lib/esm/src/dynamic-network/model/DynamicNetworkConfiguration.js +1 -0
  238. package/lib/esm/src/external-plugin/domain/ExternalPluginContextLoader.js +1 -1
  239. package/lib/esm/src/external-plugin/domain/ExternalPluginContextLoader.js.map +3 -3
  240. package/lib/esm/src/external-plugin/domain/ExternalPluginContextLoader.test.js +1 -1
  241. package/lib/esm/src/external-plugin/domain/ExternalPluginContextLoader.test.js.map +3 -3
  242. package/lib/esm/src/index.js +1 -1
  243. package/lib/esm/src/index.js.map +2 -2
  244. package/lib/esm/src/nft/data/HttpNftDataSource.js +1 -1
  245. package/lib/esm/src/nft/data/HttpNftDataSource.js.map +2 -2
  246. package/lib/esm/src/nft/data/HttpNftDataSource.test.js +1 -1
  247. package/lib/esm/src/nft/data/HttpNftDataSource.test.js.map +2 -2
  248. package/lib/esm/src/nft/di/nftModuleFactory.js +1 -1
  249. package/lib/esm/src/nft/di/nftModuleFactory.js.map +3 -3
  250. package/lib/esm/src/nft/di/nftTypes.js +1 -1
  251. package/lib/esm/src/nft/di/nftTypes.js.map +2 -2
  252. package/lib/esm/src/nft/domain/NftContextFieldLoader.js +2 -0
  253. package/lib/esm/src/nft/domain/NftContextFieldLoader.js.map +7 -0
  254. package/lib/esm/src/nft/domain/NftContextFieldLoader.test.js +2 -0
  255. package/lib/esm/src/nft/domain/NftContextFieldLoader.test.js.map +7 -0
  256. package/lib/esm/src/nft/domain/NftContextLoader.js +1 -1
  257. package/lib/esm/src/nft/domain/NftContextLoader.js.map +3 -3
  258. package/lib/esm/src/nft/domain/NftContextLoader.test.js +1 -1
  259. package/lib/esm/src/nft/domain/NftContextLoader.test.js.map +3 -3
  260. package/lib/esm/src/pki/domain/DefaultPkiCertificateLoader.js +1 -1
  261. package/lib/esm/src/pki/domain/DefaultPkiCertificateLoader.js.map +3 -3
  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/pki/model/KeyUsage.js +1 -1
  265. package/lib/esm/src/pki/model/KeyUsage.js.map +2 -2
  266. package/lib/esm/src/proxy/data/HttpProxyDataSource.js +2 -0
  267. package/lib/esm/src/proxy/data/HttpProxyDataSource.js.map +7 -0
  268. package/lib/esm/src/proxy/data/HttpProxyDataSource.test.js +2 -0
  269. package/lib/esm/src/proxy/data/HttpProxyDataSource.test.js.map +7 -0
  270. package/lib/esm/src/proxy/data/HttpSafeProxyDataSource.js +2 -0
  271. package/lib/esm/src/proxy/data/HttpSafeProxyDataSource.js.map +7 -0
  272. package/lib/esm/src/proxy/data/HttpSafeProxyDataSource.test.js +2 -0
  273. package/lib/esm/src/proxy/data/HttpSafeProxyDataSource.test.js.map +7 -0
  274. package/lib/esm/src/proxy/data/ProxyDataSource.js +1 -0
  275. package/lib/esm/src/proxy/data/dto/ProxyImplementationAddressDto.js.map +7 -0
  276. package/lib/esm/src/proxy/data/dto/SafeProxyImplementationAddressDto.js +1 -0
  277. package/lib/esm/src/proxy/data/dto/SafeProxyImplementationAddressDto.js.map +7 -0
  278. package/lib/esm/src/proxy/di/proxyModuleFactory.js +2 -0
  279. package/lib/esm/src/proxy/di/proxyModuleFactory.js.map +7 -0
  280. package/lib/esm/src/proxy/di/proxyModuleFactory.test.js +2 -0
  281. package/lib/esm/src/proxy/di/proxyModuleFactory.test.js.map +7 -0
  282. package/lib/esm/src/proxy/di/proxyTypes.js +2 -0
  283. package/lib/esm/src/proxy/di/proxyTypes.js.map +7 -0
  284. package/lib/esm/src/proxy/domain/ProxyContextFieldLoader.js +2 -0
  285. package/lib/esm/src/proxy/domain/ProxyContextFieldLoader.js.map +7 -0
  286. package/lib/esm/src/proxy/domain/ProxyContextFieldLoader.test.js +2 -0
  287. package/lib/esm/src/proxy/domain/ProxyContextFieldLoader.test.js.map +7 -0
  288. package/lib/esm/src/proxy/model/ProxyDelegateCall.js.map +7 -0
  289. package/lib/esm/src/safe/data/HttpSafeAccountDataSource.js +2 -0
  290. package/lib/esm/src/safe/data/HttpSafeAccountDataSource.js.map +7 -0
  291. package/lib/esm/src/safe/data/HttpSafeAccountDataSource.test.js +2 -0
  292. package/lib/esm/src/safe/data/HttpSafeAccountDataSource.test.js.map +7 -0
  293. package/lib/esm/src/safe/data/SafeAccountDataSource.js +1 -0
  294. package/lib/esm/src/safe/data/SafeAccountDataSource.js.map +7 -0
  295. package/lib/esm/src/safe/data/dto/SafeAccountDto.js +1 -0
  296. package/lib/esm/src/safe/data/dto/SafeAccountDto.js.map +7 -0
  297. package/lib/esm/src/safe/di/safeModuleFactory.js +2 -0
  298. package/lib/esm/src/safe/di/safeModuleFactory.js.map +7 -0
  299. package/lib/esm/src/safe/di/safeModuleFactory.test.js +2 -0
  300. package/lib/esm/src/safe/di/safeModuleFactory.test.js.map +7 -0
  301. package/lib/esm/src/safe/di/safeTypes.js +2 -0
  302. package/lib/esm/src/safe/di/safeTypes.js.map +7 -0
  303. package/lib/esm/src/safe/domain/SafeAddressLoader.js +2 -0
  304. package/lib/esm/src/safe/domain/SafeAddressLoader.js.map +7 -0
  305. package/lib/esm/src/safe/domain/SafeAddressLoader.test.js +2 -0
  306. package/lib/esm/src/safe/domain/SafeAddressLoader.test.js.map +7 -0
  307. package/lib/esm/src/shared/domain/ContextFieldLoader.js +1 -0
  308. package/lib/esm/src/shared/domain/ContextFieldLoader.js.map +7 -0
  309. package/lib/esm/src/shared/model/ClearSignContext.js +1 -1
  310. package/lib/esm/src/shared/model/ClearSignContext.js.map +3 -3
  311. package/lib/esm/src/shared/model/TypedDataClearSignContext.js +1 -1
  312. package/lib/esm/src/shared/model/TypedDataClearSignContext.js.map +3 -3
  313. package/lib/esm/src/shared/utils/KeyUsageMapper.js +1 -1
  314. package/lib/esm/src/shared/utils/KeyUsageMapper.js.map +2 -2
  315. package/lib/esm/src/shared/utils/KeyUsageMapper.test.js +1 -1
  316. package/lib/esm/src/shared/utils/KeyUsageMapper.test.js.map +2 -2
  317. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.js +1 -1
  318. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.js.map +2 -2
  319. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js +1 -1
  320. package/lib/esm/src/solana/data/HttpSolanaOwnerInfoDataSource.test.js.map +2 -2
  321. package/lib/esm/src/token/data/HttpTokenDataSource.js +1 -1
  322. package/lib/esm/src/token/data/HttpTokenDataSource.js.map +2 -2
  323. package/lib/esm/src/token/data/HttpTokenDataSource.test.js +1 -1
  324. package/lib/esm/src/token/data/HttpTokenDataSource.test.js.map +2 -2
  325. package/lib/esm/src/token/di/tokenModuleFactory.js +1 -1
  326. package/lib/esm/src/token/di/tokenModuleFactory.js.map +3 -3
  327. package/lib/esm/src/token/di/tokenTypes.js +1 -1
  328. package/lib/esm/src/token/di/tokenTypes.js.map +2 -2
  329. package/lib/esm/src/token/domain/TokenContextFieldLoader.js +2 -0
  330. package/lib/esm/src/token/domain/TokenContextFieldLoader.js.map +7 -0
  331. package/lib/esm/src/token/domain/TokenContextFieldLoader.test.js +2 -0
  332. package/lib/esm/src/token/domain/TokenContextFieldLoader.test.js.map +7 -0
  333. package/lib/esm/src/token/domain/TokenContextLoader.js +1 -1
  334. package/lib/esm/src/token/domain/TokenContextLoader.js.map +3 -3
  335. package/lib/esm/src/token/domain/TokenContextLoader.test.js +1 -1
  336. package/lib/esm/src/token/domain/TokenContextLoader.test.js.map +3 -3
  337. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.js +1 -1
  338. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.js.map +3 -3
  339. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.test.js +1 -1
  340. package/lib/esm/src/trusted-name/data/HttpTrustedNameDataSource.test.js.map +2 -2
  341. package/lib/esm/src/trusted-name/di/trustedNameModuleFactory.js +1 -1
  342. package/lib/esm/src/trusted-name/di/trustedNameModuleFactory.js.map +3 -3
  343. package/lib/esm/src/trusted-name/di/trustedNameTypes.js +1 -1
  344. package/lib/esm/src/trusted-name/di/trustedNameTypes.js.map +2 -2
  345. package/lib/esm/src/trusted-name/domain/TrustedNameContextFieldLoader.js +2 -0
  346. package/lib/esm/src/trusted-name/domain/TrustedNameContextFieldLoader.js.map +7 -0
  347. package/lib/esm/src/trusted-name/domain/TrustedNameContextFieldLoader.test.js +2 -0
  348. package/lib/esm/src/trusted-name/domain/TrustedNameContextFieldLoader.test.js.map +7 -0
  349. package/lib/esm/src/trusted-name/domain/TrustedNameContextLoader.js +1 -1
  350. package/lib/esm/src/trusted-name/domain/TrustedNameContextLoader.js.map +3 -3
  351. package/lib/esm/src/trusted-name/domain/TrustedNameContextLoader.test.js +1 -1
  352. package/lib/esm/src/trusted-name/domain/TrustedNameContextLoader.test.js.map +3 -3
  353. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.js +1 -1
  354. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.js.map +3 -3
  355. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.test.js +1 -1
  356. package/lib/esm/src/typed-data/data/HttpTypedDataDataSource.test.js.map +3 -3
  357. package/lib/esm/src/typed-data/domain/DefaultTypedDataContextLoader.js +1 -1
  358. package/lib/esm/src/typed-data/domain/DefaultTypedDataContextLoader.js.map +3 -3
  359. package/lib/esm/src/typed-data/domain/DefaultTypedDataContextLoader.test.js +1 -1
  360. package/lib/esm/src/typed-data/domain/DefaultTypedDataContextLoader.test.js.map +3 -3
  361. package/lib/esm/src/uniswap/constants/uniswap.js +1 -1
  362. package/lib/esm/src/uniswap/constants/uniswap.js.map +3 -3
  363. package/lib/esm/src/uniswap/domain/UniswapContextLoader.js +1 -1
  364. package/lib/esm/src/uniswap/domain/UniswapContextLoader.js.map +3 -3
  365. package/lib/esm/src/uniswap/domain/UniswapContextLoader.test.js +1 -1
  366. package/lib/esm/src/uniswap/domain/UniswapContextLoader.test.js.map +3 -3
  367. package/lib/types/src/ContextModule.d.ts +3 -4
  368. package/lib/types/src/ContextModule.d.ts.map +1 -1
  369. package/lib/types/src/ContextModuleBuilder.d.ts +8 -1
  370. package/lib/types/src/ContextModuleBuilder.d.ts.map +1 -1
  371. package/lib/types/src/DefaultContextModule.d.ts +4 -3
  372. package/lib/types/src/DefaultContextModule.d.ts.map +1 -1
  373. package/lib/types/src/{transaction/data/TransactionDataSource.d.ts → calldata/data/CalldataDescriptorDataSource.d.ts} +4 -4
  374. package/lib/types/src/calldata/data/CalldataDescriptorDataSource.d.ts.map +1 -0
  375. package/lib/types/src/{transaction/data/HttpTransactionDataSource.d.ts → calldata/data/HttpCalldataDescriptorDataSource.d.ts} +6 -5
  376. package/lib/types/src/calldata/data/HttpCalldataDescriptorDataSource.d.ts.map +1 -0
  377. package/lib/types/src/calldata/data/HttpCalldataDescriptorDataSource.test.d.ts +2 -0
  378. package/lib/types/src/calldata/data/HttpCalldataDescriptorDataSource.test.d.ts.map +1 -0
  379. package/lib/types/src/{transaction → calldata}/data/dto/CalldataDto.d.ts +10 -1
  380. package/lib/types/src/calldata/data/dto/CalldataDto.d.ts.map +1 -0
  381. package/lib/types/src/calldata/di/calldataModuleFactory.d.ts +3 -0
  382. package/lib/types/src/calldata/di/calldataModuleFactory.d.ts.map +1 -0
  383. package/lib/types/src/calldata/di/calldataTypes.d.ts +6 -0
  384. package/lib/types/src/calldata/di/calldataTypes.d.ts.map +1 -0
  385. package/lib/types/src/calldata/domain/CalldataContextLoader.d.ts +23 -0
  386. package/lib/types/src/calldata/domain/CalldataContextLoader.d.ts.map +1 -0
  387. package/lib/types/src/calldata/domain/CalldataContextLoader.test.d.ts +2 -0
  388. package/lib/types/src/calldata/domain/CalldataContextLoader.test.d.ts.map +1 -0
  389. package/lib/types/src/config/model/ContextModuleConfig.d.ts +8 -1
  390. package/lib/types/src/config/model/ContextModuleConfig.d.ts.map +1 -1
  391. package/lib/types/src/di.d.ts.map +1 -1
  392. package/lib/types/src/dynamic-network/data/DynamicNetworkDataSource.d.ts +6 -0
  393. package/lib/types/src/dynamic-network/data/DynamicNetworkDataSource.d.ts.map +1 -0
  394. package/lib/types/src/dynamic-network/data/HttpDynamicNetworkDataSource.d.ts +13 -0
  395. package/lib/types/src/dynamic-network/data/HttpDynamicNetworkDataSource.d.ts.map +1 -0
  396. package/lib/types/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.d.ts +2 -0
  397. package/lib/types/src/dynamic-network/data/HttpDynamicNetworkDataSource.test.d.ts.map +1 -0
  398. package/lib/types/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.d.ts +14 -0
  399. package/lib/types/src/dynamic-network/data/dto/DynamicNetworkApiResponseDto.d.ts.map +1 -0
  400. package/lib/types/src/dynamic-network/di/dynamicNetworkModuleFactory.d.ts +3 -0
  401. package/lib/types/src/dynamic-network/di/dynamicNetworkModuleFactory.d.ts.map +1 -0
  402. package/lib/types/src/dynamic-network/di/dynamicNetworkTypes.d.ts +5 -0
  403. package/lib/types/src/dynamic-network/di/dynamicNetworkTypes.d.ts.map +1 -0
  404. package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.d.ts +19 -0
  405. package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.d.ts.map +1 -0
  406. package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.test.d.ts +2 -0
  407. package/lib/types/src/dynamic-network/domain/DynamicNetworkContextLoader.test.d.ts.map +1 -0
  408. package/lib/types/src/dynamic-network/model/DynamicNetworkConfiguration.d.ts +16 -0
  409. package/lib/types/src/dynamic-network/model/DynamicNetworkConfiguration.d.ts.map +1 -0
  410. package/lib/types/src/external-plugin/domain/ExternalPluginContextLoader.d.ts +20 -5
  411. package/lib/types/src/external-plugin/domain/ExternalPluginContextLoader.d.ts.map +1 -1
  412. package/lib/types/src/index.d.ts +42 -1
  413. package/lib/types/src/index.d.ts.map +1 -1
  414. package/lib/types/src/nft/di/nftModuleFactory.d.ts.map +1 -1
  415. package/lib/types/src/nft/di/nftTypes.d.ts +1 -0
  416. package/lib/types/src/nft/di/nftTypes.d.ts.map +1 -1
  417. package/lib/types/src/nft/domain/NftContextFieldLoader.d.ts +15 -0
  418. package/lib/types/src/nft/domain/NftContextFieldLoader.d.ts.map +1 -0
  419. package/lib/types/src/nft/domain/NftContextFieldLoader.test.d.ts +2 -0
  420. package/lib/types/src/nft/domain/NftContextFieldLoader.test.d.ts.map +1 -0
  421. package/lib/types/src/nft/domain/NftContextLoader.d.ts +10 -5
  422. package/lib/types/src/nft/domain/NftContextLoader.d.ts.map +1 -1
  423. package/lib/types/src/pki/domain/DefaultPkiCertificateLoader.d.ts.map +1 -1
  424. package/lib/types/src/pki/model/KeyUsage.d.ts +2 -1
  425. package/lib/types/src/pki/model/KeyUsage.d.ts.map +1 -1
  426. package/lib/types/src/pki/model/PkiCertificateInfo.d.ts +1 -2
  427. package/lib/types/src/pki/model/PkiCertificateInfo.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.map +1 -0
  431. package/lib/types/src/proxy/data/HttpSafeProxyDataSource.d.ts +13 -0
  432. package/lib/types/src/proxy/data/HttpSafeProxyDataSource.d.ts.map +1 -0
  433. package/lib/types/src/proxy/data/HttpSafeProxyDataSource.test.d.ts +2 -0
  434. package/lib/types/src/proxy/data/HttpSafeProxyDataSource.test.d.ts.map +1 -0
  435. package/lib/types/src/proxy/data/ProxyDataSource.d.ts +17 -0
  436. package/lib/types/src/proxy/data/ProxyDataSource.d.ts.map +1 -0
  437. package/lib/types/src/proxy/data/dto/ProxyDelegateCallDto.d.ts +5 -0
  438. package/lib/types/src/proxy/data/dto/ProxyDelegateCallDto.d.ts.map +1 -0
  439. package/lib/types/src/proxy/data/dto/ProxyImplementationAddressDto.d.ts.map +1 -0
  440. package/lib/types/src/proxy/data/dto/SafeProxyImplementationAddressDto.d.ts +10 -0
  441. package/lib/types/src/proxy/data/dto/SafeProxyImplementationAddressDto.d.ts.map +1 -0
  442. package/lib/types/src/proxy/di/proxyModuleFactory.d.ts +4 -0
  443. package/lib/types/src/proxy/di/proxyModuleFactory.d.ts.map +1 -0
  444. package/lib/types/src/proxy/di/proxyModuleFactory.test.d.ts +2 -0
  445. package/lib/types/src/proxy/di/proxyModuleFactory.test.d.ts.map +1 -0
  446. package/lib/types/src/proxy/di/proxyTypes.d.ts +5 -0
  447. package/lib/types/src/proxy/di/proxyTypes.d.ts.map +1 -0
  448. package/lib/types/src/proxy/domain/ProxyContextFieldLoader.d.ts +21 -0
  449. package/lib/types/src/proxy/domain/ProxyContextFieldLoader.d.ts.map +1 -0
  450. package/lib/types/src/proxy/domain/ProxyContextFieldLoader.test.d.ts +2 -0
  451. package/lib/types/src/proxy/domain/ProxyContextFieldLoader.test.d.ts.map +1 -0
  452. package/lib/types/src/proxy/model/ProxyDelegateCall.d.ts +7 -0
  453. package/lib/types/src/proxy/model/ProxyDelegateCall.d.ts.map +1 -0
  454. package/lib/types/src/safe/data/HttpSafeAccountDataSource.d.ts +11 -0
  455. package/lib/types/src/safe/data/HttpSafeAccountDataSource.d.ts.map +1 -0
  456. package/lib/types/src/safe/data/HttpSafeAccountDataSource.test.d.ts +2 -0
  457. package/lib/types/src/safe/data/HttpSafeAccountDataSource.test.d.ts.map +1 -0
  458. package/lib/types/src/safe/data/SafeAccountDataSource.d.ts +20 -0
  459. package/lib/types/src/safe/data/SafeAccountDataSource.d.ts.map +1 -0
  460. package/lib/types/src/safe/data/dto/SafeAccountDto.d.ts +10 -0
  461. package/lib/types/src/safe/data/dto/SafeAccountDto.d.ts.map +1 -0
  462. package/lib/types/src/safe/di/safeModuleFactory.d.ts +3 -0
  463. package/lib/types/src/safe/di/safeModuleFactory.d.ts.map +1 -0
  464. package/lib/types/src/safe/di/safeModuleFactory.test.d.ts +2 -0
  465. package/lib/types/src/safe/di/safeModuleFactory.test.d.ts.map +1 -0
  466. package/lib/types/src/safe/di/safeTypes.d.ts +5 -0
  467. package/lib/types/src/safe/di/safeTypes.d.ts.map +1 -0
  468. package/lib/types/src/safe/domain/SafeAddressLoader.d.ts +19 -0
  469. package/lib/types/src/safe/domain/SafeAddressLoader.d.ts.map +1 -0
  470. package/lib/types/src/safe/domain/SafeAddressLoader.test.d.ts +2 -0
  471. package/lib/types/src/safe/domain/SafeAddressLoader.test.d.ts.map +1 -0
  472. package/lib/types/src/shared/domain/ContextFieldLoader.d.ts +15 -0
  473. package/lib/types/src/shared/domain/ContextFieldLoader.d.ts.map +1 -0
  474. package/lib/types/src/shared/domain/ContextLoader.d.ts +13 -5
  475. package/lib/types/src/shared/domain/ContextLoader.d.ts.map +1 -1
  476. package/lib/types/src/shared/model/ClearSignContext.d.ts +32 -9
  477. package/lib/types/src/shared/model/ClearSignContext.d.ts.map +1 -1
  478. package/lib/types/src/shared/model/TransactionSubset.d.ts +1 -0
  479. package/lib/types/src/shared/model/TransactionSubset.d.ts.map +1 -1
  480. package/lib/types/src/shared/model/TypedDataClearSignContext.d.ts +33 -1
  481. package/lib/types/src/shared/model/TypedDataClearSignContext.d.ts.map +1 -1
  482. package/lib/types/src/shared/model/TypedDataContext.d.ts +3 -0
  483. package/lib/types/src/shared/model/TypedDataContext.d.ts.map +1 -1
  484. package/lib/types/src/shared/utils/KeyUsageMapper.d.ts +1 -2
  485. package/lib/types/src/shared/utils/KeyUsageMapper.d.ts.map +1 -1
  486. package/lib/types/src/token/data/HttpTokenDataSource.d.ts.map +1 -1
  487. package/lib/types/src/token/di/tokenModuleFactory.d.ts.map +1 -1
  488. package/lib/types/src/token/di/tokenTypes.d.ts +1 -0
  489. package/lib/types/src/token/di/tokenTypes.d.ts.map +1 -1
  490. package/lib/types/src/token/domain/TokenContextFieldLoader.d.ts +14 -0
  491. package/lib/types/src/token/domain/TokenContextFieldLoader.d.ts.map +1 -0
  492. package/lib/types/src/token/domain/TokenContextFieldLoader.test.d.ts +2 -0
  493. package/lib/types/src/token/domain/TokenContextFieldLoader.test.d.ts.map +1 -0
  494. package/lib/types/src/token/domain/TokenContextLoader.d.ts +10 -5
  495. package/lib/types/src/token/domain/TokenContextLoader.d.ts.map +1 -1
  496. package/lib/types/src/trusted-name/data/HttpTrustedNameDataSource.d.ts +7 -3
  497. package/lib/types/src/trusted-name/data/HttpTrustedNameDataSource.d.ts.map +1 -1
  498. package/lib/types/src/trusted-name/data/TrustedNameDataSource.d.ts +7 -2
  499. package/lib/types/src/trusted-name/data/TrustedNameDataSource.d.ts.map +1 -1
  500. package/lib/types/src/trusted-name/data/TrustedNameDto.d.ts +4 -5
  501. package/lib/types/src/trusted-name/data/TrustedNameDto.d.ts.map +1 -1
  502. package/lib/types/src/trusted-name/di/trustedNameModuleFactory.d.ts.map +1 -1
  503. package/lib/types/src/trusted-name/di/trustedNameTypes.d.ts +1 -0
  504. package/lib/types/src/trusted-name/di/trustedNameTypes.d.ts.map +1 -1
  505. package/lib/types/src/trusted-name/domain/TrustedNameContextFieldLoader.d.ts +22 -0
  506. package/lib/types/src/trusted-name/domain/TrustedNameContextFieldLoader.d.ts.map +1 -0
  507. package/lib/types/src/trusted-name/domain/TrustedNameContextFieldLoader.test.d.ts +2 -0
  508. package/lib/types/src/trusted-name/domain/TrustedNameContextFieldLoader.test.d.ts.map +1 -0
  509. package/lib/types/src/trusted-name/domain/TrustedNameContextLoader.d.ts +14 -6
  510. package/lib/types/src/trusted-name/domain/TrustedNameContextLoader.d.ts.map +1 -1
  511. package/lib/types/src/typed-data/data/FiltersDto.d.ts +32 -2
  512. package/lib/types/src/typed-data/data/FiltersDto.d.ts.map +1 -1
  513. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.d.ts +3 -0
  514. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.d.ts.map +1 -1
  515. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.test.d.ts +1 -0
  516. package/lib/types/src/typed-data/data/HttpTypedDataDataSource.test.d.ts.map +1 -1
  517. package/lib/types/src/typed-data/data/TypedDataDataSource.d.ts +2 -1
  518. package/lib/types/src/typed-data/data/TypedDataDataSource.d.ts.map +1 -1
  519. package/lib/types/src/typed-data/domain/DefaultTypedDataContextLoader.d.ts +12 -1
  520. package/lib/types/src/typed-data/domain/DefaultTypedDataContextLoader.d.ts.map +1 -1
  521. package/lib/types/src/uniswap/constants/uniswap.d.ts +0 -1
  522. package/lib/types/src/uniswap/constants/uniswap.d.ts.map +1 -1
  523. package/lib/types/src/uniswap/domain/UniswapContextLoader.d.ts +10 -11
  524. package/lib/types/src/uniswap/domain/UniswapContextLoader.d.ts.map +1 -1
  525. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  526. package/package.json +4 -4
  527. package/lib/cjs/src/shared/model/TransactionContext.js +0 -2
  528. package/lib/cjs/src/shared/model/TransactionContext.js.map +0 -7
  529. package/lib/cjs/src/transaction/data/HttpProxyDataSource.js +0 -2
  530. package/lib/cjs/src/transaction/data/HttpProxyDataSource.js.map +0 -7
  531. package/lib/cjs/src/transaction/data/HttpProxyDataSource.test.js +0 -2
  532. package/lib/cjs/src/transaction/data/HttpProxyDataSource.test.js.map +0 -7
  533. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.js +0 -2
  534. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.js.map +0 -7
  535. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.test.js +0 -2
  536. package/lib/cjs/src/transaction/data/HttpTransactionDataSource.test.js.map +0 -7
  537. package/lib/cjs/src/transaction/data/TransactionDataSource.js +0 -2
  538. package/lib/cjs/src/transaction/data/TransactionDataSource.js.map +0 -7
  539. package/lib/cjs/src/transaction/data/dto/CalldataDto.js +0 -2
  540. package/lib/cjs/src/transaction/data/dto/CalldataDto.js.map +0 -7
  541. package/lib/cjs/src/transaction/data/dto/ProxyDelegateCallDto.js +0 -2
  542. package/lib/cjs/src/transaction/data/dto/ProxyDelegateCallDto.js.map +0 -7
  543. package/lib/cjs/src/transaction/di/transactionModuleFactory.js +0 -2
  544. package/lib/cjs/src/transaction/di/transactionModuleFactory.js.map +0 -7
  545. package/lib/cjs/src/transaction/di/transactionTypes.js +0 -2
  546. package/lib/cjs/src/transaction/di/transactionTypes.js.map +0 -7
  547. package/lib/cjs/src/transaction/domain/TransactionContextLoader.js +0 -2
  548. package/lib/cjs/src/transaction/domain/TransactionContextLoader.js.map +0 -7
  549. package/lib/cjs/src/transaction/domain/TransactionContextLoader.test.js +0 -2
  550. package/lib/cjs/src/transaction/domain/TransactionContextLoader.test.js.map +0 -7
  551. package/lib/cjs/src/transaction/model/ProxyDelegateCall.js +0 -2
  552. package/lib/cjs/src/transaction/model/ProxyDelegateCall.js.map +0 -7
  553. package/lib/cjs/src/transaction/model/ProxyImplementationAddress.js +0 -2
  554. package/lib/cjs/src/transaction/model/ProxyImplementationAddress.js.map +0 -7
  555. package/lib/cjs/src/uniswap/constants/plugin.js +0 -2
  556. package/lib/cjs/src/uniswap/constants/plugin.js.map +0 -7
  557. package/lib/esm/src/shared/model/TransactionContext.js +0 -1
  558. package/lib/esm/src/transaction/data/HttpProxyDataSource.js +0 -2
  559. package/lib/esm/src/transaction/data/HttpProxyDataSource.js.map +0 -7
  560. package/lib/esm/src/transaction/data/HttpProxyDataSource.test.js +0 -2
  561. package/lib/esm/src/transaction/data/HttpProxyDataSource.test.js.map +0 -7
  562. package/lib/esm/src/transaction/data/HttpTransactionDataSource.js +0 -2
  563. package/lib/esm/src/transaction/data/HttpTransactionDataSource.js.map +0 -7
  564. package/lib/esm/src/transaction/data/HttpTransactionDataSource.test.js +0 -2
  565. package/lib/esm/src/transaction/data/HttpTransactionDataSource.test.js.map +0 -7
  566. package/lib/esm/src/transaction/data/TransactionDataSource.js +0 -1
  567. package/lib/esm/src/transaction/di/transactionModuleFactory.js +0 -2
  568. package/lib/esm/src/transaction/di/transactionModuleFactory.js.map +0 -7
  569. package/lib/esm/src/transaction/di/transactionTypes.js +0 -2
  570. package/lib/esm/src/transaction/di/transactionTypes.js.map +0 -7
  571. package/lib/esm/src/transaction/domain/TransactionContextLoader.js +0 -2
  572. package/lib/esm/src/transaction/domain/TransactionContextLoader.js.map +0 -7
  573. package/lib/esm/src/transaction/domain/TransactionContextLoader.test.js +0 -2
  574. package/lib/esm/src/transaction/domain/TransactionContextLoader.test.js.map +0 -7
  575. package/lib/esm/src/transaction/model/ProxyImplementationAddress.js +0 -1
  576. package/lib/esm/src/uniswap/constants/plugin.js +0 -2
  577. package/lib/esm/src/uniswap/constants/plugin.js.map +0 -7
  578. package/lib/types/src/shared/model/TransactionContext.d.ts +0 -21
  579. package/lib/types/src/shared/model/TransactionContext.d.ts.map +0 -1
  580. package/lib/types/src/transaction/data/HttpProxyDataSource.d.ts +0 -32
  581. package/lib/types/src/transaction/data/HttpProxyDataSource.d.ts.map +0 -1
  582. package/lib/types/src/transaction/data/HttpProxyDataSource.test.d.ts.map +0 -1
  583. package/lib/types/src/transaction/data/HttpTransactionDataSource.d.ts.map +0 -1
  584. package/lib/types/src/transaction/data/HttpTransactionDataSource.test.d.ts +0 -2
  585. package/lib/types/src/transaction/data/HttpTransactionDataSource.test.d.ts.map +0 -1
  586. package/lib/types/src/transaction/data/TransactionDataSource.d.ts.map +0 -1
  587. package/lib/types/src/transaction/data/dto/CalldataDto.d.ts.map +0 -1
  588. package/lib/types/src/transaction/data/dto/ProxyDelegateCallDto.d.ts +0 -5
  589. package/lib/types/src/transaction/data/dto/ProxyDelegateCallDto.d.ts.map +0 -1
  590. package/lib/types/src/transaction/data/dto/ProxyImplementationAddressDto.d.ts.map +0 -1
  591. package/lib/types/src/transaction/di/transactionModuleFactory.d.ts +0 -3
  592. package/lib/types/src/transaction/di/transactionModuleFactory.d.ts.map +0 -1
  593. package/lib/types/src/transaction/di/transactionTypes.d.ts +0 -6
  594. package/lib/types/src/transaction/di/transactionTypes.d.ts.map +0 -1
  595. package/lib/types/src/transaction/domain/TransactionContextLoader.d.ts +0 -10
  596. package/lib/types/src/transaction/domain/TransactionContextLoader.d.ts.map +0 -1
  597. package/lib/types/src/transaction/domain/TransactionContextLoader.test.d.ts +0 -2
  598. package/lib/types/src/transaction/domain/TransactionContextLoader.test.d.ts.map +0 -1
  599. package/lib/types/src/transaction/model/ProxyDelegateCall.d.ts +0 -5
  600. package/lib/types/src/transaction/model/ProxyDelegateCall.d.ts.map +0 -1
  601. package/lib/types/src/transaction/model/ProxyImplementationAddress.d.ts +0 -4
  602. package/lib/types/src/transaction/model/ProxyImplementationAddress.d.ts.map +0 -1
  603. package/lib/types/src/uniswap/constants/plugin.d.ts +0 -3
  604. package/lib/types/src/uniswap/constants/plugin.d.ts.map +0 -1
  605. /package/lib/cjs/src/{transaction → proxy}/data/dto/ProxyImplementationAddressDto.js +0 -0
  606. /package/lib/esm/src/{shared/model/TransactionContext.js.map → calldata/data/CalldataDescriptorDataSource.js.map} +0 -0
  607. /package/lib/esm/src/{transaction → calldata}/data/dto/CalldataDto.js +0 -0
  608. /package/lib/esm/src/{transaction → calldata}/data/dto/CalldataDto.js.map +0 -0
  609. /package/lib/esm/src/{transaction/data/TransactionDataSource.js.map → dynamic-network/data/DynamicNetworkDataSource.js.map} +0 -0
  610. /package/lib/esm/src/{transaction/data/dto/ProxyDelegateCallDto.js.map → dynamic-network/data/dto/DynamicNetworkApiResponseDto.js.map} +0 -0
  611. /package/lib/esm/src/{transaction/data/dto/ProxyImplementationAddressDto.js.map → dynamic-network/model/DynamicNetworkConfiguration.js.map} +0 -0
  612. /package/lib/esm/src/{transaction/model/ProxyDelegateCall.js.map → proxy/data/ProxyDataSource.js.map} +0 -0
  613. /package/lib/esm/src/{transaction → proxy}/data/dto/ProxyDelegateCallDto.js +0 -0
  614. /package/lib/esm/src/{transaction/model/ProxyImplementationAddress.js.map → proxy/data/dto/ProxyDelegateCallDto.js.map} +0 -0
  615. /package/lib/esm/src/{transaction → proxy}/data/dto/ProxyImplementationAddressDto.js +0 -0
  616. /package/lib/esm/src/{transaction → proxy}/model/ProxyDelegateCall.js +0 -0
  617. /package/lib/types/src/{transaction → proxy}/data/HttpProxyDataSource.test.d.ts +0 -0
  618. /package/lib/types/src/{transaction → proxy}/data/dto/ProxyImplementationAddressDto.d.ts +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/safe/data/HttpSafeAccountDataSource.test.ts"],
4
+ "sourcesContent": ["import { type HexaString } from \"@ledgerhq/device-management-kit\";\nimport axios from \"axios\";\nimport { Left, Right } from \"purify-ts\";\n\nimport { type ContextModuleConfig } from \"@/config/model/ContextModuleConfig\";\nimport { HttpSafeAccountDataSource } from \"@/safe/data/HttpSafeAccountDataSource\";\nimport {\n LEDGER_CLIENT_VERSION_HEADER,\n LEDGER_ORIGIN_TOKEN_HEADER,\n} from \"@/shared/constant/HttpHeaders\";\nimport PACKAGE from \"@root/package.json\";\n\nvi.mock(\"axios\");\n\ndescribe(\"HttpSafeAccountDataSource\", () => {\n const config: ContextModuleConfig = {\n metadataServiceDomain: {\n url: \"https://metadata.ledger.com\",\n },\n originToken: \"test-origin-token\",\n } as ContextModuleConfig;\n\n const validSafeAccountDto = {\n accountDescriptor: {\n signedDescriptor: \"account-signed-descriptor-data\",\n keyId: \"account-key-id\",\n keyUsage: \"account-key-usage\",\n },\n signersDescriptor: {\n signedDescriptor: \"signers-signed-descriptor-data\",\n keyId: \"signers-key-id\",\n keyUsage: \"signers-key-usage\",\n },\n };\n\n const validsafeContractAddress: HexaString =\n \"0x1234567890123456789012345678901234567890\";\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n describe(\"getDescriptors\", () => {\n it(\"should return safe account descriptors on successful request\", async () => {\n // GIVEN\n const params = {\n safeContractAddress: validsafeContractAddress,\n chainId: 1,\n challenge: \"0xabcdef\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: validSafeAccountDto,\n });\n\n // WHEN\n const result = await new HttpSafeAccountDataSource(config).getDescriptors(\n params,\n );\n\n // THEN\n expect(axios.request).toHaveBeenCalledWith({\n method: \"GET\",\n url: \"https://metadata.ledger.com/v2/ethereum/1/safe/account/0x1234567890123456789012345678901234567890\",\n params: {\n challenge: \"0xabcdef\",\n },\n headers: {\n [LEDGER_CLIENT_VERSION_HEADER]: `context-module/${PACKAGE.version}`,\n [LEDGER_ORIGIN_TOKEN_HEADER]: \"test-origin-token\",\n },\n });\n expect(result).toEqual(\n Right({\n account: {\n signedDescriptor: \"account-signed-descriptor-data\",\n keyId: \"account-key-id\",\n keyUsage: \"account-key-usage\",\n },\n signers: {\n signedDescriptor: \"signers-signed-descriptor-data\",\n keyId: \"signers-key-id\",\n keyUsage: \"signers-key-usage\",\n },\n }),\n );\n });\n\n it(\"should work with different chain IDs\", async () => {\n // GIVEN\n const params = {\n safeContractAddress: validsafeContractAddress,\n chainId: 137, // Polygon\n challenge: \"0xabcdef\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: validSafeAccountDto,\n });\n\n // WHEN\n await new HttpSafeAccountDataSource(config).getDescriptors(params);\n\n // THEN\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n url: \"https://metadata.ledger.com/v2/ethereum/137/safe/account/0x1234567890123456789012345678901234567890\",\n }),\n );\n });\n\n it(\"should work with different safe addresses\", async () => {\n // GIVEN\n const params = {\n safeContractAddress:\n \"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd\" as HexaString,\n chainId: 1,\n challenge: \"0xabcdef\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: validSafeAccountDto,\n });\n\n // WHEN\n await new HttpSafeAccountDataSource(config).getDescriptors(params);\n\n // THEN\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n url: \"https://metadata.ledger.com/v2/ethereum/1/safe/account/0xabcdefabcdefabcdefabcdefabcdefabcdefabcd\",\n }),\n );\n });\n\n it(\"should work with different challenges\", async () => {\n // GIVEN\n const params = {\n safeContractAddress: validsafeContractAddress,\n chainId: 1,\n challenge: \"0x123456789\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: validSafeAccountDto,\n });\n\n // WHEN\n await new HttpSafeAccountDataSource(config).getDescriptors(params);\n\n // THEN\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n params: {\n challenge: \"0x123456789\",\n },\n }),\n );\n });\n\n it(\"should return error when response data is empty\", async () => {\n // GIVEN\n const params = {\n safeContractAddress: validsafeContractAddress,\n chainId: 1,\n challenge: \"0xabcdef\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: null,\n });\n\n // WHEN\n const result = await new HttpSafeAccountDataSource(config).getDescriptors(\n params,\n );\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpSafeAccountDataSource: unexpected empty response\",\n ),\n ),\n );\n });\n\n it(\"should return error when response data is undefined\", async () => {\n // GIVEN\n const params = {\n safeContractAddress: validsafeContractAddress,\n chainId: 1,\n challenge: \"0xabcdef\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: undefined,\n });\n\n // WHEN\n const result = await new HttpSafeAccountDataSource(config).getDescriptors(\n params,\n );\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpSafeAccountDataSource: unexpected empty response\",\n ),\n ),\n );\n });\n\n it(\"should return error when accountDescriptor is missing\", async () => {\n // GIVEN\n const params = {\n safeContractAddress: validsafeContractAddress,\n chainId: 1,\n challenge: \"0xabcdef\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: {\n signersDescriptor: validSafeAccountDto.signersDescriptor,\n },\n });\n\n // WHEN\n const result = await new HttpSafeAccountDataSource(config).getDescriptors(\n params,\n );\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpSafeAccountDataSource: invalid safe account response format\",\n ),\n ),\n );\n });\n\n it(\"should return error when signersDescriptor is missing\", async () => {\n // GIVEN\n const params = {\n safeContractAddress: validsafeContractAddress,\n chainId: 1,\n challenge: \"0xabcdef\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: {\n accountDescriptor: validSafeAccountDto.accountDescriptor,\n },\n });\n\n // WHEN\n const result = await new HttpSafeAccountDataSource(config).getDescriptors(\n params,\n );\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpSafeAccountDataSource: invalid safe account response format\",\n ),\n ),\n );\n });\n\n it(\"should return error when accountDescriptor.signedDescriptor is missing\", async () => {\n // GIVEN\n const params = {\n safeContractAddress: validsafeContractAddress,\n chainId: 1,\n challenge: \"0xabcdef\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: {\n accountDescriptor: {\n keyId: \"account-key-id\",\n keyUsage: \"account-key-usage\",\n },\n signersDescriptor: validSafeAccountDto.signersDescriptor,\n },\n });\n\n // WHEN\n const result = await new HttpSafeAccountDataSource(config).getDescriptors(\n params,\n );\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpSafeAccountDataSource: invalid safe account response format\",\n ),\n ),\n );\n });\n\n it(\"should return error when accountDescriptor.keyId is missing\", async () => {\n // GIVEN\n const params = {\n safeContractAddress: validsafeContractAddress,\n chainId: 1,\n challenge: \"0xabcdef\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: {\n accountDescriptor: {\n signedDescriptor: \"account-signed-descriptor-data\",\n keyUsage: \"account-key-usage\",\n },\n signersDescriptor: validSafeAccountDto.signersDescriptor,\n },\n });\n\n // WHEN\n const result = await new HttpSafeAccountDataSource(config).getDescriptors(\n params,\n );\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpSafeAccountDataSource: invalid safe account response format\",\n ),\n ),\n );\n });\n\n it(\"should return error when accountDescriptor.keyUsage is missing\", async () => {\n // GIVEN\n const params = {\n safeContractAddress: validsafeContractAddress,\n chainId: 1,\n challenge: \"0xabcdef\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: {\n accountDescriptor: {\n signedDescriptor: \"account-signed-descriptor-data\",\n keyId: \"account-key-id\",\n },\n signersDescriptor: validSafeAccountDto.signersDescriptor,\n },\n });\n\n // WHEN\n const result = await new HttpSafeAccountDataSource(config).getDescriptors(\n params,\n );\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpSafeAccountDataSource: invalid safe account response format\",\n ),\n ),\n );\n });\n\n it(\"should return error when signersDescriptor fields are invalid\", async () => {\n // GIVEN\n const params = {\n safeContractAddress: validsafeContractAddress,\n chainId: 1,\n challenge: \"0xabcdef\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: {\n accountDescriptor: validSafeAccountDto.accountDescriptor,\n signersDescriptor: {\n signedDescriptor: \"signers-signed-descriptor-data\",\n keyId: 123, // wrong type\n keyUsage: \"signers-key-usage\",\n },\n },\n });\n\n // WHEN\n const result = await new HttpSafeAccountDataSource(config).getDescriptors(\n params,\n );\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpSafeAccountDataSource: invalid safe account response format\",\n ),\n ),\n );\n });\n\n it(\"should return error when accountDescriptor is not an object\", async () => {\n // GIVEN\n const params = {\n safeContractAddress: validsafeContractAddress,\n chainId: 1,\n challenge: \"0xabcdef\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: {\n accountDescriptor: \"invalid-string\",\n signersDescriptor: validSafeAccountDto.signersDescriptor,\n },\n });\n\n // WHEN\n const result = await new HttpSafeAccountDataSource(config).getDescriptors(\n params,\n );\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpSafeAccountDataSource: invalid safe account response format\",\n ),\n ),\n );\n });\n\n it(\"should return error when signersDescriptor is not an object\", async () => {\n // GIVEN\n const params = {\n safeContractAddress: validsafeContractAddress,\n chainId: 1,\n challenge: \"0xabcdef\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: {\n accountDescriptor: validSafeAccountDto.accountDescriptor,\n signersDescriptor: null,\n },\n });\n\n // WHEN\n const result = await new HttpSafeAccountDataSource(config).getDescriptors(\n params,\n );\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpSafeAccountDataSource: invalid safe account response format\",\n ),\n ),\n );\n });\n\n it(\"should return error when axios request fails\", async () => {\n // GIVEN\n const params = {\n safeContractAddress: validsafeContractAddress,\n chainId: 1,\n challenge: \"0xabcdef\",\n };\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"Network error\"));\n\n // WHEN\n const result = await new HttpSafeAccountDataSource(config).getDescriptors(\n params,\n );\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpSafeAccountDataSource: Failed to fetch safe account descriptors\",\n ),\n ),\n );\n });\n\n it(\"should return error when axios throws an exception\", async () => {\n // GIVEN\n const params = {\n safeContractAddress: validsafeContractAddress,\n chainId: 1,\n challenge: \"0xabcdef\",\n };\n vi.spyOn(axios, \"request\").mockRejectedValue(new Error(\"timeout\"));\n\n // WHEN\n const result = await new HttpSafeAccountDataSource(config).getDescriptors(\n params,\n );\n\n // THEN\n expect(result).toEqual(\n Left(\n new Error(\n \"[ContextModule] HttpSafeAccountDataSource: Failed to fetch safe account descriptors\",\n ),\n ),\n );\n });\n\n it(\"should handle empty string values in descriptors\", async () => {\n // GIVEN\n const params = {\n safeContractAddress: validsafeContractAddress,\n chainId: 1,\n challenge: \"0xabcdef\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: {\n accountDescriptor: {\n signedDescriptor: \"\",\n keyId: \"\",\n keyUsage: \"\",\n },\n signersDescriptor: {\n signedDescriptor: \"\",\n keyId: \"\",\n keyUsage: \"\",\n },\n },\n });\n\n // WHEN\n const result = await new HttpSafeAccountDataSource(config).getDescriptors(\n params,\n );\n\n // THEN\n expect(result).toEqual(\n Right({\n account: {\n signedDescriptor: \"\",\n keyId: \"\",\n keyUsage: \"\",\n },\n signers: {\n signedDescriptor: \"\",\n keyId: \"\",\n keyUsage: \"\",\n },\n }),\n );\n });\n\n it(\"should correctly parse response with long descriptor values\", async () => {\n // GIVEN\n const longValue = \"a\".repeat(1000);\n const params = {\n safeContractAddress: validsafeContractAddress,\n chainId: 1,\n challenge: \"0xabcdef\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: {\n accountDescriptor: {\n signedDescriptor: longValue,\n keyId: \"account-key-id\",\n keyUsage: \"account-key-usage\",\n },\n signersDescriptor: {\n signedDescriptor: longValue,\n keyId: \"signers-key-id\",\n keyUsage: \"signers-key-usage\",\n },\n },\n });\n\n // WHEN\n const result = await new HttpSafeAccountDataSource(config).getDescriptors(\n params,\n );\n\n // THEN\n expect(result).toEqual(\n Right({\n account: {\n signedDescriptor: longValue,\n keyId: \"account-key-id\",\n keyUsage: \"account-key-usage\",\n },\n signers: {\n signedDescriptor: longValue,\n keyId: \"signers-key-id\",\n keyUsage: \"signers-key-usage\",\n },\n }),\n );\n });\n\n it(\"should use correct origin token from config\", async () => {\n // GIVEN\n const customConfig: ContextModuleConfig = {\n metadataServiceDomain: {\n url: \"https://metadata.ledger.com\",\n },\n originToken: \"custom-origin-token\",\n } as ContextModuleConfig;\n const params = {\n safeContractAddress: validsafeContractAddress,\n chainId: 1,\n challenge: \"0xabcdef\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: validSafeAccountDto,\n });\n\n // WHEN\n await new HttpSafeAccountDataSource(customConfig).getDescriptors(params);\n\n // THEN\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n headers: expect.objectContaining({\n [LEDGER_ORIGIN_TOKEN_HEADER]: \"custom-origin-token\",\n }),\n }),\n );\n });\n\n it(\"should use correct metadata service URL from config\", async () => {\n // GIVEN\n const customConfig: ContextModuleConfig = {\n metadataServiceDomain: {\n url: \"https://custom-metadata.example.com\",\n },\n originToken: \"test-token\",\n } as ContextModuleConfig;\n const params = {\n safeContractAddress: validsafeContractAddress,\n chainId: 1,\n challenge: \"0xabcdef\",\n };\n vi.spyOn(axios, \"request\").mockResolvedValue({\n status: 200,\n data: validSafeAccountDto,\n });\n\n // WHEN\n await new HttpSafeAccountDataSource(customConfig).getDescriptors(params);\n\n // THEN\n expect(axios.request).toHaveBeenCalledWith(\n expect.objectContaining({\n url: \"https://custom-metadata.example.com/v2/ethereum/1/safe/account/0x1234567890123456789012345678901234567890\",\n }),\n );\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_axios", "import_purify_ts", "import_HttpSafeAccountDataSource", "import_HttpHeaders", "import_package", "config", "validSafeAccountDto", "validsafeContractAddress", "params", "axios", "result", "PACKAGE", "longValue", "customConfig"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var o=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var p=(r,e,s,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of n(e))!i.call(r,t)&&t!==s&&o(r,t,{get:()=>e[t],enumerable:!(a=c(e,t))||a.enumerable});return r};var f=r=>p(o({},"__esModule",{value:!0}),r);var g={};module.exports=f(g);
2
+ //# sourceMappingURL=SafeAccountDataSource.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/safe/data/SafeAccountDataSource.ts"],
4
+ "sourcesContent": ["import { type HexaString } from \"@ledgerhq/device-management-kit\";\nimport { type Either } from \"purify-ts\";\n\nexport type GetSafeAccountParams = {\n safeContractAddress: HexaString;\n chainId: number;\n challenge: string;\n};\n\nexport type SafeDescriptor = {\n signedDescriptor: string;\n keyId: string;\n keyUsage: string;\n};\n\nexport type GetSafeAccountResponse = {\n account: SafeDescriptor;\n signers: SafeDescriptor;\n};\n\nexport interface SafeAccountDataSource {\n getDescriptors(\n params: GetSafeAccountParams,\n ): Promise<Either<Error, GetSafeAccountResponse>>;\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["SafeAccountDataSource_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var s=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var D=Object.prototype.hasOwnProperty;var n=(t,e,i,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of p(e))!D.call(t,r)&&r!==i&&s(t,r,{get:()=>e[r],enumerable:!(o=c(e,r))||o.enumerable});return t};var a=t=>n(s({},"__esModule",{value:!0}),t);var g={};module.exports=a(g);
2
+ //# sourceMappingURL=SafeAccountDto.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/safe/data/dto/SafeAccountDto.ts"],
4
+ "sourcesContent": ["export type SafeAccountDto = {\n accountDescriptor: SafeDescriptorDto;\n signersDescriptor: SafeDescriptorDto;\n};\n\nexport type SafeDescriptorDto = {\n signedDescriptor: string;\n keyId: string;\n keyUsage: string;\n};\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["SafeAccountDto_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var a=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var i=(o,e)=>{for(var t in e)a(o,t,{get:e[t],enumerable:!0})},n=(o,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of S(e))!u.call(o,r)&&r!==t&&a(o,r,{get:()=>e[r],enumerable:!(s=c(e,r))||s.enumerable});return o};var A=o=>n(a({},"__esModule",{value:!0}),o);var y={};i(y,{safeModuleFactory:()=>l});module.exports=A(y);var d=require("inversify"),m=require("../../safe/data/HttpSafeAccountDataSource"),p=require("../../safe/domain/SafeAddressLoader"),f=require("./safeTypes");const l=()=>new d.ContainerModule(({bind:o})=>{o(f.safeTypes.SafeAddressDataSource).to(m.HttpSafeAccountDataSource),o(f.safeTypes.SafeAddressLoader).to(p.SafeAddressLoader)});0&&(module.exports={safeModuleFactory});
2
+ //# sourceMappingURL=safeModuleFactory.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/safe/di/safeModuleFactory.ts"],
4
+ "sourcesContent": ["import { ContainerModule } from \"inversify\";\n\nimport { HttpSafeAccountDataSource } from \"@/safe/data/HttpSafeAccountDataSource\";\nimport { SafeAddressLoader } from \"@/safe/domain/SafeAddressLoader\";\n\nimport { safeTypes } from \"./safeTypes\";\n\nexport const safeModuleFactory = () =>\n new ContainerModule(({ bind }) => {\n bind(safeTypes.SafeAddressDataSource).to(HttpSafeAccountDataSource);\n bind(safeTypes.SafeAddressLoader).to(SafeAddressLoader);\n });\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,qBAEhCC,EAA0C,iDAC1CC,EAAkC,2CAElCC,EAA0B,uBAEnB,MAAML,EAAoB,IAC/B,IAAI,kBAAgB,CAAC,CAAE,KAAAM,CAAK,IAAM,CAChCA,EAAK,YAAU,qBAAqB,EAAE,GAAG,2BAAyB,EAClEA,EAAK,YAAU,iBAAiB,EAAE,GAAG,mBAAiB,CACxD,CAAC",
6
+ "names": ["safeModuleFactory_exports", "__export", "safeModuleFactory", "__toCommonJS", "import_inversify", "import_HttpSafeAccountDataSource", "import_SafeAddressLoader", "import_safeTypes", "bind"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("vitest"),o=require("./safeModuleFactory");(0,e.describe)("safeModuleFactory",()=>{(0,e.it)("should be defined",()=>{expect(o.safeModuleFactory).toBeDefined()})});
2
+ //# sourceMappingURL=safeModuleFactory.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/safe/di/safeModuleFactory.test.ts"],
4
+ "sourcesContent": ["import { describe, it } from \"vitest\";\n\nimport { safeModuleFactory } from \"./safeModuleFactory\";\n\ndescribe(\"safeModuleFactory\", () => {\n it(\"should be defined\", () => {\n expect(safeModuleFactory).toBeDefined();\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAA6B,kBAE7BC,EAAkC,kCAElC,YAAS,oBAAqB,IAAM,IAClC,MAAG,oBAAqB,IAAM,CAC5B,OAAO,mBAAiB,EAAE,YAAY,CACxC,CAAC,CACH,CAAC",
6
+ "names": ["import_vitest", "import_safeModuleFactory"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var d=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var t=Object.prototype.hasOwnProperty;var A=(a,e)=>{for(var s in e)d(a,s,{get:e[s],enumerable:!0})},c=(a,e,s,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of f(e))!t.call(a,r)&&r!==s&&d(a,r,{get:()=>e[r],enumerable:!(o=S(e,r))||o.enumerable});return a};var y=a=>c(d({},"__esModule",{value:!0}),a);var l={};A(l,{safeTypes:()=>b});module.exports=y(l);const b={SafeAddressDataSource:Symbol.for("SafeAddressDataSource"),SafeAddressLoader:Symbol.for("SafeAddressLoader")};0&&(module.exports={safeTypes});
2
+ //# sourceMappingURL=safeTypes.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/safe/di/safeTypes.ts"],
4
+ "sourcesContent": ["export const safeTypes = {\n SafeAddressDataSource: Symbol.for(\"SafeAddressDataSource\"),\n SafeAddressLoader: Symbol.for(\"SafeAddressLoader\"),\n};\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,EAAY,CACvB,sBAAuB,OAAO,IAAI,uBAAuB,EACzD,kBAAmB,OAAO,IAAI,mBAAmB,CACnD",
6
+ "names": ["safeTypes_exports", "__export", "safeTypes", "__toCommonJS"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var f=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var k=(o,e)=>{for(var t in e)f(o,t,{get:e[t],enumerable:!0})},A=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of x(e))!I.call(o,a)&&a!==t&&f(o,a,{get:()=>e[a],enumerable:!(r=y(e,a))||r.enumerable});return o};var h=o=>A(f({},"__esModule",{value:!0}),o),C=(o,e,t,r)=>{for(var a=r>1?void 0:r?y(e,t):e,d=o.length-1,i;d>=0;d--)(i=o[d])&&(a=(r?i(e,t,a):i(a))||a);return r&&a&&f(e,t,a),a},p=(o,e)=>(t,r)=>e(t,r,o);var D={};k(D,{SafeAddressLoader:()=>c});module.exports=h(D);var S=require("@ledgerhq/device-management-kit"),s=require("inversify"),g=require("../../pki/di/pkiTypes"),m=require("../../safe/di/safeTypes"),n=require("../../shared/model/ClearSignContext");const u=[n.ClearSignContextType.SAFE,n.ClearSignContextType.SIGNER];let c=class{constructor(e,t){this._dataSource=e;this._certificateLoader=t}canHandle(e,t){return t.every(r=>u.includes(r))&&typeof e=="object"&&e!==null&&"safeContractAddress"in e&&(0,S.isHexaString)(e.safeContractAddress)&&e.safeContractAddress!=="0x"&&"chainId"in e&&typeof e.chainId=="number"&&"deviceModelId"in e&&e.deviceModelId!==void 0&&"challenge"in e&&typeof e.challenge=="string"&&e.challenge.length>0}async load({safeContractAddress:e,chainId:t,deviceModelId:r,challenge:a}){return(await this._dataSource.getDescriptors({safeContractAddress:e,chainId:t,challenge:a})).caseOf({Left:i=>Promise.resolve([{type:n.ClearSignContextType.ERROR,error:i}]),Right:async({account:i,signers:l})=>[{type:n.ClearSignContextType.SAFE,payload:i.signedDescriptor,certificate:await this._certificateLoader.loadCertificate({keyId:i.keyId,keyUsage:i.keyUsage,targetDevice:r})},{type:n.ClearSignContextType.SIGNER,payload:l.signedDescriptor,certificate:await this._certificateLoader.loadCertificate({keyId:l.keyId,keyUsage:l.keyUsage,targetDevice:r})}]})}};c=C([(0,s.injectable)(),p(0,(0,s.inject)(m.safeTypes.SafeAddressDataSource)),p(1,(0,s.inject)(g.pkiTypes.PkiCertificateLoader))],c);0&&(module.exports={SafeAddressLoader});
2
+ //# sourceMappingURL=SafeAddressLoader.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/safe/domain/SafeAddressLoader.ts"],
4
+ "sourcesContent": ["import {\n DeviceModelId,\n HexaString,\n isHexaString,\n} 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 type {\n GetSafeAccountResponse,\n SafeAccountDataSource,\n} from \"@/safe/data/SafeAccountDataSource\";\nimport { safeTypes } from \"@/safe/di/safeTypes\";\nimport { ContextLoader } from \"@/shared/domain/ContextLoader\";\nimport {\n ClearSignContext,\n ClearSignContextType,\n} from \"@/shared/model/ClearSignContext\";\n\nexport type SafeAddressContextInput = {\n safeContractAddress: HexaString;\n chainId: number;\n deviceModelId: DeviceModelId;\n challenge: string;\n};\n\nconst SUPPORTED_TYPES: ClearSignContextType[] = [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n];\n\n@injectable()\nexport class SafeAddressLoader\n implements ContextLoader<SafeAddressContextInput>\n{\n constructor(\n @inject(safeTypes.SafeAddressDataSource)\n private readonly _dataSource: SafeAccountDataSource,\n @inject(pkiTypes.PkiCertificateLoader)\n private readonly _certificateLoader: PkiCertificateLoader,\n ) {}\n\n canHandle(\n input: unknown,\n expectedTypes: ClearSignContextType[],\n ): input is SafeAddressContextInput {\n return (\n expectedTypes.every((type) => SUPPORTED_TYPES.includes(type)) &&\n typeof input === \"object\" &&\n input !== null &&\n \"safeContractAddress\" in input &&\n isHexaString(input.safeContractAddress) &&\n input.safeContractAddress !== \"0x\" &&\n \"chainId\" in input &&\n typeof input.chainId === \"number\" &&\n \"deviceModelId\" in input &&\n input.deviceModelId !== undefined &&\n \"challenge\" in input &&\n typeof input.challenge === \"string\" &&\n input.challenge.length > 0\n );\n }\n\n async load({\n safeContractAddress,\n chainId,\n deviceModelId,\n challenge,\n }: SafeAddressContextInput): Promise<ClearSignContext[]> {\n const descriptors = await this._dataSource.getDescriptors({\n safeContractAddress,\n chainId,\n challenge,\n });\n\n return descriptors.caseOf({\n Left: (error): Promise<ClearSignContext[]> =>\n Promise.resolve([\n {\n type: ClearSignContextType.ERROR,\n error,\n },\n ]),\n Right: async ({\n account,\n signers,\n }: GetSafeAccountResponse): Promise<ClearSignContext[]> => [\n {\n type: ClearSignContextType.SAFE,\n payload: account.signedDescriptor,\n certificate: await this._certificateLoader.loadCertificate({\n keyId: account.keyId,\n keyUsage: account.keyUsage,\n targetDevice: deviceModelId,\n }),\n },\n {\n type: ClearSignContextType.SIGNER,\n payload: signers.signedDescriptor,\n certificate: await this._certificateLoader.loadCertificate({\n keyId: signers.keyId,\n keyUsage: signers.keyUsage,\n targetDevice: deviceModelId,\n }),\n },\n ],\n });\n }\n}\n"],
5
+ "mappings": "okBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAIO,2CACPC,EAAmC,qBAEnCC,EAAyB,6BAMzBC,EAA0B,+BAE1BC,EAGO,2CASP,MAAMC,EAA0C,CAC9C,uBAAqB,KACrB,uBAAqB,MACvB,EAGO,IAAMC,EAAN,KAEP,CACE,YAEmBC,EAEAC,EACjB,CAHiB,iBAAAD,EAEA,wBAAAC,CAChB,CAEH,UACEC,EACAC,EACkC,CAClC,OACEA,EAAc,MAAOC,GAASN,EAAgB,SAASM,CAAI,CAAC,GAC5D,OAAOF,GAAU,UACjBA,IAAU,MACV,wBAAyBA,MACzB,gBAAaA,EAAM,mBAAmB,GACtCA,EAAM,sBAAwB,MAC9B,YAAaA,GACb,OAAOA,EAAM,SAAY,UACzB,kBAAmBA,GACnBA,EAAM,gBAAkB,QACxB,cAAeA,GACf,OAAOA,EAAM,WAAc,UAC3BA,EAAM,UAAU,OAAS,CAE7B,CAEA,MAAM,KAAK,CACT,oBAAAG,EACA,QAAAC,EACA,cAAAC,EACA,UAAAC,CACF,EAAyD,CAOvD,OANoB,MAAM,KAAK,YAAY,eAAe,CACxD,oBAAAH,EACA,QAAAC,EACA,UAAAE,CACF,CAAC,GAEkB,OAAO,CACxB,KAAOC,GACL,QAAQ,QAAQ,CACd,CACE,KAAM,uBAAqB,MAC3B,MAAAA,CACF,CACF,CAAC,EACH,MAAO,MAAO,CACZ,QAAAC,EACA,QAAAC,CACF,IAA2D,CACzD,CACE,KAAM,uBAAqB,KAC3B,QAASD,EAAQ,iBACjB,YAAa,MAAM,KAAK,mBAAmB,gBAAgB,CACzD,MAAOA,EAAQ,MACf,SAAUA,EAAQ,SAClB,aAAcH,CAChB,CAAC,CACH,EACA,CACE,KAAM,uBAAqB,OAC3B,QAASI,EAAQ,iBACjB,YAAa,MAAM,KAAK,mBAAmB,gBAAgB,CACzD,MAAOA,EAAQ,MACf,SAAUA,EAAQ,SAClB,aAAcJ,CAChB,CAAC,CACH,CACF,CACF,CAAC,CACH,CACF,EA5EaR,EAANa,EAAA,IADN,cAAW,EAKPC,EAAA,eAAO,YAAU,qBAAqB,GAEtCA,EAAA,eAAO,WAAS,oBAAoB,IAN5Bd",
6
+ "names": ["SafeAddressLoader_exports", "__export", "SafeAddressLoader", "__toCommonJS", "import_device_management_kit", "import_inversify", "import_pkiTypes", "import_safeTypes", "import_ClearSignContext", "SUPPORTED_TYPES", "SafeAddressLoader", "_dataSource", "_certificateLoader", "input", "expectedTypes", "type", "safeContractAddress", "chainId", "deviceModelId", "challenge", "error", "account", "signers", "__decorateClass", "__decorateParam"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var o=require("@ledgerhq/device-management-kit"),d=require("purify-ts"),u=require("../../safe/domain/SafeAddressLoader"),e=require("../../shared/model/ClearSignContext");describe("SafeAddressLoader",()=>{const n={getDescriptors:vi.fn()},r={loadCertificate:vi.fn()},s=new u.SafeAddressLoader(n,r),l={keyUsageNumber:1,payload:new Uint8Array([1,2,3])},i={account:{signedDescriptor:"safe-descriptor-payload",keyId:"safe-key-id",keyUsage:"safe-key-usage"},signers:{signedDescriptor:"signers-descriptor-payload",keyId:"signers-key-id",keyUsage:"signers-key-usage"}};beforeEach(()=>{vi.clearAllMocks(),vi.spyOn(r,"loadCertificate").mockResolvedValue(l)}),describe("canHandle function",()=>{const t={safeContractAddress:"0x1234567890123456789012345678901234567890",chainId:1,deviceModelId:o.DeviceModelId.FLEX,challenge:"0xabcdef"};it("should return true for valid input with SAFE and SIGNER types",()=>{expect(s.canHandle(t,[e.ClearSignContextType.SAFE,e.ClearSignContextType.SIGNER])).toBe(!0)}),it("should return true when expected types are subset of SAFE and SIGNER",()=>{expect(s.canHandle(t,[e.ClearSignContextType.SAFE])).toBe(!0),expect(s.canHandle(t,[e.ClearSignContextType.SIGNER])).toBe(!0)}),it("should return false when expected types include unsupported types",()=>{expect(s.canHandle(t,[e.ClearSignContextType.TOKEN])).toBe(!1),expect(s.canHandle(t,[e.ClearSignContextType.NFT])).toBe(!1)}),it("should return false when expected types include other types besides SAFE and SIGNER",()=>{expect(s.canHandle(t,[e.ClearSignContextType.SAFE,e.ClearSignContextType.SIGNER,e.ClearSignContextType.TOKEN])).toBe(!1)}),it.each([[null,"null input"],[void 0,"undefined input"],[{},"empty object"],["string","string input"],[123,"number input"],[[],"array input"]])("should return false for %s",(a,c)=>{expect(s.canHandle(a,[e.ClearSignContextType.SAFE,e.ClearSignContextType.SIGNER])).toBe(!1)}),it.each([[{...t,safeContractAddress:void 0},"missing safeContractAddress"],[{...t,chainId:void 0},"missing chainId"],[{...t,deviceModelId:void 0},"missing deviceModelId"],[{...t,challenge:void 0},"missing challenge"]])("should return false for %s",(a,c)=>{expect(s.canHandle(a,[e.ClearSignContextType.SAFE,e.ClearSignContextType.SIGNER])).toBe(!1)}),it.each([[{...t,safeContractAddress:"invalid-hex"},"invalid safeContractAddress hex"],[{...t,safeContractAddress:"0x"},"empty safeContractAddress (0x)"],[{...t,safeContractAddress:"not-hex"},"non-hex safeContractAddress"],[{...t,safeContractAddress:123},"number safeContractAddress"]])("should return false for %s",(a,c)=>{expect(s.canHandle(a,[e.ClearSignContextType.SAFE,e.ClearSignContextType.SIGNER])).toBe(!1)}),it.each([[{...t,chainId:"1"},"string chainId"],[{...t,chainId:null},"null chainId"],[{...t,chainId:void 0},"undefined chainId"]])("should return false for %s",(a,c)=>{expect(s.canHandle(a,[e.ClearSignContextType.SAFE,e.ClearSignContextType.SIGNER])).toBe(!1)}),it.each([[{...t,challenge:""},"empty challenge string"],[{...t,challenge:123},"number challenge"],[{...t,challenge:null},"null challenge"]])("should return false for %s",(a,c)=>{expect(s.canHandle(a,[e.ClearSignContextType.SAFE,e.ClearSignContextType.SIGNER])).toBe(!1)}),it("should return true for different device models",()=>{expect(s.canHandle({...t,deviceModelId:o.DeviceModelId.NANO_S},[e.ClearSignContextType.SAFE,e.ClearSignContextType.SIGNER])).toBe(!0),expect(s.canHandle({...t,deviceModelId:o.DeviceModelId.NANO_SP},[e.ClearSignContextType.SAFE,e.ClearSignContextType.SIGNER])).toBe(!0),expect(s.canHandle({...t,deviceModelId:o.DeviceModelId.NANO_X},[e.ClearSignContextType.SAFE,e.ClearSignContextType.SIGNER])).toBe(!0),expect(s.canHandle({...t,deviceModelId:o.DeviceModelId.STAX},[e.ClearSignContextType.SAFE,e.ClearSignContextType.SIGNER])).toBe(!0),expect(s.canHandle({...t,deviceModelId:o.DeviceModelId.FLEX},[e.ClearSignContextType.SAFE,e.ClearSignContextType.SIGNER])).toBe(!0)}),it("should return true for different chain IDs",()=>{expect(s.canHandle({...t,chainId:1},[e.ClearSignContextType.SAFE,e.ClearSignContextType.SIGNER])).toBe(!0),expect(s.canHandle({...t,chainId:137},[e.ClearSignContextType.SAFE,e.ClearSignContextType.SIGNER])).toBe(!0),expect(s.canHandle({...t,chainId:10},[e.ClearSignContextType.SAFE,e.ClearSignContextType.SIGNER])).toBe(!0)})}),describe("load function",()=>{const t={safeContractAddress:"0x1234567890123456789012345678901234567890",chainId:1,deviceModelId:o.DeviceModelId.FLEX,challenge:"0xabcdef"};it("should return SAFE and SIGNER contexts with certificates",async()=>{vi.spyOn(n,"getDescriptors").mockResolvedValue((0,d.Right)(i));const a=await s.load(t);expect(n.getDescriptors).toHaveBeenCalledWith({safeContractAddress:"0x1234567890123456789012345678901234567890",chainId:1,challenge:"0xabcdef"}),expect(r.loadCertificate).toHaveBeenCalledTimes(2),expect(r.loadCertificate).toHaveBeenNthCalledWith(1,{keyId:"safe-key-id",keyUsage:"safe-key-usage",targetDevice:o.DeviceModelId.FLEX}),expect(r.loadCertificate).toHaveBeenNthCalledWith(2,{keyId:"signers-key-id",keyUsage:"signers-key-usage",targetDevice:o.DeviceModelId.FLEX}),expect(a).toEqual([{type:e.ClearSignContextType.SAFE,payload:"safe-descriptor-payload",certificate:l},{type:e.ClearSignContextType.SIGNER,payload:"signers-descriptor-payload",certificate:l}])}),it("should return SAFE and SIGNER contexts without certificates when loadCertificate returns undefined",async()=>{vi.spyOn(n,"getDescriptors").mockResolvedValue((0,d.Right)(i)),vi.spyOn(r,"loadCertificate").mockResolvedValue(void 0);const a=await s.load(t);expect(a).toEqual([{type:e.ClearSignContextType.SAFE,payload:"safe-descriptor-payload",certificate:void 0},{type:e.ClearSignContextType.SIGNER,payload:"signers-descriptor-payload",certificate:void 0}])}),it("should return ERROR context when data source returns Left",async()=>{const a=new Error("Failed to get safe account descriptors");vi.spyOn(n,"getDescriptors").mockResolvedValue((0,d.Left)(a));const c=await s.load(t);expect(c).toEqual([{type:e.ClearSignContextType.ERROR,error:a}]),expect(r.loadCertificate).not.toHaveBeenCalled()}),it("should work with different device models",async()=>{const a={...t,deviceModelId:o.DeviceModelId.NANO_S};vi.spyOn(n,"getDescriptors").mockResolvedValue((0,d.Right)(i));const c=await s.load(a);expect(r.loadCertificate).toHaveBeenCalledWith(expect.objectContaining({targetDevice:o.DeviceModelId.NANO_S})),expect(c).toHaveLength(2),expect(c[0]?.type).toBe(e.ClearSignContextType.SAFE),expect(c[1]?.type).toBe(e.ClearSignContextType.SIGNER)}),it("should work with different chain IDs",async()=>{const a={...t,chainId:137};vi.spyOn(n,"getDescriptors").mockResolvedValue((0,d.Right)(i)),await s.load(a),expect(n.getDescriptors).toHaveBeenCalledWith(expect.objectContaining({chainId:137}))}),it("should work with different safe addresses",async()=>{const a={...t,safeContractAddress:"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd"};vi.spyOn(n,"getDescriptors").mockResolvedValue((0,d.Right)(i)),await s.load(a),expect(n.getDescriptors).toHaveBeenCalledWith(expect.objectContaining({safeContractAddress:"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd"}))}),it("should handle different certificate data for account and signers",async()=>{const a={keyUsageNumber:1,payload:new Uint8Array([1,2,3])},c={keyUsageNumber:2,payload:new Uint8Array([4,5,6])};vi.spyOn(n,"getDescriptors").mockResolvedValue((0,d.Right)(i)),vi.spyOn(r,"loadCertificate").mockResolvedValueOnce(a).mockResolvedValueOnce(c);const p=await s.load(t);expect(p).toEqual([{type:e.ClearSignContextType.SAFE,payload:"safe-descriptor-payload",certificate:a},{type:e.ClearSignContextType.SIGNER,payload:"signers-descriptor-payload",certificate:c}])}),it("should handle empty descriptor payloads",async()=>{const a={account:{signedDescriptor:"",keyId:"key-id",keyUsage:"key-usage"},signers:{signedDescriptor:"",keyId:"key-id",keyUsage:"key-usage"}};vi.spyOn(n,"getDescriptors").mockResolvedValue((0,d.Right)(a));const c=await s.load(t);expect(c).toEqual([{type:e.ClearSignContextType.SAFE,payload:"",certificate:l},{type:e.ClearSignContextType.SIGNER,payload:"",certificate:l}])}),it("should handle long descriptor payloads",async()=>{const a="a".repeat(1e3),c={account:{signedDescriptor:a,keyId:"key-id",keyUsage:"key-usage"},signers:{signedDescriptor:a,keyId:"key-id",keyUsage:"key-usage"}};vi.spyOn(n,"getDescriptors").mockResolvedValue((0,d.Right)(c));const p=await s.load(t);expect(p[0].payload).toBe(a),expect(p[1].payload).toBe(a)}),it("should handle data source errors gracefully",async()=>{const a=new Error("Network error");vi.spyOn(n,"getDescriptors").mockResolvedValue((0,d.Left)(a));const c=await s.load(t);expect(c).toEqual([{type:e.ClearSignContextType.ERROR,error:new Error("Network error")}])})})});
2
+ //# sourceMappingURL=SafeAddressLoader.test.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/safe/domain/SafeAddressLoader.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 { type PkiCertificate } from \"@/pki/model/PkiCertificate\";\nimport {\n type GetSafeAccountResponse,\n type SafeAccountDataSource,\n} from \"@/safe/data/SafeAccountDataSource\";\nimport {\n type SafeAddressContextInput,\n SafeAddressLoader,\n} from \"@/safe/domain/SafeAddressLoader\";\nimport {\n type ClearSignContextSuccess,\n ClearSignContextType,\n} from \"@/shared/model/ClearSignContext\";\n\ndescribe(\"SafeAddressLoader\", () => {\n const mockSafeAccountDataSource: SafeAccountDataSource = {\n getDescriptors: vi.fn(),\n };\n const mockPkiCertificateLoader: PkiCertificateLoader = {\n loadCertificate: vi.fn(),\n };\n const loader = new SafeAddressLoader(\n mockSafeAccountDataSource,\n mockPkiCertificateLoader,\n );\n\n const mockCertificate: PkiCertificate = {\n keyUsageNumber: 1,\n payload: new Uint8Array([1, 2, 3]),\n };\n\n const mockSafeAccountResponse: GetSafeAccountResponse = {\n account: {\n signedDescriptor: \"safe-descriptor-payload\",\n keyId: \"safe-key-id\",\n keyUsage: \"safe-key-usage\",\n },\n signers: {\n signedDescriptor: \"signers-descriptor-payload\",\n keyId: \"signers-key-id\",\n keyUsage: \"signers-key-usage\",\n },\n };\n\n beforeEach(() => {\n vi.clearAllMocks();\n vi.spyOn(mockPkiCertificateLoader, \"loadCertificate\").mockResolvedValue(\n mockCertificate,\n );\n });\n\n describe(\"canHandle function\", () => {\n const validInput: SafeAddressContextInput = {\n safeContractAddress: \"0x1234567890123456789012345678901234567890\",\n chainId: 1,\n deviceModelId: DeviceModelId.FLEX,\n challenge: \"0xabcdef\",\n };\n\n it(\"should return true for valid input with SAFE and SIGNER types\", () => {\n expect(\n loader.canHandle(validInput, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(true);\n });\n\n it(\"should return true when expected types are subset of SAFE and SIGNER\", () => {\n expect(loader.canHandle(validInput, [ClearSignContextType.SAFE])).toBe(\n true,\n );\n expect(loader.canHandle(validInput, [ClearSignContextType.SIGNER])).toBe(\n true,\n );\n });\n\n it(\"should return false when expected types include unsupported types\", () => {\n expect(loader.canHandle(validInput, [ClearSignContextType.TOKEN])).toBe(\n false,\n );\n expect(loader.canHandle(validInput, [ClearSignContextType.NFT])).toBe(\n false,\n );\n });\n\n it(\"should return false when expected types include other types besides SAFE and SIGNER\", () => {\n expect(\n loader.canHandle(validInput, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ClearSignContextType.TOKEN,\n ]),\n ).toBe(false);\n });\n\n it.each([\n [null, \"null input\"],\n [undefined, \"undefined input\"],\n [{}, \"empty object\"],\n [\"string\", \"string input\"],\n [123, \"number input\"],\n [[], \"array input\"],\n ])(\"should return false for %s\", (input, _description) => {\n expect(\n loader.canHandle(input, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(false);\n });\n\n it.each([\n [\n { ...validInput, safeContractAddress: undefined },\n \"missing safeContractAddress\",\n ],\n [{ ...validInput, chainId: undefined }, \"missing chainId\"],\n [{ ...validInput, deviceModelId: undefined }, \"missing deviceModelId\"],\n [{ ...validInput, challenge: undefined }, \"missing challenge\"],\n ])(\"should return false for %s\", (input, _description) => {\n expect(\n loader.canHandle(input, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(false);\n });\n\n it.each([\n [\n { ...validInput, safeContractAddress: \"invalid-hex\" },\n \"invalid safeContractAddress hex\",\n ],\n [\n { ...validInput, safeContractAddress: \"0x\" },\n \"empty safeContractAddress (0x)\",\n ],\n [\n { ...validInput, safeContractAddress: \"not-hex\" },\n \"non-hex safeContractAddress\",\n ],\n [\n { ...validInput, safeContractAddress: 123 },\n \"number safeContractAddress\",\n ],\n ])(\"should return false for %s\", (input, _description) => {\n expect(\n loader.canHandle(input, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(false);\n });\n\n it.each([\n [{ ...validInput, chainId: \"1\" }, \"string chainId\"],\n [{ ...validInput, chainId: null }, \"null chainId\"],\n [{ ...validInput, chainId: undefined }, \"undefined chainId\"],\n ])(\"should return false for %s\", (input, _description) => {\n expect(\n loader.canHandle(input, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(false);\n });\n\n it.each([\n [{ ...validInput, challenge: \"\" }, \"empty challenge string\"],\n [{ ...validInput, challenge: 123 }, \"number challenge\"],\n [{ ...validInput, challenge: null }, \"null challenge\"],\n ])(\"should return false for %s\", (input, _description) => {\n expect(\n loader.canHandle(input, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(false);\n });\n\n it(\"should return true for different device models\", () => {\n expect(\n loader.canHandle(\n { ...validInput, deviceModelId: DeviceModelId.NANO_S },\n [ClearSignContextType.SAFE, ClearSignContextType.SIGNER],\n ),\n ).toBe(true);\n expect(\n loader.canHandle(\n { ...validInput, deviceModelId: DeviceModelId.NANO_SP },\n [ClearSignContextType.SAFE, ClearSignContextType.SIGNER],\n ),\n ).toBe(true);\n expect(\n loader.canHandle(\n { ...validInput, deviceModelId: DeviceModelId.NANO_X },\n [ClearSignContextType.SAFE, ClearSignContextType.SIGNER],\n ),\n ).toBe(true);\n expect(\n loader.canHandle({ ...validInput, deviceModelId: DeviceModelId.STAX }, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(true);\n expect(\n loader.canHandle({ ...validInput, deviceModelId: DeviceModelId.FLEX }, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(true);\n });\n\n it(\"should return true for different chain IDs\", () => {\n expect(\n loader.canHandle({ ...validInput, chainId: 1 }, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(true);\n expect(\n loader.canHandle({ ...validInput, chainId: 137 }, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(true);\n expect(\n loader.canHandle({ ...validInput, chainId: 10 }, [\n ClearSignContextType.SAFE,\n ClearSignContextType.SIGNER,\n ]),\n ).toBe(true);\n });\n });\n\n describe(\"load function\", () => {\n const input: SafeAddressContextInput = {\n safeContractAddress: \"0x1234567890123456789012345678901234567890\",\n chainId: 1,\n deviceModelId: DeviceModelId.FLEX,\n challenge: \"0xabcdef\",\n };\n\n it(\"should return SAFE and SIGNER contexts with certificates\", async () => {\n // GIVEN\n vi.spyOn(mockSafeAccountDataSource, \"getDescriptors\").mockResolvedValue(\n Right(mockSafeAccountResponse),\n );\n\n // WHEN\n const result = await loader.load(input);\n\n // THEN\n expect(mockSafeAccountDataSource.getDescriptors).toHaveBeenCalledWith({\n safeContractAddress: \"0x1234567890123456789012345678901234567890\",\n chainId: 1,\n challenge: \"0xabcdef\",\n });\n expect(mockPkiCertificateLoader.loadCertificate).toHaveBeenCalledTimes(2);\n expect(mockPkiCertificateLoader.loadCertificate).toHaveBeenNthCalledWith(\n 1,\n {\n keyId: \"safe-key-id\",\n keyUsage: \"safe-key-usage\",\n targetDevice: DeviceModelId.FLEX,\n },\n );\n expect(mockPkiCertificateLoader.loadCertificate).toHaveBeenNthCalledWith(\n 2,\n {\n keyId: \"signers-key-id\",\n keyUsage: \"signers-key-usage\",\n targetDevice: DeviceModelId.FLEX,\n },\n );\n expect(result).toEqual([\n {\n type: ClearSignContextType.SAFE,\n payload: \"safe-descriptor-payload\",\n certificate: mockCertificate,\n },\n {\n type: ClearSignContextType.SIGNER,\n payload: \"signers-descriptor-payload\",\n certificate: mockCertificate,\n },\n ]);\n });\n\n it(\"should return SAFE and SIGNER contexts without certificates when loadCertificate returns undefined\", async () => {\n // GIVEN\n vi.spyOn(mockSafeAccountDataSource, \"getDescriptors\").mockResolvedValue(\n Right(mockSafeAccountResponse),\n );\n vi.spyOn(mockPkiCertificateLoader, \"loadCertificate\").mockResolvedValue(\n undefined,\n );\n\n // WHEN\n const result = await loader.load(input);\n\n // THEN\n expect(result).toEqual([\n {\n type: ClearSignContextType.SAFE,\n payload: \"safe-descriptor-payload\",\n certificate: undefined,\n },\n {\n type: ClearSignContextType.SIGNER,\n payload: \"signers-descriptor-payload\",\n certificate: undefined,\n },\n ]);\n });\n\n it(\"should return ERROR context when data source returns Left\", async () => {\n // GIVEN\n const error = new Error(\"Failed to get safe account descriptors\");\n vi.spyOn(mockSafeAccountDataSource, \"getDescriptors\").mockResolvedValue(\n Left(error),\n );\n\n // WHEN\n const result = await loader.load(input);\n\n // THEN\n expect(result).toEqual([\n {\n type: ClearSignContextType.ERROR,\n error,\n },\n ]);\n expect(mockPkiCertificateLoader.loadCertificate).not.toHaveBeenCalled();\n });\n\n it(\"should work with different device models\", async () => {\n // GIVEN\n const inputNanoS = { ...input, deviceModelId: DeviceModelId.NANO_S };\n vi.spyOn(mockSafeAccountDataSource, \"getDescriptors\").mockResolvedValue(\n Right(mockSafeAccountResponse),\n );\n\n // WHEN\n const result = await loader.load(inputNanoS);\n\n // THEN\n expect(mockPkiCertificateLoader.loadCertificate).toHaveBeenCalledWith(\n expect.objectContaining({\n targetDevice: DeviceModelId.NANO_S,\n }),\n );\n expect(result).toHaveLength(2);\n expect(result[0]?.type).toBe(ClearSignContextType.SAFE);\n expect(result[1]?.type).toBe(ClearSignContextType.SIGNER);\n });\n\n it(\"should work with different chain IDs\", async () => {\n // GIVEN\n const inputPolygon = { ...input, chainId: 137 };\n vi.spyOn(mockSafeAccountDataSource, \"getDescriptors\").mockResolvedValue(\n Right(mockSafeAccountResponse),\n );\n\n // WHEN\n await loader.load(inputPolygon);\n\n // THEN\n expect(mockSafeAccountDataSource.getDescriptors).toHaveBeenCalledWith(\n expect.objectContaining({\n chainId: 137,\n }),\n );\n });\n\n it(\"should work with different safe addresses\", async () => {\n // GIVEN\n const differentInput = {\n ...input,\n safeContractAddress:\n \"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd\" as const,\n };\n vi.spyOn(mockSafeAccountDataSource, \"getDescriptors\").mockResolvedValue(\n Right(mockSafeAccountResponse),\n );\n\n // WHEN\n await loader.load(differentInput);\n\n // THEN\n expect(mockSafeAccountDataSource.getDescriptors).toHaveBeenCalledWith(\n expect.objectContaining({\n safeContractAddress: \"0xabcdefabcdefabcdefabcdefabcdefabcdefabcd\",\n }),\n );\n });\n\n it(\"should handle different certificate data for account and signers\", async () => {\n // GIVEN\n const accountCertificate: PkiCertificate = {\n keyUsageNumber: 1,\n payload: new Uint8Array([1, 2, 3]),\n };\n const signersCertificate: PkiCertificate = {\n keyUsageNumber: 2,\n payload: new Uint8Array([4, 5, 6]),\n };\n vi.spyOn(mockSafeAccountDataSource, \"getDescriptors\").mockResolvedValue(\n Right(mockSafeAccountResponse),\n );\n vi.spyOn(mockPkiCertificateLoader, \"loadCertificate\")\n .mockResolvedValueOnce(accountCertificate)\n .mockResolvedValueOnce(signersCertificate);\n\n // WHEN\n const result = await loader.load(input);\n\n // THEN\n expect(result).toEqual([\n {\n type: ClearSignContextType.SAFE,\n payload: \"safe-descriptor-payload\",\n certificate: accountCertificate,\n },\n {\n type: ClearSignContextType.SIGNER,\n payload: \"signers-descriptor-payload\",\n certificate: signersCertificate,\n },\n ]);\n });\n\n it(\"should handle empty descriptor payloads\", async () => {\n // GIVEN\n const emptyResponse: GetSafeAccountResponse = {\n account: {\n signedDescriptor: \"\",\n keyId: \"key-id\",\n keyUsage: \"key-usage\",\n },\n signers: {\n signedDescriptor: \"\",\n keyId: \"key-id\",\n keyUsage: \"key-usage\",\n },\n };\n vi.spyOn(mockSafeAccountDataSource, \"getDescriptors\").mockResolvedValue(\n Right(emptyResponse),\n );\n\n // WHEN\n const result = await loader.load(input);\n\n // THEN\n expect(result).toEqual([\n {\n type: ClearSignContextType.SAFE,\n payload: \"\",\n certificate: mockCertificate,\n },\n {\n type: ClearSignContextType.SIGNER,\n payload: \"\",\n certificate: mockCertificate,\n },\n ]);\n });\n\n it(\"should handle long descriptor payloads\", async () => {\n // GIVEN\n const longPayload = \"a\".repeat(1000);\n const longResponse: GetSafeAccountResponse = {\n account: {\n signedDescriptor: longPayload,\n keyId: \"key-id\",\n keyUsage: \"key-usage\",\n },\n signers: {\n signedDescriptor: longPayload,\n keyId: \"key-id\",\n keyUsage: \"key-usage\",\n },\n };\n vi.spyOn(mockSafeAccountDataSource, \"getDescriptors\").mockResolvedValue(\n Right(longResponse),\n );\n\n // WHEN\n const result = await loader.load(input);\n\n // THEN\n expect((result[0] as ClearSignContextSuccess).payload).toBe(longPayload);\n expect((result[1] as ClearSignContextSuccess).payload).toBe(longPayload);\n });\n\n it(\"should handle data source errors gracefully\", async () => {\n // GIVEN\n const error = new Error(\"Network error\");\n vi.spyOn(mockSafeAccountDataSource, \"getDescriptors\").mockResolvedValue(\n Left(error),\n );\n\n // WHEN\n const result = await loader.load(input);\n\n // THEN\n expect(result).toEqual([\n {\n type: ClearSignContextType.ERROR,\n error: new Error(\"Network error\"),\n },\n ]);\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_device_management_kit", "import_purify_ts", "import_SafeAddressLoader", "import_ClearSignContext", "mockSafeAccountDataSource", "mockPkiCertificateLoader", "loader", "mockCertificate", "mockSafeAccountResponse", "validInput", "input", "_description", "result", "error", "inputNanoS", "inputPolygon", "differentInput", "accountCertificate", "signersCertificate", "emptyResponse", "longPayload", "longResponse"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var i=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var r=Object.prototype.hasOwnProperty;var C=(n,e,l,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of p(e))!r.call(n,t)&&t!==l&&i(n,t,{get:()=>e[t],enumerable:!(o=a(e,t))||o.enumerable});return n};var d=n=>C(i({},"__esModule",{value:!0}),n);var x={};module.exports=d(x);
2
+ //# sourceMappingURL=ContextFieldLoader.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/shared/domain/ContextFieldLoader.ts"],
4
+ "sourcesContent": ["import {\n type ClearSignContext,\n type ClearSignContextType,\n} from \"@/shared/model/ClearSignContext\";\n\nexport interface ContextFieldLoader<TInput = unknown> {\n /**\n * @param field - The field to load\n * @returns The loaded context\n */\n loadField: (field: TInput) => Promise<ClearSignContext>;\n\n /**\n * @param field - The field to load\n * @param expectedType - The type of the context to load\n * @returns True if the loader can handle the field, false otherwise\n */\n canHandle: (field: unknown, expectedType: ClearSignContextType) => boolean;\n}\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["ContextFieldLoader_exports", "__toCommonJS"]
7
+ }
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var x=(e,t,i,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of l(t))!C.call(e,o)&&o!==i&&a(e,o,{get:()=>t[o],enumerable:!(n=r(t,o))||n.enumerable});return e};var d=e=>x(a({},"__esModule",{value:!0}),e);var p={};module.exports=d(p);
1
+ "use strict";var o=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var u=(e,n,i,p)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of C(n))!a.call(e,t)&&t!==i&&o(e,t,{get:()=>n[t],enumerable:!(p=r(n,t))||p.enumerable});return e};var x=e=>u(o({},"__esModule",{value:!0}),e);var l={};module.exports=x(l);
2
2
  //# sourceMappingURL=ContextLoader.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/shared/domain/ContextLoader.ts"],
4
- "sourcesContent": ["import { type ClearSignContext } from \"@/shared/model/ClearSignContext\";\nimport {\n type TransactionContext,\n type TransactionFieldContext,\n} from \"@/shared/model/TransactionContext\";\n\nexport type ContextLoader = {\n load: (transaction: TransactionContext) => Promise<ClearSignContext[]>;\n loadField?: (\n field: TransactionFieldContext,\n ) => Promise<ClearSignContext | null>;\n};\n"],
4
+ "sourcesContent": ["import {\n type ClearSignContext,\n type ClearSignContextType,\n} from \"@/shared/model/ClearSignContext\";\n\nexport type ContextLoader<TInput = unknown> = {\n /**\n * @param input - The input to load context for\n * @returns The loaded contexts\n */\n load: (input: TInput) => Promise<ClearSignContext[]>;\n\n /**\n * @param input - The input to check\n * @param expectedTypes - The expected types of the context to load\n * @returns True if the loader can handle the input, false otherwise\n */\n canHandle: (\n input: unknown,\n expectedTypes: ClearSignContextType[],\n ) => input is TInput;\n};\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["ContextLoader_exports", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var c=(r,t)=>{for(var i in t)a(r,i,{get:t[i],enumerable:!0})},l=(r,t,i,p)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of y(t))!T.call(r,n)&&n!==i&&a(r,n,{get:()=>t[n],enumerable:!(p=o(t,n))||p.enumerable});return r};var x=r=>l(a({},"__esModule",{value:!0}),r);var E={};c(E,{ClearSignContextType:()=>C});module.exports=x(E);var C=(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))(C||{});0&&(module.exports={ClearSignContextType});
1
+ "use strict";var c=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var R=(r,t)=>{for(var i in t)c(r,i,{get:t[i],enumerable:!0})},l=(r,t,i,T)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of p(t))!C.call(r,n)&&n!==i&&c(r,n,{get:()=>t[n],enumerable:!(T=o(t,n))||T.enumerable});return r};var s=r=>l(c({},"__esModule",{value:!0}),r);var y={};R(y,{ClearSignContextReferenceType:()=>N,ClearSignContextType:()=>E});module.exports=s(y);var E=(e=>(e.TOKEN="token",e.NFT="nft",e.TRUSTED_NAME="trustedName",e.PLUGIN="plugin",e.EXTERNAL_PLUGIN="externalPlugin",e.TRANSACTION_INFO="transactionInfo",e.PROXY_INFO="proxyInfo",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.SAFE="safe",e.SIGNER="signer",e))(E||{}),N=(a=>(a.TOKEN="token",a.NFT="nft",a.TRUSTED_NAME="trustedName",a.ENUM="enum",a.CALLDATA="calldata",a))(N||{});0&&(module.exports={ClearSignContextReferenceType,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": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,IAAA,eAAAC,EAAAH,GAIO,IAAKE,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": ["ClearSignContext_exports", "__export", "ClearSignContextType", "__toCommonJS"]
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_INFO = \"proxyInfo\",\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 SAFE = \"safe\",\n SIGNER = \"signer\",\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": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mCAAAE,EAAA,yBAAAC,IAAA,eAAAC,EAAAJ,GAIO,IAAKG,OACVA,EAAA,MAAQ,QACRA,EAAA,IAAM,MACNA,EAAA,aAAe,cACfA,EAAA,OAAS,SACTA,EAAA,gBAAkB,iBAClBA,EAAA,iBAAmB,kBACnBA,EAAA,WAAa,YACbA,EAAA,KAAO,OACPA,EAAA,8BAAgC,8BAChCA,EAAA,WAAa,YACbA,EAAA,gBAAkB,iBAClBA,EAAA,qBAAuB,qBACvBA,EAAA,MAAQ,QACRA,EAAA,KAAO,OACPA,EAAA,OAAS,SAfCA,OAAA,IAkBAD,OACVA,EAAA,MAAQ,QACRA,EAAA,IAAM,MACNA,EAAA,aAAe,cACfA,EAAA,KAAO,OACPA,EAAA,SAAW,WALDA,OAAA",
6
+ "names": ["ClearSignContext_exports", "__export", "ClearSignContextReferenceType", "ClearSignContextType", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var r=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var b=(n,t,a,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of g(t))!o.call(n,e)&&e!==a&&r(n,e,{get:()=>t[e],enumerable:!(i=s(t,e))||i.enumerable});return n};var c=n=>b(r({},"__esModule",{value:!0}),n);var u={};module.exports=c(u);
1
+ "use strict";var e=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var b=(n,t,s,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of g(t))!o.call(n,r)&&r!==s&&e(n,r,{get:()=>t[r],enumerable:!(i=a(t,r))||i.enumerable});return n};var c=n=>b(e({},"__esModule",{value:!0}),n);var u={};module.exports=c(u);
2
2
  //# sourceMappingURL=TransactionSubset.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/shared/model/TransactionSubset.ts"],
4
- "sourcesContent": ["export type TransactionSubset = {\n chainId: number;\n data: string; // only used by external plugin loader\n selector: string;\n to?: string;\n value?: bigint;\n};\n"],
4
+ "sourcesContent": ["export type TransactionSubset = {\n chainId: number;\n data: string;\n selector: string;\n to?: string;\n value?: bigint;\n from?: string;\n};\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["TransactionSubset_exports", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var p=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var d=(t,e)=>{for(var r in e)p(t,r,{get:e[r],enumerable:!0})},o=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of i(e))!y.call(t,a)&&a!==r&&p(t,a,{get:()=>e[a],enumerable:!(n=s(e,a))||n.enumerable});return t};var T=t=>o(p({},"__esModule",{value:!0}),t);var l={};d(l,{VERIFYING_CONTRACT_TOKEN_INDEX:()=>g});module.exports=T(l);const g=255;0&&(module.exports={VERIFYING_CONTRACT_TOKEN_INDEX});
1
+ "use strict";var p=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var s=(t,e)=>{for(var n in e)p(t,n,{get:e[n],enumerable:!0})},y=(t,e,n,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of o(e))!i.call(t,r)&&r!==n&&p(t,r,{get:()=>e[r],enumerable:!(a=d(e,r))||a.enumerable});return t};var T=t=>y(p({},"__esModule",{value:!0}),t);var x={};s(x,{TypedDataCalldataParamPresence:()=>l,VERIFYING_CONTRACT_TOKEN_INDEX:()=>g});module.exports=T(x);const g=255;var l=(a=>(a.None="none",a.Present="present",a.VerifyingContract="verifying_contract",a))(l||{});0&&(module.exports={TypedDataCalldataParamPresence,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": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oCAAAE,IAAA,eAAAC,EAAAH,GAaO,MAAME,EAAiC",
6
- "names": ["TypedDataClearSignContext_exports", "__export", "VERIFYING_CONTRACT_TOKEN_INDEX", "__toCommonJS"]
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_INFO>;\n};\nexport type TypedDataClearSignContextError = {\n type: \"error\";\n error: Error;\n};\nexport type TypedDataClearSignContext =\n | TypedDataClearSignContextSuccess\n | TypedDataClearSignContextError;\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oCAAAE,EAAA,mCAAAC,IAAA,eAAAC,EAAAJ,GAqBO,MAAMG,EAAiC,IA6CvC,IAAKD,OACVA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,kBAAoB,qBAHVA,OAAA",
6
+ "names": ["TypedDataClearSignContext_exports", "__export", "TypedDataCalldataParamPresence", "VERIFYING_CONTRACT_TOKEN_INDEX", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var i=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var d=(a,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of y(e))!s.call(a,t)&&t!==n&&i(a,t,{get:()=>e[t],enumerable:!(r=p(e,t))||r.enumerable});return a};var l=a=>d(i({},"__esModule",{value:!0}),a);var o={};module.exports=l(o);
1
+ "use strict";var i=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var l=(t,e,d,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of p(e))!y.call(t,a)&&a!==d&&i(t,a,{get:()=>e[a],enumerable:!(r=n(e,a))||r.enumerable});return t};var o=t=>l(i({},"__esModule",{value:!0}),t);var s={};module.exports=o(s);
2
2
  //# sourceMappingURL=TypedDataContext.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/shared/model/TypedDataContext.ts"],
4
- "sourcesContent": ["// The schema of a typed message\nexport type TypedDataSchema = Record<\n string,\n Array<{ name: string; type: string }>\n>;\n\n// The extracted message values, with their path\nexport type TypedDataFieldValues = Array<{ path: string; value: Uint8Array }>;\n\n// Context needed to fetch the clear signing context of a typed message\nexport type TypedDataContext = {\n verifyingContract: string;\n chainId: number;\n version: \"v1\" | \"v2\";\n schema: TypedDataSchema;\n fieldsValues: TypedDataFieldValues;\n};\n"],
4
+ "sourcesContent": ["import { type DeviceModelId } from \"@ledgerhq/device-management-kit\";\n\n// The schema of a typed message\nexport type TypedDataSchema = Record<\n string,\n Array<{ name: string; type: string }>\n>;\n\n// The extracted message values, with their path\nexport type TypedDataFieldValues = Array<{ path: string; value: Uint8Array }>;\n\n// Context needed to fetch the clear signing context of a typed message\nexport type TypedDataContext = {\n deviceModelId: DeviceModelId; // needed to fetch the correct certificate\n verifyingContract: string;\n chainId: number;\n version: \"v1\" | \"v2\";\n schema: TypedDataSchema;\n fieldsValues: TypedDataFieldValues;\n challenge?: string;\n};\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["TypedDataContext_exports", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var i=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var u=(t,a)=>{for(var s in a)i(t,s,{get:a[s],enumerable:!0})},y=(t,a,s,g)=>{if(a&&typeof a=="object"||typeof a=="function")for(let r of o(a))!p.call(t,r)&&r!==s&&i(t,r,{get:()=>a[r],enumerable:!(g=n(a,r))||g.enumerable});return t};var c=t=>y(i({},"__esModule",{value:!0}),t);var U={};u(U,{KeyUsageMapper:()=>m});module.exports=c(U);var e=require("../../pki/model/KeyUsage");class m{static keyUsageMap=new Map([[e.KeyUsage.GenuineCheck,1],[e.KeyUsage.ExchangePayload,2],[e.KeyUsage.NftMeta,3],[e.KeyUsage.TrustedName,4],[e.KeyUsage.BackupProvider,5],[e.KeyUsage.ProtectOrchestrator,6],[e.KeyUsage.PluginMeta,7],[e.KeyUsage.CoinMeta,8],[e.KeyUsage.SeedIdAuth,9],[e.KeyUsage.TxSimulationSigner,10],[e.KeyUsage.Calldata,11],[e.KeyUsage.Network,12]]);static mapKeyUsageForFirmware(a){return this.keyUsageMap.get(a)??-1}}0&&(module.exports={KeyUsageMapper});
1
+ "use strict";var i=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var c=(t,a)=>{for(var s in a)i(t,s,{get:a[s],enumerable:!0})},p=(t,a,s,n)=>{if(a&&typeof a=="object"||typeof a=="function")for(let r of u(a))!o.call(t,r)&&r!==s&&i(t,r,{get:()=>a[r],enumerable:!(n=g(a,r))||n.enumerable});return t};var l=t=>p(i({},"__esModule",{value:!0}),t);var y={};c(y,{KeyUsageMapper:()=>m});module.exports=l(y);var e=require("../../pki/model/KeyUsage");class m{static keyUsageMap=new Map([[e.KeyUsage.GenuineCheck,1],[e.KeyUsage.ExchangePayload,2],[e.KeyUsage.NftMeta,3],[e.KeyUsage.TrustedName,4],[e.KeyUsage.BackupProvider,5],[e.KeyUsage.ProtectOrchestrator,6],[e.KeyUsage.PluginMeta,7],[e.KeyUsage.CoinMeta,8],[e.KeyUsage.SeedIdAuth,9],[e.KeyUsage.TxSimulationSigner,10],[e.KeyUsage.Calldata,11],[e.KeyUsage.Network,12],[e.KeyUsage.LESMultisig,14]]);static mapKeyUsageForFirmware(a){return Object.values(e.KeyUsage).includes(a)?this.keyUsageMap.get(a)??-1:-1}}0&&(module.exports={KeyUsageMapper});
2
2
  //# sourceMappingURL=KeyUsageMapper.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/shared/utils/KeyUsageMapper.ts"],
4
- "sourcesContent": ["import { KeyUsage } from \"@/pki/model/KeyUsage\";\n\nexport class KeyUsageMapper {\n private static keyUsageMap = new Map<KeyUsage, number>([\n [KeyUsage.GenuineCheck, 1],\n [KeyUsage.ExchangePayload, 2],\n [KeyUsage.NftMeta, 3],\n [KeyUsage.TrustedName, 4],\n [KeyUsage.BackupProvider, 5],\n [KeyUsage.ProtectOrchestrator, 6],\n [KeyUsage.PluginMeta, 7],\n [KeyUsage.CoinMeta, 8],\n [KeyUsage.SeedIdAuth, 9],\n [KeyUsage.TxSimulationSigner, 10],\n [KeyUsage.Calldata, 11],\n [KeyUsage.Network, 12],\n ]);\n\n static mapKeyUsageForFirmware(keyUsage: KeyUsage): number {\n return this.keyUsageMap.get(keyUsage as KeyUsage) ?? -1;\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAyB,gCAElB,MAAMF,CAAe,CAC1B,OAAe,YAAc,IAAI,IAAsB,CACrD,CAAC,WAAS,aAAc,CAAC,EACzB,CAAC,WAAS,gBAAiB,CAAC,EAC5B,CAAC,WAAS,QAAS,CAAC,EACpB,CAAC,WAAS,YAAa,CAAC,EACxB,CAAC,WAAS,eAAgB,CAAC,EAC3B,CAAC,WAAS,oBAAqB,CAAC,EAChC,CAAC,WAAS,WAAY,CAAC,EACvB,CAAC,WAAS,SAAU,CAAC,EACrB,CAAC,WAAS,WAAY,CAAC,EACvB,CAAC,WAAS,mBAAoB,EAAE,EAChC,CAAC,WAAS,SAAU,EAAE,EACtB,CAAC,WAAS,QAAS,EAAE,CACvB,CAAC,EAED,OAAO,uBAAuBG,EAA4B,CACxD,OAAO,KAAK,YAAY,IAAIA,CAAoB,GAAK,EACvD,CACF",
4
+ "sourcesContent": ["import { KeyUsage } from \"@/pki/model/KeyUsage\";\n\nexport class KeyUsageMapper {\n private static keyUsageMap = new Map<KeyUsage, number>([\n [KeyUsage.GenuineCheck, 1],\n [KeyUsage.ExchangePayload, 2],\n [KeyUsage.NftMeta, 3],\n [KeyUsage.TrustedName, 4],\n [KeyUsage.BackupProvider, 5],\n [KeyUsage.ProtectOrchestrator, 6],\n [KeyUsage.PluginMeta, 7],\n [KeyUsage.CoinMeta, 8],\n [KeyUsage.SeedIdAuth, 9],\n [KeyUsage.TxSimulationSigner, 10],\n [KeyUsage.Calldata, 11],\n [KeyUsage.Network, 12],\n [KeyUsage.LESMultisig, 14],\n ]);\n\n static mapKeyUsageForFirmware(keyUsage: string): number {\n if (Object.values(KeyUsage).includes(keyUsage as KeyUsage)) {\n return this.keyUsageMap.get(keyUsage as KeyUsage) ?? -1;\n }\n return -1;\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAyB,gCAElB,MAAMF,CAAe,CAC1B,OAAe,YAAc,IAAI,IAAsB,CACrD,CAAC,WAAS,aAAc,CAAC,EACzB,CAAC,WAAS,gBAAiB,CAAC,EAC5B,CAAC,WAAS,QAAS,CAAC,EACpB,CAAC,WAAS,YAAa,CAAC,EACxB,CAAC,WAAS,eAAgB,CAAC,EAC3B,CAAC,WAAS,oBAAqB,CAAC,EAChC,CAAC,WAAS,WAAY,CAAC,EACvB,CAAC,WAAS,SAAU,CAAC,EACrB,CAAC,WAAS,WAAY,CAAC,EACvB,CAAC,WAAS,mBAAoB,EAAE,EAChC,CAAC,WAAS,SAAU,EAAE,EACtB,CAAC,WAAS,QAAS,EAAE,EACrB,CAAC,WAAS,YAAa,EAAE,CAC3B,CAAC,EAED,OAAO,uBAAuBG,EAA0B,CACtD,OAAI,OAAO,OAAO,UAAQ,EAAE,SAASA,CAAoB,EAChD,KAAK,YAAY,IAAIA,CAAoB,GAAK,GAEhD,EACT,CACF",
6
6
  "names": ["KeyUsageMapper_exports", "__export", "KeyUsageMapper", "__toCommonJS", "import_KeyUsage", "keyUsage"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../../pki/model/KeyUsage"),r=require("../../shared/utils/KeyUsageMapper");describe("KeyUsageMapper",()=>{describe("mapKeyUsageForFirmware",()=>{it.each([[e.KeyUsage.GenuineCheck,1],[e.KeyUsage.ExchangePayload,2],[e.KeyUsage.NftMeta,3],[e.KeyUsage.TrustedName,4],[e.KeyUsage.BackupProvider,5],[e.KeyUsage.ProtectOrchestrator,6],[e.KeyUsage.PluginMeta,7],[e.KeyUsage.CoinMeta,8],[e.KeyUsage.SeedIdAuth,9],[e.KeyUsage.TxSimulationSigner,10],[e.KeyUsage.Calldata,11],[e.KeyUsage.Network,12]])("should map key usage %s to %i",(a,t)=>{const o=r.KeyUsageMapper.mapKeyUsageForFirmware(a);expect(o).toEqual(t)}),it("should return -1 when key usage is not found",()=>{const a=r.KeyUsageMapper.mapKeyUsageForFirmware("unknown");expect(a).toEqual(-1)})})});
1
+ "use strict";var e=require("../../pki/model/KeyUsage"),r=require("../../shared/utils/KeyUsageMapper");describe("KeyUsageMapper",()=>{describe("mapKeyUsageForFirmware",()=>{it.each([[e.KeyUsage.GenuineCheck,1],[e.KeyUsage.ExchangePayload,2],[e.KeyUsage.NftMeta,3],[e.KeyUsage.TrustedName,4],[e.KeyUsage.BackupProvider,5],[e.KeyUsage.ProtectOrchestrator,6],[e.KeyUsage.PluginMeta,7],[e.KeyUsage.CoinMeta,8],[e.KeyUsage.SeedIdAuth,9],[e.KeyUsage.TxSimulationSigner,10],[e.KeyUsage.Calldata,11],[e.KeyUsage.Network,12],[e.KeyUsage.LESMultisig,14]])("should map key usage %s to %i",(a,t)=>{const o=r.KeyUsageMapper.mapKeyUsageForFirmware(a);expect(o).toEqual(t)}),it("should return -1 when key usage is not found",()=>{const a=r.KeyUsageMapper.mapKeyUsageForFirmware("unknown");expect(a).toEqual(-1)})})});
2
2
  //# sourceMappingURL=KeyUsageMapper.test.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/shared/utils/KeyUsageMapper.test.ts"],
4
- "sourcesContent": ["import { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport { KeyUsageMapper } from \"@/shared/utils/KeyUsageMapper\";\n\ndescribe(\"KeyUsageMapper\", () => {\n describe(\"mapKeyUsageForFirmware\", () => {\n it.each([\n [KeyUsage.GenuineCheck, 1],\n [KeyUsage.ExchangePayload, 2],\n [KeyUsage.NftMeta, 3],\n [KeyUsage.TrustedName, 4],\n [KeyUsage.BackupProvider, 5],\n [KeyUsage.ProtectOrchestrator, 6],\n [KeyUsage.PluginMeta, 7],\n [KeyUsage.CoinMeta, 8],\n [KeyUsage.SeedIdAuth, 9],\n [KeyUsage.TxSimulationSigner, 10],\n [KeyUsage.Calldata, 11],\n [KeyUsage.Network, 12],\n ])(`should map key usage %s to %i`, (keyUsage, expected) => {\n // WHEN\n const result = KeyUsageMapper.mapKeyUsageForFirmware(keyUsage);\n\n // THEN\n expect(result).toEqual(expected);\n });\n\n it(\"should return -1 when key usage is not found\", () => {\n // WHEN\n const result = KeyUsageMapper.mapKeyUsageForFirmware(\n \"unknown\" as KeyUsage,\n );\n\n // THEN\n expect(result).toEqual(-1);\n });\n });\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAAyB,gCACzBC,EAA+B,yCAE/B,SAAS,iBAAkB,IAAM,CAC/B,SAAS,yBAA0B,IAAM,CACvC,GAAG,KAAK,CACN,CAAC,WAAS,aAAc,CAAC,EACzB,CAAC,WAAS,gBAAiB,CAAC,EAC5B,CAAC,WAAS,QAAS,CAAC,EACpB,CAAC,WAAS,YAAa,CAAC,EACxB,CAAC,WAAS,eAAgB,CAAC,EAC3B,CAAC,WAAS,oBAAqB,CAAC,EAChC,CAAC,WAAS,WAAY,CAAC,EACvB,CAAC,WAAS,SAAU,CAAC,EACrB,CAAC,WAAS,WAAY,CAAC,EACvB,CAAC,WAAS,mBAAoB,EAAE,EAChC,CAAC,WAAS,SAAU,EAAE,EACtB,CAAC,WAAS,QAAS,EAAE,CACvB,CAAC,EAAE,gCAAiC,CAACC,EAAUC,IAAa,CAE1D,MAAMC,EAAS,iBAAe,uBAAuBF,CAAQ,EAG7D,OAAOE,CAAM,EAAE,QAAQD,CAAQ,CACjC,CAAC,EAED,GAAG,+CAAgD,IAAM,CAEvD,MAAMC,EAAS,iBAAe,uBAC5B,SACF,EAGA,OAAOA,CAAM,EAAE,QAAQ,EAAE,CAC3B,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { KeyUsage } from \"@/pki/model/KeyUsage\";\nimport { KeyUsageMapper } from \"@/shared/utils/KeyUsageMapper\";\n\ndescribe(\"KeyUsageMapper\", () => {\n describe(\"mapKeyUsageForFirmware\", () => {\n it.each([\n [KeyUsage.GenuineCheck, 1],\n [KeyUsage.ExchangePayload, 2],\n [KeyUsage.NftMeta, 3],\n [KeyUsage.TrustedName, 4],\n [KeyUsage.BackupProvider, 5],\n [KeyUsage.ProtectOrchestrator, 6],\n [KeyUsage.PluginMeta, 7],\n [KeyUsage.CoinMeta, 8],\n [KeyUsage.SeedIdAuth, 9],\n [KeyUsage.TxSimulationSigner, 10],\n [KeyUsage.Calldata, 11],\n [KeyUsage.Network, 12],\n [KeyUsage.LESMultisig, 14],\n ])(`should map key usage %s to %i`, (keyUsage, expected) => {\n // WHEN\n const result = KeyUsageMapper.mapKeyUsageForFirmware(keyUsage);\n\n // THEN\n expect(result).toEqual(expected);\n });\n\n it(\"should return -1 when key usage is not found\", () => {\n // WHEN\n const result = KeyUsageMapper.mapKeyUsageForFirmware(\n \"unknown\" as KeyUsage,\n );\n\n // THEN\n expect(result).toEqual(-1);\n });\n });\n});\n"],
5
+ "mappings": "aAAA,IAAAA,EAAyB,gCACzBC,EAA+B,yCAE/B,SAAS,iBAAkB,IAAM,CAC/B,SAAS,yBAA0B,IAAM,CACvC,GAAG,KAAK,CACN,CAAC,WAAS,aAAc,CAAC,EACzB,CAAC,WAAS,gBAAiB,CAAC,EAC5B,CAAC,WAAS,QAAS,CAAC,EACpB,CAAC,WAAS,YAAa,CAAC,EACxB,CAAC,WAAS,eAAgB,CAAC,EAC3B,CAAC,WAAS,oBAAqB,CAAC,EAChC,CAAC,WAAS,WAAY,CAAC,EACvB,CAAC,WAAS,SAAU,CAAC,EACrB,CAAC,WAAS,WAAY,CAAC,EACvB,CAAC,WAAS,mBAAoB,EAAE,EAChC,CAAC,WAAS,SAAU,EAAE,EACtB,CAAC,WAAS,QAAS,EAAE,EACrB,CAAC,WAAS,YAAa,EAAE,CAC3B,CAAC,EAAE,gCAAiC,CAACC,EAAUC,IAAa,CAE1D,MAAMC,EAAS,iBAAe,uBAAuBF,CAAQ,EAG7D,OAAOE,CAAM,EAAE,QAAQD,CAAQ,CACjC,CAAC,EAED,GAAG,+CAAgD,IAAM,CAEvD,MAAMC,EAAS,iBAAe,uBAC5B,SACF,EAGA,OAAOA,CAAM,EAAE,QAAQ,EAAE,CAC3B,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["import_KeyUsage", "import_KeyUsageMapper", "keyUsage", "expected", "result"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var C=Object.create;var c=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty;var D=(o,e)=>{for(var t in e)c(o,t,{get:e[t],enumerable:!0})},w=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of I(e))!M.call(o,r)&&r!==t&&c(o,r,{get:()=>e[r],enumerable:!(n=m(e,r))||n.enumerable});return o};var g=(o,e,t)=>(t=o!=null?C(x(o)):{},w(e||!o||!o.__esModule?c(t,"default",{value:o,enumerable:!0}):t,o)),k=o=>w(c({},"__esModule",{value:!0}),o),h=(o,e,t,n)=>{for(var r=n>1?void 0:n?m(e,t):e,s=o.length-1,i;s>=0;s--)(i=o[s])&&(r=(n?i(e,t,r):i(r))||r);return n&&r&&c(e,t,r),r},E=(o,e)=>(t,n)=>e(t,n,o);var L={};D(L,{HttpSolanaOwnerInfoDataSource:()=>d});module.exports=k(L);var A=require("@ledgerhq/device-management-kit"),f=g(require("axios")),u=require("inversify"),a=require("purify-ts"),O=require("../../config/di/configTypes"),l=require("../../shared/constant/HttpHeaders"),p=g(require("../../../package.json"));let d=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,t){return await f.default.request({method:"GET",url:`${this.config.metadataService.url}/solana/owner/${e}?challenge=${t}`,headers:{[l.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${p.default.version}`,[l.LEDGER_ORIGIN_TOKEN_HEADER]:this.config.originToken}}).then(n=>this.isSolanaSPLOwnerInfo(n.data)?(0,a.Right)(n.data):(0,a.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid fetchAddressMetadata response shape"))).catch(()=>(0,a.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: Failed to fetch address metadata")))}async computeAddressMetadata(e,t,n){return await f.default.request({method:"GET",url:`${this.config.metadataService.url}/solana/computed-token-account/${e}/${t}?challenge=${n}`,headers:{[l.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${p.default.version}`,"X-Ledger-Client-Origin":this.config.originToken}}).then(r=>this.isSolanaSPLOwnerInfo(r.data)?(0,a.Right)(r.data):(0,a.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid computeAddressMetadata response shape"))).catch(()=>(0,a.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: Failed to compute address metadata")))}async getOwnerInfo(e){const{tokenAddress:t,challenge:n,createATA:r}=e;if(!n)return(0,a.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: challenge is required"));let s;if(t)s=await this.fetchAddressMetadata(t,n);else if(r?.address&&r?.mintAddress)s=await this.computeAddressMetadata(r.address,r.mintAddress,n);else return(0,a.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: either tokenAddress or valid createATA must be provided"));return s.chain(i=>{const S=(0,A.hexaStringToBuffer)(i.signedDescriptor);return S?(0,a.Right)({descriptor:S,tokenAccount:i.tokenAccount,owner:i.owner,contract:i.contract}):(0,a.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid base64 descriptor received"))})}};d=h([(0,u.injectable)(),E(0,(0,u.inject)(O.configTypes.Config))],d);0&&(module.exports={HttpSolanaOwnerInfoDataSource});
1
+ "use strict";var C=Object.create;var c=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty;var M=(o,e)=>{for(var t in e)c(o,t,{get:e[t],enumerable:!0})},w=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of I(e))!D.call(o,r)&&r!==t&&c(o,r,{get:()=>e[r],enumerable:!(n=S(e,r))||n.enumerable});return o};var g=(o,e,t)=>(t=o!=null?C(x(o)):{},w(e||!o||!o.__esModule?c(t,"default",{value:o,enumerable:!0}):t,o)),k=o=>w(c({},"__esModule",{value:!0}),o),h=(o,e,t,n)=>{for(var r=n>1?void 0:n?S(e,t):e,s=o.length-1,i;s>=0;s--)(i=o[s])&&(r=(n?i(e,t,r):i(r))||r);return n&&r&&c(e,t,r),r},E=(o,e)=>(t,n)=>e(t,n,o);var L={};M(L,{HttpSolanaOwnerInfoDataSource:()=>d});module.exports=k(L);var A=require("@ledgerhq/device-management-kit"),f=g(require("axios")),u=require("inversify"),a=require("purify-ts"),O=require("../../config/di/configTypes"),l=require("../../shared/constant/HttpHeaders"),m=g(require("../../../package.json"));let d=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,t){return await f.default.request({method:"GET",url:`${this.config.metadataServiceDomain.url}/v2/solana/owner/${e}?challenge=${t}`,headers:{[l.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${m.default.version}`,[l.LEDGER_ORIGIN_TOKEN_HEADER]:this.config.originToken}}).then(n=>this.isSolanaSPLOwnerInfo(n.data)?(0,a.Right)(n.data):(0,a.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid fetchAddressMetadata response shape"))).catch(()=>(0,a.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: Failed to fetch address metadata")))}async computeAddressMetadata(e,t,n){return await f.default.request({method:"GET",url:`${this.config.metadataServiceDomain.url}/v2/solana/computed-token-account/${e}/${t}?challenge=${n}`,headers:{[l.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${m.default.version}`,"X-Ledger-Client-Origin":this.config.originToken}}).then(r=>this.isSolanaSPLOwnerInfo(r.data)?(0,a.Right)(r.data):(0,a.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid computeAddressMetadata response shape"))).catch(()=>(0,a.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: Failed to compute address metadata")))}async getOwnerInfo(e){const{tokenAddress:t,challenge:n,createATA:r}=e;if(!n)return(0,a.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: challenge is required"));let s;if(t)s=await this.fetchAddressMetadata(t,n);else if(r?.address&&r?.mintAddress)s=await this.computeAddressMetadata(r.address,r.mintAddress,n);else return(0,a.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: either tokenAddress or valid createATA must be provided"));return s.chain(i=>{const p=(0,A.hexaStringToBuffer)(i.signedDescriptor);return p?(0,a.Right)({descriptor:p,tokenAccount:i.tokenAccount,owner:i.owner,contract:i.contract}):(0,a.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid base64 descriptor received"))})}};d=h([(0,u.injectable)(),E(0,(0,u.inject)(O.configTypes.Config))],d);0&&(module.exports={HttpSolanaOwnerInfoDataSource});
2
2
  //# sourceMappingURL=HttpSolanaOwnerInfoDataSource.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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.metadataService.url}/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.metadataService.url}/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": "qtBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,2CACnCC,EAAkB,oBAClBC,EAAmC,qBACnCC,EAAoC,qBAEpCC,EAA4B,mCAE5BC,EAGO,yCAKPC,EAAoB,iCAQb,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,MAAM,EAAAC,QACV,QAA4B,CAC3B,OAAQ,MACR,IAAK,GAAG,KAAK,OAAO,gBAAgB,GAAG,iBAAiBF,CAAY,cAAcC,CAAS,GAC3F,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAE,QAAQ,OAAO,GACjE,CAAC,4BAA0B,EAAG,KAAK,OAAO,WAC5C,CACF,CAAC,EACA,KAAMC,GACA,KAAK,qBAAqBA,EAAI,IAAI,KAMhC,SAAMA,EAAI,IAAI,KALZ,QACL,IAAI,MACF,8FACF,CACF,CAEH,EACA,MAAM,OACL,QACE,IAAI,MACF,mFACF,CACF,CACF,CACJ,CAEA,MAAM,uBACJC,EACAC,EACAL,EAC4C,CAC5C,OAAO,MAAM,EAAAC,QACV,QAA4B,CAC3B,OAAQ,MACR,IAAK,GAAG,KAAK,OAAO,gBAAgB,GAAG,kCAAkCG,CAAO,IAAIC,CAAW,cAAcL,CAAS,GACtH,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAE,QAAQ,OAAO,GACjE,yBAA0B,KAAK,OAAO,WACxC,CACF,CAAC,EACA,KAAMC,GACA,KAAK,qBAAqBA,EAAI,IAAI,KAMhC,SAAMA,EAAI,IAAI,KALZ,QACL,IAAI,MACF,gGACF,CACF,CAEH,EACA,MAAM,OACL,QACE,IAAI,MACF,qFACF,CACF,CACF,CACJ,CAEA,MAAM,aACJG,EAC6D,CAC7D,KAAM,CAAE,aAAAP,EAAc,UAAAC,EAAW,UAAAO,CAAU,EAAID,EAE/C,GAAI,CAACN,EACH,SAAO,QACL,IAAI,MACF,wEACF,CACF,EAGF,IAAIQ,EAEJ,GAAIT,EACFS,EAAkB,MAAM,KAAK,qBAC3BT,EACAC,CACF,UACSO,GAAW,SAAWA,GAAW,YAC1CC,EAAkB,MAAM,KAAK,uBAC3BD,EAAU,QACVA,EAAU,YACVP,CACF,MAEA,UAAO,QACL,IAAI,MACF,0GACF,CACF,EAGF,OAAOQ,EAAgB,MAAOC,GAAc,CAC1C,MAAMC,KAAa,sBAAmBD,EAAU,gBAAgB,EAChE,OAAKC,KAOE,SAAM,CACX,WAAAA,EACA,aAAcD,EAAU,aACxB,MAAOA,EAAU,MACjB,SAAUA,EAAU,QACtB,CAAC,KAXQ,QACL,IAAI,MACF,qFACF,CACF,CAQJ,CAAC,CACH,CACF,EA5Iab,EAANe,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,cAAY,MAAM,IAFjBhB",
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": "qtBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmC,2CACnCC,EAAkB,oBAClBC,EAAmC,qBACnCC,EAAoC,qBAEpCC,EAA4B,mCAE5BC,EAGO,yCAKPC,EAAoB,iCAQb,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,MAAM,EAAAC,QACV,QAA4B,CAC3B,OAAQ,MACR,IAAK,GAAG,KAAK,OAAO,sBAAsB,GAAG,oBAAoBF,CAAY,cAAcC,CAAS,GACpG,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAE,QAAQ,OAAO,GACjE,CAAC,4BAA0B,EAAG,KAAK,OAAO,WAC5C,CACF,CAAC,EACA,KAAMC,GACA,KAAK,qBAAqBA,EAAI,IAAI,KAMhC,SAAMA,EAAI,IAAI,KALZ,QACL,IAAI,MACF,8FACF,CACF,CAEH,EACA,MAAM,OACL,QACE,IAAI,MACF,mFACF,CACF,CACF,CACJ,CAEA,MAAM,uBACJC,EACAC,EACAL,EAC4C,CAC5C,OAAO,MAAM,EAAAC,QACV,QAA4B,CAC3B,OAAQ,MACR,IAAK,GAAG,KAAK,OAAO,sBAAsB,GAAG,qCAAqCG,CAAO,IAAIC,CAAW,cAAcL,CAAS,GAC/H,QAAS,CACP,CAAC,8BAA4B,EAAG,kBAAkB,EAAAE,QAAQ,OAAO,GACjE,yBAA0B,KAAK,OAAO,WACxC,CACF,CAAC,EACA,KAAMC,GACA,KAAK,qBAAqBA,EAAI,IAAI,KAMhC,SAAMA,EAAI,IAAI,KALZ,QACL,IAAI,MACF,gGACF,CACF,CAEH,EACA,MAAM,OACL,QACE,IAAI,MACF,qFACF,CACF,CACF,CACJ,CAEA,MAAM,aACJG,EAC6D,CAC7D,KAAM,CAAE,aAAAP,EAAc,UAAAC,EAAW,UAAAO,CAAU,EAAID,EAE/C,GAAI,CAACN,EACH,SAAO,QACL,IAAI,MACF,wEACF,CACF,EAGF,IAAIQ,EAEJ,GAAIT,EACFS,EAAkB,MAAM,KAAK,qBAC3BT,EACAC,CACF,UACSO,GAAW,SAAWA,GAAW,YAC1CC,EAAkB,MAAM,KAAK,uBAC3BD,EAAU,QACVA,EAAU,YACVP,CACF,MAEA,UAAO,QACL,IAAI,MACF,0GACF,CACF,EAGF,OAAOQ,EAAgB,MAAOC,GAAc,CAC1C,MAAMC,KAAa,sBAAmBD,EAAU,gBAAgB,EAChE,OAAKC,KAOE,SAAM,CACX,WAAAA,EACA,aAAcD,EAAU,aACxB,MAAOA,EAAU,MACjB,SAAUA,EAAU,QACtB,CAAC,KAXQ,QACL,IAAI,MACF,qFACF,CACF,CAQJ,CAAC,CACH,CACF,EA5Iab,EAANe,EAAA,IADN,cAAW,EAGPC,EAAA,eAAO,cAAY,MAAM,IAFjBhB",
6
6
  "names": ["HttpSolanaOwnerInfoDataSource_exports", "__export", "HttpSolanaOwnerInfoDataSource", "__toCommonJS", "import_device_management_kit", "import_axios", "import_inversify", "import_purify_ts", "import_configTypes", "import_HttpHeaders", "import_package", "HttpSolanaOwnerInfoDataSource", "config", "data", "tokenAddress", "challenge", "axios", "PACKAGE", "res", "address", "mintAddress", "context", "createATA", "ownerInfoResult", "ownerInfo", "descriptor", "__decorateClass", "__decorateParam"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var p=Object.create;var l=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,S=Object.prototype.hasOwnProperty;var A=(e,a,r,t)=>{if(a&&typeof a=="object"||typeof a=="function")for(let n of x(a))!S.call(e,n)&&n!==r&&l(e,n,{get:()=>a[n],enumerable:!(t=w(a,n))||t.enumerable});return e};var u=(e,a,r)=>(r=e!=null?p(g(e)):{},A(a||!e||!e.__esModule?l(r,"default",{value:e,enumerable:!0}):r,e));var s=require("@ledgerhq/device-management-kit"),c=u(require("axios")),i=require("purify-ts"),m=require("../../shared/constant/HttpHeaders"),d=require("../../solana/data/HttpSolanaOwnerInfoDataSource"),f=u(require("../../../package.json"));vi.mock("axios");function h(e){const r=new TextEncoder().encode(e);return Array.from(r).map(t=>t.toString(16).padStart(2,"0")).join("")}describe("HttpSolanaOwnerInfoDataSource",()=>{const e={metadataService:{url:"https://some.doma.in"},originToken:"mock-origin-token"},a=h("mock-descriptor"),r={tokenAccount:"token-account",owner:"owner-address",contract:"contract-address",signedDescriptor:a};beforeEach(()=>{vi.resetAllMocks()}),it("should fetch address metadata via tokenAddress",async()=>{const t={deviceModelId:s.DeviceModelId.FLEX,tokenAddress:"some-token",challenge:"random",createATA:void 0};vi.spyOn(c.default,"request").mockResolvedValueOnce({data:r});const o=await new d.HttpSolanaOwnerInfoDataSource(e).getOwnerInfo(t);expect(o.isRight()).toBe(!0),expect(o.extract()).toEqual({descriptor:(0,s.hexaStringToBuffer)(a),tokenAccount:"token-account",owner:"owner-address",contract:"contract-address"})}),it("should compute address when tokenAddress is not provided",async()=>{const t={deviceModelId:s.DeviceModelId.FLEX,tokenAddress:void 0,challenge:"random",createATA:{address:"some-address",mintAddress:"some-mint"}};vi.spyOn(c.default,"request").mockResolvedValueOnce({data:r});const o=await new d.HttpSolanaOwnerInfoDataSource(e).getOwnerInfo(t);expect(o.isRight()).toBe(!0),expect(o.extract().tokenAccount).toBe("token-account")}),it("should return an error if both tokenAddress and createATA are missing or invalid",async()=>{const t={deviceModelId:s.DeviceModelId.FLEX,tokenAddress:void 0,challenge:"random",createATA:void 0},o=await new d.HttpSolanaOwnerInfoDataSource(e).getOwnerInfo(t);expect(o).toEqual((0,i.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: either tokenAddress or valid createATA must be provided")))}),it("should return an error if challenge is missing",async()=>{const t={deviceModelId:s.DeviceModelId.FLEX,tokenAddress:"some-token",challenge:void 0,createATA:void 0},o=await new d.HttpSolanaOwnerInfoDataSource(e).getOwnerInfo(t);expect(o).toEqual((0,i.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: challenge is required")))}),it("should return an error if the descriptor is not valid base64",async()=>{vi.spyOn(c.default,"request").mockResolvedValueOnce({data:{...r,signedDescriptor:"!!!not-valid-base64!!!"}});const t={deviceModelId:s.DeviceModelId.FLEX,tokenAddress:"some-token",challenge:"random",createATA:void 0},o=await new d.HttpSolanaOwnerInfoDataSource(e).getOwnerInfo(t);expect(o).toEqual((0,i.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid base64 descriptor received")))}),it("should return an error if the metadata request fails",async()=>{vi.spyOn(c.default,"request").mockRejectedValueOnce(new Error("Network error"));const t={deviceModelId:s.DeviceModelId.FLEX,tokenAddress:"some-token",challenge:"random",createATA:void 0},o=await new d.HttpSolanaOwnerInfoDataSource(e).getOwnerInfo(t);expect(o).toEqual((0,i.Left)(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(c.default,"request").mockResolvedValueOnce({data:{wrong:"field"}});const t={deviceModelId:s.DeviceModelId.FLEX,tokenAddress:"some-token",challenge:"random",createATA:void 0},o=await new d.HttpSolanaOwnerInfoDataSource(e).getOwnerInfo(t);expect(o).toEqual((0,i.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid fetchAddressMetadata response shape")))}),it("should return an error if axios request return wrong shape for computeAddressMetadata",async()=>{vi.spyOn(c.default,"request").mockResolvedValueOnce({data:{wrong:"field"}});const t={deviceModelId:s.DeviceModelId.FLEX,tokenAddress:void 0,challenge:"random",createATA:{address:"some-address",mintAddress:"some-mint"}},o=await new d.HttpSolanaOwnerInfoDataSource(e).getOwnerInfo(t);expect(o).toEqual((0,i.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid computeAddressMetadata response shape")))}),it("should throw if originToken is missing",()=>{expect(()=>{new d.HttpSolanaOwnerInfoDataSource({...e,originToken:void 0})}).toThrow("[ContextModule] - HttpSolanaOwnerInfoDataSource: origin token is required")}),it("should call axios with correct headers",async()=>{const t={deviceModelId:s.DeviceModelId.FLEX,tokenAddress:"some-token",challenge:"random",createATA:void 0},n=vi.spyOn(c.default,"request").mockResolvedValueOnce({data:r});await new d.HttpSolanaOwnerInfoDataSource(e).getOwnerInfo(t),expect(n).toHaveBeenCalledWith(expect.objectContaining({headers:{[m.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${f.default.version}`,"X-Ledger-Client-Origin":e.originToken}}))})});
1
+ "use strict";var p=Object.create;var l=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,S=Object.prototype.hasOwnProperty;var A=(e,a,r,t)=>{if(a&&typeof a=="object"||typeof a=="function")for(let n of x(a))!S.call(e,n)&&n!==r&&l(e,n,{get:()=>a[n],enumerable:!(t=w(a,n))||t.enumerable});return e};var u=(e,a,r)=>(r=e!=null?p(g(e)):{},A(a||!e||!e.__esModule?l(r,"default",{value:e,enumerable:!0}):r,e));var s=require("@ledgerhq/device-management-kit"),c=u(require("axios")),i=require("purify-ts"),m=require("../../shared/constant/HttpHeaders"),d=require("../../solana/data/HttpSolanaOwnerInfoDataSource"),f=u(require("../../../package.json"));vi.mock("axios");function h(e){const r=new TextEncoder().encode(e);return Array.from(r).map(t=>t.toString(16).padStart(2,"0")).join("")}describe("HttpSolanaOwnerInfoDataSource",()=>{const e={metadataServiceDomain:{url:"https://some.doma.in"},originToken:"mock-origin-token"},a=h("mock-descriptor"),r={tokenAccount:"token-account",owner:"owner-address",contract:"contract-address",signedDescriptor:a};beforeEach(()=>{vi.resetAllMocks()}),it("should fetch address metadata via tokenAddress",async()=>{const t={deviceModelId:s.DeviceModelId.FLEX,tokenAddress:"some-token",challenge:"random",createATA:void 0};vi.spyOn(c.default,"request").mockResolvedValueOnce({data:r});const o=await new d.HttpSolanaOwnerInfoDataSource(e).getOwnerInfo(t);expect(o.isRight()).toBe(!0),expect(o.extract()).toEqual({descriptor:(0,s.hexaStringToBuffer)(a),tokenAccount:"token-account",owner:"owner-address",contract:"contract-address"})}),it("should compute address when tokenAddress is not provided",async()=>{const t={deviceModelId:s.DeviceModelId.FLEX,tokenAddress:void 0,challenge:"random",createATA:{address:"some-address",mintAddress:"some-mint"}};vi.spyOn(c.default,"request").mockResolvedValueOnce({data:r});const o=await new d.HttpSolanaOwnerInfoDataSource(e).getOwnerInfo(t);expect(o.isRight()).toBe(!0),expect(o.extract().tokenAccount).toBe("token-account")}),it("should return an error if both tokenAddress and createATA are missing or invalid",async()=>{const t={deviceModelId:s.DeviceModelId.FLEX,tokenAddress:void 0,challenge:"random",createATA:void 0},o=await new d.HttpSolanaOwnerInfoDataSource(e).getOwnerInfo(t);expect(o).toEqual((0,i.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: either tokenAddress or valid createATA must be provided")))}),it("should return an error if challenge is missing",async()=>{const t={deviceModelId:s.DeviceModelId.FLEX,tokenAddress:"some-token",challenge:void 0,createATA:void 0},o=await new d.HttpSolanaOwnerInfoDataSource(e).getOwnerInfo(t);expect(o).toEqual((0,i.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: challenge is required")))}),it("should return an error if the descriptor is not valid base64",async()=>{vi.spyOn(c.default,"request").mockResolvedValueOnce({data:{...r,signedDescriptor:"!!!not-valid-base64!!!"}});const t={deviceModelId:s.DeviceModelId.FLEX,tokenAddress:"some-token",challenge:"random",createATA:void 0},o=await new d.HttpSolanaOwnerInfoDataSource(e).getOwnerInfo(t);expect(o).toEqual((0,i.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid base64 descriptor received")))}),it("should return an error if the metadata request fails",async()=>{vi.spyOn(c.default,"request").mockRejectedValueOnce(new Error("Network error"));const t={deviceModelId:s.DeviceModelId.FLEX,tokenAddress:"some-token",challenge:"random",createATA:void 0},o=await new d.HttpSolanaOwnerInfoDataSource(e).getOwnerInfo(t);expect(o).toEqual((0,i.Left)(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(c.default,"request").mockResolvedValueOnce({data:{wrong:"field"}});const t={deviceModelId:s.DeviceModelId.FLEX,tokenAddress:"some-token",challenge:"random",createATA:void 0},o=await new d.HttpSolanaOwnerInfoDataSource(e).getOwnerInfo(t);expect(o).toEqual((0,i.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid fetchAddressMetadata response shape")))}),it("should return an error if axios request return wrong shape for computeAddressMetadata",async()=>{vi.spyOn(c.default,"request").mockResolvedValueOnce({data:{wrong:"field"}});const t={deviceModelId:s.DeviceModelId.FLEX,tokenAddress:void 0,challenge:"random",createATA:{address:"some-address",mintAddress:"some-mint"}},o=await new d.HttpSolanaOwnerInfoDataSource(e).getOwnerInfo(t);expect(o).toEqual((0,i.Left)(new Error("[ContextModule] - HttpSolanaOwnerInfoDataSource: invalid computeAddressMetadata response shape")))}),it("should throw if originToken is missing",()=>{expect(()=>{new d.HttpSolanaOwnerInfoDataSource({...e,originToken:void 0})}).toThrow("[ContextModule] - HttpSolanaOwnerInfoDataSource: origin token is required")}),it("should call axios with correct headers",async()=>{const t={deviceModelId:s.DeviceModelId.FLEX,tokenAddress:"some-token",challenge:"random",createATA:void 0},n=vi.spyOn(c.default,"request").mockResolvedValueOnce({data:r});await new d.HttpSolanaOwnerInfoDataSource(e).getOwnerInfo(t),expect(n).toHaveBeenCalledWith(expect.objectContaining({headers:{[m.LEDGER_CLIENT_VERSION_HEADER]:`context-module/${f.default.version}`,"X-Ledger-Client-Origin":e.originToken}}))})});
2
2
  //# sourceMappingURL=HttpSolanaOwnerInfoDataSource.test.js.map