@metamask/bridge-controller 71.1.1 → 72.0.1

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 (66) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/dist/bridge-controller.cjs +150 -102
  3. package/dist/bridge-controller.cjs.map +1 -1
  4. package/dist/bridge-controller.d.cts +14 -4
  5. package/dist/bridge-controller.d.cts.map +1 -1
  6. package/dist/bridge-controller.d.mts +14 -4
  7. package/dist/bridge-controller.d.mts.map +1 -1
  8. package/dist/bridge-controller.mjs +151 -103
  9. package/dist/bridge-controller.mjs.map +1 -1
  10. package/dist/constants/bridge.cjs +5 -3
  11. package/dist/constants/bridge.cjs.map +1 -1
  12. package/dist/constants/bridge.d.cts.map +1 -1
  13. package/dist/constants/bridge.d.mts.map +1 -1
  14. package/dist/constants/bridge.mjs +5 -3
  15. package/dist/constants/bridge.mjs.map +1 -1
  16. package/dist/constants/traces.cjs +1 -0
  17. package/dist/constants/traces.cjs.map +1 -1
  18. package/dist/constants/traces.d.cts +1 -0
  19. package/dist/constants/traces.d.cts.map +1 -1
  20. package/dist/constants/traces.d.mts +1 -0
  21. package/dist/constants/traces.d.mts.map +1 -1
  22. package/dist/constants/traces.mjs +1 -0
  23. package/dist/constants/traces.mjs.map +1 -1
  24. package/dist/index.cjs +4 -2
  25. package/dist/index.cjs.map +1 -1
  26. package/dist/index.d.cts +2 -2
  27. package/dist/index.d.cts.map +1 -1
  28. package/dist/index.d.mts +2 -2
  29. package/dist/index.d.mts.map +1 -1
  30. package/dist/index.mjs +2 -2
  31. package/dist/index.mjs.map +1 -1
  32. package/dist/selectors.cjs +89 -33
  33. package/dist/selectors.cjs.map +1 -1
  34. package/dist/selectors.d.cts +7163 -76
  35. package/dist/selectors.d.cts.map +1 -1
  36. package/dist/selectors.d.mts +7163 -76
  37. package/dist/selectors.d.mts.map +1 -1
  38. package/dist/selectors.mjs +88 -32
  39. package/dist/selectors.mjs.map +1 -1
  40. package/dist/types.cjs.map +1 -1
  41. package/dist/types.d.cts +6 -1
  42. package/dist/types.d.cts.map +1 -1
  43. package/dist/types.d.mts +6 -1
  44. package/dist/types.d.mts.map +1 -1
  45. package/dist/types.mjs.map +1 -1
  46. package/dist/utils/fetch.cjs +61 -17
  47. package/dist/utils/fetch.cjs.map +1 -1
  48. package/dist/utils/fetch.d.cts +3 -4
  49. package/dist/utils/fetch.d.cts.map +1 -1
  50. package/dist/utils/fetch.d.mts +3 -4
  51. package/dist/utils/fetch.d.mts.map +1 -1
  52. package/dist/utils/fetch.mjs +62 -18
  53. package/dist/utils/fetch.mjs.map +1 -1
  54. package/dist/utils/metrics/properties.cjs +1 -1
  55. package/dist/utils/metrics/properties.cjs.map +1 -1
  56. package/dist/utils/metrics/properties.mjs +1 -1
  57. package/dist/utils/metrics/properties.mjs.map +1 -1
  58. package/dist/utils/quote.cjs +3 -1
  59. package/dist/utils/quote.cjs.map +1 -1
  60. package/dist/utils/quote.d.cts +1 -0
  61. package/dist/utils/quote.d.cts.map +1 -1
  62. package/dist/utils/quote.d.mts +1 -0
  63. package/dist/utils/quote.d.mts.map +1 -1
  64. package/dist/utils/quote.mjs +1 -0
  65. package/dist/utils/quote.mjs.map +1 -1
  66. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.d.mts CHANGED
@@ -232,6 +232,11 @@ export type QuoteResponse<TxDataType = TxData | string | BitcoinTradeData | Tron
232
232
  * If defined, the quote's total network fee will include the reset approval's gas limit.
233
233
  */
234
234
  resetApproval?: TxData;
235
+ /**
236
+ * Appended to the quote if there are multiple quote requests in a batch. This
237
+ * indicates which quoteRequest the quote is for
238
+ */
239
+ quoteRequestIndex?: number;
235
240
  };
236
241
  export declare enum ChainId {
237
242
  ETH = 1,
@@ -279,7 +284,7 @@ export declare enum BridgeBackgroundAction {
279
284
  FETCH_QUOTES = "fetchQuotes"
280
285
  }
281
286
  export type BridgeControllerState = {
282
- quoteRequest: Partial<GenericQuoteRequest>;
287
+ quoteRequest: Partial<GenericQuoteRequest>[];
283
288
  quotes: (QuoteResponse & L1GasFees & NonEvmFees)[];
284
289
  /**
285
290
  * The time elapsed between the initial quote fetch and when the first valid quote was received
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAyDA;;GAEG;AACH,MAAM,CAAN,IAAY,SAYX;AAZD,WAAY,SAAS;IACnB,4DAA4D;IAC5D,8BAAiB,CAAA;IACjB,qBAAqB;IACrB,4BAAe,CAAA;IACf,kCAAkC;IAClC,wBAAW,CAAA;IACX;;;OAGG;IACH,gCAAmB,CAAA;AACrB,CAAC,EAZW,SAAS,KAAT,SAAS,QAYpB;AAkGD;;GAEG;AACH,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,wCAA2B,CAAA;IAC3B,wCAA2B,CAAA;AAC7B,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAyED,MAAM,CAAN,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,sCAAuB,CAAA;IACvB,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;IACnB,oCAAqB,CAAA;AACvB,CAAC,EANW,WAAW,KAAX,WAAW,QAMtB;AAoDD,MAAM,CAAN,IAAY,OAiBX;AAjBD,WAAY,OAAO;IACjB,mCAAO,CAAA;IACP,8CAAa,CAAA;IACb,oCAAQ,CAAA;IACR,6CAAa,CAAA;IACb,2CAAY,CAAA;IACZ,wCAAW,CAAA;IACX,iDAAgB,CAAA;IAChB,mDAAiB,CAAA;IACjB,2CAAa,CAAA;IACb,wDAAyB,CAAA;IACzB,gDAAoB,CAAA;IACpB,6CAAgB,CAAA;IAChB,sCAAU,CAAA;IACV,yCAAW,CAAA;IACX,+CAAc,CAAA;IACd,8CAAc,CAAA;AAChB,CAAC,EAjBW,OAAO,KAAP,OAAO,QAiBlB;AAQD,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,uDAAO,CAAA;IACP,uDAAO,CAAA;IACP,mDAAK,CAAA;AACP,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,6DAAyC,CAAA;IACzC,0EAAsD,CAAA;AACxD,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,sBAMX;AAND,WAAY,sBAAsB;IAChC,8EAAoD,CAAA;IACpD,oDAA0B,CAAA;IAC1B,iFAAuD,CAAA;IACvD,0EAAgD,CAAA;IAChD,sDAA4B,CAAA;AAC9B,CAAC,EANW,sBAAsB,KAAtB,sBAAsB,QAMjC","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport type { AccountsControllerGetAccountByAddressAction } from '@metamask/accounts-controller';\nimport type { AssetsControllerGetExchangeRatesForBridgeAction } from '@metamask/assets-controller';\nimport type {\n CurrencyRateControllerGetStateAction,\n MultichainAssetsRatesControllerGetStateAction,\n TokenRatesControllerGetStateAction,\n} from '@metamask/assets-controllers';\nimport type {\n ControllerGetStateAction,\n ControllerStateChangeEvent,\n} from '@metamask/base-controller';\nimport type { Messenger } from '@metamask/messenger';\nimport type {\n NetworkControllerFindNetworkClientIdByChainIdAction,\n NetworkControllerGetNetworkClientByIdAction,\n} from '@metamask/network-controller';\nimport type { AuthenticationControllerGetBearerTokenAction } from '@metamask/profile-sync-controller/auth';\nimport type { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote-feature-flag-controller';\nimport type { SnapControllerHandleRequestAction } from '@metamask/snaps-controllers';\nimport type { Infer } from '@metamask/superstruct';\nimport type {\n CaipAccountId,\n CaipAssetId,\n CaipAssetType,\n CaipChainId,\n Hex,\n} from '@metamask/utils';\n\nimport type { BridgeController } from './bridge-controller';\nimport type { BridgeControllerMethodActions } from './bridge-controller-method-action-types';\nimport type { BRIDGE_CONTROLLER_NAME } from './constants/bridge';\nimport type {\n BitcoinTradeDataSchema,\n BridgeAssetSchema,\n ChainConfigurationSchema,\n ChainRankingSchema,\n FeatureId,\n FeeDataSchema,\n IntentSchema,\n PlatformConfigSchema,\n ProtocolSchema,\n QuoteResponseSchema,\n QuoteSchema,\n StepSchema,\n TokenFeatureSchema,\n QuoteStreamCompleteSchema,\n TronTradeDataSchema,\n TxDataSchema,\n} from './utils/validators';\n\nexport type FetchFunction = (\n input: RequestInfo | URL | string,\n init?: RequestInit,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) => Promise<any>;\n\n/**\n * The types of assets that a user can send\n */\nexport enum AssetType {\n /** The native asset for the current network, such as ETH */\n native = 'NATIVE',\n /** An ERC20 token */\n token = 'TOKEN',\n /** An ERC721 or ERC1155 token. */\n NFT = 'NFT',\n /**\n * A transaction interacting with a contract that isn't a token method\n * interaction will be marked as dealing with an unknown asset type.\n */\n unknown = 'UNKNOWN',\n}\n\nexport type ChainConfiguration = Infer<typeof ChainConfigurationSchema>;\n\nexport type ChainRanking = Infer<typeof ChainRankingSchema>;\n\nexport type L1GasFees = {\n l1GasFeesInHexWei?: string; // l1 fees for approval and trade in hex wei, appended by BridgeController.#appendL1GasFees\n};\n\nexport type NonEvmFees = {\n nonEvmFeesInNative?: string; // Non-EVM chain fees in native units (SOL for Solana, BTC for Bitcoin)\n};\n\n/**\n * The types of values for the token amount and its values when converted to the user's selected currency and USD\n */\nexport type TokenAmountValues = {\n /**\n * The amount of the token\n *\n * @example \"1000000000000000000\"\n */\n amount: string;\n /**\n * The amount of the token in the user's selected currency\n *\n * @example \"4.55\"\n */\n valueInCurrency: string | null;\n /**\n * The amount of the token in USD\n *\n * @example \"1.234\"\n */\n usd: string | null;\n};\n\n/**\n * Asset exchange rate values for a given chain and address\n */\nexport type ExchangeRate = { exchangeRate?: string; usdExchangeRate?: string };\n\n/**\n * Values derived from the quote response\n */\nexport type QuoteMetadata = {\n /**\n * If gas is included, this is the value of the src or dest token that was used to pay for the gas.\n * Show this value to indicate transaction fees for gasless quotes.\n */\n includedTxFees?: TokenAmountValues | null;\n /**\n * The gas fee for the bridge transaction.\n * effective is the gas fee that is shown to the user. If this value is not\n * included in the trade, the calculation falls back to the gasLimit (total)\n * total is the gas fee that is spent by the user, including refunds.\n * max is the max gas fee that will be used by the transaction.\n */\n gasFee: Record<'effective' | 'total' | 'max', TokenAmountValues>;\n /**\n * The total network fee required to submit the trade and any approvals. This includes\n * the relayer fee or other native fees. Should be used for balance checks and tx submission.\n * Note: This is only accurate for non-gasless transactions. Use {@link QuoteMetadata.includedTxFees} to\n * get the total network fee for gasless transactions.\n */\n totalNetworkFee: TokenAmountValues; // estimatedGasFees + relayerFees\n totalMaxNetworkFee: TokenAmountValues; // maxGasFees + relayerFees\n /**\n * The amount that the user will receive (destTokenAmount)\n */\n toTokenAmount: TokenAmountValues;\n /**\n * The minimum amount that the user will receive (minDestTokenAmount)\n */\n minToTokenAmount: TokenAmountValues;\n /**\n * If gas is included: {@link QuoteMetadata.toTokenAmount} - {@link QuoteMetadata.includedTxFees}.\n * Otherwise: {@link QuoteMetadata.toTokenAmount} - {@link QuoteMetadata.totalNetworkFee}.\n */\n adjustedReturn: Omit<TokenAmountValues, 'amount'>;\n /**\n * The amount that the user will send, including fees that are paid in the src token\n * {@link Quote.srcTokenAmount} + {@link Quote.feeData[FeeType.METABRIDGE].amount} + {@link Quote.feeData[FeeType.TX_FEE].amount}\n */\n sentAmount: TokenAmountValues;\n /**\n * The swap rate is the amount that the user will receive per amount sent. Accounts for fees paid in the src or dest token.\n * This is calculated as {@link QuoteMetadata.toTokenAmount} / {@link QuoteMetadata.sentAmount}.\n */\n swapRate: string;\n /**\n * The cost of the trade, which is the difference between the amount sent and the adjusted return.\n * This is calculated as {@link QuoteMetadata.sentAmount} - {@link QuoteMetadata.adjustedReturn}.\n */\n cost: Omit<TokenAmountValues, 'amount'>; // sentAmount - adjustedReturn\n};\n\n/**\n * Sort order set by the user\n */\nexport enum SortOrder {\n COST_ASC = 'cost_ascending',\n ETA_ASC = 'time_descending',\n}\n\n/**\n * This is the interface for the asset object returned by the bridge-api\n * This type is used in the QuoteResponse and in the fetchBridgeTokens response\n */\nexport type BridgeAsset = Infer<typeof BridgeAssetSchema>;\n\n/**\n * This is the interface for the token object used in the extension client\n * In addition to the {@link BridgeAsset} fields, it includes balance information\n */\nexport type BridgeToken = {\n address: string;\n symbol: string;\n image: string;\n decimals: number;\n chainId: number | Hex | ChainId | CaipChainId;\n balance: string; // raw balance\n // TODO deprecate this field and use balance instead\n string: string | undefined; // normalized balance as a stringified number\n tokenFiatAmount?: number | null;\n occurrences?: number;\n};\n\ntype DecimalChainId = string;\nexport type GasMultiplierByChainId = Record<DecimalChainId, number>;\n\nexport type FeatureFlagResponse = Infer<typeof PlatformConfigSchema>;\n\n// TODO move definition to validators.ts\n/**\n * This is the interface for the quote request sent to the bridge-api\n * and should only be used by the fetchBridgeQuotes utility function\n * Components and redux stores should use the {@link GenericQuoteRequest} type\n */\nexport type QuoteRequest<\n ChainIdType = ChainId | number,\n TokenAddressType = string,\n WalletAddressType = string,\n> = {\n walletAddress: WalletAddressType;\n destWalletAddress?: WalletAddressType;\n srcChainId: ChainIdType;\n destChainId: ChainIdType;\n srcTokenAddress: TokenAddressType;\n destTokenAddress: TokenAddressType;\n /**\n * This is the amount sent, in atomic amount\n */\n srcTokenAmount: string;\n slippage?: number;\n aggIds?: string[];\n bridgeIds?: string[];\n insufficientBal?: boolean;\n resetApproval?: boolean;\n refuel?: boolean;\n /**\n * Whether the response should include gasless swap quotes\n * This should be true if the user has opted in to STX on the client\n * and the current network has STX support\n */\n gasIncluded: boolean;\n /**\n * Whether to request quotes that use EIP-7702 delegated gasless execution\n */\n gasIncluded7702: boolean;\n /**\n * The fee that will be charged by MetaMask\n */\n fee?: number;\n};\n\nexport enum StatusTypes {\n SUBMITTED = 'SUBMITTED',\n UNKNOWN = 'UNKNOWN',\n FAILED = 'FAILED',\n PENDING = 'PENDING',\n COMPLETE = 'COMPLETE',\n}\n\n/**\n * These are types that components pass in. Since data is a mix of types when coming from the redux store, we need to use a generic type that can cover all the types.\n * Payloads with this type are transformed into QuoteRequest by fetchBridgeQuotes right before fetching quotes\n */\nexport type GenericQuoteRequest = QuoteRequest<\n Hex | CaipChainId | string | number, // chainIds\n Hex | CaipAssetId | string, // assetIds/addresses\n Hex | CaipAccountId | string // accountIds/addresses\n>;\n\nexport type Protocol = Infer<typeof ProtocolSchema>;\n\nexport type Step = Infer<typeof StepSchema>;\n\nexport type RefuelData = Step;\n\nexport type FeeData = Infer<typeof FeeDataSchema>;\n\nexport type Quote = Infer<typeof QuoteSchema>;\n\nexport type TxData = Infer<typeof TxDataSchema>;\n\nexport type Intent = Infer<typeof IntentSchema>;\nexport type IntentOrderLike = Intent['order'];\n\nexport type BitcoinTradeData = Infer<typeof BitcoinTradeDataSchema>;\n\nexport type TronTradeData = Infer<typeof TronTradeDataSchema>;\n/**\n * This is the type for the quote response from the bridge-api\n * TxDataType can be overriden to be a string when the quote is non-evm\n * ApprovalType can be overriden when you know the specific approval type (e.g., TxData for EVM-only contexts)\n */\nexport type QuoteResponse<\n TxDataType = TxData | string | BitcoinTradeData | TronTradeData,\n ApprovalType = TxData | TronTradeData,\n> = Infer<typeof QuoteResponseSchema> & {\n trade: TxDataType;\n approval?: ApprovalType;\n /**\n * Appended to the quote response based on the quote request\n */\n featureId?: FeatureId;\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\nexport enum ChainId {\n ETH = 1,\n OPTIMISM = 10,\n BSC = 56,\n POLYGON = 137,\n ZKSYNC = 324,\n BASE = 8453,\n ARBITRUM = 42161,\n AVALANCHE = 43114,\n LINEA = 59144,\n SOLANA = 1151111081099710,\n BTC = 20000000000001,\n TRON = 728126428,\n SEI = 1329,\n MONAD = 143,\n HYPEREVM = 999,\n MEGAETH = 4326,\n}\n\nexport type FeatureFlagsPlatformConfig = Infer<typeof PlatformConfigSchema>;\n\nexport type TokenFeature = Infer<typeof TokenFeatureSchema>;\n\nexport type QuoteStreamCompleteData = Infer<typeof QuoteStreamCompleteSchema>;\n\nexport enum RequestStatus {\n LOADING,\n FETCHED,\n ERROR,\n}\n\n/**\n * @deprecated Use the separate method action types (e.g.,\n * `BridgeControllerFetchQuotesAction`) instead.\n */\nexport enum BridgeUserAction {\n SELECT_DEST_NETWORK = 'selectDestNetwork',\n UPDATE_QUOTE_PARAMS = 'updateBridgeQuoteRequestParams',\n}\n\n/**\n * @deprecated Use the separate method action types (e.g.,\n * `BridgeControllerFetchQuotesAction`) instead.\n */\nexport enum BridgeBackgroundAction {\n SET_CHAIN_INTERVAL_LENGTH = 'setChainIntervalLength',\n RESET_STATE = 'resetState',\n TRACK_METAMETRICS_EVENT = 'trackUnifiedSwapBridgeEvent',\n STOP_POLLING_FOR_QUOTES = 'stopPollingForQuotes',\n FETCH_QUOTES = 'fetchQuotes',\n}\n\nexport type BridgeControllerState = {\n quoteRequest: Partial<GenericQuoteRequest>;\n quotes: (QuoteResponse & L1GasFees & NonEvmFees)[];\n /**\n * The time elapsed between the initial quote fetch and when the first valid quote was received\n */\n quotesInitialLoadTime: number | null;\n /**\n * The timestamp of when the latest quote fetch started\n */\n quotesLastFetched: number | null;\n /**\n * The status of the quote fetch, including fee calculations and validations\n * This is set to\n * - LOADING when the quote fetch starts\n * - FETCHED when the process completes successfully, including when quotes are empty\n * - ERROR when any errors occur\n *\n * When SSE is enabled, this is set to LOADING even when a quote is available. It is only\n * set to FETCHED when the stream is closed and all quotes have been received\n */\n quotesLoadingStatus: RequestStatus | null;\n quoteFetchError: string | null;\n /**\n * The number of times the quotes have been refreshed, starts at 0 and is\n * incremented at the end of each quote fetch\n */\n quotesRefreshCount: number;\n /**\n * Asset exchange rates for EVM and multichain assets that are not indexed by the assets controllers\n */\n assetExchangeRates: Record<CaipAssetType, ExchangeRate>;\n /**\n * When the src token is SOL, this needs to be subtracted from their balance to determine\n * the max amount that can be sent.\n */\n minimumBalanceForRentExemptionInLamports: string | null;\n /**\n * Security alerts for the destination token in the current quote request,\n * populated from `token_warning` SSE events.\n */\n tokenWarnings: TokenFeature[];\n /**\n * Client-supplied security classification for the destination token in the\n * current quote request, used as the `token_security_type_destination`\n * analytics property. Set via the `context` arg of\n * `updateBridgeQuoteRequestParams` and reset whenever the quote request is\n * reset. `null` when the client has no security data for the token.\n */\n tokenSecurityTypeDestination: string | null;\n /**\n * Metadata about the completed quote stream, populated from the `complete` SSE event.\n * Set to null at the start of each fetch and updated when the complete event is received.\n */\n quoteStreamComplete: QuoteStreamCompleteData | null;\n};\n\n/**\n * @deprecated Use the separate method action types (e.g.,\n * `BridgeControllerFetchQuotesAction`) instead.\n */\nexport type BridgeControllerAction<\n FunctionName extends keyof BridgeController,\n> = {\n type: `${typeof BRIDGE_CONTROLLER_NAME}:${FunctionName}`;\n handler: BridgeController[FunctionName];\n};\n\nexport type BridgeControllerGetStateAction = ControllerGetStateAction<\n typeof BRIDGE_CONTROLLER_NAME,\n BridgeControllerState\n>;\n\nexport type BridgeControllerStateChangeEvent = ControllerStateChangeEvent<\n typeof BRIDGE_CONTROLLER_NAME,\n BridgeControllerState\n>;\n\nexport type BridgeControllerActions =\n | BridgeControllerGetStateAction\n | BridgeControllerMethodActions;\n\nexport type BridgeControllerEvents = BridgeControllerStateChangeEvent;\n\nexport type AllowedActions =\n | AccountsControllerGetAccountByAddressAction\n | AuthenticationControllerGetBearerTokenAction\n | CurrencyRateControllerGetStateAction\n | TokenRatesControllerGetStateAction\n | MultichainAssetsRatesControllerGetStateAction\n | SnapControllerHandleRequestAction\n | NetworkControllerFindNetworkClientIdByChainIdAction\n | NetworkControllerGetNetworkClientByIdAction\n | RemoteFeatureFlagControllerGetStateAction\n | AssetsControllerGetExchangeRatesForBridgeAction;\nexport type AllowedEvents = never;\n\n/**\n * The messenger for the BridgeController.\n */\nexport type BridgeControllerMessenger = Messenger<\n typeof BRIDGE_CONTROLLER_NAME,\n BridgeControllerActions | AllowedActions,\n BridgeControllerEvents | AllowedEvents\n>;\n"]}
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAyDA;;GAEG;AACH,MAAM,CAAN,IAAY,SAYX;AAZD,WAAY,SAAS;IACnB,4DAA4D;IAC5D,8BAAiB,CAAA;IACjB,qBAAqB;IACrB,4BAAe,CAAA;IACf,kCAAkC;IAClC,wBAAW,CAAA;IACX;;;OAGG;IACH,gCAAmB,CAAA;AACrB,CAAC,EAZW,SAAS,KAAT,SAAS,QAYpB;AAkGD;;GAEG;AACH,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,wCAA2B,CAAA;IAC3B,wCAA2B,CAAA;AAC7B,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAyED,MAAM,CAAN,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,sCAAuB,CAAA;IACvB,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;IACnB,oCAAqB,CAAA;AACvB,CAAC,EANW,WAAW,KAAX,WAAW,QAMtB;AAyDD,MAAM,CAAN,IAAY,OAiBX;AAjBD,WAAY,OAAO;IACjB,mCAAO,CAAA;IACP,8CAAa,CAAA;IACb,oCAAQ,CAAA;IACR,6CAAa,CAAA;IACb,2CAAY,CAAA;IACZ,wCAAW,CAAA;IACX,iDAAgB,CAAA;IAChB,mDAAiB,CAAA;IACjB,2CAAa,CAAA;IACb,wDAAyB,CAAA;IACzB,gDAAoB,CAAA;IACpB,6CAAgB,CAAA;IAChB,sCAAU,CAAA;IACV,yCAAW,CAAA;IACX,+CAAc,CAAA;IACd,8CAAc,CAAA;AAChB,CAAC,EAjBW,OAAO,KAAP,OAAO,QAiBlB;AAQD,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,uDAAO,CAAA;IACP,uDAAO,CAAA;IACP,mDAAK,CAAA;AACP,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,6DAAyC,CAAA;IACzC,0EAAsD,CAAA;AACxD,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,sBAMX;AAND,WAAY,sBAAsB;IAChC,8EAAoD,CAAA;IACpD,oDAA0B,CAAA;IAC1B,iFAAuD,CAAA;IACvD,0EAAgD,CAAA;IAChD,sDAA4B,CAAA;AAC9B,CAAC,EANW,sBAAsB,KAAtB,sBAAsB,QAMjC","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport type { AccountsControllerGetAccountByAddressAction } from '@metamask/accounts-controller';\nimport type { AssetsControllerGetExchangeRatesForBridgeAction } from '@metamask/assets-controller';\nimport type {\n CurrencyRateControllerGetStateAction,\n MultichainAssetsRatesControllerGetStateAction,\n TokenRatesControllerGetStateAction,\n} from '@metamask/assets-controllers';\nimport type {\n ControllerGetStateAction,\n ControllerStateChangeEvent,\n} from '@metamask/base-controller';\nimport type { Messenger } from '@metamask/messenger';\nimport type {\n NetworkControllerFindNetworkClientIdByChainIdAction,\n NetworkControllerGetNetworkClientByIdAction,\n} from '@metamask/network-controller';\nimport type { AuthenticationControllerGetBearerTokenAction } from '@metamask/profile-sync-controller/auth';\nimport type { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote-feature-flag-controller';\nimport type { SnapControllerHandleRequestAction } from '@metamask/snaps-controllers';\nimport type { Infer } from '@metamask/superstruct';\nimport type {\n CaipAccountId,\n CaipAssetId,\n CaipAssetType,\n CaipChainId,\n Hex,\n} from '@metamask/utils';\n\nimport type { BridgeController } from './bridge-controller';\nimport type { BridgeControllerMethodActions } from './bridge-controller-method-action-types';\nimport type { BRIDGE_CONTROLLER_NAME } from './constants/bridge';\nimport type {\n BitcoinTradeDataSchema,\n BridgeAssetSchema,\n ChainConfigurationSchema,\n ChainRankingSchema,\n FeatureId,\n FeeDataSchema,\n IntentSchema,\n PlatformConfigSchema,\n ProtocolSchema,\n QuoteResponseSchema,\n QuoteSchema,\n StepSchema,\n TokenFeatureSchema,\n QuoteStreamCompleteSchema,\n TronTradeDataSchema,\n TxDataSchema,\n} from './utils/validators';\n\nexport type FetchFunction = (\n input: RequestInfo | URL | string,\n init?: RequestInit,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) => Promise<any>;\n\n/**\n * The types of assets that a user can send\n */\nexport enum AssetType {\n /** The native asset for the current network, such as ETH */\n native = 'NATIVE',\n /** An ERC20 token */\n token = 'TOKEN',\n /** An ERC721 or ERC1155 token. */\n NFT = 'NFT',\n /**\n * A transaction interacting with a contract that isn't a token method\n * interaction will be marked as dealing with an unknown asset type.\n */\n unknown = 'UNKNOWN',\n}\n\nexport type ChainConfiguration = Infer<typeof ChainConfigurationSchema>;\n\nexport type ChainRanking = Infer<typeof ChainRankingSchema>;\n\nexport type L1GasFees = {\n l1GasFeesInHexWei?: string; // l1 fees for approval and trade in hex wei, appended by BridgeController.#appendL1GasFees\n};\n\nexport type NonEvmFees = {\n nonEvmFeesInNative?: string; // Non-EVM chain fees in native units (SOL for Solana, BTC for Bitcoin)\n};\n\n/**\n * The types of values for the token amount and its values when converted to the user's selected currency and USD\n */\nexport type TokenAmountValues = {\n /**\n * The amount of the token\n *\n * @example \"1000000000000000000\"\n */\n amount: string;\n /**\n * The amount of the token in the user's selected currency\n *\n * @example \"4.55\"\n */\n valueInCurrency: string | null;\n /**\n * The amount of the token in USD\n *\n * @example \"1.234\"\n */\n usd: string | null;\n};\n\n/**\n * Asset exchange rate values for a given chain and address\n */\nexport type ExchangeRate = { exchangeRate?: string; usdExchangeRate?: string };\n\n/**\n * Values derived from the quote response\n */\nexport type QuoteMetadata = {\n /**\n * If gas is included, this is the value of the src or dest token that was used to pay for the gas.\n * Show this value to indicate transaction fees for gasless quotes.\n */\n includedTxFees?: TokenAmountValues | null;\n /**\n * The gas fee for the bridge transaction.\n * effective is the gas fee that is shown to the user. If this value is not\n * included in the trade, the calculation falls back to the gasLimit (total)\n * total is the gas fee that is spent by the user, including refunds.\n * max is the max gas fee that will be used by the transaction.\n */\n gasFee: Record<'effective' | 'total' | 'max', TokenAmountValues>;\n /**\n * The total network fee required to submit the trade and any approvals. This includes\n * the relayer fee or other native fees. Should be used for balance checks and tx submission.\n * Note: This is only accurate for non-gasless transactions. Use {@link QuoteMetadata.includedTxFees} to\n * get the total network fee for gasless transactions.\n */\n totalNetworkFee: TokenAmountValues; // estimatedGasFees + relayerFees\n totalMaxNetworkFee: TokenAmountValues; // maxGasFees + relayerFees\n /**\n * The amount that the user will receive (destTokenAmount)\n */\n toTokenAmount: TokenAmountValues;\n /**\n * The minimum amount that the user will receive (minDestTokenAmount)\n */\n minToTokenAmount: TokenAmountValues;\n /**\n * If gas is included: {@link QuoteMetadata.toTokenAmount} - {@link QuoteMetadata.includedTxFees}.\n * Otherwise: {@link QuoteMetadata.toTokenAmount} - {@link QuoteMetadata.totalNetworkFee}.\n */\n adjustedReturn: Omit<TokenAmountValues, 'amount'>;\n /**\n * The amount that the user will send, including fees that are paid in the src token\n * {@link Quote.srcTokenAmount} + {@link Quote.feeData[FeeType.METABRIDGE].amount} + {@link Quote.feeData[FeeType.TX_FEE].amount}\n */\n sentAmount: TokenAmountValues;\n /**\n * The swap rate is the amount that the user will receive per amount sent. Accounts for fees paid in the src or dest token.\n * This is calculated as {@link QuoteMetadata.toTokenAmount} / {@link QuoteMetadata.sentAmount}.\n */\n swapRate: string;\n /**\n * The cost of the trade, which is the difference between the amount sent and the adjusted return.\n * This is calculated as {@link QuoteMetadata.sentAmount} - {@link QuoteMetadata.adjustedReturn}.\n */\n cost: Omit<TokenAmountValues, 'amount'>; // sentAmount - adjustedReturn\n};\n\n/**\n * Sort order set by the user\n */\nexport enum SortOrder {\n COST_ASC = 'cost_ascending',\n ETA_ASC = 'time_descending',\n}\n\n/**\n * This is the interface for the asset object returned by the bridge-api\n * This type is used in the QuoteResponse and in the fetchBridgeTokens response\n */\nexport type BridgeAsset = Infer<typeof BridgeAssetSchema>;\n\n/**\n * This is the interface for the token object used in the extension client\n * In addition to the {@link BridgeAsset} fields, it includes balance information\n */\nexport type BridgeToken = {\n address: string;\n symbol: string;\n image: string;\n decimals: number;\n chainId: number | Hex | ChainId | CaipChainId;\n balance: string; // raw balance\n // TODO deprecate this field and use balance instead\n string: string | undefined; // normalized balance as a stringified number\n tokenFiatAmount?: number | null;\n occurrences?: number;\n};\n\ntype DecimalChainId = string;\nexport type GasMultiplierByChainId = Record<DecimalChainId, number>;\n\nexport type FeatureFlagResponse = Infer<typeof PlatformConfigSchema>;\n\n// TODO move definition to validators.ts\n/**\n * This is the interface for the quote request sent to the bridge-api\n * and should only be used by the fetchBridgeQuotes utility function\n * Components and redux stores should use the {@link GenericQuoteRequest} type\n */\nexport type QuoteRequest<\n ChainIdType = ChainId | number,\n TokenAddressType = string,\n WalletAddressType = string,\n> = {\n walletAddress: WalletAddressType;\n destWalletAddress?: WalletAddressType;\n srcChainId: ChainIdType;\n destChainId: ChainIdType;\n srcTokenAddress: TokenAddressType;\n destTokenAddress: TokenAddressType;\n /**\n * This is the amount sent, in atomic amount\n */\n srcTokenAmount: string;\n slippage?: number;\n aggIds?: string[];\n bridgeIds?: string[];\n insufficientBal?: boolean;\n resetApproval?: boolean;\n refuel?: boolean;\n /**\n * Whether the response should include gasless swap quotes\n * This should be true if the user has opted in to STX on the client\n * and the current network has STX support\n */\n gasIncluded: boolean;\n /**\n * Whether to request quotes that use EIP-7702 delegated gasless execution\n */\n gasIncluded7702: boolean;\n /**\n * The fee that will be charged by MetaMask\n */\n fee?: number;\n};\n\nexport enum StatusTypes {\n SUBMITTED = 'SUBMITTED',\n UNKNOWN = 'UNKNOWN',\n FAILED = 'FAILED',\n PENDING = 'PENDING',\n COMPLETE = 'COMPLETE',\n}\n\n/**\n * These are types that components pass in. Since data is a mix of types when coming from the redux store, we need to use a generic type that can cover all the types.\n * Payloads with this type are transformed into QuoteRequest by fetchBridgeQuotes right before fetching quotes\n */\nexport type GenericQuoteRequest = QuoteRequest<\n Hex | CaipChainId | string | number, // chainIds\n Hex | CaipAssetId | string, // assetIds/addresses\n Hex | CaipAccountId | string // accountIds/addresses\n>;\n\nexport type Protocol = Infer<typeof ProtocolSchema>;\n\nexport type Step = Infer<typeof StepSchema>;\n\nexport type RefuelData = Step;\n\nexport type FeeData = Infer<typeof FeeDataSchema>;\n\nexport type Quote = Infer<typeof QuoteSchema>;\n\nexport type TxData = Infer<typeof TxDataSchema>;\n\nexport type Intent = Infer<typeof IntentSchema>;\nexport type IntentOrderLike = Intent['order'];\n\nexport type BitcoinTradeData = Infer<typeof BitcoinTradeDataSchema>;\n\nexport type TronTradeData = Infer<typeof TronTradeDataSchema>;\n/**\n * This is the type for the quote response from the bridge-api\n * TxDataType can be overriden to be a string when the quote is non-evm\n * ApprovalType can be overriden when you know the specific approval type (e.g., TxData for EVM-only contexts)\n */\nexport type QuoteResponse<\n TxDataType = TxData | string | BitcoinTradeData | TronTradeData,\n ApprovalType = TxData | TronTradeData,\n> = Infer<typeof QuoteResponseSchema> & {\n trade: TxDataType;\n approval?: ApprovalType;\n /**\n * Appended to the quote response based on the quote request\n */\n featureId?: FeatureId;\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 * 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?: number;\n};\n\nexport enum ChainId {\n ETH = 1,\n OPTIMISM = 10,\n BSC = 56,\n POLYGON = 137,\n ZKSYNC = 324,\n BASE = 8453,\n ARBITRUM = 42161,\n AVALANCHE = 43114,\n LINEA = 59144,\n SOLANA = 1151111081099710,\n BTC = 20000000000001,\n TRON = 728126428,\n SEI = 1329,\n MONAD = 143,\n HYPEREVM = 999,\n MEGAETH = 4326,\n}\n\nexport type FeatureFlagsPlatformConfig = Infer<typeof PlatformConfigSchema>;\n\nexport type TokenFeature = Infer<typeof TokenFeatureSchema>;\n\nexport type QuoteStreamCompleteData = Infer<typeof QuoteStreamCompleteSchema>;\n\nexport enum RequestStatus {\n LOADING,\n FETCHED,\n ERROR,\n}\n\n/**\n * @deprecated Use the separate method action types (e.g.,\n * `BridgeControllerFetchQuotesAction`) instead.\n */\nexport enum BridgeUserAction {\n SELECT_DEST_NETWORK = 'selectDestNetwork',\n UPDATE_QUOTE_PARAMS = 'updateBridgeQuoteRequestParams',\n}\n\n/**\n * @deprecated Use the separate method action types (e.g.,\n * `BridgeControllerFetchQuotesAction`) instead.\n */\nexport enum BridgeBackgroundAction {\n SET_CHAIN_INTERVAL_LENGTH = 'setChainIntervalLength',\n RESET_STATE = 'resetState',\n TRACK_METAMETRICS_EVENT = 'trackUnifiedSwapBridgeEvent',\n STOP_POLLING_FOR_QUOTES = 'stopPollingForQuotes',\n FETCH_QUOTES = 'fetchQuotes',\n}\n\nexport type BridgeControllerState = {\n quoteRequest: Partial<GenericQuoteRequest>[];\n quotes: (QuoteResponse & L1GasFees & NonEvmFees)[];\n /**\n * The time elapsed between the initial quote fetch and when the first valid quote was received\n */\n quotesInitialLoadTime: number | null;\n /**\n * The timestamp of when the latest quote fetch started\n */\n quotesLastFetched: number | null;\n /**\n * The status of the quote fetch, including fee calculations and validations\n * This is set to\n * - LOADING when the quote fetch starts\n * - FETCHED when the process completes successfully, including when quotes are empty\n * - ERROR when any errors occur\n *\n * When SSE is enabled, this is set to LOADING even when a quote is available. It is only\n * set to FETCHED when the stream is closed and all quotes have been received\n */\n quotesLoadingStatus: RequestStatus | null;\n quoteFetchError: string | null;\n /**\n * The number of times the quotes have been refreshed, starts at 0 and is\n * incremented at the end of each quote fetch\n */\n quotesRefreshCount: number;\n /**\n * Asset exchange rates for EVM and multichain assets that are not indexed by the assets controllers\n */\n assetExchangeRates: Record<CaipAssetType, ExchangeRate>;\n /**\n * When the src token is SOL, this needs to be subtracted from their balance to determine\n * the max amount that can be sent.\n */\n minimumBalanceForRentExemptionInLamports: string | null;\n /**\n * Security alerts for the destination token in the current quote request,\n * populated from `token_warning` SSE events.\n */\n tokenWarnings: TokenFeature[];\n /**\n * Client-supplied security classification for the destination token in the\n * current quote request, used as the `token_security_type_destination`\n * analytics property. Set via the `context` arg of\n * `updateBridgeQuoteRequestParams` and reset whenever the quote request is\n * reset. `null` when the client has no security data for the token.\n */\n tokenSecurityTypeDestination: string | null;\n /**\n * Metadata about the completed quote stream, populated from the `complete` SSE event.\n * Set to null at the start of each fetch and updated when the complete event is received.\n */\n quoteStreamComplete: QuoteStreamCompleteData | null;\n};\n\n/**\n * @deprecated Use the separate method action types (e.g.,\n * `BridgeControllerFetchQuotesAction`) instead.\n */\nexport type BridgeControllerAction<\n FunctionName extends keyof BridgeController,\n> = {\n type: `${typeof BRIDGE_CONTROLLER_NAME}:${FunctionName}`;\n handler: BridgeController[FunctionName];\n};\n\nexport type BridgeControllerGetStateAction = ControllerGetStateAction<\n typeof BRIDGE_CONTROLLER_NAME,\n BridgeControllerState\n>;\n\nexport type BridgeControllerStateChangeEvent = ControllerStateChangeEvent<\n typeof BRIDGE_CONTROLLER_NAME,\n BridgeControllerState\n>;\n\nexport type BridgeControllerActions =\n | BridgeControllerGetStateAction\n | BridgeControllerMethodActions;\n\nexport type BridgeControllerEvents = BridgeControllerStateChangeEvent;\n\nexport type AllowedActions =\n | AccountsControllerGetAccountByAddressAction\n | AuthenticationControllerGetBearerTokenAction\n | CurrencyRateControllerGetStateAction\n | TokenRatesControllerGetStateAction\n | MultichainAssetsRatesControllerGetStateAction\n | SnapControllerHandleRequestAction\n | NetworkControllerFindNetworkClientIdByChainIdAction\n | NetworkControllerGetNetworkClientByIdAction\n | RemoteFeatureFlagControllerGetStateAction\n | AssetsControllerGetExchangeRatesForBridgeAction;\nexport type AllowedEvents = never;\n\n/**\n * The messenger for the BridgeController.\n */\nexport type BridgeControllerMessenger = Messenger<\n typeof BRIDGE_CONTROLLER_NAME,\n BridgeControllerActions | AllowedActions,\n BridgeControllerEvents | AllowedEvents\n>;\n"]}
@@ -45,12 +45,12 @@ async function fetchBridgeTokens(chainId, clientId, jwt, fetchFn, bridgeApiBaseU
45
45
  }
46
46
  exports.fetchBridgeTokens = fetchBridgeTokens;
47
47
  /**
48
- * Converts the generic quote request to the type that the bridge-api expects
48
+ * Converts the generic quote request to QuoteRequest
49
49
  *
50
50
  * @param request - The quote request
51
- * @returns A URLSearchParams object with the query parameters
51
+ * @returns A QuoteRequest object
52
52
  */
53
- const formatQueryParams = (request) => {
53
+ const formatQuoteRequest = (request) => {
54
54
  const destWalletAddress = request.destWalletAddress ?? request.walletAddress;
55
55
  // Transform the generic quote request into QuoteRequest
56
56
  const normalizedRequest = {
@@ -78,6 +78,15 @@ const formatQueryParams = (request) => {
78
78
  if (request.bridgeIds && request.bridgeIds.length > 0) {
79
79
  normalizedRequest.bridgeIds = request.bridgeIds;
80
80
  }
81
+ return normalizedRequest;
82
+ };
83
+ /**
84
+ * Converts the generic quote request to the type that the bridge-api expects
85
+ *
86
+ * @param normalizedRequest - The normalized quote request
87
+ * @returns A URLSearchParams object with the query parameters
88
+ */
89
+ const formatQueryParams = (normalizedRequest) => {
81
90
  const queryParams = new URLSearchParams();
82
91
  Object.entries(normalizedRequest).forEach(([key, value]) => {
83
92
  queryParams.append(key, value.toString());
@@ -98,7 +107,8 @@ const formatQueryParams = (request) => {
98
107
  * @returns A list of bridge tx quotes
99
108
  */
100
109
  async function fetchBridgeQuotes(request, signal, clientId, jwt, fetchFn, bridgeApiBaseUrl, featureId, clientVersion) {
101
- const queryParams = formatQueryParams(request);
110
+ const normalizedRequest = formatQuoteRequest(request);
111
+ const queryParams = formatQueryParams(normalizedRequest);
102
112
  const url = `${bridgeApiBaseUrl}/getQuote?${queryParams}`;
103
113
  const quotes = await fetchFn(url, {
104
114
  headers: (0, exports.getClientHeaders)({ clientId, clientVersion, jwt }),
@@ -206,12 +216,13 @@ const fetchAssetPrices = async (request) => {
206
216
  return combinedPrices;
207
217
  };
208
218
  exports.fetchAssetPrices = fetchAssetPrices;
219
+ const getQuoteRequestId = ({ srcChainId, destChainId, srcTokenAddress, destTokenAddress, }) => `${(0, caip_formatters_1.formatAddressToAssetId)(srcTokenAddress, srcChainId)}-${(0, caip_formatters_1.formatAddressToAssetId)(destTokenAddress, destChainId)}`;
220
+ const getQuoteResponseId = ({ srcAsset: { address: srcTokenAddress, chainId: srcChainId }, destAsset: { address: destTokenAddress, chainId: destChainId }, }) => `${(0, caip_formatters_1.formatAddressToAssetId)(srcTokenAddress, srcChainId)}-${(0, caip_formatters_1.formatAddressToAssetId)(destTokenAddress, destChainId)}`;
209
221
  /**
210
- * Converts the generic quote request to the type that the bridge-api expects
211
- * then fetches quotes from the bridge-api
222
+ * Fetches quotes from the bridge-api
212
223
  *
213
224
  * @param fetchFn - The fetch function to use
214
- * @param request - The quote request
225
+ * @param quoteRequests - An array of GenericQuoteRequest objects
215
226
  * @param signal - The abort signal
216
227
  * @param clientId - The client ID for metrics
217
228
  * @param jwt - The JWT token for authentication
@@ -225,23 +236,39 @@ exports.fetchAssetPrices = fetchAssetPrices;
225
236
  * @param clientVersion - The client version for metrics (optional)
226
237
  * @returns A list of bridge tx quote promises
227
238
  */
228
- async function fetchBridgeQuoteStream(fetchFn, request, signal, clientId, jwt, bridgeApiBaseUrl, serverEventHandlers, clientVersion) {
229
- const queryParams = formatQueryParams(request);
239
+ async function fetchBridgeQuoteStream(fetchFn, quoteRequests, signal, clientId, jwt, bridgeApiBaseUrl, serverEventHandlers, clientVersion) {
240
+ /**
241
+ * If the request includes multiple quote requests, it is a batch sell request.
242
+ * A batch sell consists of multiple swaps that are executed in a single tx submission.
243
+ */
244
+ const isBatchSellRequest = quoteRequests.length > 1;
245
+ const normalizedQuoteRequests = quoteRequests.map(formatQuoteRequest);
246
+ const quoteRequestIds = isBatchSellRequest
247
+ ? normalizedQuoteRequests.map(getQuoteRequestId)
248
+ : undefined;
230
249
  const onQuoteReceived = async (quoteResponse) => {
231
250
  const uniqueValidationFailures = new Set([]);
232
251
  try {
233
252
  if ((0, validators_1.validateQuoteResponse)(quoteResponse)) {
253
+ // Fallback to 0 if the quote doesn't match any requests
254
+ const matchedQuoteRequestIdx = Math.max(quoteRequestIds?.findIndex((id) => {
255
+ return id === getQuoteResponseId(quoteResponse.quote);
256
+ }) ?? 0, 0);
257
+ const matchingQuoteRequest = normalizedQuoteRequests[matchedQuoteRequestIdx];
234
258
  return await serverEventHandlers.onValidQuoteReceived({
235
259
  ...quoteResponse,
236
260
  // Append the reset approval data to the quote response if the request has resetApproval set to true and the quote has an approval
237
- resetApproval: request.resetApproval &&
261
+ resetApproval: matchingQuoteRequest.resetApproval &&
238
262
  quoteResponse.approval &&
239
263
  (0, trade_utils_1.isEvmTxData)(quoteResponse.approval)
240
264
  ? {
241
265
  ...quoteResponse.approval,
242
- data: (0, bridge_1.getEthUsdtResetData)(request.destChainId),
266
+ data: (0, bridge_1.getEthUsdtResetData)(matchingQuoteRequest.destChainId),
243
267
  }
244
268
  : undefined,
269
+ ...(isBatchSellRequest && {
270
+ quoteRequestIndex: matchedQuoteRequestIdx,
271
+ }),
245
272
  });
246
273
  }
247
274
  }
@@ -299,12 +326,7 @@ async function fetchBridgeQuoteStream(fetchFn, request, signal, clientId, jwt, b
299
326
  return undefined;
300
327
  }
301
328
  };
302
- const urlStream = `${bridgeApiBaseUrl}/getQuoteStream?${queryParams}`;
303
- await (0, fetch_server_events_1.fetchServerEvents)(urlStream, {
304
- headers: {
305
- ...(0, exports.getClientHeaders)({ clientId, clientVersion, jwt }),
306
- 'Content-Type': 'text/event-stream',
307
- },
329
+ const sharedFetchOptions = {
308
330
  signal,
309
331
  onMessage,
310
332
  onError: (error) => {
@@ -315,6 +337,28 @@ async function fetchBridgeQuoteStream(fetchFn, request, signal, clientId, jwt, b
315
337
  await serverEventHandlers.onClose();
316
338
  },
317
339
  fetchFn,
340
+ };
341
+ if (isBatchSellRequest) {
342
+ const urlStream = `${bridgeApiBaseUrl}/getBatchQuoteStream`;
343
+ await (0, fetch_server_events_1.fetchServerEvents)(urlStream, {
344
+ method: 'POST',
345
+ body: JSON.stringify({ requests: normalizedQuoteRequests }),
346
+ headers: {
347
+ ...(0, exports.getClientHeaders)({ clientId, clientVersion, jwt }),
348
+ 'Content-Type': 'application/json',
349
+ },
350
+ ...sharedFetchOptions,
351
+ });
352
+ return;
353
+ }
354
+ const queryParams = formatQueryParams(normalizedQuoteRequests[0]);
355
+ const urlStream = `${bridgeApiBaseUrl}/getQuoteStream?${queryParams}`;
356
+ await (0, fetch_server_events_1.fetchServerEvents)(urlStream, {
357
+ headers: {
358
+ ...(0, exports.getClientHeaders)({ clientId, clientVersion, jwt }),
359
+ 'Content-Type': 'text/event-stream',
360
+ },
361
+ ...sharedFetchOptions,
318
362
  });
319
363
  }
320
364
  exports.fetchBridgeQuoteStream = fetchBridgeQuoteStream;
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.cjs","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport { StructError } from '@metamask/superstruct';\nimport type { CaipAssetType, CaipChainId, Hex } from '@metamask/utils';\n\nimport type {\n QuoteResponse,\n FetchFunction,\n GenericQuoteRequest,\n QuoteRequest,\n BridgeAsset,\n TokenFeature,\n QuoteStreamCompleteData,\n} from '../types';\nimport { getEthUsdtResetData } from './bridge';\nimport {\n formatAddressToCaipReference,\n formatChainIdToDec,\n} from './caip-formatters';\nimport { fetchServerEvents } from './fetch-server-events';\nimport { isEvmTxData } from './trade-utils';\nimport type { FeatureId } from './validators';\nimport {\n validateQuoteResponse,\n validateSwapsTokenObject,\n validateTokenFeature,\n validateQuoteStreamComplete,\n} from './validators';\n\nexport const getClientHeaders = ({\n clientId,\n clientVersion,\n jwt,\n}: {\n clientId: string;\n clientVersion?: string;\n jwt?: string;\n}) => ({\n 'X-Client-Id': clientId,\n ...(jwt ? { Authorization: `Bearer ${jwt}` } : {}),\n ...(clientVersion ? { 'Client-Version': clientVersion } : {}),\n});\n\n/**\n * Returns a list of enabled (unblocked) tokens\n *\n * @deprecated Use the popular and search bridge-api endpoints instead\n *\n * @param chainId - The chain ID to fetch tokens for\n * @param clientId - The client ID for metrics\n * @param jwt - The JWT token for authentication\n * @param fetchFn - The fetch function to use\n * @param bridgeApiBaseUrl - The base URL for the bridge API\n * @param clientVersion - The client version for metrics (optional)\n * @returns A list of enabled (unblocked) tokens\n */\nexport async function fetchBridgeTokens(\n chainId: Hex | CaipChainId,\n clientId: string,\n jwt: string | undefined,\n fetchFn: FetchFunction,\n bridgeApiBaseUrl: string,\n clientVersion?: string,\n): Promise<Record<string, BridgeAsset>> {\n const url = `${bridgeApiBaseUrl}/getTokens?chainId=${formatChainIdToDec(chainId)}`;\n\n // TODO we will need to cache these. In Extension fetchWithCache is used. This is due to the following:\n // If we allow selecting dest networks which the user has not imported,\n // note that the Assets controller won't be able to provide tokens. In extension we fetch+cache the token list from bridge-api to handle this\n const tokens = await fetchFn(url, {\n headers: getClientHeaders({ clientId, clientVersion, jwt }),\n });\n\n const transformedTokens: Record<string, BridgeAsset> = {};\n tokens.forEach((token: unknown) => {\n if (validateSwapsTokenObject(token)) {\n transformedTokens[token.address] = token;\n }\n });\n return transformedTokens;\n}\n\n/**\n * Converts the generic quote request to the type that the bridge-api expects\n *\n * @param request - The quote request\n * @returns A URLSearchParams object with the query parameters\n */\nconst formatQueryParams = (request: GenericQuoteRequest): URLSearchParams => {\n const destWalletAddress = request.destWalletAddress ?? request.walletAddress;\n // Transform the generic quote request into QuoteRequest\n const normalizedRequest: QuoteRequest = {\n walletAddress: formatAddressToCaipReference(request.walletAddress),\n destWalletAddress: formatAddressToCaipReference(destWalletAddress),\n srcChainId: formatChainIdToDec(request.srcChainId),\n destChainId: formatChainIdToDec(request.destChainId),\n srcTokenAddress: formatAddressToCaipReference(request.srcTokenAddress),\n destTokenAddress: formatAddressToCaipReference(request.destTokenAddress),\n srcTokenAmount: request.srcTokenAmount,\n insufficientBal: Boolean(request.insufficientBal),\n resetApproval: Boolean(request.resetApproval),\n gasIncluded: Boolean(request.gasIncluded),\n gasIncluded7702: Boolean(request.gasIncluded7702),\n };\n if (request.slippage !== undefined) {\n normalizedRequest.slippage = request.slippage;\n }\n if (request.fee !== undefined) {\n normalizedRequest.fee = request.fee;\n }\n if (request.aggIds && request.aggIds.length > 0) {\n normalizedRequest.aggIds = request.aggIds;\n }\n if (request.bridgeIds && request.bridgeIds.length > 0) {\n normalizedRequest.bridgeIds = request.bridgeIds;\n }\n\n const queryParams = new URLSearchParams();\n Object.entries(normalizedRequest).forEach(([key, value]) => {\n queryParams.append(key, value.toString());\n });\n return queryParams;\n};\n\n/**\n * Fetches quotes from the bridge-api's getQuote endpoint\n *\n * @param request - The quote request\n * @param signal - The abort signal\n * @param clientId - The client ID for metrics\n * @param jwt - The JWT token for authentication\n * @param fetchFn - The fetch function to use\n * @param bridgeApiBaseUrl - The base URL for the bridge API\n * @param featureId - The feature ID to append to each quote\n * @param clientVersion - The client version for metrics (optional)\n * @returns A list of bridge tx quotes\n */\nexport async function fetchBridgeQuotes(\n request: GenericQuoteRequest,\n signal: AbortSignal | null,\n clientId: string,\n jwt: string | undefined,\n fetchFn: FetchFunction,\n bridgeApiBaseUrl: string,\n featureId: FeatureId | null,\n clientVersion?: string,\n): Promise<{\n quotes: QuoteResponse[];\n validationFailures: string[];\n}> {\n const queryParams = formatQueryParams(request);\n\n const url = `${bridgeApiBaseUrl}/getQuote?${queryParams}`;\n const quotes: unknown[] = await fetchFn(url, {\n headers: getClientHeaders({ clientId, clientVersion, jwt }),\n signal,\n });\n\n const uniqueValidationFailures: Set<string> = new Set<string>([]);\n const filteredQuotes = quotes\n .filter((quoteResponse: unknown): quoteResponse is QuoteResponse => {\n try {\n return validateQuoteResponse(quoteResponse);\n } catch (error) {\n if (error instanceof StructError) {\n error.failures().forEach(({ branch, path }) => {\n const aggregatorId =\n branch?.[0]?.quote?.bridgeId ??\n branch?.[0]?.quote?.bridges?.[0] ??\n (quoteResponse as QuoteResponse)?.quote?.bridgeId ??\n (quoteResponse as QuoteResponse)?.quote?.bridges?.[0] ??\n 'unknown';\n const pathString = path?.join('.') || 'unknown';\n uniqueValidationFailures.add([aggregatorId, pathString].join('|'));\n });\n }\n return false;\n }\n })\n .map((quote) => ({\n ...quote,\n featureId: featureId ?? undefined,\n // Append the reset approval data to the quote response if the request\n // has resetApproval set to true and the quote has an approval\n resetApproval:\n request.resetApproval && quote.approval && isEvmTxData(quote.approval)\n ? {\n ...quote.approval,\n data: getEthUsdtResetData(request.destChainId),\n }\n : undefined,\n }));\n\n const validationFailures = Array.from(uniqueValidationFailures);\n if (uniqueValidationFailures.size > 0) {\n console.warn('Quote validation failed', validationFailures);\n }\n\n return {\n quotes: filteredQuotes,\n validationFailures,\n };\n}\n\nconst fetchAssetPricesForCurrency = async (request: {\n currency: string;\n assetIds: Set<CaipAssetType>;\n clientId: string;\n clientVersion?: string;\n fetchFn: FetchFunction;\n signal?: AbortSignal;\n}): Promise<Record<CaipAssetType, { [currency: string]: string }>> => {\n const { currency, assetIds, clientId, clientVersion, fetchFn, signal } =\n request;\n const validAssetIds = Array.from(assetIds).filter(Boolean);\n if (validAssetIds.length === 0) {\n return {};\n }\n\n const queryParams = new URLSearchParams({\n assetIds: validAssetIds.filter(Boolean).join(','),\n vsCurrency: currency,\n });\n const url = `https://price.api.cx.metamask.io/v3/spot-prices?${queryParams}`;\n const priceApiResponse = (await fetchFn(url, {\n headers: getClientHeaders({ clientId, clientVersion }),\n signal,\n })) as Record<CaipAssetType, { [currency: string]: number }>;\n if (!priceApiResponse || typeof priceApiResponse !== 'object') {\n return {};\n }\n\n return Object.entries(priceApiResponse).reduce<\n Record<CaipAssetType, { [currency: string]: string }>\n >((acc, [assetId, currencyToPrice]) => {\n if (!currencyToPrice) {\n return acc;\n }\n if (!acc[assetId as CaipAssetType]) {\n acc[assetId as CaipAssetType] = {};\n }\n if (currencyToPrice[currency]) {\n acc[assetId as CaipAssetType][currency] =\n currencyToPrice[currency].toString();\n }\n return acc;\n }, {});\n};\n\n/**\n * Fetches the asset prices from the price API for multiple currencies\n *\n * @param request - The request object\n * @returns The asset prices by assetId\n */\nexport const fetchAssetPrices = async (\n request: {\n currencies: Set<string>;\n } & Omit<Parameters<typeof fetchAssetPricesForCurrency>[0], 'currency'>,\n): Promise<\n Record<CaipAssetType, { [currency: string]: string } | undefined>\n> => {\n const { currencies, ...args } = request;\n\n const combinedPrices = await Promise.allSettled(\n Array.from(currencies).map(\n async (currency) =>\n await fetchAssetPricesForCurrency({ ...args, currency }),\n ),\n ).then((priceApiResponse) => {\n return priceApiResponse.reduce<\n Record<CaipAssetType, { [currency: string]: string }>\n >((acc, result) => {\n if (result.status === 'fulfilled') {\n Object.entries(result.value).forEach(([assetId, currencyToPrice]) => {\n const existingPrices = acc[assetId as CaipAssetType];\n if (!existingPrices) {\n acc[assetId as CaipAssetType] = {};\n }\n Object.entries(currencyToPrice).forEach(([currency, price]) => {\n acc[assetId as CaipAssetType][currency] = price;\n });\n });\n }\n return acc;\n }, {});\n });\n\n return combinedPrices;\n};\n\n/**\n * Converts the generic quote request to the type that the bridge-api expects\n * then fetches quotes from the bridge-api\n *\n * @param fetchFn - The fetch function to use\n * @param request - The quote request\n * @param signal - The abort signal\n * @param clientId - The client ID for metrics\n * @param jwt - The JWT token for authentication\n * @param bridgeApiBaseUrl - The base URL for the bridge API\n * @param serverEventHandlers - The server event handlers\n * @param serverEventHandlers.onQuoteValidationFailure - The function to handle quote validation failures\n * @param serverEventHandlers.onValidQuoteReceived - The function to handle valid quotes\n * @param serverEventHandlers.onTokenWarning - The function to handle token warning events\n * @param serverEventHandlers.onComplete - The function to handle the complete event emitted when the stream finishes\n * @param serverEventHandlers.onClose - The function to run when the stream is closed and there are no thrown errors\n * @param clientVersion - The client version for metrics (optional)\n * @returns A list of bridge tx quote promises\n */\nexport async function fetchBridgeQuoteStream(\n fetchFn: FetchFunction,\n request: GenericQuoteRequest,\n signal: AbortSignal | undefined,\n clientId: string,\n jwt: string | undefined,\n bridgeApiBaseUrl: string,\n serverEventHandlers: {\n onClose: () => void | Promise<void>;\n onQuoteValidationFailure: (validationFailures: string[]) => void;\n onValidQuoteReceived: (quotes: QuoteResponse) => Promise<void>;\n onTokenWarning: (warning: TokenFeature) => void;\n onComplete: (data: QuoteStreamCompleteData) => void;\n },\n clientVersion?: string,\n): Promise<void> {\n const queryParams = formatQueryParams(request);\n\n const onQuoteReceived = async (quoteResponse: unknown): Promise<void> => {\n const uniqueValidationFailures: Set<string> = new Set<string>([]);\n\n try {\n if (validateQuoteResponse(quoteResponse)) {\n return await serverEventHandlers.onValidQuoteReceived({\n ...quoteResponse,\n // Append the reset approval data to the quote response if the request has resetApproval set to true and the quote has an approval\n resetApproval:\n request.resetApproval &&\n quoteResponse.approval &&\n isEvmTxData(quoteResponse.approval)\n ? {\n ...quoteResponse.approval,\n data: getEthUsdtResetData(request.destChainId),\n }\n : undefined,\n });\n }\n } catch (error) {\n if (error instanceof StructError) {\n error.failures().forEach(({ branch, path }) => {\n const aggregatorId =\n branch?.[0]?.quote?.bridgeId ??\n branch?.[0]?.quote?.bridges?.[0] ??\n (quoteResponse as QuoteResponse)?.quote?.bridgeId ??\n ((quoteResponse as QuoteResponse)?.quote?.bridges?.[0] ||\n ('unknown' as string));\n const pathString = path?.join('.') || 'unknown';\n uniqueValidationFailures.add([aggregatorId, pathString].join('|'));\n });\n }\n const validationFailures = Array.from(uniqueValidationFailures);\n if (uniqueValidationFailures.size > 0) {\n console.warn('Quote validation failed', validationFailures);\n return serverEventHandlers.onQuoteValidationFailure(validationFailures);\n }\n // Rethrow any unexpected errors\n throw error;\n }\n return undefined;\n };\n\n const onTokenWarningReceived = (data: unknown): void => {\n try {\n if (validateTokenFeature(data)) {\n serverEventHandlers.onTokenWarning(data);\n }\n } catch (error) {\n console.warn('Token warning validation failed', error);\n }\n };\n\n const onCompleteReceived = (data: unknown): void => {\n try {\n if (validateQuoteStreamComplete(data)) {\n serverEventHandlers.onComplete(data);\n }\n } catch (error) {\n console.warn('Quote stream complete validation failed', error);\n }\n };\n\n const onMessage = async (\n data: Record<string, unknown>,\n eventName?: string,\n ): Promise<void> => {\n switch (eventName) {\n case 'quote':\n return await onQuoteReceived(data);\n case 'token_warning':\n return onTokenWarningReceived(data);\n case 'complete':\n return onCompleteReceived(data);\n default:\n return undefined;\n }\n };\n\n const urlStream = `${bridgeApiBaseUrl}/getQuoteStream?${queryParams}`;\n await fetchServerEvents(urlStream, {\n headers: {\n ...getClientHeaders({ clientId, clientVersion, jwt }),\n 'Content-Type': 'text/event-stream',\n },\n signal,\n onMessage,\n onError: (error) => {\n // Rethrow error to prevent silent fetch failures\n throw error;\n },\n onClose: async () => {\n await serverEventHandlers.onClose();\n },\n fetchFn,\n });\n}\n"]}
1
+ {"version":3,"file":"fetch.cjs","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport { StructError } from '@metamask/superstruct';\nimport type { CaipAssetType, CaipChainId, Hex } from '@metamask/utils';\n\nimport type {\n QuoteResponse,\n FetchFunction,\n GenericQuoteRequest,\n QuoteRequest,\n BridgeAsset,\n TokenFeature,\n QuoteStreamCompleteData,\n} from '../types';\nimport { getEthUsdtResetData } from './bridge';\nimport {\n formatAddressToAssetId,\n formatAddressToCaipReference,\n formatChainIdToDec,\n} from './caip-formatters';\nimport { fetchServerEvents } from './fetch-server-events';\nimport { isEvmTxData } from './trade-utils';\nimport type { FeatureId } from './validators';\nimport {\n validateQuoteResponse,\n validateSwapsTokenObject,\n validateTokenFeature,\n validateQuoteStreamComplete,\n} from './validators';\n\nexport const getClientHeaders = ({\n clientId,\n clientVersion,\n jwt,\n}: {\n clientId: string;\n clientVersion?: string;\n jwt?: string;\n}) => ({\n 'X-Client-Id': clientId,\n ...(jwt ? { Authorization: `Bearer ${jwt}` } : {}),\n ...(clientVersion ? { 'Client-Version': clientVersion } : {}),\n});\n\n/**\n * Returns a list of enabled (unblocked) tokens\n *\n * @deprecated Use the popular and search bridge-api endpoints instead\n *\n * @param chainId - The chain ID to fetch tokens for\n * @param clientId - The client ID for metrics\n * @param jwt - The JWT token for authentication\n * @param fetchFn - The fetch function to use\n * @param bridgeApiBaseUrl - The base URL for the bridge API\n * @param clientVersion - The client version for metrics (optional)\n * @returns A list of enabled (unblocked) tokens\n */\nexport async function fetchBridgeTokens(\n chainId: Hex | CaipChainId,\n clientId: string,\n jwt: string | undefined,\n fetchFn: FetchFunction,\n bridgeApiBaseUrl: string,\n clientVersion?: string,\n): Promise<Record<string, BridgeAsset>> {\n const url = `${bridgeApiBaseUrl}/getTokens?chainId=${formatChainIdToDec(chainId)}`;\n\n // TODO we will need to cache these. In Extension fetchWithCache is used. This is due to the following:\n // If we allow selecting dest networks which the user has not imported,\n // note that the Assets controller won't be able to provide tokens. In extension we fetch+cache the token list from bridge-api to handle this\n const tokens = await fetchFn(url, {\n headers: getClientHeaders({ clientId, clientVersion, jwt }),\n });\n\n const transformedTokens: Record<string, BridgeAsset> = {};\n tokens.forEach((token: unknown) => {\n if (validateSwapsTokenObject(token)) {\n transformedTokens[token.address] = token;\n }\n });\n return transformedTokens;\n}\n\n/**\n * Converts the generic quote request to QuoteRequest\n *\n * @param request - The quote request\n * @returns A QuoteRequest object\n */\nconst formatQuoteRequest = (request: GenericQuoteRequest): QuoteRequest => {\n const destWalletAddress = request.destWalletAddress ?? request.walletAddress;\n // Transform the generic quote request into QuoteRequest\n const normalizedRequest: QuoteRequest = {\n walletAddress: formatAddressToCaipReference(request.walletAddress),\n destWalletAddress: formatAddressToCaipReference(destWalletAddress),\n srcChainId: formatChainIdToDec(request.srcChainId),\n destChainId: formatChainIdToDec(request.destChainId),\n srcTokenAddress: formatAddressToCaipReference(request.srcTokenAddress),\n destTokenAddress: formatAddressToCaipReference(request.destTokenAddress),\n srcTokenAmount: request.srcTokenAmount,\n insufficientBal: Boolean(request.insufficientBal),\n resetApproval: Boolean(request.resetApproval),\n gasIncluded: Boolean(request.gasIncluded),\n gasIncluded7702: Boolean(request.gasIncluded7702),\n };\n if (request.slippage !== undefined) {\n normalizedRequest.slippage = request.slippage;\n }\n if (request.fee !== undefined) {\n normalizedRequest.fee = request.fee;\n }\n if (request.aggIds && request.aggIds.length > 0) {\n normalizedRequest.aggIds = request.aggIds;\n }\n if (request.bridgeIds && request.bridgeIds.length > 0) {\n normalizedRequest.bridgeIds = request.bridgeIds;\n }\n\n return normalizedRequest;\n};\n\n/**\n * Converts the generic quote request to the type that the bridge-api expects\n *\n * @param normalizedRequest - The normalized quote request\n * @returns A URLSearchParams object with the query parameters\n */\nconst formatQueryParams = (\n normalizedRequest: QuoteRequest,\n): URLSearchParams => {\n const queryParams = new URLSearchParams();\n Object.entries(normalizedRequest).forEach(([key, value]) => {\n queryParams.append(key, value.toString());\n });\n return queryParams;\n};\n\n/**\n * Fetches quotes from the bridge-api's getQuote endpoint\n *\n * @param request - The quote request\n * @param signal - The abort signal\n * @param clientId - The client ID for metrics\n * @param jwt - The JWT token for authentication\n * @param fetchFn - The fetch function to use\n * @param bridgeApiBaseUrl - The base URL for the bridge API\n * @param featureId - The feature ID to append to each quote\n * @param clientVersion - The client version for metrics (optional)\n * @returns A list of bridge tx quotes\n */\nexport async function fetchBridgeQuotes(\n request: GenericQuoteRequest,\n signal: AbortSignal | null,\n clientId: string,\n jwt: string | undefined,\n fetchFn: FetchFunction,\n bridgeApiBaseUrl: string,\n featureId: FeatureId | null,\n clientVersion?: string,\n): Promise<{\n quotes: QuoteResponse[];\n validationFailures: string[];\n}> {\n const normalizedRequest = formatQuoteRequest(request);\n const queryParams = formatQueryParams(normalizedRequest);\n\n const url = `${bridgeApiBaseUrl}/getQuote?${queryParams}`;\n const quotes: unknown[] = await fetchFn(url, {\n headers: getClientHeaders({ clientId, clientVersion, jwt }),\n signal,\n });\n\n const uniqueValidationFailures: Set<string> = new Set<string>([]);\n const filteredQuotes = quotes\n .filter((quoteResponse: unknown): quoteResponse is QuoteResponse => {\n try {\n return validateQuoteResponse(quoteResponse);\n } catch (error) {\n if (error instanceof StructError) {\n error.failures().forEach(({ branch, path }) => {\n const aggregatorId =\n branch?.[0]?.quote?.bridgeId ??\n branch?.[0]?.quote?.bridges?.[0] ??\n (quoteResponse as QuoteResponse)?.quote?.bridgeId ??\n (quoteResponse as QuoteResponse)?.quote?.bridges?.[0] ??\n 'unknown';\n const pathString = path?.join('.') || 'unknown';\n uniqueValidationFailures.add([aggregatorId, pathString].join('|'));\n });\n }\n return false;\n }\n })\n .map((quote) => ({\n ...quote,\n featureId: featureId ?? undefined,\n // Append the reset approval data to the quote response if the request\n // has resetApproval set to true and the quote has an approval\n resetApproval:\n request.resetApproval && quote.approval && isEvmTxData(quote.approval)\n ? {\n ...quote.approval,\n data: getEthUsdtResetData(request.destChainId),\n }\n : undefined,\n }));\n\n const validationFailures = Array.from(uniqueValidationFailures);\n if (uniqueValidationFailures.size > 0) {\n console.warn('Quote validation failed', validationFailures);\n }\n\n return {\n quotes: filteredQuotes,\n validationFailures,\n };\n}\n\nconst fetchAssetPricesForCurrency = async (request: {\n currency: string;\n assetIds: Set<CaipAssetType>;\n clientId: string;\n clientVersion?: string;\n fetchFn: FetchFunction;\n signal?: AbortSignal;\n}): Promise<Record<CaipAssetType, { [currency: string]: string }>> => {\n const { currency, assetIds, clientId, clientVersion, fetchFn, signal } =\n request;\n const validAssetIds = Array.from(assetIds).filter(Boolean);\n if (validAssetIds.length === 0) {\n return {};\n }\n\n const queryParams = new URLSearchParams({\n assetIds: validAssetIds.filter(Boolean).join(','),\n vsCurrency: currency,\n });\n const url = `https://price.api.cx.metamask.io/v3/spot-prices?${queryParams}`;\n const priceApiResponse = (await fetchFn(url, {\n headers: getClientHeaders({ clientId, clientVersion }),\n signal,\n })) as Record<CaipAssetType, { [currency: string]: number }>;\n if (!priceApiResponse || typeof priceApiResponse !== 'object') {\n return {};\n }\n\n return Object.entries(priceApiResponse).reduce<\n Record<CaipAssetType, { [currency: string]: string }>\n >((acc, [assetId, currencyToPrice]) => {\n if (!currencyToPrice) {\n return acc;\n }\n if (!acc[assetId as CaipAssetType]) {\n acc[assetId as CaipAssetType] = {};\n }\n if (currencyToPrice[currency]) {\n acc[assetId as CaipAssetType][currency] =\n currencyToPrice[currency].toString();\n }\n return acc;\n }, {});\n};\n\n/**\n * Fetches the asset prices from the price API for multiple currencies\n *\n * @param request - The request object\n * @returns The asset prices by assetId\n */\nexport const fetchAssetPrices = async (\n request: {\n currencies: Set<string>;\n } & Omit<Parameters<typeof fetchAssetPricesForCurrency>[0], 'currency'>,\n): Promise<\n Record<CaipAssetType, { [currency: string]: string } | undefined>\n> => {\n const { currencies, ...args } = request;\n\n const combinedPrices = await Promise.allSettled(\n Array.from(currencies).map(\n async (currency) =>\n await fetchAssetPricesForCurrency({ ...args, currency }),\n ),\n ).then((priceApiResponse) => {\n return priceApiResponse.reduce<\n Record<CaipAssetType, { [currency: string]: string }>\n >((acc, result) => {\n if (result.status === 'fulfilled') {\n Object.entries(result.value).forEach(([assetId, currencyToPrice]) => {\n const existingPrices = acc[assetId as CaipAssetType];\n if (!existingPrices) {\n acc[assetId as CaipAssetType] = {};\n }\n Object.entries(currencyToPrice).forEach(([currency, price]) => {\n acc[assetId as CaipAssetType][currency] = price;\n });\n });\n }\n return acc;\n }, {});\n });\n\n return combinedPrices;\n};\n\nconst getQuoteRequestId = ({\n srcChainId,\n destChainId,\n srcTokenAddress,\n destTokenAddress,\n}: QuoteRequest): string =>\n `${formatAddressToAssetId(srcTokenAddress, srcChainId)}-${formatAddressToAssetId(destTokenAddress, destChainId)}`;\n\nconst getQuoteResponseId = ({\n srcAsset: { address: srcTokenAddress, chainId: srcChainId },\n destAsset: { address: destTokenAddress, chainId: destChainId },\n}: QuoteResponse['quote']): string =>\n `${formatAddressToAssetId(srcTokenAddress, srcChainId)}-${formatAddressToAssetId(destTokenAddress, destChainId)}`;\n\n/**\n * Fetches quotes from the bridge-api\n *\n * @param fetchFn - The fetch function to use\n * @param quoteRequests - An array of GenericQuoteRequest objects\n * @param signal - The abort signal\n * @param clientId - The client ID for metrics\n * @param jwt - The JWT token for authentication\n * @param bridgeApiBaseUrl - The base URL for the bridge API\n * @param serverEventHandlers - The server event handlers\n * @param serverEventHandlers.onQuoteValidationFailure - The function to handle quote validation failures\n * @param serverEventHandlers.onValidQuoteReceived - The function to handle valid quotes\n * @param serverEventHandlers.onTokenWarning - The function to handle token warning events\n * @param serverEventHandlers.onComplete - The function to handle the complete event emitted when the stream finishes\n * @param serverEventHandlers.onClose - The function to run when the stream is closed and there are no thrown errors\n * @param clientVersion - The client version for metrics (optional)\n * @returns A list of bridge tx quote promises\n */\nexport async function fetchBridgeQuoteStream(\n fetchFn: FetchFunction,\n quoteRequests: GenericQuoteRequest[],\n signal: AbortSignal | undefined,\n clientId: string,\n jwt: string | undefined,\n bridgeApiBaseUrl: string,\n serverEventHandlers: {\n onClose: () => void | Promise<void>;\n onQuoteValidationFailure: (validationFailures: string[]) => void;\n onValidQuoteReceived: (quotes: QuoteResponse) => Promise<void>;\n onTokenWarning: (warning: TokenFeature) => void;\n onComplete: (data: QuoteStreamCompleteData) => void;\n },\n clientVersion?: string,\n): Promise<void> {\n /**\n * If the request includes multiple quote requests, it is a batch sell request.\n * A batch sell consists of multiple swaps that are executed in a single tx submission.\n */\n const isBatchSellRequest = quoteRequests.length > 1;\n const normalizedQuoteRequests = quoteRequests.map(formatQuoteRequest);\n const quoteRequestIds = isBatchSellRequest\n ? normalizedQuoteRequests.map(getQuoteRequestId)\n : undefined;\n\n const onQuoteReceived = async (quoteResponse: unknown): Promise<void> => {\n const uniqueValidationFailures: Set<string> = new Set<string>([]);\n\n try {\n if (validateQuoteResponse(quoteResponse)) {\n // Fallback to 0 if the quote doesn't match any requests\n const matchedQuoteRequestIdx = Math.max(\n quoteRequestIds?.findIndex((id) => {\n return id === getQuoteResponseId(quoteResponse.quote);\n }) ?? 0,\n 0,\n );\n const matchingQuoteRequest =\n normalizedQuoteRequests[matchedQuoteRequestIdx];\n\n return await serverEventHandlers.onValidQuoteReceived({\n ...quoteResponse,\n // Append the reset approval data to the quote response if the request has resetApproval set to true and the quote has an approval\n resetApproval:\n matchingQuoteRequest.resetApproval &&\n quoteResponse.approval &&\n isEvmTxData(quoteResponse.approval)\n ? {\n ...quoteResponse.approval,\n data: getEthUsdtResetData(matchingQuoteRequest.destChainId),\n }\n : undefined,\n ...(isBatchSellRequest && {\n quoteRequestIndex: matchedQuoteRequestIdx,\n }),\n });\n }\n } catch (error) {\n if (error instanceof StructError) {\n error.failures().forEach(({ branch, path }) => {\n const aggregatorId =\n branch?.[0]?.quote?.bridgeId ??\n branch?.[0]?.quote?.bridges?.[0] ??\n (quoteResponse as QuoteResponse)?.quote?.bridgeId ??\n ((quoteResponse as QuoteResponse)?.quote?.bridges?.[0] ||\n ('unknown' as string));\n const pathString = path?.join('.') || 'unknown';\n uniqueValidationFailures.add([aggregatorId, pathString].join('|'));\n });\n }\n const validationFailures = Array.from(uniqueValidationFailures);\n if (uniqueValidationFailures.size > 0) {\n console.warn('Quote validation failed', validationFailures);\n return serverEventHandlers.onQuoteValidationFailure(validationFailures);\n }\n // Rethrow any unexpected errors\n throw error;\n }\n return undefined;\n };\n\n const onTokenWarningReceived = (data: unknown): void => {\n try {\n if (validateTokenFeature(data)) {\n serverEventHandlers.onTokenWarning(data);\n }\n } catch (error) {\n console.warn('Token warning validation failed', error);\n }\n };\n\n const onCompleteReceived = (data: unknown): void => {\n try {\n if (validateQuoteStreamComplete(data)) {\n serverEventHandlers.onComplete(data);\n }\n } catch (error) {\n console.warn('Quote stream complete validation failed', error);\n }\n };\n\n const onMessage = async (\n data: Record<string, unknown>,\n eventName?: string,\n ): Promise<void> => {\n switch (eventName) {\n case 'quote':\n return await onQuoteReceived(data);\n case 'token_warning':\n return onTokenWarningReceived(data);\n case 'complete':\n return onCompleteReceived(data);\n default:\n return undefined;\n }\n };\n\n const sharedFetchOptions = {\n signal,\n onMessage,\n onError: (error: unknown) => {\n // Rethrow error to prevent silent fetch failures\n throw error;\n },\n onClose: async () => {\n await serverEventHandlers.onClose();\n },\n fetchFn,\n };\n\n if (isBatchSellRequest) {\n const urlStream = `${bridgeApiBaseUrl}/getBatchQuoteStream`;\n await fetchServerEvents(urlStream, {\n method: 'POST',\n body: JSON.stringify({ requests: normalizedQuoteRequests }),\n headers: {\n ...getClientHeaders({ clientId, clientVersion, jwt }),\n 'Content-Type': 'application/json',\n },\n ...sharedFetchOptions,\n });\n return;\n }\n\n const queryParams = formatQueryParams(normalizedQuoteRequests[0]);\n const urlStream = `${bridgeApiBaseUrl}/getQuoteStream?${queryParams}`;\n await fetchServerEvents(urlStream, {\n headers: {\n ...getClientHeaders({ clientId, clientVersion, jwt }),\n 'Content-Type': 'text/event-stream',\n },\n ...sharedFetchOptions,\n });\n}\n"]}
@@ -63,11 +63,10 @@ export declare const fetchAssetPrices: (request: {
63
63
  [currency: string]: string;
64
64
  } | undefined>>;
65
65
  /**
66
- * Converts the generic quote request to the type that the bridge-api expects
67
- * then fetches quotes from the bridge-api
66
+ * Fetches quotes from the bridge-api
68
67
  *
69
68
  * @param fetchFn - The fetch function to use
70
- * @param request - The quote request
69
+ * @param quoteRequests - An array of GenericQuoteRequest objects
71
70
  * @param signal - The abort signal
72
71
  * @param clientId - The client ID for metrics
73
72
  * @param jwt - The JWT token for authentication
@@ -81,7 +80,7 @@ export declare const fetchAssetPrices: (request: {
81
80
  * @param clientVersion - The client version for metrics (optional)
82
81
  * @returns A list of bridge tx quote promises
83
82
  */
84
- export declare function fetchBridgeQuoteStream(fetchFn: FetchFunction, request: GenericQuoteRequest, signal: AbortSignal | undefined, clientId: string, jwt: string | undefined, bridgeApiBaseUrl: string, serverEventHandlers: {
83
+ export declare function fetchBridgeQuoteStream(fetchFn: FetchFunction, quoteRequests: GenericQuoteRequest[], signal: AbortSignal | undefined, clientId: string, jwt: string | undefined, bridgeApiBaseUrl: string, serverEventHandlers: {
85
84
  onClose: () => void | Promise<void>;
86
85
  onQuoteValidationFailure: (validationFailures: string[]) => void;
87
86
  onValidQuoteReceived: (quotes: QuoteResponse) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.d.cts","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,EAAE,wBAAwB;AAEvE,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,mBAAmB,EAEnB,WAAW,EACX,YAAY,EACZ,uBAAuB,EACxB,qBAAiB;AAQlB,OAAO,KAAK,EAAE,SAAS,EAAE,yBAAqB;AAQ9C,eAAO,MAAM,gBAAgB;cAKjB,MAAM;;;;;;;CAOhB,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,GAAG,GAAG,WAAW,EAC1B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,OAAO,EAAE,aAAa,EACtB,gBAAgB,EAAE,MAAM,EACxB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAiBtC;AA4CD;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,WAAW,GAAG,IAAI,EAC1B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,OAAO,EAAE,aAAa,EACtB,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC;IACT,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC,CAqDD;AAED,QAAA,MAAM,2BAA2B,YAAmB;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,IAAI,aAAa,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;;GAoCA,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,YAClB;IACP,UAAU,EAAE,IAAI,MAAM,CAAC,CAAC;CACzB,GAAG,KAAK,WAAW,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;;eA+BxE,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,gBAAgB,EAAE,MAAM,EACxB,mBAAmB,EAAE;IACnB,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,wBAAwB,EAAE,CAAC,kBAAkB,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACjE,oBAAoB,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,cAAc,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,CAAC;CACrD,EACD,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CAmGf"}
1
+ {"version":3,"file":"fetch.d.cts","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,EAAE,wBAAwB;AAEvE,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,mBAAmB,EAEnB,WAAW,EACX,YAAY,EACZ,uBAAuB,EACxB,qBAAiB;AASlB,OAAO,KAAK,EAAE,SAAS,EAAE,yBAAqB;AAQ9C,eAAO,MAAM,gBAAgB;cAKjB,MAAM;;;;;;;CAOhB,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,GAAG,GAAG,WAAW,EAC1B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,OAAO,EAAE,aAAa,EACtB,gBAAgB,EAAE,MAAM,EACxB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAiBtC;AAwDD;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,WAAW,GAAG,IAAI,EAC1B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,OAAO,EAAE,aAAa,EACtB,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC;IACT,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC,CAsDD;AAED,QAAA,MAAM,2BAA2B,YAAmB;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,IAAI,aAAa,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;;GAoCA,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,YAClB;IACP,UAAU,EAAE,IAAI,MAAM,CAAC,CAAC;CACzB,GAAG,KAAK,WAAW,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;;eA+BxE,CAAC;AAgBF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,mBAAmB,EAAE,EACpC,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,gBAAgB,EAAE,MAAM,EACxB,mBAAmB,EAAE;IACnB,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,wBAAwB,EAAE,CAAC,kBAAkB,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACjE,oBAAoB,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,cAAc,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,CAAC;CACrD,EACD,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CA2If"}
@@ -63,11 +63,10 @@ export declare const fetchAssetPrices: (request: {
63
63
  [currency: string]: string;
64
64
  } | undefined>>;
65
65
  /**
66
- * Converts the generic quote request to the type that the bridge-api expects
67
- * then fetches quotes from the bridge-api
66
+ * Fetches quotes from the bridge-api
68
67
  *
69
68
  * @param fetchFn - The fetch function to use
70
- * @param request - The quote request
69
+ * @param quoteRequests - An array of GenericQuoteRequest objects
71
70
  * @param signal - The abort signal
72
71
  * @param clientId - The client ID for metrics
73
72
  * @param jwt - The JWT token for authentication
@@ -81,7 +80,7 @@ export declare const fetchAssetPrices: (request: {
81
80
  * @param clientVersion - The client version for metrics (optional)
82
81
  * @returns A list of bridge tx quote promises
83
82
  */
84
- export declare function fetchBridgeQuoteStream(fetchFn: FetchFunction, request: GenericQuoteRequest, signal: AbortSignal | undefined, clientId: string, jwt: string | undefined, bridgeApiBaseUrl: string, serverEventHandlers: {
83
+ export declare function fetchBridgeQuoteStream(fetchFn: FetchFunction, quoteRequests: GenericQuoteRequest[], signal: AbortSignal | undefined, clientId: string, jwt: string | undefined, bridgeApiBaseUrl: string, serverEventHandlers: {
85
84
  onClose: () => void | Promise<void>;
86
85
  onQuoteValidationFailure: (validationFailures: string[]) => void;
87
86
  onValidQuoteReceived: (quotes: QuoteResponse) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.d.mts","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,EAAE,wBAAwB;AAEvE,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,mBAAmB,EAEnB,WAAW,EACX,YAAY,EACZ,uBAAuB,EACxB,qBAAiB;AAQlB,OAAO,KAAK,EAAE,SAAS,EAAE,yBAAqB;AAQ9C,eAAO,MAAM,gBAAgB;cAKjB,MAAM;;;;;;;CAOhB,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,GAAG,GAAG,WAAW,EAC1B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,OAAO,EAAE,aAAa,EACtB,gBAAgB,EAAE,MAAM,EACxB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAiBtC;AA4CD;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,WAAW,GAAG,IAAI,EAC1B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,OAAO,EAAE,aAAa,EACtB,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC;IACT,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC,CAqDD;AAED,QAAA,MAAM,2BAA2B,YAAmB;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,IAAI,aAAa,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;;GAoCA,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,YAClB;IACP,UAAU,EAAE,IAAI,MAAM,CAAC,CAAC;CACzB,GAAG,KAAK,WAAW,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;;eA+BxE,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,gBAAgB,EAAE,MAAM,EACxB,mBAAmB,EAAE;IACnB,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,wBAAwB,EAAE,CAAC,kBAAkB,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACjE,oBAAoB,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,cAAc,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,CAAC;CACrD,EACD,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CAmGf"}
1
+ {"version":3,"file":"fetch.d.mts","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,EAAE,wBAAwB;AAEvE,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,mBAAmB,EAEnB,WAAW,EACX,YAAY,EACZ,uBAAuB,EACxB,qBAAiB;AASlB,OAAO,KAAK,EAAE,SAAS,EAAE,yBAAqB;AAQ9C,eAAO,MAAM,gBAAgB;cAKjB,MAAM;;;;;;;CAOhB,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,GAAG,GAAG,WAAW,EAC1B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,OAAO,EAAE,aAAa,EACtB,gBAAgB,EAAE,MAAM,EACxB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAiBtC;AAwDD;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,WAAW,GAAG,IAAI,EAC1B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,OAAO,EAAE,aAAa,EACtB,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC;IACT,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC,CAsDD;AAED,QAAA,MAAM,2BAA2B,YAAmB;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,IAAI,aAAa,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;;GAoCA,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,YAClB;IACP,UAAU,EAAE,IAAI,MAAM,CAAC,CAAC;CACzB,GAAG,KAAK,WAAW,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;;eA+BxE,CAAC;AAgBF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,mBAAmB,EAAE,EACpC,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,gBAAgB,EAAE,MAAM,EACxB,mBAAmB,EAAE;IACnB,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,wBAAwB,EAAE,CAAC,kBAAkB,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACjE,oBAAoB,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,cAAc,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,CAAC;CACrD,EACD,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CA2If"}