@metamask-previews/bridge-status-controller 1.0.0-preview-dbdf1da
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 +17 -0
- package/LICENSE +20 -0
- package/README.md +15 -0
- package/dist/bridge-status-controller.cjs +247 -0
- package/dist/bridge-status-controller.cjs.map +1 -0
- package/dist/bridge-status-controller.d.cts +44 -0
- package/dist/bridge-status-controller.d.cts.map +1 -0
- package/dist/bridge-status-controller.d.mts +44 -0
- package/dist/bridge-status-controller.d.mts.map +1 -0
- package/dist/bridge-status-controller.mjs +243 -0
- package/dist/bridge-status-controller.mjs.map +1 -0
- package/dist/constants.cjs +12 -0
- package/dist/constants.cjs.map +1 -0
- package/dist/constants.d.cts +10 -0
- package/dist/constants.d.cts.map +1 -0
- package/dist/constants.d.mts +10 -0
- package/dist/constants.d.mts.map +1 -0
- package/dist/constants.mjs +9 -0
- package/dist/constants.mjs.map +1 -0
- package/dist/index.cjs +17 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +5 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +5 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +5 -0
- package/dist/index.mjs.map +1 -0
- package/dist/types.cjs +42 -0
- package/dist/types.cjs.map +1 -0
- package/dist/types.d.cts +240 -0
- package/dist/types.d.cts.map +1 -0
- package/dist/types.d.mts +240 -0
- package/dist/types.d.mts.map +1 -0
- package/dist/types.mjs +39 -0
- package/dist/types.mjs.map +1 -0
- package/dist/utils/bridge-status.cjs +53 -0
- package/dist/utils/bridge-status.cjs.map +1 -0
- package/dist/utils/bridge-status.d.cts +10 -0
- package/dist/utils/bridge-status.d.cts.map +1 -0
- package/dist/utils/bridge-status.d.mts +10 -0
- package/dist/utils/bridge-status.d.mts.map +1 -0
- package/dist/utils/bridge-status.mjs +46 -0
- package/dist/utils/bridge-status.mjs.map +1 -0
- package/dist/utils/validators.cjs +161 -0
- package/dist/utils/validators.cjs.map +1 -0
- package/dist/utils/validators.d.cts +15 -0
- package/dist/utils/validators.d.cts.map +1 -0
- package/dist/utils/validators.d.mts +15 -0
- package/dist/utils/validators.d.mts.map +1 -0
- package/dist/utils/validators.mjs +155 -0
- package/dist/utils/validators.mjs.map +1 -0
- package/package.json +85 -0
package/dist/types.d.cts
ADDED
@@ -0,0 +1,240 @@
|
|
1
|
+
import type { AccountsControllerGetSelectedAccountAction } from "@metamask/accounts-controller";
|
2
|
+
import type { ControllerGetStateAction, ControllerStateChangeEvent, RestrictedMessenger } from "@metamask/base-controller";
|
3
|
+
import type { ChainId, Quote, QuoteMetadata, QuoteResponse } from "@metamask/bridge-controller";
|
4
|
+
import type { NetworkControllerFindNetworkClientIdByChainIdAction, NetworkControllerGetNetworkClientByIdAction, NetworkControllerGetStateAction } from "@metamask/network-controller";
|
5
|
+
import type { TransactionControllerGetStateAction } from "@metamask/transaction-controller";
|
6
|
+
import type { TransactionMeta } from "@metamask/transaction-controller";
|
7
|
+
import type { BridgeStatusController } from "./bridge-status-controller.cjs";
|
8
|
+
import type { BRIDGE_STATUS_CONTROLLER_NAME } from "./constants.cjs";
|
9
|
+
export type FetchFunction = (input: RequestInfo | URL, init?: RequestInit) => Promise<any>;
|
10
|
+
export declare enum StatusTypes {
|
11
|
+
UNKNOWN = "UNKNOWN",
|
12
|
+
FAILED = "FAILED",
|
13
|
+
PENDING = "PENDING",
|
14
|
+
COMPLETE = "COMPLETE"
|
15
|
+
}
|
16
|
+
export type StatusRequest = {
|
17
|
+
bridgeId: string;
|
18
|
+
srcTxHash?: string;
|
19
|
+
bridge: string;
|
20
|
+
srcChainId: ChainId;
|
21
|
+
destChainId: ChainId;
|
22
|
+
quote?: Quote;
|
23
|
+
refuel?: boolean;
|
24
|
+
};
|
25
|
+
export type StatusRequestDto = Omit<StatusRequest, 'quote' | 'srcChainId' | 'destChainId' | 'refuel'> & {
|
26
|
+
srcChainId: string;
|
27
|
+
destChainId: string;
|
28
|
+
requestId?: string;
|
29
|
+
refuel?: string;
|
30
|
+
};
|
31
|
+
export type StatusRequestWithSrcTxHash = StatusRequest & {
|
32
|
+
srcTxHash: string;
|
33
|
+
};
|
34
|
+
export type Asset = {
|
35
|
+
chainId: ChainId;
|
36
|
+
address: string;
|
37
|
+
symbol: string;
|
38
|
+
name: string;
|
39
|
+
decimals: number;
|
40
|
+
icon?: string | null;
|
41
|
+
};
|
42
|
+
export type SrcChainStatus = {
|
43
|
+
chainId: ChainId;
|
44
|
+
/**
|
45
|
+
* The txHash of the transaction on the source chain.
|
46
|
+
* This might be undefined for smart transactions (STX)
|
47
|
+
*/
|
48
|
+
txHash?: string;
|
49
|
+
/**
|
50
|
+
* The atomic amount of the token sent minus fees on the source chain
|
51
|
+
*/
|
52
|
+
amount?: string;
|
53
|
+
token?: Record<string, never> | Asset;
|
54
|
+
};
|
55
|
+
export type DestChainStatus = {
|
56
|
+
chainId: ChainId;
|
57
|
+
txHash?: string;
|
58
|
+
/**
|
59
|
+
* The atomic amount of the token received on the destination chain
|
60
|
+
*/
|
61
|
+
amount?: string;
|
62
|
+
token?: Record<string, never> | Asset;
|
63
|
+
};
|
64
|
+
export declare enum BridgeId {
|
65
|
+
HOP = "hop",
|
66
|
+
CELER = "celer",
|
67
|
+
CELERCIRCLE = "celercircle",
|
68
|
+
CONNEXT = "connext",
|
69
|
+
POLYGON = "polygon",
|
70
|
+
AVALANCHE = "avalanche",
|
71
|
+
MULTICHAIN = "multichain",
|
72
|
+
AXELAR = "axelar",
|
73
|
+
ACROSS = "across",
|
74
|
+
STARGATE = "stargate"
|
75
|
+
}
|
76
|
+
export declare enum FeeType {
|
77
|
+
METABRIDGE = "metabridge",
|
78
|
+
REFUEL = "refuel"
|
79
|
+
}
|
80
|
+
export type FeeData = {
|
81
|
+
amount: string;
|
82
|
+
asset: Asset;
|
83
|
+
};
|
84
|
+
export type Protocol = {
|
85
|
+
displayName?: string;
|
86
|
+
icon?: string;
|
87
|
+
name?: string;
|
88
|
+
};
|
89
|
+
export declare enum ActionTypes {
|
90
|
+
BRIDGE = "bridge",
|
91
|
+
SWAP = "swap",
|
92
|
+
REFUEL = "refuel"
|
93
|
+
}
|
94
|
+
export type Step = {
|
95
|
+
action: ActionTypes;
|
96
|
+
srcChainId: ChainId;
|
97
|
+
destChainId?: ChainId;
|
98
|
+
srcAsset: Asset;
|
99
|
+
destAsset: Asset;
|
100
|
+
srcAmount: string;
|
101
|
+
destAmount: string;
|
102
|
+
protocol: Protocol;
|
103
|
+
};
|
104
|
+
export type StatusResponse = {
|
105
|
+
status: StatusTypes;
|
106
|
+
srcChain: SrcChainStatus;
|
107
|
+
destChain?: DestChainStatus;
|
108
|
+
bridge?: BridgeId;
|
109
|
+
isExpectedToken?: boolean;
|
110
|
+
isUnrecognizedRouterAddress?: boolean;
|
111
|
+
refuel?: RefuelStatusResponse;
|
112
|
+
};
|
113
|
+
export type RefuelStatusResponse = object & StatusResponse;
|
114
|
+
export type RefuelData = object & Step;
|
115
|
+
export type BridgeHistoryItem = {
|
116
|
+
txMetaId: string;
|
117
|
+
quote: Quote;
|
118
|
+
status: StatusResponse;
|
119
|
+
startTime?: number;
|
120
|
+
estimatedProcessingTimeInSeconds: number;
|
121
|
+
slippagePercentage: number;
|
122
|
+
completionTime?: number;
|
123
|
+
pricingData?: {
|
124
|
+
/**
|
125
|
+
* From QuoteMetadata.sentAmount.amount, the actual amount sent by user in non-atomic decimal form
|
126
|
+
*/
|
127
|
+
amountSent: string;
|
128
|
+
amountSentInUsd?: string;
|
129
|
+
quotedGasInUsd?: string;
|
130
|
+
quotedReturnInUsd?: string;
|
131
|
+
quotedRefuelSrcAmountInUsd?: string;
|
132
|
+
quotedRefuelDestAmountInUsd?: string;
|
133
|
+
};
|
134
|
+
initialDestAssetBalance?: string;
|
135
|
+
targetContractAddress?: string;
|
136
|
+
account: string;
|
137
|
+
hasApprovalTx: boolean;
|
138
|
+
};
|
139
|
+
export declare enum BridgeStatusAction {
|
140
|
+
START_POLLING_FOR_BRIDGE_TX_STATUS = "startPollingForBridgeTxStatus",
|
141
|
+
WIPE_BRIDGE_STATUS = "wipeBridgeStatus",
|
142
|
+
GET_STATE = "getState",
|
143
|
+
RESET_STATE = "resetState"
|
144
|
+
}
|
145
|
+
export type TokenAmountValuesSerialized = {
|
146
|
+
amount: string;
|
147
|
+
valueInCurrency: string | null;
|
148
|
+
usd: string | null;
|
149
|
+
};
|
150
|
+
export type QuoteMetadataSerialized = {
|
151
|
+
gasFee: TokenAmountValuesSerialized;
|
152
|
+
/**
|
153
|
+
* The total network fee for the bridge transaction
|
154
|
+
* estimatedGasFees + relayerFees
|
155
|
+
*/
|
156
|
+
totalNetworkFee: TokenAmountValuesSerialized;
|
157
|
+
/**
|
158
|
+
* The total max network fee for the bridge transaction
|
159
|
+
* maxGasFees + relayerFees
|
160
|
+
*/
|
161
|
+
totalMaxNetworkFee: TokenAmountValuesSerialized;
|
162
|
+
toTokenAmount: TokenAmountValuesSerialized;
|
163
|
+
/**
|
164
|
+
* The adjusted return for the bridge transaction
|
165
|
+
* destTokenAmount - totalNetworkFee
|
166
|
+
*/
|
167
|
+
adjustedReturn: Omit<TokenAmountValuesSerialized, 'amount'>;
|
168
|
+
/**
|
169
|
+
* The actual amount sent by user in non-atomic decimal form
|
170
|
+
* srcTokenAmount + metabridgeFee
|
171
|
+
*/
|
172
|
+
sentAmount: TokenAmountValuesSerialized;
|
173
|
+
swapRate: string;
|
174
|
+
/**
|
175
|
+
* The cost of the bridge transaction
|
176
|
+
* sentAmount - adjustedReturn
|
177
|
+
*/
|
178
|
+
cost: Omit<TokenAmountValuesSerialized, 'amount'>;
|
179
|
+
};
|
180
|
+
export type StartPollingForBridgeTxStatusArgs = {
|
181
|
+
bridgeTxMeta: TransactionMeta;
|
182
|
+
statusRequest: StatusRequest;
|
183
|
+
quoteResponse: QuoteResponse & QuoteMetadata;
|
184
|
+
startTime?: BridgeHistoryItem['startTime'];
|
185
|
+
slippagePercentage: BridgeHistoryItem['slippagePercentage'];
|
186
|
+
initialDestAssetBalance?: BridgeHistoryItem['initialDestAssetBalance'];
|
187
|
+
targetContractAddress?: BridgeHistoryItem['targetContractAddress'];
|
188
|
+
};
|
189
|
+
/**
|
190
|
+
* Chrome: The BigNumber values are automatically serialized to strings when sent to the background
|
191
|
+
* Firefox: The BigNumber values are not serialized to strings when sent to the background,
|
192
|
+
* so we force the ui to do it manually, by using StartPollingForBridgeTxStatusArgsSerialized type on the startPollingForBridgeTxStatus action
|
193
|
+
*/
|
194
|
+
export type StartPollingForBridgeTxStatusArgsSerialized = Omit<StartPollingForBridgeTxStatusArgs, 'quoteResponse'> & {
|
195
|
+
quoteResponse: QuoteResponse & QuoteMetadataSerialized;
|
196
|
+
};
|
197
|
+
export type SourceChainTxMetaId = string;
|
198
|
+
export type BridgeStatusState = {
|
199
|
+
txHistory: Record<SourceChainTxMetaId, BridgeHistoryItem>;
|
200
|
+
};
|
201
|
+
export type BridgeStatusControllerState = {
|
202
|
+
bridgeStatusState: BridgeStatusState;
|
203
|
+
};
|
204
|
+
type BridgeStatusControllerAction<FunctionName extends keyof BridgeStatusController> = {
|
205
|
+
type: `${typeof BRIDGE_STATUS_CONTROLLER_NAME}:${FunctionName}`;
|
206
|
+
handler: BridgeStatusController[FunctionName];
|
207
|
+
};
|
208
|
+
export type BridgeStatusControllerGetStateAction = ControllerGetStateAction<typeof BRIDGE_STATUS_CONTROLLER_NAME, BridgeStatusControllerState>;
|
209
|
+
export type BridgeStatusControllerStartPollingForBridgeTxStatusAction = BridgeStatusControllerAction<BridgeStatusAction.START_POLLING_FOR_BRIDGE_TX_STATUS>;
|
210
|
+
export type BridgeStatusControllerWipeBridgeStatusAction = BridgeStatusControllerAction<BridgeStatusAction.WIPE_BRIDGE_STATUS>;
|
211
|
+
export type BridgeStatusControllerResetStateAction = BridgeStatusControllerAction<BridgeStatusAction.RESET_STATE>;
|
212
|
+
export type BridgeStatusControllerActions = BridgeStatusControllerStartPollingForBridgeTxStatusAction | BridgeStatusControllerWipeBridgeStatusAction | BridgeStatusControllerResetStateAction | BridgeStatusControllerGetStateAction;
|
213
|
+
export type BridgeStatusControllerStateChangeEvent = ControllerStateChangeEvent<typeof BRIDGE_STATUS_CONTROLLER_NAME, BridgeStatusControllerState>;
|
214
|
+
export type BridgeStatusControllerBridgeTransactionCompleteEvent = {
|
215
|
+
type: `${typeof BRIDGE_STATUS_CONTROLLER_NAME}:bridgeTransactionComplete`;
|
216
|
+
payload: [{
|
217
|
+
bridgeHistoryItem: BridgeHistoryItem;
|
218
|
+
}];
|
219
|
+
};
|
220
|
+
export type BridgeStatusControllerBridgeTransactionFailedEvent = {
|
221
|
+
type: `${typeof BRIDGE_STATUS_CONTROLLER_NAME}:bridgeTransactionFailed`;
|
222
|
+
payload: [{
|
223
|
+
bridgeHistoryItem: BridgeHistoryItem;
|
224
|
+
}];
|
225
|
+
};
|
226
|
+
export type BridgeStatusControllerEvents = BridgeStatusControllerStateChangeEvent | BridgeStatusControllerBridgeTransactionCompleteEvent | BridgeStatusControllerBridgeTransactionFailedEvent;
|
227
|
+
/**
|
228
|
+
* The external actions available to the BridgeStatusController.
|
229
|
+
*/
|
230
|
+
type AllowedActions = NetworkControllerFindNetworkClientIdByChainIdAction | NetworkControllerGetStateAction | NetworkControllerGetNetworkClientByIdAction | AccountsControllerGetSelectedAccountAction | TransactionControllerGetStateAction;
|
231
|
+
/**
|
232
|
+
* The external events available to the BridgeStatusController.
|
233
|
+
*/
|
234
|
+
type AllowedEvents = never;
|
235
|
+
/**
|
236
|
+
* The messenger for the BridgeStatusController.
|
237
|
+
*/
|
238
|
+
export type BridgeStatusControllerMessenger = RestrictedMessenger<typeof BRIDGE_STATUS_CONTROLLER_NAME, BridgeStatusControllerActions | AllowedActions, BridgeStatusControllerEvents | AllowedEvents, AllowedActions['type'], AllowedEvents['type']>;
|
239
|
+
export {};
|
240
|
+
//# sourceMappingURL=types.d.cts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.mts
ADDED
@@ -0,0 +1,240 @@
|
|
1
|
+
import type { AccountsControllerGetSelectedAccountAction } from "@metamask/accounts-controller";
|
2
|
+
import type { ControllerGetStateAction, ControllerStateChangeEvent, RestrictedMessenger } from "@metamask/base-controller";
|
3
|
+
import type { ChainId, Quote, QuoteMetadata, QuoteResponse } from "@metamask/bridge-controller";
|
4
|
+
import type { NetworkControllerFindNetworkClientIdByChainIdAction, NetworkControllerGetNetworkClientByIdAction, NetworkControllerGetStateAction } from "@metamask/network-controller";
|
5
|
+
import type { TransactionControllerGetStateAction } from "@metamask/transaction-controller";
|
6
|
+
import type { TransactionMeta } from "@metamask/transaction-controller";
|
7
|
+
import type { BridgeStatusController } from "./bridge-status-controller.mjs";
|
8
|
+
import type { BRIDGE_STATUS_CONTROLLER_NAME } from "./constants.mjs";
|
9
|
+
export type FetchFunction = (input: RequestInfo | URL, init?: RequestInit) => Promise<any>;
|
10
|
+
export declare enum StatusTypes {
|
11
|
+
UNKNOWN = "UNKNOWN",
|
12
|
+
FAILED = "FAILED",
|
13
|
+
PENDING = "PENDING",
|
14
|
+
COMPLETE = "COMPLETE"
|
15
|
+
}
|
16
|
+
export type StatusRequest = {
|
17
|
+
bridgeId: string;
|
18
|
+
srcTxHash?: string;
|
19
|
+
bridge: string;
|
20
|
+
srcChainId: ChainId;
|
21
|
+
destChainId: ChainId;
|
22
|
+
quote?: Quote;
|
23
|
+
refuel?: boolean;
|
24
|
+
};
|
25
|
+
export type StatusRequestDto = Omit<StatusRequest, 'quote' | 'srcChainId' | 'destChainId' | 'refuel'> & {
|
26
|
+
srcChainId: string;
|
27
|
+
destChainId: string;
|
28
|
+
requestId?: string;
|
29
|
+
refuel?: string;
|
30
|
+
};
|
31
|
+
export type StatusRequestWithSrcTxHash = StatusRequest & {
|
32
|
+
srcTxHash: string;
|
33
|
+
};
|
34
|
+
export type Asset = {
|
35
|
+
chainId: ChainId;
|
36
|
+
address: string;
|
37
|
+
symbol: string;
|
38
|
+
name: string;
|
39
|
+
decimals: number;
|
40
|
+
icon?: string | null;
|
41
|
+
};
|
42
|
+
export type SrcChainStatus = {
|
43
|
+
chainId: ChainId;
|
44
|
+
/**
|
45
|
+
* The txHash of the transaction on the source chain.
|
46
|
+
* This might be undefined for smart transactions (STX)
|
47
|
+
*/
|
48
|
+
txHash?: string;
|
49
|
+
/**
|
50
|
+
* The atomic amount of the token sent minus fees on the source chain
|
51
|
+
*/
|
52
|
+
amount?: string;
|
53
|
+
token?: Record<string, never> | Asset;
|
54
|
+
};
|
55
|
+
export type DestChainStatus = {
|
56
|
+
chainId: ChainId;
|
57
|
+
txHash?: string;
|
58
|
+
/**
|
59
|
+
* The atomic amount of the token received on the destination chain
|
60
|
+
*/
|
61
|
+
amount?: string;
|
62
|
+
token?: Record<string, never> | Asset;
|
63
|
+
};
|
64
|
+
export declare enum BridgeId {
|
65
|
+
HOP = "hop",
|
66
|
+
CELER = "celer",
|
67
|
+
CELERCIRCLE = "celercircle",
|
68
|
+
CONNEXT = "connext",
|
69
|
+
POLYGON = "polygon",
|
70
|
+
AVALANCHE = "avalanche",
|
71
|
+
MULTICHAIN = "multichain",
|
72
|
+
AXELAR = "axelar",
|
73
|
+
ACROSS = "across",
|
74
|
+
STARGATE = "stargate"
|
75
|
+
}
|
76
|
+
export declare enum FeeType {
|
77
|
+
METABRIDGE = "metabridge",
|
78
|
+
REFUEL = "refuel"
|
79
|
+
}
|
80
|
+
export type FeeData = {
|
81
|
+
amount: string;
|
82
|
+
asset: Asset;
|
83
|
+
};
|
84
|
+
export type Protocol = {
|
85
|
+
displayName?: string;
|
86
|
+
icon?: string;
|
87
|
+
name?: string;
|
88
|
+
};
|
89
|
+
export declare enum ActionTypes {
|
90
|
+
BRIDGE = "bridge",
|
91
|
+
SWAP = "swap",
|
92
|
+
REFUEL = "refuel"
|
93
|
+
}
|
94
|
+
export type Step = {
|
95
|
+
action: ActionTypes;
|
96
|
+
srcChainId: ChainId;
|
97
|
+
destChainId?: ChainId;
|
98
|
+
srcAsset: Asset;
|
99
|
+
destAsset: Asset;
|
100
|
+
srcAmount: string;
|
101
|
+
destAmount: string;
|
102
|
+
protocol: Protocol;
|
103
|
+
};
|
104
|
+
export type StatusResponse = {
|
105
|
+
status: StatusTypes;
|
106
|
+
srcChain: SrcChainStatus;
|
107
|
+
destChain?: DestChainStatus;
|
108
|
+
bridge?: BridgeId;
|
109
|
+
isExpectedToken?: boolean;
|
110
|
+
isUnrecognizedRouterAddress?: boolean;
|
111
|
+
refuel?: RefuelStatusResponse;
|
112
|
+
};
|
113
|
+
export type RefuelStatusResponse = object & StatusResponse;
|
114
|
+
export type RefuelData = object & Step;
|
115
|
+
export type BridgeHistoryItem = {
|
116
|
+
txMetaId: string;
|
117
|
+
quote: Quote;
|
118
|
+
status: StatusResponse;
|
119
|
+
startTime?: number;
|
120
|
+
estimatedProcessingTimeInSeconds: number;
|
121
|
+
slippagePercentage: number;
|
122
|
+
completionTime?: number;
|
123
|
+
pricingData?: {
|
124
|
+
/**
|
125
|
+
* From QuoteMetadata.sentAmount.amount, the actual amount sent by user in non-atomic decimal form
|
126
|
+
*/
|
127
|
+
amountSent: string;
|
128
|
+
amountSentInUsd?: string;
|
129
|
+
quotedGasInUsd?: string;
|
130
|
+
quotedReturnInUsd?: string;
|
131
|
+
quotedRefuelSrcAmountInUsd?: string;
|
132
|
+
quotedRefuelDestAmountInUsd?: string;
|
133
|
+
};
|
134
|
+
initialDestAssetBalance?: string;
|
135
|
+
targetContractAddress?: string;
|
136
|
+
account: string;
|
137
|
+
hasApprovalTx: boolean;
|
138
|
+
};
|
139
|
+
export declare enum BridgeStatusAction {
|
140
|
+
START_POLLING_FOR_BRIDGE_TX_STATUS = "startPollingForBridgeTxStatus",
|
141
|
+
WIPE_BRIDGE_STATUS = "wipeBridgeStatus",
|
142
|
+
GET_STATE = "getState",
|
143
|
+
RESET_STATE = "resetState"
|
144
|
+
}
|
145
|
+
export type TokenAmountValuesSerialized = {
|
146
|
+
amount: string;
|
147
|
+
valueInCurrency: string | null;
|
148
|
+
usd: string | null;
|
149
|
+
};
|
150
|
+
export type QuoteMetadataSerialized = {
|
151
|
+
gasFee: TokenAmountValuesSerialized;
|
152
|
+
/**
|
153
|
+
* The total network fee for the bridge transaction
|
154
|
+
* estimatedGasFees + relayerFees
|
155
|
+
*/
|
156
|
+
totalNetworkFee: TokenAmountValuesSerialized;
|
157
|
+
/**
|
158
|
+
* The total max network fee for the bridge transaction
|
159
|
+
* maxGasFees + relayerFees
|
160
|
+
*/
|
161
|
+
totalMaxNetworkFee: TokenAmountValuesSerialized;
|
162
|
+
toTokenAmount: TokenAmountValuesSerialized;
|
163
|
+
/**
|
164
|
+
* The adjusted return for the bridge transaction
|
165
|
+
* destTokenAmount - totalNetworkFee
|
166
|
+
*/
|
167
|
+
adjustedReturn: Omit<TokenAmountValuesSerialized, 'amount'>;
|
168
|
+
/**
|
169
|
+
* The actual amount sent by user in non-atomic decimal form
|
170
|
+
* srcTokenAmount + metabridgeFee
|
171
|
+
*/
|
172
|
+
sentAmount: TokenAmountValuesSerialized;
|
173
|
+
swapRate: string;
|
174
|
+
/**
|
175
|
+
* The cost of the bridge transaction
|
176
|
+
* sentAmount - adjustedReturn
|
177
|
+
*/
|
178
|
+
cost: Omit<TokenAmountValuesSerialized, 'amount'>;
|
179
|
+
};
|
180
|
+
export type StartPollingForBridgeTxStatusArgs = {
|
181
|
+
bridgeTxMeta: TransactionMeta;
|
182
|
+
statusRequest: StatusRequest;
|
183
|
+
quoteResponse: QuoteResponse & QuoteMetadata;
|
184
|
+
startTime?: BridgeHistoryItem['startTime'];
|
185
|
+
slippagePercentage: BridgeHistoryItem['slippagePercentage'];
|
186
|
+
initialDestAssetBalance?: BridgeHistoryItem['initialDestAssetBalance'];
|
187
|
+
targetContractAddress?: BridgeHistoryItem['targetContractAddress'];
|
188
|
+
};
|
189
|
+
/**
|
190
|
+
* Chrome: The BigNumber values are automatically serialized to strings when sent to the background
|
191
|
+
* Firefox: The BigNumber values are not serialized to strings when sent to the background,
|
192
|
+
* so we force the ui to do it manually, by using StartPollingForBridgeTxStatusArgsSerialized type on the startPollingForBridgeTxStatus action
|
193
|
+
*/
|
194
|
+
export type StartPollingForBridgeTxStatusArgsSerialized = Omit<StartPollingForBridgeTxStatusArgs, 'quoteResponse'> & {
|
195
|
+
quoteResponse: QuoteResponse & QuoteMetadataSerialized;
|
196
|
+
};
|
197
|
+
export type SourceChainTxMetaId = string;
|
198
|
+
export type BridgeStatusState = {
|
199
|
+
txHistory: Record<SourceChainTxMetaId, BridgeHistoryItem>;
|
200
|
+
};
|
201
|
+
export type BridgeStatusControllerState = {
|
202
|
+
bridgeStatusState: BridgeStatusState;
|
203
|
+
};
|
204
|
+
type BridgeStatusControllerAction<FunctionName extends keyof BridgeStatusController> = {
|
205
|
+
type: `${typeof BRIDGE_STATUS_CONTROLLER_NAME}:${FunctionName}`;
|
206
|
+
handler: BridgeStatusController[FunctionName];
|
207
|
+
};
|
208
|
+
export type BridgeStatusControllerGetStateAction = ControllerGetStateAction<typeof BRIDGE_STATUS_CONTROLLER_NAME, BridgeStatusControllerState>;
|
209
|
+
export type BridgeStatusControllerStartPollingForBridgeTxStatusAction = BridgeStatusControllerAction<BridgeStatusAction.START_POLLING_FOR_BRIDGE_TX_STATUS>;
|
210
|
+
export type BridgeStatusControllerWipeBridgeStatusAction = BridgeStatusControllerAction<BridgeStatusAction.WIPE_BRIDGE_STATUS>;
|
211
|
+
export type BridgeStatusControllerResetStateAction = BridgeStatusControllerAction<BridgeStatusAction.RESET_STATE>;
|
212
|
+
export type BridgeStatusControllerActions = BridgeStatusControllerStartPollingForBridgeTxStatusAction | BridgeStatusControllerWipeBridgeStatusAction | BridgeStatusControllerResetStateAction | BridgeStatusControllerGetStateAction;
|
213
|
+
export type BridgeStatusControllerStateChangeEvent = ControllerStateChangeEvent<typeof BRIDGE_STATUS_CONTROLLER_NAME, BridgeStatusControllerState>;
|
214
|
+
export type BridgeStatusControllerBridgeTransactionCompleteEvent = {
|
215
|
+
type: `${typeof BRIDGE_STATUS_CONTROLLER_NAME}:bridgeTransactionComplete`;
|
216
|
+
payload: [{
|
217
|
+
bridgeHistoryItem: BridgeHistoryItem;
|
218
|
+
}];
|
219
|
+
};
|
220
|
+
export type BridgeStatusControllerBridgeTransactionFailedEvent = {
|
221
|
+
type: `${typeof BRIDGE_STATUS_CONTROLLER_NAME}:bridgeTransactionFailed`;
|
222
|
+
payload: [{
|
223
|
+
bridgeHistoryItem: BridgeHistoryItem;
|
224
|
+
}];
|
225
|
+
};
|
226
|
+
export type BridgeStatusControllerEvents = BridgeStatusControllerStateChangeEvent | BridgeStatusControllerBridgeTransactionCompleteEvent | BridgeStatusControllerBridgeTransactionFailedEvent;
|
227
|
+
/**
|
228
|
+
* The external actions available to the BridgeStatusController.
|
229
|
+
*/
|
230
|
+
type AllowedActions = NetworkControllerFindNetworkClientIdByChainIdAction | NetworkControllerGetStateAction | NetworkControllerGetNetworkClientByIdAction | AccountsControllerGetSelectedAccountAction | TransactionControllerGetStateAction;
|
231
|
+
/**
|
232
|
+
* The external events available to the BridgeStatusController.
|
233
|
+
*/
|
234
|
+
type AllowedEvents = never;
|
235
|
+
/**
|
236
|
+
* The messenger for the BridgeStatusController.
|
237
|
+
*/
|
238
|
+
export type BridgeStatusControllerMessenger = RestrictedMessenger<typeof BRIDGE_STATUS_CONTROLLER_NAME, BridgeStatusControllerActions | AllowedActions, BridgeStatusControllerEvents | AllowedEvents, AllowedActions['type'], AllowedEvents['type']>;
|
239
|
+
export {};
|
240
|
+
//# sourceMappingURL=types.d.mts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.mjs
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
export var StatusTypes;
|
2
|
+
(function (StatusTypes) {
|
3
|
+
StatusTypes["UNKNOWN"] = "UNKNOWN";
|
4
|
+
StatusTypes["FAILED"] = "FAILED";
|
5
|
+
StatusTypes["PENDING"] = "PENDING";
|
6
|
+
StatusTypes["COMPLETE"] = "COMPLETE";
|
7
|
+
})(StatusTypes || (StatusTypes = {}));
|
8
|
+
export var BridgeId;
|
9
|
+
(function (BridgeId) {
|
10
|
+
BridgeId["HOP"] = "hop";
|
11
|
+
BridgeId["CELER"] = "celer";
|
12
|
+
BridgeId["CELERCIRCLE"] = "celercircle";
|
13
|
+
BridgeId["CONNEXT"] = "connext";
|
14
|
+
BridgeId["POLYGON"] = "polygon";
|
15
|
+
BridgeId["AVALANCHE"] = "avalanche";
|
16
|
+
BridgeId["MULTICHAIN"] = "multichain";
|
17
|
+
BridgeId["AXELAR"] = "axelar";
|
18
|
+
BridgeId["ACROSS"] = "across";
|
19
|
+
BridgeId["STARGATE"] = "stargate";
|
20
|
+
})(BridgeId || (BridgeId = {}));
|
21
|
+
export var FeeType;
|
22
|
+
(function (FeeType) {
|
23
|
+
FeeType["METABRIDGE"] = "metabridge";
|
24
|
+
FeeType["REFUEL"] = "refuel";
|
25
|
+
})(FeeType || (FeeType = {}));
|
26
|
+
export var ActionTypes;
|
27
|
+
(function (ActionTypes) {
|
28
|
+
ActionTypes["BRIDGE"] = "bridge";
|
29
|
+
ActionTypes["SWAP"] = "swap";
|
30
|
+
ActionTypes["REFUEL"] = "refuel";
|
31
|
+
})(ActionTypes || (ActionTypes = {}));
|
32
|
+
export var BridgeStatusAction;
|
33
|
+
(function (BridgeStatusAction) {
|
34
|
+
BridgeStatusAction["START_POLLING_FOR_BRIDGE_TX_STATUS"] = "startPollingForBridgeTxStatus";
|
35
|
+
BridgeStatusAction["WIPE_BRIDGE_STATUS"] = "wipeBridgeStatus";
|
36
|
+
BridgeStatusAction["GET_STATE"] = "getState";
|
37
|
+
BridgeStatusAction["RESET_STATE"] = "resetState";
|
38
|
+
})(BridgeStatusAction || (BridgeStatusAction = {}));
|
39
|
+
//# sourceMappingURL=types.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAgCA,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;IACnB,oCAAqB,CAAA;AACvB,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AA2DD,MAAM,CAAN,IAAY,QAWX;AAXD,WAAY,QAAQ;IAClB,uBAAW,CAAA;IACX,2BAAe,CAAA;IACf,uCAA2B,CAAA;IAC3B,+BAAmB,CAAA;IACnB,+BAAmB,CAAA;IACnB,mCAAuB,CAAA;IACvB,qCAAyB,CAAA;IACzB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;AACvB,CAAC,EAXW,QAAQ,KAAR,QAAQ,QAWnB;AAED,MAAM,CAAN,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,oCAAyB,CAAA;IACzB,4BAAiB,CAAA;AACnB,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB;AAaD,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,4BAAa,CAAA;IACb,gCAAiB,CAAA;AACnB,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAoDD,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,0FAAoE,CAAA;IACpE,6DAAuC,CAAA;IACvC,4CAAsB,CAAA;IACtB,gDAA0B,CAAA;AAC5B,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B","sourcesContent":["import type { AccountsControllerGetSelectedAccountAction } from '@metamask/accounts-controller';\nimport type {\n ControllerGetStateAction,\n ControllerStateChangeEvent,\n RestrictedMessenger,\n} from '@metamask/base-controller';\nimport type {\n ChainId,\n Quote,\n QuoteMetadata,\n QuoteResponse,\n} from '@metamask/bridge-controller';\nimport type {\n NetworkControllerFindNetworkClientIdByChainIdAction,\n NetworkControllerGetNetworkClientByIdAction,\n NetworkControllerGetStateAction,\n} from '@metamask/network-controller';\nimport type { TransactionControllerGetStateAction } from '@metamask/transaction-controller';\nimport type { TransactionMeta } from '@metamask/transaction-controller';\n\nimport type { BridgeStatusController } from './bridge-status-controller';\nimport type { BRIDGE_STATUS_CONTROLLER_NAME } from './constants';\n\n// All fields need to be types not interfaces, same with their children fields\n// o/w you get a type error\n\nexport type FetchFunction = (\n input: RequestInfo | URL,\n init?: RequestInit,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) => Promise<any>;\n\nexport enum StatusTypes {\n UNKNOWN = 'UNKNOWN',\n FAILED = 'FAILED',\n PENDING = 'PENDING',\n COMPLETE = 'COMPLETE',\n}\n\nexport type StatusRequest = {\n bridgeId: string; // lifi, socket, squid\n srcTxHash?: string; // lifi, socket, squid, might be undefined for STX\n bridge: string; // lifi, socket, squid\n srcChainId: ChainId; // lifi, socket, squid\n destChainId: ChainId; // lifi, socket, squid\n quote?: Quote; // squid\n refuel?: boolean; // lifi\n};\n\nexport type StatusRequestDto = Omit<\n StatusRequest,\n 'quote' | 'srcChainId' | 'destChainId' | 'refuel'\n> & {\n srcChainId: string; // lifi, socket, squid\n destChainId: string; // lifi, socket, squid\n requestId?: string;\n refuel?: string; // lifi\n};\n\nexport type StatusRequestWithSrcTxHash = StatusRequest & {\n srcTxHash: string;\n};\n\nexport type Asset = {\n chainId: ChainId;\n address: string;\n symbol: string;\n name: string;\n decimals: number;\n icon?: string | null;\n};\n\nexport type SrcChainStatus = {\n chainId: ChainId;\n /**\n * The txHash of the transaction on the source chain.\n * This might be undefined for smart transactions (STX)\n */\n txHash?: string;\n /**\n * The atomic amount of the token sent minus fees on the source chain\n */\n amount?: string;\n token?: Record<string, never> | Asset;\n};\n\nexport type DestChainStatus = {\n chainId: ChainId;\n txHash?: string;\n /**\n * The atomic amount of the token received on the destination chain\n */\n amount?: string;\n token?: Record<string, never> | Asset;\n};\n\nexport enum BridgeId {\n HOP = 'hop',\n CELER = 'celer',\n CELERCIRCLE = 'celercircle',\n CONNEXT = 'connext',\n POLYGON = 'polygon',\n AVALANCHE = 'avalanche',\n MULTICHAIN = 'multichain',\n AXELAR = 'axelar',\n ACROSS = 'across',\n STARGATE = 'stargate',\n}\n\nexport enum FeeType {\n METABRIDGE = 'metabridge',\n REFUEL = 'refuel',\n}\n\nexport type FeeData = {\n amount: string;\n asset: Asset;\n};\n\nexport type Protocol = {\n displayName?: string;\n icon?: string;\n name?: string; // for legacy quotes\n};\n\nexport enum ActionTypes {\n BRIDGE = 'bridge',\n SWAP = 'swap',\n REFUEL = 'refuel',\n}\n\nexport type Step = {\n action: ActionTypes;\n srcChainId: ChainId;\n destChainId?: ChainId;\n srcAsset: Asset;\n destAsset: Asset;\n srcAmount: string;\n destAmount: string;\n protocol: Protocol;\n};\n\nexport type StatusResponse = {\n status: StatusTypes;\n srcChain: SrcChainStatus;\n destChain?: DestChainStatus;\n bridge?: BridgeId;\n isExpectedToken?: boolean;\n isUnrecognizedRouterAddress?: boolean;\n refuel?: RefuelStatusResponse;\n};\n\nexport type RefuelStatusResponse = object & StatusResponse;\n\nexport type RefuelData = object & Step;\n\nexport type BridgeHistoryItem = {\n txMetaId: string; // Need this to handle STX that might not have a txHash immediately\n quote: Quote;\n status: StatusResponse;\n startTime?: number; // timestamp in ms\n estimatedProcessingTimeInSeconds: number;\n slippagePercentage: number;\n completionTime?: number; // timestamp in ms\n pricingData?: {\n /**\n * From QuoteMetadata.sentAmount.amount, the actual amount sent by user in non-atomic decimal form\n */\n amountSent: string;\n amountSentInUsd?: string;\n quotedGasInUsd?: string; // from QuoteMetadata.gasFee.usd\n quotedReturnInUsd?: string; // from QuoteMetadata.toTokenAmount.usd\n quotedRefuelSrcAmountInUsd?: string;\n quotedRefuelDestAmountInUsd?: string;\n };\n initialDestAssetBalance?: string;\n targetContractAddress?: string;\n account: string;\n hasApprovalTx: boolean;\n};\n\nexport enum BridgeStatusAction {\n START_POLLING_FOR_BRIDGE_TX_STATUS = 'startPollingForBridgeTxStatus',\n WIPE_BRIDGE_STATUS = 'wipeBridgeStatus',\n GET_STATE = 'getState',\n RESET_STATE = 'resetState',\n}\n\nexport type TokenAmountValuesSerialized = {\n amount: string;\n valueInCurrency: string | null;\n usd: string | null;\n};\n\nexport type QuoteMetadataSerialized = {\n gasFee: TokenAmountValuesSerialized;\n /**\n * The total network fee for the bridge transaction\n * estimatedGasFees + relayerFees\n */\n totalNetworkFee: TokenAmountValuesSerialized;\n /**\n * The total max network fee for the bridge transaction\n * maxGasFees + relayerFees\n */\n totalMaxNetworkFee: TokenAmountValuesSerialized;\n toTokenAmount: TokenAmountValuesSerialized;\n /**\n * The adjusted return for the bridge transaction\n * destTokenAmount - totalNetworkFee\n */\n adjustedReturn: Omit<TokenAmountValuesSerialized, 'amount'>;\n /**\n * The actual amount sent by user in non-atomic decimal form\n * srcTokenAmount + metabridgeFee\n */\n sentAmount: TokenAmountValuesSerialized;\n swapRate: string; // destTokenAmount / sentAmount\n /**\n * The cost of the bridge transaction\n * sentAmount - adjustedReturn\n */\n cost: Omit<TokenAmountValuesSerialized, 'amount'>;\n};\n\nexport type StartPollingForBridgeTxStatusArgs = {\n bridgeTxMeta: TransactionMeta;\n statusRequest: StatusRequest;\n quoteResponse: QuoteResponse & QuoteMetadata;\n startTime?: BridgeHistoryItem['startTime'];\n slippagePercentage: BridgeHistoryItem['slippagePercentage'];\n initialDestAssetBalance?: BridgeHistoryItem['initialDestAssetBalance'];\n targetContractAddress?: BridgeHistoryItem['targetContractAddress'];\n};\n\n/**\n * Chrome: The BigNumber values are automatically serialized to strings when sent to the background\n * Firefox: The BigNumber values are not serialized to strings when sent to the background,\n * so we force the ui to do it manually, by using StartPollingForBridgeTxStatusArgsSerialized type on the startPollingForBridgeTxStatus action\n */\nexport type StartPollingForBridgeTxStatusArgsSerialized = Omit<\n StartPollingForBridgeTxStatusArgs,\n 'quoteResponse'\n> & {\n quoteResponse: QuoteResponse & QuoteMetadataSerialized;\n};\n\nexport type SourceChainTxMetaId = string;\n\nexport type BridgeStatusState = {\n txHistory: Record<SourceChainTxMetaId, BridgeHistoryItem>;\n};\n\nexport type BridgeStatusControllerState = {\n bridgeStatusState: BridgeStatusState;\n};\n\n// Actions\ntype BridgeStatusControllerAction<\n FunctionName extends keyof BridgeStatusController,\n> = {\n type: `${typeof BRIDGE_STATUS_CONTROLLER_NAME}:${FunctionName}`;\n handler: BridgeStatusController[FunctionName];\n};\n\nexport type BridgeStatusControllerGetStateAction = ControllerGetStateAction<\n typeof BRIDGE_STATUS_CONTROLLER_NAME,\n BridgeStatusControllerState\n>;\n\n// Maps to BridgeController function names\nexport type BridgeStatusControllerStartPollingForBridgeTxStatusAction =\n BridgeStatusControllerAction<BridgeStatusAction.START_POLLING_FOR_BRIDGE_TX_STATUS>;\n\nexport type BridgeStatusControllerWipeBridgeStatusAction =\n BridgeStatusControllerAction<BridgeStatusAction.WIPE_BRIDGE_STATUS>;\n\nexport type BridgeStatusControllerResetStateAction =\n BridgeStatusControllerAction<BridgeStatusAction.RESET_STATE>;\n\nexport type BridgeStatusControllerActions =\n | BridgeStatusControllerStartPollingForBridgeTxStatusAction\n | BridgeStatusControllerWipeBridgeStatusAction\n | BridgeStatusControllerResetStateAction\n | BridgeStatusControllerGetStateAction;\n\n// Events\nexport type BridgeStatusControllerStateChangeEvent = ControllerStateChangeEvent<\n typeof BRIDGE_STATUS_CONTROLLER_NAME,\n BridgeStatusControllerState\n>;\n\nexport type BridgeStatusControllerBridgeTransactionCompleteEvent = {\n type: `${typeof BRIDGE_STATUS_CONTROLLER_NAME}:bridgeTransactionComplete`;\n payload: [{ bridgeHistoryItem: BridgeHistoryItem }];\n};\n\nexport type BridgeStatusControllerBridgeTransactionFailedEvent = {\n type: `${typeof BRIDGE_STATUS_CONTROLLER_NAME}:bridgeTransactionFailed`;\n payload: [{ bridgeHistoryItem: BridgeHistoryItem }];\n};\n\nexport type BridgeStatusControllerEvents =\n | BridgeStatusControllerStateChangeEvent\n | BridgeStatusControllerBridgeTransactionCompleteEvent\n | BridgeStatusControllerBridgeTransactionFailedEvent;\n\n/**\n * The external actions available to the BridgeStatusController.\n */\ntype AllowedActions =\n | NetworkControllerFindNetworkClientIdByChainIdAction\n | NetworkControllerGetStateAction\n | NetworkControllerGetNetworkClientByIdAction\n | AccountsControllerGetSelectedAccountAction\n | TransactionControllerGetStateAction;\n\n/**\n * The external events available to the BridgeStatusController.\n */\ntype AllowedEvents = never;\n\n/**\n * The messenger for the BridgeStatusController.\n */\nexport type BridgeStatusControllerMessenger = RestrictedMessenger<\n typeof BRIDGE_STATUS_CONTROLLER_NAME,\n BridgeStatusControllerActions | AllowedActions,\n BridgeStatusControllerEvents | AllowedEvents,\n AllowedActions['type'],\n AllowedEvents['type']\n>;\n"]}
|
@@ -0,0 +1,53 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.getStatusRequestWithSrcTxHash = exports.fetchBridgeTxStatus = exports.getStatusRequestDto = exports.BRIDGE_STATUS_BASE_URL = exports.getClientIdHeader = void 0;
|
4
|
+
const bridge_controller_1 = require("@metamask/bridge-controller");
|
5
|
+
const validators_1 = require("./validators.cjs");
|
6
|
+
const getClientIdHeader = (clientId) => ({
|
7
|
+
'X-Client-Id': clientId,
|
8
|
+
});
|
9
|
+
exports.getClientIdHeader = getClientIdHeader;
|
10
|
+
exports.BRIDGE_STATUS_BASE_URL = `${(0, bridge_controller_1.getBridgeApiBaseUrl)()}/getTxStatus`;
|
11
|
+
const getStatusRequestDto = (statusRequest) => {
|
12
|
+
const { quote, ...statusRequestNoQuote } = statusRequest;
|
13
|
+
const statusRequestNoQuoteFormatted = Object.fromEntries(Object.entries(statusRequestNoQuote).map(([key, value]) => [
|
14
|
+
key,
|
15
|
+
value.toString(),
|
16
|
+
]));
|
17
|
+
const requestId = quote?.requestId ? { requestId: quote.requestId } : {};
|
18
|
+
return {
|
19
|
+
...statusRequestNoQuoteFormatted,
|
20
|
+
...requestId,
|
21
|
+
};
|
22
|
+
};
|
23
|
+
exports.getStatusRequestDto = getStatusRequestDto;
|
24
|
+
const fetchBridgeTxStatus = async (statusRequest, clientId, fetchFn) => {
|
25
|
+
const statusRequestDto = (0, exports.getStatusRequestDto)(statusRequest);
|
26
|
+
const params = new URLSearchParams(statusRequestDto);
|
27
|
+
// Fetch
|
28
|
+
const url = `${exports.BRIDGE_STATUS_BASE_URL}?${params.toString()}`;
|
29
|
+
const rawTxStatus = await fetchFn(url, {
|
30
|
+
headers: (0, exports.getClientIdHeader)(clientId),
|
31
|
+
});
|
32
|
+
// Validate
|
33
|
+
const isValid = (0, validators_1.validateResponse)(validators_1.validators, rawTxStatus, exports.BRIDGE_STATUS_BASE_URL);
|
34
|
+
if (!isValid) {
|
35
|
+
throw new Error('Invalid response from bridge');
|
36
|
+
}
|
37
|
+
// Return
|
38
|
+
return rawTxStatus;
|
39
|
+
};
|
40
|
+
exports.fetchBridgeTxStatus = fetchBridgeTxStatus;
|
41
|
+
const getStatusRequestWithSrcTxHash = (quote, srcTxHash) => {
|
42
|
+
return {
|
43
|
+
bridgeId: quote.bridgeId,
|
44
|
+
srcTxHash,
|
45
|
+
bridge: quote.bridges[0],
|
46
|
+
srcChainId: quote.srcChainId,
|
47
|
+
destChainId: quote.destChainId,
|
48
|
+
quote,
|
49
|
+
refuel: Boolean(quote.refuel),
|
50
|
+
};
|
51
|
+
};
|
52
|
+
exports.getStatusRequestWithSrcTxHash = getStatusRequestWithSrcTxHash;
|
53
|
+
//# sourceMappingURL=bridge-status.cjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"bridge-status.cjs","sourceRoot":"","sources":["../../src/utils/bridge-status.ts"],"names":[],"mappings":";;;AACA,mEAAkE;AAElE,iDAA4D;AAQrD,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC;IACtD,aAAa,EAAE,QAAQ;CACxB,CAAC,CAAC;AAFU,QAAA,iBAAiB,qBAE3B;AAEU,QAAA,sBAAsB,GAAG,GAAG,IAAA,uCAAmB,GAAE,cAAc,CAAC;AAEtE,MAAM,mBAAmB,GAAG,CACjC,aAAyC,EACvB,EAAE;IACpB,MAAM,EAAE,KAAK,EAAE,GAAG,oBAAoB,EAAE,GAAG,aAAa,CAAC;IAEzD,MAAM,6BAA6B,GAAG,MAAM,CAAC,WAAW,CACtD,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QACzD,GAAG;QACH,KAAK,CAAC,QAAQ,EAAE;KACjB,CAAC,CAC+C,CAAC;IAEpD,MAAM,SAAS,GACb,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzD,OAAO;QACL,GAAG,6BAA6B;QAChC,GAAG,SAAS;KACb,CAAC;AACJ,CAAC,CAAC;AAnBW,QAAA,mBAAmB,uBAmB9B;AAEK,MAAM,mBAAmB,GAAG,KAAK,EACtC,aAAyC,EACzC,QAAgB,EAChB,OAAsB,EACtB,EAAE;IACF,MAAM,gBAAgB,GAAG,IAAA,2BAAmB,EAAC,aAAa,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAErD,QAAQ;IACR,MAAM,GAAG,GAAG,GAAG,8BAAsB,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;IAE7D,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE;QACrC,OAAO,EAAE,IAAA,yBAAiB,EAAC,QAAQ,CAAC;KACrC,CAAC,CAAC;IAEH,WAAW;IACX,MAAM,OAAO,GAAG,IAAA,6BAAgB,EAC9B,uBAAU,EACV,WAAW,EACX,8BAAsB,CACvB,CAAC;IACF,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;KACjD;IAED,SAAS;IACT,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AA3BW,QAAA,mBAAmB,uBA2B9B;AAEK,MAAM,6BAA6B,GAAG,CAC3C,KAAY,EACZ,SAAiB,EACW,EAAE;IAC9B,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS;QACT,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACxB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,KAAK;QACL,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;KAC9B,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,6BAA6B,iCAaxC","sourcesContent":["import type { Quote } from '@metamask/bridge-controller';\nimport { getBridgeApiBaseUrl } from '@metamask/bridge-controller';\n\nimport { validateResponse, validators } from './validators';\nimport type {\n StatusResponse,\n StatusRequestWithSrcTxHash,\n StatusRequestDto,\n FetchFunction,\n} from '../types';\n\nexport const getClientIdHeader = (clientId: string) => ({\n 'X-Client-Id': clientId,\n});\n\nexport const BRIDGE_STATUS_BASE_URL = `${getBridgeApiBaseUrl()}/getTxStatus`;\n\nexport const getStatusRequestDto = (\n statusRequest: StatusRequestWithSrcTxHash,\n): StatusRequestDto => {\n const { quote, ...statusRequestNoQuote } = statusRequest;\n\n const statusRequestNoQuoteFormatted = Object.fromEntries(\n Object.entries(statusRequestNoQuote).map(([key, value]) => [\n key,\n value.toString(),\n ]),\n ) as unknown as Omit<StatusRequestDto, 'requestId'>;\n\n const requestId: { requestId: string } | Record<string, never> =\n quote?.requestId ? { requestId: quote.requestId } : {};\n\n return {\n ...statusRequestNoQuoteFormatted,\n ...requestId,\n };\n};\n\nexport const fetchBridgeTxStatus = async (\n statusRequest: StatusRequestWithSrcTxHash,\n clientId: string,\n fetchFn: FetchFunction,\n) => {\n const statusRequestDto = getStatusRequestDto(statusRequest);\n const params = new URLSearchParams(statusRequestDto);\n\n // Fetch\n const url = `${BRIDGE_STATUS_BASE_URL}?${params.toString()}`;\n\n const rawTxStatus = await fetchFn(url, {\n headers: getClientIdHeader(clientId),\n });\n\n // Validate\n const isValid = validateResponse<StatusResponse, unknown>(\n validators,\n rawTxStatus,\n BRIDGE_STATUS_BASE_URL,\n );\n if (!isValid) {\n throw new Error('Invalid response from bridge');\n }\n\n // Return\n return rawTxStatus;\n};\n\nexport const getStatusRequestWithSrcTxHash = (\n quote: Quote,\n srcTxHash: string,\n): StatusRequestWithSrcTxHash => {\n return {\n bridgeId: quote.bridgeId,\n srcTxHash,\n bridge: quote.bridges[0],\n srcChainId: quote.srcChainId,\n destChainId: quote.destChainId,\n quote,\n refuel: Boolean(quote.refuel),\n };\n};\n"]}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import type { Quote } from "@metamask/bridge-controller";
|
2
|
+
import type { StatusResponse, StatusRequestWithSrcTxHash, StatusRequestDto, FetchFunction } from "../types.cjs";
|
3
|
+
export declare const getClientIdHeader: (clientId: string) => {
|
4
|
+
'X-Client-Id': string;
|
5
|
+
};
|
6
|
+
export declare const BRIDGE_STATUS_BASE_URL: string;
|
7
|
+
export declare const getStatusRequestDto: (statusRequest: StatusRequestWithSrcTxHash) => StatusRequestDto;
|
8
|
+
export declare const fetchBridgeTxStatus: (statusRequest: StatusRequestWithSrcTxHash, clientId: string, fetchFn: FetchFunction) => Promise<StatusResponse>;
|
9
|
+
export declare const getStatusRequestWithSrcTxHash: (quote: Quote, srcTxHash: string) => StatusRequestWithSrcTxHash;
|
10
|
+
//# sourceMappingURL=bridge-status.d.cts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"bridge-status.d.cts","sourceRoot":"","sources":["../../src/utils/bridge-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,oCAAoC;AAIzD,OAAO,KAAK,EACV,cAAc,EACd,0BAA0B,EAC1B,gBAAgB,EAChB,aAAa,EACd,qBAAiB;AAElB,eAAO,MAAM,iBAAiB,aAAc,MAAM;;CAEhD,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAAyC,CAAC;AAE7E,eAAO,MAAM,mBAAmB,kBACf,0BAA0B,KACxC,gBAiBF,CAAC;AAEF,eAAO,MAAM,mBAAmB,kBACf,0BAA0B,YAC/B,MAAM,WACP,aAAa,4BAwBvB,CAAC;AAEF,eAAO,MAAM,6BAA6B,UACjC,KAAK,aACD,MAAM,KAChB,0BAUF,CAAC"}
|