@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.
- package/CHANGELOG.md +40 -1
- package/dist/bridge-status-controller.cjs +68 -64
- package/dist/bridge-status-controller.cjs.map +1 -1
- package/dist/bridge-status-controller.d.cts.map +1 -1
- package/dist/bridge-status-controller.d.mts.map +1 -1
- package/dist/bridge-status-controller.mjs +69 -65
- package/dist/bridge-status-controller.mjs.map +1 -1
- package/dist/index.cjs +1 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs +1 -12
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +10 -76
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +10 -76
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs +0 -11
- package/dist/types.mjs.map +1 -1
- package/dist/utils/metrics.cjs +60 -2
- package/dist/utils/metrics.cjs.map +1 -1
- package/dist/utils/metrics.d.cts +40 -1
- package/dist/utils/metrics.d.cts.map +1 -1
- package/dist/utils/metrics.d.mts +40 -1
- package/dist/utils/metrics.d.mts.map +1 -1
- package/dist/utils/metrics.mjs +57 -2
- package/dist/utils/metrics.mjs.map +1 -1
- package/dist/utils/transaction.d.cts +149 -6
- package/dist/utils/transaction.d.cts.map +1 -1
- package/dist/utils/transaction.d.mts +149 -6
- package/dist/utils/transaction.d.mts.map +1 -1
- package/dist/utils/validators.cjs +36 -34
- package/dist/utils/validators.cjs.map +1 -1
- package/dist/utils/validators.d.cts +117 -0
- package/dist/utils/validators.d.cts.map +1 -1
- package/dist/utils/validators.d.mts +117 -0
- package/dist/utils/validators.d.mts.map +1 -1
- package/dist/utils/validators.mjs +36 -34
- package/dist/utils/validators.mjs.map +1 -1
- package/package.json +4 -6
package/dist/utils/metrics.d.cts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { AccountsControllerState } from "@metamask/accounts-controller";
|
|
2
|
-
import
|
|
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,
|
|
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"}
|
package/dist/utils/metrics.d.mts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { AccountsControllerState } from "@metamask/accounts-controller";
|
|
2
|
-
import
|
|
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,
|
|
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"}
|
package/dist/utils/metrics.mjs
CHANGED
|
@@ -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 {
|
|
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:
|
|
12
|
-
destChainId:
|
|
13
|
-
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,
|
|
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 {
|
|
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:
|
|
12
|
-
destChainId:
|
|
13
|
-
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,
|
|
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"}
|