@metamask-previews/bridge-controller 77.3.2-preview-0e180da1e → 77.3.2-preview-b3fa32653

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 +0 -4
  2. package/dist/bridge-controller.cjs.map +1 -1
  3. package/dist/bridge-controller.d.cts +2 -3
  4. package/dist/bridge-controller.d.cts.map +1 -1
  5. package/dist/bridge-controller.d.mts +2 -3
  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 +30 -36
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.d.cts +5 -14
  12. package/dist/index.d.cts.map +1 -1
  13. package/dist/index.d.mts +5 -14
  14. package/dist/index.d.mts.map +1 -1
  15. package/dist/index.mjs +4 -10
  16. package/dist/index.mjs.map +1 -1
  17. package/dist/selectors.cjs.map +1 -1
  18. package/dist/selectors.d.cts +6483 -5934
  19. package/dist/selectors.d.cts.map +1 -1
  20. package/dist/selectors.d.mts +6483 -5934
  21. package/dist/selectors.d.mts.map +1 -1
  22. package/dist/selectors.mjs.map +1 -1
  23. package/dist/types.cjs +12 -1
  24. package/dist/types.cjs.map +1 -1
  25. package/dist/types.d.cts +41 -21
  26. package/dist/types.d.cts.map +1 -1
  27. package/dist/types.d.mts +41 -21
  28. package/dist/types.d.mts.map +1 -1
  29. package/dist/types.mjs +11 -0
  30. package/dist/types.mjs.map +1 -1
  31. package/dist/utils/bridge.cjs +0 -1
  32. package/dist/utils/bridge.cjs.map +1 -1
  33. package/dist/utils/bridge.d.cts +3 -4
  34. package/dist/utils/bridge.d.cts.map +1 -1
  35. package/dist/utils/bridge.d.mts +3 -4
  36. package/dist/utils/bridge.d.mts.map +1 -1
  37. package/dist/utils/bridge.mjs +0 -1
  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 +11 -16
  46. package/dist/utils/fetch.cjs.map +1 -1
  47. package/dist/utils/fetch.d.cts +1 -3
  48. package/dist/utils/fetch.d.cts.map +1 -1
  49. package/dist/utils/fetch.d.mts +1 -3
  50. package/dist/utils/fetch.d.mts.map +1 -1
  51. package/dist/utils/fetch.mjs +4 -9
  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 +2 -4
  56. package/dist/utils/metrics/properties.d.cts.map +1 -1
  57. package/dist/utils/metrics/properties.d.mts +2 -4
  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 +1 -2
  63. package/dist/utils/metrics/types.d.cts.map +1 -1
  64. package/dist/utils/metrics/types.d.mts +1 -2
  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 +1 -2
  68. package/dist/utils/quote-fees.cjs.map +1 -1
  69. package/dist/utils/quote-fees.d.cts +1 -2
  70. package/dist/utils/quote-fees.d.cts.map +1 -1
  71. package/dist/utils/quote-fees.d.mts +1 -2
  72. package/dist/utils/quote-fees.d.mts.map +1 -1
  73. package/dist/utils/quote-fees.mjs +1 -2
  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 +2 -5
  78. package/dist/utils/quote.d.cts.map +1 -1
  79. package/dist/utils/quote.d.mts +2 -5
  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/trade-utils.cjs +66 -7
  84. package/dist/utils/trade-utils.cjs.map +1 -1
  85. package/dist/utils/trade-utils.d.cts +54 -1
  86. package/dist/utils/trade-utils.d.cts.map +1 -1
  87. package/dist/utils/trade-utils.d.mts +54 -1
  88. package/dist/utils/trade-utils.d.mts.map +1 -1
  89. package/dist/utils/trade-utils.mjs +56 -1
  90. package/dist/utils/trade-utils.mjs.map +1 -1
  91. package/dist/utils/validators.cjs +471 -0
  92. package/dist/utils/validators.cjs.map +1 -0
  93. package/dist/utils/validators.d.cts +1765 -0
  94. package/dist/utils/validators.d.cts.map +1 -0
  95. package/dist/utils/validators.d.mts +1765 -0
  96. package/dist/utils/validators.d.mts.map +1 -0
  97. package/dist/utils/validators.mjs +461 -0
  98. package/dist/utils/validators.mjs.map +1 -0
  99. package/package.json +4 -4
  100. package/dist/utils/struct-error.cjs +0 -16
  101. package/dist/utils/struct-error.cjs.map +0 -1
  102. package/dist/utils/struct-error.d.cts +0 -11
  103. package/dist/utils/struct-error.d.cts.map +0 -1
  104. package/dist/utils/struct-error.d.mts +0 -11
  105. package/dist/utils/struct-error.d.mts.map +0 -1
  106. package/dist/utils/struct-error.mjs +0 -12
  107. package/dist/utils/struct-error.mjs.map +0 -1
  108. package/dist/validators/batch-sell.cjs +0 -39
  109. package/dist/validators/batch-sell.cjs.map +0 -1
  110. package/dist/validators/batch-sell.d.cts +0 -79
  111. package/dist/validators/batch-sell.d.cts.map +0 -1
  112. package/dist/validators/batch-sell.d.mts +0 -79
  113. package/dist/validators/batch-sell.d.mts.map +0 -1
  114. package/dist/validators/batch-sell.mjs +0 -35
  115. package/dist/validators/batch-sell.mjs.map +0 -1
  116. package/dist/validators/bridge-asset.cjs +0 -42
  117. package/dist/validators/bridge-asset.cjs.map +0 -1
  118. package/dist/validators/bridge-asset.d.cts +0 -52
  119. package/dist/validators/bridge-asset.d.cts.map +0 -1
  120. package/dist/validators/bridge-asset.d.mts +0 -52
  121. package/dist/validators/bridge-asset.d.mts.map +0 -1
  122. package/dist/validators/bridge-asset.mjs +0 -38
  123. package/dist/validators/bridge-asset.mjs.map +0 -1
  124. package/dist/validators/feature-flags.cjs +0 -110
  125. package/dist/validators/feature-flags.cjs.map +0 -1
  126. package/dist/validators/feature-flags.d.cts +0 -264
  127. package/dist/validators/feature-flags.d.cts.map +0 -1
  128. package/dist/validators/feature-flags.d.mts +0 -264
  129. package/dist/validators/feature-flags.d.mts.map +0 -1
  130. package/dist/validators/feature-flags.mjs +0 -106
  131. package/dist/validators/feature-flags.mjs.map +0 -1
  132. package/dist/validators/intent.cjs +0 -122
  133. package/dist/validators/intent.cjs.map +0 -1
  134. package/dist/validators/intent.d.cts +0 -231
  135. package/dist/validators/intent.d.cts.map +0 -1
  136. package/dist/validators/intent.d.mts +0 -231
  137. package/dist/validators/intent.d.mts.map +0 -1
  138. package/dist/validators/intent.mjs +0 -119
  139. package/dist/validators/intent.mjs.map +0 -1
  140. package/dist/validators/number.cjs +0 -8
  141. package/dist/validators/number.cjs.map +0 -1
  142. package/dist/validators/number.d.cts +0 -4
  143. package/dist/validators/number.d.cts.map +0 -1
  144. package/dist/validators/number.d.mts +0 -4
  145. package/dist/validators/number.d.mts.map +0 -1
  146. package/dist/validators/number.mjs +0 -5
  147. package/dist/validators/number.mjs.map +0 -1
  148. package/dist/validators/quote-response-v1.cjs +0 -31
  149. package/dist/validators/quote-response-v1.cjs.map +0 -1
  150. package/dist/validators/quote-response-v1.d.cts +0 -658
  151. package/dist/validators/quote-response-v1.d.cts.map +0 -1
  152. package/dist/validators/quote-response-v1.d.mts +0 -658
  153. package/dist/validators/quote-response-v1.d.mts.map +0 -1
  154. package/dist/validators/quote-response-v1.mjs +0 -27
  155. package/dist/validators/quote-response-v1.mjs.map +0 -1
  156. package/dist/validators/quote-stream-complete.cjs +0 -29
  157. package/dist/validators/quote-stream-complete.cjs.map +0 -1
  158. package/dist/validators/quote-stream-complete.d.cts +0 -39
  159. package/dist/validators/quote-stream-complete.d.cts.map +0 -1
  160. package/dist/validators/quote-stream-complete.d.mts +0 -39
  161. package/dist/validators/quote-stream-complete.d.mts.map +0 -1
  162. package/dist/validators/quote-stream-complete.mjs +0 -25
  163. package/dist/validators/quote-stream-complete.mjs.map +0 -1
  164. package/dist/validators/quote.cjs +0 -96
  165. package/dist/validators/quote.cjs.map +0 -1
  166. package/dist/validators/quote.d.cts +0 -230
  167. package/dist/validators/quote.d.cts.map +0 -1
  168. package/dist/validators/quote.d.mts +0 -230
  169. package/dist/validators/quote.d.mts.map +0 -1
  170. package/dist/validators/quote.mjs +0 -93
  171. package/dist/validators/quote.mjs.map +0 -1
  172. package/dist/validators/step.cjs +0 -20
  173. package/dist/validators/step.cjs.map +0 -1
  174. package/dist/validators/step.d.cts +0 -148
  175. package/dist/validators/step.d.cts.map +0 -1
  176. package/dist/validators/step.d.mts +0 -148
  177. package/dist/validators/step.d.mts.map +0 -1
  178. package/dist/validators/step.mjs +0 -17
  179. package/dist/validators/step.mjs.map +0 -1
  180. package/dist/validators/token-feature.cjs +0 -22
  181. package/dist/validators/token-feature.cjs.map +0 -1
  182. package/dist/validators/token-feature.d.cts +0 -26
  183. package/dist/validators/token-feature.d.cts.map +0 -1
  184. package/dist/validators/token-feature.d.mts +0 -26
  185. package/dist/validators/token-feature.d.mts.map +0 -1
  186. package/dist/validators/token-feature.mjs +0 -18
  187. package/dist/validators/token-feature.mjs.map +0 -1
  188. package/dist/validators/trade.cjs +0 -94
  189. package/dist/validators/trade.cjs.map +0 -1
  190. package/dist/validators/trade.d.cts +0 -121
  191. package/dist/validators/trade.d.cts.map +0 -1
  192. package/dist/validators/trade.d.mts +0 -121
  193. package/dist/validators/trade.d.mts.map +0 -1
  194. package/dist/validators/trade.mjs +0 -86
  195. package/dist/validators/trade.mjs.map +0 -1
@@ -1,4 +1,57 @@
1
- import { Trade } from "../validators/trade.cjs";
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
+ };
2
55
  /**
3
56
  * Extracts the transaction data from different trade formats
4
57
  *
@@ -1 +1 @@
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
+ {"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,4 +1,57 @@
1
- import { Trade } from "../validators/trade.mjs";
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
+ };
2
55
  /**
3
56
  * Extracts the transaction data from different trade formats
4
57
  *
@@ -1 +1 @@
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
+ {"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,4 +1,59 @@
1
- import { isBitcoinTrade, isTronTrade, isEvmTxData, isStellarTrade, hasOwnProp } from "../validators/trade.mjs";
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
+ };
2
57
  /**
3
58
  * Extracts the transaction data from different trade formats
4
59
  *
@@ -1 +1 @@
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"]}
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"]}