@metamask-previews/bridge-controller 77.3.2-preview-bbd2df29f → 77.3.2-preview-34f2bcbf7
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 +4 -0
- package/dist/bridge-controller.cjs.map +1 -1
- package/dist/bridge-controller.d.cts +3 -2
- package/dist/bridge-controller.d.cts.map +1 -1
- package/dist/bridge-controller.d.mts +3 -2
- package/dist/bridge-controller.d.mts.map +1 -1
- package/dist/bridge-controller.mjs +1 -1
- package/dist/bridge-controller.mjs.map +1 -1
- package/dist/index.cjs +36 -30
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +14 -5
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +14 -5
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +10 -4
- package/dist/index.mjs.map +1 -1
- package/dist/selectors.cjs.map +1 -1
- package/dist/selectors.d.cts +5971 -6520
- package/dist/selectors.d.cts.map +1 -1
- package/dist/selectors.d.mts +5971 -6520
- package/dist/selectors.d.mts.map +1 -1
- package/dist/selectors.mjs.map +1 -1
- package/dist/types.cjs +1 -12
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +21 -41
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +21 -41
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs +0 -11
- package/dist/types.mjs.map +1 -1
- package/dist/utils/bridge.cjs +1 -0
- package/dist/utils/bridge.cjs.map +1 -1
- package/dist/utils/bridge.d.cts +4 -3
- package/dist/utils/bridge.d.cts.map +1 -1
- package/dist/utils/bridge.d.mts +4 -3
- package/dist/utils/bridge.d.mts.map +1 -1
- package/dist/utils/bridge.mjs +1 -0
- package/dist/utils/bridge.mjs.map +1 -1
- package/dist/utils/feature-flags.cjs +2 -2
- package/dist/utils/feature-flags.cjs.map +1 -1
- package/dist/utils/feature-flags.d.cts +1 -1
- package/dist/utils/feature-flags.d.mts +1 -1
- package/dist/utils/feature-flags.mjs +1 -1
- package/dist/utils/feature-flags.mjs.map +1 -1
- package/dist/utils/fetch.cjs +16 -11
- package/dist/utils/fetch.cjs.map +1 -1
- package/dist/utils/fetch.d.cts +3 -1
- package/dist/utils/fetch.d.cts.map +1 -1
- package/dist/utils/fetch.d.mts +3 -1
- package/dist/utils/fetch.d.mts.map +1 -1
- package/dist/utils/fetch.mjs +9 -4
- package/dist/utils/fetch.mjs.map +1 -1
- package/dist/utils/metrics/properties.cjs +2 -2
- package/dist/utils/metrics/properties.cjs.map +1 -1
- package/dist/utils/metrics/properties.d.cts +4 -2
- package/dist/utils/metrics/properties.d.cts.map +1 -1
- package/dist/utils/metrics/properties.d.mts +4 -2
- package/dist/utils/metrics/properties.d.mts.map +1 -1
- package/dist/utils/metrics/properties.mjs +1 -1
- 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 +2 -1
- package/dist/utils/metrics/types.d.cts.map +1 -1
- package/dist/utils/metrics/types.d.mts +2 -1
- package/dist/utils/metrics/types.d.mts.map +1 -1
- package/dist/utils/metrics/types.mjs.map +1 -1
- package/dist/utils/quote-fees.cjs +2 -1
- package/dist/utils/quote-fees.cjs.map +1 -1
- package/dist/utils/quote-fees.d.cts +2 -1
- package/dist/utils/quote-fees.d.cts.map +1 -1
- package/dist/utils/quote-fees.d.mts +2 -1
- package/dist/utils/quote-fees.d.mts.map +1 -1
- package/dist/utils/quote-fees.mjs +2 -1
- package/dist/utils/quote-fees.mjs.map +1 -1
- package/dist/utils/quote.cjs +3 -3
- package/dist/utils/quote.cjs.map +1 -1
- package/dist/utils/quote.d.cts +5 -2
- package/dist/utils/quote.d.cts.map +1 -1
- package/dist/utils/quote.d.mts +5 -2
- package/dist/utils/quote.d.mts.map +1 -1
- package/dist/utils/quote.mjs +2 -2
- package/dist/utils/quote.mjs.map +1 -1
- package/dist/utils/struct-error.cjs +16 -0
- package/dist/utils/struct-error.cjs.map +1 -0
- package/dist/utils/struct-error.d.cts +11 -0
- package/dist/utils/struct-error.d.cts.map +1 -0
- package/dist/utils/struct-error.d.mts +11 -0
- package/dist/utils/struct-error.d.mts.map +1 -0
- package/dist/utils/struct-error.mjs +12 -0
- package/dist/utils/struct-error.mjs.map +1 -0
- package/dist/utils/trade-utils.cjs +7 -66
- package/dist/utils/trade-utils.cjs.map +1 -1
- package/dist/utils/trade-utils.d.cts +1 -54
- package/dist/utils/trade-utils.d.cts.map +1 -1
- package/dist/utils/trade-utils.d.mts +1 -54
- package/dist/utils/trade-utils.d.mts.map +1 -1
- package/dist/utils/trade-utils.mjs +1 -56
- package/dist/utils/trade-utils.mjs.map +1 -1
- package/dist/validators/batch-sell.cjs +39 -0
- package/dist/validators/batch-sell.cjs.map +1 -0
- package/dist/validators/batch-sell.d.cts +79 -0
- package/dist/validators/batch-sell.d.cts.map +1 -0
- package/dist/validators/batch-sell.d.mts +79 -0
- package/dist/validators/batch-sell.d.mts.map +1 -0
- package/dist/validators/batch-sell.mjs +35 -0
- package/dist/validators/batch-sell.mjs.map +1 -0
- package/dist/validators/bridge-asset.cjs +42 -0
- package/dist/validators/bridge-asset.cjs.map +1 -0
- package/dist/validators/bridge-asset.d.cts +52 -0
- package/dist/validators/bridge-asset.d.cts.map +1 -0
- package/dist/validators/bridge-asset.d.mts +52 -0
- package/dist/validators/bridge-asset.d.mts.map +1 -0
- package/dist/validators/bridge-asset.mjs +38 -0
- package/dist/validators/bridge-asset.mjs.map +1 -0
- package/dist/validators/feature-flags.cjs +110 -0
- package/dist/validators/feature-flags.cjs.map +1 -0
- package/dist/validators/feature-flags.d.cts +264 -0
- package/dist/validators/feature-flags.d.cts.map +1 -0
- package/dist/validators/feature-flags.d.mts +264 -0
- package/dist/validators/feature-flags.d.mts.map +1 -0
- package/dist/validators/feature-flags.mjs +106 -0
- package/dist/validators/feature-flags.mjs.map +1 -0
- package/dist/validators/intent.cjs +122 -0
- package/dist/validators/intent.cjs.map +1 -0
- package/dist/validators/intent.d.cts +231 -0
- package/dist/validators/intent.d.cts.map +1 -0
- package/dist/validators/intent.d.mts +231 -0
- package/dist/validators/intent.d.mts.map +1 -0
- package/dist/validators/intent.mjs +119 -0
- package/dist/validators/intent.mjs.map +1 -0
- package/dist/validators/number.cjs +8 -0
- package/dist/validators/number.cjs.map +1 -0
- package/dist/validators/number.d.cts +4 -0
- package/dist/validators/number.d.cts.map +1 -0
- package/dist/validators/number.d.mts +4 -0
- package/dist/validators/number.d.mts.map +1 -0
- package/dist/validators/number.mjs +5 -0
- package/dist/validators/number.mjs.map +1 -0
- package/dist/validators/quote-response-v1.cjs +31 -0
- package/dist/validators/quote-response-v1.cjs.map +1 -0
- package/dist/validators/quote-response-v1.d.cts +658 -0
- package/dist/validators/quote-response-v1.d.cts.map +1 -0
- package/dist/validators/quote-response-v1.d.mts +658 -0
- package/dist/validators/quote-response-v1.d.mts.map +1 -0
- package/dist/validators/quote-response-v1.mjs +27 -0
- package/dist/validators/quote-response-v1.mjs.map +1 -0
- package/dist/validators/quote-stream-complete.cjs +29 -0
- package/dist/validators/quote-stream-complete.cjs.map +1 -0
- package/dist/validators/quote-stream-complete.d.cts +39 -0
- package/dist/validators/quote-stream-complete.d.cts.map +1 -0
- package/dist/validators/quote-stream-complete.d.mts +39 -0
- package/dist/validators/quote-stream-complete.d.mts.map +1 -0
- package/dist/validators/quote-stream-complete.mjs +25 -0
- package/dist/validators/quote-stream-complete.mjs.map +1 -0
- package/dist/validators/quote.cjs +96 -0
- package/dist/validators/quote.cjs.map +1 -0
- package/dist/validators/quote.d.cts +230 -0
- package/dist/validators/quote.d.cts.map +1 -0
- package/dist/validators/quote.d.mts +230 -0
- package/dist/validators/quote.d.mts.map +1 -0
- package/dist/validators/quote.mjs +93 -0
- package/dist/validators/quote.mjs.map +1 -0
- package/dist/validators/step.cjs +20 -0
- package/dist/validators/step.cjs.map +1 -0
- package/dist/validators/step.d.cts +148 -0
- package/dist/validators/step.d.cts.map +1 -0
- package/dist/validators/step.d.mts +148 -0
- package/dist/validators/step.d.mts.map +1 -0
- package/dist/validators/step.mjs +17 -0
- package/dist/validators/step.mjs.map +1 -0
- package/dist/validators/token-feature.cjs +22 -0
- package/dist/validators/token-feature.cjs.map +1 -0
- package/dist/validators/token-feature.d.cts +26 -0
- package/dist/validators/token-feature.d.cts.map +1 -0
- package/dist/validators/token-feature.d.mts +26 -0
- package/dist/validators/token-feature.d.mts.map +1 -0
- package/dist/validators/token-feature.mjs +18 -0
- package/dist/validators/token-feature.mjs.map +1 -0
- package/dist/validators/trade.cjs +94 -0
- package/dist/validators/trade.cjs.map +1 -0
- package/dist/validators/trade.d.cts +121 -0
- package/dist/validators/trade.d.cts.map +1 -0
- package/dist/validators/trade.d.mts +121 -0
- package/dist/validators/trade.d.mts.map +1 -0
- package/dist/validators/trade.mjs +86 -0
- package/dist/validators/trade.mjs.map +1 -0
- package/package.json +4 -4
- package/dist/utils/validators.cjs +0 -471
- package/dist/utils/validators.cjs.map +0 -1
- package/dist/utils/validators.d.cts +0 -1765
- package/dist/utils/validators.d.cts.map +0 -1
- package/dist/utils/validators.d.mts +0 -1765
- package/dist/utils/validators.d.mts.map +0 -1
- package/dist/utils/validators.mjs +0 -461
- package/dist/utils/validators.mjs.map +0 -1
|
@@ -1,66 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.extractTradeData =
|
|
4
|
-
const
|
|
5
|
-
/**
|
|
6
|
-
* Type guard to check if a trade is an EVM TxData object
|
|
7
|
-
*
|
|
8
|
-
* @param trade - The trade object to check
|
|
9
|
-
* @returns True if the trade is a TxData object with data property
|
|
10
|
-
*/
|
|
11
|
-
const isEvmTxData = (trade) => {
|
|
12
|
-
return (typeof trade === 'object' &&
|
|
13
|
-
trade !== null &&
|
|
14
|
-
hasOwnProp(trade, 'data') &&
|
|
15
|
-
hasOwnProp(trade, 'chainId') &&
|
|
16
|
-
hasOwnProp(trade, 'to'));
|
|
17
|
-
};
|
|
18
|
-
exports.isEvmTxData = isEvmTxData;
|
|
19
|
-
/**
|
|
20
|
-
* Type guard to check if a trade is a Bitcoin trade with unsignedPsbtBase64
|
|
21
|
-
*
|
|
22
|
-
* @param trade - The trade object to check
|
|
23
|
-
* @returns True if the trade is a Bitcoin trade with unsignedPsbtBase64 property
|
|
24
|
-
*/
|
|
25
|
-
const isBitcoinTrade = (trade) => {
|
|
26
|
-
return (typeof trade === 'object' &&
|
|
27
|
-
trade !== null &&
|
|
28
|
-
hasOwnProp(trade, 'unsignedPsbtBase64'));
|
|
29
|
-
};
|
|
30
|
-
exports.isBitcoinTrade = isBitcoinTrade;
|
|
31
|
-
/**
|
|
32
|
-
* Type guard to check if a trade is a Tron trade with raw_data_hex
|
|
33
|
-
*
|
|
34
|
-
* @param trade - The trade object to check
|
|
35
|
-
* @returns True if the trade is a Tron trade with raw_data_hex property
|
|
36
|
-
*/
|
|
37
|
-
const isTronTrade = (trade) => {
|
|
38
|
-
return (typeof trade === 'object' &&
|
|
39
|
-
trade !== null &&
|
|
40
|
-
hasOwnProp(trade, 'raw_data_hex'));
|
|
41
|
-
};
|
|
42
|
-
exports.isTronTrade = isTronTrade;
|
|
43
|
-
/**
|
|
44
|
-
* Type guard to check if a trade is a Stellar trade with XDR (base64) payload
|
|
45
|
-
*
|
|
46
|
-
* @param trade - The trade object to check
|
|
47
|
-
* @returns True if the trade is a Stellar trade with xdrBase64 or xdr property
|
|
48
|
-
*/
|
|
49
|
-
const isStellarTrade = (trade) => {
|
|
50
|
-
if (typeof trade !== 'object' || trade === null) {
|
|
51
|
-
return false;
|
|
52
|
-
}
|
|
53
|
-
if (hasOwnProp(trade, 'xdrBase64') &&
|
|
54
|
-
typeof trade.xdrBase64 === 'string') {
|
|
55
|
-
return true;
|
|
56
|
-
}
|
|
57
|
-
if (hasOwnProp(trade, 'xdr') &&
|
|
58
|
-
typeof trade.xdr === 'string') {
|
|
59
|
-
return true;
|
|
60
|
-
}
|
|
61
|
-
return false;
|
|
62
|
-
};
|
|
63
|
-
exports.isStellarTrade = isStellarTrade;
|
|
3
|
+
exports.extractTradeData = void 0;
|
|
4
|
+
const trade_1 = require("../validators/trade.cjs");
|
|
64
5
|
/**
|
|
65
6
|
* Extracts the transaction data from different trade formats
|
|
66
7
|
*
|
|
@@ -69,16 +10,16 @@ exports.isStellarTrade = isStellarTrade;
|
|
|
69
10
|
*/
|
|
70
11
|
const extractTradeData = (trade) => {
|
|
71
12
|
// Check more specific trade types first to prevent misidentification
|
|
72
|
-
if ((0,
|
|
13
|
+
if ((0, trade_1.isBitcoinTrade)(trade)) {
|
|
73
14
|
// Bitcoin trades are already base64 encoded
|
|
74
15
|
return trade.unsignedPsbtBase64;
|
|
75
16
|
}
|
|
76
|
-
if ((0,
|
|
17
|
+
if ((0, trade_1.isTronTrade)(trade)) {
|
|
77
18
|
// Tron trades need hex to base64 conversion for SnapController
|
|
78
19
|
return Buffer.from(trade.raw_data_hex, 'hex').toString('base64');
|
|
79
20
|
}
|
|
80
|
-
if ((0,
|
|
81
|
-
if (hasOwnProp(trade, 'xdrBase64') &&
|
|
21
|
+
if ((0, trade_1.isStellarTrade)(trade)) {
|
|
22
|
+
if ((0, trade_1.hasOwnProp)(trade, 'xdrBase64') &&
|
|
82
23
|
typeof trade.xdrBase64 === 'string') {
|
|
83
24
|
return trade.xdrBase64;
|
|
84
25
|
}
|
|
@@ -88,7 +29,7 @@ const extractTradeData = (trade) => {
|
|
|
88
29
|
// Solana txs - assuming already in correct format
|
|
89
30
|
return trade;
|
|
90
31
|
}
|
|
91
|
-
if ((0,
|
|
32
|
+
if ((0, trade_1.isEvmTxData)(trade)) {
|
|
92
33
|
// EVM TxData object - return the data property
|
|
93
34
|
return trade.data;
|
|
94
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trade-utils.cjs","sourceRoot":"","sources":["../../src/utils/trade-utils.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"trade-utils.cjs","sourceRoot":"","sources":["../../src/utils/trade-utils.ts"],"names":[],"mappings":";;;AAAA,mDAO6B;AAE7B;;;;;GAKG;AACI,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAU,EAAE;IACvD,qEAAqE;IACrE,IAAI,IAAA,sBAAc,EAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,4CAA4C;QAC5C,OAAO,KAAK,CAAC,kBAAkB,CAAC;IAClC,CAAC;IAED,IAAI,IAAA,mBAAW,EAAC,KAAK,CAAC,EAAE,CAAC;QACvB,+DAA+D;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,IAAA,sBAAc,EAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,IACE,IAAA,kBAAU,EAAC,KAAK,EAAE,WAAW,CAAC;YAC9B,OAAQ,KAAgC,CAAC,SAAS,KAAK,QAAQ,EAC/D,CAAC;YACD,OAAQ,KAA+B,CAAC,SAAS,CAAC;QACpD,CAAC;QACD,OAAQ,KAAyB,CAAC,GAAG,CAAC;IACxC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,kDAAkD;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAA,mBAAW,EAAC,KAAK,CAAC,EAAE,CAAC;QACvB,+CAA+C;QAC/C,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAjCW,QAAA,gBAAgB,oBAiC3B","sourcesContent":["import {\n Trade,\n isBitcoinTrade,\n isTronTrade,\n isEvmTxData,\n isStellarTrade,\n hasOwnProp,\n} from '../validators/trade';\n\n/**\n * Extracts the transaction data from different trade formats\n *\n * @param trade - The trade object which can be a TxData, string, Bitcoin trade, or Tron trade\n * @returns The extracted transaction data as a base64 string for SnapController\n */\nexport const extractTradeData = (trade: Trade): string => {\n // Check more specific trade types first to prevent misidentification\n if (isBitcoinTrade(trade)) {\n // Bitcoin trades are already base64 encoded\n return trade.unsignedPsbtBase64;\n }\n\n if (isTronTrade(trade)) {\n // Tron trades need hex to base64 conversion for SnapController\n return Buffer.from(trade.raw_data_hex, 'hex').toString('base64');\n }\n\n if (isStellarTrade(trade)) {\n if (\n hasOwnProp(trade, 'xdrBase64') &&\n typeof (trade as { xdrBase64: unknown }).xdrBase64 === 'string'\n ) {\n return (trade as { xdrBase64: string }).xdrBase64;\n }\n return (trade as { xdr: string }).xdr;\n }\n\n if (typeof trade === 'string') {\n // Solana txs - assuming already in correct format\n return trade;\n }\n\n if (isEvmTxData(trade)) {\n // EVM TxData object - return the data property\n return trade.data;\n }\n\n return '';\n};\n"]}
|
|
@@ -1,57 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
export type Trade = TxData | string | BitcoinTradeData | TronTradeData | StellarTradeData;
|
|
3
|
-
/**
|
|
4
|
-
* Type guard to check if a trade is an EVM TxData object
|
|
5
|
-
*
|
|
6
|
-
* @param trade - The trade object to check
|
|
7
|
-
* @returns True if the trade is a TxData object with data property
|
|
8
|
-
*/
|
|
9
|
-
export declare const isEvmTxData: (trade: Trade) => trade is {
|
|
10
|
-
chainId: number;
|
|
11
|
-
from: `0x${string}`;
|
|
12
|
-
to: `0x${string}`;
|
|
13
|
-
value: `0x${string}`;
|
|
14
|
-
data: `0x${string}`;
|
|
15
|
-
gasLimit: number | null;
|
|
16
|
-
effectiveGas?: number | undefined;
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* Type guard to check if a trade is a Bitcoin trade with unsignedPsbtBase64
|
|
20
|
-
*
|
|
21
|
-
* @param trade - The trade object to check
|
|
22
|
-
* @returns True if the trade is a Bitcoin trade with unsignedPsbtBase64 property
|
|
23
|
-
*/
|
|
24
|
-
export declare const isBitcoinTrade: (trade: Trade) => trade is {
|
|
25
|
-
unsignedPsbtBase64: string;
|
|
26
|
-
inputsToSign: {}[] | null;
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Type guard to check if a trade is a Tron trade with raw_data_hex
|
|
30
|
-
*
|
|
31
|
-
* @param trade - The trade object to check
|
|
32
|
-
* @returns True if the trade is a Tron trade with raw_data_hex property
|
|
33
|
-
*/
|
|
34
|
-
export declare const isTronTrade: (trade: Trade) => trade is {
|
|
35
|
-
raw_data_hex: string;
|
|
36
|
-
visible?: boolean | undefined;
|
|
37
|
-
raw_data?: {
|
|
38
|
-
contract?: {
|
|
39
|
-
type?: string | undefined;
|
|
40
|
-
}[] | undefined;
|
|
41
|
-
fee_limit?: number | undefined;
|
|
42
|
-
} | null | undefined;
|
|
43
|
-
};
|
|
44
|
-
/**
|
|
45
|
-
* Type guard to check if a trade is a Stellar trade with XDR (base64) payload
|
|
46
|
-
*
|
|
47
|
-
* @param trade - The trade object to check
|
|
48
|
-
* @returns True if the trade is a Stellar trade with xdrBase64 or xdr property
|
|
49
|
-
*/
|
|
50
|
-
export declare const isStellarTrade: (trade: Trade) => trade is {
|
|
51
|
-
xdrBase64: string;
|
|
52
|
-
} | {
|
|
53
|
-
xdr: string;
|
|
54
|
-
};
|
|
1
|
+
import { Trade } from "../validators/trade.cjs";
|
|
55
2
|
/**
|
|
56
3
|
* Extracts the transaction data from different trade formats
|
|
57
4
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trade-utils.d.cts","sourceRoot":"","sources":["../../src/utils/trade-utils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"trade-utils.d.cts","sourceRoot":"","sources":["../../src/utils/trade-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAMN,gCAA4B;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,UAAW,KAAK,KAAG,MAiC/C,CAAC"}
|
|
@@ -1,57 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
export type Trade = TxData | string | BitcoinTradeData | TronTradeData | StellarTradeData;
|
|
3
|
-
/**
|
|
4
|
-
* Type guard to check if a trade is an EVM TxData object
|
|
5
|
-
*
|
|
6
|
-
* @param trade - The trade object to check
|
|
7
|
-
* @returns True if the trade is a TxData object with data property
|
|
8
|
-
*/
|
|
9
|
-
export declare const isEvmTxData: (trade: Trade) => trade is {
|
|
10
|
-
chainId: number;
|
|
11
|
-
from: `0x${string}`;
|
|
12
|
-
to: `0x${string}`;
|
|
13
|
-
value: `0x${string}`;
|
|
14
|
-
data: `0x${string}`;
|
|
15
|
-
gasLimit: number | null;
|
|
16
|
-
effectiveGas?: number | undefined;
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* Type guard to check if a trade is a Bitcoin trade with unsignedPsbtBase64
|
|
20
|
-
*
|
|
21
|
-
* @param trade - The trade object to check
|
|
22
|
-
* @returns True if the trade is a Bitcoin trade with unsignedPsbtBase64 property
|
|
23
|
-
*/
|
|
24
|
-
export declare const isBitcoinTrade: (trade: Trade) => trade is {
|
|
25
|
-
unsignedPsbtBase64: string;
|
|
26
|
-
inputsToSign: {}[] | null;
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Type guard to check if a trade is a Tron trade with raw_data_hex
|
|
30
|
-
*
|
|
31
|
-
* @param trade - The trade object to check
|
|
32
|
-
* @returns True if the trade is a Tron trade with raw_data_hex property
|
|
33
|
-
*/
|
|
34
|
-
export declare const isTronTrade: (trade: Trade) => trade is {
|
|
35
|
-
raw_data_hex: string;
|
|
36
|
-
visible?: boolean | undefined;
|
|
37
|
-
raw_data?: {
|
|
38
|
-
contract?: {
|
|
39
|
-
type?: string | undefined;
|
|
40
|
-
}[] | undefined;
|
|
41
|
-
fee_limit?: number | undefined;
|
|
42
|
-
} | null | undefined;
|
|
43
|
-
};
|
|
44
|
-
/**
|
|
45
|
-
* Type guard to check if a trade is a Stellar trade with XDR (base64) payload
|
|
46
|
-
*
|
|
47
|
-
* @param trade - The trade object to check
|
|
48
|
-
* @returns True if the trade is a Stellar trade with xdrBase64 or xdr property
|
|
49
|
-
*/
|
|
50
|
-
export declare const isStellarTrade: (trade: Trade) => trade is {
|
|
51
|
-
xdrBase64: string;
|
|
52
|
-
} | {
|
|
53
|
-
xdr: string;
|
|
54
|
-
};
|
|
1
|
+
import { Trade } from "../validators/trade.mjs";
|
|
55
2
|
/**
|
|
56
3
|
* Extracts the transaction data from different trade formats
|
|
57
4
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trade-utils.d.mts","sourceRoot":"","sources":["../../src/utils/trade-utils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"trade-utils.d.mts","sourceRoot":"","sources":["../../src/utils/trade-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAMN,gCAA4B;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,UAAW,KAAK,KAAG,MAiC/C,CAAC"}
|
|
@@ -1,59 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* Type guard to check if a trade is an EVM TxData object
|
|
4
|
-
*
|
|
5
|
-
* @param trade - The trade object to check
|
|
6
|
-
* @returns True if the trade is a TxData object with data property
|
|
7
|
-
*/
|
|
8
|
-
export const isEvmTxData = (trade) => {
|
|
9
|
-
return (typeof trade === 'object' &&
|
|
10
|
-
trade !== null &&
|
|
11
|
-
hasOwnProp(trade, 'data') &&
|
|
12
|
-
hasOwnProp(trade, 'chainId') &&
|
|
13
|
-
hasOwnProp(trade, 'to'));
|
|
14
|
-
};
|
|
15
|
-
/**
|
|
16
|
-
* Type guard to check if a trade is a Bitcoin trade with unsignedPsbtBase64
|
|
17
|
-
*
|
|
18
|
-
* @param trade - The trade object to check
|
|
19
|
-
* @returns True if the trade is a Bitcoin trade with unsignedPsbtBase64 property
|
|
20
|
-
*/
|
|
21
|
-
export const isBitcoinTrade = (trade) => {
|
|
22
|
-
return (typeof trade === 'object' &&
|
|
23
|
-
trade !== null &&
|
|
24
|
-
hasOwnProp(trade, 'unsignedPsbtBase64'));
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* Type guard to check if a trade is a Tron trade with raw_data_hex
|
|
28
|
-
*
|
|
29
|
-
* @param trade - The trade object to check
|
|
30
|
-
* @returns True if the trade is a Tron trade with raw_data_hex property
|
|
31
|
-
*/
|
|
32
|
-
export const isTronTrade = (trade) => {
|
|
33
|
-
return (typeof trade === 'object' &&
|
|
34
|
-
trade !== null &&
|
|
35
|
-
hasOwnProp(trade, 'raw_data_hex'));
|
|
36
|
-
};
|
|
37
|
-
/**
|
|
38
|
-
* Type guard to check if a trade is a Stellar trade with XDR (base64) payload
|
|
39
|
-
*
|
|
40
|
-
* @param trade - The trade object to check
|
|
41
|
-
* @returns True if the trade is a Stellar trade with xdrBase64 or xdr property
|
|
42
|
-
*/
|
|
43
|
-
export const isStellarTrade = (trade) => {
|
|
44
|
-
if (typeof trade !== 'object' || trade === null) {
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
if (hasOwnProp(trade, 'xdrBase64') &&
|
|
48
|
-
typeof trade.xdrBase64 === 'string') {
|
|
49
|
-
return true;
|
|
50
|
-
}
|
|
51
|
-
if (hasOwnProp(trade, 'xdr') &&
|
|
52
|
-
typeof trade.xdr === 'string') {
|
|
53
|
-
return true;
|
|
54
|
-
}
|
|
55
|
-
return false;
|
|
56
|
-
};
|
|
1
|
+
import { isBitcoinTrade, isTronTrade, isEvmTxData, isStellarTrade, hasOwnProp } from "../validators/trade.mjs";
|
|
57
2
|
/**
|
|
58
3
|
* Extracts the transaction data from different trade formats
|
|
59
4
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trade-utils.mjs","sourceRoot":"","sources":["../../src/utils/trade-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"trade-utils.mjs","sourceRoot":"","sources":["../../src/utils/trade-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,WAAW,EACX,WAAW,EACX,cAAc,EACd,UAAU,EACX,gCAA4B;AAE7B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAU,EAAE;IACvD,qEAAqE;IACrE,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,4CAA4C;QAC5C,OAAO,KAAK,CAAC,kBAAkB,CAAC;IAClC,CAAC;IAED,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,+DAA+D;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,IACE,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC;YAC9B,OAAQ,KAAgC,CAAC,SAAS,KAAK,QAAQ,EAC/D,CAAC;YACD,OAAQ,KAA+B,CAAC,SAAS,CAAC;QACpD,CAAC;QACD,OAAQ,KAAyB,CAAC,GAAG,CAAC;IACxC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,kDAAkD;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,+CAA+C;QAC/C,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC","sourcesContent":["import {\n Trade,\n isBitcoinTrade,\n isTronTrade,\n isEvmTxData,\n isStellarTrade,\n hasOwnProp,\n} from '../validators/trade';\n\n/**\n * Extracts the transaction data from different trade formats\n *\n * @param trade - The trade object which can be a TxData, string, Bitcoin trade, or Tron trade\n * @returns The extracted transaction data as a base64 string for SnapController\n */\nexport const extractTradeData = (trade: Trade): string => {\n // Check more specific trade types first to prevent misidentification\n if (isBitcoinTrade(trade)) {\n // Bitcoin trades are already base64 encoded\n return trade.unsignedPsbtBase64;\n }\n\n if (isTronTrade(trade)) {\n // Tron trades need hex to base64 conversion for SnapController\n return Buffer.from(trade.raw_data_hex, 'hex').toString('base64');\n }\n\n if (isStellarTrade(trade)) {\n if (\n hasOwnProp(trade, 'xdrBase64') &&\n typeof (trade as { xdrBase64: unknown }).xdrBase64 === 'string'\n ) {\n return (trade as { xdrBase64: string }).xdrBase64;\n }\n return (trade as { xdr: string }).xdr;\n }\n\n if (typeof trade === 'string') {\n // Solana txs - assuming already in correct format\n return trade;\n }\n\n if (isEvmTxData(trade)) {\n // EVM TxData object - return the data property\n return trade.data;\n }\n\n return '';\n};\n"]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateBatchSellTradesResponse = exports.BatchSellTradesResponseSchema = exports.SimulatedGasFeeLimitsSchema = exports.BatchSellTransactionType = void 0;
|
|
4
|
+
const superstruct_1 = require("@metamask/superstruct");
|
|
5
|
+
const utils_1 = require("@metamask/utils");
|
|
6
|
+
const bridge_asset_1 = require("./bridge-asset.cjs");
|
|
7
|
+
const number_1 = require("./number.cjs");
|
|
8
|
+
const quote_1 = require("./quote.cjs");
|
|
9
|
+
const trade_1 = require("./trade.cjs");
|
|
10
|
+
var BatchSellTransactionType;
|
|
11
|
+
(function (BatchSellTransactionType) {
|
|
12
|
+
BatchSellTransactionType["TRADE"] = "trade";
|
|
13
|
+
BatchSellTransactionType["APPROVAL"] = "approval";
|
|
14
|
+
BatchSellTransactionType["TRANSFER"] = "transfer";
|
|
15
|
+
})(BatchSellTransactionType || (exports.BatchSellTransactionType = BatchSellTransactionType = {}));
|
|
16
|
+
exports.SimulatedGasFeeLimitsSchema = (0, superstruct_1.type)({
|
|
17
|
+
maxFeePerGas: utils_1.StrictHexStruct,
|
|
18
|
+
maxPriorityFeePerGas: utils_1.StrictHexStruct,
|
|
19
|
+
});
|
|
20
|
+
exports.BatchSellTradesResponseSchema = (0, superstruct_1.intersection)([
|
|
21
|
+
(0, superstruct_1.type)({
|
|
22
|
+
transactions: (0, superstruct_1.array)((0, superstruct_1.intersection)([
|
|
23
|
+
trade_1.TxDataSchema,
|
|
24
|
+
exports.SimulatedGasFeeLimitsSchema,
|
|
25
|
+
(0, superstruct_1.type)({ type: (0, superstruct_1.enums)(Object.values(BatchSellTransactionType)) }),
|
|
26
|
+
])),
|
|
27
|
+
fee: (0, superstruct_1.optional)((0, superstruct_1.type)({
|
|
28
|
+
asset: bridge_asset_1.BridgeAssetSchema,
|
|
29
|
+
amount: number_1.NumberStringSchema,
|
|
30
|
+
})),
|
|
31
|
+
}),
|
|
32
|
+
quote_1.GaslessPropertiesSchema,
|
|
33
|
+
]);
|
|
34
|
+
const validateBatchSellTradesResponse = (data) => {
|
|
35
|
+
(0, superstruct_1.assert)(data, exports.BatchSellTradesResponseSchema);
|
|
36
|
+
return true;
|
|
37
|
+
};
|
|
38
|
+
exports.validateBatchSellTradesResponse = validateBatchSellTradesResponse;
|
|
39
|
+
//# sourceMappingURL=batch-sell.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-sell.cjs","sourceRoot":"","sources":["../../src/validators/batch-sell.ts"],"names":[],"mappings":";;;AAAA,uDAO+B;AAE/B,2CAAkD;AAElD,qDAAmD;AACnD,yCAA8C;AAC9C,uCAAkD;AAClD,uCAAuC;AAEvC,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,2CAAe,CAAA;IACf,iDAAqB,CAAA;IACrB,iDAAqB,CAAA;AACvB,CAAC,EAJW,wBAAwB,wCAAxB,wBAAwB,QAInC;AAEY,QAAA,2BAA2B,GAAG,IAAA,kBAAI,EAAC;IAC9C,YAAY,EAAE,uBAAe;IAC7B,oBAAoB,EAAE,uBAAe;CACtC,CAAC,CAAC;AAEU,QAAA,6BAA6B,GAAG,IAAA,0BAAY,EAAC;IACxD,IAAA,kBAAI,EAAC;QACH,YAAY,EAAE,IAAA,mBAAK,EACjB,IAAA,0BAAY,EAAC;YACX,oBAAY;YACZ,mCAA2B;YAC3B,IAAA,kBAAI,EAAC,EAAE,IAAI,EAAE,IAAA,mBAAK,EAAC,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC;SAC/D,CAAC,CACH;QACD,GAAG,EAAE,IAAA,sBAAQ,EACX,IAAA,kBAAI,EAAC;YACH,KAAK,EAAE,gCAAiB;YACxB,MAAM,EAAE,2BAAkB;SAC3B,CAAC,CACH;KACF,CAAC;IACF,+BAAuB;CACxB,CAAC,CAAC;AAEI,MAAM,+BAA+B,GAAG,CAC7C,IAAa,EACwC,EAAE;IACvD,IAAA,oBAAM,EAAC,IAAI,EAAE,qCAA6B,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AALW,QAAA,+BAA+B,mCAK1C","sourcesContent":["import {\n intersection,\n type,\n array,\n enums,\n optional,\n assert,\n} from '@metamask/superstruct';\nimport type { Infer } from '@metamask/superstruct';\nimport { StrictHexStruct } from '@metamask/utils';\n\nimport { BridgeAssetSchema } from './bridge-asset';\nimport { NumberStringSchema } from './number';\nimport { GaslessPropertiesSchema } from './quote';\nimport { TxDataSchema } from './trade';\n\nexport enum BatchSellTransactionType {\n TRADE = 'trade',\n APPROVAL = 'approval',\n TRANSFER = 'transfer',\n}\n\nexport const SimulatedGasFeeLimitsSchema = type({\n maxFeePerGas: StrictHexStruct,\n maxPriorityFeePerGas: StrictHexStruct,\n});\n\nexport const BatchSellTradesResponseSchema = intersection([\n type({\n transactions: array(\n intersection([\n TxDataSchema,\n SimulatedGasFeeLimitsSchema,\n type({ type: enums(Object.values(BatchSellTransactionType)) }),\n ]),\n ),\n fee: optional(\n type({\n asset: BridgeAssetSchema,\n amount: NumberStringSchema,\n }),\n ),\n }),\n GaslessPropertiesSchema,\n]);\n\nexport const validateBatchSellTradesResponse = (\n data: unknown,\n): data is Infer<typeof BatchSellTradesResponseSchema> => {\n assert(data, BatchSellTradesResponseSchema);\n return true;\n};\n"]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
export declare enum BatchSellTransactionType {
|
|
2
|
+
TRADE = "trade",
|
|
3
|
+
APPROVAL = "approval",
|
|
4
|
+
TRANSFER = "transfer"
|
|
5
|
+
}
|
|
6
|
+
export declare const SimulatedGasFeeLimitsSchema: import("@metamask/superstruct").Struct<{
|
|
7
|
+
maxFeePerGas: `0x${string}`;
|
|
8
|
+
maxPriorityFeePerGas: `0x${string}`;
|
|
9
|
+
}, {
|
|
10
|
+
maxFeePerGas: import("@metamask/superstruct").Struct<`0x${string}`, null>;
|
|
11
|
+
maxPriorityFeePerGas: import("@metamask/superstruct").Struct<`0x${string}`, null>;
|
|
12
|
+
}>;
|
|
13
|
+
export declare const BatchSellTradesResponseSchema: import("@metamask/superstruct").Struct<{
|
|
14
|
+
transactions: ({
|
|
15
|
+
chainId: number;
|
|
16
|
+
to: `0x${string}`;
|
|
17
|
+
from: `0x${string}`;
|
|
18
|
+
value: `0x${string}`;
|
|
19
|
+
data: `0x${string}`;
|
|
20
|
+
gasLimit: number | null;
|
|
21
|
+
effectiveGas?: number | undefined;
|
|
22
|
+
} & {
|
|
23
|
+
maxFeePerGas: `0x${string}`;
|
|
24
|
+
maxPriorityFeePerGas: `0x${string}`;
|
|
25
|
+
} & {
|
|
26
|
+
type: BatchSellTransactionType;
|
|
27
|
+
})[];
|
|
28
|
+
fee?: {
|
|
29
|
+
amount: string;
|
|
30
|
+
asset: {
|
|
31
|
+
symbol: string;
|
|
32
|
+
chainId: number;
|
|
33
|
+
address: string;
|
|
34
|
+
assetId: `${string}:${string}/${string}:${string}`;
|
|
35
|
+
name: string;
|
|
36
|
+
decimals: number;
|
|
37
|
+
icon?: string | null | undefined;
|
|
38
|
+
iconUrl?: string | null | undefined;
|
|
39
|
+
};
|
|
40
|
+
} | undefined;
|
|
41
|
+
} & {
|
|
42
|
+
gasIncluded?: boolean | undefined;
|
|
43
|
+
gasIncluded7702?: boolean | undefined;
|
|
44
|
+
gasSponsored?: boolean | undefined;
|
|
45
|
+
}, null>;
|
|
46
|
+
export declare const validateBatchSellTradesResponse: (data: unknown) => data is {
|
|
47
|
+
transactions: ({
|
|
48
|
+
chainId: number;
|
|
49
|
+
to: `0x${string}`;
|
|
50
|
+
from: `0x${string}`;
|
|
51
|
+
value: `0x${string}`;
|
|
52
|
+
data: `0x${string}`;
|
|
53
|
+
gasLimit: number | null;
|
|
54
|
+
effectiveGas?: number | undefined;
|
|
55
|
+
} & {
|
|
56
|
+
maxFeePerGas: `0x${string}`;
|
|
57
|
+
maxPriorityFeePerGas: `0x${string}`;
|
|
58
|
+
} & {
|
|
59
|
+
type: BatchSellTransactionType;
|
|
60
|
+
})[];
|
|
61
|
+
fee?: {
|
|
62
|
+
amount: string;
|
|
63
|
+
asset: {
|
|
64
|
+
symbol: string;
|
|
65
|
+
chainId: number;
|
|
66
|
+
address: string;
|
|
67
|
+
assetId: `${string}:${string}/${string}:${string}`;
|
|
68
|
+
name: string;
|
|
69
|
+
decimals: number;
|
|
70
|
+
icon?: string | null | undefined;
|
|
71
|
+
iconUrl?: string | null | undefined;
|
|
72
|
+
};
|
|
73
|
+
} | undefined;
|
|
74
|
+
} & {
|
|
75
|
+
gasIncluded?: boolean | undefined;
|
|
76
|
+
gasIncluded7702?: boolean | undefined;
|
|
77
|
+
gasSponsored?: boolean | undefined;
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=batch-sell.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-sell.d.cts","sourceRoot":"","sources":["../../src/validators/batch-sell.ts"],"names":[],"mappings":"AAgBA,oBAAY,wBAAwB;IAClC,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,2BAA2B;;;;;;EAGtC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiBxC,CAAC;AAEH,eAAO,MAAM,+BAA+B,SACpC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAId,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
export declare enum BatchSellTransactionType {
|
|
2
|
+
TRADE = "trade",
|
|
3
|
+
APPROVAL = "approval",
|
|
4
|
+
TRANSFER = "transfer"
|
|
5
|
+
}
|
|
6
|
+
export declare const SimulatedGasFeeLimitsSchema: import("@metamask/superstruct").Struct<{
|
|
7
|
+
maxFeePerGas: `0x${string}`;
|
|
8
|
+
maxPriorityFeePerGas: `0x${string}`;
|
|
9
|
+
}, {
|
|
10
|
+
maxFeePerGas: import("@metamask/superstruct").Struct<`0x${string}`, null>;
|
|
11
|
+
maxPriorityFeePerGas: import("@metamask/superstruct").Struct<`0x${string}`, null>;
|
|
12
|
+
}>;
|
|
13
|
+
export declare const BatchSellTradesResponseSchema: import("@metamask/superstruct").Struct<{
|
|
14
|
+
transactions: ({
|
|
15
|
+
chainId: number;
|
|
16
|
+
to: `0x${string}`;
|
|
17
|
+
from: `0x${string}`;
|
|
18
|
+
value: `0x${string}`;
|
|
19
|
+
data: `0x${string}`;
|
|
20
|
+
gasLimit: number | null;
|
|
21
|
+
effectiveGas?: number | undefined;
|
|
22
|
+
} & {
|
|
23
|
+
maxFeePerGas: `0x${string}`;
|
|
24
|
+
maxPriorityFeePerGas: `0x${string}`;
|
|
25
|
+
} & {
|
|
26
|
+
type: BatchSellTransactionType;
|
|
27
|
+
})[];
|
|
28
|
+
fee?: {
|
|
29
|
+
amount: string;
|
|
30
|
+
asset: {
|
|
31
|
+
symbol: string;
|
|
32
|
+
chainId: number;
|
|
33
|
+
address: string;
|
|
34
|
+
assetId: `${string}:${string}/${string}:${string}`;
|
|
35
|
+
name: string;
|
|
36
|
+
decimals: number;
|
|
37
|
+
icon?: string | null | undefined;
|
|
38
|
+
iconUrl?: string | null | undefined;
|
|
39
|
+
};
|
|
40
|
+
} | undefined;
|
|
41
|
+
} & {
|
|
42
|
+
gasIncluded?: boolean | undefined;
|
|
43
|
+
gasIncluded7702?: boolean | undefined;
|
|
44
|
+
gasSponsored?: boolean | undefined;
|
|
45
|
+
}, null>;
|
|
46
|
+
export declare const validateBatchSellTradesResponse: (data: unknown) => data is {
|
|
47
|
+
transactions: ({
|
|
48
|
+
chainId: number;
|
|
49
|
+
to: `0x${string}`;
|
|
50
|
+
from: `0x${string}`;
|
|
51
|
+
value: `0x${string}`;
|
|
52
|
+
data: `0x${string}`;
|
|
53
|
+
gasLimit: number | null;
|
|
54
|
+
effectiveGas?: number | undefined;
|
|
55
|
+
} & {
|
|
56
|
+
maxFeePerGas: `0x${string}`;
|
|
57
|
+
maxPriorityFeePerGas: `0x${string}`;
|
|
58
|
+
} & {
|
|
59
|
+
type: BatchSellTransactionType;
|
|
60
|
+
})[];
|
|
61
|
+
fee?: {
|
|
62
|
+
amount: string;
|
|
63
|
+
asset: {
|
|
64
|
+
symbol: string;
|
|
65
|
+
chainId: number;
|
|
66
|
+
address: string;
|
|
67
|
+
assetId: `${string}:${string}/${string}:${string}`;
|
|
68
|
+
name: string;
|
|
69
|
+
decimals: number;
|
|
70
|
+
icon?: string | null | undefined;
|
|
71
|
+
iconUrl?: string | null | undefined;
|
|
72
|
+
};
|
|
73
|
+
} | undefined;
|
|
74
|
+
} & {
|
|
75
|
+
gasIncluded?: boolean | undefined;
|
|
76
|
+
gasIncluded7702?: boolean | undefined;
|
|
77
|
+
gasSponsored?: boolean | undefined;
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=batch-sell.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-sell.d.mts","sourceRoot":"","sources":["../../src/validators/batch-sell.ts"],"names":[],"mappings":"AAgBA,oBAAY,wBAAwB;IAClC,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,2BAA2B;;;;;;EAGtC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiBxC,CAAC;AAEH,eAAO,MAAM,+BAA+B,SACpC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAId,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { intersection, type, array, enums, optional, assert } from "@metamask/superstruct";
|
|
2
|
+
import { StrictHexStruct } from "@metamask/utils";
|
|
3
|
+
import { BridgeAssetSchema } from "./bridge-asset.mjs";
|
|
4
|
+
import { NumberStringSchema } from "./number.mjs";
|
|
5
|
+
import { GaslessPropertiesSchema } from "./quote.mjs";
|
|
6
|
+
import { TxDataSchema } from "./trade.mjs";
|
|
7
|
+
export var BatchSellTransactionType;
|
|
8
|
+
(function (BatchSellTransactionType) {
|
|
9
|
+
BatchSellTransactionType["TRADE"] = "trade";
|
|
10
|
+
BatchSellTransactionType["APPROVAL"] = "approval";
|
|
11
|
+
BatchSellTransactionType["TRANSFER"] = "transfer";
|
|
12
|
+
})(BatchSellTransactionType || (BatchSellTransactionType = {}));
|
|
13
|
+
export const SimulatedGasFeeLimitsSchema = type({
|
|
14
|
+
maxFeePerGas: StrictHexStruct,
|
|
15
|
+
maxPriorityFeePerGas: StrictHexStruct,
|
|
16
|
+
});
|
|
17
|
+
export const BatchSellTradesResponseSchema = intersection([
|
|
18
|
+
type({
|
|
19
|
+
transactions: array(intersection([
|
|
20
|
+
TxDataSchema,
|
|
21
|
+
SimulatedGasFeeLimitsSchema,
|
|
22
|
+
type({ type: enums(Object.values(BatchSellTransactionType)) }),
|
|
23
|
+
])),
|
|
24
|
+
fee: optional(type({
|
|
25
|
+
asset: BridgeAssetSchema,
|
|
26
|
+
amount: NumberStringSchema,
|
|
27
|
+
})),
|
|
28
|
+
}),
|
|
29
|
+
GaslessPropertiesSchema,
|
|
30
|
+
]);
|
|
31
|
+
export const validateBatchSellTradesResponse = (data) => {
|
|
32
|
+
assert(data, BatchSellTradesResponseSchema);
|
|
33
|
+
return true;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=batch-sell.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-sell.mjs","sourceRoot":"","sources":["../../src/validators/batch-sell.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,MAAM,EACP,8BAA8B;AAE/B,OAAO,EAAE,eAAe,EAAE,wBAAwB;AAElD,OAAO,EAAE,iBAAiB,EAAE,2BAAuB;AACnD,OAAO,EAAE,kBAAkB,EAAE,qBAAiB;AAC9C,OAAO,EAAE,uBAAuB,EAAE,oBAAgB;AAClD,OAAO,EAAE,YAAY,EAAE,oBAAgB;AAEvC,MAAM,CAAN,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,2CAAe,CAAA;IACf,iDAAqB,CAAA;IACrB,iDAAqB,CAAA;AACvB,CAAC,EAJW,wBAAwB,KAAxB,wBAAwB,QAInC;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC;IAC9C,YAAY,EAAE,eAAe;IAC7B,oBAAoB,EAAE,eAAe;CACtC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,YAAY,CAAC;IACxD,IAAI,CAAC;QACH,YAAY,EAAE,KAAK,CACjB,YAAY,CAAC;YACX,YAAY;YACZ,2BAA2B;YAC3B,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC;SAC/D,CAAC,CACH;QACD,GAAG,EAAE,QAAQ,CACX,IAAI,CAAC;YACH,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,kBAAkB;SAC3B,CAAC,CACH;KACF,CAAC;IACF,uBAAuB;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,IAAa,EACwC,EAAE;IACvD,MAAM,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC,CAAC","sourcesContent":["import {\n intersection,\n type,\n array,\n enums,\n optional,\n assert,\n} from '@metamask/superstruct';\nimport type { Infer } from '@metamask/superstruct';\nimport { StrictHexStruct } from '@metamask/utils';\n\nimport { BridgeAssetSchema } from './bridge-asset';\nimport { NumberStringSchema } from './number';\nimport { GaslessPropertiesSchema } from './quote';\nimport { TxDataSchema } from './trade';\n\nexport enum BatchSellTransactionType {\n TRADE = 'trade',\n APPROVAL = 'approval',\n TRANSFER = 'transfer',\n}\n\nexport const SimulatedGasFeeLimitsSchema = type({\n maxFeePerGas: StrictHexStruct,\n maxPriorityFeePerGas: StrictHexStruct,\n});\n\nexport const BatchSellTradesResponseSchema = intersection([\n type({\n transactions: array(\n intersection([\n TxDataSchema,\n SimulatedGasFeeLimitsSchema,\n type({ type: enums(Object.values(BatchSellTransactionType)) }),\n ]),\n ),\n fee: optional(\n type({\n asset: BridgeAssetSchema,\n amount: NumberStringSchema,\n }),\n ),\n }),\n GaslessPropertiesSchema,\n]);\n\nexport const validateBatchSellTradesResponse = (\n data: unknown,\n): data is Infer<typeof BatchSellTradesResponseSchema> => {\n assert(data, BatchSellTradesResponseSchema);\n return true;\n};\n"]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateBridgeAsset = exports.BridgeAssetSchema = exports.ChainIdSchema = void 0;
|
|
4
|
+
const superstruct_1 = require("@metamask/superstruct");
|
|
5
|
+
const utils_1 = require("@metamask/utils");
|
|
6
|
+
exports.ChainIdSchema = (0, superstruct_1.number)();
|
|
7
|
+
exports.BridgeAssetSchema = (0, superstruct_1.type)({
|
|
8
|
+
/**
|
|
9
|
+
* The chainId of the token
|
|
10
|
+
*/
|
|
11
|
+
chainId: exports.ChainIdSchema,
|
|
12
|
+
/**
|
|
13
|
+
* An address that the metaswap-api recognizes as the default token
|
|
14
|
+
*/
|
|
15
|
+
address: (0, superstruct_1.string)(),
|
|
16
|
+
/**
|
|
17
|
+
* The assetId of the token
|
|
18
|
+
*/
|
|
19
|
+
assetId: utils_1.CaipAssetTypeStruct,
|
|
20
|
+
/**
|
|
21
|
+
* The symbol of token object
|
|
22
|
+
*/
|
|
23
|
+
symbol: (0, superstruct_1.string)(),
|
|
24
|
+
/**
|
|
25
|
+
* The name for the network
|
|
26
|
+
*/
|
|
27
|
+
name: (0, superstruct_1.string)(),
|
|
28
|
+
decimals: (0, superstruct_1.number)(),
|
|
29
|
+
/**
|
|
30
|
+
* URL for token icon
|
|
31
|
+
*/
|
|
32
|
+
icon: (0, superstruct_1.optional)((0, superstruct_1.nullable)((0, superstruct_1.string)())),
|
|
33
|
+
/**
|
|
34
|
+
* URL for token icon
|
|
35
|
+
*/
|
|
36
|
+
iconUrl: (0, superstruct_1.optional)((0, superstruct_1.nullable)((0, superstruct_1.string)())),
|
|
37
|
+
});
|
|
38
|
+
const validateBridgeAsset = (data) => {
|
|
39
|
+
return (0, superstruct_1.is)(data, exports.BridgeAssetSchema);
|
|
40
|
+
};
|
|
41
|
+
exports.validateBridgeAsset = validateBridgeAsset;
|
|
42
|
+
//# sourceMappingURL=bridge-asset.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-asset.cjs","sourceRoot":"","sources":["../../src/validators/bridge-asset.ts"],"names":[],"mappings":";;;AAAA,uDAO+B;AAE/B,2CAAsD;AAEzC,QAAA,aAAa,GAAG,IAAA,oBAAM,GAAE,CAAC;AAEzB,QAAA,iBAAiB,GAAG,IAAA,kBAAI,EAAC;IACpC;;OAEG;IACH,OAAO,EAAE,qBAAa;IACtB;;OAEG;IACH,OAAO,EAAE,IAAA,oBAAM,GAAE;IACjB;;OAEG;IACH,OAAO,EAAE,2BAAmB;IAC5B;;OAEG;IACH,MAAM,EAAE,IAAA,oBAAM,GAAE;IAChB;;OAEG;IACH,IAAI,EAAE,IAAA,oBAAM,GAAE;IACd,QAAQ,EAAE,IAAA,oBAAM,GAAE;IAClB;;OAEG;IACH,IAAI,EAAE,IAAA,sBAAQ,EAAC,IAAA,sBAAQ,EAAC,IAAA,oBAAM,GAAE,CAAC,CAAC;IAClC;;OAEG;IACH,OAAO,EAAE,IAAA,sBAAQ,EAAC,IAAA,sBAAQ,EAAC,IAAA,oBAAM,GAAE,CAAC,CAAC;CACtC,CAAC,CAAC;AAEI,MAAM,mBAAmB,GAAG,CACjC,IAAa,EAC4B,EAAE;IAC3C,OAAO,IAAA,gBAAE,EAAC,IAAI,EAAE,yBAAiB,CAAC,CAAC;AACrC,CAAC,CAAC;AAJW,QAAA,mBAAmB,uBAI9B","sourcesContent":["import {\n number,\n type,\n string,\n optional,\n nullable,\n is,\n} from '@metamask/superstruct';\nimport type { Infer } from '@metamask/superstruct';\nimport { CaipAssetTypeStruct } from '@metamask/utils';\n\nexport const ChainIdSchema = number();\n\nexport const BridgeAssetSchema = type({\n /**\n * The chainId of the token\n */\n chainId: ChainIdSchema,\n /**\n * An address that the metaswap-api recognizes as the default token\n */\n address: string(),\n /**\n * The assetId of the token\n */\n assetId: CaipAssetTypeStruct,\n /**\n * The symbol of token object\n */\n symbol: string(),\n /**\n * The name for the network\n */\n name: string(),\n decimals: number(),\n /**\n * URL for token icon\n */\n icon: optional(nullable(string())),\n /**\n * URL for token icon\n */\n iconUrl: optional(nullable(string())),\n});\n\nexport const validateBridgeAsset = (\n data: unknown,\n): data is Infer<typeof BridgeAssetSchema> => {\n return is(data, BridgeAssetSchema);\n};\n"]}
|