@metamask-previews/bridge-controller 75.2.1-preview-8633f7f2a → 75.2.1-preview-b2742a2fc

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 (96) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/bridge-controller-method-action-types.cjs.map +1 -1
  3. package/dist/bridge-controller-method-action-types.d.cts +5 -1
  4. package/dist/bridge-controller-method-action-types.d.cts.map +1 -1
  5. package/dist/bridge-controller-method-action-types.d.mts +5 -1
  6. package/dist/bridge-controller-method-action-types.d.mts.map +1 -1
  7. package/dist/bridge-controller-method-action-types.mjs.map +1 -1
  8. package/dist/bridge-controller.cjs +24 -0
  9. package/dist/bridge-controller.cjs.map +1 -1
  10. package/dist/bridge-controller.d.cts +2 -1
  11. package/dist/bridge-controller.d.cts.map +1 -1
  12. package/dist/bridge-controller.d.mts +2 -1
  13. package/dist/bridge-controller.d.mts.map +1 -1
  14. package/dist/bridge-controller.mjs +24 -0
  15. package/dist/bridge-controller.mjs.map +1 -1
  16. package/dist/constants/bridge.cjs +3 -0
  17. package/dist/constants/bridge.cjs.map +1 -1
  18. package/dist/constants/bridge.d.cts +5 -2
  19. package/dist/constants/bridge.d.cts.map +1 -1
  20. package/dist/constants/bridge.d.mts +5 -2
  21. package/dist/constants/bridge.d.mts.map +1 -1
  22. package/dist/constants/bridge.mjs +4 -1
  23. package/dist/constants/bridge.mjs.map +1 -1
  24. package/dist/constants/tokens.cjs +10 -0
  25. package/dist/constants/tokens.cjs.map +1 -1
  26. package/dist/constants/tokens.d.cts +7 -0
  27. package/dist/constants/tokens.d.cts.map +1 -1
  28. package/dist/constants/tokens.d.mts +7 -0
  29. package/dist/constants/tokens.d.mts.map +1 -1
  30. package/dist/constants/tokens.mjs +11 -1
  31. package/dist/constants/tokens.mjs.map +1 -1
  32. package/dist/index.cjs +3 -1
  33. package/dist/index.cjs.map +1 -1
  34. package/dist/index.d.cts +5 -5
  35. package/dist/index.d.cts.map +1 -1
  36. package/dist/index.d.mts +5 -5
  37. package/dist/index.d.mts.map +1 -1
  38. package/dist/index.mjs +2 -2
  39. package/dist/index.mjs.map +1 -1
  40. package/dist/selectors.d.cts +800 -0
  41. package/dist/selectors.d.cts.map +1 -1
  42. package/dist/selectors.d.mts +800 -0
  43. package/dist/selectors.d.mts.map +1 -1
  44. package/dist/types.cjs +2 -0
  45. package/dist/types.cjs.map +1 -1
  46. package/dist/types.d.cts +12 -2
  47. package/dist/types.d.cts.map +1 -1
  48. package/dist/types.d.mts +12 -2
  49. package/dist/types.d.mts.map +1 -1
  50. package/dist/types.mjs +2 -0
  51. package/dist/types.mjs.map +1 -1
  52. package/dist/utils/bridge.cjs +18 -3
  53. package/dist/utils/bridge.cjs.map +1 -1
  54. package/dist/utils/bridge.d.cts +8 -1
  55. package/dist/utils/bridge.d.cts.map +1 -1
  56. package/dist/utils/bridge.d.mts +8 -1
  57. package/dist/utils/bridge.d.mts.map +1 -1
  58. package/dist/utils/bridge.mjs +17 -3
  59. package/dist/utils/bridge.mjs.map +1 -1
  60. package/dist/utils/caip-formatters.cjs +9 -0
  61. package/dist/utils/caip-formatters.cjs.map +1 -1
  62. package/dist/utils/caip-formatters.d.cts.map +1 -1
  63. package/dist/utils/caip-formatters.d.mts.map +1 -1
  64. package/dist/utils/caip-formatters.mjs +11 -2
  65. package/dist/utils/caip-formatters.mjs.map +1 -1
  66. package/dist/utils/metrics/constants.cjs +1 -0
  67. package/dist/utils/metrics/constants.cjs.map +1 -1
  68. package/dist/utils/metrics/constants.d.cts +1 -0
  69. package/dist/utils/metrics/constants.d.cts.map +1 -1
  70. package/dist/utils/metrics/constants.d.mts +1 -0
  71. package/dist/utils/metrics/constants.d.mts.map +1 -1
  72. package/dist/utils/metrics/constants.mjs +1 -0
  73. package/dist/utils/metrics/constants.mjs.map +1 -1
  74. package/dist/utils/metrics/types.cjs.map +1 -1
  75. package/dist/utils/metrics/types.d.cts +25 -9
  76. package/dist/utils/metrics/types.d.cts.map +1 -1
  77. package/dist/utils/metrics/types.d.mts +25 -9
  78. package/dist/utils/metrics/types.d.mts.map +1 -1
  79. package/dist/utils/metrics/types.mjs.map +1 -1
  80. package/dist/utils/trade-utils.cjs +39 -6
  81. package/dist/utils/trade-utils.cjs.map +1 -1
  82. package/dist/utils/trade-utils.d.cts +13 -2
  83. package/dist/utils/trade-utils.d.cts.map +1 -1
  84. package/dist/utils/trade-utils.d.mts +13 -2
  85. package/dist/utils/trade-utils.d.mts.map +1 -1
  86. package/dist/utils/trade-utils.mjs +37 -5
  87. package/dist/utils/trade-utils.mjs.map +1 -1
  88. package/dist/utils/validators.cjs +9 -1
  89. package/dist/utils/validators.cjs.map +1 -1
  90. package/dist/utils/validators.d.cts +20 -0
  91. package/dist/utils/validators.d.cts.map +1 -1
  92. package/dist/utils/validators.d.mts +20 -0
  93. package/dist/utils/validators.d.mts.map +1 -1
  94. package/dist/utils/validators.mjs +8 -0
  95. package/dist/utils/validators.mjs.map +1 -1
  96. package/package.json +1 -1
@@ -1,3 +1,4 @@
1
+ const hasOwnProp = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
1
2
  /**
2
3
  * Type guard to check if a trade is an EVM TxData object
3
4
  *
@@ -7,9 +8,9 @@
7
8
  export const isEvmTxData = (trade) => {
8
9
  return (typeof trade === 'object' &&
9
10
  trade !== null &&
10
- 'data' in trade &&
11
- 'chainId' in trade &&
12
- 'to' in trade);
11
+ hasOwnProp(trade, 'data') &&
12
+ hasOwnProp(trade, 'chainId') &&
13
+ hasOwnProp(trade, 'to'));
13
14
  };
14
15
  /**
15
16
  * Type guard to check if a trade is a Bitcoin trade with unsignedPsbtBase64
@@ -18,7 +19,9 @@ export const isEvmTxData = (trade) => {
18
19
  * @returns True if the trade is a Bitcoin trade with unsignedPsbtBase64 property
19
20
  */
20
21
  export const isBitcoinTrade = (trade) => {
21
- return (typeof trade === 'object' && trade !== null && 'unsignedPsbtBase64' in trade);
22
+ return (typeof trade === 'object' &&
23
+ trade !== null &&
24
+ hasOwnProp(trade, 'unsignedPsbtBase64'));
22
25
  };
23
26
  /**
24
27
  * Type guard to check if a trade is a Tron trade with raw_data_hex
@@ -27,7 +30,29 @@ export const isBitcoinTrade = (trade) => {
27
30
  * @returns True if the trade is a Tron trade with raw_data_hex property
28
31
  */
29
32
  export const isTronTrade = (trade) => {
30
- return typeof trade === 'object' && trade !== null && 'raw_data_hex' in 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;
31
56
  };
32
57
  /**
33
58
  * Extracts the transaction data from different trade formats
@@ -45,6 +70,13 @@ export const extractTradeData = (trade) => {
45
70
  // Tron trades need hex to base64 conversion for SnapController
46
71
  return Buffer.from(trade.raw_data_hex, 'hex').toString('base64');
47
72
  }
73
+ if (isStellarTrade(trade)) {
74
+ if (hasOwnProp(trade, 'xdrBase64') &&
75
+ typeof trade.xdrBase64 === 'string') {
76
+ return trade.xdrBase64;
77
+ }
78
+ return trade.xdr;
79
+ }
48
80
  if (typeof trade === 'string') {
49
81
  // Solana txs - assuming already in correct format
50
82
  return trade;
@@ -1 +1 @@
1
- {"version":3,"file":"trade-utils.mjs","sourceRoot":"","sources":["../../src/utils/trade-utils.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAY,EAAmB,EAAE;IAC3D,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACf,SAAS,IAAI,KAAK;QAClB,IAAI,IAAI,KAAK,CACd,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAY,EAA6B,EAAE;IACxE,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,oBAAoB,IAAI,KAAK,CAC7E,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAY,EAA0B,EAAE;IAClE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,cAAc,IAAI,KAAK,CAAC;AAChF,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,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 { BitcoinTradeData, TronTradeData, TxData } from '../types';\n\n// Union type representing all possible trade formats (EVM, Solana, Bitcoin, Tron)\nexport type Trade = TxData | string | BitcoinTradeData | TronTradeData;\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 'data' in trade &&\n 'chainId' in trade &&\n 'to' in trade\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' && trade !== null && 'unsignedPsbtBase64' in trade\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 typeof trade === 'object' && trade !== null && 'raw_data_hex' in trade;\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 (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"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateBatchSellTradesResponse = exports.BatchSellTradesResponseSchema = exports.SimulatedGasFeeLimitsSchema = exports.BatchSellTransactionType = exports.validateQuoteStreamComplete = exports.QuoteStreamCompleteSchema = exports.QuoteStreamCompleteReason = exports.validateTokenFeature = exports.TokenFeatureSchema = exports.TokenFeatureType = exports.validateQuoteResponseV1 = exports.QuoteResponseSchema = exports.TronTradeDataSchema = exports.BitcoinTradeDataSchema = exports.TxDataSchema = exports.QuoteSchema = exports.GaslessPropertiesSchema = exports.TxFeeGasLimitsSchema = exports.IntentSchema = exports.IntentOrderSchema = exports.StepSchema = exports.ProtocolSchema = exports.FeeDataSchema = exports.validateSwapsTokenObject = exports.validateFeatureFlagsResponse = exports.PlatformConfigSchema = exports.PriceImpactThresholdSchema = exports.ChainConfigurationSchema = exports.ChainRankingSchema = exports.ChainRankingItemSchema = exports.BridgeAssetSchema = exports.truthyString = exports.ActionTypes = exports.FeeType = void 0;
3
+ exports.validateBatchSellTradesResponse = exports.BatchSellTradesResponseSchema = exports.SimulatedGasFeeLimitsSchema = exports.BatchSellTransactionType = exports.validateQuoteStreamComplete = exports.QuoteStreamCompleteSchema = exports.QuoteStreamCompleteReason = exports.validateTokenFeature = exports.TokenFeatureSchema = exports.TokenFeatureType = exports.validateQuoteResponseV1 = exports.QuoteResponseSchema = exports.StellarTradeDataSchema = exports.TronTradeDataSchema = exports.BitcoinTradeDataSchema = exports.TxDataSchema = exports.QuoteSchema = exports.GaslessPropertiesSchema = exports.TxFeeGasLimitsSchema = exports.IntentSchema = exports.IntentOrderSchema = exports.StepSchema = exports.ProtocolSchema = exports.FeeDataSchema = exports.validateSwapsTokenObject = exports.validateFeatureFlagsResponse = exports.PlatformConfigSchema = exports.PriceImpactThresholdSchema = exports.ChainConfigurationSchema = exports.ChainRankingSchema = exports.ChainRankingItemSchema = exports.BridgeAssetSchema = exports.truthyString = exports.ActionTypes = exports.FeeType = void 0;
4
4
  /* eslint-disable @typescript-eslint/naming-convention */
5
5
  const controller_utils_1 = require("@metamask/controller-utils");
6
6
  const superstruct_1 = require("@metamask/superstruct");
@@ -367,6 +367,13 @@ exports.TronTradeDataSchema = (0, superstruct_1.type)({
367
367
  fee_limit: (0, superstruct_1.optional)((0, superstruct_1.number)()),
368
368
  }))),
369
369
  });
370
+ /**
371
+ * Stellar bridge quote: unsigned transaction envelope as XDR (base64).
372
+ */
373
+ exports.StellarTradeDataSchema = (0, superstruct_1.union)([
374
+ (0, superstruct_1.type)({ xdrBase64: (0, superstruct_1.string)() }),
375
+ (0, superstruct_1.type)({ xdr: (0, superstruct_1.string)() }),
376
+ ]);
370
377
  exports.QuoteResponseSchema = (0, superstruct_1.type)({
371
378
  quoteId: (0, superstruct_1.optional)((0, superstruct_1.string)()),
372
379
  quote: exports.QuoteSchema,
@@ -376,6 +383,7 @@ exports.QuoteResponseSchema = (0, superstruct_1.type)({
376
383
  exports.TxDataSchema,
377
384
  exports.BitcoinTradeDataSchema,
378
385
  exports.TronTradeDataSchema,
386
+ exports.StellarTradeDataSchema,
379
387
  (0, superstruct_1.string)(),
380
388
  ]),
381
389
  });
@@ -1 +1 @@
1
- {"version":3,"file":"validators.cjs","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { isValidHexAddress } from '@metamask/controller-utils';\nimport type { Infer } from '@metamask/superstruct';\nimport {\n any,\n string,\n boolean,\n number,\n type,\n is,\n record,\n array,\n nullable,\n optional,\n enums,\n define,\n union,\n assert,\n pattern,\n intersection,\n} from '@metamask/superstruct';\nimport {\n CaipAssetTypeStruct,\n CaipChainIdStruct,\n isStrictHexString,\n} from '@metamask/utils';\n\nexport enum FeeType {\n METABRIDGE = 'metabridge',\n REFUEL = 'refuel',\n TX_FEE = 'txFee',\n}\n\nexport enum ActionTypes {\n BRIDGE = 'bridge',\n SWAP = 'swap',\n REFUEL = 'refuel',\n}\n\nconst HexAddressSchema = define<`0x${string}`>('HexAddress', (value: unknown) =>\n isValidHexAddress(value as string, { allowNonPrefixed: false }),\n);\n\nconst HexStringSchema = define<`0x${string}`>('HexString', isStrictHexString);\n\nconst NumberStringSchema = define<string>(\n 'NumberString',\n (value: unknown) => typeof value === 'string' && /^\\d+$/u.test(value),\n);\n\nconst VersionStringSchema = define<string>(\n 'VersionString',\n (value: unknown) =>\n typeof value === 'string' &&\n /^(\\d+\\.*){2}\\d+$/u.test(value) &&\n value.split('.').length === 3,\n);\n\nexport const truthyString = (value: string): boolean => Boolean(value?.length);\nconst TruthyDigitStringSchema = pattern(string(), /^\\d+$/u);\n\nconst 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\nconst DefaultPairSchema = type({\n /**\n * The standard default pairs. Use this if the pair is only set once.\n * The key is the CAIP asset type of the src token and the value is the CAIP asset type of the dest token.\n */\n standard: record(string(), string()),\n /**\n * The other default pairs. Use this if the dest token depends on the src token and can be set multiple times.\n * The key is the CAIP asset type of the src token and the value is the CAIP asset type of the dest token.\n */\n other: record(string(), string()),\n});\n\nexport const ChainRankingItemSchema = type({\n /**\n * The CAIP-2 chain identifier (e.g., \"eip155:1\" for Ethereum mainnet)\n */\n chainId: CaipChainIdStruct,\n /**\n * The display name of the chain (e.g., \"Ethereum\")\n */\n name: string(),\n});\n\nexport const ChainRankingSchema = optional(array(ChainRankingItemSchema));\n\nexport const ChainConfigurationSchema = type({\n isActiveSrc: boolean(),\n isActiveDest: boolean(),\n refreshRate: optional(number()),\n topAssets: optional(array(string())),\n stablecoins: optional(array(string())),\n batchSellDestStablecoins: optional(array(CaipAssetTypeStruct)),\n isUnifiedUIEnabled: optional(boolean()),\n isSingleSwapBridgeButtonEnabled: optional(boolean()),\n isGaslessSwapEnabled: optional(boolean()),\n noFeeAssets: optional(array(string())),\n defaultPairs: optional(DefaultPairSchema),\n});\n\nexport const PriceImpactThresholdSchema = type({\n // TODO:\n // We are moving into a unified approach where\n // price impact thresholds will be segmented by\n // importance rather than transaction type.\n // The introduction of warning/danger will first be handled\n // by mobile, followed by extension and then removal of gasless/normal\n // from LD configs.\n // To make the migration easier, we define all fields as optional for now.\n // After the migration takes place, gasless/normal will be removed\n // and warning/danger will be set as required fields.\n gasless: number(), // Percentage value in decimal format (eg 0.02 is 2%)\n normal: number(), // Percentage value in decimal format\n warning: optional(number()), // Percentage value in decimal format\n error: optional(number()), // Percentage value in decimal format\n});\n\nconst GenericQuoteRequestSchema = type({\n aggIds: optional(array(string())),\n bridgeIds: optional(array(string())),\n fee: optional(number()),\n});\n\n/**\n * This is the schema for the feature flags response from the RemoteFeatureFlagController\n */\nexport const PlatformConfigSchema = type({\n priceImpactThreshold: optional(PriceImpactThresholdSchema),\n quoteRequestOverrides: optional(\n record(string(), optional(GenericQuoteRequestSchema)),\n ),\n minimumVersion: string(),\n refreshRate: number(),\n maxRefreshCount: number(),\n support: boolean(),\n chains: record(string(), ChainConfigurationSchema),\n /**\n * The bip44 default pairs for the chains\n * Key is the CAIP chainId namespace\n */\n bip44DefaultPairs: optional(record(string(), optional(DefaultPairSchema))),\n sse: optional(\n type({\n enabled: boolean(),\n /**\n * The minimum version of the client required to enable SSE, for example 13.8.0\n */\n minimumVersion: VersionStringSchema,\n }),\n ),\n /**\n * Array of chain objects ordered by preference/ranking\n */\n chainRanking: ChainRankingSchema,\n maxPendingHistoryItemAgeMs: optional(number()),\n});\n\nexport const validateFeatureFlagsResponse = (\n data: unknown,\n): data is Infer<typeof PlatformConfigSchema> => {\n return is(data, PlatformConfigSchema);\n};\n\nexport const validateSwapsTokenObject = (\n data: unknown,\n): data is Infer<typeof BridgeAssetSchema> => {\n return is(data, BridgeAssetSchema);\n};\n\nexport const FeeDataSchema = type({\n amount: TruthyDigitStringSchema,\n asset: BridgeAssetSchema,\n});\n\nexport const ProtocolSchema = type({\n name: string(),\n displayName: optional(string()),\n icon: optional(string()),\n});\n\nexport const StepSchema = type({\n action: enums(Object.values(ActionTypes)),\n srcChainId: ChainIdSchema,\n destChainId: optional(ChainIdSchema),\n srcAsset: BridgeAssetSchema,\n destAsset: BridgeAssetSchema,\n srcAmount: string(),\n destAmount: string(),\n protocol: ProtocolSchema,\n});\n\nconst RefuelDataSchema = StepSchema;\n\n// Allow digit strings for amounts/validTo for flexibility across providers\nconst DigitStringOrNumberSchema = union([TruthyDigitStringSchema, number()]);\n\n/**\n * Identifier of the intent protocol used for order creation and submission.\n *\n * Examples:\n * - CoW Swap\n * - Other EIP-712–based intent protocols\n */\nconst IntentProtocolSchema = string();\n\n/**\n * Schema for an intent-based order used for EIP-712 signing and submission.\n *\n * This represents the minimal subset of fields required by intent-based\n * protocols (e.g. CoW Swap) to build, sign, and submit an order.\n */\nexport const IntentOrderSchema = type({\n /**\n * Address of the token being sold.\n */\n sellToken: HexAddressSchema,\n\n /**\n * Address of the token being bought.\n */\n buyToken: HexAddressSchema,\n\n /**\n * Optional receiver of the bought tokens.\n * If omitted, defaults to the signer / order owner.\n */\n receiver: optional(HexAddressSchema),\n\n /**\n * Order expiration time.\n *\n * Can be provided as a UNIX timestamp in seconds, either as a number\n * or as a digit string, depending on provider requirements.\n */\n validTo: DigitStringOrNumberSchema,\n\n /**\n * Arbitrary application-specific data attached to the order.\n */\n appData: string(),\n\n /**\n * Hash of the `appData` field, used for EIP-712 signing.\n */\n appDataHash: HexStringSchema,\n\n /**\n * Fee amount paid for order execution, expressed as a digit string.\n */\n feeAmount: TruthyDigitStringSchema,\n\n /**\n * Order kind.\n *\n * - `sell`: exact sell amount, variable buy amount\n * - `buy`: exact buy amount, variable sell amount\n */\n kind: enums(['sell', 'buy']),\n\n /**\n * Whether the order can be partially filled.\n */\n partiallyFillable: boolean(),\n\n /**\n * Exact amount of the sell token.\n *\n * Required for `sell` orders.\n */\n sellAmount: optional(TruthyDigitStringSchema),\n\n /**\n * Exact amount of the buy token.\n *\n * Required for `buy` orders.\n */\n buyAmount: optional(TruthyDigitStringSchema),\n\n /**\n * Optional order owner / sender address.\n *\n * Provided for convenience when building the EIP-712 domain and message.\n */\n from: optional(HexAddressSchema),\n});\n\n/**\n * Schema representing an intent submission payload.\n *\n * Wraps the intent order along with protocol and optional routing metadata\n * required by the backend or relayer infrastructure.\n */\nexport const IntentSchema = type({\n /**\n * Identifier of the intent protocol used to interpret the order.\n */\n protocol: IntentProtocolSchema,\n\n /**\n * The intent order to be signed and submitted.\n */\n order: IntentOrderSchema,\n\n /**\n * Optional settlement contract address used for execution.\n */\n settlementContract: optional(HexAddressSchema),\n\n /**\n * Optional EIP-712 typed data payload for signing.\n * Must be JSON-serializable and include required EIP-712 fields.\n */\n typedData: type({\n // Keep values as `any()` here. Using `unknown()` in this record causes\n // TS2321/TS2589 (excessive type instantiation depth) in bridge state\n // inference during build.\n types: record(\n string(),\n array(\n type({\n name: string(),\n type: string(),\n }),\n ),\n ),\n primaryType: string(),\n domain: record(string(), any()),\n message: record(string(), any()),\n }),\n});\n\nexport const TxFeeGasLimitsSchema = type({\n maxFeePerGas: NumberStringSchema,\n maxPriorityFeePerGas: NumberStringSchema,\n});\n\nexport const GaslessPropertiesSchema = type({\n gasIncluded: optional(boolean()),\n /**\n * Whether the quote can use EIP-7702 delegated gasless execution\n */\n gasIncluded7702: optional(boolean()),\n /**\n * A third party sponsors the gas. If true, then gasIncluded7702 is also true.\n */\n gasSponsored: optional(boolean()),\n});\n\nexport const QuoteSchema = intersection([\n GaslessPropertiesSchema,\n type({\n requestId: string(),\n srcChainId: ChainIdSchema,\n srcAsset: BridgeAssetSchema,\n /**\n * The amount sent, in atomic amount: amount sent - fees\n * Some tokens have a fee of 0, so sometimes it's equal to amount sent\n */\n srcTokenAmount: string(),\n destChainId: ChainIdSchema,\n destAsset: BridgeAssetSchema,\n /**\n * The amount received, in atomic amount\n */\n destTokenAmount: string(),\n /**\n * The minimum amount that will be received, in atomic amount\n */\n minDestTokenAmount: string(),\n feeData: type({\n [FeeType.METABRIDGE]: FeeDataSchema,\n /**\n * This is the fee for the swap transaction taken from either the\n * src or dest token if the quote has gas fees included or \"gasless\"\n */\n [FeeType.TX_FEE]: optional(\n intersection([FeeDataSchema, TxFeeGasLimitsSchema]),\n ),\n }),\n bridgeId: string(),\n bridges: array(string()),\n steps: array(StepSchema),\n refuel: optional(RefuelDataSchema),\n priceData: optional(\n type({\n totalFromAmountUsd: optional(string()),\n totalToAmountUsd: optional(string()),\n priceImpact: optional(string()),\n totalFeeAmountUsd: optional(string()),\n }),\n ),\n intent: optional(IntentSchema),\n }),\n]);\n\nexport const TxDataSchema = type({\n chainId: number(),\n to: HexAddressSchema,\n from: HexAddressSchema,\n value: HexStringSchema,\n data: HexStringSchema,\n gasLimit: nullable(number()),\n effectiveGas: optional(number()),\n});\n\nexport const BitcoinTradeDataSchema = type({\n unsignedPsbtBase64: string(),\n inputsToSign: nullable(array(type({}))),\n});\n\nexport const TronTradeDataSchema = type({\n raw_data_hex: string(),\n visible: optional(boolean()),\n raw_data: optional(\n nullable(\n type({\n contract: optional(\n array(\n type({\n type: optional(string()),\n }),\n ),\n ),\n fee_limit: optional(number()),\n }),\n ),\n ),\n});\n\nexport const QuoteResponseSchema = type({\n quoteId: optional(string()),\n quote: QuoteSchema,\n estimatedProcessingTimeInSeconds: number(),\n approval: optional(union([TxDataSchema, TronTradeDataSchema])),\n trade: union([\n TxDataSchema,\n BitcoinTradeDataSchema,\n TronTradeDataSchema,\n string(),\n ]),\n});\n\nexport const validateQuoteResponseV1 = (\n data: unknown,\n): data is Infer<typeof QuoteResponseSchema> => {\n assert(data, QuoteResponseSchema);\n return true;\n};\n\nexport enum TokenFeatureType {\n MALICIOUS = 'Malicious',\n WARNING = 'Warning',\n INFO = 'Info',\n BENIGN = 'Benign',\n}\n\nexport const TokenFeatureSchema = type({\n feature_id: string(),\n type: enums(Object.values(TokenFeatureType)),\n description: string(),\n});\n\nexport const validateTokenFeature = (\n data: unknown,\n): data is Infer<typeof TokenFeatureSchema> => {\n assert(data, TokenFeatureSchema);\n return true;\n};\n\nexport enum QuoteStreamCompleteReason {\n RETRY = 'RETRY',\n AMOUNT_TOO_HIGH = 'AMOUNT_TOO_HIGH',\n AMOUNT_TOO_LOW = 'AMOUNT_TOO_LOW',\n SLIPPAGE_TOO_HIGH = 'SLIPPAGE_TOO_HIGH',\n SLIPPAGE_TOO_LOW = 'SLIPPAGE_TOO_LOW',\n TOKEN_NOT_SUPPORTED = 'TOKEN_NOT_SUPPORTED',\n RWA_GEO_RESTRICTED = 'RWA_GEO_RESTRICTED',\n RWA_NATIVE_TOKEN_UNSUPPORTED = 'RWA_NATIVE_TOKEN_UNSUPPORTED',\n RWA_MARKET_UNAVAILABLE = 'RWA_MARKET_UNAVAILABLE',\n}\n\nexport const QuoteStreamCompleteSchema = type({\n quoteCount: number(),\n hasQuotes: boolean(),\n reason: optional(enums(Object.values(QuoteStreamCompleteReason))),\n context: optional(record(string(), any())),\n});\n\nexport const validateQuoteStreamComplete = (\n data: unknown,\n): data is Infer<typeof QuoteStreamCompleteSchema> => {\n assert(data, QuoteStreamCompleteSchema);\n return true;\n};\n\nexport enum BatchSellTransactionType {\n TRADE = 'trade',\n APPROVAL = 'approval',\n TRANSFER = 'transfer',\n}\n\nexport const SimulatedGasFeeLimitsSchema = type({\n maxFeePerGas: HexStringSchema,\n maxPriorityFeePerGas: HexStringSchema,\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"]}
1
+ {"version":3,"file":"validators.cjs","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { isValidHexAddress } from '@metamask/controller-utils';\nimport type { Infer } from '@metamask/superstruct';\nimport {\n any,\n string,\n boolean,\n number,\n type,\n is,\n record,\n array,\n nullable,\n optional,\n enums,\n define,\n union,\n assert,\n pattern,\n intersection,\n} from '@metamask/superstruct';\nimport {\n CaipAssetTypeStruct,\n CaipChainIdStruct,\n isStrictHexString,\n} from '@metamask/utils';\n\nexport enum FeeType {\n METABRIDGE = 'metabridge',\n REFUEL = 'refuel',\n TX_FEE = 'txFee',\n}\n\nexport enum ActionTypes {\n BRIDGE = 'bridge',\n SWAP = 'swap',\n REFUEL = 'refuel',\n}\n\nconst HexAddressSchema = define<`0x${string}`>('HexAddress', (value: unknown) =>\n isValidHexAddress(value as string, { allowNonPrefixed: false }),\n);\n\nconst HexStringSchema = define<`0x${string}`>('HexString', isStrictHexString);\n\nconst NumberStringSchema = define<string>(\n 'NumberString',\n (value: unknown) => typeof value === 'string' && /^\\d+$/u.test(value),\n);\n\nconst VersionStringSchema = define<string>(\n 'VersionString',\n (value: unknown) =>\n typeof value === 'string' &&\n /^(\\d+\\.*){2}\\d+$/u.test(value) &&\n value.split('.').length === 3,\n);\n\nexport const truthyString = (value: string): boolean => Boolean(value?.length);\nconst TruthyDigitStringSchema = pattern(string(), /^\\d+$/u);\n\nconst 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\nconst DefaultPairSchema = type({\n /**\n * The standard default pairs. Use this if the pair is only set once.\n * The key is the CAIP asset type of the src token and the value is the CAIP asset type of the dest token.\n */\n standard: record(string(), string()),\n /**\n * The other default pairs. Use this if the dest token depends on the src token and can be set multiple times.\n * The key is the CAIP asset type of the src token and the value is the CAIP asset type of the dest token.\n */\n other: record(string(), string()),\n});\n\nexport const ChainRankingItemSchema = type({\n /**\n * The CAIP-2 chain identifier (e.g., \"eip155:1\" for Ethereum mainnet)\n */\n chainId: CaipChainIdStruct,\n /**\n * The display name of the chain (e.g., \"Ethereum\")\n */\n name: string(),\n});\n\nexport const ChainRankingSchema = optional(array(ChainRankingItemSchema));\n\nexport const ChainConfigurationSchema = type({\n isActiveSrc: boolean(),\n isActiveDest: boolean(),\n refreshRate: optional(number()),\n topAssets: optional(array(string())),\n stablecoins: optional(array(string())),\n batchSellDestStablecoins: optional(array(CaipAssetTypeStruct)),\n isUnifiedUIEnabled: optional(boolean()),\n isSingleSwapBridgeButtonEnabled: optional(boolean()),\n isGaslessSwapEnabled: optional(boolean()),\n noFeeAssets: optional(array(string())),\n defaultPairs: optional(DefaultPairSchema),\n});\n\nexport const PriceImpactThresholdSchema = type({\n // TODO:\n // We are moving into a unified approach where\n // price impact thresholds will be segmented by\n // importance rather than transaction type.\n // The introduction of warning/danger will first be handled\n // by mobile, followed by extension and then removal of gasless/normal\n // from LD configs.\n // To make the migration easier, we define all fields as optional for now.\n // After the migration takes place, gasless/normal will be removed\n // and warning/danger will be set as required fields.\n gasless: number(), // Percentage value in decimal format (eg 0.02 is 2%)\n normal: number(), // Percentage value in decimal format\n warning: optional(number()), // Percentage value in decimal format\n error: optional(number()), // Percentage value in decimal format\n});\n\nconst GenericQuoteRequestSchema = type({\n aggIds: optional(array(string())),\n bridgeIds: optional(array(string())),\n fee: optional(number()),\n});\n\n/**\n * This is the schema for the feature flags response from the RemoteFeatureFlagController\n */\nexport const PlatformConfigSchema = type({\n priceImpactThreshold: optional(PriceImpactThresholdSchema),\n quoteRequestOverrides: optional(\n record(string(), optional(GenericQuoteRequestSchema)),\n ),\n minimumVersion: string(),\n refreshRate: number(),\n maxRefreshCount: number(),\n support: boolean(),\n chains: record(string(), ChainConfigurationSchema),\n /**\n * The bip44 default pairs for the chains\n * Key is the CAIP chainId namespace\n */\n bip44DefaultPairs: optional(record(string(), optional(DefaultPairSchema))),\n sse: optional(\n type({\n enabled: boolean(),\n /**\n * The minimum version of the client required to enable SSE, for example 13.8.0\n */\n minimumVersion: VersionStringSchema,\n }),\n ),\n /**\n * Array of chain objects ordered by preference/ranking\n */\n chainRanking: ChainRankingSchema,\n maxPendingHistoryItemAgeMs: optional(number()),\n});\n\nexport const validateFeatureFlagsResponse = (\n data: unknown,\n): data is Infer<typeof PlatformConfigSchema> => {\n return is(data, PlatformConfigSchema);\n};\n\nexport const validateSwapsTokenObject = (\n data: unknown,\n): data is Infer<typeof BridgeAssetSchema> => {\n return is(data, BridgeAssetSchema);\n};\n\nexport const FeeDataSchema = type({\n amount: TruthyDigitStringSchema,\n asset: BridgeAssetSchema,\n});\n\nexport const ProtocolSchema = type({\n name: string(),\n displayName: optional(string()),\n icon: optional(string()),\n});\n\nexport const StepSchema = type({\n action: enums(Object.values(ActionTypes)),\n srcChainId: ChainIdSchema,\n destChainId: optional(ChainIdSchema),\n srcAsset: BridgeAssetSchema,\n destAsset: BridgeAssetSchema,\n srcAmount: string(),\n destAmount: string(),\n protocol: ProtocolSchema,\n});\n\nconst RefuelDataSchema = StepSchema;\n\n// Allow digit strings for amounts/validTo for flexibility across providers\nconst DigitStringOrNumberSchema = union([TruthyDigitStringSchema, number()]);\n\n/**\n * Identifier of the intent protocol used for order creation and submission.\n *\n * Examples:\n * - CoW Swap\n * - Other EIP-712–based intent protocols\n */\nconst IntentProtocolSchema = string();\n\n/**\n * Schema for an intent-based order used for EIP-712 signing and submission.\n *\n * This represents the minimal subset of fields required by intent-based\n * protocols (e.g. CoW Swap) to build, sign, and submit an order.\n */\nexport const IntentOrderSchema = type({\n /**\n * Address of the token being sold.\n */\n sellToken: HexAddressSchema,\n\n /**\n * Address of the token being bought.\n */\n buyToken: HexAddressSchema,\n\n /**\n * Optional receiver of the bought tokens.\n * If omitted, defaults to the signer / order owner.\n */\n receiver: optional(HexAddressSchema),\n\n /**\n * Order expiration time.\n *\n * Can be provided as a UNIX timestamp in seconds, either as a number\n * or as a digit string, depending on provider requirements.\n */\n validTo: DigitStringOrNumberSchema,\n\n /**\n * Arbitrary application-specific data attached to the order.\n */\n appData: string(),\n\n /**\n * Hash of the `appData` field, used for EIP-712 signing.\n */\n appDataHash: HexStringSchema,\n\n /**\n * Fee amount paid for order execution, expressed as a digit string.\n */\n feeAmount: TruthyDigitStringSchema,\n\n /**\n * Order kind.\n *\n * - `sell`: exact sell amount, variable buy amount\n * - `buy`: exact buy amount, variable sell amount\n */\n kind: enums(['sell', 'buy']),\n\n /**\n * Whether the order can be partially filled.\n */\n partiallyFillable: boolean(),\n\n /**\n * Exact amount of the sell token.\n *\n * Required for `sell` orders.\n */\n sellAmount: optional(TruthyDigitStringSchema),\n\n /**\n * Exact amount of the buy token.\n *\n * Required for `buy` orders.\n */\n buyAmount: optional(TruthyDigitStringSchema),\n\n /**\n * Optional order owner / sender address.\n *\n * Provided for convenience when building the EIP-712 domain and message.\n */\n from: optional(HexAddressSchema),\n});\n\n/**\n * Schema representing an intent submission payload.\n *\n * Wraps the intent order along with protocol and optional routing metadata\n * required by the backend or relayer infrastructure.\n */\nexport const IntentSchema = type({\n /**\n * Identifier of the intent protocol used to interpret the order.\n */\n protocol: IntentProtocolSchema,\n\n /**\n * The intent order to be signed and submitted.\n */\n order: IntentOrderSchema,\n\n /**\n * Optional settlement contract address used for execution.\n */\n settlementContract: optional(HexAddressSchema),\n\n /**\n * Optional EIP-712 typed data payload for signing.\n * Must be JSON-serializable and include required EIP-712 fields.\n */\n typedData: type({\n // Keep values as `any()` here. Using `unknown()` in this record causes\n // TS2321/TS2589 (excessive type instantiation depth) in bridge state\n // inference during build.\n types: record(\n string(),\n array(\n type({\n name: string(),\n type: string(),\n }),\n ),\n ),\n primaryType: string(),\n domain: record(string(), any()),\n message: record(string(), any()),\n }),\n});\n\nexport const TxFeeGasLimitsSchema = type({\n maxFeePerGas: NumberStringSchema,\n maxPriorityFeePerGas: NumberStringSchema,\n});\n\nexport const GaslessPropertiesSchema = type({\n gasIncluded: optional(boolean()),\n /**\n * Whether the quote can use EIP-7702 delegated gasless execution\n */\n gasIncluded7702: optional(boolean()),\n /**\n * A third party sponsors the gas. If true, then gasIncluded7702 is also true.\n */\n gasSponsored: optional(boolean()),\n});\n\nexport const QuoteSchema = intersection([\n GaslessPropertiesSchema,\n type({\n requestId: string(),\n srcChainId: ChainIdSchema,\n srcAsset: BridgeAssetSchema,\n /**\n * The amount sent, in atomic amount: amount sent - fees\n * Some tokens have a fee of 0, so sometimes it's equal to amount sent\n */\n srcTokenAmount: string(),\n destChainId: ChainIdSchema,\n destAsset: BridgeAssetSchema,\n /**\n * The amount received, in atomic amount\n */\n destTokenAmount: string(),\n /**\n * The minimum amount that will be received, in atomic amount\n */\n minDestTokenAmount: string(),\n feeData: type({\n [FeeType.METABRIDGE]: FeeDataSchema,\n /**\n * This is the fee for the swap transaction taken from either the\n * src or dest token if the quote has gas fees included or \"gasless\"\n */\n [FeeType.TX_FEE]: optional(\n intersection([FeeDataSchema, TxFeeGasLimitsSchema]),\n ),\n }),\n bridgeId: string(),\n bridges: array(string()),\n steps: array(StepSchema),\n refuel: optional(RefuelDataSchema),\n priceData: optional(\n type({\n totalFromAmountUsd: optional(string()),\n totalToAmountUsd: optional(string()),\n priceImpact: optional(string()),\n totalFeeAmountUsd: optional(string()),\n }),\n ),\n intent: optional(IntentSchema),\n }),\n]);\n\nexport const TxDataSchema = type({\n chainId: number(),\n to: HexAddressSchema,\n from: HexAddressSchema,\n value: HexStringSchema,\n data: HexStringSchema,\n gasLimit: nullable(number()),\n effectiveGas: optional(number()),\n});\n\nexport const BitcoinTradeDataSchema = type({\n unsignedPsbtBase64: string(),\n inputsToSign: nullable(array(type({}))),\n});\n\nexport const TronTradeDataSchema = type({\n raw_data_hex: string(),\n visible: optional(boolean()),\n raw_data: optional(\n nullable(\n type({\n contract: optional(\n array(\n type({\n type: optional(string()),\n }),\n ),\n ),\n fee_limit: optional(number()),\n }),\n ),\n ),\n});\n\n/**\n * Stellar bridge quote: unsigned transaction envelope as XDR (base64).\n */\nexport const StellarTradeDataSchema = union([\n type({ xdrBase64: string() }),\n type({ xdr: string() }),\n]);\n\nexport const QuoteResponseSchema = type({\n quoteId: optional(string()),\n quote: QuoteSchema,\n estimatedProcessingTimeInSeconds: number(),\n approval: optional(union([TxDataSchema, TronTradeDataSchema])),\n trade: union([\n TxDataSchema,\n BitcoinTradeDataSchema,\n TronTradeDataSchema,\n StellarTradeDataSchema,\n string(),\n ]),\n});\n\nexport const validateQuoteResponseV1 = (\n data: unknown,\n): data is Infer<typeof QuoteResponseSchema> => {\n assert(data, QuoteResponseSchema);\n return true;\n};\n\nexport enum TokenFeatureType {\n MALICIOUS = 'Malicious',\n WARNING = 'Warning',\n INFO = 'Info',\n BENIGN = 'Benign',\n}\n\nexport const TokenFeatureSchema = type({\n feature_id: string(),\n type: enums(Object.values(TokenFeatureType)),\n description: string(),\n});\n\nexport const validateTokenFeature = (\n data: unknown,\n): data is Infer<typeof TokenFeatureSchema> => {\n assert(data, TokenFeatureSchema);\n return true;\n};\n\nexport enum QuoteStreamCompleteReason {\n RETRY = 'RETRY',\n AMOUNT_TOO_HIGH = 'AMOUNT_TOO_HIGH',\n AMOUNT_TOO_LOW = 'AMOUNT_TOO_LOW',\n SLIPPAGE_TOO_HIGH = 'SLIPPAGE_TOO_HIGH',\n SLIPPAGE_TOO_LOW = 'SLIPPAGE_TOO_LOW',\n TOKEN_NOT_SUPPORTED = 'TOKEN_NOT_SUPPORTED',\n RWA_GEO_RESTRICTED = 'RWA_GEO_RESTRICTED',\n RWA_NATIVE_TOKEN_UNSUPPORTED = 'RWA_NATIVE_TOKEN_UNSUPPORTED',\n RWA_MARKET_UNAVAILABLE = 'RWA_MARKET_UNAVAILABLE',\n}\n\nexport const QuoteStreamCompleteSchema = type({\n quoteCount: number(),\n hasQuotes: boolean(),\n reason: optional(enums(Object.values(QuoteStreamCompleteReason))),\n context: optional(record(string(), any())),\n});\n\nexport const validateQuoteStreamComplete = (\n data: unknown,\n): data is Infer<typeof QuoteStreamCompleteSchema> => {\n assert(data, QuoteStreamCompleteSchema);\n return true;\n};\n\nexport enum BatchSellTransactionType {\n TRADE = 'trade',\n APPROVAL = 'approval',\n TRANSFER = 'transfer',\n}\n\nexport const SimulatedGasFeeLimitsSchema = type({\n maxFeePerGas: HexStringSchema,\n maxPriorityFeePerGas: HexStringSchema,\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"]}
@@ -972,6 +972,14 @@ export declare const TronTradeDataSchema: import("@metamask/superstruct").Struct
972
972
  fee_limit: import("@metamask/superstruct").Struct<number | undefined, null>;
973
973
  }>;
974
974
  }>;
975
+ /**
976
+ * Stellar bridge quote: unsigned transaction envelope as XDR (base64).
977
+ */
978
+ export declare const StellarTradeDataSchema: import("@metamask/superstruct").Struct<{
979
+ xdrBase64: string;
980
+ } | {
981
+ xdr: string;
982
+ }, null>;
975
983
  export declare const QuoteResponseSchema: import("@metamask/superstruct").Struct<{
976
984
  quote: {
977
985
  gasIncluded?: boolean | undefined;
@@ -1156,6 +1164,10 @@ export declare const QuoteResponseSchema: import("@metamask/superstruct").Struct
1156
1164
  }[] | undefined;
1157
1165
  fee_limit?: number | undefined;
1158
1166
  } | null | undefined;
1167
+ } | {
1168
+ xdrBase64: string;
1169
+ } | {
1170
+ xdr: string;
1159
1171
  };
1160
1172
  quoteId?: string | undefined;
1161
1173
  approval?: {
@@ -1379,6 +1391,10 @@ export declare const QuoteResponseSchema: import("@metamask/superstruct").Struct
1379
1391
  }[] | undefined;
1380
1392
  fee_limit?: number | undefined;
1381
1393
  } | null | undefined;
1394
+ } | {
1395
+ xdrBase64: string;
1396
+ } | {
1397
+ xdr: string;
1382
1398
  }, null>;
1383
1399
  }>;
1384
1400
  export declare const validateQuoteResponseV1: (data: unknown) => data is {
@@ -1565,6 +1581,10 @@ export declare const validateQuoteResponseV1: (data: unknown) => data is {
1565
1581
  }[] | undefined;
1566
1582
  fee_limit?: number | undefined;
1567
1583
  } | null | undefined;
1584
+ } | {
1585
+ xdrBase64: string;
1586
+ } | {
1587
+ xdr: string;
1568
1588
  };
1569
1589
  quoteId?: string | undefined;
1570
1590
  approval?: {
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.cts","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validators.d.cts","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":"AA2BA,oBAAY,OAAO;IACjB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,MAAM,UAAU;CACjB;AAED,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAqBD,eAAO,MAAM,YAAY,UAAW,MAAM,KAAG,OAAiC,CAAC;AAK/E,eAAO,MAAM,iBAAiB;;;;;;;;;;IAC5B;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;;IAGH;;OAEG;;IAEH;;OAEG;;EAEH,CAAC;AAeH,eAAO,MAAM,sBAAsB;;;;IACjC;;OAEG;;IAEH;;OAEG;;EAEH,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;IAV7B;;OAEG;;IAEH;;OAEG;;GAIoE,CAAC;AAE1E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAzBnC;;;WAGG;;QAEH;;;WAGG;;;EA6BH,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;EAerC,CAAC;AAQH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAU/B;;;OAGG;;;;;;;;;;QAKC;;WAEG;;;IAIP;;OAEG;;;;;;;;QA9EH;;WAEG;;QAEH;;WAEG;;;;EA2EH,CAAC;AAEH,eAAO,MAAM,4BAA4B,SACjC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGd,CAAC;AAEF,eAAO,MAAM,wBAAwB,SAC7B,OAAO;;;;;;;;;CAGd,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;QA5IxB;;WAEG;;QAEH;;WAEG;;QAEH;;WAEG;;QAEH;;WAEG;;QAEH;;WAEG;;;QAGH;;WAEG;;QAEH;;WAEG;;;EAoHH,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;EAIzB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAvJrB;;WAEG;;QAEH;;WAEG;;QAEH;;WAEG;;QAEH;;WAEG;;QAEH;;WAEG;;;QAGH;;WAEG;;QAEH;;WAEG;;;;;;;;;;;;;QA3BH;;WAEG;;QAEH;;WAEG;;QAEH;;WAEG;;QAEH;;WAEG;;QAEH;;WAEG;;;QAGH;;WAEG;;QAEH;;WAEG;;;;;;;;;;;;;;EAqIH,CAAC;AAgBH;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;IAC5B;;OAEG;;IAGH;;OAEG;;IAGH;;;OAGG;;IAGH;;;;;OAKG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;OAKG;;;;;IAGH;;OAEG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;IAGH;;;;OAIG;;EAEH,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;IACvB;;OAEG;;IAGH;;OAEG;;;;;;;;;;;;;;;QAxFH;;WAEG;;QAGH;;WAEG;;QAGH;;;WAGG;;QAGH;;;;;WAKG;;QAGH;;WAEG;;QAGH;;WAEG;;QAGH;;WAEG;;QAGH;;;;;WAKG;;;;;QAGH;;WAEG;;QAGH;;;;WAIG;;QAGH;;;;WAIG;;QAGH;;;;WAIG;;;IAqBH;;OAEG;;IAGH;;;OAGG;;;;;;;;;;;;;;;;;;EAkBH,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;EAG/B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;IAElC;;OAEG;;IAEH;;OAEG;;EAEH,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA6CtB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;EAQvB,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;EAGjC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;QAGjC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY9B,CAAC;AAEH,eAAO,MAAM,uBAAuB,SAC5B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAId,CAAC;AAEF,oBAAY,gBAAgB;IAC1B,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;EAI7B,CAAC;AAEH,eAAO,MAAM,oBAAoB,SACzB,OAAO;;;;CAId,CAAC;AAEF,oBAAY,yBAAyB;IACnC,KAAK,UAAU;IACf,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,iBAAiB,sBAAsB;IACvC,gBAAgB,qBAAqB;IACrC,mBAAmB,wBAAwB;IAC3C,kBAAkB,uBAAuB;IACzC,4BAA4B,iCAAiC;IAC7D,sBAAsB,2BAA2B;CAClD;AAED,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;EAKpC,CAAC;AAEH,eAAO,MAAM,2BAA2B,SAChC,OAAO;;;;;CAId,CAAC;AAEF,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"}
@@ -972,6 +972,14 @@ export declare const TronTradeDataSchema: import("@metamask/superstruct").Struct
972
972
  fee_limit: import("@metamask/superstruct").Struct<number | undefined, null>;
973
973
  }>;
974
974
  }>;
975
+ /**
976
+ * Stellar bridge quote: unsigned transaction envelope as XDR (base64).
977
+ */
978
+ export declare const StellarTradeDataSchema: import("@metamask/superstruct").Struct<{
979
+ xdrBase64: string;
980
+ } | {
981
+ xdr: string;
982
+ }, null>;
975
983
  export declare const QuoteResponseSchema: import("@metamask/superstruct").Struct<{
976
984
  quote: {
977
985
  gasIncluded?: boolean | undefined;
@@ -1156,6 +1164,10 @@ export declare const QuoteResponseSchema: import("@metamask/superstruct").Struct
1156
1164
  }[] | undefined;
1157
1165
  fee_limit?: number | undefined;
1158
1166
  } | null | undefined;
1167
+ } | {
1168
+ xdrBase64: string;
1169
+ } | {
1170
+ xdr: string;
1159
1171
  };
1160
1172
  quoteId?: string | undefined;
1161
1173
  approval?: {
@@ -1379,6 +1391,10 @@ export declare const QuoteResponseSchema: import("@metamask/superstruct").Struct
1379
1391
  }[] | undefined;
1380
1392
  fee_limit?: number | undefined;
1381
1393
  } | null | undefined;
1394
+ } | {
1395
+ xdrBase64: string;
1396
+ } | {
1397
+ xdr: string;
1382
1398
  }, null>;
1383
1399
  }>;
1384
1400
  export declare const validateQuoteResponseV1: (data: unknown) => data is {
@@ -1565,6 +1581,10 @@ export declare const validateQuoteResponseV1: (data: unknown) => data is {
1565
1581
  }[] | undefined;
1566
1582
  fee_limit?: number | undefined;
1567
1583
  } | null | undefined;
1584
+ } | {
1585
+ xdrBase64: string;
1586
+ } | {
1587
+ xdr: string;
1568
1588
  };
1569
1589
  quoteId?: string | undefined;
1570
1590
  approval?: {
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.mts","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validators.d.mts","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":"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"}
@@ -361,6 +361,13 @@ export const TronTradeDataSchema = type({
361
361
  fee_limit: optional(number()),
362
362
  }))),
363
363
  });
364
+ /**
365
+ * Stellar bridge quote: unsigned transaction envelope as XDR (base64).
366
+ */
367
+ export const StellarTradeDataSchema = union([
368
+ type({ xdrBase64: string() }),
369
+ type({ xdr: string() }),
370
+ ]);
364
371
  export const QuoteResponseSchema = type({
365
372
  quoteId: optional(string()),
366
373
  quote: QuoteSchema,
@@ -370,6 +377,7 @@ export const QuoteResponseSchema = type({
370
377
  TxDataSchema,
371
378
  BitcoinTradeDataSchema,
372
379
  TronTradeDataSchema,
380
+ StellarTradeDataSchema,
373
381
  string(),
374
382
  ]),
375
383
  });
@@ -1 +1 @@
1
- {"version":3,"file":"validators.mjs","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { isValidHexAddress } from '@metamask/controller-utils';\nimport type { Infer } from '@metamask/superstruct';\nimport {\n any,\n string,\n boolean,\n number,\n type,\n is,\n record,\n array,\n nullable,\n optional,\n enums,\n define,\n union,\n assert,\n pattern,\n intersection,\n} from '@metamask/superstruct';\nimport {\n CaipAssetTypeStruct,\n CaipChainIdStruct,\n isStrictHexString,\n} from '@metamask/utils';\n\nexport enum FeeType {\n METABRIDGE = 'metabridge',\n REFUEL = 'refuel',\n TX_FEE = 'txFee',\n}\n\nexport enum ActionTypes {\n BRIDGE = 'bridge',\n SWAP = 'swap',\n REFUEL = 'refuel',\n}\n\nconst HexAddressSchema = define<`0x${string}`>('HexAddress', (value: unknown) =>\n isValidHexAddress(value as string, { allowNonPrefixed: false }),\n);\n\nconst HexStringSchema = define<`0x${string}`>('HexString', isStrictHexString);\n\nconst NumberStringSchema = define<string>(\n 'NumberString',\n (value: unknown) => typeof value === 'string' && /^\\d+$/u.test(value),\n);\n\nconst VersionStringSchema = define<string>(\n 'VersionString',\n (value: unknown) =>\n typeof value === 'string' &&\n /^(\\d+\\.*){2}\\d+$/u.test(value) &&\n value.split('.').length === 3,\n);\n\nexport const truthyString = (value: string): boolean => Boolean(value?.length);\nconst TruthyDigitStringSchema = pattern(string(), /^\\d+$/u);\n\nconst 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\nconst DefaultPairSchema = type({\n /**\n * The standard default pairs. Use this if the pair is only set once.\n * The key is the CAIP asset type of the src token and the value is the CAIP asset type of the dest token.\n */\n standard: record(string(), string()),\n /**\n * The other default pairs. Use this if the dest token depends on the src token and can be set multiple times.\n * The key is the CAIP asset type of the src token and the value is the CAIP asset type of the dest token.\n */\n other: record(string(), string()),\n});\n\nexport const ChainRankingItemSchema = type({\n /**\n * The CAIP-2 chain identifier (e.g., \"eip155:1\" for Ethereum mainnet)\n */\n chainId: CaipChainIdStruct,\n /**\n * The display name of the chain (e.g., \"Ethereum\")\n */\n name: string(),\n});\n\nexport const ChainRankingSchema = optional(array(ChainRankingItemSchema));\n\nexport const ChainConfigurationSchema = type({\n isActiveSrc: boolean(),\n isActiveDest: boolean(),\n refreshRate: optional(number()),\n topAssets: optional(array(string())),\n stablecoins: optional(array(string())),\n batchSellDestStablecoins: optional(array(CaipAssetTypeStruct)),\n isUnifiedUIEnabled: optional(boolean()),\n isSingleSwapBridgeButtonEnabled: optional(boolean()),\n isGaslessSwapEnabled: optional(boolean()),\n noFeeAssets: optional(array(string())),\n defaultPairs: optional(DefaultPairSchema),\n});\n\nexport const PriceImpactThresholdSchema = type({\n // TODO:\n // We are moving into a unified approach where\n // price impact thresholds will be segmented by\n // importance rather than transaction type.\n // The introduction of warning/danger will first be handled\n // by mobile, followed by extension and then removal of gasless/normal\n // from LD configs.\n // To make the migration easier, we define all fields as optional for now.\n // After the migration takes place, gasless/normal will be removed\n // and warning/danger will be set as required fields.\n gasless: number(), // Percentage value in decimal format (eg 0.02 is 2%)\n normal: number(), // Percentage value in decimal format\n warning: optional(number()), // Percentage value in decimal format\n error: optional(number()), // Percentage value in decimal format\n});\n\nconst GenericQuoteRequestSchema = type({\n aggIds: optional(array(string())),\n bridgeIds: optional(array(string())),\n fee: optional(number()),\n});\n\n/**\n * This is the schema for the feature flags response from the RemoteFeatureFlagController\n */\nexport const PlatformConfigSchema = type({\n priceImpactThreshold: optional(PriceImpactThresholdSchema),\n quoteRequestOverrides: optional(\n record(string(), optional(GenericQuoteRequestSchema)),\n ),\n minimumVersion: string(),\n refreshRate: number(),\n maxRefreshCount: number(),\n support: boolean(),\n chains: record(string(), ChainConfigurationSchema),\n /**\n * The bip44 default pairs for the chains\n * Key is the CAIP chainId namespace\n */\n bip44DefaultPairs: optional(record(string(), optional(DefaultPairSchema))),\n sse: optional(\n type({\n enabled: boolean(),\n /**\n * The minimum version of the client required to enable SSE, for example 13.8.0\n */\n minimumVersion: VersionStringSchema,\n }),\n ),\n /**\n * Array of chain objects ordered by preference/ranking\n */\n chainRanking: ChainRankingSchema,\n maxPendingHistoryItemAgeMs: optional(number()),\n});\n\nexport const validateFeatureFlagsResponse = (\n data: unknown,\n): data is Infer<typeof PlatformConfigSchema> => {\n return is(data, PlatformConfigSchema);\n};\n\nexport const validateSwapsTokenObject = (\n data: unknown,\n): data is Infer<typeof BridgeAssetSchema> => {\n return is(data, BridgeAssetSchema);\n};\n\nexport const FeeDataSchema = type({\n amount: TruthyDigitStringSchema,\n asset: BridgeAssetSchema,\n});\n\nexport const ProtocolSchema = type({\n name: string(),\n displayName: optional(string()),\n icon: optional(string()),\n});\n\nexport const StepSchema = type({\n action: enums(Object.values(ActionTypes)),\n srcChainId: ChainIdSchema,\n destChainId: optional(ChainIdSchema),\n srcAsset: BridgeAssetSchema,\n destAsset: BridgeAssetSchema,\n srcAmount: string(),\n destAmount: string(),\n protocol: ProtocolSchema,\n});\n\nconst RefuelDataSchema = StepSchema;\n\n// Allow digit strings for amounts/validTo for flexibility across providers\nconst DigitStringOrNumberSchema = union([TruthyDigitStringSchema, number()]);\n\n/**\n * Identifier of the intent protocol used for order creation and submission.\n *\n * Examples:\n * - CoW Swap\n * - Other EIP-712–based intent protocols\n */\nconst IntentProtocolSchema = string();\n\n/**\n * Schema for an intent-based order used for EIP-712 signing and submission.\n *\n * This represents the minimal subset of fields required by intent-based\n * protocols (e.g. CoW Swap) to build, sign, and submit an order.\n */\nexport const IntentOrderSchema = type({\n /**\n * Address of the token being sold.\n */\n sellToken: HexAddressSchema,\n\n /**\n * Address of the token being bought.\n */\n buyToken: HexAddressSchema,\n\n /**\n * Optional receiver of the bought tokens.\n * If omitted, defaults to the signer / order owner.\n */\n receiver: optional(HexAddressSchema),\n\n /**\n * Order expiration time.\n *\n * Can be provided as a UNIX timestamp in seconds, either as a number\n * or as a digit string, depending on provider requirements.\n */\n validTo: DigitStringOrNumberSchema,\n\n /**\n * Arbitrary application-specific data attached to the order.\n */\n appData: string(),\n\n /**\n * Hash of the `appData` field, used for EIP-712 signing.\n */\n appDataHash: HexStringSchema,\n\n /**\n * Fee amount paid for order execution, expressed as a digit string.\n */\n feeAmount: TruthyDigitStringSchema,\n\n /**\n * Order kind.\n *\n * - `sell`: exact sell amount, variable buy amount\n * - `buy`: exact buy amount, variable sell amount\n */\n kind: enums(['sell', 'buy']),\n\n /**\n * Whether the order can be partially filled.\n */\n partiallyFillable: boolean(),\n\n /**\n * Exact amount of the sell token.\n *\n * Required for `sell` orders.\n */\n sellAmount: optional(TruthyDigitStringSchema),\n\n /**\n * Exact amount of the buy token.\n *\n * Required for `buy` orders.\n */\n buyAmount: optional(TruthyDigitStringSchema),\n\n /**\n * Optional order owner / sender address.\n *\n * Provided for convenience when building the EIP-712 domain and message.\n */\n from: optional(HexAddressSchema),\n});\n\n/**\n * Schema representing an intent submission payload.\n *\n * Wraps the intent order along with protocol and optional routing metadata\n * required by the backend or relayer infrastructure.\n */\nexport const IntentSchema = type({\n /**\n * Identifier of the intent protocol used to interpret the order.\n */\n protocol: IntentProtocolSchema,\n\n /**\n * The intent order to be signed and submitted.\n */\n order: IntentOrderSchema,\n\n /**\n * Optional settlement contract address used for execution.\n */\n settlementContract: optional(HexAddressSchema),\n\n /**\n * Optional EIP-712 typed data payload for signing.\n * Must be JSON-serializable and include required EIP-712 fields.\n */\n typedData: type({\n // Keep values as `any()` here. Using `unknown()` in this record causes\n // TS2321/TS2589 (excessive type instantiation depth) in bridge state\n // inference during build.\n types: record(\n string(),\n array(\n type({\n name: string(),\n type: string(),\n }),\n ),\n ),\n primaryType: string(),\n domain: record(string(), any()),\n message: record(string(), any()),\n }),\n});\n\nexport const TxFeeGasLimitsSchema = type({\n maxFeePerGas: NumberStringSchema,\n maxPriorityFeePerGas: NumberStringSchema,\n});\n\nexport const GaslessPropertiesSchema = type({\n gasIncluded: optional(boolean()),\n /**\n * Whether the quote can use EIP-7702 delegated gasless execution\n */\n gasIncluded7702: optional(boolean()),\n /**\n * A third party sponsors the gas. If true, then gasIncluded7702 is also true.\n */\n gasSponsored: optional(boolean()),\n});\n\nexport const QuoteSchema = intersection([\n GaslessPropertiesSchema,\n type({\n requestId: string(),\n srcChainId: ChainIdSchema,\n srcAsset: BridgeAssetSchema,\n /**\n * The amount sent, in atomic amount: amount sent - fees\n * Some tokens have a fee of 0, so sometimes it's equal to amount sent\n */\n srcTokenAmount: string(),\n destChainId: ChainIdSchema,\n destAsset: BridgeAssetSchema,\n /**\n * The amount received, in atomic amount\n */\n destTokenAmount: string(),\n /**\n * The minimum amount that will be received, in atomic amount\n */\n minDestTokenAmount: string(),\n feeData: type({\n [FeeType.METABRIDGE]: FeeDataSchema,\n /**\n * This is the fee for the swap transaction taken from either the\n * src or dest token if the quote has gas fees included or \"gasless\"\n */\n [FeeType.TX_FEE]: optional(\n intersection([FeeDataSchema, TxFeeGasLimitsSchema]),\n ),\n }),\n bridgeId: string(),\n bridges: array(string()),\n steps: array(StepSchema),\n refuel: optional(RefuelDataSchema),\n priceData: optional(\n type({\n totalFromAmountUsd: optional(string()),\n totalToAmountUsd: optional(string()),\n priceImpact: optional(string()),\n totalFeeAmountUsd: optional(string()),\n }),\n ),\n intent: optional(IntentSchema),\n }),\n]);\n\nexport const TxDataSchema = type({\n chainId: number(),\n to: HexAddressSchema,\n from: HexAddressSchema,\n value: HexStringSchema,\n data: HexStringSchema,\n gasLimit: nullable(number()),\n effectiveGas: optional(number()),\n});\n\nexport const BitcoinTradeDataSchema = type({\n unsignedPsbtBase64: string(),\n inputsToSign: nullable(array(type({}))),\n});\n\nexport const TronTradeDataSchema = type({\n raw_data_hex: string(),\n visible: optional(boolean()),\n raw_data: optional(\n nullable(\n type({\n contract: optional(\n array(\n type({\n type: optional(string()),\n }),\n ),\n ),\n fee_limit: optional(number()),\n }),\n ),\n ),\n});\n\nexport const QuoteResponseSchema = type({\n quoteId: optional(string()),\n quote: QuoteSchema,\n estimatedProcessingTimeInSeconds: number(),\n approval: optional(union([TxDataSchema, TronTradeDataSchema])),\n trade: union([\n TxDataSchema,\n BitcoinTradeDataSchema,\n TronTradeDataSchema,\n string(),\n ]),\n});\n\nexport const validateQuoteResponseV1 = (\n data: unknown,\n): data is Infer<typeof QuoteResponseSchema> => {\n assert(data, QuoteResponseSchema);\n return true;\n};\n\nexport enum TokenFeatureType {\n MALICIOUS = 'Malicious',\n WARNING = 'Warning',\n INFO = 'Info',\n BENIGN = 'Benign',\n}\n\nexport const TokenFeatureSchema = type({\n feature_id: string(),\n type: enums(Object.values(TokenFeatureType)),\n description: string(),\n});\n\nexport const validateTokenFeature = (\n data: unknown,\n): data is Infer<typeof TokenFeatureSchema> => {\n assert(data, TokenFeatureSchema);\n return true;\n};\n\nexport enum QuoteStreamCompleteReason {\n RETRY = 'RETRY',\n AMOUNT_TOO_HIGH = 'AMOUNT_TOO_HIGH',\n AMOUNT_TOO_LOW = 'AMOUNT_TOO_LOW',\n SLIPPAGE_TOO_HIGH = 'SLIPPAGE_TOO_HIGH',\n SLIPPAGE_TOO_LOW = 'SLIPPAGE_TOO_LOW',\n TOKEN_NOT_SUPPORTED = 'TOKEN_NOT_SUPPORTED',\n RWA_GEO_RESTRICTED = 'RWA_GEO_RESTRICTED',\n RWA_NATIVE_TOKEN_UNSUPPORTED = 'RWA_NATIVE_TOKEN_UNSUPPORTED',\n RWA_MARKET_UNAVAILABLE = 'RWA_MARKET_UNAVAILABLE',\n}\n\nexport const QuoteStreamCompleteSchema = type({\n quoteCount: number(),\n hasQuotes: boolean(),\n reason: optional(enums(Object.values(QuoteStreamCompleteReason))),\n context: optional(record(string(), any())),\n});\n\nexport const validateQuoteStreamComplete = (\n data: unknown,\n): data is Infer<typeof QuoteStreamCompleteSchema> => {\n assert(data, QuoteStreamCompleteSchema);\n return true;\n};\n\nexport enum BatchSellTransactionType {\n TRADE = 'trade',\n APPROVAL = 'approval',\n TRANSFER = 'transfer',\n}\n\nexport const SimulatedGasFeeLimitsSchema = type({\n maxFeePerGas: HexStringSchema,\n maxPriorityFeePerGas: HexStringSchema,\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"]}
1
+ {"version":3,"file":"validators.mjs","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { isValidHexAddress } from '@metamask/controller-utils';\nimport type { Infer } from '@metamask/superstruct';\nimport {\n any,\n string,\n boolean,\n number,\n type,\n is,\n record,\n array,\n nullable,\n optional,\n enums,\n define,\n union,\n assert,\n pattern,\n intersection,\n} from '@metamask/superstruct';\nimport {\n CaipAssetTypeStruct,\n CaipChainIdStruct,\n isStrictHexString,\n} from '@metamask/utils';\n\nexport enum FeeType {\n METABRIDGE = 'metabridge',\n REFUEL = 'refuel',\n TX_FEE = 'txFee',\n}\n\nexport enum ActionTypes {\n BRIDGE = 'bridge',\n SWAP = 'swap',\n REFUEL = 'refuel',\n}\n\nconst HexAddressSchema = define<`0x${string}`>('HexAddress', (value: unknown) =>\n isValidHexAddress(value as string, { allowNonPrefixed: false }),\n);\n\nconst HexStringSchema = define<`0x${string}`>('HexString', isStrictHexString);\n\nconst NumberStringSchema = define<string>(\n 'NumberString',\n (value: unknown) => typeof value === 'string' && /^\\d+$/u.test(value),\n);\n\nconst VersionStringSchema = define<string>(\n 'VersionString',\n (value: unknown) =>\n typeof value === 'string' &&\n /^(\\d+\\.*){2}\\d+$/u.test(value) &&\n value.split('.').length === 3,\n);\n\nexport const truthyString = (value: string): boolean => Boolean(value?.length);\nconst TruthyDigitStringSchema = pattern(string(), /^\\d+$/u);\n\nconst 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\nconst DefaultPairSchema = type({\n /**\n * The standard default pairs. Use this if the pair is only set once.\n * The key is the CAIP asset type of the src token and the value is the CAIP asset type of the dest token.\n */\n standard: record(string(), string()),\n /**\n * The other default pairs. Use this if the dest token depends on the src token and can be set multiple times.\n * The key is the CAIP asset type of the src token and the value is the CAIP asset type of the dest token.\n */\n other: record(string(), string()),\n});\n\nexport const ChainRankingItemSchema = type({\n /**\n * The CAIP-2 chain identifier (e.g., \"eip155:1\" for Ethereum mainnet)\n */\n chainId: CaipChainIdStruct,\n /**\n * The display name of the chain (e.g., \"Ethereum\")\n */\n name: string(),\n});\n\nexport const ChainRankingSchema = optional(array(ChainRankingItemSchema));\n\nexport const ChainConfigurationSchema = type({\n isActiveSrc: boolean(),\n isActiveDest: boolean(),\n refreshRate: optional(number()),\n topAssets: optional(array(string())),\n stablecoins: optional(array(string())),\n batchSellDestStablecoins: optional(array(CaipAssetTypeStruct)),\n isUnifiedUIEnabled: optional(boolean()),\n isSingleSwapBridgeButtonEnabled: optional(boolean()),\n isGaslessSwapEnabled: optional(boolean()),\n noFeeAssets: optional(array(string())),\n defaultPairs: optional(DefaultPairSchema),\n});\n\nexport const PriceImpactThresholdSchema = type({\n // TODO:\n // We are moving into a unified approach where\n // price impact thresholds will be segmented by\n // importance rather than transaction type.\n // The introduction of warning/danger will first be handled\n // by mobile, followed by extension and then removal of gasless/normal\n // from LD configs.\n // To make the migration easier, we define all fields as optional for now.\n // After the migration takes place, gasless/normal will be removed\n // and warning/danger will be set as required fields.\n gasless: number(), // Percentage value in decimal format (eg 0.02 is 2%)\n normal: number(), // Percentage value in decimal format\n warning: optional(number()), // Percentage value in decimal format\n error: optional(number()), // Percentage value in decimal format\n});\n\nconst GenericQuoteRequestSchema = type({\n aggIds: optional(array(string())),\n bridgeIds: optional(array(string())),\n fee: optional(number()),\n});\n\n/**\n * This is the schema for the feature flags response from the RemoteFeatureFlagController\n */\nexport const PlatformConfigSchema = type({\n priceImpactThreshold: optional(PriceImpactThresholdSchema),\n quoteRequestOverrides: optional(\n record(string(), optional(GenericQuoteRequestSchema)),\n ),\n minimumVersion: string(),\n refreshRate: number(),\n maxRefreshCount: number(),\n support: boolean(),\n chains: record(string(), ChainConfigurationSchema),\n /**\n * The bip44 default pairs for the chains\n * Key is the CAIP chainId namespace\n */\n bip44DefaultPairs: optional(record(string(), optional(DefaultPairSchema))),\n sse: optional(\n type({\n enabled: boolean(),\n /**\n * The minimum version of the client required to enable SSE, for example 13.8.0\n */\n minimumVersion: VersionStringSchema,\n }),\n ),\n /**\n * Array of chain objects ordered by preference/ranking\n */\n chainRanking: ChainRankingSchema,\n maxPendingHistoryItemAgeMs: optional(number()),\n});\n\nexport const validateFeatureFlagsResponse = (\n data: unknown,\n): data is Infer<typeof PlatformConfigSchema> => {\n return is(data, PlatformConfigSchema);\n};\n\nexport const validateSwapsTokenObject = (\n data: unknown,\n): data is Infer<typeof BridgeAssetSchema> => {\n return is(data, BridgeAssetSchema);\n};\n\nexport const FeeDataSchema = type({\n amount: TruthyDigitStringSchema,\n asset: BridgeAssetSchema,\n});\n\nexport const ProtocolSchema = type({\n name: string(),\n displayName: optional(string()),\n icon: optional(string()),\n});\n\nexport const StepSchema = type({\n action: enums(Object.values(ActionTypes)),\n srcChainId: ChainIdSchema,\n destChainId: optional(ChainIdSchema),\n srcAsset: BridgeAssetSchema,\n destAsset: BridgeAssetSchema,\n srcAmount: string(),\n destAmount: string(),\n protocol: ProtocolSchema,\n});\n\nconst RefuelDataSchema = StepSchema;\n\n// Allow digit strings for amounts/validTo for flexibility across providers\nconst DigitStringOrNumberSchema = union([TruthyDigitStringSchema, number()]);\n\n/**\n * Identifier of the intent protocol used for order creation and submission.\n *\n * Examples:\n * - CoW Swap\n * - Other EIP-712–based intent protocols\n */\nconst IntentProtocolSchema = string();\n\n/**\n * Schema for an intent-based order used for EIP-712 signing and submission.\n *\n * This represents the minimal subset of fields required by intent-based\n * protocols (e.g. CoW Swap) to build, sign, and submit an order.\n */\nexport const IntentOrderSchema = type({\n /**\n * Address of the token being sold.\n */\n sellToken: HexAddressSchema,\n\n /**\n * Address of the token being bought.\n */\n buyToken: HexAddressSchema,\n\n /**\n * Optional receiver of the bought tokens.\n * If omitted, defaults to the signer / order owner.\n */\n receiver: optional(HexAddressSchema),\n\n /**\n * Order expiration time.\n *\n * Can be provided as a UNIX timestamp in seconds, either as a number\n * or as a digit string, depending on provider requirements.\n */\n validTo: DigitStringOrNumberSchema,\n\n /**\n * Arbitrary application-specific data attached to the order.\n */\n appData: string(),\n\n /**\n * Hash of the `appData` field, used for EIP-712 signing.\n */\n appDataHash: HexStringSchema,\n\n /**\n * Fee amount paid for order execution, expressed as a digit string.\n */\n feeAmount: TruthyDigitStringSchema,\n\n /**\n * Order kind.\n *\n * - `sell`: exact sell amount, variable buy amount\n * - `buy`: exact buy amount, variable sell amount\n */\n kind: enums(['sell', 'buy']),\n\n /**\n * Whether the order can be partially filled.\n */\n partiallyFillable: boolean(),\n\n /**\n * Exact amount of the sell token.\n *\n * Required for `sell` orders.\n */\n sellAmount: optional(TruthyDigitStringSchema),\n\n /**\n * Exact amount of the buy token.\n *\n * Required for `buy` orders.\n */\n buyAmount: optional(TruthyDigitStringSchema),\n\n /**\n * Optional order owner / sender address.\n *\n * Provided for convenience when building the EIP-712 domain and message.\n */\n from: optional(HexAddressSchema),\n});\n\n/**\n * Schema representing an intent submission payload.\n *\n * Wraps the intent order along with protocol and optional routing metadata\n * required by the backend or relayer infrastructure.\n */\nexport const IntentSchema = type({\n /**\n * Identifier of the intent protocol used to interpret the order.\n */\n protocol: IntentProtocolSchema,\n\n /**\n * The intent order to be signed and submitted.\n */\n order: IntentOrderSchema,\n\n /**\n * Optional settlement contract address used for execution.\n */\n settlementContract: optional(HexAddressSchema),\n\n /**\n * Optional EIP-712 typed data payload for signing.\n * Must be JSON-serializable and include required EIP-712 fields.\n */\n typedData: type({\n // Keep values as `any()` here. Using `unknown()` in this record causes\n // TS2321/TS2589 (excessive type instantiation depth) in bridge state\n // inference during build.\n types: record(\n string(),\n array(\n type({\n name: string(),\n type: string(),\n }),\n ),\n ),\n primaryType: string(),\n domain: record(string(), any()),\n message: record(string(), any()),\n }),\n});\n\nexport const TxFeeGasLimitsSchema = type({\n maxFeePerGas: NumberStringSchema,\n maxPriorityFeePerGas: NumberStringSchema,\n});\n\nexport const GaslessPropertiesSchema = type({\n gasIncluded: optional(boolean()),\n /**\n * Whether the quote can use EIP-7702 delegated gasless execution\n */\n gasIncluded7702: optional(boolean()),\n /**\n * A third party sponsors the gas. If true, then gasIncluded7702 is also true.\n */\n gasSponsored: optional(boolean()),\n});\n\nexport const QuoteSchema = intersection([\n GaslessPropertiesSchema,\n type({\n requestId: string(),\n srcChainId: ChainIdSchema,\n srcAsset: BridgeAssetSchema,\n /**\n * The amount sent, in atomic amount: amount sent - fees\n * Some tokens have a fee of 0, so sometimes it's equal to amount sent\n */\n srcTokenAmount: string(),\n destChainId: ChainIdSchema,\n destAsset: BridgeAssetSchema,\n /**\n * The amount received, in atomic amount\n */\n destTokenAmount: string(),\n /**\n * The minimum amount that will be received, in atomic amount\n */\n minDestTokenAmount: string(),\n feeData: type({\n [FeeType.METABRIDGE]: FeeDataSchema,\n /**\n * This is the fee for the swap transaction taken from either the\n * src or dest token if the quote has gas fees included or \"gasless\"\n */\n [FeeType.TX_FEE]: optional(\n intersection([FeeDataSchema, TxFeeGasLimitsSchema]),\n ),\n }),\n bridgeId: string(),\n bridges: array(string()),\n steps: array(StepSchema),\n refuel: optional(RefuelDataSchema),\n priceData: optional(\n type({\n totalFromAmountUsd: optional(string()),\n totalToAmountUsd: optional(string()),\n priceImpact: optional(string()),\n totalFeeAmountUsd: optional(string()),\n }),\n ),\n intent: optional(IntentSchema),\n }),\n]);\n\nexport const TxDataSchema = type({\n chainId: number(),\n to: HexAddressSchema,\n from: HexAddressSchema,\n value: HexStringSchema,\n data: HexStringSchema,\n gasLimit: nullable(number()),\n effectiveGas: optional(number()),\n});\n\nexport const BitcoinTradeDataSchema = type({\n unsignedPsbtBase64: string(),\n inputsToSign: nullable(array(type({}))),\n});\n\nexport const TronTradeDataSchema = type({\n raw_data_hex: string(),\n visible: optional(boolean()),\n raw_data: optional(\n nullable(\n type({\n contract: optional(\n array(\n type({\n type: optional(string()),\n }),\n ),\n ),\n fee_limit: optional(number()),\n }),\n ),\n ),\n});\n\n/**\n * Stellar bridge quote: unsigned transaction envelope as XDR (base64).\n */\nexport const StellarTradeDataSchema = union([\n type({ xdrBase64: string() }),\n type({ xdr: string() }),\n]);\n\nexport const QuoteResponseSchema = type({\n quoteId: optional(string()),\n quote: QuoteSchema,\n estimatedProcessingTimeInSeconds: number(),\n approval: optional(union([TxDataSchema, TronTradeDataSchema])),\n trade: union([\n TxDataSchema,\n BitcoinTradeDataSchema,\n TronTradeDataSchema,\n StellarTradeDataSchema,\n string(),\n ]),\n});\n\nexport const validateQuoteResponseV1 = (\n data: unknown,\n): data is Infer<typeof QuoteResponseSchema> => {\n assert(data, QuoteResponseSchema);\n return true;\n};\n\nexport enum TokenFeatureType {\n MALICIOUS = 'Malicious',\n WARNING = 'Warning',\n INFO = 'Info',\n BENIGN = 'Benign',\n}\n\nexport const TokenFeatureSchema = type({\n feature_id: string(),\n type: enums(Object.values(TokenFeatureType)),\n description: string(),\n});\n\nexport const validateTokenFeature = (\n data: unknown,\n): data is Infer<typeof TokenFeatureSchema> => {\n assert(data, TokenFeatureSchema);\n return true;\n};\n\nexport enum QuoteStreamCompleteReason {\n RETRY = 'RETRY',\n AMOUNT_TOO_HIGH = 'AMOUNT_TOO_HIGH',\n AMOUNT_TOO_LOW = 'AMOUNT_TOO_LOW',\n SLIPPAGE_TOO_HIGH = 'SLIPPAGE_TOO_HIGH',\n SLIPPAGE_TOO_LOW = 'SLIPPAGE_TOO_LOW',\n TOKEN_NOT_SUPPORTED = 'TOKEN_NOT_SUPPORTED',\n RWA_GEO_RESTRICTED = 'RWA_GEO_RESTRICTED',\n RWA_NATIVE_TOKEN_UNSUPPORTED = 'RWA_NATIVE_TOKEN_UNSUPPORTED',\n RWA_MARKET_UNAVAILABLE = 'RWA_MARKET_UNAVAILABLE',\n}\n\nexport const QuoteStreamCompleteSchema = type({\n quoteCount: number(),\n hasQuotes: boolean(),\n reason: optional(enums(Object.values(QuoteStreamCompleteReason))),\n context: optional(record(string(), any())),\n});\n\nexport const validateQuoteStreamComplete = (\n data: unknown,\n): data is Infer<typeof QuoteStreamCompleteSchema> => {\n assert(data, QuoteStreamCompleteSchema);\n return true;\n};\n\nexport enum BatchSellTransactionType {\n TRADE = 'trade',\n APPROVAL = 'approval',\n TRANSFER = 'transfer',\n}\n\nexport const SimulatedGasFeeLimitsSchema = type({\n maxFeePerGas: HexStringSchema,\n maxPriorityFeePerGas: HexStringSchema,\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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask-previews/bridge-controller",
3
- "version": "75.2.1-preview-8633f7f2a",
3
+ "version": "75.2.1-preview-b2742a2fc",
4
4
  "description": "Manages bridge-related quote fetching functionality for MetaMask",
5
5
  "keywords": [
6
6
  "Ethereum",