@metamask-previews/bridge-controller 79.3.0-preview-69cf9e180 → 79.3.0-preview-0b5bfc2

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 (82) hide show
  1. package/CHANGELOG.md +0 -13
  2. package/dist/coercers/quote-response-v1-to-v2.cjs +4 -4
  3. package/dist/coercers/quote-response-v1-to-v2.cjs.map +1 -1
  4. package/dist/coercers/quote-response-v1-to-v2.mjs +4 -4
  5. package/dist/coercers/quote-response-v1-to-v2.mjs.map +1 -1
  6. package/dist/index.cjs +9 -12
  7. package/dist/index.cjs.map +1 -1
  8. package/dist/index.d.cts +2 -2
  9. package/dist/index.d.cts.map +1 -1
  10. package/dist/index.d.mts +2 -2
  11. package/dist/index.d.mts.map +1 -1
  12. package/dist/index.mjs +1 -2
  13. package/dist/index.mjs.map +1 -1
  14. package/dist/selectors.cjs +4 -48
  15. package/dist/selectors.cjs.map +1 -1
  16. package/dist/selectors.d.cts +114 -1209
  17. package/dist/selectors.d.cts.map +1 -1
  18. package/dist/selectors.d.mts +114 -1209
  19. package/dist/selectors.d.mts.map +1 -1
  20. package/dist/selectors.mjs +4 -48
  21. package/dist/selectors.mjs.map +1 -1
  22. package/dist/utils/quote-metadata/calculators.cjs +12 -7
  23. package/dist/utils/quote-metadata/calculators.cjs.map +1 -1
  24. package/dist/utils/quote-metadata/calculators.d.cts.map +1 -1
  25. package/dist/utils/quote-metadata/calculators.d.mts.map +1 -1
  26. package/dist/utils/quote-metadata/calculators.mjs +13 -8
  27. package/dist/utils/quote-metadata/calculators.mjs.map +1 -1
  28. package/dist/utils/quote-metadata/merge.cjs +10 -43
  29. package/dist/utils/quote-metadata/merge.cjs.map +1 -1
  30. package/dist/utils/quote-metadata/merge.d.cts +3 -6
  31. package/dist/utils/quote-metadata/merge.d.cts.map +1 -1
  32. package/dist/utils/quote-metadata/merge.d.mts +3 -6
  33. package/dist/utils/quote-metadata/merge.d.mts.map +1 -1
  34. package/dist/utils/quote-metadata/merge.mjs +10 -43
  35. package/dist/utils/quote-metadata/merge.mjs.map +1 -1
  36. package/dist/utils/quote-metadata/to-quote-metadata-v1.cjs +16 -67
  37. package/dist/utils/quote-metadata/to-quote-metadata-v1.cjs.map +1 -1
  38. package/dist/utils/quote-metadata/to-quote-metadata-v1.d.cts +1 -3
  39. package/dist/utils/quote-metadata/to-quote-metadata-v1.d.cts.map +1 -1
  40. package/dist/utils/quote-metadata/to-quote-metadata-v1.d.mts +1 -3
  41. package/dist/utils/quote-metadata/to-quote-metadata-v1.d.mts.map +1 -1
  42. package/dist/utils/quote-metadata/to-quote-metadata-v1.mjs +16 -67
  43. package/dist/utils/quote-metadata/to-quote-metadata-v1.mjs.map +1 -1
  44. package/dist/utils/quote-metadata/to-quote-metadata-v2.cjs +45 -26
  45. package/dist/utils/quote-metadata/to-quote-metadata-v2.cjs.map +1 -1
  46. package/dist/utils/quote-metadata/to-quote-metadata-v2.d.cts.map +1 -1
  47. package/dist/utils/quote-metadata/to-quote-metadata-v2.d.mts.map +1 -1
  48. package/dist/utils/quote-metadata/to-quote-metadata-v2.mjs +45 -26
  49. package/dist/utils/quote-metadata/to-quote-metadata-v2.mjs.map +1 -1
  50. package/dist/utils/quote-metadata/types.cjs +0 -16
  51. package/dist/utils/quote-metadata/types.cjs.map +1 -1
  52. package/dist/utils/quote-metadata/types.d.cts +0 -21
  53. package/dist/utils/quote-metadata/types.d.cts.map +1 -1
  54. package/dist/utils/quote-metadata/types.d.mts +0 -21
  55. package/dist/utils/quote-metadata/types.d.mts.map +1 -1
  56. package/dist/utils/quote-metadata/types.mjs +1 -15
  57. package/dist/utils/quote-metadata/types.mjs.map +1 -1
  58. package/dist/validators/quote-response.cjs +1 -14
  59. package/dist/validators/quote-response.cjs.map +1 -1
  60. package/dist/validators/quote-response.d.cts +0 -9
  61. package/dist/validators/quote-response.d.cts.map +1 -1
  62. package/dist/validators/quote-response.d.mts +0 -9
  63. package/dist/validators/quote-response.d.mts.map +1 -1
  64. package/dist/validators/quote-response.mjs +0 -12
  65. package/dist/validators/quote-response.mjs.map +1 -1
  66. package/package.json +1 -1
  67. package/dist/utils/quote-metadata/include-if-truthy.cjs +0 -21
  68. package/dist/utils/quote-metadata/include-if-truthy.cjs.map +0 -1
  69. package/dist/utils/quote-metadata/include-if-truthy.d.cts +0 -9
  70. package/dist/utils/quote-metadata/include-if-truthy.d.cts.map +0 -1
  71. package/dist/utils/quote-metadata/include-if-truthy.d.mts +0 -9
  72. package/dist/utils/quote-metadata/include-if-truthy.d.mts.map +0 -1
  73. package/dist/utils/quote-metadata/include-if-truthy.mjs +0 -17
  74. package/dist/utils/quote-metadata/include-if-truthy.mjs.map +0 -1
  75. package/dist/utils/quote-metadata/to-currency-values.cjs +0 -60
  76. package/dist/utils/quote-metadata/to-currency-values.cjs.map +0 -1
  77. package/dist/utils/quote-metadata/to-currency-values.d.cts +0 -12
  78. package/dist/utils/quote-metadata/to-currency-values.d.cts.map +0 -1
  79. package/dist/utils/quote-metadata/to-currency-values.d.mts +0 -12
  80. package/dist/utils/quote-metadata/to-currency-values.d.mts.map +0 -1
  81. package/dist/utils/quote-metadata/to-currency-values.mjs +0 -56
  82. package/dist/utils/quote-metadata/to-currency-values.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"quote-response.cjs","sourceRoot":"","sources":["../../src/validators/quote-response.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n assert,\n Infer,\n number,\n optional,\n string,\n type,\n union,\n intersection,\n Describe,\n nullable,\n enums,\n literal,\n AnyStruct,\n} from '@metamask/superstruct';\nimport {\n CaipChainId,\n CaipChainIdStruct,\n KnownCaipNamespace,\n parseCaipAssetType,\n StrictHexStruct,\n} from '@metamask/utils';\n\nimport { FeatureId } from './feature-flags.js';\nimport { FloatStringSchema } from './number.js';\nimport { QuoteSchemaV2 } from './quote.js';\nimport {\n BitcoinTradeData,\n BitcoinTradeDataSchema,\n StellarTradeData,\n StellarTradeDataSchema,\n TronTradeData,\n TronTradeDataSchema,\n TxData,\n TxDataSchema,\n} from './trade.js';\n\nconst CommonQuoteResponseSchema = type({\n quoteId: optional(string()),\n quote: QuoteSchemaV2,\n estimatedProcessingTimeInSeconds: number(),\n /**\n * Appended to the quote if there are multiple quote requests in a batch. This\n * indicates which quoteRequest the quote is for\n */\n quoteRequestIndex: optional(number()),\n /**\n * Appended to the quote response based on the quote requested featureId\n */\n featureId: optional(enums(Object.values(FeatureId))),\n /**\n * Appended to the quote response based on the quote request nonEvmFeesInNative flag\n *\n * @deprecated Use network feeData\n */\n nonEvmFeesInNative: optional(FloatStringSchema),\n /**\n * Appended to the quote response based on the quote request l1GasFeesInHexWei flag\n *\n * @deprecated Use network feeData\n */\n l1GasFeesInHexWei: optional(StrictHexStruct),\n});\n\nconst EvmQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Eip155),\n chainId: CaipChainIdStruct,\n trade: TxDataSchema,\n approval: optional(TxDataSchema),\n resetApproval: optional(TxDataSchema),\n }),\n]);\n\nconst TronQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Tron),\n chainId: CaipChainIdStruct,\n trade: TronTradeDataSchema,\n approval: optional(TronTradeDataSchema),\n }),\n]);\n\nconst SolanaQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Solana),\n chainId: CaipChainIdStruct,\n trade: string(),\n approval: optional(TxDataSchema),\n }),\n]);\n\nconst BitcoinQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Bip122),\n chainId: CaipChainIdStruct,\n trade: BitcoinTradeDataSchema,\n approval: optional(TxDataSchema),\n }),\n]);\n\nconst StellarQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Stellar),\n chainId: CaipChainIdStruct,\n trade: StellarTradeDataSchema,\n approval: optional(TxDataSchema),\n }),\n]);\n\nexport const QuoteResponseSchemaV2 = nullable(\n union([\n EvmQuoteResponseSchema,\n SolanaQuoteResponseSchema,\n TronQuoteResponseSchema,\n BitcoinQuoteResponseSchema,\n StellarQuoteResponseSchema,\n ]),\n);\n\n/**\n * This is the V2 QuoteResponse type, including metadata calculated after quote fetch\n */\nexport type QuoteResponse = Omit<\n NonNullable<Infer<typeof QuoteResponseSchemaV2>>,\n 'trade' | 'approval' | 'resetApproval'\n> &\n (\n | {\n namespace: KnownCaipNamespace.Eip155;\n chainId: CaipChainId;\n trade: TxData & {\n data: string;\n };\n approval?: TxData;\n /**\n * Appended to the quote response based on the quote request resetApproval flag\n * If defined, the quote's total network fee will include the reset approval's gas limit.\n */\n resetApproval?: TxData;\n }\n | {\n namespace: KnownCaipNamespace.Solana;\n chainId: CaipChainId;\n trade: string;\n approval?: TxData;\n }\n | {\n namespace: KnownCaipNamespace.Tron;\n chainId: CaipChainId;\n trade: TronTradeData & {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n raw_data_hex: string;\n };\n approval?: TronTradeData;\n }\n | {\n namespace: KnownCaipNamespace.Bip122;\n chainId: CaipChainId;\n trade: BitcoinTradeData;\n approval?: TxData;\n }\n | {\n namespace: KnownCaipNamespace.Stellar;\n chainId: CaipChainId;\n trade: StellarTradeData;\n approval?: TxData;\n }\n );\n// This ensures the QuoteResponse type is in sync with the QuoteResponseSchemaV2\nconst QuoteResponse: Describe<QuoteResponse | null> = QuoteResponseSchemaV2;\n\nconst NAMESPACE_TO_TRADE_SCHEMA: Record<QuoteResponse['namespace'], AnyStruct> =\n {\n [KnownCaipNamespace.Eip155]: EvmQuoteResponseSchema,\n [KnownCaipNamespace.Tron]: TronQuoteResponseSchema,\n [KnownCaipNamespace.Solana]: SolanaQuoteResponseSchema,\n [KnownCaipNamespace.Bip122]: BitcoinQuoteResponseSchema,\n [KnownCaipNamespace.Stellar]: StellarQuoteResponseSchema,\n };\n\nexport const validateQuoteResponse = (\n quoteResponse: unknown,\n): quoteResponse is QuoteResponse => {\n // Validate common fields first\n assert(quoteResponse, CommonQuoteResponseSchema);\n\n // Extract the namespace and chainId from the src asset\n const {\n chain: { namespace: namespaceString },\n chainId,\n } = parseCaipAssetType(quoteResponse.quote.src.asset.assetId);\n const namespace = namespaceString as QuoteResponse['namespace'];\n\n if (!NAMESPACE_TO_TRADE_SCHEMA[namespace]) {\n return false;\n }\n\n // Validate the trade and approval fields based on the src chain's namespace\n assert(\n {\n ...quoteResponse,\n namespace,\n chainId,\n },\n NAMESPACE_TO_TRADE_SCHEMA[namespace],\n );\n return true;\n};\n\n/**\n * Shallow check for the presence of the `src` property\n *\n * @param quote - The quote to check\n * @returns True if the quote is a V2 quote, false otherwise\n */\nexport const isQuoteResponseV2 = (\n quote: { quote?: object } | null | undefined,\n): quote is QuoteResponse => {\n if (!quote?.quote) {\n return false;\n }\n return Object.prototype.hasOwnProperty.call(quote.quote, 'src');\n};\n"]}
1
+ {"version":3,"file":"quote-response.cjs","sourceRoot":"","sources":["../../src/validators/quote-response.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n assert,\n Infer,\n number,\n optional,\n string,\n type,\n union,\n intersection,\n Describe,\n nullable,\n enums,\n literal,\n AnyStruct,\n} from '@metamask/superstruct';\nimport {\n CaipChainId,\n CaipChainIdStruct,\n KnownCaipNamespace,\n parseCaipAssetType,\n StrictHexStruct,\n} from '@metamask/utils';\n\nimport { FeatureId } from './feature-flags.js';\nimport { FloatStringSchema } from './number.js';\nimport { QuoteSchemaV2 } from './quote.js';\nimport {\n BitcoinTradeData,\n BitcoinTradeDataSchema,\n StellarTradeData,\n StellarTradeDataSchema,\n TronTradeData,\n TronTradeDataSchema,\n TxData,\n TxDataSchema,\n} from './trade.js';\n\nconst CommonQuoteResponseSchema = type({\n quoteId: optional(string()),\n quote: QuoteSchemaV2,\n estimatedProcessingTimeInSeconds: number(),\n /**\n * Appended to the quote if there are multiple quote requests in a batch. This\n * indicates which quoteRequest the quote is for\n */\n quoteRequestIndex: optional(number()),\n /**\n * Appended to the quote response based on the quote requested featureId\n */\n featureId: optional(enums(Object.values(FeatureId))),\n /**\n * Appended to the quote response based on the quote request nonEvmFeesInNative flag\n *\n * @deprecated Use network feeData\n */\n nonEvmFeesInNative: optional(FloatStringSchema),\n /**\n * Appended to the quote response based on the quote request l1GasFeesInHexWei flag\n *\n * @deprecated Use network feeData\n */\n l1GasFeesInHexWei: optional(StrictHexStruct),\n});\n\nconst EvmQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Eip155),\n chainId: CaipChainIdStruct,\n trade: TxDataSchema,\n approval: optional(TxDataSchema),\n resetApproval: optional(TxDataSchema),\n }),\n]);\n\nconst TronQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Tron),\n chainId: CaipChainIdStruct,\n trade: TronTradeDataSchema,\n approval: optional(TronTradeDataSchema),\n }),\n]);\n\nconst SolanaQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Solana),\n chainId: CaipChainIdStruct,\n trade: string(),\n approval: optional(TxDataSchema),\n }),\n]);\n\nconst BitcoinQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Bip122),\n chainId: CaipChainIdStruct,\n trade: BitcoinTradeDataSchema,\n approval: optional(TxDataSchema),\n }),\n]);\n\nconst StellarQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Stellar),\n chainId: CaipChainIdStruct,\n trade: StellarTradeDataSchema,\n approval: optional(TxDataSchema),\n }),\n]);\n\nexport const QuoteResponseSchemaV2 = nullable(\n union([\n EvmQuoteResponseSchema,\n SolanaQuoteResponseSchema,\n TronQuoteResponseSchema,\n BitcoinQuoteResponseSchema,\n StellarQuoteResponseSchema,\n ]),\n);\n\n/**\n * This is the V2 QuoteResponse type, including metadata calculated after quote fetch\n */\nexport type QuoteResponse = Omit<\n NonNullable<Infer<typeof QuoteResponseSchemaV2>>,\n 'trade' | 'approval' | 'resetApproval'\n> &\n (\n | {\n namespace: KnownCaipNamespace.Eip155;\n chainId: CaipChainId;\n trade: TxData & {\n data: string;\n };\n approval?: TxData;\n /**\n * Appended to the quote response based on the quote request resetApproval flag\n * If defined, the quote's total network fee will include the reset approval's gas limit.\n */\n resetApproval?: TxData;\n }\n | {\n namespace: KnownCaipNamespace.Solana;\n chainId: CaipChainId;\n trade: string;\n approval?: TxData;\n }\n | {\n namespace: KnownCaipNamespace.Tron;\n chainId: CaipChainId;\n trade: TronTradeData & {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n raw_data_hex: string;\n };\n approval?: TronTradeData;\n }\n | {\n namespace: KnownCaipNamespace.Bip122;\n chainId: CaipChainId;\n trade: BitcoinTradeData;\n approval?: TxData;\n }\n | {\n namespace: KnownCaipNamespace.Stellar;\n chainId: CaipChainId;\n trade: StellarTradeData;\n approval?: TxData;\n }\n );\n// This ensures the QuoteResponse type is in sync with the QuoteResponseSchemaV2\nconst QuoteResponse: Describe<QuoteResponse | null> = QuoteResponseSchemaV2;\n\nconst NAMESPACE_TO_TRADE_SCHEMA: Record<QuoteResponse['namespace'], AnyStruct> =\n {\n [KnownCaipNamespace.Eip155]: EvmQuoteResponseSchema,\n [KnownCaipNamespace.Tron]: TronQuoteResponseSchema,\n [KnownCaipNamespace.Solana]: SolanaQuoteResponseSchema,\n [KnownCaipNamespace.Bip122]: BitcoinQuoteResponseSchema,\n [KnownCaipNamespace.Stellar]: StellarQuoteResponseSchema,\n };\n\nexport const validateQuoteResponse = (\n quoteResponse: unknown,\n): quoteResponse is QuoteResponse => {\n // Validate common fields first\n assert(quoteResponse, CommonQuoteResponseSchema);\n\n // Extract the namespace and chainId from the src asset\n const {\n chain: { namespace: namespaceString },\n chainId,\n } = parseCaipAssetType(quoteResponse.quote.src.asset.assetId);\n const namespace = namespaceString as QuoteResponse['namespace'];\n\n if (!NAMESPACE_TO_TRADE_SCHEMA[namespace]) {\n return false;\n }\n\n // Validate the trade and approval fields based on the src chain's namespace\n assert(\n {\n ...quoteResponse,\n namespace,\n chainId,\n },\n NAMESPACE_TO_TRADE_SCHEMA[namespace],\n );\n return true;\n};\n"]}
@@ -1961,13 +1961,4 @@ export type QuoteResponse = Omit<NonNullable<Infer<typeof QuoteResponseSchemaV2>
1961
1961
  approval?: TxData;
1962
1962
  });
1963
1963
  export declare const validateQuoteResponse: (quoteResponse: unknown) => quoteResponse is QuoteResponse;
1964
- /**
1965
- * Shallow check for the presence of the `src` property
1966
- *
1967
- * @param quote - The quote to check
1968
- * @returns True if the quote is a V2 quote, false otherwise
1969
- */
1970
- export declare const isQuoteResponseV2: (quote: {
1971
- quote?: object | undefined;
1972
- } | null | undefined) => quote is QuoteResponse;
1973
1964
  //# sourceMappingURL=quote-response.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"quote-response.d.cts","sourceRoot":"","sources":["../../src/validators/quote-response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quote-response.d.cts","sourceRoot":"","sources":["../../src/validators/quote-response.ts"],"names":[],"mappings":"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"}
@@ -1961,13 +1961,4 @@ export type QuoteResponse = Omit<NonNullable<Infer<typeof QuoteResponseSchemaV2>
1961
1961
  approval?: TxData;
1962
1962
  });
1963
1963
  export declare const validateQuoteResponse: (quoteResponse: unknown) => quoteResponse is QuoteResponse;
1964
- /**
1965
- * Shallow check for the presence of the `src` property
1966
- *
1967
- * @param quote - The quote to check
1968
- * @returns True if the quote is a V2 quote, false otherwise
1969
- */
1970
- export declare const isQuoteResponseV2: (quote: {
1971
- quote?: object | undefined;
1972
- } | null | undefined) => quote is QuoteResponse;
1973
1964
  //# sourceMappingURL=quote-response.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"quote-response.d.mts","sourceRoot":"","sources":["../../src/validators/quote-response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quote-response.d.mts","sourceRoot":"","sources":["../../src/validators/quote-response.ts"],"names":[],"mappings":"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"}
@@ -109,16 +109,4 @@ export const validateQuoteResponse = (quoteResponse) => {
109
109
  }, NAMESPACE_TO_TRADE_SCHEMA[namespace]);
110
110
  return true;
111
111
  };
112
- /**
113
- * Shallow check for the presence of the `src` property
114
- *
115
- * @param quote - The quote to check
116
- * @returns True if the quote is a V2 quote, false otherwise
117
- */
118
- export const isQuoteResponseV2 = (quote) => {
119
- if (!quote?.quote) {
120
- return false;
121
- }
122
- return Object.prototype.hasOwnProperty.call(quote.quote, 'src');
123
- };
124
112
  //# sourceMappingURL=quote-response.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"quote-response.mjs","sourceRoot":"","sources":["../../src/validators/quote-response.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n assert,\n Infer,\n number,\n optional,\n string,\n type,\n union,\n intersection,\n Describe,\n nullable,\n enums,\n literal,\n AnyStruct,\n} from '@metamask/superstruct';\nimport {\n CaipChainId,\n CaipChainIdStruct,\n KnownCaipNamespace,\n parseCaipAssetType,\n StrictHexStruct,\n} from '@metamask/utils';\n\nimport { FeatureId } from './feature-flags.js';\nimport { FloatStringSchema } from './number.js';\nimport { QuoteSchemaV2 } from './quote.js';\nimport {\n BitcoinTradeData,\n BitcoinTradeDataSchema,\n StellarTradeData,\n StellarTradeDataSchema,\n TronTradeData,\n TronTradeDataSchema,\n TxData,\n TxDataSchema,\n} from './trade.js';\n\nconst CommonQuoteResponseSchema = type({\n quoteId: optional(string()),\n quote: QuoteSchemaV2,\n estimatedProcessingTimeInSeconds: number(),\n /**\n * Appended to the quote if there are multiple quote requests in a batch. This\n * indicates which quoteRequest the quote is for\n */\n quoteRequestIndex: optional(number()),\n /**\n * Appended to the quote response based on the quote requested featureId\n */\n featureId: optional(enums(Object.values(FeatureId))),\n /**\n * Appended to the quote response based on the quote request nonEvmFeesInNative flag\n *\n * @deprecated Use network feeData\n */\n nonEvmFeesInNative: optional(FloatStringSchema),\n /**\n * Appended to the quote response based on the quote request l1GasFeesInHexWei flag\n *\n * @deprecated Use network feeData\n */\n l1GasFeesInHexWei: optional(StrictHexStruct),\n});\n\nconst EvmQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Eip155),\n chainId: CaipChainIdStruct,\n trade: TxDataSchema,\n approval: optional(TxDataSchema),\n resetApproval: optional(TxDataSchema),\n }),\n]);\n\nconst TronQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Tron),\n chainId: CaipChainIdStruct,\n trade: TronTradeDataSchema,\n approval: optional(TronTradeDataSchema),\n }),\n]);\n\nconst SolanaQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Solana),\n chainId: CaipChainIdStruct,\n trade: string(),\n approval: optional(TxDataSchema),\n }),\n]);\n\nconst BitcoinQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Bip122),\n chainId: CaipChainIdStruct,\n trade: BitcoinTradeDataSchema,\n approval: optional(TxDataSchema),\n }),\n]);\n\nconst StellarQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Stellar),\n chainId: CaipChainIdStruct,\n trade: StellarTradeDataSchema,\n approval: optional(TxDataSchema),\n }),\n]);\n\nexport const QuoteResponseSchemaV2 = nullable(\n union([\n EvmQuoteResponseSchema,\n SolanaQuoteResponseSchema,\n TronQuoteResponseSchema,\n BitcoinQuoteResponseSchema,\n StellarQuoteResponseSchema,\n ]),\n);\n\n/**\n * This is the V2 QuoteResponse type, including metadata calculated after quote fetch\n */\nexport type QuoteResponse = Omit<\n NonNullable<Infer<typeof QuoteResponseSchemaV2>>,\n 'trade' | 'approval' | 'resetApproval'\n> &\n (\n | {\n namespace: KnownCaipNamespace.Eip155;\n chainId: CaipChainId;\n trade: TxData & {\n data: string;\n };\n approval?: TxData;\n /**\n * Appended to the quote response based on the quote request resetApproval flag\n * If defined, the quote's total network fee will include the reset approval's gas limit.\n */\n resetApproval?: TxData;\n }\n | {\n namespace: KnownCaipNamespace.Solana;\n chainId: CaipChainId;\n trade: string;\n approval?: TxData;\n }\n | {\n namespace: KnownCaipNamespace.Tron;\n chainId: CaipChainId;\n trade: TronTradeData & {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n raw_data_hex: string;\n };\n approval?: TronTradeData;\n }\n | {\n namespace: KnownCaipNamespace.Bip122;\n chainId: CaipChainId;\n trade: BitcoinTradeData;\n approval?: TxData;\n }\n | {\n namespace: KnownCaipNamespace.Stellar;\n chainId: CaipChainId;\n trade: StellarTradeData;\n approval?: TxData;\n }\n );\n// This ensures the QuoteResponse type is in sync with the QuoteResponseSchemaV2\nconst QuoteResponse: Describe<QuoteResponse | null> = QuoteResponseSchemaV2;\n\nconst NAMESPACE_TO_TRADE_SCHEMA: Record<QuoteResponse['namespace'], AnyStruct> =\n {\n [KnownCaipNamespace.Eip155]: EvmQuoteResponseSchema,\n [KnownCaipNamespace.Tron]: TronQuoteResponseSchema,\n [KnownCaipNamespace.Solana]: SolanaQuoteResponseSchema,\n [KnownCaipNamespace.Bip122]: BitcoinQuoteResponseSchema,\n [KnownCaipNamespace.Stellar]: StellarQuoteResponseSchema,\n };\n\nexport const validateQuoteResponse = (\n quoteResponse: unknown,\n): quoteResponse is QuoteResponse => {\n // Validate common fields first\n assert(quoteResponse, CommonQuoteResponseSchema);\n\n // Extract the namespace and chainId from the src asset\n const {\n chain: { namespace: namespaceString },\n chainId,\n } = parseCaipAssetType(quoteResponse.quote.src.asset.assetId);\n const namespace = namespaceString as QuoteResponse['namespace'];\n\n if (!NAMESPACE_TO_TRADE_SCHEMA[namespace]) {\n return false;\n }\n\n // Validate the trade and approval fields based on the src chain's namespace\n assert(\n {\n ...quoteResponse,\n namespace,\n chainId,\n },\n NAMESPACE_TO_TRADE_SCHEMA[namespace],\n );\n return true;\n};\n\n/**\n * Shallow check for the presence of the `src` property\n *\n * @param quote - The quote to check\n * @returns True if the quote is a V2 quote, false otherwise\n */\nexport const isQuoteResponseV2 = (\n quote: { quote?: object } | null | undefined,\n): quote is QuoteResponse => {\n if (!quote?.quote) {\n return false;\n }\n return Object.prototype.hasOwnProperty.call(quote.quote, 'src');\n};\n"]}
1
+ {"version":3,"file":"quote-response.mjs","sourceRoot":"","sources":["../../src/validators/quote-response.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n assert,\n Infer,\n number,\n optional,\n string,\n type,\n union,\n intersection,\n Describe,\n nullable,\n enums,\n literal,\n AnyStruct,\n} from '@metamask/superstruct';\nimport {\n CaipChainId,\n CaipChainIdStruct,\n KnownCaipNamespace,\n parseCaipAssetType,\n StrictHexStruct,\n} from '@metamask/utils';\n\nimport { FeatureId } from './feature-flags.js';\nimport { FloatStringSchema } from './number.js';\nimport { QuoteSchemaV2 } from './quote.js';\nimport {\n BitcoinTradeData,\n BitcoinTradeDataSchema,\n StellarTradeData,\n StellarTradeDataSchema,\n TronTradeData,\n TronTradeDataSchema,\n TxData,\n TxDataSchema,\n} from './trade.js';\n\nconst CommonQuoteResponseSchema = type({\n quoteId: optional(string()),\n quote: QuoteSchemaV2,\n estimatedProcessingTimeInSeconds: number(),\n /**\n * Appended to the quote if there are multiple quote requests in a batch. This\n * indicates which quoteRequest the quote is for\n */\n quoteRequestIndex: optional(number()),\n /**\n * Appended to the quote response based on the quote requested featureId\n */\n featureId: optional(enums(Object.values(FeatureId))),\n /**\n * Appended to the quote response based on the quote request nonEvmFeesInNative flag\n *\n * @deprecated Use network feeData\n */\n nonEvmFeesInNative: optional(FloatStringSchema),\n /**\n * Appended to the quote response based on the quote request l1GasFeesInHexWei flag\n *\n * @deprecated Use network feeData\n */\n l1GasFeesInHexWei: optional(StrictHexStruct),\n});\n\nconst EvmQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Eip155),\n chainId: CaipChainIdStruct,\n trade: TxDataSchema,\n approval: optional(TxDataSchema),\n resetApproval: optional(TxDataSchema),\n }),\n]);\n\nconst TronQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Tron),\n chainId: CaipChainIdStruct,\n trade: TronTradeDataSchema,\n approval: optional(TronTradeDataSchema),\n }),\n]);\n\nconst SolanaQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Solana),\n chainId: CaipChainIdStruct,\n trade: string(),\n approval: optional(TxDataSchema),\n }),\n]);\n\nconst BitcoinQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Bip122),\n chainId: CaipChainIdStruct,\n trade: BitcoinTradeDataSchema,\n approval: optional(TxDataSchema),\n }),\n]);\n\nconst StellarQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Stellar),\n chainId: CaipChainIdStruct,\n trade: StellarTradeDataSchema,\n approval: optional(TxDataSchema),\n }),\n]);\n\nexport const QuoteResponseSchemaV2 = nullable(\n union([\n EvmQuoteResponseSchema,\n SolanaQuoteResponseSchema,\n TronQuoteResponseSchema,\n BitcoinQuoteResponseSchema,\n StellarQuoteResponseSchema,\n ]),\n);\n\n/**\n * This is the V2 QuoteResponse type, including metadata calculated after quote fetch\n */\nexport type QuoteResponse = Omit<\n NonNullable<Infer<typeof QuoteResponseSchemaV2>>,\n 'trade' | 'approval' | 'resetApproval'\n> &\n (\n | {\n namespace: KnownCaipNamespace.Eip155;\n chainId: CaipChainId;\n trade: TxData & {\n data: string;\n };\n approval?: TxData;\n /**\n * Appended to the quote response based on the quote request resetApproval flag\n * If defined, the quote's total network fee will include the reset approval's gas limit.\n */\n resetApproval?: TxData;\n }\n | {\n namespace: KnownCaipNamespace.Solana;\n chainId: CaipChainId;\n trade: string;\n approval?: TxData;\n }\n | {\n namespace: KnownCaipNamespace.Tron;\n chainId: CaipChainId;\n trade: TronTradeData & {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n raw_data_hex: string;\n };\n approval?: TronTradeData;\n }\n | {\n namespace: KnownCaipNamespace.Bip122;\n chainId: CaipChainId;\n trade: BitcoinTradeData;\n approval?: TxData;\n }\n | {\n namespace: KnownCaipNamespace.Stellar;\n chainId: CaipChainId;\n trade: StellarTradeData;\n approval?: TxData;\n }\n );\n// This ensures the QuoteResponse type is in sync with the QuoteResponseSchemaV2\nconst QuoteResponse: Describe<QuoteResponse | null> = QuoteResponseSchemaV2;\n\nconst NAMESPACE_TO_TRADE_SCHEMA: Record<QuoteResponse['namespace'], AnyStruct> =\n {\n [KnownCaipNamespace.Eip155]: EvmQuoteResponseSchema,\n [KnownCaipNamespace.Tron]: TronQuoteResponseSchema,\n [KnownCaipNamespace.Solana]: SolanaQuoteResponseSchema,\n [KnownCaipNamespace.Bip122]: BitcoinQuoteResponseSchema,\n [KnownCaipNamespace.Stellar]: StellarQuoteResponseSchema,\n };\n\nexport const validateQuoteResponse = (\n quoteResponse: unknown,\n): quoteResponse is QuoteResponse => {\n // Validate common fields first\n assert(quoteResponse, CommonQuoteResponseSchema);\n\n // Extract the namespace and chainId from the src asset\n const {\n chain: { namespace: namespaceString },\n chainId,\n } = parseCaipAssetType(quoteResponse.quote.src.asset.assetId);\n const namespace = namespaceString as QuoteResponse['namespace'];\n\n if (!NAMESPACE_TO_TRADE_SCHEMA[namespace]) {\n return false;\n }\n\n // Validate the trade and approval fields based on the src chain's namespace\n assert(\n {\n ...quoteResponse,\n namespace,\n chainId,\n },\n NAMESPACE_TO_TRADE_SCHEMA[namespace],\n );\n return true;\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask-previews/bridge-controller",
3
- "version": "79.3.0-preview-69cf9e180",
3
+ "version": "79.3.0-preview-0b5bfc2",
4
4
  "description": "Manages bridge-related quote fetching functionality for MetaMask",
5
5
  "keywords": [
6
6
  "Ethereum",
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.includeIfTruthy = void 0;
4
- /**
5
- * Includes the `result` if any of `value`'s properties are truthy
6
- *
7
- * @param value - The value object
8
- * @param result - The result to include
9
- * @returns The result if any of the values in the value object are truthy, otherwise undefined
10
- */
11
- const includeIfTruthy = (value, result) => {
12
- if (!value) {
13
- return undefined;
14
- }
15
- if (Object.values(value).some(Boolean)) {
16
- return result;
17
- }
18
- return undefined;
19
- };
20
- exports.includeIfTruthy = includeIfTruthy;
21
- //# sourceMappingURL=include-if-truthy.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"include-if-truthy.cjs","sourceRoot":"","sources":["../../../src/utils/quote-metadata/include-if-truthy.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACI,MAAM,eAAe,GAAG,CAC7B,KAA0C,EAC1C,MAAkB,EACM,EAAE;IAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAbW,QAAA,eAAe,mBAa1B","sourcesContent":["/**\n * Includes the `result` if any of `value`'s properties are truthy\n *\n * @param value - The value object\n * @param result - The result to include\n * @returns The result if any of the values in the value object are truthy, otherwise undefined\n */\nexport const includeIfTruthy = <ResultType extends Record<string, unknown>>(\n value: Record<string, unknown> | undefined,\n result: ResultType,\n): ResultType | undefined => {\n if (!value) {\n return undefined;\n }\n\n if (Object.values(value).some(Boolean)) {\n return result;\n }\n\n return undefined;\n};\n"]}
@@ -1,9 +0,0 @@
1
- /**
2
- * Includes the `result` if any of `value`'s properties are truthy
3
- *
4
- * @param value - The value object
5
- * @param result - The result to include
6
- * @returns The result if any of the values in the value object are truthy, otherwise undefined
7
- */
8
- export declare const includeIfTruthy: <ResultType extends Record<string, unknown>>(value: Record<string, unknown> | undefined, result: ResultType) => ResultType | undefined;
9
- //# sourceMappingURL=include-if-truthy.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"include-if-truthy.d.cts","sourceRoot":"","sources":["../../../src/utils/quote-metadata/include-if-truthy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,sDACnB,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,+CAY3C,CAAC"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Includes the `result` if any of `value`'s properties are truthy
3
- *
4
- * @param value - The value object
5
- * @param result - The result to include
6
- * @returns The result if any of the values in the value object are truthy, otherwise undefined
7
- */
8
- export declare const includeIfTruthy: <ResultType extends Record<string, unknown>>(value: Record<string, unknown> | undefined, result: ResultType) => ResultType | undefined;
9
- //# sourceMappingURL=include-if-truthy.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"include-if-truthy.d.mts","sourceRoot":"","sources":["../../../src/utils/quote-metadata/include-if-truthy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,sDACnB,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,+CAY3C,CAAC"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Includes the `result` if any of `value`'s properties are truthy
3
- *
4
- * @param value - The value object
5
- * @param result - The result to include
6
- * @returns The result if any of the values in the value object are truthy, otherwise undefined
7
- */
8
- export const includeIfTruthy = (value, result) => {
9
- if (!value) {
10
- return undefined;
11
- }
12
- if (Object.values(value).some(Boolean)) {
13
- return result;
14
- }
15
- return undefined;
16
- };
17
- //# sourceMappingURL=include-if-truthy.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"include-if-truthy.mjs","sourceRoot":"","sources":["../../../src/utils/quote-metadata/include-if-truthy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,KAA0C,EAC1C,MAAkB,EACM,EAAE;IAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC","sourcesContent":["/**\n * Includes the `result` if any of `value`'s properties are truthy\n *\n * @param value - The value object\n * @param result - The result to include\n * @returns The result if any of the values in the value object are truthy, otherwise undefined\n */\nexport const includeIfTruthy = <ResultType extends Record<string, unknown>>(\n value: Record<string, unknown> | undefined,\n result: ResultType,\n): ResultType | undefined => {\n if (!value) {\n return undefined;\n }\n\n if (Object.values(value).some(Boolean)) {\n return result;\n }\n\n return undefined;\n};\n"]}
@@ -1,60 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toCurrencyValues = void 0;
4
- const bignumber_js_1 = require("bignumber.js");
5
- const quote_js_1 = require("../../validators/quote.cjs");
6
- /**
7
- * Builds a partial {@link QuoteResponse} object with fiat values derived from the usd values provided by the bridge-api
8
- *
9
- * @param quote - The quote response to calculate the metadata for
10
- * @param usdToFiatExchangeRate - The usd to fiat exchange rate
11
- * @returns The partial {@link QuoteResponse} object with fiat values
12
- */
13
- const toCurrencyValues = (quote, usdToFiatExchangeRate) => {
14
- const { quote: { src, dest, feeData, priceData }, } = quote;
15
- const { adjustedReturn, priceImpact } = priceData ?? {};
16
- const toFiat = ({ usd, valueInCurrency, }) => {
17
- if (usd && usdToFiatExchangeRate) {
18
- return { valueInCurrency: usdToFiatExchangeRate.times(usd).toFixed() };
19
- }
20
- if (valueInCurrency) {
21
- return { valueInCurrency };
22
- }
23
- return undefined;
24
- };
25
- const priceImpactFiat = priceImpact ? toFiat(priceImpact) : undefined;
26
- const adjustedReturnFiat = adjustedReturn
27
- ? toFiat(adjustedReturn)
28
- : undefined;
29
- const minAmountValueInCurrency = toFiat({
30
- usd: dest.minAmountUsd,
31
- valueInCurrency: dest.minAmountValueInCurrency,
32
- })?.valueInCurrency;
33
- return {
34
- quote: {
35
- src: toFiat(src),
36
- dest: {
37
- ...toFiat(dest),
38
- ...(minAmountValueInCurrency && {
39
- minAmountValueInCurrency,
40
- }),
41
- },
42
- feeData: feeData &&
43
- Object.fromEntries(Object.values(quote_js_1.FeeType)
44
- .filter((feeType) => feeData[feeType])
45
- .map((feeType) => [feeType, feeData[feeType]?.map(toFiat)])),
46
- ...((priceImpactFiat ?? adjustedReturnFiat) && {
47
- priceData: {
48
- ...(priceImpactFiat && {
49
- priceImpact: priceImpactFiat,
50
- }),
51
- ...(adjustedReturnFiat && {
52
- adjustedReturn: adjustedReturnFiat,
53
- }),
54
- },
55
- }),
56
- },
57
- };
58
- };
59
- exports.toCurrencyValues = toCurrencyValues;
60
- //# sourceMappingURL=to-currency-values.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"to-currency-values.cjs","sourceRoot":"","sources":["../../../src/utils/quote-metadata/to-currency-values.ts"],"names":[],"mappings":";;;AAAA,+CAAyC;AAKzC,yDAAoD;AAEpD;;;;;;GAMG;AACI,MAAM,gBAAgB,GAAG,CAC9B,KAAoB,EACpB,qBAAiC,EACL,EAAE;IAC9B,MAAM,EACJ,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GACzC,GAAG,KAAK,CAAC;IAEV,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,SAAS,IAAI,EAAE,CAAC;IAExD,MAAM,MAAM,GAAG,CAAC,EACd,GAAG,EACH,eAAe,GACkC,EAErC,EAAE;QACd,IAAI,GAAG,IAAI,qBAAqB,EAAE,CAAC;YACjC,OAAO,EAAE,eAAe,EAAE,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACzE,CAAC;QACD,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,EAAE,eAAe,EAAE,CAAC;QAC7B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,MAAM,kBAAkB,GAAG,cAAc;QACvC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;QACxB,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,wBAAwB,GAAG,MAAM,CAAC;QACtC,GAAG,EAAE,IAAI,CAAC,YAAY;QACtB,eAAe,EAAE,IAAI,CAAC,wBAAwB;KAC/C,CAAC,EAAE,eAAe,CAAC;IAEpB,OAAO;QACL,KAAK,EAAE;YACL,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;YAChB,IAAI,EAAE;gBACJ,GAAG,MAAM,CAAC,IAAI,CAAC;gBACf,GAAG,CAAC,wBAAwB,IAAI;oBAC9B,wBAAwB;iBACzB,CAAC;aACH;YACD,OAAO,EACL,OAAO;gBACP,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,MAAM,CAAC,kBAAO,CAAC;qBACnB,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;qBACrC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAC9D;YACH,GAAG,CAAC,CAAC,eAAe,IAAI,kBAAkB,CAAC,IAAI;gBAC7C,SAAS,EAAE;oBACT,GAAG,CAAC,eAAe,IAAI;wBACrB,WAAW,EAAE,eAAe;qBAC7B,CAAC;oBACF,GAAG,CAAC,kBAAkB,IAAI;wBACxB,cAAc,EAAE,kBAAkB;qBACnC,CAAC;iBACH;aACF,CAAC;SACH;KACF,CAAC;AACJ,CAAC,CAAC;AA/DW,QAAA,gBAAgB,oBA+D3B","sourcesContent":["import { BigNumber } from 'bignumber.js';\n\nimport type { DeepPartial } from '../../types.js';\nimport type { AmountsAndAsset } from '../../validators/amount-and-asset.js';\nimport type { QuoteResponse } from '../../validators/quote-response.js';\nimport { FeeType } from '../../validators/quote.js';\n\n/**\n * Builds a partial {@link QuoteResponse} object with fiat values derived from the usd values provided by the bridge-api\n *\n * @param quote - The quote response to calculate the metadata for\n * @param usdToFiatExchangeRate - The usd to fiat exchange rate\n * @returns The partial {@link QuoteResponse} object with fiat values\n */\nexport const toCurrencyValues = (\n quote: QuoteResponse,\n usdToFiatExchangeRate?: BigNumber,\n): DeepPartial<QuoteResponse> => {\n const {\n quote: { src, dest, feeData, priceData },\n } = quote;\n\n const { adjustedReturn, priceImpact } = priceData ?? {};\n\n const toFiat = ({\n usd,\n valueInCurrency,\n }: Pick<AmountsAndAsset, 'usd' | 'valueInCurrency'>):\n | Pick<AmountsAndAsset, 'valueInCurrency'>\n | undefined => {\n if (usd && usdToFiatExchangeRate) {\n return { valueInCurrency: usdToFiatExchangeRate.times(usd).toFixed() };\n }\n if (valueInCurrency) {\n return { valueInCurrency };\n }\n return undefined;\n };\n\n const priceImpactFiat = priceImpact ? toFiat(priceImpact) : undefined;\n const adjustedReturnFiat = adjustedReturn\n ? toFiat(adjustedReturn)\n : undefined;\n\n const minAmountValueInCurrency = toFiat({\n usd: dest.minAmountUsd,\n valueInCurrency: dest.minAmountValueInCurrency,\n })?.valueInCurrency;\n\n return {\n quote: {\n src: toFiat(src),\n dest: {\n ...toFiat(dest),\n ...(minAmountValueInCurrency && {\n minAmountValueInCurrency,\n }),\n },\n feeData:\n feeData &&\n Object.fromEntries(\n Object.values(FeeType)\n .filter((feeType) => feeData[feeType])\n .map((feeType) => [feeType, feeData[feeType]?.map(toFiat)]),\n ),\n ...((priceImpactFiat ?? adjustedReturnFiat) && {\n priceData: {\n ...(priceImpactFiat && {\n priceImpact: priceImpactFiat,\n }),\n ...(adjustedReturnFiat && {\n adjustedReturn: adjustedReturnFiat,\n }),\n },\n }),\n },\n };\n};\n"]}
@@ -1,12 +0,0 @@
1
- import { BigNumber } from "bignumber.js";
2
- import type { DeepPartial } from "../../types.cjs";
3
- import type { QuoteResponse } from "../../validators/quote-response.cjs";
4
- /**
5
- * Builds a partial {@link QuoteResponse} object with fiat values derived from the usd values provided by the bridge-api
6
- *
7
- * @param quote - The quote response to calculate the metadata for
8
- * @param usdToFiatExchangeRate - The usd to fiat exchange rate
9
- * @returns The partial {@link QuoteResponse} object with fiat values
10
- */
11
- export declare const toCurrencyValues: (quote: QuoteResponse, usdToFiatExchangeRate?: BigNumber) => DeepPartial<QuoteResponse>;
12
- //# sourceMappingURL=to-currency-values.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"to-currency-values.d.cts","sourceRoot":"","sources":["../../../src/utils/quote-metadata/to-currency-values.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,qBAAqB;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAuB;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,4CAA2C;AAGxE;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,UACpB,aAAa,0BACI,SAAS,KAChC,YAAY,aAAa,CA4D3B,CAAC"}
@@ -1,12 +0,0 @@
1
- import { BigNumber } from "bignumber.js";
2
- import type { DeepPartial } from "../../types.mjs";
3
- import type { QuoteResponse } from "../../validators/quote-response.mjs";
4
- /**
5
- * Builds a partial {@link QuoteResponse} object with fiat values derived from the usd values provided by the bridge-api
6
- *
7
- * @param quote - The quote response to calculate the metadata for
8
- * @param usdToFiatExchangeRate - The usd to fiat exchange rate
9
- * @returns The partial {@link QuoteResponse} object with fiat values
10
- */
11
- export declare const toCurrencyValues: (quote: QuoteResponse, usdToFiatExchangeRate?: BigNumber) => DeepPartial<QuoteResponse>;
12
- //# sourceMappingURL=to-currency-values.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"to-currency-values.d.mts","sourceRoot":"","sources":["../../../src/utils/quote-metadata/to-currency-values.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,qBAAqB;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAuB;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,4CAA2C;AAGxE;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,UACpB,aAAa,0BACI,SAAS,KAChC,YAAY,aAAa,CA4D3B,CAAC"}
@@ -1,56 +0,0 @@
1
- import { BigNumber } from "bignumber.js";
2
- import { FeeType } from "../../validators/quote.mjs";
3
- /**
4
- * Builds a partial {@link QuoteResponse} object with fiat values derived from the usd values provided by the bridge-api
5
- *
6
- * @param quote - The quote response to calculate the metadata for
7
- * @param usdToFiatExchangeRate - The usd to fiat exchange rate
8
- * @returns The partial {@link QuoteResponse} object with fiat values
9
- */
10
- export const toCurrencyValues = (quote, usdToFiatExchangeRate) => {
11
- const { quote: { src, dest, feeData, priceData }, } = quote;
12
- const { adjustedReturn, priceImpact } = priceData ?? {};
13
- const toFiat = ({ usd, valueInCurrency, }) => {
14
- if (usd && usdToFiatExchangeRate) {
15
- return { valueInCurrency: usdToFiatExchangeRate.times(usd).toFixed() };
16
- }
17
- if (valueInCurrency) {
18
- return { valueInCurrency };
19
- }
20
- return undefined;
21
- };
22
- const priceImpactFiat = priceImpact ? toFiat(priceImpact) : undefined;
23
- const adjustedReturnFiat = adjustedReturn
24
- ? toFiat(adjustedReturn)
25
- : undefined;
26
- const minAmountValueInCurrency = toFiat({
27
- usd: dest.minAmountUsd,
28
- valueInCurrency: dest.minAmountValueInCurrency,
29
- })?.valueInCurrency;
30
- return {
31
- quote: {
32
- src: toFiat(src),
33
- dest: {
34
- ...toFiat(dest),
35
- ...(minAmountValueInCurrency && {
36
- minAmountValueInCurrency,
37
- }),
38
- },
39
- feeData: feeData &&
40
- Object.fromEntries(Object.values(FeeType)
41
- .filter((feeType) => feeData[feeType])
42
- .map((feeType) => [feeType, feeData[feeType]?.map(toFiat)])),
43
- ...((priceImpactFiat ?? adjustedReturnFiat) && {
44
- priceData: {
45
- ...(priceImpactFiat && {
46
- priceImpact: priceImpactFiat,
47
- }),
48
- ...(adjustedReturnFiat && {
49
- adjustedReturn: adjustedReturnFiat,
50
- }),
51
- },
52
- }),
53
- },
54
- };
55
- };
56
- //# sourceMappingURL=to-currency-values.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"to-currency-values.mjs","sourceRoot":"","sources":["../../../src/utils/quote-metadata/to-currency-values.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,qBAAqB;AAKzC,OAAO,EAAE,OAAO,EAAE,mCAAkC;AAEpD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,KAAoB,EACpB,qBAAiC,EACL,EAAE;IAC9B,MAAM,EACJ,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GACzC,GAAG,KAAK,CAAC;IAEV,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,SAAS,IAAI,EAAE,CAAC;IAExD,MAAM,MAAM,GAAG,CAAC,EACd,GAAG,EACH,eAAe,GACkC,EAErC,EAAE;QACd,IAAI,GAAG,IAAI,qBAAqB,EAAE,CAAC;YACjC,OAAO,EAAE,eAAe,EAAE,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACzE,CAAC;QACD,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,EAAE,eAAe,EAAE,CAAC;QAC7B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,MAAM,kBAAkB,GAAG,cAAc;QACvC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;QACxB,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,wBAAwB,GAAG,MAAM,CAAC;QACtC,GAAG,EAAE,IAAI,CAAC,YAAY;QACtB,eAAe,EAAE,IAAI,CAAC,wBAAwB;KAC/C,CAAC,EAAE,eAAe,CAAC;IAEpB,OAAO;QACL,KAAK,EAAE;YACL,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;YAChB,IAAI,EAAE;gBACJ,GAAG,MAAM,CAAC,IAAI,CAAC;gBACf,GAAG,CAAC,wBAAwB,IAAI;oBAC9B,wBAAwB;iBACzB,CAAC;aACH;YACD,OAAO,EACL,OAAO;gBACP,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;qBACnB,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;qBACrC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAC9D;YACH,GAAG,CAAC,CAAC,eAAe,IAAI,kBAAkB,CAAC,IAAI;gBAC7C,SAAS,EAAE;oBACT,GAAG,CAAC,eAAe,IAAI;wBACrB,WAAW,EAAE,eAAe;qBAC7B,CAAC;oBACF,GAAG,CAAC,kBAAkB,IAAI;wBACxB,cAAc,EAAE,kBAAkB;qBACnC,CAAC;iBACH;aACF,CAAC;SACH;KACF,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { BigNumber } from 'bignumber.js';\n\nimport type { DeepPartial } from '../../types.js';\nimport type { AmountsAndAsset } from '../../validators/amount-and-asset.js';\nimport type { QuoteResponse } from '../../validators/quote-response.js';\nimport { FeeType } from '../../validators/quote.js';\n\n/**\n * Builds a partial {@link QuoteResponse} object with fiat values derived from the usd values provided by the bridge-api\n *\n * @param quote - The quote response to calculate the metadata for\n * @param usdToFiatExchangeRate - The usd to fiat exchange rate\n * @returns The partial {@link QuoteResponse} object with fiat values\n */\nexport const toCurrencyValues = (\n quote: QuoteResponse,\n usdToFiatExchangeRate?: BigNumber,\n): DeepPartial<QuoteResponse> => {\n const {\n quote: { src, dest, feeData, priceData },\n } = quote;\n\n const { adjustedReturn, priceImpact } = priceData ?? {};\n\n const toFiat = ({\n usd,\n valueInCurrency,\n }: Pick<AmountsAndAsset, 'usd' | 'valueInCurrency'>):\n | Pick<AmountsAndAsset, 'valueInCurrency'>\n | undefined => {\n if (usd && usdToFiatExchangeRate) {\n return { valueInCurrency: usdToFiatExchangeRate.times(usd).toFixed() };\n }\n if (valueInCurrency) {\n return { valueInCurrency };\n }\n return undefined;\n };\n\n const priceImpactFiat = priceImpact ? toFiat(priceImpact) : undefined;\n const adjustedReturnFiat = adjustedReturn\n ? toFiat(adjustedReturn)\n : undefined;\n\n const minAmountValueInCurrency = toFiat({\n usd: dest.minAmountUsd,\n valueInCurrency: dest.minAmountValueInCurrency,\n })?.valueInCurrency;\n\n return {\n quote: {\n src: toFiat(src),\n dest: {\n ...toFiat(dest),\n ...(minAmountValueInCurrency && {\n minAmountValueInCurrency,\n }),\n },\n feeData:\n feeData &&\n Object.fromEntries(\n Object.values(FeeType)\n .filter((feeType) => feeData[feeType])\n .map((feeType) => [feeType, feeData[feeType]?.map(toFiat)]),\n ),\n ...((priceImpactFiat ?? adjustedReturnFiat) && {\n priceData: {\n ...(priceImpactFiat && {\n priceImpact: priceImpactFiat,\n }),\n ...(adjustedReturnFiat && {\n adjustedReturn: adjustedReturnFiat,\n }),\n },\n }),\n },\n };\n};\n"]}