@metamask-previews/bridge-controller 77.8.0-preview-5959fe813 → 77.8.0-preview-0d2cbf546
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.
- package/CHANGELOG.md +0 -12
- package/dist/bridge-controller.cjs +3 -8
- package/dist/bridge-controller.cjs.map +1 -1
- package/dist/bridge-controller.d.cts +3 -4
- package/dist/bridge-controller.d.cts.map +1 -1
- package/dist/bridge-controller.d.mts +3 -4
- package/dist/bridge-controller.d.mts.map +1 -1
- package/dist/bridge-controller.mjs +3 -8
- package/dist/bridge-controller.mjs.map +1 -1
- package/dist/index.cjs +2 -19
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -12
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +4 -12
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -7
- package/dist/index.mjs.map +1 -1
- package/dist/selectors.cjs +29 -31
- package/dist/selectors.cjs.map +1 -1
- package/dist/selectors.d.cts +36410 -5110
- package/dist/selectors.d.cts.map +1 -1
- package/dist/selectors.d.mts +36410 -5110
- package/dist/selectors.d.mts.map +1 -1
- package/dist/selectors.mjs +29 -31
- package/dist/selectors.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +7 -2
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +7 -2
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/bridge.cjs +5 -1
- package/dist/utils/bridge.cjs.map +1 -1
- package/dist/utils/bridge.d.cts +19 -2
- package/dist/utils/bridge.d.cts.map +1 -1
- package/dist/utils/bridge.d.mts +19 -2
- package/dist/utils/bridge.d.mts.map +1 -1
- package/dist/utils/bridge.mjs +3 -0
- package/dist/utils/bridge.mjs.map +1 -1
- package/dist/utils/caip-formatters.cjs +3 -0
- package/dist/utils/caip-formatters.cjs.map +1 -1
- package/dist/utils/caip-formatters.d.cts.map +1 -1
- package/dist/utils/caip-formatters.d.mts.map +1 -1
- package/dist/utils/caip-formatters.mjs +3 -0
- package/dist/utils/caip-formatters.mjs.map +1 -1
- package/dist/utils/feature-flags.d.cts +2 -2
- package/dist/utils/feature-flags.d.mts +2 -2
- package/dist/utils/fetch.cjs +40 -37
- package/dist/utils/fetch.cjs.map +1 -1
- package/dist/utils/fetch.d.cts +4 -10
- package/dist/utils/fetch.d.cts.map +1 -1
- package/dist/utils/fetch.d.mts +4 -10
- package/dist/utils/fetch.d.mts.map +1 -1
- package/dist/utils/fetch.mjs +40 -37
- package/dist/utils/fetch.mjs.map +1 -1
- package/dist/utils/metrics/properties.cjs +6 -6
- package/dist/utils/metrics/properties.cjs.map +1 -1
- package/dist/utils/metrics/properties.d.cts +5 -8
- package/dist/utils/metrics/properties.d.cts.map +1 -1
- package/dist/utils/metrics/properties.d.mts +5 -8
- package/dist/utils/metrics/properties.d.mts.map +1 -1
- package/dist/utils/metrics/properties.mjs +6 -6
- package/dist/utils/metrics/properties.mjs.map +1 -1
- package/dist/utils/metrics/types.cjs.map +1 -1
- package/dist/utils/metrics/types.d.cts +1 -1
- package/dist/utils/metrics/types.d.cts.map +1 -1
- package/dist/utils/metrics/types.d.mts +1 -1
- package/dist/utils/metrics/types.d.mts.map +1 -1
- package/dist/utils/metrics/types.mjs.map +1 -1
- package/dist/utils/number-formatters.cjs +1 -74
- package/dist/utils/number-formatters.cjs.map +1 -1
- package/dist/utils/number-formatters.d.cts +0 -18
- package/dist/utils/number-formatters.d.cts.map +1 -1
- package/dist/utils/number-formatters.d.mts +0 -18
- package/dist/utils/number-formatters.d.mts.map +1 -1
- package/dist/utils/number-formatters.mjs +0 -71
- package/dist/utils/number-formatters.mjs.map +1 -1
- package/dist/utils/quote-fees.cjs +22 -23
- package/dist/utils/quote-fees.cjs.map +1 -1
- package/dist/utils/quote-fees.d.cts +2 -4
- package/dist/utils/quote-fees.d.cts.map +1 -1
- package/dist/utils/quote-fees.d.mts +2 -4
- package/dist/utils/quote-fees.d.mts.map +1 -1
- package/dist/utils/quote-fees.mjs +23 -24
- package/dist/utils/quote-fees.mjs.map +1 -1
- package/dist/utils/quote-metadata/calculators.cjs +35 -33
- package/dist/utils/quote-metadata/calculators.cjs.map +1 -1
- package/dist/utils/quote-metadata/calculators.d.cts +14 -20
- package/dist/utils/quote-metadata/calculators.d.cts.map +1 -1
- package/dist/utils/quote-metadata/calculators.d.mts +14 -20
- package/dist/utils/quote-metadata/calculators.d.mts.map +1 -1
- package/dist/utils/quote-metadata/calculators.mjs +36 -34
- package/dist/utils/quote-metadata/calculators.mjs.map +1 -1
- package/dist/utils/quote-metadata/merge.cjs +2 -24
- package/dist/utils/quote-metadata/merge.cjs.map +1 -1
- package/dist/utils/quote-metadata/merge.d.cts +2 -3
- package/dist/utils/quote-metadata/merge.d.cts.map +1 -1
- package/dist/utils/quote-metadata/merge.d.mts +2 -3
- package/dist/utils/quote-metadata/merge.d.mts.map +1 -1
- package/dist/utils/quote-metadata/merge.mjs +2 -24
- package/dist/utils/quote-metadata/merge.mjs.map +1 -1
- package/dist/utils/slippage.d.cts +1 -1
- package/dist/utils/slippage.d.mts +1 -1
- package/dist/validators/batch-sell.d.cts +8 -8
- package/dist/validators/batch-sell.d.mts +8 -8
- package/dist/validators/bridge-asset.cjs +1 -65
- package/dist/validators/bridge-asset.cjs.map +1 -1
- package/dist/validators/bridge-asset.d.cts +5 -99
- package/dist/validators/bridge-asset.d.cts.map +1 -1
- package/dist/validators/bridge-asset.d.mts +5 -99
- package/dist/validators/bridge-asset.d.mts.map +1 -1
- package/dist/validators/bridge-asset.mjs +1 -64
- package/dist/validators/bridge-asset.mjs.map +1 -1
- package/dist/validators/feature-flags.d.cts +5 -5
- package/dist/validators/feature-flags.d.mts +5 -5
- package/dist/validators/intent.d.cts +3 -3
- package/dist/validators/intent.d.mts +3 -3
- package/dist/validators/quote-response-v1.d.cts +179 -179
- package/dist/validators/quote-response-v1.d.mts +179 -179
- package/dist/validators/quote.cjs +3 -73
- package/dist/validators/quote.cjs.map +1 -1
- package/dist/validators/quote.d.cts +45 -407
- package/dist/validators/quote.d.cts.map +1 -1
- package/dist/validators/quote.d.mts +45 -407
- package/dist/validators/quote.d.mts.map +1 -1
- package/dist/validators/quote.mjs +4 -74
- package/dist/validators/quote.mjs.map +1 -1
- package/dist/validators/step.cjs +1 -7
- package/dist/validators/step.cjs.map +1 -1
- package/dist/validators/step.d.cts +26 -197
- package/dist/validators/step.d.cts.map +1 -1
- package/dist/validators/step.d.mts +26 -197
- package/dist/validators/step.d.mts.map +1 -1
- package/dist/validators/step.mjs +1 -7
- package/dist/validators/step.mjs.map +1 -1
- package/dist/validators/token-feature.d.cts +2 -2
- package/dist/validators/token-feature.d.mts +2 -2
- package/dist/validators/trade.d.cts +2 -2
- package/dist/validators/trade.d.mts +2 -2
- package/package.json +1 -1
- package/dist/coercers/quote-response-v1-to-v2.cjs +0 -137
- package/dist/coercers/quote-response-v1-to-v2.cjs.map +0 -1
- package/dist/coercers/quote-response-v1-to-v2.d.cts +0 -13
- package/dist/coercers/quote-response-v1-to-v2.d.cts.map +0 -1
- package/dist/coercers/quote-response-v1-to-v2.d.mts +0 -13
- package/dist/coercers/quote-response-v1-to-v2.d.mts.map +0 -1
- package/dist/coercers/quote-response-v1-to-v2.mjs +0 -132
- package/dist/coercers/quote-response-v1-to-v2.mjs.map +0 -1
- package/dist/coercers/quote-response-v2-to-v1.cjs +0 -173
- package/dist/coercers/quote-response-v2-to-v1.cjs.map +0 -1
- package/dist/coercers/quote-response-v2-to-v1.d.cts +0 -13
- package/dist/coercers/quote-response-v2-to-v1.d.cts.map +0 -1
- package/dist/coercers/quote-response-v2-to-v1.d.mts +0 -13
- package/dist/coercers/quote-response-v2-to-v1.d.mts.map +0 -1
- package/dist/coercers/quote-response-v2-to-v1.mjs +0 -169
- package/dist/coercers/quote-response-v2-to-v1.mjs.map +0 -1
- package/dist/utils/quote-metadata/to-normalized-amounts.cjs +0 -38
- package/dist/utils/quote-metadata/to-normalized-amounts.cjs.map +0 -1
- package/dist/utils/quote-metadata/to-normalized-amounts.d.cts +0 -10
- package/dist/utils/quote-metadata/to-normalized-amounts.d.cts.map +0 -1
- package/dist/utils/quote-metadata/to-normalized-amounts.d.mts +0 -10
- package/dist/utils/quote-metadata/to-normalized-amounts.d.mts.map +0 -1
- package/dist/utils/quote-metadata/to-normalized-amounts.mjs +0 -34
- package/dist/utils/quote-metadata/to-normalized-amounts.mjs.map +0 -1
- package/dist/utils/quote-metadata/to-quote-metadata-v1.cjs +0 -39
- package/dist/utils/quote-metadata/to-quote-metadata-v1.cjs.map +0 -1
- package/dist/utils/quote-metadata/to-quote-metadata-v1.d.cts +0 -13
- package/dist/utils/quote-metadata/to-quote-metadata-v1.d.cts.map +0 -1
- package/dist/utils/quote-metadata/to-quote-metadata-v1.d.mts +0 -13
- package/dist/utils/quote-metadata/to-quote-metadata-v1.d.mts.map +0 -1
- package/dist/utils/quote-metadata/to-quote-metadata-v1.mjs +0 -36
- package/dist/utils/quote-metadata/to-quote-metadata-v1.mjs.map +0 -1
- package/dist/utils/quote-metadata/to-quote-metadata-v2.cjs +0 -94
- package/dist/utils/quote-metadata/to-quote-metadata-v2.cjs.map +0 -1
- package/dist/utils/quote-metadata/to-quote-metadata-v2.d.cts +0 -12
- package/dist/utils/quote-metadata/to-quote-metadata-v2.d.cts.map +0 -1
- package/dist/utils/quote-metadata/to-quote-metadata-v2.d.mts +0 -12
- package/dist/utils/quote-metadata/to-quote-metadata-v2.d.mts.map +0 -1
- package/dist/utils/quote-metadata/to-quote-metadata-v2.mjs +0 -90
- package/dist/utils/quote-metadata/to-quote-metadata-v2.mjs.map +0 -1
- package/dist/validators/amount-and-asset.cjs +0 -27
- package/dist/validators/amount-and-asset.cjs.map +0 -1
- package/dist/validators/amount-and-asset.d.cts +0 -62
- package/dist/validators/amount-and-asset.d.cts.map +0 -1
- package/dist/validators/amount-and-asset.d.mts +0 -62
- package/dist/validators/amount-and-asset.d.mts.map +0 -1
- package/dist/validators/amount-and-asset.mjs +0 -24
- package/dist/validators/amount-and-asset.mjs.map +0 -1
- package/dist/validators/quote-response.cjs +0 -116
- package/dist/validators/quote-response.cjs.map +0 -1
- package/dist/validators/quote-response.d.cts +0 -1979
- package/dist/validators/quote-response.d.cts.map +0 -1
- package/dist/validators/quote-response.d.mts +0 -1979
- package/dist/validators/quote-response.d.mts.map +0 -1
- package/dist/validators/quote-response.mjs +0 -112
- package/dist/validators/quote-response.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"quote-response.d.mts","sourceRoot":"","sources":["../../src/validators/quote-response.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { assert, number, optional, string, type, union, intersection, nullable, enums, literal } from "@metamask/superstruct";
|
|
2
|
-
import { CaipChainIdStruct, KnownCaipNamespace, parseCaipAssetType, StrictHexStruct } from "@metamask/utils";
|
|
3
|
-
import { FeatureId } from "./feature-flags.mjs";
|
|
4
|
-
import { FloatStringSchema } from "./number.mjs";
|
|
5
|
-
import { QuoteSchemaV2 } from "./quote.mjs";
|
|
6
|
-
import { BitcoinTradeDataSchema, StellarTradeDataSchema, TronTradeDataSchema, TxDataSchema } from "./trade.mjs";
|
|
7
|
-
const CommonQuoteResponseSchema = type({
|
|
8
|
-
quoteId: optional(string()),
|
|
9
|
-
quote: QuoteSchemaV2,
|
|
10
|
-
estimatedProcessingTimeInSeconds: number(),
|
|
11
|
-
/**
|
|
12
|
-
* Appended to the quote if there are multiple quote requests in a batch. This
|
|
13
|
-
* indicates which quoteRequest the quote is for
|
|
14
|
-
*/
|
|
15
|
-
quoteRequestIndex: optional(number()),
|
|
16
|
-
/**
|
|
17
|
-
* Appended to the quote response based on the quote requested featureId
|
|
18
|
-
*/
|
|
19
|
-
featureId: optional(enums(Object.values(FeatureId))),
|
|
20
|
-
/**
|
|
21
|
-
* Appended to the quote response based on the quote request nonEvmFeesInNative flag
|
|
22
|
-
*
|
|
23
|
-
* @deprecated Use network feeData
|
|
24
|
-
*/
|
|
25
|
-
nonEvmFeesInNative: optional(FloatStringSchema),
|
|
26
|
-
/**
|
|
27
|
-
* Appended to the quote response based on the quote request l1GasFeesInHexWei flag
|
|
28
|
-
*
|
|
29
|
-
* @deprecated Use network feeData
|
|
30
|
-
*/
|
|
31
|
-
l1GasFeesInHexWei: optional(StrictHexStruct),
|
|
32
|
-
});
|
|
33
|
-
const EvmQuoteResponseSchema = intersection([
|
|
34
|
-
CommonQuoteResponseSchema,
|
|
35
|
-
type({
|
|
36
|
-
namespace: literal(KnownCaipNamespace.Eip155),
|
|
37
|
-
chainId: CaipChainIdStruct,
|
|
38
|
-
trade: TxDataSchema,
|
|
39
|
-
approval: optional(TxDataSchema),
|
|
40
|
-
resetApproval: optional(TxDataSchema),
|
|
41
|
-
}),
|
|
42
|
-
]);
|
|
43
|
-
const TronQuoteResponseSchema = intersection([
|
|
44
|
-
CommonQuoteResponseSchema,
|
|
45
|
-
type({
|
|
46
|
-
namespace: literal(KnownCaipNamespace.Tron),
|
|
47
|
-
chainId: CaipChainIdStruct,
|
|
48
|
-
trade: TronTradeDataSchema,
|
|
49
|
-
approval: optional(TronTradeDataSchema),
|
|
50
|
-
}),
|
|
51
|
-
]);
|
|
52
|
-
const SolanaQuoteResponseSchema = intersection([
|
|
53
|
-
CommonQuoteResponseSchema,
|
|
54
|
-
type({
|
|
55
|
-
namespace: literal(KnownCaipNamespace.Solana),
|
|
56
|
-
chainId: CaipChainIdStruct,
|
|
57
|
-
trade: string(),
|
|
58
|
-
approval: optional(TxDataSchema),
|
|
59
|
-
}),
|
|
60
|
-
]);
|
|
61
|
-
const BitcoinQuoteResponseSchema = intersection([
|
|
62
|
-
CommonQuoteResponseSchema,
|
|
63
|
-
type({
|
|
64
|
-
namespace: literal(KnownCaipNamespace.Bip122),
|
|
65
|
-
chainId: CaipChainIdStruct,
|
|
66
|
-
trade: BitcoinTradeDataSchema,
|
|
67
|
-
approval: optional(TxDataSchema),
|
|
68
|
-
}),
|
|
69
|
-
]);
|
|
70
|
-
const StellarQuoteResponseSchema = intersection([
|
|
71
|
-
CommonQuoteResponseSchema,
|
|
72
|
-
type({
|
|
73
|
-
namespace: literal(KnownCaipNamespace.Stellar),
|
|
74
|
-
chainId: CaipChainIdStruct,
|
|
75
|
-
trade: StellarTradeDataSchema,
|
|
76
|
-
approval: optional(TxDataSchema),
|
|
77
|
-
}),
|
|
78
|
-
]);
|
|
79
|
-
export const QuoteResponseSchemaV2 = nullable(union([
|
|
80
|
-
EvmQuoteResponseSchema,
|
|
81
|
-
SolanaQuoteResponseSchema,
|
|
82
|
-
TronQuoteResponseSchema,
|
|
83
|
-
BitcoinQuoteResponseSchema,
|
|
84
|
-
StellarQuoteResponseSchema,
|
|
85
|
-
]));
|
|
86
|
-
// This ensures the QuoteResponse type is in sync with the QuoteResponseSchemaV2
|
|
87
|
-
const QuoteResponse = QuoteResponseSchemaV2;
|
|
88
|
-
const NAMESPACE_TO_TRADE_SCHEMA = {
|
|
89
|
-
[KnownCaipNamespace.Eip155]: EvmQuoteResponseSchema,
|
|
90
|
-
[KnownCaipNamespace.Tron]: TronQuoteResponseSchema,
|
|
91
|
-
[KnownCaipNamespace.Solana]: SolanaQuoteResponseSchema,
|
|
92
|
-
[KnownCaipNamespace.Bip122]: BitcoinQuoteResponseSchema,
|
|
93
|
-
[KnownCaipNamespace.Stellar]: StellarQuoteResponseSchema,
|
|
94
|
-
};
|
|
95
|
-
export const validateQuoteResponse = (quoteResponse) => {
|
|
96
|
-
// Validate common fields first
|
|
97
|
-
assert(quoteResponse, CommonQuoteResponseSchema);
|
|
98
|
-
// Extract the namespace and chainId from the src asset
|
|
99
|
-
const { chain: { namespace: namespaceString }, chainId, } = parseCaipAssetType(quoteResponse.quote.src.asset.assetId);
|
|
100
|
-
const namespace = namespaceString;
|
|
101
|
-
if (!NAMESPACE_TO_TRADE_SCHEMA[namespace]) {
|
|
102
|
-
return false;
|
|
103
|
-
}
|
|
104
|
-
// Validate the trade and approval fields based on the src chain's namespace
|
|
105
|
-
assert({
|
|
106
|
-
...quoteResponse,
|
|
107
|
-
namespace,
|
|
108
|
-
chainId,
|
|
109
|
-
}, NAMESPACE_TO_TRADE_SCHEMA[namespace]);
|
|
110
|
-
return true;
|
|
111
|
-
};
|
|
112
|
-
//# sourceMappingURL=quote-response.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"quote-response.mjs","sourceRoot":"","sources":["../../src/validators/quote-response.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n assert,\n Infer,\n number,\n optional,\n string,\n type,\n union,\n intersection,\n Describe,\n nullable,\n enums,\n literal,\n AnyStruct,\n} from '@metamask/superstruct';\nimport {\n CaipChainId,\n CaipChainIdStruct,\n KnownCaipNamespace,\n parseCaipAssetType,\n StrictHexStruct,\n} from '@metamask/utils';\n\nimport { FeatureId } from './feature-flags';\nimport { FloatStringSchema } from './number';\nimport { QuoteSchemaV2 } from './quote';\nimport {\n BitcoinTradeData,\n BitcoinTradeDataSchema,\n StellarTradeData,\n StellarTradeDataSchema,\n TronTradeData,\n TronTradeDataSchema,\n TxData,\n TxDataSchema,\n} from './trade';\n\nconst CommonQuoteResponseSchema = type({\n quoteId: optional(string()),\n quote: QuoteSchemaV2,\n estimatedProcessingTimeInSeconds: number(),\n /**\n * Appended to the quote if there are multiple quote requests in a batch. This\n * indicates which quoteRequest the quote is for\n */\n quoteRequestIndex: optional(number()),\n /**\n * Appended to the quote response based on the quote requested featureId\n */\n featureId: optional(enums(Object.values(FeatureId))),\n /**\n * Appended to the quote response based on the quote request nonEvmFeesInNative flag\n *\n * @deprecated Use network feeData\n */\n nonEvmFeesInNative: optional(FloatStringSchema),\n /**\n * Appended to the quote response based on the quote request l1GasFeesInHexWei flag\n *\n * @deprecated Use network feeData\n */\n l1GasFeesInHexWei: optional(StrictHexStruct),\n});\n\nconst EvmQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Eip155),\n chainId: CaipChainIdStruct,\n trade: TxDataSchema,\n approval: optional(TxDataSchema),\n resetApproval: optional(TxDataSchema),\n }),\n]);\n\nconst TronQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Tron),\n chainId: CaipChainIdStruct,\n trade: TronTradeDataSchema,\n approval: optional(TronTradeDataSchema),\n }),\n]);\n\nconst SolanaQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Solana),\n chainId: CaipChainIdStruct,\n trade: string(),\n approval: optional(TxDataSchema),\n }),\n]);\n\nconst BitcoinQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Bip122),\n chainId: CaipChainIdStruct,\n trade: BitcoinTradeDataSchema,\n approval: optional(TxDataSchema),\n }),\n]);\n\nconst StellarQuoteResponseSchema = intersection([\n CommonQuoteResponseSchema,\n type({\n namespace: literal(KnownCaipNamespace.Stellar),\n chainId: CaipChainIdStruct,\n trade: StellarTradeDataSchema,\n approval: optional(TxDataSchema),\n }),\n]);\n\nexport const QuoteResponseSchemaV2 = nullable(\n union([\n EvmQuoteResponseSchema,\n SolanaQuoteResponseSchema,\n TronQuoteResponseSchema,\n BitcoinQuoteResponseSchema,\n StellarQuoteResponseSchema,\n ]),\n);\n\n/**\n * This is the V2 QuoteResponse type, including metadata calculated after quote fetch\n */\nexport type QuoteResponse = Omit<\n NonNullable<Infer<typeof QuoteResponseSchemaV2>>,\n 'trade' | 'approval' | 'resetApproval'\n> &\n (\n | {\n namespace: KnownCaipNamespace.Eip155;\n chainId: CaipChainId;\n trade: TxData & {\n data: string;\n };\n approval?: TxData;\n /**\n * Appended to the quote response based on the quote request resetApproval flag\n * If defined, the quote's total network fee will include the reset approval's gas limit.\n */\n resetApproval?: TxData;\n }\n | {\n namespace: KnownCaipNamespace.Solana;\n chainId: CaipChainId;\n trade: string;\n approval?: TxData;\n }\n | {\n namespace: KnownCaipNamespace.Tron;\n chainId: CaipChainId;\n trade: TronTradeData & {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n raw_data_hex: string;\n };\n approval?: TronTradeData;\n }\n | {\n namespace: KnownCaipNamespace.Bip122;\n chainId: CaipChainId;\n trade: BitcoinTradeData;\n approval?: TxData;\n }\n | {\n namespace: KnownCaipNamespace.Stellar;\n chainId: CaipChainId;\n trade: StellarTradeData;\n approval?: TxData;\n }\n );\n// This ensures the QuoteResponse type is in sync with the QuoteResponseSchemaV2\nconst QuoteResponse: Describe<QuoteResponse | null> = QuoteResponseSchemaV2;\n\nconst NAMESPACE_TO_TRADE_SCHEMA: Record<QuoteResponse['namespace'], AnyStruct> =\n {\n [KnownCaipNamespace.Eip155]: EvmQuoteResponseSchema,\n [KnownCaipNamespace.Tron]: TronQuoteResponseSchema,\n [KnownCaipNamespace.Solana]: SolanaQuoteResponseSchema,\n [KnownCaipNamespace.Bip122]: BitcoinQuoteResponseSchema,\n [KnownCaipNamespace.Stellar]: StellarQuoteResponseSchema,\n };\n\nexport const validateQuoteResponse = (\n quoteResponse: unknown,\n): quoteResponse is QuoteResponse => {\n // Validate common fields first\n assert(quoteResponse, CommonQuoteResponseSchema);\n\n // Extract the namespace and chainId from the src asset\n const {\n chain: { namespace: namespaceString },\n chainId,\n } = parseCaipAssetType(quoteResponse.quote.src.asset.assetId);\n const namespace = namespaceString as QuoteResponse['namespace'];\n\n if (!NAMESPACE_TO_TRADE_SCHEMA[namespace]) {\n return false;\n }\n\n // Validate the trade and approval fields based on the src chain's namespace\n assert(\n {\n ...quoteResponse,\n namespace,\n chainId,\n },\n NAMESPACE_TO_TRADE_SCHEMA[namespace],\n );\n return true;\n};\n"]}
|