@metamask/bridge-status-controller 31.0.0 → 33.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/CHANGELOG.md +40 -1
  2. package/dist/bridge-status-controller.cjs +68 -64
  3. package/dist/bridge-status-controller.cjs.map +1 -1
  4. package/dist/bridge-status-controller.d.cts.map +1 -1
  5. package/dist/bridge-status-controller.d.mts.map +1 -1
  6. package/dist/bridge-status-controller.mjs +69 -65
  7. package/dist/bridge-status-controller.mjs.map +1 -1
  8. package/dist/index.cjs +1 -3
  9. package/dist/index.cjs.map +1 -1
  10. package/dist/index.d.cts +2 -2
  11. package/dist/index.d.cts.map +1 -1
  12. package/dist/index.d.mts +2 -2
  13. package/dist/index.d.mts.map +1 -1
  14. package/dist/index.mjs +1 -1
  15. package/dist/index.mjs.map +1 -1
  16. package/dist/types.cjs +1 -12
  17. package/dist/types.cjs.map +1 -1
  18. package/dist/types.d.cts +10 -76
  19. package/dist/types.d.cts.map +1 -1
  20. package/dist/types.d.mts +10 -76
  21. package/dist/types.d.mts.map +1 -1
  22. package/dist/types.mjs +0 -11
  23. package/dist/types.mjs.map +1 -1
  24. package/dist/utils/metrics.cjs +60 -2
  25. package/dist/utils/metrics.cjs.map +1 -1
  26. package/dist/utils/metrics.d.cts +40 -1
  27. package/dist/utils/metrics.d.cts.map +1 -1
  28. package/dist/utils/metrics.d.mts +40 -1
  29. package/dist/utils/metrics.d.mts.map +1 -1
  30. package/dist/utils/metrics.mjs +57 -2
  31. package/dist/utils/metrics.mjs.map +1 -1
  32. package/dist/utils/transaction.d.cts +149 -6
  33. package/dist/utils/transaction.d.cts.map +1 -1
  34. package/dist/utils/transaction.d.mts +149 -6
  35. package/dist/utils/transaction.d.mts.map +1 -1
  36. package/dist/utils/validators.cjs +36 -34
  37. package/dist/utils/validators.cjs.map +1 -1
  38. package/dist/utils/validators.d.cts +117 -0
  39. package/dist/utils/validators.d.cts.map +1 -1
  40. package/dist/utils/validators.d.mts +117 -0
  41. package/dist/utils/validators.d.mts.map +1 -1
  42. package/dist/utils/validators.mjs +36 -34
  43. package/dist/utils/validators.mjs.map +1 -1
  44. package/package.json +4 -6
@@ -1,6 +1,9 @@
1
1
  import type { AccountsControllerState } from "@metamask/accounts-controller";
2
- import { type TxStatusData, type RequestParams, type TradeData, type RequestMetadata } from "@metamask/bridge-controller";
2
+ import type { QuoteResponse, TxData, QuoteMetadata } from "@metamask/bridge-controller";
3
+ import { type TxStatusData, StatusTypes, type RequestParams, type TradeData, type RequestMetadata, MetricsActionType, MetricsSwapType } from "@metamask/bridge-controller";
4
+ import { type TransactionMeta } from "@metamask/transaction-controller";
3
5
  import type { BridgeHistoryItem } from "src/types";
6
+ import type { QuoteFetchData } from "../../../bridge-controller/src/utils/metrics/types.cjs";
4
7
  export declare const getTxStatusesFromHistory: ({ status, hasApprovalTx, quote, }: BridgeHistoryItem) => TxStatusData;
5
8
  export declare const getFinalizedTxProperties: (historyItem: BridgeHistoryItem) => {
6
9
  actual_time_minutes: number;
@@ -10,6 +13,42 @@ export declare const getFinalizedTxProperties: (historyItem: BridgeHistoryItem)
10
13
  quoted_vs_used_gas_ratio: number;
11
14
  };
12
15
  export declare const getRequestParamFromHistory: (historyItem: BridgeHistoryItem) => RequestParams;
16
+ export declare const getTradeDataFromQuote: (quoteResponse: QuoteResponse<TxData | string> & QuoteMetadata) => TradeData;
17
+ export declare const getPriceImpactFromQuote: (quote: QuoteResponse['quote']) => Pick<QuoteFetchData, 'price_impact'>;
13
18
  export declare const getTradeDataFromHistory: (historyItem: BridgeHistoryItem) => TradeData;
14
19
  export declare const getRequestMetadataFromHistory: (historyItem: BridgeHistoryItem, account?: AccountsControllerState['internalAccounts']['accounts'][string]) => RequestMetadata;
20
+ /**
21
+ * Get the properties for a swap transaction that is not in the txHistory
22
+ *
23
+ * @param transactionMeta - The transaction meta
24
+ * @returns The properties for the swap transaction
25
+ */
26
+ export declare const getEVMTxPropertiesFromTransactionMeta: (transactionMeta: TransactionMeta) => {
27
+ source_transaction: StatusTypes;
28
+ error_message: string | undefined;
29
+ chain_id_source: `${string}:${string}`;
30
+ chain_id_destination: `${string}:${string}`;
31
+ token_symbol_source: string;
32
+ token_symbol_destination: string;
33
+ usd_amount_source: number;
34
+ stx_enabled: boolean;
35
+ token_address_source: `${string}:${string}/${string}:${string}`;
36
+ token_address_destination: `${string}:${string}/${string}:${string}`;
37
+ custom_slippage: boolean;
38
+ is_hardware_wallet: boolean;
39
+ swap_type: MetricsSwapType;
40
+ security_warnings: never[];
41
+ price_impact: number;
42
+ usd_quoted_gas: number;
43
+ gas_included: boolean;
44
+ quoted_time_minutes: number;
45
+ usd_quoted_return: number;
46
+ provider: `${string}_${string}`;
47
+ actual_time_minutes: number;
48
+ quote_vs_execution_ratio: number;
49
+ quoted_vs_used_gas_ratio: number;
50
+ usd_actual_return: number;
51
+ usd_actual_gas: number;
52
+ action_type: MetricsActionType;
53
+ };
15
54
  //# sourceMappingURL=metrics.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.cts","sourceRoot":"","sources":["../../src/utils/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,sCAAsC;AAC7E,OAAO,EACL,KAAK,YAAY,EAIjB,KAAK,aAAa,EAElB,KAAK,SAAS,EAEd,KAAK,eAAe,EAIrB,oCAAoC;AACrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB;AAEnD,eAAO,MAAM,wBAAwB,sCAIlC,iBAAiB,KAAG,YA4BtB,CAAC;AAEF,eAAO,MAAM,wBAAwB,gBAAiB,iBAAiB;;;;;;CAWtE,CAAC;AAEF,eAAO,MAAM,0BAA0B,gBACxB,iBAAiB,KAC7B,aASF,CAAC;AAEF,eAAO,MAAM,uBAAuB,gBACrB,iBAAiB,KAC7B,SAUF,CAAC;AAEF,eAAO,MAAM,6BAA6B,gBAC3B,iBAAiB,YACpB,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KACxE,eAYF,CAAC"}
1
+ {"version":3,"file":"metrics.d.cts","sourceRoot":"","sources":["../../src/utils/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,sCAAsC;AAC7E,OAAO,KAAK,EACV,aAAa,EACb,MAAM,EACN,aAAa,EACd,oCAAoC;AACrC,OAAO,EACL,KAAK,YAAY,EACjB,WAAW,EAGX,KAAK,aAAa,EAElB,KAAK,SAAS,EAEd,KAAK,eAAe,EAKpB,iBAAiB,EACjB,eAAe,EAChB,oCAAoC;AACrC,OAAO,EAGL,KAAK,eAAe,EACrB,yCAAyC;AAE1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,+DAA2D;AAEzF,eAAO,MAAM,wBAAwB,sCAIlC,iBAAiB,KAAG,YA4BtB,CAAC;AAEF,eAAO,MAAM,wBAAwB,gBAAiB,iBAAiB;;;;;;CAWtE,CAAC;AAEF,eAAO,MAAM,0BAA0B,gBACxB,iBAAiB,KAC7B,aASF,CAAC;AAEF,eAAO,MAAM,qBAAqB,kBACjB,cAAc,MAAM,GAAG,MAAM,CAAC,GAAG,aAAa,KAC5D,SAUF,CAAC;AAEF,eAAO,MAAM,uBAAuB,UAC3B,aAAa,CAAC,OAAO,CAAC,KAC5B,KAAK,cAAc,EAAE,cAAc,CAErC,CAAC;AAEF,eAAO,MAAM,uBAAuB,gBACrB,iBAAiB,KAC7B,SAUF,CAAC;AAEF,eAAO,MAAM,6BAA6B,gBAC3B,iBAAiB,YACpB,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KACxE,eAYF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qCAAqC,oBAC/B,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CjC,CAAC"}
@@ -1,6 +1,9 @@
1
1
  import type { AccountsControllerState } from "@metamask/accounts-controller";
2
- import { type TxStatusData, type RequestParams, type TradeData, type RequestMetadata } from "@metamask/bridge-controller";
2
+ import type { QuoteResponse, TxData, QuoteMetadata } from "@metamask/bridge-controller";
3
+ import { type TxStatusData, StatusTypes, type RequestParams, type TradeData, type RequestMetadata, MetricsActionType, MetricsSwapType } from "@metamask/bridge-controller";
4
+ import { type TransactionMeta } from "@metamask/transaction-controller";
3
5
  import type { BridgeHistoryItem } from "src/types";
6
+ import type { QuoteFetchData } from "../../../bridge-controller/src/utils/metrics/types.mjs";
4
7
  export declare const getTxStatusesFromHistory: ({ status, hasApprovalTx, quote, }: BridgeHistoryItem) => TxStatusData;
5
8
  export declare const getFinalizedTxProperties: (historyItem: BridgeHistoryItem) => {
6
9
  actual_time_minutes: number;
@@ -10,6 +13,42 @@ export declare const getFinalizedTxProperties: (historyItem: BridgeHistoryItem)
10
13
  quoted_vs_used_gas_ratio: number;
11
14
  };
12
15
  export declare const getRequestParamFromHistory: (historyItem: BridgeHistoryItem) => RequestParams;
16
+ export declare const getTradeDataFromQuote: (quoteResponse: QuoteResponse<TxData | string> & QuoteMetadata) => TradeData;
17
+ export declare const getPriceImpactFromQuote: (quote: QuoteResponse['quote']) => Pick<QuoteFetchData, 'price_impact'>;
13
18
  export declare const getTradeDataFromHistory: (historyItem: BridgeHistoryItem) => TradeData;
14
19
  export declare const getRequestMetadataFromHistory: (historyItem: BridgeHistoryItem, account?: AccountsControllerState['internalAccounts']['accounts'][string]) => RequestMetadata;
20
+ /**
21
+ * Get the properties for a swap transaction that is not in the txHistory
22
+ *
23
+ * @param transactionMeta - The transaction meta
24
+ * @returns The properties for the swap transaction
25
+ */
26
+ export declare const getEVMTxPropertiesFromTransactionMeta: (transactionMeta: TransactionMeta) => {
27
+ source_transaction: StatusTypes;
28
+ error_message: string | undefined;
29
+ chain_id_source: `${string}:${string}`;
30
+ chain_id_destination: `${string}:${string}`;
31
+ token_symbol_source: string;
32
+ token_symbol_destination: string;
33
+ usd_amount_source: number;
34
+ stx_enabled: boolean;
35
+ token_address_source: `${string}:${string}/${string}:${string}`;
36
+ token_address_destination: `${string}:${string}/${string}:${string}`;
37
+ custom_slippage: boolean;
38
+ is_hardware_wallet: boolean;
39
+ swap_type: MetricsSwapType;
40
+ security_warnings: never[];
41
+ price_impact: number;
42
+ usd_quoted_gas: number;
43
+ gas_included: boolean;
44
+ quoted_time_minutes: number;
45
+ usd_quoted_return: number;
46
+ provider: `${string}_${string}`;
47
+ actual_time_minutes: number;
48
+ quote_vs_execution_ratio: number;
49
+ quoted_vs_used_gas_ratio: number;
50
+ usd_actual_return: number;
51
+ usd_actual_gas: number;
52
+ action_type: MetricsActionType;
53
+ };
15
54
  //# sourceMappingURL=metrics.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.mts","sourceRoot":"","sources":["../../src/utils/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,sCAAsC;AAC7E,OAAO,EACL,KAAK,YAAY,EAIjB,KAAK,aAAa,EAElB,KAAK,SAAS,EAEd,KAAK,eAAe,EAIrB,oCAAoC;AACrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB;AAEnD,eAAO,MAAM,wBAAwB,sCAIlC,iBAAiB,KAAG,YA4BtB,CAAC;AAEF,eAAO,MAAM,wBAAwB,gBAAiB,iBAAiB;;;;;;CAWtE,CAAC;AAEF,eAAO,MAAM,0BAA0B,gBACxB,iBAAiB,KAC7B,aASF,CAAC;AAEF,eAAO,MAAM,uBAAuB,gBACrB,iBAAiB,KAC7B,SAUF,CAAC;AAEF,eAAO,MAAM,6BAA6B,gBAC3B,iBAAiB,YACpB,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KACxE,eAYF,CAAC"}
1
+ {"version":3,"file":"metrics.d.mts","sourceRoot":"","sources":["../../src/utils/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,sCAAsC;AAC7E,OAAO,KAAK,EACV,aAAa,EACb,MAAM,EACN,aAAa,EACd,oCAAoC;AACrC,OAAO,EACL,KAAK,YAAY,EACjB,WAAW,EAGX,KAAK,aAAa,EAElB,KAAK,SAAS,EAEd,KAAK,eAAe,EAKpB,iBAAiB,EACjB,eAAe,EAChB,oCAAoC;AACrC,OAAO,EAGL,KAAK,eAAe,EACrB,yCAAyC;AAE1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,+DAA2D;AAEzF,eAAO,MAAM,wBAAwB,sCAIlC,iBAAiB,KAAG,YA4BtB,CAAC;AAEF,eAAO,MAAM,wBAAwB,gBAAiB,iBAAiB;;;;;;CAWtE,CAAC;AAEF,eAAO,MAAM,0BAA0B,gBACxB,iBAAiB,KAC7B,aASF,CAAC;AAEF,eAAO,MAAM,qBAAqB,kBACjB,cAAc,MAAM,GAAG,MAAM,CAAC,GAAG,aAAa,KAC5D,SAUF,CAAC;AAEF,eAAO,MAAM,uBAAuB,UAC3B,aAAa,CAAC,OAAO,CAAC,KAC5B,KAAK,cAAc,EAAE,cAAc,CAErC,CAAC;AAEF,eAAO,MAAM,uBAAuB,gBACrB,iBAAiB,KAC7B,SAUF,CAAC;AAEF,eAAO,MAAM,6BAA6B,gBAC3B,iBAAiB,YACpB,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KACxE,eAYF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qCAAqC,oBAC/B,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CjC,CAAC"}
@@ -1,4 +1,5 @@
1
- import { StatusTypes, formatChainIdToHex, isEthUsdt, formatChainIdToCaip, formatProviderLabel, isCustomSlippage, getSwapType, isHardwareWallet } from "@metamask/bridge-controller";
1
+ import { StatusTypes, formatChainIdToHex, isEthUsdt, formatChainIdToCaip, formatProviderLabel, isCustomSlippage, getSwapType, isHardwareWallet, formatAddressToAssetId, MetricsActionType, MetricsSwapType } from "@metamask/bridge-controller";
2
+ import { TransactionStatus, TransactionType } from "@metamask/transaction-controller";
2
3
  export const getTxStatusesFromHistory = ({ status, hasApprovalTx, quote, }) => {
3
4
  const source_transaction = status.srcChain.txHash
4
5
  ? StatusTypes.COMPLETE
@@ -46,10 +47,22 @@ export const getRequestParamFromHistory = (historyItem) => {
46
47
  token_address_destination: historyItem.quote.destAsset.assetId,
47
48
  };
48
49
  };
50
+ export const getTradeDataFromQuote = (quoteResponse) => {
51
+ return {
52
+ usd_quoted_gas: Number(quoteResponse.gasFee?.usd ?? 0),
53
+ gas_included: quoteResponse.quote.gasIncluded ?? false,
54
+ provider: formatProviderLabel(quoteResponse.quote),
55
+ quoted_time_minutes: Number(quoteResponse.estimatedProcessingTimeInSeconds / 60),
56
+ usd_quoted_return: Number(quoteResponse.adjustedReturn?.usd ?? 0),
57
+ };
58
+ };
59
+ export const getPriceImpactFromQuote = (quote) => {
60
+ return { price_impact: Number(quote.priceData?.priceImpact ?? '0') };
61
+ };
49
62
  export const getTradeDataFromHistory = (historyItem) => {
50
63
  return {
51
64
  usd_quoted_gas: Number(historyItem.pricingData?.quotedGasInUsd ?? 0),
52
- gas_included: false,
65
+ gas_included: historyItem.quote.gasIncluded ?? false,
53
66
  provider: formatProviderLabel(historyItem.quote),
54
67
  quoted_time_minutes: Number(historyItem.estimatedProcessingTimeInSeconds / 60),
55
68
  usd_quoted_return: Number(historyItem.pricingData?.quotedReturnInUsd ?? 0),
@@ -67,4 +80,46 @@ export const getRequestMetadataFromHistory = (historyItem, account) => {
67
80
  security_warnings: [],
68
81
  };
69
82
  };
83
+ /**
84
+ * Get the properties for a swap transaction that is not in the txHistory
85
+ *
86
+ * @param transactionMeta - The transaction meta
87
+ * @returns The properties for the swap transaction
88
+ */
89
+ export const getEVMTxPropertiesFromTransactionMeta = (transactionMeta) => {
90
+ return {
91
+ source_transaction: transactionMeta.status === TransactionStatus.failed
92
+ ? StatusTypes.FAILED
93
+ : StatusTypes.COMPLETE,
94
+ error_message: transactionMeta.error?.message
95
+ ? 'Failed to finalize swap tx'
96
+ : undefined,
97
+ chain_id_source: formatChainIdToCaip(transactionMeta.chainId),
98
+ chain_id_destination: formatChainIdToCaip(transactionMeta.chainId),
99
+ token_symbol_source: transactionMeta.sourceTokenSymbol ?? '',
100
+ token_symbol_destination: transactionMeta.destinationTokenSymbol ?? '',
101
+ usd_amount_source: 100,
102
+ stx_enabled: false,
103
+ token_address_source: formatAddressToAssetId(transactionMeta.sourceTokenAddress ?? '', transactionMeta.chainId) ?? '',
104
+ token_address_destination: formatAddressToAssetId(transactionMeta.destinationTokenAddress ?? '', transactionMeta.chainId) ?? '',
105
+ custom_slippage: false,
106
+ is_hardware_wallet: false,
107
+ swap_type: transactionMeta.type === TransactionType.swap
108
+ ? MetricsSwapType.SINGLE
109
+ : MetricsSwapType.CROSSCHAIN,
110
+ security_warnings: [],
111
+ price_impact: 0,
112
+ usd_quoted_gas: 0,
113
+ gas_included: false,
114
+ quoted_time_minutes: 0,
115
+ usd_quoted_return: 0,
116
+ provider: '',
117
+ actual_time_minutes: 0,
118
+ quote_vs_execution_ratio: 0,
119
+ quoted_vs_used_gas_ratio: 0,
120
+ usd_actual_return: 0,
121
+ usd_actual_gas: 0,
122
+ action_type: MetricsActionType.SWAPBRIDGE_V1,
123
+ };
124
+ };
70
125
  //# sourceMappingURL=metrics.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.mjs","sourceRoot":"","sources":["../../src/utils/metrics.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AccountsControllerState } from '@metamask/accounts-controller';\nimport {\n type TxStatusData,\n StatusTypes,\n formatChainIdToHex,\n isEthUsdt,\n type RequestParams,\n formatChainIdToCaip,\n type TradeData,\n formatProviderLabel,\n type RequestMetadata,\n isCustomSlippage,\n getSwapType,\n isHardwareWallet,\n} from '@metamask/bridge-controller';\nimport type { BridgeHistoryItem } from 'src/types';\n\nexport const getTxStatusesFromHistory = ({\n status,\n hasApprovalTx,\n quote,\n}: BridgeHistoryItem): TxStatusData => {\n const source_transaction = status.srcChain.txHash\n ? StatusTypes.COMPLETE\n : StatusTypes.PENDING;\n const destination_transaction = status.destChain?.txHash\n ? status.status\n : StatusTypes.PENDING;\n\n const hexChainId = formatChainIdToHex(quote.srcChainId);\n const isEthUsdtTx = isEthUsdt(hexChainId, quote.srcAsset.address);\n const allowance_reset_transaction = status.srcChain.txHash\n ? StatusTypes.COMPLETE\n : undefined;\n const approval_transaction = status.srcChain.txHash\n ? StatusTypes.COMPLETE\n : StatusTypes.PENDING;\n\n return {\n allowance_reset_transaction: isEthUsdtTx\n ? allowance_reset_transaction\n : undefined,\n approval_transaction: hasApprovalTx ? approval_transaction : undefined,\n source_transaction,\n destination_transaction:\n status.status === StatusTypes.FAILED\n ? StatusTypes.FAILED\n : destination_transaction,\n };\n};\n\nexport const getFinalizedTxProperties = (historyItem: BridgeHistoryItem) => {\n return {\n actual_time_minutes:\n historyItem.completionTime && historyItem.startTime\n ? (historyItem.completionTime - historyItem.startTime) / 60000\n : 0,\n usd_actual_return: Number(historyItem.pricingData?.quotedReturnInUsd ?? 0), // TODO calculate based on USD price at completion time\n usd_actual_gas: Number(historyItem.pricingData?.quotedGasInUsd ?? 0), // TODO calculate based on USD price at completion time\n quote_vs_execution_ratio: 1, // TODO calculate based on USD price at completion time\n quoted_vs_used_gas_ratio: 1, // TODO calculate based on USD price at completion time\n };\n};\n\nexport const getRequestParamFromHistory = (\n historyItem: BridgeHistoryItem,\n): RequestParams => {\n return {\n chain_id_source: formatChainIdToCaip(historyItem.quote.srcChainId),\n token_symbol_source: historyItem.quote.srcAsset.symbol,\n token_address_source: historyItem.quote.srcAsset.assetId,\n chain_id_destination: formatChainIdToCaip(historyItem.quote.destChainId),\n token_symbol_destination: historyItem.quote.destAsset.symbol,\n token_address_destination: historyItem.quote.destAsset.assetId,\n };\n};\n\nexport const getTradeDataFromHistory = (\n historyItem: BridgeHistoryItem,\n): TradeData => {\n return {\n usd_quoted_gas: Number(historyItem.pricingData?.quotedGasInUsd ?? 0),\n gas_included: false,\n provider: formatProviderLabel(historyItem.quote),\n quoted_time_minutes: Number(\n historyItem.estimatedProcessingTimeInSeconds / 60,\n ),\n usd_quoted_return: Number(historyItem.pricingData?.quotedReturnInUsd ?? 0),\n };\n};\n\nexport const getRequestMetadataFromHistory = (\n historyItem: BridgeHistoryItem,\n account?: AccountsControllerState['internalAccounts']['accounts'][string],\n): RequestMetadata => {\n const { quote, slippagePercentage, isStxEnabled } = historyItem;\n\n return {\n slippage_limit: slippagePercentage,\n custom_slippage: isCustomSlippage(slippagePercentage),\n usd_amount_source: Number(historyItem.pricingData?.amountSentInUsd ?? 0),\n swap_type: getSwapType(quote.srcChainId, quote.destChainId),\n is_hardware_wallet: isHardwareWallet(account),\n stx_enabled: isStxEnabled ?? false,\n security_warnings: [],\n };\n};\n"]}
1
+ {"version":3,"file":"metrics.mjs","sourceRoot":"","sources":["../../src/utils/metrics.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AccountsControllerState } from '@metamask/accounts-controller';\nimport type {\n QuoteResponse,\n TxData,\n QuoteMetadata,\n} from '@metamask/bridge-controller';\nimport {\n type TxStatusData,\n StatusTypes,\n formatChainIdToHex,\n isEthUsdt,\n type RequestParams,\n formatChainIdToCaip,\n type TradeData,\n formatProviderLabel,\n type RequestMetadata,\n isCustomSlippage,\n getSwapType,\n isHardwareWallet,\n formatAddressToAssetId,\n MetricsActionType,\n MetricsSwapType,\n} from '@metamask/bridge-controller';\nimport {\n TransactionStatus,\n TransactionType,\n type TransactionMeta,\n} from '@metamask/transaction-controller';\nimport type { CaipAssetType } from '@metamask/utils';\nimport type { BridgeHistoryItem } from 'src/types';\n\nimport type { QuoteFetchData } from '../../../bridge-controller/src/utils/metrics/types';\n\nexport const getTxStatusesFromHistory = ({\n status,\n hasApprovalTx,\n quote,\n}: BridgeHistoryItem): TxStatusData => {\n const source_transaction = status.srcChain.txHash\n ? StatusTypes.COMPLETE\n : StatusTypes.PENDING;\n const destination_transaction = status.destChain?.txHash\n ? status.status\n : StatusTypes.PENDING;\n\n const hexChainId = formatChainIdToHex(quote.srcChainId);\n const isEthUsdtTx = isEthUsdt(hexChainId, quote.srcAsset.address);\n const allowance_reset_transaction = status.srcChain.txHash\n ? StatusTypes.COMPLETE\n : undefined;\n const approval_transaction = status.srcChain.txHash\n ? StatusTypes.COMPLETE\n : StatusTypes.PENDING;\n\n return {\n allowance_reset_transaction: isEthUsdtTx\n ? allowance_reset_transaction\n : undefined,\n approval_transaction: hasApprovalTx ? approval_transaction : undefined,\n source_transaction,\n destination_transaction:\n status.status === StatusTypes.FAILED\n ? StatusTypes.FAILED\n : destination_transaction,\n };\n};\n\nexport const getFinalizedTxProperties = (historyItem: BridgeHistoryItem) => {\n return {\n actual_time_minutes:\n historyItem.completionTime && historyItem.startTime\n ? (historyItem.completionTime - historyItem.startTime) / 60000\n : 0,\n usd_actual_return: Number(historyItem.pricingData?.quotedReturnInUsd ?? 0), // TODO calculate based on USD price at completion time\n usd_actual_gas: Number(historyItem.pricingData?.quotedGasInUsd ?? 0), // TODO calculate based on USD price at completion time\n quote_vs_execution_ratio: 1, // TODO calculate based on USD price at completion time\n quoted_vs_used_gas_ratio: 1, // TODO calculate based on USD price at completion time\n };\n};\n\nexport const getRequestParamFromHistory = (\n historyItem: BridgeHistoryItem,\n): RequestParams => {\n return {\n chain_id_source: formatChainIdToCaip(historyItem.quote.srcChainId),\n token_symbol_source: historyItem.quote.srcAsset.symbol,\n token_address_source: historyItem.quote.srcAsset.assetId,\n chain_id_destination: formatChainIdToCaip(historyItem.quote.destChainId),\n token_symbol_destination: historyItem.quote.destAsset.symbol,\n token_address_destination: historyItem.quote.destAsset.assetId,\n };\n};\n\nexport const getTradeDataFromQuote = (\n quoteResponse: QuoteResponse<TxData | string> & QuoteMetadata,\n): TradeData => {\n return {\n usd_quoted_gas: Number(quoteResponse.gasFee?.usd ?? 0),\n gas_included: quoteResponse.quote.gasIncluded ?? false,\n provider: formatProviderLabel(quoteResponse.quote),\n quoted_time_minutes: Number(\n quoteResponse.estimatedProcessingTimeInSeconds / 60,\n ),\n usd_quoted_return: Number(quoteResponse.adjustedReturn?.usd ?? 0),\n };\n};\n\nexport const getPriceImpactFromQuote = (\n quote: QuoteResponse['quote'],\n): Pick<QuoteFetchData, 'price_impact'> => {\n return { price_impact: Number(quote.priceData?.priceImpact ?? '0') };\n};\n\nexport const getTradeDataFromHistory = (\n historyItem: BridgeHistoryItem,\n): TradeData => {\n return {\n usd_quoted_gas: Number(historyItem.pricingData?.quotedGasInUsd ?? 0),\n gas_included: historyItem.quote.gasIncluded ?? false,\n provider: formatProviderLabel(historyItem.quote),\n quoted_time_minutes: Number(\n historyItem.estimatedProcessingTimeInSeconds / 60,\n ),\n usd_quoted_return: Number(historyItem.pricingData?.quotedReturnInUsd ?? 0),\n };\n};\n\nexport const getRequestMetadataFromHistory = (\n historyItem: BridgeHistoryItem,\n account?: AccountsControllerState['internalAccounts']['accounts'][string],\n): RequestMetadata => {\n const { quote, slippagePercentage, isStxEnabled } = historyItem;\n\n return {\n slippage_limit: slippagePercentage,\n custom_slippage: isCustomSlippage(slippagePercentage),\n usd_amount_source: Number(historyItem.pricingData?.amountSentInUsd ?? 0),\n swap_type: getSwapType(quote.srcChainId, quote.destChainId),\n is_hardware_wallet: isHardwareWallet(account),\n stx_enabled: isStxEnabled ?? false,\n security_warnings: [],\n };\n};\n\n/**\n * Get the properties for a swap transaction that is not in the txHistory\n *\n * @param transactionMeta - The transaction meta\n * @returns The properties for the swap transaction\n */\nexport const getEVMTxPropertiesFromTransactionMeta = (\n transactionMeta: TransactionMeta,\n) => {\n return {\n source_transaction:\n transactionMeta.status === TransactionStatus.failed\n ? StatusTypes.FAILED\n : StatusTypes.COMPLETE,\n error_message: transactionMeta.error?.message\n ? 'Failed to finalize swap tx'\n : undefined,\n chain_id_source: formatChainIdToCaip(transactionMeta.chainId),\n chain_id_destination: formatChainIdToCaip(transactionMeta.chainId),\n token_symbol_source: transactionMeta.sourceTokenSymbol ?? '',\n token_symbol_destination: transactionMeta.destinationTokenSymbol ?? '',\n usd_amount_source: 100,\n stx_enabled: false,\n token_address_source:\n formatAddressToAssetId(\n transactionMeta.sourceTokenAddress ?? '',\n transactionMeta.chainId,\n ) ?? ('' as CaipAssetType),\n token_address_destination:\n formatAddressToAssetId(\n transactionMeta.destinationTokenAddress ?? '',\n transactionMeta.chainId,\n ) ?? ('' as CaipAssetType),\n custom_slippage: false,\n is_hardware_wallet: false,\n swap_type:\n transactionMeta.type === TransactionType.swap\n ? MetricsSwapType.SINGLE\n : MetricsSwapType.CROSSCHAIN,\n security_warnings: [],\n price_impact: 0,\n usd_quoted_gas: 0,\n gas_included: false,\n quoted_time_minutes: 0,\n usd_quoted_return: 0,\n provider: '' as `${string}_${string}`,\n actual_time_minutes: 0,\n quote_vs_execution_ratio: 0,\n quoted_vs_used_gas_ratio: 0,\n usd_actual_return: 0,\n usd_actual_gas: 0,\n action_type: MetricsActionType.SWAPBRIDGE_V1,\n };\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  import type { AccountsControllerState } from "@metamask/accounts-controller";
2
2
  import type { TxData } from "@metamask/bridge-controller";
3
- import { ChainId, type QuoteMetadata, type QuoteResponse } from "@metamask/bridge-controller";
3
+ import { type QuoteMetadata, type QuoteResponse } from "@metamask/bridge-controller";
4
4
  import { SolScope } from "@metamask/keyring-api";
5
5
  import { type TransactionMeta } from "@metamask/transaction-controller";
6
6
  import type { SolanaTransactionMeta } from "../types.cjs";
@@ -8,9 +8,138 @@ export declare const generateActionId: () => string;
8
8
  export declare const getStatusRequestParams: (quoteResponse: QuoteResponse<string | TxData>) => {
9
9
  bridgeId: string;
10
10
  bridge: string;
11
- srcChainId: ChainId;
12
- destChainId: ChainId;
13
- quote: import("@metamask/bridge-controller").Quote;
11
+ srcChainId: number;
12
+ destChainId: number;
13
+ quote: {
14
+ srcChainId: number;
15
+ destChainId: number;
16
+ srcAsset: {
17
+ symbol: string;
18
+ address: string;
19
+ name: string;
20
+ chainId: number;
21
+ decimals: number;
22
+ assetId: `${string}:${string}/${string}:${string}`;
23
+ iconUrl?: string | null | undefined;
24
+ icon?: string | null | undefined;
25
+ };
26
+ destAsset: {
27
+ symbol: string;
28
+ address: string;
29
+ name: string;
30
+ chainId: number;
31
+ decimals: number;
32
+ assetId: `${string}:${string}/${string}:${string}`;
33
+ iconUrl?: string | null | undefined;
34
+ icon?: string | null | undefined;
35
+ };
36
+ requestId: string;
37
+ srcTokenAmount: string;
38
+ destTokenAmount: string;
39
+ feeData: {
40
+ metabridge: {
41
+ amount: string;
42
+ asset: {
43
+ symbol: string;
44
+ address: string;
45
+ name: string;
46
+ chainId: number;
47
+ decimals: number;
48
+ assetId: `${string}:${string}/${string}:${string}`;
49
+ iconUrl?: string | null | undefined;
50
+ icon?: string | null | undefined;
51
+ };
52
+ };
53
+ txFee?: ({
54
+ amount: string;
55
+ asset: {
56
+ symbol: string;
57
+ address: string;
58
+ name: string;
59
+ chainId: number;
60
+ decimals: number;
61
+ assetId: `${string}:${string}/${string}:${string}`;
62
+ iconUrl?: string | null | undefined;
63
+ icon?: string | null | undefined;
64
+ };
65
+ } & {
66
+ maxPriorityFeePerGas: string;
67
+ maxFeePerGas: string;
68
+ }) | undefined;
69
+ };
70
+ bridgeId: string;
71
+ bridges: string[];
72
+ steps: {
73
+ action: import("@metamask/bridge-controller").ActionTypes;
74
+ protocol: {
75
+ name: string;
76
+ displayName?: string | undefined;
77
+ icon?: string | undefined;
78
+ };
79
+ srcChainId: number;
80
+ srcAsset: {
81
+ symbol: string;
82
+ address: string;
83
+ name: string;
84
+ chainId: number;
85
+ decimals: number;
86
+ assetId: `${string}:${string}/${string}:${string}`;
87
+ iconUrl?: string | null | undefined;
88
+ icon?: string | null | undefined;
89
+ };
90
+ destAsset: {
91
+ symbol: string;
92
+ address: string;
93
+ name: string;
94
+ chainId: number;
95
+ decimals: number;
96
+ assetId: `${string}:${string}/${string}:${string}`;
97
+ iconUrl?: string | null | undefined;
98
+ icon?: string | null | undefined;
99
+ };
100
+ srcAmount: string;
101
+ destAmount: string;
102
+ destChainId?: number | undefined;
103
+ }[];
104
+ refuel?: {
105
+ action: import("@metamask/bridge-controller").ActionTypes;
106
+ protocol: {
107
+ name: string;
108
+ displayName?: string | undefined;
109
+ icon?: string | undefined;
110
+ };
111
+ srcChainId: number;
112
+ srcAsset: {
113
+ symbol: string;
114
+ address: string;
115
+ name: string;
116
+ chainId: number;
117
+ decimals: number;
118
+ assetId: `${string}:${string}/${string}:${string}`;
119
+ iconUrl?: string | null | undefined;
120
+ icon?: string | null | undefined;
121
+ };
122
+ destAsset: {
123
+ symbol: string;
124
+ address: string;
125
+ name: string;
126
+ chainId: number;
127
+ decimals: number;
128
+ assetId: `${string}:${string}/${string}:${string}`;
129
+ iconUrl?: string | null | undefined;
130
+ icon?: string | null | undefined;
131
+ };
132
+ srcAmount: string;
133
+ destAmount: string;
134
+ destChainId?: number | undefined;
135
+ } | undefined;
136
+ gasIncluded?: boolean | undefined;
137
+ priceData?: {
138
+ totalFromAmountUsd?: string | undefined;
139
+ totalToAmountUsd?: string | undefined;
140
+ priceImpact?: string | undefined;
141
+ } | undefined;
142
+ };
14
143
  refuel: boolean;
15
144
  };
16
145
  export declare const getTxMetaFields: (quoteResponse: Omit<QuoteResponse<string | TxData>, 'approval' | 'trade'> & QuoteMetadata, approvalTxId?: string) => Omit<TransactionMeta, 'networkClientId' | 'status' | 'time' | 'txParams' | 'id'>;
@@ -34,7 +163,14 @@ export declare const getKeyringRequest: (quoteResponse: Omit<QuoteResponse<strin
34
163
  account: {
35
164
  address: string;
36
165
  };
37
- transaction: string;
166
+ transaction: string | ({
167
+ data: string;
168
+ value: string;
169
+ to: string;
170
+ from: string;
171
+ gasLimit: number | null;
172
+ chainId: number;
173
+ } & string);
38
174
  scope: SolScope;
39
175
  };
40
176
  method: string;
@@ -57,7 +193,14 @@ export declare const getClientRequest: (quoteResponse: Omit<QuoteResponse<string
57
193
  account: {
58
194
  address: string;
59
195
  };
60
- transaction: string;
196
+ transaction: string | ({
197
+ data: string;
198
+ value: string;
199
+ to: string;
200
+ from: string;
201
+ gasLimit: number | null;
202
+ chainId: number;
203
+ } & string);
61
204
  scope: SolScope;
62
205
  };
63
206
  };
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.cts","sourceRoot":"","sources":["../../src/utils/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,sCAAsC;AAC7E,OAAO,KAAK,EAAE,MAAM,EAAE,oCAAoC;AAC1D,OAAO,EACL,OAAO,EAGP,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,oCAAoC;AACrC,OAAO,EAAE,QAAQ,EAAE,8BAA8B;AACjD,OAAO,EAGL,KAAK,eAAe,EACrB,yCAAyC;AAK1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAiB;AAEtD,eAAO,MAAM,gBAAgB,cAAgD,CAAC;AAE9E,eAAO,MAAM,sBAAsB,kBAClB,cAAc,MAAM,GAAG,MAAM,CAAC;;;;;;;CAU9C,CAAC;AAEF,eAAO,MAAM,eAAe,kBACX,KAAK,cAAc,MAAM,GAAG,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,GACvE,aAAa,iBACA,MAAM,KACpB,KACD,eAAe,EACf,iBAAiB,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAmB1D,CAAC;AAEF,eAAO,MAAM,sBAAsB,iBAE7B,MAAM,GACN;IAAE,MAAM,EAAE,OAAO,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAClC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,iBACV,KAAK,cAAc,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,aAAa,mBACrD,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAC/E,eAAe,GAAG,qBAsDpB,CAAC;AAEF,eAAO,MAAM,gBAAgB,kBACZ,cAAc,MAAM,GAAG,MAAM,CAAC,kBAY9C,CAAC;AAEF,eAAO,MAAM,iBAAiB,kBACb,KAAK,cAAc,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,aAAa,mBACrD,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;CA4BjF,CAAC;AAEF,eAAO,MAAM,gBAAgB,kBACZ,KAAK,cAAc,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,aAAa,mBACrD,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;CAmBjF,CAAC"}
1
+ {"version":3,"file":"transaction.d.cts","sourceRoot":"","sources":["../../src/utils/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,sCAAsC;AAC7E,OAAO,KAAK,EAAE,MAAM,EAAE,oCAAoC;AAC1D,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,oCAAoC;AACrC,OAAO,EAAE,QAAQ,EAAE,8BAA8B;AACjD,OAAO,EAGL,KAAK,eAAe,EACrB,yCAAyC;AAK1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAiB;AAEtD,eAAO,MAAM,gBAAgB,cAAgD,CAAC;AAE9E,eAAO,MAAM,sBAAsB,kBAClB,cAAc,MAAM,GAAG,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAU9C,CAAC;AAEF,eAAO,MAAM,eAAe,kBACX,KAAK,cAAc,MAAM,GAAG,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,GACvE,aAAa,iBACA,MAAM,KACpB,KACD,eAAe,EACf,iBAAiB,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAmB1D,CAAC;AAEF,eAAO,MAAM,sBAAsB,iBAE7B,MAAM,GACN;IAAE,MAAM,EAAE,OAAO,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAClC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,iBACV,KAAK,cAAc,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,aAAa,mBACrD,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAC/E,eAAe,GAAG,qBAsDpB,CAAC;AAEF,eAAO,MAAM,gBAAgB,kBACZ,cAAc,MAAM,GAAG,MAAM,CAAC,kBAY9C,CAAC;AAEF,eAAO,MAAM,iBAAiB,kBACb,KAAK,cAAc,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,aAAa,mBACrD,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BjF,CAAC;AAEF,eAAO,MAAM,gBAAgB,kBACZ,KAAK,cAAc,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,aAAa,mBACrD,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;CAmBjF,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { AccountsControllerState } from "@metamask/accounts-controller";
2
2
  import type { TxData } from "@metamask/bridge-controller";
3
- import { ChainId, type QuoteMetadata, type QuoteResponse } from "@metamask/bridge-controller";
3
+ import { type QuoteMetadata, type QuoteResponse } from "@metamask/bridge-controller";
4
4
  import { SolScope } from "@metamask/keyring-api";
5
5
  import { type TransactionMeta } from "@metamask/transaction-controller";
6
6
  import type { SolanaTransactionMeta } from "../types.mjs";
@@ -8,9 +8,138 @@ export declare const generateActionId: () => string;
8
8
  export declare const getStatusRequestParams: (quoteResponse: QuoteResponse<string | TxData>) => {
9
9
  bridgeId: string;
10
10
  bridge: string;
11
- srcChainId: ChainId;
12
- destChainId: ChainId;
13
- quote: import("@metamask/bridge-controller").Quote;
11
+ srcChainId: number;
12
+ destChainId: number;
13
+ quote: {
14
+ srcChainId: number;
15
+ destChainId: number;
16
+ srcAsset: {
17
+ symbol: string;
18
+ address: string;
19
+ name: string;
20
+ chainId: number;
21
+ decimals: number;
22
+ assetId: `${string}:${string}/${string}:${string}`;
23
+ iconUrl?: string | null | undefined;
24
+ icon?: string | null | undefined;
25
+ };
26
+ destAsset: {
27
+ symbol: string;
28
+ address: string;
29
+ name: string;
30
+ chainId: number;
31
+ decimals: number;
32
+ assetId: `${string}:${string}/${string}:${string}`;
33
+ iconUrl?: string | null | undefined;
34
+ icon?: string | null | undefined;
35
+ };
36
+ requestId: string;
37
+ srcTokenAmount: string;
38
+ destTokenAmount: string;
39
+ feeData: {
40
+ metabridge: {
41
+ amount: string;
42
+ asset: {
43
+ symbol: string;
44
+ address: string;
45
+ name: string;
46
+ chainId: number;
47
+ decimals: number;
48
+ assetId: `${string}:${string}/${string}:${string}`;
49
+ iconUrl?: string | null | undefined;
50
+ icon?: string | null | undefined;
51
+ };
52
+ };
53
+ txFee?: ({
54
+ amount: string;
55
+ asset: {
56
+ symbol: string;
57
+ address: string;
58
+ name: string;
59
+ chainId: number;
60
+ decimals: number;
61
+ assetId: `${string}:${string}/${string}:${string}`;
62
+ iconUrl?: string | null | undefined;
63
+ icon?: string | null | undefined;
64
+ };
65
+ } & {
66
+ maxPriorityFeePerGas: string;
67
+ maxFeePerGas: string;
68
+ }) | undefined;
69
+ };
70
+ bridgeId: string;
71
+ bridges: string[];
72
+ steps: {
73
+ action: import("@metamask/bridge-controller").ActionTypes;
74
+ protocol: {
75
+ name: string;
76
+ displayName?: string | undefined;
77
+ icon?: string | undefined;
78
+ };
79
+ srcChainId: number;
80
+ srcAsset: {
81
+ symbol: string;
82
+ address: string;
83
+ name: string;
84
+ chainId: number;
85
+ decimals: number;
86
+ assetId: `${string}:${string}/${string}:${string}`;
87
+ iconUrl?: string | null | undefined;
88
+ icon?: string | null | undefined;
89
+ };
90
+ destAsset: {
91
+ symbol: string;
92
+ address: string;
93
+ name: string;
94
+ chainId: number;
95
+ decimals: number;
96
+ assetId: `${string}:${string}/${string}:${string}`;
97
+ iconUrl?: string | null | undefined;
98
+ icon?: string | null | undefined;
99
+ };
100
+ srcAmount: string;
101
+ destAmount: string;
102
+ destChainId?: number | undefined;
103
+ }[];
104
+ refuel?: {
105
+ action: import("@metamask/bridge-controller").ActionTypes;
106
+ protocol: {
107
+ name: string;
108
+ displayName?: string | undefined;
109
+ icon?: string | undefined;
110
+ };
111
+ srcChainId: number;
112
+ srcAsset: {
113
+ symbol: string;
114
+ address: string;
115
+ name: string;
116
+ chainId: number;
117
+ decimals: number;
118
+ assetId: `${string}:${string}/${string}:${string}`;
119
+ iconUrl?: string | null | undefined;
120
+ icon?: string | null | undefined;
121
+ };
122
+ destAsset: {
123
+ symbol: string;
124
+ address: string;
125
+ name: string;
126
+ chainId: number;
127
+ decimals: number;
128
+ assetId: `${string}:${string}/${string}:${string}`;
129
+ iconUrl?: string | null | undefined;
130
+ icon?: string | null | undefined;
131
+ };
132
+ srcAmount: string;
133
+ destAmount: string;
134
+ destChainId?: number | undefined;
135
+ } | undefined;
136
+ gasIncluded?: boolean | undefined;
137
+ priceData?: {
138
+ totalFromAmountUsd?: string | undefined;
139
+ totalToAmountUsd?: string | undefined;
140
+ priceImpact?: string | undefined;
141
+ } | undefined;
142
+ };
14
143
  refuel: boolean;
15
144
  };
16
145
  export declare const getTxMetaFields: (quoteResponse: Omit<QuoteResponse<string | TxData>, 'approval' | 'trade'> & QuoteMetadata, approvalTxId?: string) => Omit<TransactionMeta, 'networkClientId' | 'status' | 'time' | 'txParams' | 'id'>;
@@ -34,7 +163,14 @@ export declare const getKeyringRequest: (quoteResponse: Omit<QuoteResponse<strin
34
163
  account: {
35
164
  address: string;
36
165
  };
37
- transaction: string;
166
+ transaction: string | ({
167
+ data: string;
168
+ value: string;
169
+ to: string;
170
+ from: string;
171
+ gasLimit: number | null;
172
+ chainId: number;
173
+ } & string);
38
174
  scope: SolScope;
39
175
  };
40
176
  method: string;
@@ -57,7 +193,14 @@ export declare const getClientRequest: (quoteResponse: Omit<QuoteResponse<string
57
193
  account: {
58
194
  address: string;
59
195
  };
60
- transaction: string;
196
+ transaction: string | ({
197
+ data: string;
198
+ value: string;
199
+ to: string;
200
+ from: string;
201
+ gasLimit: number | null;
202
+ chainId: number;
203
+ } & string);
61
204
  scope: SolScope;
62
205
  };
63
206
  };
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.mts","sourceRoot":"","sources":["../../src/utils/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,sCAAsC;AAC7E,OAAO,KAAK,EAAE,MAAM,EAAE,oCAAoC;AAC1D,OAAO,EACL,OAAO,EAGP,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,oCAAoC;AACrC,OAAO,EAAE,QAAQ,EAAE,8BAA8B;AACjD,OAAO,EAGL,KAAK,eAAe,EACrB,yCAAyC;AAK1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAiB;AAEtD,eAAO,MAAM,gBAAgB,cAAgD,CAAC;AAE9E,eAAO,MAAM,sBAAsB,kBAClB,cAAc,MAAM,GAAG,MAAM,CAAC;;;;;;;CAU9C,CAAC;AAEF,eAAO,MAAM,eAAe,kBACX,KAAK,cAAc,MAAM,GAAG,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,GACvE,aAAa,iBACA,MAAM,KACpB,KACD,eAAe,EACf,iBAAiB,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAmB1D,CAAC;AAEF,eAAO,MAAM,sBAAsB,iBAE7B,MAAM,GACN;IAAE,MAAM,EAAE,OAAO,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAClC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,iBACV,KAAK,cAAc,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,aAAa,mBACrD,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAC/E,eAAe,GAAG,qBAsDpB,CAAC;AAEF,eAAO,MAAM,gBAAgB,kBACZ,cAAc,MAAM,GAAG,MAAM,CAAC,kBAY9C,CAAC;AAEF,eAAO,MAAM,iBAAiB,kBACb,KAAK,cAAc,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,aAAa,mBACrD,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;CA4BjF,CAAC;AAEF,eAAO,MAAM,gBAAgB,kBACZ,KAAK,cAAc,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,aAAa,mBACrD,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;CAmBjF,CAAC"}
1
+ {"version":3,"file":"transaction.d.mts","sourceRoot":"","sources":["../../src/utils/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,sCAAsC;AAC7E,OAAO,KAAK,EAAE,MAAM,EAAE,oCAAoC;AAC1D,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,oCAAoC;AACrC,OAAO,EAAE,QAAQ,EAAE,8BAA8B;AACjD,OAAO,EAGL,KAAK,eAAe,EACrB,yCAAyC;AAK1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAiB;AAEtD,eAAO,MAAM,gBAAgB,cAAgD,CAAC;AAE9E,eAAO,MAAM,sBAAsB,kBAClB,cAAc,MAAM,GAAG,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAU9C,CAAC;AAEF,eAAO,MAAM,eAAe,kBACX,KAAK,cAAc,MAAM,GAAG,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,GACvE,aAAa,iBACA,MAAM,KACpB,KACD,eAAe,EACf,iBAAiB,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAmB1D,CAAC;AAEF,eAAO,MAAM,sBAAsB,iBAE7B,MAAM,GACN;IAAE,MAAM,EAAE,OAAO,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAClC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,iBACV,KAAK,cAAc,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,aAAa,mBACrD,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAC/E,eAAe,GAAG,qBAsDpB,CAAC;AAEF,eAAO,MAAM,gBAAgB,kBACZ,cAAc,MAAM,GAAG,MAAM,CAAC,kBAY9C,CAAC;AAEF,eAAO,MAAM,iBAAiB,kBACb,KAAK,cAAc,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,aAAa,mBACrD,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BjF,CAAC;AAEF,eAAO,MAAM,gBAAgB,kBACZ,KAAK,cAAc,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,aAAa,mBACrD,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;CAmBjF,CAAC"}