@metamask-previews/bridge-controller 77.3.2-preview-0e180da1e → 77.3.2-preview-b3fa32653
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 -4
- package/dist/bridge-controller.cjs.map +1 -1
- package/dist/bridge-controller.d.cts +2 -3
- package/dist/bridge-controller.d.cts.map +1 -1
- package/dist/bridge-controller.d.mts +2 -3
- 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 +30 -36
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -14
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +5 -14
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +4 -10
- package/dist/index.mjs.map +1 -1
- package/dist/selectors.cjs.map +1 -1
- package/dist/selectors.d.cts +6483 -5934
- package/dist/selectors.d.cts.map +1 -1
- package/dist/selectors.d.mts +6483 -5934
- package/dist/selectors.d.mts.map +1 -1
- package/dist/selectors.mjs.map +1 -1
- package/dist/types.cjs +12 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +41 -21
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +41 -21
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs +11 -0
- package/dist/types.mjs.map +1 -1
- package/dist/utils/bridge.cjs +0 -1
- package/dist/utils/bridge.cjs.map +1 -1
- package/dist/utils/bridge.d.cts +3 -4
- package/dist/utils/bridge.d.cts.map +1 -1
- package/dist/utils/bridge.d.mts +3 -4
- package/dist/utils/bridge.d.mts.map +1 -1
- package/dist/utils/bridge.mjs +0 -1
- 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 +11 -16
- package/dist/utils/fetch.cjs.map +1 -1
- package/dist/utils/fetch.d.cts +1 -3
- package/dist/utils/fetch.d.cts.map +1 -1
- package/dist/utils/fetch.d.mts +1 -3
- package/dist/utils/fetch.d.mts.map +1 -1
- package/dist/utils/fetch.mjs +4 -9
- 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 +2 -4
- package/dist/utils/metrics/properties.d.cts.map +1 -1
- package/dist/utils/metrics/properties.d.mts +2 -4
- 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 +1 -2
- package/dist/utils/metrics/types.d.cts.map +1 -1
- package/dist/utils/metrics/types.d.mts +1 -2
- 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 +1 -2
- package/dist/utils/quote-fees.cjs.map +1 -1
- package/dist/utils/quote-fees.d.cts +1 -2
- package/dist/utils/quote-fees.d.cts.map +1 -1
- package/dist/utils/quote-fees.d.mts +1 -2
- package/dist/utils/quote-fees.d.mts.map +1 -1
- package/dist/utils/quote-fees.mjs +1 -2
- 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 +2 -5
- package/dist/utils/quote.d.cts.map +1 -1
- package/dist/utils/quote.d.mts +2 -5
- 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/trade-utils.cjs +66 -7
- package/dist/utils/trade-utils.cjs.map +1 -1
- package/dist/utils/trade-utils.d.cts +54 -1
- package/dist/utils/trade-utils.d.cts.map +1 -1
- package/dist/utils/trade-utils.d.mts +54 -1
- package/dist/utils/trade-utils.d.mts.map +1 -1
- package/dist/utils/trade-utils.mjs +56 -1
- package/dist/utils/trade-utils.mjs.map +1 -1
- package/dist/utils/validators.cjs +471 -0
- package/dist/utils/validators.cjs.map +1 -0
- package/dist/utils/validators.d.cts +1765 -0
- package/dist/utils/validators.d.cts.map +1 -0
- package/dist/utils/validators.d.mts +1765 -0
- package/dist/utils/validators.d.mts.map +1 -0
- package/dist/utils/validators.mjs +461 -0
- package/dist/utils/validators.mjs.map +1 -0
- package/package.json +4 -4
- package/dist/utils/struct-error.cjs +0 -16
- package/dist/utils/struct-error.cjs.map +0 -1
- package/dist/utils/struct-error.d.cts +0 -11
- package/dist/utils/struct-error.d.cts.map +0 -1
- package/dist/utils/struct-error.d.mts +0 -11
- package/dist/utils/struct-error.d.mts.map +0 -1
- package/dist/utils/struct-error.mjs +0 -12
- package/dist/utils/struct-error.mjs.map +0 -1
- package/dist/validators/batch-sell.cjs +0 -39
- package/dist/validators/batch-sell.cjs.map +0 -1
- package/dist/validators/batch-sell.d.cts +0 -79
- package/dist/validators/batch-sell.d.cts.map +0 -1
- package/dist/validators/batch-sell.d.mts +0 -79
- package/dist/validators/batch-sell.d.mts.map +0 -1
- package/dist/validators/batch-sell.mjs +0 -35
- package/dist/validators/batch-sell.mjs.map +0 -1
- package/dist/validators/bridge-asset.cjs +0 -42
- package/dist/validators/bridge-asset.cjs.map +0 -1
- package/dist/validators/bridge-asset.d.cts +0 -52
- package/dist/validators/bridge-asset.d.cts.map +0 -1
- package/dist/validators/bridge-asset.d.mts +0 -52
- package/dist/validators/bridge-asset.d.mts.map +0 -1
- package/dist/validators/bridge-asset.mjs +0 -38
- package/dist/validators/bridge-asset.mjs.map +0 -1
- package/dist/validators/feature-flags.cjs +0 -110
- package/dist/validators/feature-flags.cjs.map +0 -1
- package/dist/validators/feature-flags.d.cts +0 -264
- package/dist/validators/feature-flags.d.cts.map +0 -1
- package/dist/validators/feature-flags.d.mts +0 -264
- package/dist/validators/feature-flags.d.mts.map +0 -1
- package/dist/validators/feature-flags.mjs +0 -106
- package/dist/validators/feature-flags.mjs.map +0 -1
- package/dist/validators/intent.cjs +0 -122
- package/dist/validators/intent.cjs.map +0 -1
- package/dist/validators/intent.d.cts +0 -231
- package/dist/validators/intent.d.cts.map +0 -1
- package/dist/validators/intent.d.mts +0 -231
- package/dist/validators/intent.d.mts.map +0 -1
- package/dist/validators/intent.mjs +0 -119
- package/dist/validators/intent.mjs.map +0 -1
- package/dist/validators/number.cjs +0 -8
- package/dist/validators/number.cjs.map +0 -1
- package/dist/validators/number.d.cts +0 -4
- package/dist/validators/number.d.cts.map +0 -1
- package/dist/validators/number.d.mts +0 -4
- package/dist/validators/number.d.mts.map +0 -1
- package/dist/validators/number.mjs +0 -5
- package/dist/validators/number.mjs.map +0 -1
- package/dist/validators/quote-response-v1.cjs +0 -31
- package/dist/validators/quote-response-v1.cjs.map +0 -1
- package/dist/validators/quote-response-v1.d.cts +0 -658
- package/dist/validators/quote-response-v1.d.cts.map +0 -1
- package/dist/validators/quote-response-v1.d.mts +0 -658
- package/dist/validators/quote-response-v1.d.mts.map +0 -1
- package/dist/validators/quote-response-v1.mjs +0 -27
- package/dist/validators/quote-response-v1.mjs.map +0 -1
- package/dist/validators/quote-stream-complete.cjs +0 -29
- package/dist/validators/quote-stream-complete.cjs.map +0 -1
- package/dist/validators/quote-stream-complete.d.cts +0 -39
- package/dist/validators/quote-stream-complete.d.cts.map +0 -1
- package/dist/validators/quote-stream-complete.d.mts +0 -39
- package/dist/validators/quote-stream-complete.d.mts.map +0 -1
- package/dist/validators/quote-stream-complete.mjs +0 -25
- package/dist/validators/quote-stream-complete.mjs.map +0 -1
- package/dist/validators/quote.cjs +0 -96
- package/dist/validators/quote.cjs.map +0 -1
- package/dist/validators/quote.d.cts +0 -230
- package/dist/validators/quote.d.cts.map +0 -1
- package/dist/validators/quote.d.mts +0 -230
- package/dist/validators/quote.d.mts.map +0 -1
- package/dist/validators/quote.mjs +0 -93
- package/dist/validators/quote.mjs.map +0 -1
- package/dist/validators/step.cjs +0 -20
- package/dist/validators/step.cjs.map +0 -1
- package/dist/validators/step.d.cts +0 -148
- package/dist/validators/step.d.cts.map +0 -1
- package/dist/validators/step.d.mts +0 -148
- package/dist/validators/step.d.mts.map +0 -1
- package/dist/validators/step.mjs +0 -17
- package/dist/validators/step.mjs.map +0 -1
- package/dist/validators/token-feature.cjs +0 -22
- package/dist/validators/token-feature.cjs.map +0 -1
- package/dist/validators/token-feature.d.cts +0 -26
- package/dist/validators/token-feature.d.cts.map +0 -1
- package/dist/validators/token-feature.d.mts +0 -26
- package/dist/validators/token-feature.d.mts.map +0 -1
- package/dist/validators/token-feature.mjs +0 -18
- package/dist/validators/token-feature.mjs.map +0 -1
- package/dist/validators/trade.cjs +0 -94
- package/dist/validators/trade.cjs.map +0 -1
- package/dist/validators/trade.d.cts +0 -121
- package/dist/validators/trade.d.cts.map +0 -1
- package/dist/validators/trade.d.mts +0 -121
- package/dist/validators/trade.d.mts.map +0 -1
- package/dist/validators/trade.mjs +0 -86
- package/dist/validators/trade.mjs.map +0 -1
|
@@ -1,4 +1,57 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { BitcoinTradeData, StellarTradeData, TronTradeData, TxData } from "../types.cjs";
|
|
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
|
+
};
|
|
2
55
|
/**
|
|
3
56
|
* Extracts the transaction data from different trade formats
|
|
4
57
|
*
|
|
@@ -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,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,MAAM,EACP,qBAAiB;AAGlB,MAAM,MAAM,KAAK,GACb,MAAM,GACN,MAAM,GACN,gBAAgB,GAChB,aAAa,GACb,gBAAgB,CAAC;AAKrB;;;;;GAKG;AACH,eAAO,MAAM,WAAW,UAAW,KAAK;;;;;;;;CAQvC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,UAAW,KAAK;;;CAM1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,UAAW,KAAK;;;;;;;;;CAMvC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,UAAW,KAAK;;;;CAiB1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,UAAW,KAAK,KAAG,MAiC/C,CAAC"}
|
|
@@ -1,4 +1,57 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { BitcoinTradeData, StellarTradeData, TronTradeData, TxData } from "../types.mjs";
|
|
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
|
+
};
|
|
2
55
|
/**
|
|
3
56
|
* Extracts the transaction data from different trade formats
|
|
4
57
|
*
|
|
@@ -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,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,MAAM,EACP,qBAAiB;AAGlB,MAAM,MAAM,KAAK,GACb,MAAM,GACN,MAAM,GACN,gBAAgB,GAChB,aAAa,GACb,gBAAgB,CAAC;AAKrB;;;;;GAKG;AACH,eAAO,MAAM,WAAW,UAAW,KAAK;;;;;;;;CAQvC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,UAAW,KAAK;;;CAM1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,UAAW,KAAK;;;;;;;;;CAMvC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,UAAW,KAAK;;;;CAiB1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,UAAW,KAAK,KAAG,MAiC/C,CAAC"}
|
|
@@ -1,4 +1,59 @@
|
|
|
1
|
-
|
|
1
|
+
const hasOwnProp = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
|
|
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
|
+
};
|
|
2
57
|
/**
|
|
3
58
|
* Extracts the transaction data from different trade formats
|
|
4
59
|
*
|
|
@@ -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":"AAeA,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,GAAgB,EAAW,EAAE,CAC5D,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAY,EAAmB,EAAE;IAC3D,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC;QAC5B,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CACxB,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAY,EAA6B,EAAE;IACxE,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,UAAU,CAAC,KAAK,EAAE,oBAAoB,CAAC,CACxC,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAY,EAA0B,EAAE;IAClE,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,CAClC,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAY,EAA6B,EAAE;IACxE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IACE,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC;QAC9B,OAAQ,KAAgC,CAAC,SAAS,KAAK,QAAQ,EAC/D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IACE,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;QACxB,OAAQ,KAA0B,CAAC,GAAG,KAAK,QAAQ,EACnD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;;;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 type {\n BitcoinTradeData,\n StellarTradeData,\n TronTradeData,\n TxData,\n} from '../types';\n\n// Union type representing all possible trade formats (EVM, Solana, Bitcoin, Tron, Stellar)\nexport type Trade =\n | TxData\n | string\n | BitcoinTradeData\n | TronTradeData\n | StellarTradeData;\n\nconst hasOwnProp = (obj: object, key: PropertyKey): boolean =>\n Object.prototype.hasOwnProperty.call(obj, key);\n\n/**\n * Type guard to check if a trade is an EVM TxData object\n *\n * @param trade - The trade object to check\n * @returns True if the trade is a TxData object with data property\n */\nexport const isEvmTxData = (trade: Trade): trade is TxData => {\n return (\n typeof trade === 'object' &&\n trade !== null &&\n hasOwnProp(trade, 'data') &&\n hasOwnProp(trade, 'chainId') &&\n hasOwnProp(trade, 'to')\n );\n};\n\n/**\n * Type guard to check if a trade is a Bitcoin trade with unsignedPsbtBase64\n *\n * @param trade - The trade object to check\n * @returns True if the trade is a Bitcoin trade with unsignedPsbtBase64 property\n */\nexport const isBitcoinTrade = (trade: Trade): trade is BitcoinTradeData => {\n return (\n typeof trade === 'object' &&\n trade !== null &&\n hasOwnProp(trade, 'unsignedPsbtBase64')\n );\n};\n\n/**\n * Type guard to check if a trade is a Tron trade with raw_data_hex\n *\n * @param trade - The trade object to check\n * @returns True if the trade is a Tron trade with raw_data_hex property\n */\nexport const isTronTrade = (trade: Trade): trade is TronTradeData => {\n return (\n typeof trade === 'object' &&\n trade !== null &&\n hasOwnProp(trade, 'raw_data_hex')\n );\n};\n\n/**\n * Type guard to check if a trade is a Stellar trade with XDR (base64) payload\n *\n * @param trade - The trade object to check\n * @returns True if the trade is a Stellar trade with xdrBase64 or xdr property\n */\nexport const isStellarTrade = (trade: Trade): trade is StellarTradeData => {\n if (typeof trade !== 'object' || trade === null) {\n return false;\n }\n if (\n hasOwnProp(trade, 'xdrBase64') &&\n typeof (trade as { xdrBase64: unknown }).xdrBase64 === 'string'\n ) {\n return true;\n }\n if (\n hasOwnProp(trade, 'xdr') &&\n typeof (trade as { xdr: unknown }).xdr === 'string'\n ) {\n return true;\n }\n return false;\n};\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"]}
|