@metamask-previews/bridge-controller 77.3.2-preview-bbd2df29f → 77.3.2-preview-34f2bcbf7

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 (195) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/bridge-controller.cjs.map +1 -1
  3. package/dist/bridge-controller.d.cts +3 -2
  4. package/dist/bridge-controller.d.cts.map +1 -1
  5. package/dist/bridge-controller.d.mts +3 -2
  6. package/dist/bridge-controller.d.mts.map +1 -1
  7. package/dist/bridge-controller.mjs +1 -1
  8. package/dist/bridge-controller.mjs.map +1 -1
  9. package/dist/index.cjs +36 -30
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.d.cts +14 -5
  12. package/dist/index.d.cts.map +1 -1
  13. package/dist/index.d.mts +14 -5
  14. package/dist/index.d.mts.map +1 -1
  15. package/dist/index.mjs +10 -4
  16. package/dist/index.mjs.map +1 -1
  17. package/dist/selectors.cjs.map +1 -1
  18. package/dist/selectors.d.cts +5971 -6520
  19. package/dist/selectors.d.cts.map +1 -1
  20. package/dist/selectors.d.mts +5971 -6520
  21. package/dist/selectors.d.mts.map +1 -1
  22. package/dist/selectors.mjs.map +1 -1
  23. package/dist/types.cjs +1 -12
  24. package/dist/types.cjs.map +1 -1
  25. package/dist/types.d.cts +21 -41
  26. package/dist/types.d.cts.map +1 -1
  27. package/dist/types.d.mts +21 -41
  28. package/dist/types.d.mts.map +1 -1
  29. package/dist/types.mjs +0 -11
  30. package/dist/types.mjs.map +1 -1
  31. package/dist/utils/bridge.cjs +1 -0
  32. package/dist/utils/bridge.cjs.map +1 -1
  33. package/dist/utils/bridge.d.cts +4 -3
  34. package/dist/utils/bridge.d.cts.map +1 -1
  35. package/dist/utils/bridge.d.mts +4 -3
  36. package/dist/utils/bridge.d.mts.map +1 -1
  37. package/dist/utils/bridge.mjs +1 -0
  38. package/dist/utils/bridge.mjs.map +1 -1
  39. package/dist/utils/feature-flags.cjs +2 -2
  40. package/dist/utils/feature-flags.cjs.map +1 -1
  41. package/dist/utils/feature-flags.d.cts +1 -1
  42. package/dist/utils/feature-flags.d.mts +1 -1
  43. package/dist/utils/feature-flags.mjs +1 -1
  44. package/dist/utils/feature-flags.mjs.map +1 -1
  45. package/dist/utils/fetch.cjs +16 -11
  46. package/dist/utils/fetch.cjs.map +1 -1
  47. package/dist/utils/fetch.d.cts +3 -1
  48. package/dist/utils/fetch.d.cts.map +1 -1
  49. package/dist/utils/fetch.d.mts +3 -1
  50. package/dist/utils/fetch.d.mts.map +1 -1
  51. package/dist/utils/fetch.mjs +9 -4
  52. package/dist/utils/fetch.mjs.map +1 -1
  53. package/dist/utils/metrics/properties.cjs +2 -2
  54. package/dist/utils/metrics/properties.cjs.map +1 -1
  55. package/dist/utils/metrics/properties.d.cts +4 -2
  56. package/dist/utils/metrics/properties.d.cts.map +1 -1
  57. package/dist/utils/metrics/properties.d.mts +4 -2
  58. package/dist/utils/metrics/properties.d.mts.map +1 -1
  59. package/dist/utils/metrics/properties.mjs +1 -1
  60. package/dist/utils/metrics/properties.mjs.map +1 -1
  61. package/dist/utils/metrics/types.cjs.map +1 -1
  62. package/dist/utils/metrics/types.d.cts +2 -1
  63. package/dist/utils/metrics/types.d.cts.map +1 -1
  64. package/dist/utils/metrics/types.d.mts +2 -1
  65. package/dist/utils/metrics/types.d.mts.map +1 -1
  66. package/dist/utils/metrics/types.mjs.map +1 -1
  67. package/dist/utils/quote-fees.cjs +2 -1
  68. package/dist/utils/quote-fees.cjs.map +1 -1
  69. package/dist/utils/quote-fees.d.cts +2 -1
  70. package/dist/utils/quote-fees.d.cts.map +1 -1
  71. package/dist/utils/quote-fees.d.mts +2 -1
  72. package/dist/utils/quote-fees.d.mts.map +1 -1
  73. package/dist/utils/quote-fees.mjs +2 -1
  74. package/dist/utils/quote-fees.mjs.map +1 -1
  75. package/dist/utils/quote.cjs +3 -3
  76. package/dist/utils/quote.cjs.map +1 -1
  77. package/dist/utils/quote.d.cts +5 -2
  78. package/dist/utils/quote.d.cts.map +1 -1
  79. package/dist/utils/quote.d.mts +5 -2
  80. package/dist/utils/quote.d.mts.map +1 -1
  81. package/dist/utils/quote.mjs +2 -2
  82. package/dist/utils/quote.mjs.map +1 -1
  83. package/dist/utils/struct-error.cjs +16 -0
  84. package/dist/utils/struct-error.cjs.map +1 -0
  85. package/dist/utils/struct-error.d.cts +11 -0
  86. package/dist/utils/struct-error.d.cts.map +1 -0
  87. package/dist/utils/struct-error.d.mts +11 -0
  88. package/dist/utils/struct-error.d.mts.map +1 -0
  89. package/dist/utils/struct-error.mjs +12 -0
  90. package/dist/utils/struct-error.mjs.map +1 -0
  91. package/dist/utils/trade-utils.cjs +7 -66
  92. package/dist/utils/trade-utils.cjs.map +1 -1
  93. package/dist/utils/trade-utils.d.cts +1 -54
  94. package/dist/utils/trade-utils.d.cts.map +1 -1
  95. package/dist/utils/trade-utils.d.mts +1 -54
  96. package/dist/utils/trade-utils.d.mts.map +1 -1
  97. package/dist/utils/trade-utils.mjs +1 -56
  98. package/dist/utils/trade-utils.mjs.map +1 -1
  99. package/dist/validators/batch-sell.cjs +39 -0
  100. package/dist/validators/batch-sell.cjs.map +1 -0
  101. package/dist/validators/batch-sell.d.cts +79 -0
  102. package/dist/validators/batch-sell.d.cts.map +1 -0
  103. package/dist/validators/batch-sell.d.mts +79 -0
  104. package/dist/validators/batch-sell.d.mts.map +1 -0
  105. package/dist/validators/batch-sell.mjs +35 -0
  106. package/dist/validators/batch-sell.mjs.map +1 -0
  107. package/dist/validators/bridge-asset.cjs +42 -0
  108. package/dist/validators/bridge-asset.cjs.map +1 -0
  109. package/dist/validators/bridge-asset.d.cts +52 -0
  110. package/dist/validators/bridge-asset.d.cts.map +1 -0
  111. package/dist/validators/bridge-asset.d.mts +52 -0
  112. package/dist/validators/bridge-asset.d.mts.map +1 -0
  113. package/dist/validators/bridge-asset.mjs +38 -0
  114. package/dist/validators/bridge-asset.mjs.map +1 -0
  115. package/dist/validators/feature-flags.cjs +110 -0
  116. package/dist/validators/feature-flags.cjs.map +1 -0
  117. package/dist/validators/feature-flags.d.cts +264 -0
  118. package/dist/validators/feature-flags.d.cts.map +1 -0
  119. package/dist/validators/feature-flags.d.mts +264 -0
  120. package/dist/validators/feature-flags.d.mts.map +1 -0
  121. package/dist/validators/feature-flags.mjs +106 -0
  122. package/dist/validators/feature-flags.mjs.map +1 -0
  123. package/dist/validators/intent.cjs +122 -0
  124. package/dist/validators/intent.cjs.map +1 -0
  125. package/dist/validators/intent.d.cts +231 -0
  126. package/dist/validators/intent.d.cts.map +1 -0
  127. package/dist/validators/intent.d.mts +231 -0
  128. package/dist/validators/intent.d.mts.map +1 -0
  129. package/dist/validators/intent.mjs +119 -0
  130. package/dist/validators/intent.mjs.map +1 -0
  131. package/dist/validators/number.cjs +8 -0
  132. package/dist/validators/number.cjs.map +1 -0
  133. package/dist/validators/number.d.cts +4 -0
  134. package/dist/validators/number.d.cts.map +1 -0
  135. package/dist/validators/number.d.mts +4 -0
  136. package/dist/validators/number.d.mts.map +1 -0
  137. package/dist/validators/number.mjs +5 -0
  138. package/dist/validators/number.mjs.map +1 -0
  139. package/dist/validators/quote-response-v1.cjs +31 -0
  140. package/dist/validators/quote-response-v1.cjs.map +1 -0
  141. package/dist/validators/quote-response-v1.d.cts +658 -0
  142. package/dist/validators/quote-response-v1.d.cts.map +1 -0
  143. package/dist/validators/quote-response-v1.d.mts +658 -0
  144. package/dist/validators/quote-response-v1.d.mts.map +1 -0
  145. package/dist/validators/quote-response-v1.mjs +27 -0
  146. package/dist/validators/quote-response-v1.mjs.map +1 -0
  147. package/dist/validators/quote-stream-complete.cjs +29 -0
  148. package/dist/validators/quote-stream-complete.cjs.map +1 -0
  149. package/dist/validators/quote-stream-complete.d.cts +39 -0
  150. package/dist/validators/quote-stream-complete.d.cts.map +1 -0
  151. package/dist/validators/quote-stream-complete.d.mts +39 -0
  152. package/dist/validators/quote-stream-complete.d.mts.map +1 -0
  153. package/dist/validators/quote-stream-complete.mjs +25 -0
  154. package/dist/validators/quote-stream-complete.mjs.map +1 -0
  155. package/dist/validators/quote.cjs +96 -0
  156. package/dist/validators/quote.cjs.map +1 -0
  157. package/dist/validators/quote.d.cts +230 -0
  158. package/dist/validators/quote.d.cts.map +1 -0
  159. package/dist/validators/quote.d.mts +230 -0
  160. package/dist/validators/quote.d.mts.map +1 -0
  161. package/dist/validators/quote.mjs +93 -0
  162. package/dist/validators/quote.mjs.map +1 -0
  163. package/dist/validators/step.cjs +20 -0
  164. package/dist/validators/step.cjs.map +1 -0
  165. package/dist/validators/step.d.cts +148 -0
  166. package/dist/validators/step.d.cts.map +1 -0
  167. package/dist/validators/step.d.mts +148 -0
  168. package/dist/validators/step.d.mts.map +1 -0
  169. package/dist/validators/step.mjs +17 -0
  170. package/dist/validators/step.mjs.map +1 -0
  171. package/dist/validators/token-feature.cjs +22 -0
  172. package/dist/validators/token-feature.cjs.map +1 -0
  173. package/dist/validators/token-feature.d.cts +26 -0
  174. package/dist/validators/token-feature.d.cts.map +1 -0
  175. package/dist/validators/token-feature.d.mts +26 -0
  176. package/dist/validators/token-feature.d.mts.map +1 -0
  177. package/dist/validators/token-feature.mjs +18 -0
  178. package/dist/validators/token-feature.mjs.map +1 -0
  179. package/dist/validators/trade.cjs +94 -0
  180. package/dist/validators/trade.cjs.map +1 -0
  181. package/dist/validators/trade.d.cts +121 -0
  182. package/dist/validators/trade.d.cts.map +1 -0
  183. package/dist/validators/trade.d.mts +121 -0
  184. package/dist/validators/trade.d.mts.map +1 -0
  185. package/dist/validators/trade.mjs +86 -0
  186. package/dist/validators/trade.mjs.map +1 -0
  187. package/package.json +4 -4
  188. package/dist/utils/validators.cjs +0 -471
  189. package/dist/utils/validators.cjs.map +0 -1
  190. package/dist/utils/validators.d.cts +0 -1765
  191. package/dist/utils/validators.d.cts.map +0 -1
  192. package/dist/utils/validators.d.mts +0 -1765
  193. package/dist/utils/validators.d.mts.map +0 -1
  194. package/dist/utils/validators.mjs +0 -461
  195. package/dist/utils/validators.mjs.map +0 -1
@@ -1,66 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extractTradeData = exports.isStellarTrade = exports.isTronTrade = exports.isBitcoinTrade = exports.isEvmTxData = void 0;
4
- const hasOwnProp = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
5
- /**
6
- * Type guard to check if a trade is an EVM TxData object
7
- *
8
- * @param trade - The trade object to check
9
- * @returns True if the trade is a TxData object with data property
10
- */
11
- const isEvmTxData = (trade) => {
12
- return (typeof trade === 'object' &&
13
- trade !== null &&
14
- hasOwnProp(trade, 'data') &&
15
- hasOwnProp(trade, 'chainId') &&
16
- hasOwnProp(trade, 'to'));
17
- };
18
- exports.isEvmTxData = isEvmTxData;
19
- /**
20
- * Type guard to check if a trade is a Bitcoin trade with unsignedPsbtBase64
21
- *
22
- * @param trade - The trade object to check
23
- * @returns True if the trade is a Bitcoin trade with unsignedPsbtBase64 property
24
- */
25
- const isBitcoinTrade = (trade) => {
26
- return (typeof trade === 'object' &&
27
- trade !== null &&
28
- hasOwnProp(trade, 'unsignedPsbtBase64'));
29
- };
30
- exports.isBitcoinTrade = isBitcoinTrade;
31
- /**
32
- * Type guard to check if a trade is a Tron trade with raw_data_hex
33
- *
34
- * @param trade - The trade object to check
35
- * @returns True if the trade is a Tron trade with raw_data_hex property
36
- */
37
- const isTronTrade = (trade) => {
38
- return (typeof trade === 'object' &&
39
- trade !== null &&
40
- hasOwnProp(trade, 'raw_data_hex'));
41
- };
42
- exports.isTronTrade = isTronTrade;
43
- /**
44
- * Type guard to check if a trade is a Stellar trade with XDR (base64) payload
45
- *
46
- * @param trade - The trade object to check
47
- * @returns True if the trade is a Stellar trade with xdrBase64 or xdr property
48
- */
49
- const isStellarTrade = (trade) => {
50
- if (typeof trade !== 'object' || trade === null) {
51
- return false;
52
- }
53
- if (hasOwnProp(trade, 'xdrBase64') &&
54
- typeof trade.xdrBase64 === 'string') {
55
- return true;
56
- }
57
- if (hasOwnProp(trade, 'xdr') &&
58
- typeof trade.xdr === 'string') {
59
- return true;
60
- }
61
- return false;
62
- };
63
- exports.isStellarTrade = isStellarTrade;
3
+ exports.extractTradeData = void 0;
4
+ const trade_1 = require("../validators/trade.cjs");
64
5
  /**
65
6
  * Extracts the transaction data from different trade formats
66
7
  *
@@ -69,16 +10,16 @@ exports.isStellarTrade = isStellarTrade;
69
10
  */
70
11
  const extractTradeData = (trade) => {
71
12
  // Check more specific trade types first to prevent misidentification
72
- if ((0, exports.isBitcoinTrade)(trade)) {
13
+ if ((0, trade_1.isBitcoinTrade)(trade)) {
73
14
  // Bitcoin trades are already base64 encoded
74
15
  return trade.unsignedPsbtBase64;
75
16
  }
76
- if ((0, exports.isTronTrade)(trade)) {
17
+ if ((0, trade_1.isTronTrade)(trade)) {
77
18
  // Tron trades need hex to base64 conversion for SnapController
78
19
  return Buffer.from(trade.raw_data_hex, 'hex').toString('base64');
79
20
  }
80
- if ((0, exports.isStellarTrade)(trade)) {
81
- if (hasOwnProp(trade, 'xdrBase64') &&
21
+ if ((0, trade_1.isStellarTrade)(trade)) {
22
+ if ((0, trade_1.hasOwnProp)(trade, 'xdrBase64') &&
82
23
  typeof trade.xdrBase64 === 'string') {
83
24
  return trade.xdrBase64;
84
25
  }
@@ -88,7 +29,7 @@ const extractTradeData = (trade) => {
88
29
  // Solana txs - assuming already in correct format
89
30
  return trade;
90
31
  }
91
- if ((0, exports.isEvmTxData)(trade)) {
32
+ if ((0, trade_1.isEvmTxData)(trade)) {
92
33
  // EVM TxData object - return the data property
93
34
  return trade.data;
94
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"trade-utils.cjs","sourceRoot":"","sources":["../../src/utils/trade-utils.ts"],"names":[],"mappings":";;;AAeA,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,GAAgB,EAAW,EAAE,CAC5D,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAEjD;;;;;GAKG;AACI,MAAM,WAAW,GAAG,CAAC,KAAY,EAAmB,EAAE;IAC3D,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC;QAC5B,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CACxB,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,WAAW,eAQtB;AAEF;;;;;GAKG;AACI,MAAM,cAAc,GAAG,CAAC,KAAY,EAA6B,EAAE;IACxE,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,UAAU,CAAC,KAAK,EAAE,oBAAoB,CAAC,CACxC,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB;AAEF;;;;;GAKG;AACI,MAAM,WAAW,GAAG,CAAC,KAAY,EAA0B,EAAE;IAClE,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,CAClC,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,WAAW,eAMtB;AAEF;;;;;GAKG;AACI,MAAM,cAAc,GAAG,CAAC,KAAY,EAA6B,EAAE;IACxE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IACE,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC;QAC9B,OAAQ,KAAgC,CAAC,SAAS,KAAK,QAAQ,EAC/D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IACE,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;QACxB,OAAQ,KAA0B,CAAC,GAAG,KAAK,QAAQ,EACnD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAjBW,QAAA,cAAc,kBAiBzB;AAEF;;;;;GAKG;AACI,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAU,EAAE;IACvD,qEAAqE;IACrE,IAAI,IAAA,sBAAc,EAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,4CAA4C;QAC5C,OAAO,KAAK,CAAC,kBAAkB,CAAC;IAClC,CAAC;IAED,IAAI,IAAA,mBAAW,EAAC,KAAK,CAAC,EAAE,CAAC;QACvB,+DAA+D;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,IAAA,sBAAc,EAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,IACE,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC;YAC9B,OAAQ,KAAgC,CAAC,SAAS,KAAK,QAAQ,EAC/D,CAAC;YACD,OAAQ,KAA+B,CAAC,SAAS,CAAC;QACpD,CAAC;QACD,OAAQ,KAAyB,CAAC,GAAG,CAAC;IACxC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,kDAAkD;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAA,mBAAW,EAAC,KAAK,CAAC,EAAE,CAAC;QACvB,+CAA+C;QAC/C,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAjCW,QAAA,gBAAgB,oBAiC3B","sourcesContent":["import type {\n BitcoinTradeData,\n StellarTradeData,\n TronTradeData,\n TxData,\n} from '../types';\n\n// Union type representing all possible trade formats (EVM, Solana, Bitcoin, Tron, Stellar)\nexport type Trade =\n | TxData\n | string\n | BitcoinTradeData\n | TronTradeData\n | StellarTradeData;\n\nconst hasOwnProp = (obj: object, key: PropertyKey): boolean =>\n Object.prototype.hasOwnProperty.call(obj, key);\n\n/**\n * Type guard to check if a trade is an EVM TxData object\n *\n * @param trade - The trade object to check\n * @returns True if the trade is a TxData object with data property\n */\nexport const isEvmTxData = (trade: Trade): trade is TxData => {\n return (\n typeof trade === 'object' &&\n trade !== null &&\n hasOwnProp(trade, 'data') &&\n hasOwnProp(trade, 'chainId') &&\n hasOwnProp(trade, 'to')\n );\n};\n\n/**\n * Type guard to check if a trade is a Bitcoin trade with unsignedPsbtBase64\n *\n * @param trade - The trade object to check\n * @returns True if the trade is a Bitcoin trade with unsignedPsbtBase64 property\n */\nexport const isBitcoinTrade = (trade: Trade): trade is BitcoinTradeData => {\n return (\n typeof trade === 'object' &&\n trade !== null &&\n hasOwnProp(trade, 'unsignedPsbtBase64')\n );\n};\n\n/**\n * Type guard to check if a trade is a Tron trade with raw_data_hex\n *\n * @param trade - The trade object to check\n * @returns True if the trade is a Tron trade with raw_data_hex property\n */\nexport const isTronTrade = (trade: Trade): trade is TronTradeData => {\n return (\n typeof trade === 'object' &&\n trade !== null &&\n hasOwnProp(trade, 'raw_data_hex')\n );\n};\n\n/**\n * Type guard to check if a trade is a Stellar trade with XDR (base64) payload\n *\n * @param trade - The trade object to check\n * @returns True if the trade is a Stellar trade with xdrBase64 or xdr property\n */\nexport const isStellarTrade = (trade: Trade): trade is StellarTradeData => {\n if (typeof trade !== 'object' || trade === null) {\n return false;\n }\n if (\n hasOwnProp(trade, 'xdrBase64') &&\n typeof (trade as { xdrBase64: unknown }).xdrBase64 === 'string'\n ) {\n return true;\n }\n if (\n hasOwnProp(trade, 'xdr') &&\n typeof (trade as { xdr: unknown }).xdr === 'string'\n ) {\n return true;\n }\n return false;\n};\n\n/**\n * Extracts the transaction data from different trade formats\n *\n * @param trade - The trade object which can be a TxData, string, Bitcoin trade, or Tron trade\n * @returns The extracted transaction data as a base64 string for SnapController\n */\nexport const extractTradeData = (trade: Trade): string => {\n // Check more specific trade types first to prevent misidentification\n if (isBitcoinTrade(trade)) {\n // Bitcoin trades are already base64 encoded\n return trade.unsignedPsbtBase64;\n }\n\n if (isTronTrade(trade)) {\n // Tron trades need hex to base64 conversion for SnapController\n return Buffer.from(trade.raw_data_hex, 'hex').toString('base64');\n }\n\n if (isStellarTrade(trade)) {\n if (\n hasOwnProp(trade, 'xdrBase64') &&\n typeof (trade as { xdrBase64: unknown }).xdrBase64 === 'string'\n ) {\n return (trade as { xdrBase64: string }).xdrBase64;\n }\n return (trade as { xdr: string }).xdr;\n }\n\n if (typeof trade === 'string') {\n // Solana txs - assuming already in correct format\n return trade;\n }\n\n if (isEvmTxData(trade)) {\n // EVM TxData object - return the data property\n return trade.data;\n }\n\n return '';\n};\n"]}
1
+ {"version":3,"file":"trade-utils.cjs","sourceRoot":"","sources":["../../src/utils/trade-utils.ts"],"names":[],"mappings":";;;AAAA,mDAO6B;AAE7B;;;;;GAKG;AACI,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAU,EAAE;IACvD,qEAAqE;IACrE,IAAI,IAAA,sBAAc,EAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,4CAA4C;QAC5C,OAAO,KAAK,CAAC,kBAAkB,CAAC;IAClC,CAAC;IAED,IAAI,IAAA,mBAAW,EAAC,KAAK,CAAC,EAAE,CAAC;QACvB,+DAA+D;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,IAAA,sBAAc,EAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,IACE,IAAA,kBAAU,EAAC,KAAK,EAAE,WAAW,CAAC;YAC9B,OAAQ,KAAgC,CAAC,SAAS,KAAK,QAAQ,EAC/D,CAAC;YACD,OAAQ,KAA+B,CAAC,SAAS,CAAC;QACpD,CAAC;QACD,OAAQ,KAAyB,CAAC,GAAG,CAAC;IACxC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,kDAAkD;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAA,mBAAW,EAAC,KAAK,CAAC,EAAE,CAAC;QACvB,+CAA+C;QAC/C,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAjCW,QAAA,gBAAgB,oBAiC3B","sourcesContent":["import {\n Trade,\n isBitcoinTrade,\n isTronTrade,\n isEvmTxData,\n isStellarTrade,\n hasOwnProp,\n} from '../validators/trade';\n\n/**\n * Extracts the transaction data from different trade formats\n *\n * @param trade - The trade object which can be a TxData, string, Bitcoin trade, or Tron trade\n * @returns The extracted transaction data as a base64 string for SnapController\n */\nexport const extractTradeData = (trade: Trade): string => {\n // Check more specific trade types first to prevent misidentification\n if (isBitcoinTrade(trade)) {\n // Bitcoin trades are already base64 encoded\n return trade.unsignedPsbtBase64;\n }\n\n if (isTronTrade(trade)) {\n // Tron trades need hex to base64 conversion for SnapController\n return Buffer.from(trade.raw_data_hex, 'hex').toString('base64');\n }\n\n if (isStellarTrade(trade)) {\n if (\n hasOwnProp(trade, 'xdrBase64') &&\n typeof (trade as { xdrBase64: unknown }).xdrBase64 === 'string'\n ) {\n return (trade as { xdrBase64: string }).xdrBase64;\n }\n return (trade as { xdr: string }).xdr;\n }\n\n if (typeof trade === 'string') {\n // Solana txs - assuming already in correct format\n return trade;\n }\n\n if (isEvmTxData(trade)) {\n // EVM TxData object - return the data property\n return trade.data;\n }\n\n return '';\n};\n"]}
@@ -1,57 +1,4 @@
1
- import type { BitcoinTradeData, StellarTradeData, TronTradeData, TxData } from "../types.cjs";
2
- export type Trade = TxData | string | BitcoinTradeData | TronTradeData | StellarTradeData;
3
- /**
4
- * Type guard to check if a trade is an EVM TxData object
5
- *
6
- * @param trade - The trade object to check
7
- * @returns True if the trade is a TxData object with data property
8
- */
9
- export declare const isEvmTxData: (trade: Trade) => trade is {
10
- chainId: number;
11
- from: `0x${string}`;
12
- to: `0x${string}`;
13
- value: `0x${string}`;
14
- data: `0x${string}`;
15
- gasLimit: number | null;
16
- effectiveGas?: number | undefined;
17
- };
18
- /**
19
- * Type guard to check if a trade is a Bitcoin trade with unsignedPsbtBase64
20
- *
21
- * @param trade - The trade object to check
22
- * @returns True if the trade is a Bitcoin trade with unsignedPsbtBase64 property
23
- */
24
- export declare const isBitcoinTrade: (trade: Trade) => trade is {
25
- unsignedPsbtBase64: string;
26
- inputsToSign: {}[] | null;
27
- };
28
- /**
29
- * Type guard to check if a trade is a Tron trade with raw_data_hex
30
- *
31
- * @param trade - The trade object to check
32
- * @returns True if the trade is a Tron trade with raw_data_hex property
33
- */
34
- export declare const isTronTrade: (trade: Trade) => trade is {
35
- raw_data_hex: string;
36
- visible?: boolean | undefined;
37
- raw_data?: {
38
- contract?: {
39
- type?: string | undefined;
40
- }[] | undefined;
41
- fee_limit?: number | undefined;
42
- } | null | undefined;
43
- };
44
- /**
45
- * Type guard to check if a trade is a Stellar trade with XDR (base64) payload
46
- *
47
- * @param trade - The trade object to check
48
- * @returns True if the trade is a Stellar trade with xdrBase64 or xdr property
49
- */
50
- export declare const isStellarTrade: (trade: Trade) => trade is {
51
- xdrBase64: string;
52
- } | {
53
- xdr: string;
54
- };
1
+ import { Trade } from "../validators/trade.cjs";
55
2
  /**
56
3
  * Extracts the transaction data from different trade formats
57
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"trade-utils.d.cts","sourceRoot":"","sources":["../../src/utils/trade-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,MAAM,EACP,qBAAiB;AAGlB,MAAM,MAAM,KAAK,GACb,MAAM,GACN,MAAM,GACN,gBAAgB,GAChB,aAAa,GACb,gBAAgB,CAAC;AAKrB;;;;;GAKG;AACH,eAAO,MAAM,WAAW,UAAW,KAAK;;;;;;;;CAQvC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,UAAW,KAAK;;;CAM1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,UAAW,KAAK;;;;;;;;;CAMvC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,UAAW,KAAK;;;;CAiB1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,UAAW,KAAK,KAAG,MAiC/C,CAAC"}
1
+ {"version":3,"file":"trade-utils.d.cts","sourceRoot":"","sources":["../../src/utils/trade-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAMN,gCAA4B;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,UAAW,KAAK,KAAG,MAiC/C,CAAC"}
@@ -1,57 +1,4 @@
1
- import type { BitcoinTradeData, StellarTradeData, TronTradeData, TxData } from "../types.mjs";
2
- export type Trade = TxData | string | BitcoinTradeData | TronTradeData | StellarTradeData;
3
- /**
4
- * Type guard to check if a trade is an EVM TxData object
5
- *
6
- * @param trade - The trade object to check
7
- * @returns True if the trade is a TxData object with data property
8
- */
9
- export declare const isEvmTxData: (trade: Trade) => trade is {
10
- chainId: number;
11
- from: `0x${string}`;
12
- to: `0x${string}`;
13
- value: `0x${string}`;
14
- data: `0x${string}`;
15
- gasLimit: number | null;
16
- effectiveGas?: number | undefined;
17
- };
18
- /**
19
- * Type guard to check if a trade is a Bitcoin trade with unsignedPsbtBase64
20
- *
21
- * @param trade - The trade object to check
22
- * @returns True if the trade is a Bitcoin trade with unsignedPsbtBase64 property
23
- */
24
- export declare const isBitcoinTrade: (trade: Trade) => trade is {
25
- unsignedPsbtBase64: string;
26
- inputsToSign: {}[] | null;
27
- };
28
- /**
29
- * Type guard to check if a trade is a Tron trade with raw_data_hex
30
- *
31
- * @param trade - The trade object to check
32
- * @returns True if the trade is a Tron trade with raw_data_hex property
33
- */
34
- export declare const isTronTrade: (trade: Trade) => trade is {
35
- raw_data_hex: string;
36
- visible?: boolean | undefined;
37
- raw_data?: {
38
- contract?: {
39
- type?: string | undefined;
40
- }[] | undefined;
41
- fee_limit?: number | undefined;
42
- } | null | undefined;
43
- };
44
- /**
45
- * Type guard to check if a trade is a Stellar trade with XDR (base64) payload
46
- *
47
- * @param trade - The trade object to check
48
- * @returns True if the trade is a Stellar trade with xdrBase64 or xdr property
49
- */
50
- export declare const isStellarTrade: (trade: Trade) => trade is {
51
- xdrBase64: string;
52
- } | {
53
- xdr: string;
54
- };
1
+ import { Trade } from "../validators/trade.mjs";
55
2
  /**
56
3
  * Extracts the transaction data from different trade formats
57
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"trade-utils.d.mts","sourceRoot":"","sources":["../../src/utils/trade-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,MAAM,EACP,qBAAiB;AAGlB,MAAM,MAAM,KAAK,GACb,MAAM,GACN,MAAM,GACN,gBAAgB,GAChB,aAAa,GACb,gBAAgB,CAAC;AAKrB;;;;;GAKG;AACH,eAAO,MAAM,WAAW,UAAW,KAAK;;;;;;;;CAQvC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,UAAW,KAAK;;;CAM1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,UAAW,KAAK;;;;;;;;;CAMvC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,UAAW,KAAK;;;;CAiB1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,UAAW,KAAK,KAAG,MAiC/C,CAAC"}
1
+ {"version":3,"file":"trade-utils.d.mts","sourceRoot":"","sources":["../../src/utils/trade-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAMN,gCAA4B;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,UAAW,KAAK,KAAG,MAiC/C,CAAC"}
@@ -1,59 +1,4 @@
1
- const hasOwnProp = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
2
- /**
3
- * Type guard to check if a trade is an EVM TxData object
4
- *
5
- * @param trade - The trade object to check
6
- * @returns True if the trade is a TxData object with data property
7
- */
8
- export const isEvmTxData = (trade) => {
9
- return (typeof trade === 'object' &&
10
- trade !== null &&
11
- hasOwnProp(trade, 'data') &&
12
- hasOwnProp(trade, 'chainId') &&
13
- hasOwnProp(trade, 'to'));
14
- };
15
- /**
16
- * Type guard to check if a trade is a Bitcoin trade with unsignedPsbtBase64
17
- *
18
- * @param trade - The trade object to check
19
- * @returns True if the trade is a Bitcoin trade with unsignedPsbtBase64 property
20
- */
21
- export const isBitcoinTrade = (trade) => {
22
- return (typeof trade === 'object' &&
23
- trade !== null &&
24
- hasOwnProp(trade, 'unsignedPsbtBase64'));
25
- };
26
- /**
27
- * Type guard to check if a trade is a Tron trade with raw_data_hex
28
- *
29
- * @param trade - The trade object to check
30
- * @returns True if the trade is a Tron trade with raw_data_hex property
31
- */
32
- export const isTronTrade = (trade) => {
33
- return (typeof trade === 'object' &&
34
- trade !== null &&
35
- hasOwnProp(trade, 'raw_data_hex'));
36
- };
37
- /**
38
- * Type guard to check if a trade is a Stellar trade with XDR (base64) payload
39
- *
40
- * @param trade - The trade object to check
41
- * @returns True if the trade is a Stellar trade with xdrBase64 or xdr property
42
- */
43
- export const isStellarTrade = (trade) => {
44
- if (typeof trade !== 'object' || trade === null) {
45
- return false;
46
- }
47
- if (hasOwnProp(trade, 'xdrBase64') &&
48
- typeof trade.xdrBase64 === 'string') {
49
- return true;
50
- }
51
- if (hasOwnProp(trade, 'xdr') &&
52
- typeof trade.xdr === 'string') {
53
- return true;
54
- }
55
- return false;
56
- };
1
+ import { isBitcoinTrade, isTronTrade, isEvmTxData, isStellarTrade, hasOwnProp } from "../validators/trade.mjs";
57
2
  /**
58
3
  * Extracts the transaction data from different trade formats
59
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"trade-utils.mjs","sourceRoot":"","sources":["../../src/utils/trade-utils.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,GAAgB,EAAW,EAAE,CAC5D,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAY,EAAmB,EAAE;IAC3D,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC;QAC5B,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CACxB,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAY,EAA6B,EAAE;IACxE,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,UAAU,CAAC,KAAK,EAAE,oBAAoB,CAAC,CACxC,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAY,EAA0B,EAAE;IAClE,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,CAClC,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAY,EAA6B,EAAE;IACxE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IACE,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC;QAC9B,OAAQ,KAAgC,CAAC,SAAS,KAAK,QAAQ,EAC/D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IACE,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;QACxB,OAAQ,KAA0B,CAAC,GAAG,KAAK,QAAQ,EACnD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAU,EAAE;IACvD,qEAAqE;IACrE,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,4CAA4C;QAC5C,OAAO,KAAK,CAAC,kBAAkB,CAAC;IAClC,CAAC;IAED,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,+DAA+D;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,IACE,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC;YAC9B,OAAQ,KAAgC,CAAC,SAAS,KAAK,QAAQ,EAC/D,CAAC;YACD,OAAQ,KAA+B,CAAC,SAAS,CAAC;QACpD,CAAC;QACD,OAAQ,KAAyB,CAAC,GAAG,CAAC;IACxC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,kDAAkD;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,+CAA+C;QAC/C,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC","sourcesContent":["import type {\n BitcoinTradeData,\n StellarTradeData,\n TronTradeData,\n TxData,\n} from '../types';\n\n// Union type representing all possible trade formats (EVM, Solana, Bitcoin, Tron, Stellar)\nexport type Trade =\n | TxData\n | string\n | BitcoinTradeData\n | TronTradeData\n | StellarTradeData;\n\nconst hasOwnProp = (obj: object, key: PropertyKey): boolean =>\n Object.prototype.hasOwnProperty.call(obj, key);\n\n/**\n * Type guard to check if a trade is an EVM TxData object\n *\n * @param trade - The trade object to check\n * @returns True if the trade is a TxData object with data property\n */\nexport const isEvmTxData = (trade: Trade): trade is TxData => {\n return (\n typeof trade === 'object' &&\n trade !== null &&\n hasOwnProp(trade, 'data') &&\n hasOwnProp(trade, 'chainId') &&\n hasOwnProp(trade, 'to')\n );\n};\n\n/**\n * Type guard to check if a trade is a Bitcoin trade with unsignedPsbtBase64\n *\n * @param trade - The trade object to check\n * @returns True if the trade is a Bitcoin trade with unsignedPsbtBase64 property\n */\nexport const isBitcoinTrade = (trade: Trade): trade is BitcoinTradeData => {\n return (\n typeof trade === 'object' &&\n trade !== null &&\n hasOwnProp(trade, 'unsignedPsbtBase64')\n );\n};\n\n/**\n * Type guard to check if a trade is a Tron trade with raw_data_hex\n *\n * @param trade - The trade object to check\n * @returns True if the trade is a Tron trade with raw_data_hex property\n */\nexport const isTronTrade = (trade: Trade): trade is TronTradeData => {\n return (\n typeof trade === 'object' &&\n trade !== null &&\n hasOwnProp(trade, 'raw_data_hex')\n );\n};\n\n/**\n * Type guard to check if a trade is a Stellar trade with XDR (base64) payload\n *\n * @param trade - The trade object to check\n * @returns True if the trade is a Stellar trade with xdrBase64 or xdr property\n */\nexport const isStellarTrade = (trade: Trade): trade is StellarTradeData => {\n if (typeof trade !== 'object' || trade === null) {\n return false;\n }\n if (\n hasOwnProp(trade, 'xdrBase64') &&\n typeof (trade as { xdrBase64: unknown }).xdrBase64 === 'string'\n ) {\n return true;\n }\n if (\n hasOwnProp(trade, 'xdr') &&\n typeof (trade as { xdr: unknown }).xdr === 'string'\n ) {\n return true;\n }\n return false;\n};\n\n/**\n * Extracts the transaction data from different trade formats\n *\n * @param trade - The trade object which can be a TxData, string, Bitcoin trade, or Tron trade\n * @returns The extracted transaction data as a base64 string for SnapController\n */\nexport const extractTradeData = (trade: Trade): string => {\n // Check more specific trade types first to prevent misidentification\n if (isBitcoinTrade(trade)) {\n // Bitcoin trades are already base64 encoded\n return trade.unsignedPsbtBase64;\n }\n\n if (isTronTrade(trade)) {\n // Tron trades need hex to base64 conversion for SnapController\n return Buffer.from(trade.raw_data_hex, 'hex').toString('base64');\n }\n\n if (isStellarTrade(trade)) {\n if (\n hasOwnProp(trade, 'xdrBase64') &&\n typeof (trade as { xdrBase64: unknown }).xdrBase64 === 'string'\n ) {\n return (trade as { xdrBase64: string }).xdrBase64;\n }\n return (trade as { xdr: string }).xdr;\n }\n\n if (typeof trade === 'string') {\n // Solana txs - assuming already in correct format\n return trade;\n }\n\n if (isEvmTxData(trade)) {\n // EVM TxData object - return the data property\n return trade.data;\n }\n\n return '';\n};\n"]}
1
+ {"version":3,"file":"trade-utils.mjs","sourceRoot":"","sources":["../../src/utils/trade-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,WAAW,EACX,WAAW,EACX,cAAc,EACd,UAAU,EACX,gCAA4B;AAE7B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAU,EAAE;IACvD,qEAAqE;IACrE,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,4CAA4C;QAC5C,OAAO,KAAK,CAAC,kBAAkB,CAAC;IAClC,CAAC;IAED,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,+DAA+D;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,IACE,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC;YAC9B,OAAQ,KAAgC,CAAC,SAAS,KAAK,QAAQ,EAC/D,CAAC;YACD,OAAQ,KAA+B,CAAC,SAAS,CAAC;QACpD,CAAC;QACD,OAAQ,KAAyB,CAAC,GAAG,CAAC;IACxC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,kDAAkD;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,+CAA+C;QAC/C,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC","sourcesContent":["import {\n Trade,\n isBitcoinTrade,\n isTronTrade,\n isEvmTxData,\n isStellarTrade,\n hasOwnProp,\n} from '../validators/trade';\n\n/**\n * Extracts the transaction data from different trade formats\n *\n * @param trade - The trade object which can be a TxData, string, Bitcoin trade, or Tron trade\n * @returns The extracted transaction data as a base64 string for SnapController\n */\nexport const extractTradeData = (trade: Trade): string => {\n // Check more specific trade types first to prevent misidentification\n if (isBitcoinTrade(trade)) {\n // Bitcoin trades are already base64 encoded\n return trade.unsignedPsbtBase64;\n }\n\n if (isTronTrade(trade)) {\n // Tron trades need hex to base64 conversion for SnapController\n return Buffer.from(trade.raw_data_hex, 'hex').toString('base64');\n }\n\n if (isStellarTrade(trade)) {\n if (\n hasOwnProp(trade, 'xdrBase64') &&\n typeof (trade as { xdrBase64: unknown }).xdrBase64 === 'string'\n ) {\n return (trade as { xdrBase64: string }).xdrBase64;\n }\n return (trade as { xdr: string }).xdr;\n }\n\n if (typeof trade === 'string') {\n // Solana txs - assuming already in correct format\n return trade;\n }\n\n if (isEvmTxData(trade)) {\n // EVM TxData object - return the data property\n return trade.data;\n }\n\n return '';\n};\n"]}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateBatchSellTradesResponse = exports.BatchSellTradesResponseSchema = exports.SimulatedGasFeeLimitsSchema = exports.BatchSellTransactionType = void 0;
4
+ const superstruct_1 = require("@metamask/superstruct");
5
+ const utils_1 = require("@metamask/utils");
6
+ const bridge_asset_1 = require("./bridge-asset.cjs");
7
+ const number_1 = require("./number.cjs");
8
+ const quote_1 = require("./quote.cjs");
9
+ const trade_1 = require("./trade.cjs");
10
+ var BatchSellTransactionType;
11
+ (function (BatchSellTransactionType) {
12
+ BatchSellTransactionType["TRADE"] = "trade";
13
+ BatchSellTransactionType["APPROVAL"] = "approval";
14
+ BatchSellTransactionType["TRANSFER"] = "transfer";
15
+ })(BatchSellTransactionType || (exports.BatchSellTransactionType = BatchSellTransactionType = {}));
16
+ exports.SimulatedGasFeeLimitsSchema = (0, superstruct_1.type)({
17
+ maxFeePerGas: utils_1.StrictHexStruct,
18
+ maxPriorityFeePerGas: utils_1.StrictHexStruct,
19
+ });
20
+ exports.BatchSellTradesResponseSchema = (0, superstruct_1.intersection)([
21
+ (0, superstruct_1.type)({
22
+ transactions: (0, superstruct_1.array)((0, superstruct_1.intersection)([
23
+ trade_1.TxDataSchema,
24
+ exports.SimulatedGasFeeLimitsSchema,
25
+ (0, superstruct_1.type)({ type: (0, superstruct_1.enums)(Object.values(BatchSellTransactionType)) }),
26
+ ])),
27
+ fee: (0, superstruct_1.optional)((0, superstruct_1.type)({
28
+ asset: bridge_asset_1.BridgeAssetSchema,
29
+ amount: number_1.NumberStringSchema,
30
+ })),
31
+ }),
32
+ quote_1.GaslessPropertiesSchema,
33
+ ]);
34
+ const validateBatchSellTradesResponse = (data) => {
35
+ (0, superstruct_1.assert)(data, exports.BatchSellTradesResponseSchema);
36
+ return true;
37
+ };
38
+ exports.validateBatchSellTradesResponse = validateBatchSellTradesResponse;
39
+ //# sourceMappingURL=batch-sell.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-sell.cjs","sourceRoot":"","sources":["../../src/validators/batch-sell.ts"],"names":[],"mappings":";;;AAAA,uDAO+B;AAE/B,2CAAkD;AAElD,qDAAmD;AACnD,yCAA8C;AAC9C,uCAAkD;AAClD,uCAAuC;AAEvC,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,2CAAe,CAAA;IACf,iDAAqB,CAAA;IACrB,iDAAqB,CAAA;AACvB,CAAC,EAJW,wBAAwB,wCAAxB,wBAAwB,QAInC;AAEY,QAAA,2BAA2B,GAAG,IAAA,kBAAI,EAAC;IAC9C,YAAY,EAAE,uBAAe;IAC7B,oBAAoB,EAAE,uBAAe;CACtC,CAAC,CAAC;AAEU,QAAA,6BAA6B,GAAG,IAAA,0BAAY,EAAC;IACxD,IAAA,kBAAI,EAAC;QACH,YAAY,EAAE,IAAA,mBAAK,EACjB,IAAA,0BAAY,EAAC;YACX,oBAAY;YACZ,mCAA2B;YAC3B,IAAA,kBAAI,EAAC,EAAE,IAAI,EAAE,IAAA,mBAAK,EAAC,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC;SAC/D,CAAC,CACH;QACD,GAAG,EAAE,IAAA,sBAAQ,EACX,IAAA,kBAAI,EAAC;YACH,KAAK,EAAE,gCAAiB;YACxB,MAAM,EAAE,2BAAkB;SAC3B,CAAC,CACH;KACF,CAAC;IACF,+BAAuB;CACxB,CAAC,CAAC;AAEI,MAAM,+BAA+B,GAAG,CAC7C,IAAa,EACwC,EAAE;IACvD,IAAA,oBAAM,EAAC,IAAI,EAAE,qCAA6B,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AALW,QAAA,+BAA+B,mCAK1C","sourcesContent":["import {\n intersection,\n type,\n array,\n enums,\n optional,\n assert,\n} from '@metamask/superstruct';\nimport type { Infer } from '@metamask/superstruct';\nimport { StrictHexStruct } from '@metamask/utils';\n\nimport { BridgeAssetSchema } from './bridge-asset';\nimport { NumberStringSchema } from './number';\nimport { GaslessPropertiesSchema } from './quote';\nimport { TxDataSchema } from './trade';\n\nexport enum BatchSellTransactionType {\n TRADE = 'trade',\n APPROVAL = 'approval',\n TRANSFER = 'transfer',\n}\n\nexport const SimulatedGasFeeLimitsSchema = type({\n maxFeePerGas: StrictHexStruct,\n maxPriorityFeePerGas: StrictHexStruct,\n});\n\nexport const BatchSellTradesResponseSchema = intersection([\n type({\n transactions: array(\n intersection([\n TxDataSchema,\n SimulatedGasFeeLimitsSchema,\n type({ type: enums(Object.values(BatchSellTransactionType)) }),\n ]),\n ),\n fee: optional(\n type({\n asset: BridgeAssetSchema,\n amount: NumberStringSchema,\n }),\n ),\n }),\n GaslessPropertiesSchema,\n]);\n\nexport const validateBatchSellTradesResponse = (\n data: unknown,\n): data is Infer<typeof BatchSellTradesResponseSchema> => {\n assert(data, BatchSellTradesResponseSchema);\n return true;\n};\n"]}
@@ -0,0 +1,79 @@
1
+ export declare enum BatchSellTransactionType {
2
+ TRADE = "trade",
3
+ APPROVAL = "approval",
4
+ TRANSFER = "transfer"
5
+ }
6
+ export declare const SimulatedGasFeeLimitsSchema: import("@metamask/superstruct").Struct<{
7
+ maxFeePerGas: `0x${string}`;
8
+ maxPriorityFeePerGas: `0x${string}`;
9
+ }, {
10
+ maxFeePerGas: import("@metamask/superstruct").Struct<`0x${string}`, null>;
11
+ maxPriorityFeePerGas: import("@metamask/superstruct").Struct<`0x${string}`, null>;
12
+ }>;
13
+ export declare const BatchSellTradesResponseSchema: import("@metamask/superstruct").Struct<{
14
+ transactions: ({
15
+ chainId: number;
16
+ to: `0x${string}`;
17
+ from: `0x${string}`;
18
+ value: `0x${string}`;
19
+ data: `0x${string}`;
20
+ gasLimit: number | null;
21
+ effectiveGas?: number | undefined;
22
+ } & {
23
+ maxFeePerGas: `0x${string}`;
24
+ maxPriorityFeePerGas: `0x${string}`;
25
+ } & {
26
+ type: BatchSellTransactionType;
27
+ })[];
28
+ fee?: {
29
+ amount: string;
30
+ asset: {
31
+ symbol: string;
32
+ chainId: number;
33
+ address: string;
34
+ assetId: `${string}:${string}/${string}:${string}`;
35
+ name: string;
36
+ decimals: number;
37
+ icon?: string | null | undefined;
38
+ iconUrl?: string | null | undefined;
39
+ };
40
+ } | undefined;
41
+ } & {
42
+ gasIncluded?: boolean | undefined;
43
+ gasIncluded7702?: boolean | undefined;
44
+ gasSponsored?: boolean | undefined;
45
+ }, null>;
46
+ export declare const validateBatchSellTradesResponse: (data: unknown) => data is {
47
+ transactions: ({
48
+ chainId: number;
49
+ to: `0x${string}`;
50
+ from: `0x${string}`;
51
+ value: `0x${string}`;
52
+ data: `0x${string}`;
53
+ gasLimit: number | null;
54
+ effectiveGas?: number | undefined;
55
+ } & {
56
+ maxFeePerGas: `0x${string}`;
57
+ maxPriorityFeePerGas: `0x${string}`;
58
+ } & {
59
+ type: BatchSellTransactionType;
60
+ })[];
61
+ fee?: {
62
+ amount: string;
63
+ asset: {
64
+ symbol: string;
65
+ chainId: number;
66
+ address: string;
67
+ assetId: `${string}:${string}/${string}:${string}`;
68
+ name: string;
69
+ decimals: number;
70
+ icon?: string | null | undefined;
71
+ iconUrl?: string | null | undefined;
72
+ };
73
+ } | undefined;
74
+ } & {
75
+ gasIncluded?: boolean | undefined;
76
+ gasIncluded7702?: boolean | undefined;
77
+ gasSponsored?: boolean | undefined;
78
+ };
79
+ //# sourceMappingURL=batch-sell.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-sell.d.cts","sourceRoot":"","sources":["../../src/validators/batch-sell.ts"],"names":[],"mappings":"AAgBA,oBAAY,wBAAwB;IAClC,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,2BAA2B;;;;;;EAGtC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiBxC,CAAC;AAEH,eAAO,MAAM,+BAA+B,SACpC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAId,CAAC"}
@@ -0,0 +1,79 @@
1
+ export declare enum BatchSellTransactionType {
2
+ TRADE = "trade",
3
+ APPROVAL = "approval",
4
+ TRANSFER = "transfer"
5
+ }
6
+ export declare const SimulatedGasFeeLimitsSchema: import("@metamask/superstruct").Struct<{
7
+ maxFeePerGas: `0x${string}`;
8
+ maxPriorityFeePerGas: `0x${string}`;
9
+ }, {
10
+ maxFeePerGas: import("@metamask/superstruct").Struct<`0x${string}`, null>;
11
+ maxPriorityFeePerGas: import("@metamask/superstruct").Struct<`0x${string}`, null>;
12
+ }>;
13
+ export declare const BatchSellTradesResponseSchema: import("@metamask/superstruct").Struct<{
14
+ transactions: ({
15
+ chainId: number;
16
+ to: `0x${string}`;
17
+ from: `0x${string}`;
18
+ value: `0x${string}`;
19
+ data: `0x${string}`;
20
+ gasLimit: number | null;
21
+ effectiveGas?: number | undefined;
22
+ } & {
23
+ maxFeePerGas: `0x${string}`;
24
+ maxPriorityFeePerGas: `0x${string}`;
25
+ } & {
26
+ type: BatchSellTransactionType;
27
+ })[];
28
+ fee?: {
29
+ amount: string;
30
+ asset: {
31
+ symbol: string;
32
+ chainId: number;
33
+ address: string;
34
+ assetId: `${string}:${string}/${string}:${string}`;
35
+ name: string;
36
+ decimals: number;
37
+ icon?: string | null | undefined;
38
+ iconUrl?: string | null | undefined;
39
+ };
40
+ } | undefined;
41
+ } & {
42
+ gasIncluded?: boolean | undefined;
43
+ gasIncluded7702?: boolean | undefined;
44
+ gasSponsored?: boolean | undefined;
45
+ }, null>;
46
+ export declare const validateBatchSellTradesResponse: (data: unknown) => data is {
47
+ transactions: ({
48
+ chainId: number;
49
+ to: `0x${string}`;
50
+ from: `0x${string}`;
51
+ value: `0x${string}`;
52
+ data: `0x${string}`;
53
+ gasLimit: number | null;
54
+ effectiveGas?: number | undefined;
55
+ } & {
56
+ maxFeePerGas: `0x${string}`;
57
+ maxPriorityFeePerGas: `0x${string}`;
58
+ } & {
59
+ type: BatchSellTransactionType;
60
+ })[];
61
+ fee?: {
62
+ amount: string;
63
+ asset: {
64
+ symbol: string;
65
+ chainId: number;
66
+ address: string;
67
+ assetId: `${string}:${string}/${string}:${string}`;
68
+ name: string;
69
+ decimals: number;
70
+ icon?: string | null | undefined;
71
+ iconUrl?: string | null | undefined;
72
+ };
73
+ } | undefined;
74
+ } & {
75
+ gasIncluded?: boolean | undefined;
76
+ gasIncluded7702?: boolean | undefined;
77
+ gasSponsored?: boolean | undefined;
78
+ };
79
+ //# sourceMappingURL=batch-sell.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-sell.d.mts","sourceRoot":"","sources":["../../src/validators/batch-sell.ts"],"names":[],"mappings":"AAgBA,oBAAY,wBAAwB;IAClC,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,2BAA2B;;;;;;EAGtC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiBxC,CAAC;AAEH,eAAO,MAAM,+BAA+B,SACpC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAId,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { intersection, type, array, enums, optional, assert } from "@metamask/superstruct";
2
+ import { StrictHexStruct } from "@metamask/utils";
3
+ import { BridgeAssetSchema } from "./bridge-asset.mjs";
4
+ import { NumberStringSchema } from "./number.mjs";
5
+ import { GaslessPropertiesSchema } from "./quote.mjs";
6
+ import { TxDataSchema } from "./trade.mjs";
7
+ export var BatchSellTransactionType;
8
+ (function (BatchSellTransactionType) {
9
+ BatchSellTransactionType["TRADE"] = "trade";
10
+ BatchSellTransactionType["APPROVAL"] = "approval";
11
+ BatchSellTransactionType["TRANSFER"] = "transfer";
12
+ })(BatchSellTransactionType || (BatchSellTransactionType = {}));
13
+ export const SimulatedGasFeeLimitsSchema = type({
14
+ maxFeePerGas: StrictHexStruct,
15
+ maxPriorityFeePerGas: StrictHexStruct,
16
+ });
17
+ export const BatchSellTradesResponseSchema = intersection([
18
+ type({
19
+ transactions: array(intersection([
20
+ TxDataSchema,
21
+ SimulatedGasFeeLimitsSchema,
22
+ type({ type: enums(Object.values(BatchSellTransactionType)) }),
23
+ ])),
24
+ fee: optional(type({
25
+ asset: BridgeAssetSchema,
26
+ amount: NumberStringSchema,
27
+ })),
28
+ }),
29
+ GaslessPropertiesSchema,
30
+ ]);
31
+ export const validateBatchSellTradesResponse = (data) => {
32
+ assert(data, BatchSellTradesResponseSchema);
33
+ return true;
34
+ };
35
+ //# sourceMappingURL=batch-sell.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-sell.mjs","sourceRoot":"","sources":["../../src/validators/batch-sell.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,MAAM,EACP,8BAA8B;AAE/B,OAAO,EAAE,eAAe,EAAE,wBAAwB;AAElD,OAAO,EAAE,iBAAiB,EAAE,2BAAuB;AACnD,OAAO,EAAE,kBAAkB,EAAE,qBAAiB;AAC9C,OAAO,EAAE,uBAAuB,EAAE,oBAAgB;AAClD,OAAO,EAAE,YAAY,EAAE,oBAAgB;AAEvC,MAAM,CAAN,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,2CAAe,CAAA;IACf,iDAAqB,CAAA;IACrB,iDAAqB,CAAA;AACvB,CAAC,EAJW,wBAAwB,KAAxB,wBAAwB,QAInC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC;IAC9C,YAAY,EAAE,eAAe;IAC7B,oBAAoB,EAAE,eAAe;CACtC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,YAAY,CAAC;IACxD,IAAI,CAAC;QACH,YAAY,EAAE,KAAK,CACjB,YAAY,CAAC;YACX,YAAY;YACZ,2BAA2B;YAC3B,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC;SAC/D,CAAC,CACH;QACD,GAAG,EAAE,QAAQ,CACX,IAAI,CAAC;YACH,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,kBAAkB;SAC3B,CAAC,CACH;KACF,CAAC;IACF,uBAAuB;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,IAAa,EACwC,EAAE;IACvD,MAAM,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC,CAAC","sourcesContent":["import {\n intersection,\n type,\n array,\n enums,\n optional,\n assert,\n} from '@metamask/superstruct';\nimport type { Infer } from '@metamask/superstruct';\nimport { StrictHexStruct } from '@metamask/utils';\n\nimport { BridgeAssetSchema } from './bridge-asset';\nimport { NumberStringSchema } from './number';\nimport { GaslessPropertiesSchema } from './quote';\nimport { TxDataSchema } from './trade';\n\nexport enum BatchSellTransactionType {\n TRADE = 'trade',\n APPROVAL = 'approval',\n TRANSFER = 'transfer',\n}\n\nexport const SimulatedGasFeeLimitsSchema = type({\n maxFeePerGas: StrictHexStruct,\n maxPriorityFeePerGas: StrictHexStruct,\n});\n\nexport const BatchSellTradesResponseSchema = intersection([\n type({\n transactions: array(\n intersection([\n TxDataSchema,\n SimulatedGasFeeLimitsSchema,\n type({ type: enums(Object.values(BatchSellTransactionType)) }),\n ]),\n ),\n fee: optional(\n type({\n asset: BridgeAssetSchema,\n amount: NumberStringSchema,\n }),\n ),\n }),\n GaslessPropertiesSchema,\n]);\n\nexport const validateBatchSellTradesResponse = (\n data: unknown,\n): data is Infer<typeof BatchSellTradesResponseSchema> => {\n assert(data, BatchSellTradesResponseSchema);\n return true;\n};\n"]}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateBridgeAsset = exports.BridgeAssetSchema = exports.ChainIdSchema = void 0;
4
+ const superstruct_1 = require("@metamask/superstruct");
5
+ const utils_1 = require("@metamask/utils");
6
+ exports.ChainIdSchema = (0, superstruct_1.number)();
7
+ exports.BridgeAssetSchema = (0, superstruct_1.type)({
8
+ /**
9
+ * The chainId of the token
10
+ */
11
+ chainId: exports.ChainIdSchema,
12
+ /**
13
+ * An address that the metaswap-api recognizes as the default token
14
+ */
15
+ address: (0, superstruct_1.string)(),
16
+ /**
17
+ * The assetId of the token
18
+ */
19
+ assetId: utils_1.CaipAssetTypeStruct,
20
+ /**
21
+ * The symbol of token object
22
+ */
23
+ symbol: (0, superstruct_1.string)(),
24
+ /**
25
+ * The name for the network
26
+ */
27
+ name: (0, superstruct_1.string)(),
28
+ decimals: (0, superstruct_1.number)(),
29
+ /**
30
+ * URL for token icon
31
+ */
32
+ icon: (0, superstruct_1.optional)((0, superstruct_1.nullable)((0, superstruct_1.string)())),
33
+ /**
34
+ * URL for token icon
35
+ */
36
+ iconUrl: (0, superstruct_1.optional)((0, superstruct_1.nullable)((0, superstruct_1.string)())),
37
+ });
38
+ const validateBridgeAsset = (data) => {
39
+ return (0, superstruct_1.is)(data, exports.BridgeAssetSchema);
40
+ };
41
+ exports.validateBridgeAsset = validateBridgeAsset;
42
+ //# sourceMappingURL=bridge-asset.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-asset.cjs","sourceRoot":"","sources":["../../src/validators/bridge-asset.ts"],"names":[],"mappings":";;;AAAA,uDAO+B;AAE/B,2CAAsD;AAEzC,QAAA,aAAa,GAAG,IAAA,oBAAM,GAAE,CAAC;AAEzB,QAAA,iBAAiB,GAAG,IAAA,kBAAI,EAAC;IACpC;;OAEG;IACH,OAAO,EAAE,qBAAa;IACtB;;OAEG;IACH,OAAO,EAAE,IAAA,oBAAM,GAAE;IACjB;;OAEG;IACH,OAAO,EAAE,2BAAmB;IAC5B;;OAEG;IACH,MAAM,EAAE,IAAA,oBAAM,GAAE;IAChB;;OAEG;IACH,IAAI,EAAE,IAAA,oBAAM,GAAE;IACd,QAAQ,EAAE,IAAA,oBAAM,GAAE;IAClB;;OAEG;IACH,IAAI,EAAE,IAAA,sBAAQ,EAAC,IAAA,sBAAQ,EAAC,IAAA,oBAAM,GAAE,CAAC,CAAC;IAClC;;OAEG;IACH,OAAO,EAAE,IAAA,sBAAQ,EAAC,IAAA,sBAAQ,EAAC,IAAA,oBAAM,GAAE,CAAC,CAAC;CACtC,CAAC,CAAC;AAEI,MAAM,mBAAmB,GAAG,CACjC,IAAa,EAC4B,EAAE;IAC3C,OAAO,IAAA,gBAAE,EAAC,IAAI,EAAE,yBAAiB,CAAC,CAAC;AACrC,CAAC,CAAC;AAJW,QAAA,mBAAmB,uBAI9B","sourcesContent":["import {\n number,\n type,\n string,\n optional,\n nullable,\n is,\n} from '@metamask/superstruct';\nimport type { Infer } from '@metamask/superstruct';\nimport { CaipAssetTypeStruct } from '@metamask/utils';\n\nexport const ChainIdSchema = number();\n\nexport const BridgeAssetSchema = type({\n /**\n * The chainId of the token\n */\n chainId: ChainIdSchema,\n /**\n * An address that the metaswap-api recognizes as the default token\n */\n address: string(),\n /**\n * The assetId of the token\n */\n assetId: CaipAssetTypeStruct,\n /**\n * The symbol of token object\n */\n symbol: string(),\n /**\n * The name for the network\n */\n name: string(),\n decimals: number(),\n /**\n * URL for token icon\n */\n icon: optional(nullable(string())),\n /**\n * URL for token icon\n */\n iconUrl: optional(nullable(string())),\n});\n\nexport const validateBridgeAsset = (\n data: unknown,\n): data is Infer<typeof BridgeAssetSchema> => {\n return is(data, BridgeAssetSchema);\n};\n"]}