@metamask-previews/transaction-pay-controller 29.2.3-preview-e45297452 → 30.0.0-preview-bba5d41

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.
@@ -1 +1 @@
1
- {"version":3,"file":"relay-submit.js","sourceRoot":"","sources":["../../../src/strategy/relay/relay-submit.ts"],"names":[],"mappings":"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","sourcesContent":["import { ORIGIN_METAMASK, toHex } from '@metamask/controller-utils';\nimport { TransactionType } from '@metamask/transaction-controller';\nimport type {\n AuthorizationList,\n BatchTransactionParams,\n TransactionBatchRequest,\n TransactionBatchSingleRequest,\n TransactionMeta,\n TransactionParams,\n} from '@metamask/transaction-controller';\nimport type { Hex } from '@metamask/utils';\nimport { createModuleLogger } from '@metamask/utils';\nimport { BigNumber } from 'bignumber.js';\n\nimport { projectLogger } from '../../logger.js';\nimport type {\n PayStrategyExecuteRequest,\n TransactionPayControllerMessenger,\n TransactionPayQuote,\n} from '../../types.js';\nimport { prefixError } from '../../utils/error-prefix.js';\nimport {\n getFeatureFlags,\n getRelayPollingInterval,\n getRelayPollingTimeout,\n} from '../../utils/feature-flags.js';\nimport { submitMoneyAccountVaultDeposit } from '../../utils/ma-vault-deposit.js';\nimport { getNetworkClientId } from '../../utils/provider.js';\nimport {\n getLiveTokenBalance,\n normalizeTokenAddress,\n TokenAddressTarget,\n} from '../../utils/token.js';\nimport {\n collectTransactionIds,\n getTransaction,\n getTransferredAmountFromTxHash,\n updateTransaction,\n waitForTransactionConfirmed,\n} from '../../utils/transaction.js';\nimport {\n FALLBACK_HASH,\n RELAY_DEPOSIT_TYPES,\n RELAY_FAILURE_STATUSES,\n RELAY_PENDING_STATUSES,\n} from './constants.js';\nimport { submitHyperliquidWithdraw } from './hyperliquid-withdraw.js';\nimport {\n sweepPolymarketDepositWallet,\n submitPolymarketWithdraw,\n} from './polymarket/withdraw.js';\nimport { getRelayStatus } from './relay-api.js';\nimport { submitViaRelayExecute } from './relay-submit-execute.js';\nimport type {\n RelayCompletionOutcome,\n RelayQuote,\n RelayStatus,\n RelayStatusResponse,\n RelayTransactionStep,\n} from './types.js';\n\nconst log = createModuleLogger(projectLogger, 'relay-strategy');\nconst RELAY_ERROR_PREFIX = 'Relay: ';\n\ntype RelaySubmitParams = {\n allParams: TransactionParams[];\n normalizedParams: TransactionParams[];\n};\n\nexport type RelaySubmitCalls = { calls: TransactionParams[] };\n\n/**\n * Submits Relay quotes.\n *\n * @param request - Request object.\n * @returns An object containing the transaction hash if available.\n */\nexport async function submitRelayQuotes(\n request: PayStrategyExecuteRequest<RelayQuote>,\n): Promise<{ transactionHash?: Hex }> {\n try {\n return await submitRelayQuotesInternal(request);\n } catch (error) {\n throw prefixError(error, RELAY_ERROR_PREFIX);\n }\n}\n\nexport async function getRelaySubmitCalls({\n messenger,\n quote,\n transaction,\n}: {\n messenger: TransactionPayControllerMessenger;\n quote: TransactionPayQuote<RelayQuote>;\n transaction: TransactionMeta;\n}): Promise<RelaySubmitCalls> {\n const { allParams } = await buildRelaySubmitParams({\n messenger,\n quote,\n transaction,\n });\n return { calls: allParams };\n}\n\nasync function submitRelayQuotesInternal(\n request: PayStrategyExecuteRequest<RelayQuote>,\n): Promise<{ transactionHash?: Hex }> {\n log('Executing quotes', request);\n\n const { quotes, messenger, transaction } = request;\n\n if (!quotes.length) {\n throw new Error('No quotes to submit');\n }\n\n let transactionHash: Hex | undefined;\n\n for (const quote of quotes) {\n ({ transactionHash } = await executeSingleQuote(\n quote,\n messenger,\n transaction,\n ));\n }\n\n /* istanbul ignore if: concrete Relay submit paths return a hash/fallback or throw. */\n if (transactionHash === undefined) {\n throw new Error('Missing transaction hash');\n }\n\n return { transactionHash };\n}\n\n/**\n * Executes a single Relay quote.\n *\n * @param quote - Relay quote to execute.\n * @param messenger - Controller messenger.\n * @param transaction - Original transaction meta.\n * @returns An object containing the transaction hash if available.\n */\nasync function executeSingleQuote(\n quote: TransactionPayQuote<RelayQuote>,\n messenger: TransactionPayControllerMessenger,\n transaction: TransactionMeta,\n): Promise<{ transactionHash?: Hex }> {\n log('Executing single quote', quote);\n\n const isPolymarket = Boolean(quote.request.isPolymarketDepositWallet);\n\n updateTransaction(\n {\n transactionId: transaction.id,\n messenger,\n note: 'Remove nonce from skipped transaction',\n },\n (tx) => {\n tx.txParams.nonce = undefined;\n },\n );\n\n let polymarketPreSubmitUsdceBalance = 0n;\n let submittedSourceHash: Hex | undefined;\n\n // Shallow clone so the server-returned requestId can be written back (state is frozen by Immer).\n const mutableOriginal: RelayQuote = { ...quote.original };\n\n if (quote.request.isHyperliquidSource) {\n await submitHyperliquidWithdraw(quote, quote.request.from, messenger);\n } else if (isPolymarket) {\n const { sourceHash, preSubmitUsdceBalance } =\n await submitPolymarketWithdraw(quote, quote.request.from, messenger);\n polymarketPreSubmitUsdceBalance = preSubmitUsdceBalance;\n setRelaySourceHash(transaction, messenger, sourceHash);\n } else {\n submittedSourceHash = await submitTransactions(\n { ...quote, original: mutableOriginal },\n transaction,\n messenger,\n );\n }\n\n const completion = await waitForRelayCompletion(mutableOriginal, messenger, {\n onSourceHash: (hash) => {\n log('Source hash received', hash);\n setRelaySourceHash(transaction, messenger, hash);\n },\n tolerateFailure: isPolymarket,\n });\n\n log('Relay request completed', completion);\n\n if (isPolymarket) {\n await sweepPolymarketDepositWallet(quote.request.from, messenger, {\n relayStatus: completion.status,\n preSubmitUsdceBalance: polymarketPreSubmitUsdceBalance,\n });\n\n if (completion.status !== 'success') {\n throw new Error(`Request failed with status: ${completion.status}`);\n }\n }\n\n updateTransaction(\n {\n transactionId: transaction.id,\n messenger,\n note: 'Intent complete after Relay completion',\n },\n (tx) => {\n tx.isIntentComplete = true;\n },\n );\n\n // Non-atomic flow: the quote bridged funds to `recipient` without embedding\n // the second leg. Now that Relay has settled, resolve the settled amount from\n // the on-chain Transfer log and submit the second-leg batch (approve + vault\n // deposit) sponsored from `recipient`.\n if (quote.request.atomic === false && completion.status === 'success') {\n const { transactionHash } = await submitPostNonAtomic({\n completion,\n messenger,\n quote,\n submittedSourceHash,\n transaction,\n });\n\n return { transactionHash: transactionHash ?? completion.targetHash };\n }\n\n return { transactionHash: completion.targetHash };\n}\n\n/**\n * Runs the second leg of a non-atomic Relay quote. Resolves the settled amount\n * from the on-chain Transfer log, then submits the batch via\n * `submitMoneyAccountVaultDeposit`. Post-quote flows fetch pre-built calls via\n * the client `getPaymentOverrideData` callback; non-post-quote flows fall\n * through to the transaction's own nested calls re-encoded via\n * `getAmountData`. Funds settled on `quote.request.recipient`, derived at\n * quote time by `resolveNonAtomicRecipient`.\n *\n * @param options - Submit options.\n * @param options.completion - Outcome of `waitForRelayCompletion`.\n * @param options.messenger - Controller messenger.\n * @param options.quote - The Relay quote that was submitted.\n * @param options.submittedSourceHash - Hash of the submitted source\n * transaction, used to read the settled amount when Relay skips polling on\n * same-chain flows.\n * @param options.transaction - Original transaction meta.\n * @returns Hash of the final submitted child transaction, if available.\n */\nasync function submitPostNonAtomic({\n completion,\n messenger,\n quote,\n submittedSourceHash,\n transaction,\n}: {\n completion: RelayCompletionOutcome;\n messenger: TransactionPayControllerMessenger;\n quote: TransactionPayQuote<RelayQuote>;\n submittedSourceHash?: Hex;\n transaction: TransactionMeta;\n}): Promise<{ transactionHash?: Hex }> {\n const sourceAmountRaw = await resolveSettledAmount({\n completion,\n messenger,\n quote,\n submittedSourceHash,\n });\n\n const override = quote.request.isPostQuote\n ? await buildPostQuoteDepositCalls({\n messenger,\n sourceAmountRaw,\n transaction,\n quote,\n })\n : undefined;\n\n const recipient =\n override?.recipient ?? quote.request.recipient ?? quote.request.from;\n\n return submitMoneyAccountVaultDeposit({\n messenger,\n moneyAccountAddress: recipient,\n depositCalls: override?.calls,\n sourceAmountRaw,\n transaction,\n vaultDisabled: false,\n });\n}\n\n/**\n * Builds the post-completion batch for a post-quote flow whose parent\n * transaction carries no vault calls. Delegates to the client\n * `getPaymentOverrideData` callback with the settled amount.\n *\n * The callback MUST return a non-empty batch. Post-quote parent metas (e.g.\n * Perps/Predict withdraws) carry no vault-side nested calls, so falling back\n * to `getAmountData` in `resolveVaultDepositBatch` cannot recover the second\n * leg once Relay has already settled funds to the recipient. Throw eagerly so\n * the failure surfaces at the correct call site with an actionable message.\n *\n * The callback may also return the `recipient` that funds settled on, which the\n * caller prefers as the source of truth for the second-leg account.\n *\n * @param options - Build options.\n * @param options.messenger - Controller messenger.\n * @param options.quote - The Relay quote that was submitted.\n * @param options.sourceAmountRaw - Settled amount in raw units.\n * @param options.transaction - Original transaction meta.\n * @returns The batch calls and optional recipient.\n * @throws If the callback returns an empty batch.\n */\nasync function buildPostQuoteDepositCalls({\n messenger,\n quote,\n sourceAmountRaw,\n transaction,\n}: {\n messenger: TransactionPayControllerMessenger;\n quote: TransactionPayQuote<RelayQuote>;\n sourceAmountRaw: string;\n transaction: TransactionMeta;\n}): Promise<{ calls: BatchTransactionParams[]; recipient?: Hex }> {\n const { transactionData } = messenger.call(\n 'TransactionPayController:getState',\n );\n\n const { decimals } = quote.original.details.currencyOut.currency;\n const amountHuman = new BigNumber(sourceAmountRaw)\n .shiftedBy(-decimals)\n .toFixed();\n\n const { calls, recipient } = await messenger.call(\n 'TransactionPayController:getPaymentOverrideData',\n {\n amount: amountHuman,\n transaction,\n transactionData: transactionData[transaction.id],\n },\n );\n\n if (!calls.length) {\n throw new Error('Missing post-quote deposit calls');\n }\n\n return { calls, recipient };\n}\n\n/**\n * Resolves the actual amount that landed on the recipient after a Relay bridge.\n *\n * Cross-chain relays surface a real target-chain hash from polling; same-chain\n * relays skip polling (the `FALLBACK_HASH` placeholder) but the submitted\n * source transaction itself moved the funds, so its hash is read instead. In\n * both cases the exact settled amount comes from the on-chain Transfer log; a\n * read failure or missing amount throws rather than guessing, since using the\n * quote minimum would knowingly strand dust and defeat an EXACT_INPUT quote.\n *\n * Relay execute submissions return `FALLBACK_HASH` instead of a real source\n * hash, leaving nothing to read; only then is the quote's minimum output used\n * as the last available source.\n *\n * @param options - Resolution options.\n * @param options.completion - Outcome of `waitForRelayCompletion`.\n * @param options.messenger - Controller messenger.\n * @param options.quote - The Relay quote that was submitted.\n * @param options.submittedSourceHash - Hash of the submitted source\n * transaction, used when polling was skipped on same-chain flows.\n * @returns The raw (atomic) settled amount as a decimal string.\n */\nasync function resolveSettledAmount({\n completion,\n messenger,\n quote,\n submittedSourceHash,\n}: {\n completion: RelayCompletionOutcome;\n messenger: TransactionPayControllerMessenger;\n quote: TransactionPayQuote<RelayQuote>;\n submittedSourceHash?: Hex;\n}): Promise<string> {\n const recipient = (quote.request.recipient ?? quote.request.from) as\n | Hex\n | undefined;\n\n const isSameChain =\n quote.request.sourceChainId === quote.request.targetChainId;\n\n const hasPolledTargetHash = Boolean(\n completion.targetHash && completion.targetHash !== FALLBACK_HASH,\n );\n\n let settlementHash: Hex | undefined;\n\n if (hasPolledTargetHash) {\n settlementHash = completion.targetHash;\n } else if (isSameChain && submittedSourceHash !== FALLBACK_HASH) {\n settlementHash = submittedSourceHash;\n }\n\n if (recipient && settlementHash) {\n const { amountRaw: onChainAmount } = await getTransferredAmountFromTxHash({\n messenger,\n txHash: settlementHash,\n chainId: quote.request.targetChainId,\n tokenAddress: quote.request.targetTokenAddress,\n walletAddress: recipient,\n });\n\n if (!onChainAmount) {\n throw new Error(\n 'Cannot resolve settled amount from on-chain transaction',\n );\n }\n\n log('Resolved settled amount from on-chain transaction', {\n settlementHash,\n onChainAmount,\n });\n\n return onChainAmount;\n }\n\n const fallback = quote.original.details.currencyOut.minimumAmount;\n\n if (!fallback) {\n throw new Error('Cannot resolve post-completion amount');\n }\n\n log('Resolved settled amount from quote minimum output', {\n fallback,\n targetHash: completion.targetHash,\n });\n\n return fallback;\n}\n\nfunction setRelaySourceHash(\n transaction: TransactionMeta,\n messenger: TransactionPayControllerMessenger,\n sourceHash: Hex,\n): void {\n updateTransaction(\n {\n transactionId: transaction.id,\n messenger,\n note: 'Add source hash from Relay status',\n },\n (tx) => {\n tx.metamaskPay ??= {};\n tx.metamaskPay.sourceHash = sourceHash;\n },\n );\n}\n\nasync function waitForRelayCompletion(\n quote: RelayQuote,\n messenger: TransactionPayControllerMessenger,\n options: {\n onSourceHash?: (hash: Hex) => void;\n tolerateFailure?: boolean;\n },\n): Promise<RelayCompletionOutcome> {\n const { onSourceHash, tolerateFailure } = options;\n\n const isSameChain =\n quote.details.currencyIn.currency.chainId ===\n quote.details.currencyOut.currency.chainId;\n\n const isSingleDepositStep =\n quote.steps.length === 1 && quote.steps[0].id === 'deposit';\n\n if (isSameChain && !isSingleDepositStep) {\n log('Skipping polling as same chain');\n return { status: 'success', targetHash: FALLBACK_HASH };\n }\n\n const { requestId } = quote.steps[0];\n\n const pollingInterval = getRelayPollingInterval(messenger);\n const pollingTimeout = getRelayPollingTimeout(messenger);\n const hasTimeout = pollingTimeout !== undefined && pollingTimeout > 0;\n\n log('Polling config', { pollingInterval, pollingTimeout });\n const startTime = Date.now();\n\n let sourceHashEmitted = false;\n let lastStatus: RelayStatus | undefined;\n\n while (true) {\n let status: RelayStatusResponse | undefined;\n\n try {\n status = await getRelayStatus(requestId);\n } catch (error) {\n log('Polling network error', error);\n }\n\n if (status) {\n log('Polled status', status.status, status);\n lastStatus = status.status;\n\n if (!sourceHashEmitted && status.inTxHashes?.length) {\n sourceHashEmitted = true;\n onSourceHash?.(status.inTxHashes[0] as Hex);\n }\n\n if (status.status === 'success') {\n const targetHash =\n (status.txHashes?.slice(-1)[0] as Hex | undefined) ?? FALLBACK_HASH;\n return { status: 'success', targetHash };\n }\n\n if (!RELAY_PENDING_STATUSES.includes(status.status)) {\n if (RELAY_FAILURE_STATUSES.includes(status.status)) {\n if (tolerateFailure) {\n log('Relay ended in failure status (tolerated)', status.status);\n return { status: status.status };\n }\n throw new Error(`Request failed with status: ${status.status}`);\n }\n throw new Error(`Unrecognized status: ${status.status}`);\n }\n }\n\n if (hasTimeout && Date.now() - startTime >= pollingTimeout) {\n const statusDetail = lastStatus ? ` (last status: ${lastStatus})` : '';\n if (tolerateFailure) {\n log('Relay polling timed out (tolerated)', statusDetail);\n return { status: 'timeout' };\n }\n throw new Error(`Polling timed out${statusDetail}`);\n }\n\n await new Promise((resolve) => setTimeout(resolve, pollingInterval));\n }\n}\n\n/**\n * Normalize the parameters from a relay quote step to match TransactionParams.\n *\n * @param params - Parameters from a relay quote step.\n * @param messenger - Controller messenger.\n * @returns Normalized transaction parameters.\n */\nfunction normalizeParams(\n params: RelayTransactionStep['items'][0]['data'],\n messenger: TransactionPayControllerMessenger,\n): TransactionParams {\n const featureFlags = getFeatureFlags(messenger);\n\n return {\n data: params.data,\n from: params.from,\n gas: toHex(params.gas ?? featureFlags.relayFallbackGas.max),\n maxFeePerGas:\n params.maxFeePerGas === undefined\n ? undefined\n : toHex(params.maxFeePerGas),\n maxPriorityFeePerGas:\n params.maxPriorityFeePerGas === undefined\n ? undefined\n : toHex(params.maxPriorityFeePerGas),\n to: params.to,\n value: toHex(params.value ?? '0'),\n };\n}\n\n/**\n * Validate the source token balance is sufficient for the relay deposit.\n *\n * Reads the live balance from the network and compares it against the quote's\n * required source amount to prevent submitting transactions that will revert\n * on-chain due to insufficient balance.\n *\n * @param quote - Relay quote containing the required source amount.\n * @param messenger - Controller messenger.\n */\nasync function validateSourceBalance(\n quote: TransactionPayQuote<RelayQuote>,\n messenger: TransactionPayControllerMessenger,\n): Promise<void> {\n const { from, sourceChainId, sourceTokenAddress } = quote.request;\n\n const normalizedSourceTokenAddress = normalizeTokenAddress(\n sourceTokenAddress,\n sourceChainId,\n TokenAddressTarget.MetaMask,\n );\n\n let currentBalance: string;\n\n try {\n currentBalance = await getLiveTokenBalance(\n messenger,\n from,\n sourceChainId,\n normalizedSourceTokenAddress,\n );\n } catch (error) {\n throw new Error(\n `Cannot validate payment token balance - ${(error as Error).message}`,\n );\n }\n\n const requiredAmount = new BigNumber(quote.sourceAmount.raw);\n const balance = new BigNumber(currentBalance);\n\n log('Validating source balance', {\n from,\n sourceChainId,\n sourceTokenAddress,\n currentBalance,\n requiredAmount: requiredAmount.toString(10),\n });\n\n if (balance.isLessThan(requiredAmount)) {\n throw new Error(\n `Insufficient source token balance for relay deposit. ` +\n `Required: ${requiredAmount.toString(10)}, ` +\n `Available: ${balance.toString(10)}`,\n );\n }\n}\n\n/**\n * Submit transactions for a relay quote.\n *\n * On EIP-7702 supported chains, combines the source calls via\n * getDelegationTransaction and submits through Relay's /execute endpoint\n * (gasless — Relay's relayer pays origin gas).\n *\n * On other chains, adds the transactions directly via the\n * TransactionController and waits for on-chain confirmation.\n *\n * @param quote - Relay quote.\n * @param transaction - Original transaction meta.\n * @param messenger - Controller messenger.\n * @returns Hash of the last submitted transaction.\n */\nasync function submitTransactions(\n quote: TransactionPayQuote<RelayQuote>,\n transaction: TransactionMeta,\n messenger: TransactionPayControllerMessenger,\n): Promise<Hex> {\n // In post-quote flows (e.g. Predict withdraw), the source tokens are held in\n // the Safe — not the EOA — and only become available after the original tx\n // executes as part of the batch. Skip the EOA balance check here.\n if (!quote.request.isPostQuote && !quote.request.paymentOverride) {\n await validateSourceBalance(quote, messenger);\n }\n\n const { allParams, normalizedParams } = await buildRelaySubmitParams({\n messenger,\n quote,\n transaction,\n });\n\n if (quote.original.metamask.isExecute) {\n return await submitViaRelayExecute(\n quote,\n transaction,\n messenger,\n allParams,\n );\n }\n\n return await submitViaTransactionController(\n quote,\n transaction,\n messenger,\n normalizedParams,\n allParams,\n );\n}\n\nfunction getRelayTransactionStepData(\n quote: TransactionPayQuote<RelayQuote>,\n): RelayTransactionStep['items'][0]['data'][] {\n const { steps } = quote.original;\n const supportedStepKinds = ['transaction', 'signature'];\n const invalidKind = steps.find(\n (step) => !supportedStepKinds.includes(step.kind),\n )?.kind;\n\n if (invalidKind) {\n throw new Error(`Unsupported step kind: ${invalidKind}`);\n }\n\n const txSteps = steps.filter(\n (step): step is RelayTransactionStep => step.kind === 'transaction',\n );\n\n return txSteps\n .flatMap((step) => step.items)\n .map((item) => item.data)\n .filter((data): data is RelayTransactionStep['items'][0]['data'] =>\n isRelayTransactionStepData(data),\n );\n}\n\nasync function buildRelaySubmitParams({\n messenger,\n quote,\n transaction,\n}: {\n messenger: TransactionPayControllerMessenger;\n quote: TransactionPayQuote<RelayQuote>;\n transaction: TransactionMeta;\n}): Promise<RelaySubmitParams> {\n const params = getRelayTransactionStepData(quote);\n const normalizedParams = params.map((singleParams) =>\n normalizeParams(singleParams, messenger),\n );\n\n // For post-quote flows, prepend the original transaction so it gets\n // included in the batch alongside the relay deposit(s).\n // This always results in multiple params, so it takes the batch path.\n // When an accountOverride is set (detected by `from` divergence between the\n // quote and the original tx), the override account does not directly hold\n // the funds for the original call, so the prepended tx is replaced with a\n // delegation tx that redeems the original call on its behalf.\n const { isPostQuote } = quote.request;\n const hasAccountOverride =\n quote.request.from.toLowerCase() !==\n (transaction.txParams.from as Hex).toLowerCase();\n\n // Non-atomic flows are excluded from the paymentOverride prepend: their\n // second leg is submitted separately by `submitPostNonAtomic` after\n // Relay completion, so prepending here would double-embed the vault deposit.\n // Cross-chain atomic flows (e.g. `moneyAccountWithdraw` on Monad settling\n // USDC on Arbitrum for Perps) still need the source-side vault withdraw +\n // transfer prepended here so Relay has funds to bridge.\n const isNonAtomic = quote.request.atomic === false;\n\n let allParams = normalizedParams;\n\n if (quote.request.paymentOverride && !isNonAtomic) {\n const { transactionData } = messenger.call(\n 'TransactionPayController:getState',\n );\n\n const { calls: overrideTxs } = await messenger.call(\n 'TransactionPayController:getPaymentOverrideData',\n {\n amount: quote.sourceAmount.human,\n transaction,\n transactionData: transactionData[transaction.id],\n },\n );\n\n if (overrideTxs.length > 0) {\n allParams = [\n ...(overrideTxs as TransactionParams[]),\n ...normalizedParams,\n ];\n }\n } else if (isPostQuote && transaction.txParams.to) {\n const prependedParams = hasAccountOverride\n ? await buildDelegatedOriginalParams(\n transaction,\n messenger,\n normalizedParams[0],\n )\n : ({\n data: transaction.txParams.data as Hex | undefined,\n from: transaction.txParams.from,\n maxFeePerGas: normalizedParams[0]?.maxFeePerGas,\n maxPriorityFeePerGas: normalizedParams[0]?.maxPriorityFeePerGas,\n to: transaction.txParams.to,\n value: transaction.txParams.value as Hex | undefined,\n } as TransactionParams);\n\n allParams = [prependedParams, ...normalizedParams];\n }\n\n return { allParams, normalizedParams };\n}\n\nfunction isRelayTransactionStepData(\n data: RelayTransactionStep['items'][0]['data'],\n): data is RelayTransactionStep['items'][0]['data'] {\n const maybeStepData = data as { to?: unknown };\n return maybeStepData.to !== undefined;\n}\n\n/**\n * Build TransactionParams for a delegation that redeems the original\n * post-quote transaction on behalf of the override account. Used when the\n * override account cannot execute the original call directly.\n *\n * The original tx is already on the correct chain and from the money\n * account, so it can be passed through to `getDelegationTransaction`\n * unchanged.\n *\n * @param transaction - Original transaction meta to be redeemed.\n * @param messenger - Controller messenger.\n * @param relayParams - Optional relay params to copy gas fee fields from.\n * @returns Transaction params for the delegation tx.\n */\nasync function buildDelegatedOriginalParams(\n transaction: TransactionMeta,\n messenger: TransactionPayControllerMessenger,\n relayParams?: TransactionParams,\n): Promise<TransactionParams> {\n const delegation = await messenger.call(\n 'TransactionPayController:getDelegationTransaction',\n { transaction },\n );\n\n log('Delegation result for prepended original tx', delegation);\n\n return {\n data: delegation.data,\n from: transaction.txParams.from,\n maxFeePerGas: relayParams?.maxFeePerGas,\n maxPriorityFeePerGas: relayParams?.maxPriorityFeePerGas,\n to: delegation.to,\n value: delegation.value,\n };\n}\n\n/**\n * Submit source transactions via the TransactionController.\n *\n * Uses addTransaction for single params or addTransactionBatch for\n * multiple params. Waits for all transactions to be confirmed on-chain.\n *\n * @param quote - Relay quote.\n * @param transaction - Original transaction meta.\n * @param messenger - Controller messenger.\n * @param normalizedParams - Normalized relay-only params (without prepended original tx).\n * @param allParams - All params including any prepended original tx for post-quote flows.\n * @returns Hash of the last submitted transaction.\n */\nasync function submitViaTransactionController(\n quote: TransactionPayQuote<RelayQuote>,\n transaction: TransactionMeta,\n messenger: TransactionPayControllerMessenger,\n normalizedParams: TransactionParams[],\n allParams: TransactionParams[],\n): Promise<Hex> {\n const transactionIds: string[] = [];\n const { from, sourceChainId, sourceTokenAddress } = quote.request;\n const { isPostQuote } = quote.request;\n\n const networkClientId = getNetworkClientId(messenger, sourceChainId);\n\n log('Adding transactions', {\n normalizedParams: allParams,\n sourceChainId,\n from,\n networkClientId,\n });\n\n const { end } = collectTransactionIds(\n sourceChainId,\n from,\n messenger,\n (transactionId) => {\n transactionIds.push(transactionId);\n\n updateTransaction(\n {\n transactionId: transaction.id,\n messenger,\n note: 'Add required transaction ID from Relay submission',\n },\n (tx) => {\n tx.requiredTransactionIds ??= [];\n tx.requiredTransactionIds.push(transactionId);\n },\n );\n },\n );\n\n let result: { result: Promise<string> } | undefined;\n\n // Use the sponsorship decision from the quote so the submitted gas limits\n // match the quoted source network fee.\n const isSourceGasFeeSponsored = Boolean(\n quote.original.metamask.isSourceGasFeeSponsored,\n );\n\n const gasFeeToken =\n !isSourceGasFeeSponsored && quote.fees.isSourceGasFeeToken\n ? sourceTokenAddress\n : undefined;\n\n log('Submitting transactions', {\n isPostQuote,\n gasFeeToken,\n allParamsCount: allParams.length,\n });\n\n const isSameChain =\n quote.original.details.currencyIn.currency.chainId ===\n quote.original.details.currencyOut.currency.chainId;\n\n // Single-tx keeps address/chainId only — TransactionController re-signs with\n // `from`. Batch may need a different signer (Money Account) than the batch\n // payer (EOA account override), so preserve the full pre-signed list.\n const authorizationList: AuthorizationList | undefined =\n isSameChain && quote.original.request.authorizationList?.length\n ? quote.original.request.authorizationList.map((a) => ({\n address: a.address,\n chainId: toHex(a.chainId),\n }))\n : undefined;\n\n const hasAccountOverride =\n quote.request.from.toLowerCase() !==\n (transaction.txParams.from as Hex).toLowerCase();\n\n const batchAuthorizationList =\n isSameChain &&\n hasAccountOverride &&\n quote.original.request.authorizationList?.length\n ? mapSignedQuoteAuthorizationList(\n quote.original.request.authorizationList,\n )\n : undefined;\n\n const { metamask } = quote.original;\n const { gasLimits } = metamask;\n\n if (allParams.length === 1) {\n const transactionParams = {\n ...allParams[0],\n authorizationList,\n gas: toHex(gasLimits[0]),\n };\n\n result = await messenger.call(\n 'TransactionController:addTransaction',\n transactionParams,\n {\n gasFeeToken,\n networkClientId,\n origin: ORIGIN_METAMASK,\n isInternal: true,\n forceIsGasFeeSponsored: isSourceGasFeeSponsored,\n requireApproval: false,\n type: getRelayDepositType(getEffectiveTransactionType(transaction)),\n },\n );\n } else {\n await messenger.call(\n 'TransactionController:addTransactionBatch',\n buildRelayTransactionBatchRequest({\n allParams,\n authorizationList: batchAuthorizationList,\n forceIsGasFeeSponsored: isSourceGasFeeSponsored,\n messenger,\n normalizedParams,\n quote,\n transaction,\n }),\n );\n }\n\n end();\n\n log('Added transactions', transactionIds);\n\n if (!transactionIds.length) {\n throw new Error('No transactions submitted');\n }\n\n if (result) {\n const txHash = await result.result;\n log('Submitted transaction', txHash);\n }\n\n await Promise.all(\n transactionIds.map((txId) => waitForTransactionConfirmed(txId, messenger)),\n );\n\n log('All transactions confirmed', transactionIds);\n\n const hash = getTransaction(transactionIds.slice(-1)[0], messenger)?.hash;\n\n if (!hash) {\n throw new Error('Missing transaction hash');\n }\n\n return hash as Hex;\n}\n\nfunction mapSignedQuoteAuthorizationList(\n authorizationList: NonNullable<RelayQuote['request']['authorizationList']>,\n): AuthorizationList {\n return authorizationList.map((a) => ({\n address: a.address,\n chainId: toHex(a.chainId),\n nonce: toHex(a.nonce),\n r: a.r,\n s: a.s,\n yParity: toHex(a.yParity),\n }));\n}\n\nfunction buildRelayTransactionBatchRequest({\n allParams,\n authorizationList,\n forceIsGasFeeSponsored,\n messenger,\n normalizedParams,\n quote,\n transaction,\n}: {\n allParams: TransactionParams[];\n authorizationList?: AuthorizationList;\n forceIsGasFeeSponsored: boolean;\n messenger: TransactionPayControllerMessenger;\n normalizedParams: TransactionParams[];\n quote: TransactionPayQuote<RelayQuote>;\n transaction: TransactionMeta;\n}): TransactionBatchRequest {\n const { from, sourceChainId, sourceTokenAddress } = quote.request;\n const { metamask } = quote.original;\n const networkClientId = getNetworkClientId(messenger, sourceChainId);\n const gasFeeToken = quote.fees?.isSourceGasFeeToken\n ? sourceTokenAddress\n : undefined;\n const gasLimit7702 = getGasLimit7702(quote);\n\n return {\n from,\n ...(authorizationList?.length ? { authorizationList } : {}),\n disable7702: !gasLimit7702,\n disableHook: Boolean(gasLimit7702),\n disableSequential: Boolean(gasLimit7702),\n gasFeeToken,\n gasLimit7702,\n networkClientId,\n origin: ORIGIN_METAMASK,\n isInternal: true,\n forceIsGasFeeSponsored,\n overwriteUpgrade: true,\n requireApproval: false,\n transactions: buildRelayBatchTransactions({\n allParams,\n gasLimit7702,\n gasLimits: metamask.gasLimits,\n normalizedParams,\n transaction,\n }),\n };\n}\n\nfunction buildRelayBatchTransactions({\n allParams,\n gasLimit7702,\n gasLimits,\n normalizedParams,\n transaction,\n}: {\n allParams: TransactionParams[];\n gasLimit7702?: Hex;\n gasLimits: number[];\n normalizedParams: TransactionParams[];\n transaction: TransactionMeta;\n}): TransactionBatchSingleRequest[] {\n const prependCount = allParams.length - normalizedParams.length;\n\n return allParams.map((singleParams, index) => {\n const gasLimit = gasLimits[index];\n const gas =\n gasLimit === undefined || gasLimit7702 ? undefined : toHex(gasLimit);\n\n return {\n params: {\n data: singleParams.data as Hex,\n gas,\n maxFeePerGas: singleParams.maxFeePerGas as Hex,\n maxPriorityFeePerGas: singleParams.maxPriorityFeePerGas as Hex,\n to: singleParams.to as Hex,\n value: singleParams.value as Hex,\n },\n type: getTransactionType(\n prependCount,\n index,\n getEffectiveTransactionType(transaction),\n normalizedParams.length,\n ),\n };\n });\n}\n\nfunction getGasLimit7702(\n quote: TransactionPayQuote<RelayQuote>,\n): Hex | undefined {\n const { gasLimits, is7702 } = quote.original.metamask;\n const gasLimit = gasLimits[0];\n\n return is7702 && gasLimit !== undefined ? toHex(gasLimit) : undefined;\n}\n\n/**\n * Determine the transaction type for a given index in the batch.\n *\n * @param prependCount - Number of non-relay txs prepended to the batch.\n * @param index - Index of the transaction in the batch.\n * @param originalType - Type of the original transaction (used for prepended indices).\n * @param relayParamCount - Number of relay-only params (excludes prepended txs).\n * @returns The transaction type.\n */\nfunction getTransactionType(\n prependCount: number,\n index: number,\n originalType: TransactionMeta['type'],\n relayParamCount: number,\n): TransactionMeta['type'] {\n if (prependCount > 0 && index < prependCount) {\n return originalType;\n }\n\n const relayIndex = index - prependCount;\n\n const depositType = getRelayDepositType(originalType);\n\n // Single relay step is always a deposit (no approval needed)\n if (relayParamCount === 1) {\n return depositType;\n }\n\n return relayIndex === 0 ? TransactionType.tokenMethodApprove : depositType;\n}\n\n/**\n * Get the relay deposit transaction type based on the parent transaction type.\n *\n * @param originalType - Type of the parent transaction.\n * @returns The mapped relay deposit type, or `relayDeposit` as a fallback.\n */\nfunction getRelayDepositType(\n originalType: TransactionMeta['type'],\n): TransactionType {\n return (\n (originalType && RELAY_DEPOSIT_TYPES[originalType]) ??\n TransactionType.relayDeposit\n );\n}\n\n/**\n * Get the effective transaction type, resolving through nested transactions\n * when the top-level type is `batch`.\n *\n * @param transaction - The transaction metadata.\n * @returns The resolved type from nested transactions, or the top-level type.\n */\nfunction getEffectiveTransactionType(\n transaction: TransactionMeta,\n): TransactionMeta['type'] {\n if (transaction.type !== TransactionType.batch) {\n return transaction.type;\n }\n\n const nestedType = transaction.nestedTransactions?.find(\n (tx) => tx.type && RELAY_DEPOSIT_TYPES[tx.type] !== undefined,\n )?.type;\n\n return nestedType ?? transaction.type;\n}\n"]}
1
+ {"version":3,"file":"relay-submit.js","sourceRoot":"","sources":["../../../src/strategy/relay/relay-submit.ts"],"names":[],"mappings":"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","sourcesContent":["import { ORIGIN_METAMASK, toHex } from '@metamask/controller-utils';\nimport { TransactionType } from '@metamask/transaction-controller';\nimport type {\n AuthorizationList,\n BatchTransactionParams,\n TransactionBatchRequest,\n TransactionBatchSingleRequest,\n TransactionMeta,\n TransactionParams,\n} from '@metamask/transaction-controller';\nimport type { Hex } from '@metamask/utils';\nimport { createModuleLogger } from '@metamask/utils';\nimport { BigNumber } from 'bignumber.js';\n\nimport { projectLogger } from '../../logger.js';\nimport type {\n PayStrategyExecuteRequest,\n TransactionPayControllerMessenger,\n TransactionPayQuote,\n} from '../../types.js';\nimport { accountSupports7702 } from '../../utils/7702.js';\nimport { prefixError } from '../../utils/error-prefix.js';\nimport {\n getFeatureFlags,\n getRelayPollingInterval,\n getRelayPollingTimeout,\n} from '../../utils/feature-flags.js';\nimport { submitMoneyAccountVaultDeposit } from '../../utils/ma-vault-deposit.js';\nimport { getNetworkClientId } from '../../utils/provider.js';\nimport {\n getLiveTokenBalance,\n normalizeTokenAddress,\n TokenAddressTarget,\n} from '../../utils/token.js';\nimport {\n collectTransactionIds,\n getTransaction,\n getTransferredAmountFromTxHash,\n updateTransaction,\n waitForTransactionConfirmed,\n} from '../../utils/transaction.js';\nimport {\n FALLBACK_HASH,\n RELAY_DEPOSIT_TYPES,\n RELAY_FAILURE_STATUSES,\n RELAY_PENDING_STATUSES,\n} from './constants.js';\nimport { submitHyperliquidWithdraw } from './hyperliquid-withdraw.js';\nimport {\n sweepPolymarketDepositWallet,\n submitPolymarketWithdraw,\n} from './polymarket/withdraw.js';\nimport { getRelayStatus } from './relay-api.js';\nimport { submitViaRelayExecute } from './relay-submit-execute.js';\nimport type {\n RelayCompletionOutcome,\n RelayQuote,\n RelayStatus,\n RelayStatusResponse,\n RelayTransactionStep,\n} from './types.js';\n\nconst log = createModuleLogger(projectLogger, 'relay-strategy');\nconst RELAY_ERROR_PREFIX = 'Relay: ';\n\ntype RelaySubmitParams = {\n allParams: TransactionParams[];\n normalizedParams: TransactionParams[];\n};\n\nexport type RelaySubmitCalls = { calls: TransactionParams[] };\n\n/**\n * Submits Relay quotes.\n *\n * @param request - Request object.\n * @returns An object containing the transaction hash if available.\n */\nexport async function submitRelayQuotes(\n request: PayStrategyExecuteRequest<RelayQuote>,\n): Promise<{ transactionHash?: Hex }> {\n try {\n return await submitRelayQuotesInternal(request);\n } catch (error) {\n throw prefixError(error, RELAY_ERROR_PREFIX);\n }\n}\n\nexport async function getRelaySubmitCalls({\n messenger,\n quote,\n transaction,\n}: {\n messenger: TransactionPayControllerMessenger;\n quote: TransactionPayQuote<RelayQuote>;\n transaction: TransactionMeta;\n}): Promise<RelaySubmitCalls> {\n const { allParams } = await buildRelaySubmitParams({\n messenger,\n quote,\n transaction,\n });\n return { calls: allParams };\n}\n\nasync function submitRelayQuotesInternal(\n request: PayStrategyExecuteRequest<RelayQuote>,\n): Promise<{ transactionHash?: Hex }> {\n log('Executing quotes', request);\n\n const { quotes, messenger, transaction } = request;\n\n if (!quotes.length) {\n throw new Error('No quotes to submit');\n }\n\n let transactionHash: Hex | undefined;\n\n for (const quote of quotes) {\n ({ transactionHash } = await executeSingleQuote(\n quote,\n messenger,\n transaction,\n ));\n }\n\n /* istanbul ignore if: concrete Relay submit paths return a hash/fallback or throw. */\n if (transactionHash === undefined) {\n throw new Error('Missing transaction hash');\n }\n\n return { transactionHash };\n}\n\n/**\n * Executes a single Relay quote.\n *\n * @param quote - Relay quote to execute.\n * @param messenger - Controller messenger.\n * @param transaction - Original transaction meta.\n * @returns An object containing the transaction hash if available.\n */\nasync function executeSingleQuote(\n quote: TransactionPayQuote<RelayQuote>,\n messenger: TransactionPayControllerMessenger,\n transaction: TransactionMeta,\n): Promise<{ transactionHash?: Hex }> {\n log('Executing single quote', quote);\n\n const isPolymarket = Boolean(quote.request.isPolymarketDepositWallet);\n\n updateTransaction(\n {\n transactionId: transaction.id,\n messenger,\n note: 'Remove nonce from skipped transaction',\n },\n (tx) => {\n tx.txParams.nonce = undefined;\n },\n );\n\n let polymarketPreSubmitUsdceBalance = 0n;\n let submittedSourceHash: Hex | undefined;\n\n // Shallow clone so the server-returned requestId can be written back (state is frozen by Immer).\n const mutableOriginal: RelayQuote = { ...quote.original };\n\n if (quote.request.isHyperliquidSource) {\n await submitHyperliquidWithdraw(quote, quote.request.from, messenger);\n } else if (isPolymarket) {\n const { sourceHash, preSubmitUsdceBalance } =\n await submitPolymarketWithdraw(quote, quote.request.from, messenger);\n polymarketPreSubmitUsdceBalance = preSubmitUsdceBalance;\n setRelaySourceHash(transaction, messenger, sourceHash);\n } else {\n submittedSourceHash = await submitTransactions(\n { ...quote, original: mutableOriginal },\n transaction,\n messenger,\n );\n }\n\n const completion = await waitForRelayCompletion(mutableOriginal, messenger, {\n onSourceHash: (hash) => {\n log('Source hash received', hash);\n setRelaySourceHash(transaction, messenger, hash);\n },\n tolerateFailure: isPolymarket,\n });\n\n log('Relay request completed', completion);\n\n if (isPolymarket) {\n await sweepPolymarketDepositWallet(quote.request.from, messenger, {\n relayStatus: completion.status,\n preSubmitUsdceBalance: polymarketPreSubmitUsdceBalance,\n });\n\n if (completion.status !== 'success') {\n throw new Error(`Request failed with status: ${completion.status}`);\n }\n }\n\n updateTransaction(\n {\n transactionId: transaction.id,\n messenger,\n note: 'Intent complete after Relay completion',\n },\n (tx) => {\n tx.isIntentComplete = true;\n },\n );\n\n // Non-atomic flow: the quote bridged funds to `recipient` without embedding\n // the second leg. Now that Relay has settled, resolve the settled amount from\n // the on-chain Transfer log and submit the second-leg batch (approve + vault\n // deposit) sponsored from `recipient`.\n if (quote.request.atomic === false && completion.status === 'success') {\n const { transactionHash } = await submitPostNonAtomic({\n completion,\n messenger,\n quote,\n submittedSourceHash,\n transaction,\n });\n\n return { transactionHash: transactionHash ?? completion.targetHash };\n }\n\n return { transactionHash: completion.targetHash };\n}\n\n/**\n * Runs the second leg of a non-atomic Relay quote. Resolves the settled amount\n * from the on-chain Transfer log, then submits the batch via\n * `submitMoneyAccountVaultDeposit`. Post-quote flows fetch pre-built calls via\n * the client `getPaymentOverrideData` callback; non-post-quote flows fall\n * through to the transaction's own nested calls re-encoded via\n * `getAmountData`. Funds settled on `quote.request.recipient`, derived at\n * quote time by `resolveNonAtomicRecipient`.\n *\n * @param options - Submit options.\n * @param options.completion - Outcome of `waitForRelayCompletion`.\n * @param options.messenger - Controller messenger.\n * @param options.quote - The Relay quote that was submitted.\n * @param options.submittedSourceHash - Hash of the submitted source\n * transaction, used to read the settled amount when Relay skips polling on\n * same-chain flows.\n * @param options.transaction - Original transaction meta.\n * @returns Hash of the final submitted child transaction, if available.\n */\nasync function submitPostNonAtomic({\n completion,\n messenger,\n quote,\n submittedSourceHash,\n transaction,\n}: {\n completion: RelayCompletionOutcome;\n messenger: TransactionPayControllerMessenger;\n quote: TransactionPayQuote<RelayQuote>;\n submittedSourceHash?: Hex;\n transaction: TransactionMeta;\n}): Promise<{ transactionHash?: Hex }> {\n const sourceAmountRaw = await resolveSettledAmount({\n completion,\n messenger,\n quote,\n submittedSourceHash,\n });\n\n const override = quote.request.isPostQuote\n ? await buildPostQuoteDepositCalls({\n messenger,\n sourceAmountRaw,\n transaction,\n quote,\n })\n : undefined;\n\n const recipient =\n override?.recipient ?? quote.request.recipient ?? quote.request.from;\n\n return submitMoneyAccountVaultDeposit({\n messenger,\n moneyAccountAddress: recipient,\n depositCalls: override?.calls,\n sourceAmountRaw,\n transaction,\n vaultDisabled: false,\n });\n}\n\n/**\n * Builds the post-completion batch for a post-quote flow whose parent\n * transaction carries no vault calls. Delegates to the client\n * `getPaymentOverrideData` callback with the settled amount.\n *\n * The callback MUST return a non-empty batch. Post-quote parent metas (e.g.\n * Perps/Predict withdraws) carry no vault-side nested calls, so falling back\n * to `getAmountData` in `resolveVaultDepositBatch` cannot recover the second\n * leg once Relay has already settled funds to the recipient. Throw eagerly so\n * the failure surfaces at the correct call site with an actionable message.\n *\n * The callback may also return the `recipient` that funds settled on, which the\n * caller prefers as the source of truth for the second-leg account.\n *\n * @param options - Build options.\n * @param options.messenger - Controller messenger.\n * @param options.quote - The Relay quote that was submitted.\n * @param options.sourceAmountRaw - Settled amount in raw units.\n * @param options.transaction - Original transaction meta.\n * @returns The batch calls and optional recipient.\n * @throws If the callback returns an empty batch.\n */\nasync function buildPostQuoteDepositCalls({\n messenger,\n quote,\n sourceAmountRaw,\n transaction,\n}: {\n messenger: TransactionPayControllerMessenger;\n quote: TransactionPayQuote<RelayQuote>;\n sourceAmountRaw: string;\n transaction: TransactionMeta;\n}): Promise<{ calls: BatchTransactionParams[]; recipient?: Hex }> {\n const { transactionData } = messenger.call(\n 'TransactionPayController:getState',\n );\n\n const { decimals } = quote.original.details.currencyOut.currency;\n const amountHuman = new BigNumber(sourceAmountRaw)\n .shiftedBy(-decimals)\n .toFixed();\n\n const { calls, recipient } = await messenger.call(\n 'TransactionPayController:getPaymentOverrideData',\n {\n amount: amountHuman,\n transaction,\n transactionData: transactionData[transaction.id],\n },\n );\n\n if (!calls.length) {\n throw new Error('Missing post-quote deposit calls');\n }\n\n return { calls, recipient };\n}\n\n/**\n * Resolves the actual amount that landed on the recipient after a Relay bridge.\n *\n * Cross-chain relays surface a real target-chain hash from polling; same-chain\n * relays skip polling (the `FALLBACK_HASH` placeholder) but the submitted\n * source transaction itself moved the funds, so its hash is read instead. In\n * both cases the exact settled amount comes from the on-chain Transfer log; a\n * read failure or missing amount throws rather than guessing, since using the\n * quote minimum would knowingly strand dust and defeat an EXACT_INPUT quote.\n *\n * Relay execute submissions return `FALLBACK_HASH` instead of a real source\n * hash, leaving nothing to read; only then is the quote's minimum output used\n * as the last available source.\n *\n * @param options - Resolution options.\n * @param options.completion - Outcome of `waitForRelayCompletion`.\n * @param options.messenger - Controller messenger.\n * @param options.quote - The Relay quote that was submitted.\n * @param options.submittedSourceHash - Hash of the submitted source\n * transaction, used when polling was skipped on same-chain flows.\n * @returns The raw (atomic) settled amount as a decimal string.\n */\nasync function resolveSettledAmount({\n completion,\n messenger,\n quote,\n submittedSourceHash,\n}: {\n completion: RelayCompletionOutcome;\n messenger: TransactionPayControllerMessenger;\n quote: TransactionPayQuote<RelayQuote>;\n submittedSourceHash?: Hex;\n}): Promise<string> {\n const recipient = (quote.request.recipient ?? quote.request.from) as\n | Hex\n | undefined;\n\n const isSameChain =\n quote.request.sourceChainId === quote.request.targetChainId;\n\n const hasPolledTargetHash = Boolean(\n completion.targetHash && completion.targetHash !== FALLBACK_HASH,\n );\n\n let settlementHash: Hex | undefined;\n\n if (hasPolledTargetHash) {\n settlementHash = completion.targetHash;\n } else if (isSameChain && submittedSourceHash !== FALLBACK_HASH) {\n settlementHash = submittedSourceHash;\n }\n\n if (recipient && settlementHash) {\n const { amountRaw: onChainAmount } = await getTransferredAmountFromTxHash({\n messenger,\n txHash: settlementHash,\n chainId: quote.request.targetChainId,\n tokenAddress: quote.request.targetTokenAddress,\n walletAddress: recipient,\n });\n\n if (!onChainAmount) {\n throw new Error(\n 'Cannot resolve settled amount from on-chain transaction',\n );\n }\n\n log('Resolved settled amount from on-chain transaction', {\n settlementHash,\n onChainAmount,\n });\n\n return onChainAmount;\n }\n\n const fallback = quote.original.details.currencyOut.minimumAmount;\n\n if (!fallback) {\n throw new Error('Cannot resolve post-completion amount');\n }\n\n log('Resolved settled amount from quote minimum output', {\n fallback,\n targetHash: completion.targetHash,\n });\n\n return fallback;\n}\n\nfunction setRelaySourceHash(\n transaction: TransactionMeta,\n messenger: TransactionPayControllerMessenger,\n sourceHash: Hex,\n): void {\n updateTransaction(\n {\n transactionId: transaction.id,\n messenger,\n note: 'Add source hash from Relay status',\n },\n (tx) => {\n tx.metamaskPay ??= {};\n tx.metamaskPay.sourceHash = sourceHash;\n },\n );\n}\n\nasync function waitForRelayCompletion(\n quote: RelayQuote,\n messenger: TransactionPayControllerMessenger,\n options: {\n onSourceHash?: (hash: Hex) => void;\n tolerateFailure?: boolean;\n },\n): Promise<RelayCompletionOutcome> {\n const { onSourceHash, tolerateFailure } = options;\n\n const isSameChain =\n quote.details.currencyIn.currency.chainId ===\n quote.details.currencyOut.currency.chainId;\n\n const isSingleDepositStep =\n quote.steps.length === 1 && quote.steps[0].id === 'deposit';\n\n if (isSameChain && !isSingleDepositStep) {\n log('Skipping polling as same chain');\n return { status: 'success', targetHash: FALLBACK_HASH };\n }\n\n const { requestId } = quote.steps[0];\n\n const pollingInterval = getRelayPollingInterval(messenger);\n const pollingTimeout = getRelayPollingTimeout(messenger);\n const hasTimeout = pollingTimeout !== undefined && pollingTimeout > 0;\n\n log('Polling config', { pollingInterval, pollingTimeout });\n const startTime = Date.now();\n\n let sourceHashEmitted = false;\n let lastStatus: RelayStatus | undefined;\n\n while (true) {\n let status: RelayStatusResponse | undefined;\n\n try {\n status = await getRelayStatus(requestId);\n } catch (error) {\n log('Polling network error', error);\n }\n\n if (status) {\n log('Polled status', status.status, status);\n lastStatus = status.status;\n\n if (!sourceHashEmitted && status.inTxHashes?.length) {\n sourceHashEmitted = true;\n onSourceHash?.(status.inTxHashes[0] as Hex);\n }\n\n if (status.status === 'success') {\n const targetHash =\n (status.txHashes?.slice(-1)[0] as Hex | undefined) ?? FALLBACK_HASH;\n return { status: 'success', targetHash };\n }\n\n if (!RELAY_PENDING_STATUSES.includes(status.status)) {\n if (RELAY_FAILURE_STATUSES.includes(status.status)) {\n if (tolerateFailure) {\n log('Relay ended in failure status (tolerated)', status.status);\n return { status: status.status };\n }\n throw new Error(`Request failed with status: ${status.status}`);\n }\n throw new Error(`Unrecognized status: ${status.status}`);\n }\n }\n\n if (hasTimeout && Date.now() - startTime >= pollingTimeout) {\n const statusDetail = lastStatus ? ` (last status: ${lastStatus})` : '';\n if (tolerateFailure) {\n log('Relay polling timed out (tolerated)', statusDetail);\n return { status: 'timeout' };\n }\n throw new Error(`Polling timed out${statusDetail}`);\n }\n\n await new Promise((resolve) => setTimeout(resolve, pollingInterval));\n }\n}\n\n/**\n * Normalize the parameters from a relay quote step to match TransactionParams.\n *\n * @param params - Parameters from a relay quote step.\n * @param messenger - Controller messenger.\n * @returns Normalized transaction parameters.\n */\nfunction normalizeParams(\n params: RelayTransactionStep['items'][0]['data'],\n messenger: TransactionPayControllerMessenger,\n): TransactionParams {\n const featureFlags = getFeatureFlags(messenger);\n\n return {\n data: params.data,\n from: params.from,\n gas: toHex(params.gas ?? featureFlags.relayFallbackGas.max),\n maxFeePerGas:\n params.maxFeePerGas === undefined\n ? undefined\n : toHex(params.maxFeePerGas),\n maxPriorityFeePerGas:\n params.maxPriorityFeePerGas === undefined\n ? undefined\n : toHex(params.maxPriorityFeePerGas),\n to: params.to,\n value: toHex(params.value ?? '0'),\n };\n}\n\n/**\n * Validate the source token balance is sufficient for the relay deposit.\n *\n * Reads the live balance from the network and compares it against the quote's\n * required source amount to prevent submitting transactions that will revert\n * on-chain due to insufficient balance.\n *\n * @param quote - Relay quote containing the required source amount.\n * @param messenger - Controller messenger.\n */\nasync function validateSourceBalance(\n quote: TransactionPayQuote<RelayQuote>,\n messenger: TransactionPayControllerMessenger,\n): Promise<void> {\n const { from, sourceChainId, sourceTokenAddress } = quote.request;\n\n const normalizedSourceTokenAddress = normalizeTokenAddress(\n sourceTokenAddress,\n sourceChainId,\n TokenAddressTarget.MetaMask,\n );\n\n let currentBalance: string;\n\n try {\n currentBalance = await getLiveTokenBalance(\n messenger,\n from,\n sourceChainId,\n normalizedSourceTokenAddress,\n );\n } catch (error) {\n throw new Error(\n `Cannot validate payment token balance - ${(error as Error).message}`,\n );\n }\n\n const requiredAmount = new BigNumber(quote.sourceAmount.raw);\n const balance = new BigNumber(currentBalance);\n\n log('Validating source balance', {\n from,\n sourceChainId,\n sourceTokenAddress,\n currentBalance,\n requiredAmount: requiredAmount.toString(10),\n });\n\n if (balance.isLessThan(requiredAmount)) {\n throw new Error(\n `Insufficient source token balance for relay deposit. ` +\n `Required: ${requiredAmount.toString(10)}, ` +\n `Available: ${balance.toString(10)}`,\n );\n }\n}\n\n/**\n * Submit transactions for a relay quote.\n *\n * On EIP-7702 supported chains, combines the source calls via\n * getDelegationTransaction and submits through Relay's /execute endpoint\n * (gasless — Relay's relayer pays origin gas).\n *\n * On other chains, adds the transactions directly via the\n * TransactionController and waits for on-chain confirmation.\n *\n * @param quote - Relay quote.\n * @param transaction - Original transaction meta.\n * @param messenger - Controller messenger.\n * @returns Hash of the last submitted transaction.\n */\nasync function submitTransactions(\n quote: TransactionPayQuote<RelayQuote>,\n transaction: TransactionMeta,\n messenger: TransactionPayControllerMessenger,\n): Promise<Hex> {\n // In post-quote flows (e.g. Predict withdraw), the source tokens are held in\n // the Safe — not the EOA — and only become available after the original tx\n // executes as part of the batch. Skip the EOA balance check here.\n if (!quote.request.isPostQuote && !quote.request.paymentOverride) {\n await validateSourceBalance(quote, messenger);\n }\n\n const { allParams, normalizedParams } = await buildRelaySubmitParams({\n messenger,\n quote,\n transaction,\n });\n\n if (quote.original.metamask.isExecute) {\n return await submitViaRelayExecute(\n quote,\n transaction,\n messenger,\n allParams,\n );\n }\n\n return await submitViaTransactionController(\n quote,\n transaction,\n messenger,\n normalizedParams,\n allParams,\n );\n}\n\nfunction getRelayTransactionStepData(\n quote: TransactionPayQuote<RelayQuote>,\n): RelayTransactionStep['items'][0]['data'][] {\n const { steps } = quote.original;\n const supportedStepKinds = ['transaction', 'signature'];\n const invalidKind = steps.find(\n (step) => !supportedStepKinds.includes(step.kind),\n )?.kind;\n\n if (invalidKind) {\n throw new Error(`Unsupported step kind: ${invalidKind}`);\n }\n\n const txSteps = steps.filter(\n (step): step is RelayTransactionStep => step.kind === 'transaction',\n );\n\n return txSteps\n .flatMap((step) => step.items)\n .map((item) => item.data)\n .filter((data): data is RelayTransactionStep['items'][0]['data'] =>\n isRelayTransactionStepData(data),\n );\n}\n\nasync function buildRelaySubmitParams({\n messenger,\n quote,\n transaction,\n}: {\n messenger: TransactionPayControllerMessenger;\n quote: TransactionPayQuote<RelayQuote>;\n transaction: TransactionMeta;\n}): Promise<RelaySubmitParams> {\n const params = getRelayTransactionStepData(quote);\n const normalizedParams = params.map((singleParams) =>\n normalizeParams(singleParams, messenger),\n );\n\n // For post-quote flows, prepend the original transaction so it gets\n // included in the batch alongside the relay deposit(s).\n // This always results in multiple params, so it takes the batch path.\n // When an accountOverride is set (detected by `from` divergence between the\n // quote and the original tx), the override account does not directly hold\n // the funds for the original call, so the prepended tx is replaced with a\n // delegation tx that redeems the original call on its behalf.\n const { isPostQuote } = quote.request;\n const hasAccountOverride =\n quote.request.from.toLowerCase() !==\n (transaction.txParams.from as Hex).toLowerCase();\n\n // Non-atomic flows are excluded from the paymentOverride prepend: their\n // second leg is submitted separately by `submitPostNonAtomic` after\n // Relay completion, so prepending here would double-embed the vault deposit.\n // Cross-chain atomic flows (e.g. `moneyAccountWithdraw` on Monad settling\n // USDC on Arbitrum for Perps) still need the source-side vault withdraw +\n // transfer prepended here so Relay has funds to bridge.\n const isNonAtomic = quote.request.atomic === false;\n\n let allParams = normalizedParams;\n\n if (quote.request.paymentOverride && !isNonAtomic) {\n const { transactionData } = messenger.call(\n 'TransactionPayController:getState',\n );\n\n const { calls: overrideTxs } = await messenger.call(\n 'TransactionPayController:getPaymentOverrideData',\n {\n amount: quote.sourceAmount.human,\n transaction,\n transactionData: transactionData[transaction.id],\n },\n );\n\n if (overrideTxs.length > 0) {\n allParams = [\n ...(overrideTxs as TransactionParams[]),\n ...normalizedParams,\n ];\n }\n } else if (isPostQuote && transaction.txParams.to) {\n const prependedParams = hasAccountOverride\n ? await buildDelegatedOriginalParams(\n transaction,\n messenger,\n normalizedParams[0],\n )\n : ({\n data: transaction.txParams.data as Hex | undefined,\n from: transaction.txParams.from,\n maxFeePerGas: normalizedParams[0]?.maxFeePerGas,\n maxPriorityFeePerGas: normalizedParams[0]?.maxPriorityFeePerGas,\n to: transaction.txParams.to,\n value: transaction.txParams.value as Hex | undefined,\n } as TransactionParams);\n\n allParams = [prependedParams, ...normalizedParams];\n }\n\n return { allParams, normalizedParams };\n}\n\nfunction isRelayTransactionStepData(\n data: RelayTransactionStep['items'][0]['data'],\n): data is RelayTransactionStep['items'][0]['data'] {\n const maybeStepData = data as { to?: unknown };\n return maybeStepData.to !== undefined;\n}\n\n/**\n * Build TransactionParams for a delegation that redeems the original\n * post-quote transaction on behalf of the override account. Used when the\n * override account cannot execute the original call directly.\n *\n * The original tx is already on the correct chain and from the money\n * account, so it can be passed through to `getDelegationTransaction`\n * unchanged.\n *\n * @param transaction - Original transaction meta to be redeemed.\n * @param messenger - Controller messenger.\n * @param relayParams - Optional relay params to copy gas fee fields from.\n * @returns Transaction params for the delegation tx.\n */\nasync function buildDelegatedOriginalParams(\n transaction: TransactionMeta,\n messenger: TransactionPayControllerMessenger,\n relayParams?: TransactionParams,\n): Promise<TransactionParams> {\n const delegation = await messenger.call(\n 'TransactionPayController:getDelegationTransaction',\n { transaction },\n );\n\n log('Delegation result for prepended original tx', delegation);\n\n return {\n data: delegation.data,\n from: transaction.txParams.from,\n maxFeePerGas: relayParams?.maxFeePerGas,\n maxPriorityFeePerGas: relayParams?.maxPriorityFeePerGas,\n to: delegation.to,\n value: delegation.value,\n };\n}\n\n/**\n * Submit source transactions via the TransactionController.\n *\n * Uses addTransaction for single params or addTransactionBatch for\n * multiple params. Waits for all transactions to be confirmed on-chain.\n *\n * @param quote - Relay quote.\n * @param transaction - Original transaction meta.\n * @param messenger - Controller messenger.\n * @param normalizedParams - Normalized relay-only params (without prepended original tx).\n * @param allParams - All params including any prepended original tx for post-quote flows.\n * @returns Hash of the last submitted transaction.\n */\nasync function submitViaTransactionController(\n quote: TransactionPayQuote<RelayQuote>,\n transaction: TransactionMeta,\n messenger: TransactionPayControllerMessenger,\n normalizedParams: TransactionParams[],\n allParams: TransactionParams[],\n): Promise<Hex> {\n const transactionIds: string[] = [];\n const { from, sourceChainId, sourceTokenAddress } = quote.request;\n const { isPostQuote } = quote.request;\n\n const networkClientId = getNetworkClientId(messenger, sourceChainId);\n\n log('Adding transactions', {\n normalizedParams: allParams,\n sourceChainId,\n from,\n networkClientId,\n });\n\n const { end } = collectTransactionIds(\n sourceChainId,\n from,\n messenger,\n (transactionId) => {\n transactionIds.push(transactionId);\n\n updateTransaction(\n {\n transactionId: transaction.id,\n messenger,\n note: 'Add required transaction ID from Relay submission',\n },\n (tx) => {\n tx.requiredTransactionIds ??= [];\n tx.requiredTransactionIds.push(transactionId);\n },\n );\n },\n );\n\n let result: { result: Promise<string> } | undefined;\n\n const isSourceGasFeeSponsored =\n transaction.isGasFeeSponsored &&\n quote.request.sourceChainId === transaction.chainId &&\n quote.request.targetChainId === transaction.chainId &&\n accountSupports7702(messenger, from);\n\n const gasFeeToken =\n !isSourceGasFeeSponsored && quote.fees.isSourceGasFeeToken\n ? sourceTokenAddress\n : undefined;\n\n log('Submitting transactions', {\n isPostQuote,\n gasFeeToken,\n allParamsCount: allParams.length,\n });\n\n const isSameChain =\n quote.original.details.currencyIn.currency.chainId ===\n quote.original.details.currencyOut.currency.chainId;\n\n // Single-tx keeps address/chainId only — TransactionController re-signs with\n // `from`. Batch may need a different signer (Money Account) than the batch\n // payer (EOA account override), so preserve the full pre-signed list.\n const authorizationList: AuthorizationList | undefined =\n isSameChain && quote.original.request.authorizationList?.length\n ? quote.original.request.authorizationList.map((a) => ({\n address: a.address,\n chainId: toHex(a.chainId),\n }))\n : undefined;\n\n const hasAccountOverride =\n quote.request.from.toLowerCase() !==\n (transaction.txParams.from as Hex).toLowerCase();\n\n const batchAuthorizationList =\n isSameChain &&\n hasAccountOverride &&\n quote.original.request.authorizationList?.length\n ? mapSignedQuoteAuthorizationList(\n quote.original.request.authorizationList,\n )\n : undefined;\n\n const { metamask } = quote.original;\n const { gasLimits } = metamask;\n\n if (allParams.length === 1) {\n const transactionParams = {\n ...allParams[0],\n authorizationList,\n gas: toHex(gasLimits[0]),\n };\n\n result = await messenger.call(\n 'TransactionController:addTransaction',\n transactionParams,\n {\n gasFeeToken,\n networkClientId,\n origin: ORIGIN_METAMASK,\n isInternal: true,\n isGasFeeSponsored: isSourceGasFeeSponsored,\n requireApproval: false,\n type: getRelayDepositType(getEffectiveTransactionType(transaction)),\n },\n );\n } else {\n await messenger.call(\n 'TransactionController:addTransactionBatch',\n buildRelayTransactionBatchRequest({\n allParams,\n authorizationList: batchAuthorizationList,\n isGasFeeSponsored: isSourceGasFeeSponsored,\n messenger,\n normalizedParams,\n quote,\n transaction,\n }),\n );\n }\n\n end();\n\n log('Added transactions', transactionIds);\n\n if (!transactionIds.length) {\n throw new Error('No transactions submitted');\n }\n\n if (result) {\n const txHash = await result.result;\n log('Submitted transaction', txHash);\n }\n\n await Promise.all(\n transactionIds.map((txId) => waitForTransactionConfirmed(txId, messenger)),\n );\n\n log('All transactions confirmed', transactionIds);\n\n const hash = getTransaction(transactionIds.slice(-1)[0], messenger)?.hash;\n\n if (!hash) {\n throw new Error('Missing transaction hash');\n }\n\n return hash as Hex;\n}\n\nfunction mapSignedQuoteAuthorizationList(\n authorizationList: NonNullable<RelayQuote['request']['authorizationList']>,\n): AuthorizationList {\n return authorizationList.map((a) => ({\n address: a.address,\n chainId: toHex(a.chainId),\n nonce: toHex(a.nonce),\n r: a.r,\n s: a.s,\n yParity: toHex(a.yParity),\n }));\n}\n\nfunction buildRelayTransactionBatchRequest({\n allParams,\n authorizationList,\n isGasFeeSponsored,\n messenger,\n normalizedParams,\n quote,\n transaction,\n}: {\n allParams: TransactionParams[];\n authorizationList?: AuthorizationList;\n isGasFeeSponsored: boolean | undefined;\n messenger: TransactionPayControllerMessenger;\n normalizedParams: TransactionParams[];\n quote: TransactionPayQuote<RelayQuote>;\n transaction: TransactionMeta;\n}): TransactionBatchRequest {\n const { from, sourceChainId, sourceTokenAddress } = quote.request;\n const { metamask } = quote.original;\n const networkClientId = getNetworkClientId(messenger, sourceChainId);\n const gasFeeToken = quote.fees?.isSourceGasFeeToken\n ? sourceTokenAddress\n : undefined;\n const gasLimit7702 = getGasLimit7702(quote);\n\n return {\n from,\n ...(authorizationList?.length ? { authorizationList } : {}),\n disable7702: !gasLimit7702,\n disableHook: Boolean(gasLimit7702),\n disableSequential: Boolean(gasLimit7702),\n gasFeeToken,\n gasLimit7702,\n networkClientId,\n origin: ORIGIN_METAMASK,\n isInternal: true,\n isGasFeeSponsored,\n overwriteUpgrade: true,\n requireApproval: false,\n transactions: buildRelayBatchTransactions({\n allParams,\n gasLimit7702,\n gasLimits: metamask.gasLimits,\n normalizedParams,\n transaction,\n }),\n };\n}\n\nfunction buildRelayBatchTransactions({\n allParams,\n gasLimit7702,\n gasLimits,\n normalizedParams,\n transaction,\n}: {\n allParams: TransactionParams[];\n gasLimit7702?: Hex;\n gasLimits: number[];\n normalizedParams: TransactionParams[];\n transaction: TransactionMeta;\n}): TransactionBatchSingleRequest[] {\n const prependCount = allParams.length - normalizedParams.length;\n\n return allParams.map((singleParams, index) => {\n const gasLimit = gasLimits[index];\n const gas =\n gasLimit === undefined || gasLimit7702 ? undefined : toHex(gasLimit);\n\n return {\n params: {\n data: singleParams.data as Hex,\n gas,\n maxFeePerGas: singleParams.maxFeePerGas as Hex,\n maxPriorityFeePerGas: singleParams.maxPriorityFeePerGas as Hex,\n to: singleParams.to as Hex,\n value: singleParams.value as Hex,\n },\n type: getTransactionType(\n prependCount,\n index,\n getEffectiveTransactionType(transaction),\n normalizedParams.length,\n ),\n };\n });\n}\n\nfunction getGasLimit7702(\n quote: TransactionPayQuote<RelayQuote>,\n): Hex | undefined {\n const { gasLimits, is7702 } = quote.original.metamask;\n const gasLimit = gasLimits[0];\n\n return is7702 && gasLimit !== undefined ? toHex(gasLimit) : undefined;\n}\n\n/**\n * Determine the transaction type for a given index in the batch.\n *\n * @param prependCount - Number of non-relay txs prepended to the batch.\n * @param index - Index of the transaction in the batch.\n * @param originalType - Type of the original transaction (used for prepended indices).\n * @param relayParamCount - Number of relay-only params (excludes prepended txs).\n * @returns The transaction type.\n */\nfunction getTransactionType(\n prependCount: number,\n index: number,\n originalType: TransactionMeta['type'],\n relayParamCount: number,\n): TransactionMeta['type'] {\n if (prependCount > 0 && index < prependCount) {\n return originalType;\n }\n\n const relayIndex = index - prependCount;\n\n const depositType = getRelayDepositType(originalType);\n\n // Single relay step is always a deposit (no approval needed)\n if (relayParamCount === 1) {\n return depositType;\n }\n\n return relayIndex === 0 ? TransactionType.tokenMethodApprove : depositType;\n}\n\n/**\n * Get the relay deposit transaction type based on the parent transaction type.\n *\n * @param originalType - Type of the parent transaction.\n * @returns The mapped relay deposit type, or `relayDeposit` as a fallback.\n */\nfunction getRelayDepositType(\n originalType: TransactionMeta['type'],\n): TransactionType {\n return (\n (originalType && RELAY_DEPOSIT_TYPES[originalType]) ??\n TransactionType.relayDeposit\n );\n}\n\n/**\n * Get the effective transaction type, resolving through nested transactions\n * when the top-level type is `batch`.\n *\n * @param transaction - The transaction metadata.\n * @returns The resolved type from nested transactions, or the top-level type.\n */\nfunction getEffectiveTransactionType(\n transaction: TransactionMeta,\n): TransactionMeta['type'] {\n if (transaction.type !== TransactionType.batch) {\n return transaction.type;\n }\n\n const nestedType = transaction.nestedTransactions?.find(\n (tx) => tx.type && RELAY_DEPOSIT_TYPES[tx.type] !== undefined,\n )?.type;\n\n return nestedType ?? transaction.type;\n}\n"]}
@@ -157,11 +157,6 @@ type RelayQuoteMetamaskBase = {
157
157
  export type RelayQuoteMetamask = RelayQuoteMetamaskBase & {
158
158
  gasLimits: number[];
159
159
  is7702: boolean;
160
- /**
161
- * Whether the source network fee was quoted as sponsored.
162
- * Submission uses the same decision so gas limits match the quote.
163
- */
164
- isSourceGasFeeSponsored?: boolean;
165
160
  };
166
161
  export type RelayExecuteMetamask = {
167
162
  isSubsidized: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/strategy/relay/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE;QAClB,OAAO,EAAE,GAAG,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,CAAC,EAAE,GAAG,CAAC;QACP,CAAC,EAAE,GAAG,CAAC;QACP,OAAO,EAAE,MAAM,CAAC;KACjB,EAAE,CAAC;IACJ,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,GAAG,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,GAAG,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,GAAG,CAAC;IACf,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,GAAG,CAAC,EAAE;QACJ,EAAE,EAAE,GAAG,CAAC;QACR,IAAI,EAAE,GAAG,CAAC;QACV,KAAK,EAAE,GAAG,CAAC;KACZ,EAAE,CAAC;IACJ,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,CAAC,EAAE;QACT,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE;QACP,UAAU,EAAE;YACV,MAAM,EAAE,MAAM,CAAC;YACf,eAAe,EAAE,MAAM,CAAC;YACxB,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE;gBACR,OAAO,EAAE,MAAM,CAAC;gBAChB,QAAQ,EAAE,MAAM,CAAC;aAClB,CAAC;SACH,CAAC;QACF,WAAW,EAAE;YACX,MAAM,EAAE,MAAM,CAAC;YACf,eAAe,EAAE,MAAM,CAAC;YACxB,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE;gBACR,OAAO,EAAE,MAAM,CAAC;gBAChB,QAAQ,EAAE,MAAM,CAAC;aAClB,CAAC;YACF,aAAa,EAAE,MAAM,CAAC;SACvB,CAAC;QACF,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE;YACX,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;KACH,CAAC;IACF,IAAI,EAAE;QACJ,GAAG,CAAC,EAAE;YACJ,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,OAAO,EAAE;YACP,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,UAAU,CAAC,EAAE;YACX,MAAM,EAAE,MAAM,CAAC;YACf,eAAe,EAAE,MAAM,CAAC;YACxB,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE;gBACR,OAAO,EAAE,GAAG,CAAC;gBACb,OAAO,EAAE,MAAM,CAAC;gBAChB,QAAQ,EAAE,MAAM,CAAC;aAClB,CAAC;YACF,aAAa,EAAE,MAAM,CAAC;SACvB,CAAC;KACH,CAAC;IACF,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,KAAK,EAAE,CACH,oBAAoB,GACpB,kBAAkB,GAClB,2BAA2B,CAC9B,EAAE,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE;QACL,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;SACxB,CAAC;QACF,IAAI,EAAE;YACJ,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,EAAE,GAAG,CAAC;YACV,IAAI,EAAE,GAAG,CAAC;YACV,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,YAAY,EAAE,MAAM,CAAC;YACrB,oBAAoB,EAAE,MAAM,CAAC;YAC7B,EAAE,EAAE,GAAG,CAAC;YACR,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,MAAM,EAAE,UAAU,GAAG,YAAY,CAAC;KACnC,EAAE,CAAC;IACJ,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE;QACL,IAAI,EAAE;YACJ,IAAI,EAAE;gBACJ,aAAa,EAAE,MAAM,CAAC;gBACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC/B,WAAW,EAAE,MAAM,CAAC;aACrB,CAAC;YACF,IAAI,EAAE;gBACJ,QAAQ,EAAE,MAAM,CAAC;gBACjB,MAAM,EAAE,MAAM,CAAC;gBACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;aAC/B,CAAC;SACH,CAAC;QACF,MAAM,EAAE,UAAU,GAAG,YAAY,CAAC;KACnC,EAAE,CAAC;IACJ,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,4DAA4D;AAC5D,MAAM,MAAM,2BAA2B,GAAG;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE;QACL,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;SACxB,CAAC;QACF,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,IAAI,EAAE,MAAM,CAAC;gBACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;aACrC,CAAC;YACF,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACrC,iBAAiB,EAAE,MAAM,CAAC;SAC3B,CAAC;QACF,MAAM,EAAE,UAAU,GAAG,YAAY,CAAC;KACnC,EAAE,CAAC;IACJ,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GAAG;IACxD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,iBAAiB,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,EAAE,UAAU,CAAC;IAC1B,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,EAAE,EAAE,GAAG,CAAC;QACR,IAAI,EAAE,GAAG,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,iBAAiB,CAAC,EAAE;YAClB,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,GAAG,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,EAAE,MAAM,CAAC;YAChB,CAAC,EAAE,GAAG,CAAC;YACP,CAAC,EAAE,GAAG,CAAC;SACR,EAAE,CAAC;KACL,CAAC;IACF,gBAAgB,EAAE;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,oBAAoB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,YAAY,GACZ,SAAS,GACT,SAAS,GACT,QAAQ,GACR,UAAU,GACV,WAAW,GACX,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAChC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/strategy/relay/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/strategy/relay/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Hex } from '@metamask/utils';\n\nimport type { TradeType } from '../../utils/trade-type.js';\n\nexport type RelayQuoteRequest = {\n amount: string;\n authorizationList?: {\n address: Hex;\n chainId: number;\n nonce: number;\n r: Hex;\n s: Hex;\n yParity: number;\n }[];\n destinationChainId: number;\n destinationCurrency: Hex;\n originChainId: number;\n originCurrency: Hex;\n originGasOverhead?: string;\n protocolVersion?: string;\n recipient: Hex;\n refundTo?: Hex;\n slippageTolerance?: string;\n tradeType: TradeType;\n txs?: {\n to: Hex;\n data: Hex;\n value: Hex;\n }[];\n useDepositAddress?: boolean;\n strict?: boolean;\n user: Hex;\n metamask?: {\n executeVersion?: number;\n };\n};\n\nexport type RelayQuote = {\n details: {\n currencyIn: {\n amount: string;\n amountFormatted: string;\n amountUsd: string;\n currency: {\n chainId: number;\n decimals: number;\n };\n };\n currencyOut: {\n amount: string;\n amountFormatted: string;\n amountUsd: string;\n currency: {\n chainId: number;\n decimals: number;\n };\n minimumAmount: string;\n };\n timeEstimate: number;\n totalImpact: {\n usd: string;\n };\n };\n fees: {\n app?: {\n amountUsd: string;\n };\n relayer: {\n amountUsd: string;\n };\n subsidized?: {\n amount: string;\n amountFormatted: string;\n amountUsd: string;\n currency: {\n address: Hex;\n chainId: number;\n decimals: number;\n };\n minimumAmount: string;\n };\n };\n metamask: RelayQuoteMetamask;\n request: RelayQuoteRequest;\n steps: (\n | RelayTransactionStep\n | RelaySignatureStep\n | RelayHyperliquidDepositStep\n )[];\n};\n\nexport type RelayTransactionStep = {\n id: string;\n items: {\n check: {\n endpoint: string;\n method: 'GET' | 'POST';\n };\n data: {\n chainId: number;\n data: Hex;\n from: Hex;\n gas?: string;\n maxFeePerGas: string;\n maxPriorityFeePerGas: string;\n to: Hex;\n value?: string;\n };\n status: 'complete' | 'incomplete';\n }[];\n kind: 'transaction';\n requestId: string;\n};\n\nexport type RelaySignatureStep = {\n id: string;\n items: {\n data: {\n sign: {\n signatureKind: string;\n domain: Record<string, unknown>;\n types: Record<string, unknown>;\n value: Record<string, unknown>;\n primaryType: string;\n };\n post: {\n endpoint: string;\n method: 'POST';\n body: Record<string, unknown>;\n };\n };\n status: 'complete' | 'incomplete';\n }[];\n kind: 'signature';\n requestId: string;\n};\n\n/** HyperLiquid deposit step (sendAsset to Relay solver). */\nexport type RelayHyperliquidDepositStep = {\n id: string;\n items: {\n check: {\n endpoint: string;\n method: 'GET' | 'POST';\n };\n data: {\n action: {\n type: string;\n parameters: Record<string, unknown>;\n };\n nonce: number;\n eip712Types: Record<string, unknown>;\n eip712PrimaryType: string;\n };\n status: 'complete' | 'incomplete';\n }[];\n kind: 'transaction';\n requestId: string;\n depositAddress?: string;\n};\n\ntype RelayQuoteMetamaskBase = {\n isExecute?: boolean;\n isMaxGasStation?: boolean;\n isSubsidized?: boolean;\n signature?: string;\n};\n\nexport type RelayQuoteMetamask = RelayQuoteMetamaskBase & {\n gasLimits: number[];\n is7702: boolean;\n\n /**\n * Whether the source network fee was quoted as sponsored.\n * Submission uses the same decision so gas limits match the quote.\n */\n isSourceGasFeeSponsored?: boolean;\n};\n\nexport type RelayExecuteMetamask = {\n isSubsidized: boolean;\n quoteRequest: RelayQuoteRequest;\n signature: string;\n};\n\nexport type RelayExecuteRequest = {\n executionKind: 'rawCalls';\n data: {\n chainId: number;\n to: Hex;\n data: Hex;\n value: string;\n authorizationList?: {\n chainId: number;\n address: Hex;\n nonce: number;\n yParity: number;\n r: Hex;\n s: Hex;\n }[];\n };\n executionOptions: {\n referrer?: string;\n subsidizeFees: boolean;\n };\n requestId?: string;\n metamask: RelayExecuteMetamask;\n};\n\nexport type RelayExecuteResponse = {\n message: string;\n requestId: string;\n};\n\nexport type RelayStatus =\n | 'delayed'\n | 'depositing'\n | 'failure'\n | 'pending'\n | 'refund'\n | 'refunded'\n | 'submitted'\n | 'success'\n | 'waiting';\n\nexport type RelayStatusResponse = {\n status: RelayStatus;\n inTxHashes: string[];\n txHashes: string[];\n updatedAt: number;\n originChainId: number;\n destinationChainId: number;\n};\n\nexport type RelayCompletionOutcome = {\n status: RelayStatus | 'timeout';\n targetHash?: Hex;\n};\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/strategy/relay/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Hex } from '@metamask/utils';\n\nimport type { TradeType } from '../../utils/trade-type.js';\n\nexport type RelayQuoteRequest = {\n amount: string;\n authorizationList?: {\n address: Hex;\n chainId: number;\n nonce: number;\n r: Hex;\n s: Hex;\n yParity: number;\n }[];\n destinationChainId: number;\n destinationCurrency: Hex;\n originChainId: number;\n originCurrency: Hex;\n originGasOverhead?: string;\n protocolVersion?: string;\n recipient: Hex;\n refundTo?: Hex;\n slippageTolerance?: string;\n tradeType: TradeType;\n txs?: {\n to: Hex;\n data: Hex;\n value: Hex;\n }[];\n useDepositAddress?: boolean;\n strict?: boolean;\n user: Hex;\n metamask?: {\n executeVersion?: number;\n };\n};\n\nexport type RelayQuote = {\n details: {\n currencyIn: {\n amount: string;\n amountFormatted: string;\n amountUsd: string;\n currency: {\n chainId: number;\n decimals: number;\n };\n };\n currencyOut: {\n amount: string;\n amountFormatted: string;\n amountUsd: string;\n currency: {\n chainId: number;\n decimals: number;\n };\n minimumAmount: string;\n };\n timeEstimate: number;\n totalImpact: {\n usd: string;\n };\n };\n fees: {\n app?: {\n amountUsd: string;\n };\n relayer: {\n amountUsd: string;\n };\n subsidized?: {\n amount: string;\n amountFormatted: string;\n amountUsd: string;\n currency: {\n address: Hex;\n chainId: number;\n decimals: number;\n };\n minimumAmount: string;\n };\n };\n metamask: RelayQuoteMetamask;\n request: RelayQuoteRequest;\n steps: (\n | RelayTransactionStep\n | RelaySignatureStep\n | RelayHyperliquidDepositStep\n )[];\n};\n\nexport type RelayTransactionStep = {\n id: string;\n items: {\n check: {\n endpoint: string;\n method: 'GET' | 'POST';\n };\n data: {\n chainId: number;\n data: Hex;\n from: Hex;\n gas?: string;\n maxFeePerGas: string;\n maxPriorityFeePerGas: string;\n to: Hex;\n value?: string;\n };\n status: 'complete' | 'incomplete';\n }[];\n kind: 'transaction';\n requestId: string;\n};\n\nexport type RelaySignatureStep = {\n id: string;\n items: {\n data: {\n sign: {\n signatureKind: string;\n domain: Record<string, unknown>;\n types: Record<string, unknown>;\n value: Record<string, unknown>;\n primaryType: string;\n };\n post: {\n endpoint: string;\n method: 'POST';\n body: Record<string, unknown>;\n };\n };\n status: 'complete' | 'incomplete';\n }[];\n kind: 'signature';\n requestId: string;\n};\n\n/** HyperLiquid deposit step (sendAsset to Relay solver). */\nexport type RelayHyperliquidDepositStep = {\n id: string;\n items: {\n check: {\n endpoint: string;\n method: 'GET' | 'POST';\n };\n data: {\n action: {\n type: string;\n parameters: Record<string, unknown>;\n };\n nonce: number;\n eip712Types: Record<string, unknown>;\n eip712PrimaryType: string;\n };\n status: 'complete' | 'incomplete';\n }[];\n kind: 'transaction';\n requestId: string;\n depositAddress?: string;\n};\n\ntype RelayQuoteMetamaskBase = {\n isExecute?: boolean;\n isMaxGasStation?: boolean;\n isSubsidized?: boolean;\n signature?: string;\n};\n\nexport type RelayQuoteMetamask = RelayQuoteMetamaskBase & {\n gasLimits: number[];\n is7702: boolean;\n};\n\nexport type RelayExecuteMetamask = {\n isSubsidized: boolean;\n quoteRequest: RelayQuoteRequest;\n signature: string;\n};\n\nexport type RelayExecuteRequest = {\n executionKind: 'rawCalls';\n data: {\n chainId: number;\n to: Hex;\n data: Hex;\n value: string;\n authorizationList?: {\n chainId: number;\n address: Hex;\n nonce: number;\n yParity: number;\n r: Hex;\n s: Hex;\n }[];\n };\n executionOptions: {\n referrer?: string;\n subsidizeFees: boolean;\n };\n requestId?: string;\n metamask: RelayExecuteMetamask;\n};\n\nexport type RelayExecuteResponse = {\n message: string;\n requestId: string;\n};\n\nexport type RelayStatus =\n | 'delayed'\n | 'depositing'\n | 'failure'\n | 'pending'\n | 'refund'\n | 'refunded'\n | 'submitted'\n | 'success'\n | 'waiting';\n\nexport type RelayStatusResponse = {\n status: RelayStatus;\n inTxHashes: string[];\n txHashes: string[];\n updatedAt: number;\n originChainId: number;\n destinationChainId: number;\n};\n\nexport type RelayCompletionOutcome = {\n status: RelayStatus | 'timeout';\n targetHash?: Hex;\n};\n"]}
package/dist/types.d.ts CHANGED
@@ -167,12 +167,6 @@ export type TransactionPayControllerOptions = {
167
167
  getPaymentOverrideData?: GetPaymentOverrideDataCallback;
168
168
  /** Callback to select the PayStrategy for a transaction. */
169
169
  getStrategy?: (transaction: TransactionMeta) => TransactionPayStrategy;
170
- /**
171
- * Callback to determine whether the gas fee of a transaction is sponsored.
172
- * Used when quoting and submitting source transactions so both use the same
173
- * client-owned sponsorship decision. Defaults to not sponsored.
174
- */
175
- isGasFeeSponsored?: IsGasFeeSponsoredCallback;
176
170
  /** Callback to select ordered PayStrategies for a transaction. */
177
171
  getStrategies?: (transaction: TransactionMeta) => TransactionPayStrategy[];
178
172
  /** Controller messenger. */
@@ -595,14 +589,6 @@ export type UpdateFiatPaymentRequest = {
595
589
  /** Callback to mutate fiat payment state. */
596
590
  callback: TransactionFiatPaymentCallback;
597
591
  };
598
- /** Callback to determine whether the gas fee of a transaction is sponsored. */
599
- export type IsGasFeeSponsoredCallback = (request: {
600
- /** Metadata of the transaction. */
601
- transaction: TransactionMeta;
602
- }) => Promise<{
603
- /** Whether the gas fee of the transaction is sponsored. */
604
- isGasFeeSponsored: boolean;
605
- }>;
606
592
  /** Callback to convert a transaction to a redeem delegation. */
607
593
  export type GetDelegationTransactionCallback = ({ transaction, isSubsidized, }: {
608
594
  transaction: TransactionMeta;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AACtF,OAAO,KAAK,EACV,8BAA8B,EAC9B,gCAAgC,EACjC,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EACV,+BAA+B,EAC/B,uCAAuC,EACvC,4BAA4B,EAC5B,YAAY,EACb,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,mDAAmD,EAAE,MAAM,8BAA8B,CAAC;AACxG,OAAO,KAAK,EAAE,2CAA2C,EAAE,MAAM,8BAA8B,CAAC;AAChG,OAAO,KAAK,EAAE,uDAAuD,EAAE,MAAM,8BAA8B,CAAC;AAC5G,OAAO,KAAK,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EACV,6BAA6B,EAC7B,qCAAqC,EACtC,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,yCAAyC,EAAE,MAAM,0CAA0C,CAAC;AAC1G,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EACV,iBAAiB,EACjB,8CAA8C,EAC9C,sCAAsC,EACtC,2CAA2C,EAC3C,oDAAoD,EACrD,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,yCAAyC,EACzC,0CAA0C,EAC1C,mCAAmC,EACnC,qCAAqC,EACrC,4CAA4C,EAC5C,eAAe,EAChB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,sBAAsB,EACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,mDAAmD,CAAC;AAE/G,MAAM,MAAM,cAAc,GACtB,gCAAgC,GAChC,8BAA8B,GAC9B,cAAc,GACd,+BAA+B,GAC/B,uCAAuC,GACvC,mDAAmD,GACnD,2CAA2C,GAC3C,uDAAuD,GACvD,6BAA6B,GAC7B,qCAAqC,GACrC,yCAAyC,GACzC,yBAAyB,GACzB,yCAAyC,GACzC,8CAA8C,GAC9C,sCAAsC,GACtC,2CAA2C,GAC3C,0CAA0C,GAC1C,mCAAmC,GACnC,4CAA4C,CAAC;AAEjD,MAAM,MAAM,aAAa,GACrB,gCAAgC,GAChC,4BAA4B,GAC5B,qCAAqC,GACrC,oDAAoD,CAAC;AAEzD,MAAM,MAAM,sCAAsC,GAAG,wBAAwB,CAC3E,OAAO,eAAe,EACtB,6BAA6B,CAC9B,CAAC;AAEF,gDAAgD;AAChD,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;OAIG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC;IAEtB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,kEAAkE;IAClE,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,wDAAwD;IACxD,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,iGAAiG;IACjG,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB,CAAC;AAEF,6CAA6C;AAC7C,MAAM,MAAM,yBAAyB,GAAG,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAE5E,gEAAgE;AAChE,MAAM,MAAM,6BAA6B,GAAG;IAC1C,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IAEf,4CAA4C;IAC5C,WAAW,EAAE,eAAe,CAAC;IAE7B,gDAAgD;IAChD,eAAe,EAAE,eAAe,CAAC;CAClC,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,8BAA8B,GAAG;IAC3C,+DAA+D;IAC/D,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAEhC,iEAAiE;IACjE,SAAS,CAAC,EAAE,GAAG,CAAC;IAEhB,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,8BAA8B,GAAG,CAC3C,OAAO,EAAE,6BAA6B,KACnC,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAE7C,MAAM,MAAM,oBAAoB,GAAG;IACjC,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;IAEf,oEAAoE;IACpE,WAAW,EAAE,eAAe,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,oEAAoE;IACpE,OAAO,EAAE;QAAE,sBAAsB,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,EAAE,CAAC;CAC1D,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAClC,OAAO,EAAE,oBAAoB,KAC1B,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEpC,oDAAoD;AACpD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,0EAA0E;IAC1E,WAAW,EAAE,eAAe,CAAC;IAC7B,gDAAgD;IAChD,eAAe,EAAE,eAAe,CAAC;CAClC,CAAC;AAEF,+DAA+D;AAC/D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,iBAAiB,KACvB,kBAAkB,GAAG,SAAS,CAAC;AAEpC,6CAA6C;AAC7C,MAAM,MAAM,8BAA8B,GAAG,CAC3C,WAAW,EAAE,sBAAsB,KAChC,IAAI,CAAC;AAEV,MAAM,MAAM,wCAAwC,GAClD,0BAA0B,CACxB,OAAO,eAAe,EACtB,6BAA6B,CAC9B,CAAC;AAEJ,MAAM,MAAM,+BAA+B,GACvC,sCAAsC,GACtC,qCAAqC,CAAC;AAE1C,MAAM,MAAM,8BAA8B,GACxC,wCAAwC,CAAC;AAE3C,MAAM,MAAM,iCAAiC,GAAG,SAAS,CACvD,OAAO,eAAe,EACtB,+BAA+B,GAAG,cAAc,EAChD,8BAA8B,GAAG,aAAa,CAC/C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,GAAG,YAAY,EAAE,EAI5D,CAAC;AAEF,gDAAgD;AAChD,MAAM,MAAM,+BAA+B,GAAG;IAC5C,qFAAqF;IACrF,aAAa,CAAC,EAAE,qBAAqB,CAAC;IAEtC,wFAAwF;IACxF,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAEhC,kEAAkE;IAClE,wBAAwB,EAAE,gCAAgC,CAAC;IAE3D,6CAA6C;IAC7C,WAAW,CAAC,EAAE,yBAAyB,CAAC;IAExC;;;OAGG;IACH,sBAAsB,CAAC,EAAE,8BAA8B,CAAC;IAExD,4DAA4D;IAC5D,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,eAAe,KAAK,sBAAsB,CAAC;IAEvE;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,yBAAyB,CAAC;IAE9C,kEAAkE;IAClE,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,eAAe,KAAK,sBAAsB,EAAE,CAAC;IAE3E,4BAA4B;IAC5B,SAAS,EAAE,iCAAiC,CAAC;IAE7C,kGAAkG;IAClG,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAEjC,uCAAuC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC,6BAA6B,CAAC,CAAC;CAChD,CAAC;AAEF,6CAA6C;AAC7C,MAAM,MAAM,6BAA6B,GAAG;IAC1C,mEAAmE;IACnE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAClD,CAAC;AAEF,6CAA6C;AAC7C,MAAM,MAAM,yBAAyB,GAAG;IACtC,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,GAAG,CAAC;IAExB,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,8CAA8C;AAC9C,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;OAIG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC;IAEtB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,iCAAiC;IACjC,WAAW,CAAC,EAAE,sBAAsB,CAAC;IAErC,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;IAEnB,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,8DAA8D;IAC9D,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,kEAAkE;IAClE,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC,wDAAwD;IACxD,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,iGAAiG;IACjG,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC;IAEf;;;;OAIG;IACH,YAAY,CAAC,EAAE,uBAAuB,CAAC;IAEvC,4CAA4C;IAC5C,MAAM,CAAC,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;IAErC,+EAA+E;IAC/E,UAAU,CAAC,EAAE,cAAc,CAAC;IAE5B,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,iEAAiE;IACjE,aAAa,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAE7C,0CAA0C;IAC1C,MAAM,EAAE,2BAA2B,EAAE,CAAC;IAEtC,6CAA6C;IAC7C,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,sBAAsB,GAAG;IACnC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,wDAAwD;IACxD,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,uCAAuC;IACvC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,yCAAyC;AACzC,MAAM,MAAM,2BAA2B,GAAG;IACxC,qCAAqC;IACrC,OAAO,EAAE,GAAG,CAAC;IAEb,kFAAkF;IAClF,iBAAiB,EAAE,OAAO,CAAC;IAE3B,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IAEnB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IAEpB,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;IAElB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAElB,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IAEpB,yFAAyF;IACzF,YAAY,EAAE,MAAM,CAAC;IAErB,uFAAuF;IACvF,UAAU,EAAE,MAAM,CAAC;IAEnB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IAEnB,sCAAsC;IACtC,OAAO,EAAE,GAAG,CAAC;IAEb,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IAEjB,+EAA+E;IAC/E,aAAa,EAAE,OAAO,CAAC;IAEvB,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,4DAA4D;AAC5D,MAAM,MAAM,0BAA0B,GAAG;IACvC,iEAAiE;IACjE,iBAAiB,EAAE,MAAM,CAAC;IAE1B,0FAA0F;IAC1F,eAAe,EAAE,MAAM,CAAC;IAExB,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,2DAA2D;IAC3D,aAAa,CAAC,EAAE,GAAG,CAAC;IAEpB,0DAA0D;IAC1D,kBAAkB,CAAC,EAAE,GAAG,CAAC;IAEzB,mCAAmC;IACnC,kBAAkB,EAAE,GAAG,CAAC;CACzB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GACxB,qBAAqB,GACrB,6BAA6B,GAC7B,+BAA+B,GAC/B,WAAW,GACX,mBAAmB,CAAC;AAExB;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAEhB,sDAAsD;IACtD,MAAM,EAAE,gBAAgB,CAAC;IAEzB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,oDAAoD;AACpD,MAAM,MAAM,uBAAuB,GAAG;IACpC,oCAAoC;IACpC,OAAO,EAAE,GAAG,CAAC;IAEb,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IAEpB,wFAAwF;IACxF,YAAY,EAAE,MAAM,CAAC;IAErB,sFAAsF;IACtF,UAAU,EAAE,MAAM,CAAC;IAEnB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IAEnB,qCAAqC;IACrC,OAAO,EAAE,GAAG,CAAC;IAEb,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IAEjB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,yDAAyD;AACzD,MAAM,MAAM,6BAA6B,GAAG;AAC1C,uCAAuC;AACvC,aAAa,EAAE,MAAM;AACrB,wEAAwE;AACxE,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI,KACvC,IAAI,CAAC;AAEV,qEAAqE;AACrE,MAAM,MAAM,SAAS,GAAG;IACtB,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IAEjB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wDAAwD;AACxD,MAAM,MAAM,YAAY,GAAG;IACzB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,qCAAqC;IACrC,IAAI,EAAE,GAAG,CAAC;IAEV,+DAA+D;IAC/D,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,yCAAyC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,8DAA8D;IAC9D,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,kEAAkE;IAClE,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC,wEAAwE;IACxE,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC,wDAAwD;IACxD,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,qGAAqG;IACrG,SAAS,CAAC,EAAE,GAAG,CAAC;IAEhB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC;IAEf,sFAAsF;IACtF,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC,qFAAqF;IACrF,gBAAgB,EAAE,MAAM,CAAC;IAEzB,oCAAoC;IACpC,aAAa,EAAE,GAAG,CAAC;IAEnB,mCAAmC;IACnC,kBAAkB,EAAE,GAAG,CAAC;IAExB,sFAAsF;IACtF,iBAAiB,EAAE,MAAM,CAAC;IAE1B,qGAAqG;IACrG,mBAAmB,EAAE,MAAM,CAAC;IAE5B,oCAAoC;IACpC,aAAa,EAAE,GAAG,CAAC;IAEnB,mCAAmC;IACnC,kBAAkB,EAAE,GAAG,CAAC;IAExB;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC,CAAC;AAEF,oDAAoD;AACpD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,+BAA+B;IAC/B,QAAQ,EAAE,SAAS,CAAC;IAEpB,yCAAyC;IACzC,QAAQ,EAAE,SAAS,CAAC;IAEpB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,SAAS,CAAC;IAEzB,0DAA0D;IAC1D,aAAa,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IAEF,0DAA0D;IAC1D,aAAa,EAAE,SAAS,CAAC;CAC1B,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,mBAAmB,CAAC,aAAa,IAAI;IAC/C,4EAA4E;IAC5E,IAAI,EAAE,SAAS,CAAC;IAEhB,qEAAqE;IACrE,iBAAiB,EAAE,MAAM,CAAC;IAE1B,sDAAsD;IACtD,IAAI,EAAE,kBAAkB,CAAC;IAEzB,mGAAmG;IACnG,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,2EAA2E;IAC3E,6BAA6B,CAAC,EAAE,OAAO,CAAC;IAExC,+CAA+C;IAC/C,QAAQ,EAAE,aAAa,CAAC;IAExB,gCAAgC;IAChC,OAAO,EAAE,YAAY,CAAC;IAEtB,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;IAErB,uDAAuD;IACvD,QAAQ,EAAE,sBAAsB,CAAC;IAEjC,uCAAuC;IACvC,YAAY,EAAE,SAAS,CAAC;CACzB,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,2BAA2B,GAAG;IACxC,mEAAmE;IACnE,mBAAmB,EAAE,OAAO,CAAC;IAE7B,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;OAIG;IACH,IAAI,EAAE,GAAG,CAAC;IAEV,4BAA4B;IAC5B,SAAS,EAAE,iCAAiC,CAAC;IAE7C,0CAA0C;IAC1C,QAAQ,EAAE,YAAY,EAAE,CAAC;IAEzB;;;;OAIG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB,mDAAmD;IACnD,WAAW,EAAE,eAAe,CAAC;CAC9B,CAAC;AAEF,kDAAkD;AAClD,MAAM,MAAM,yBAAyB,CAAC,eAAe,IAAI;IACvD,mEAAmE;IACnE,mBAAmB,EAAE,OAAO,CAAC;IAE7B,uEAAuE;IACvE,kBAAkB,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC;IAE9C,4BAA4B;IAC5B,SAAS,EAAE,iCAAiC,CAAC;IAE7C,8BAA8B;IAC9B,MAAM,EAAE,mBAAmB,CAAC,eAAe,CAAC,EAAE,CAAC;IAE/C,mDAAmD;IACnD,WAAW,EAAE,eAAe,CAAC;CAC9B,CAAC;AAEF,oDAAoD;AACpD,MAAM,MAAM,0BAA0B,CAAC,aAAa,IAAI;IACtD,4BAA4B;IAC5B,SAAS,EAAE,iCAAiC,CAAC;IAE7C,kCAAkC;IAClC,MAAM,EAAE,mBAAmB,CAAC,aAAa,CAAC,EAAE,CAAC;IAE7C,yEAAyE;IACzE,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,mCAAmC,CAAC,aAAa,IAAI;IAC/D,4BAA4B;IAC5B,SAAS,EAAE,iCAAiC,CAAC;IAE7C,uCAAuC;IACvC,MAAM,EAAE,mBAAmB,CAAC,aAAa,CAAC,EAAE,CAAC;IAE7C,yEAAyE;IACzE,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB,mDAAmD;IACnD,WAAW,EAAE,eAAe,CAAC;CAC9B,CAAC;AAEF,+DAA+D;AAC/D,MAAM,MAAM,oCAAoC,GAAG;IACjD,+CAA+C;IAC/C,OAAO,EAAE,GAAG,CAAC;IAEb,4BAA4B;IAC5B,SAAS,EAAE,iCAAiC,CAAC;CAC9C,CAAC;AAEF,iEAAiE;AACjE,MAAM,MAAM,WAAW,CAAC,aAAa,IAAI;IACvC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CACT,OAAO,EAAE,2BAA2B,KACjC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhC,2CAA2C;IAC3C,SAAS,EAAE,CACT,OAAO,EAAE,2BAA2B,KACjC,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAEnD;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,CAClB,OAAO,EAAE,mCAAmC,CAAC,aAAa,CAAC,KACxD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhC,4EAA4E;IAC5E,oBAAoB,CAAC,EAAE,CACrB,OAAO,EAAE,0BAA0B,CAAC,aAAa,CAAC,KAC/C,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEjC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CACnB,OAAO,EAAE,oCAAoC,KAC1C,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAEjC,8DAA8D;IAC9D,OAAO,EAAE,CAAC,OAAO,EAAE,yBAAyB,CAAC,aAAa,CAAC,KAAK,OAAO,CAAC;QACtE,eAAe,CAAC,EAAE,GAAG,CAAC;KACvB,CAAC,CAAC;CACJ,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,SAAS,GAAG;IACtB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IAEb,oBAAoB;IACpB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,iEAAiE;AACjE,MAAM,MAAM,oBAAoB,GAAG;IACjC,0EAA0E;IAC1E,iBAAiB,EAAE,MAAM,CAAC;IAE1B,4DAA4D;IAC5D,IAAI,EAAE,kBAAkB,CAAC;IAEzB,iHAAiH;IACjH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IAErB,6CAA6C;IAC7C,YAAY,EAAE,SAAS,CAAC;IAExB,oEAAoE;IACpE,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,yBAAyB,GAAG;IACtC,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IAEtB,wCAAwC;IACxC,YAAY,EAAE,GAAG,CAAC;IAElB,yCAAyC;IACzC,OAAO,EAAE,GAAG,CAAC;CACd,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,wBAAwB,GAAG;IACrC,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IAEtB,6CAA6C;IAC7C,QAAQ,EAAE,8BAA8B,CAAC;CAC1C,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,EAAE;IAChD,mCAAmC;IACnC,WAAW,EAAE,eAAe,CAAC;CAC9B,KAAK,OAAO,CAAC;IACZ,2DAA2D;IAC3D,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC,CAAC;AAEH,gEAAgE;AAChE,MAAM,MAAM,gCAAgC,GAAG,CAAC,EAC9C,WAAW,EACX,YAAY,GACb,EAAE;IACD,WAAW,EAAE,eAAe,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,KAAK,OAAO,CAAC;IACZ,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,IAAI,EAAE,GAAG,CAAC;IACV,EAAE,EAAE,GAAG,CAAC;IACR,KAAK,EAAE,GAAG,CAAC;CACZ,CAAC,CAAC;AAEH,qEAAqE;AACrE,MAAM,MAAM,mBAAmB,GAAG;IAChC,qEAAqE;IACrE,uBAAuB,EAAE,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,GAAG,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAEhE,4EAA4E;IAC5E,wBAAwB,EAAE,CAAC,MAAM,EAAE;QACjC,GAAG,EAAE,GAAG,CAAC;QACT,aAAa,EAAE,GAAG,CAAC;QACnB,KAAK,EAAE;YAAE,MAAM,EAAE,GAAG,CAAC;YAAC,IAAI,EAAE,GAAG,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KACpD,KAAK,OAAO,CAAC;QAAE,UAAU,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;CACpC,CAAC;AAEF,0CAA0C;AAC1C,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG;IAC/B,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IAEd,gEAAgE;IAChE,GAAG,EAAE,MAAM,CAAC;CACb,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}