@metamask-previews/bridge-status-controller 44.0.0-preview-b896289e → 45.0.0-preview-6c94ae59
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 -4
- package/dist/bridge-status-controller.cjs +47 -44
- package/dist/bridge-status-controller.cjs.map +1 -1
- package/dist/bridge-status-controller.d.cts +3 -3
- package/dist/bridge-status-controller.d.cts.map +1 -1
- package/dist/bridge-status-controller.d.mts +3 -3
- package/dist/bridge-status-controller.d.mts.map +1 -1
- package/dist/bridge-status-controller.mjs +48 -45
- package/dist/bridge-status-controller.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +2 -3
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +2 -3
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/snaps.cjs +35 -0
- package/dist/utils/snaps.cjs.map +1 -0
- package/dist/utils/snaps.d.cts +29 -0
- package/dist/utils/snaps.d.cts.map +1 -0
- package/dist/utils/snaps.d.mts +29 -0
- package/dist/utils/snaps.d.mts.map +1 -0
- package/dist/utils/snaps.mjs +31 -0
- package/dist/utils/snaps.mjs.map +1 -0
- package/dist/utils/transaction.cjs +69 -38
- package/dist/utils/transaction.cjs.map +1 -1
- package/dist/utils/transaction.d.cts +37 -27
- package/dist/utils/transaction.d.cts.map +1 -1
- package/dist/utils/transaction.d.mts +37 -27
- package/dist/utils/transaction.d.mts.map +1 -1
- package/dist/utils/transaction.mjs +68 -37
- package/dist/utils/transaction.mjs.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -7,12 +7,47 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
## [45.0.0]
|
|
11
|
+
|
|
12
|
+
### Uncategorized
|
|
13
|
+
|
|
14
|
+
- Release/574.0.0 ([#6680](https://github.com/MetaMask/core/pull/6680))
|
|
15
|
+
|
|
16
|
+
### Added
|
|
11
17
|
|
|
12
|
-
-
|
|
13
|
-
-
|
|
18
|
+
- Add support for Bitcoin bridge transactions ([#6454](https://github.com/MetaMask/core/pull/6454))
|
|
19
|
+
- Handle Bitcoin PSBT (Partially Signed Bitcoin Transaction) format in trade data
|
|
20
|
+
- Support Bitcoin transaction submission through unified Snap interface
|
|
21
|
+
- Add Bitcoin-specific transaction handling in `#handleNonEvmTx` method
|
|
22
|
+
- Support extraction of `unsignedPsbtBase64` from trade data for Bitcoin transactions
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
|
|
26
|
+
- Update transaction submission to use new unified Snap interface for all non-EVM chains ([#6454](https://github.com/MetaMask/core/pull/6454))
|
|
27
|
+
- Replace `signAndSendTransactionWithoutConfirmation` with `ClientRequest:signAndSendTransaction` method
|
|
28
|
+
- Update response handling to support new `transactionId` format from unified interface
|
|
29
|
+
- Support multiple response formats: string, `{ transactionId }`, `{ result: { signature } }`, and `{ signature }`
|
|
30
|
+
- Maintain backward compatibility with legacy response formats
|
|
31
|
+
- Rename transaction handling functions for clarity ([#6454](https://github.com/MetaMask/core/pull/6454))
|
|
32
|
+
- Rename `handleSolanaTxResponse` to `handleNonEvmTxResponse` to reflect support for all non-EVM chains
|
|
33
|
+
- Rename `#handleSolanaTx` to `#handleNonEvmTx` in BridgeStatusController
|
|
34
|
+
- Export `handleSolanaTxResponse` as an alias for backward compatibility (deprecated)
|
|
35
|
+
- Update transaction detection logic to identify non-EVM transactions ([#6454](https://github.com/MetaMask/core/pull/6454))
|
|
36
|
+
- Check for Bitcoin PSBT format (`unsignedPsbtBase64` in trade object) alongside string trade data
|
|
37
|
+
- Use `isNonEvmChainId` for determining non-EVM transaction handling
|
|
38
|
+
- Update chain ID handling for non-EVM chains ([#6454](https://github.com/MetaMask/core/pull/6454))
|
|
39
|
+
- Add fallback chain ID (`0x0`) when CAIP format can't be converted to hex for source chains
|
|
40
|
+
- Add fallback chain ID (`0x1`) for non-EVM destination chains
|
|
41
|
+
- Update `getClientRequest` to create proper requests for all non-EVM chains ([#6454](https://github.com/MetaMask/core/pull/6454))
|
|
42
|
+
- Use `formatChainIdToCaip` to get proper scope for each chain
|
|
43
|
+
- Extract transaction data from either string or PSBT object format
|
|
44
|
+
- Remove dependency on `@metamask/keyring-api` ([#6454](https://github.com/MetaMask/core/pull/6454))
|
|
14
45
|
- Refactor `handleLineaDelay` to `handleApprovalDelay` for improved abstraction and add support for Base chain by using an array and `includes` for chain ID checks ([#6674](https://github.com/MetaMask/core/pull/6674))
|
|
15
46
|
|
|
47
|
+
### Removed
|
|
48
|
+
|
|
49
|
+
- Remove direct dependency on `@metamask/keyring-api` - no longer needed with unified Snap interface ([#6454](https://github.com/MetaMask/core/pull/6454))
|
|
50
|
+
|
|
16
51
|
## [44.0.0]
|
|
17
52
|
|
|
18
53
|
### Changed
|
|
@@ -564,7 +599,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
564
599
|
|
|
565
600
|
- Initial release ([#5317](https://github.com/MetaMask/core/pull/5317))
|
|
566
601
|
|
|
567
|
-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/bridge-status-controller@
|
|
602
|
+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/bridge-status-controller@45.0.0...HEAD
|
|
603
|
+
[45.0.0]: https://github.com/MetaMask/core/compare/@metamask/bridge-status-controller@44.0.0...@metamask/bridge-status-controller@45.0.0
|
|
568
604
|
[44.0.0]: https://github.com/MetaMask/core/compare/@metamask/bridge-status-controller@43.1.0...@metamask/bridge-status-controller@44.0.0
|
|
569
605
|
[43.1.0]: https://github.com/MetaMask/core/compare/@metamask/bridge-status-controller@43.0.0...@metamask/bridge-status-controller@43.1.0
|
|
570
606
|
[43.0.0]: https://github.com/MetaMask/core/compare/@metamask/bridge-status-controller@42.0.0...@metamask/bridge-status-controller@43.0.0
|
|
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
10
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
11
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
12
|
};
|
|
13
|
-
var _BridgeStatusController_instances, _BridgeStatusController_pollingTokensByTxMetaId, _BridgeStatusController_clientId, _BridgeStatusController_fetchFn, _BridgeStatusController_config, _BridgeStatusController_addTransactionFn, _BridgeStatusController_addTransactionBatchFn, _BridgeStatusController_updateTransactionFn, _BridgeStatusController_estimateGasFeeFn, _BridgeStatusController_trace, _BridgeStatusController_markTxAsFailed, _BridgeStatusController_restartPollingForIncompleteHistoryItems, _BridgeStatusController_addTxToHistory, _BridgeStatusController_startPollingForTxId, _BridgeStatusController_getMultichainSelectedAccount, _BridgeStatusController_handleFetchFailure, _BridgeStatusController_fetchBridgeTxStatus, _BridgeStatusController_getSrcTxHash, _BridgeStatusController_updateSrcTxHash, _BridgeStatusController_wipeBridgeStatusByChainId,
|
|
13
|
+
var _BridgeStatusController_instances, _BridgeStatusController_pollingTokensByTxMetaId, _BridgeStatusController_clientId, _BridgeStatusController_fetchFn, _BridgeStatusController_config, _BridgeStatusController_addTransactionFn, _BridgeStatusController_addTransactionBatchFn, _BridgeStatusController_updateTransactionFn, _BridgeStatusController_estimateGasFeeFn, _BridgeStatusController_trace, _BridgeStatusController_markTxAsFailed, _BridgeStatusController_restartPollingForIncompleteHistoryItems, _BridgeStatusController_addTxToHistory, _BridgeStatusController_startPollingForTxId, _BridgeStatusController_getMultichainSelectedAccount, _BridgeStatusController_handleFetchFailure, _BridgeStatusController_fetchBridgeTxStatus, _BridgeStatusController_getSrcTxHash, _BridgeStatusController_updateSrcTxHash, _BridgeStatusController_wipeBridgeStatusByChainId, _BridgeStatusController_handleNonEvmTx, _BridgeStatusController_waitForHashAndReturnFinalTxMeta, _BridgeStatusController_handleApprovalTx, _BridgeStatusController_handleEvmTransaction, _BridgeStatusController_handleUSDTAllowanceReset, _BridgeStatusController_calculateGasFees, _BridgeStatusController_handleEvmTransactionBatch, _BridgeStatusController_trackUnifiedSwapBridgeEvent;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.BridgeStatusController = void 0;
|
|
16
16
|
const bridge_controller_1 = require("@metamask/bridge-controller");
|
|
@@ -24,14 +24,13 @@ const bridge_status_1 = require("./utils/bridge-status.cjs");
|
|
|
24
24
|
const gas_1 = require("./utils/gas.cjs");
|
|
25
25
|
const metrics_1 = require("./utils/metrics.cjs");
|
|
26
26
|
const transaction_1 = require("./utils/transaction.cjs");
|
|
27
|
-
const transaction_2 = require("./utils/transaction.cjs");
|
|
28
27
|
const metadata = {
|
|
29
28
|
// We want to persist the bridge status state so that we can show the proper data for the Activity list
|
|
30
29
|
// basically match the behavior of TransactionController
|
|
31
30
|
txHistory: {
|
|
32
31
|
includeInStateLogs: true,
|
|
33
32
|
persist: true,
|
|
34
|
-
|
|
33
|
+
anonymous: false,
|
|
35
34
|
usedInUi: true,
|
|
36
35
|
},
|
|
37
36
|
};
|
|
@@ -82,8 +81,8 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
82
81
|
});
|
|
83
82
|
}
|
|
84
83
|
else {
|
|
85
|
-
const { selectedNetworkClientId } = this.
|
|
86
|
-
const selectedNetworkClient = this.
|
|
84
|
+
const { selectedNetworkClientId } = this.messagingSystem.call('NetworkController:getState');
|
|
85
|
+
const selectedNetworkClient = this.messagingSystem.call('NetworkController:getNetworkClientById', selectedNetworkClientId);
|
|
87
86
|
const selectedChainId = selectedNetworkClient.configuration.chainId;
|
|
88
87
|
__classPrivateFieldGet(this, _BridgeStatusController_wipeBridgeStatusByChainId, "f").call(this, address, selectedChainId);
|
|
89
88
|
}
|
|
@@ -350,7 +349,7 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
350
349
|
return srcTxHash;
|
|
351
350
|
}
|
|
352
351
|
// Look up in TransactionController if txMeta has been updated with the srcTxHash
|
|
353
|
-
const txControllerState = this.
|
|
352
|
+
const txControllerState = this.messagingSystem.call('TransactionController:getState');
|
|
354
353
|
const txMeta = txControllerState.transactions.find((tx) => tx.id === bridgeTxMetaId);
|
|
355
354
|
return txMeta?.hash;
|
|
356
355
|
});
|
|
@@ -391,7 +390,8 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
391
390
|
*******************************************************
|
|
392
391
|
*/
|
|
393
392
|
/**
|
|
394
|
-
* Submits the transaction to the snap using the
|
|
393
|
+
* Submits the transaction to the snap using the new unified ClientRequest interface
|
|
394
|
+
* Works for all non-EVM chains (Solana, BTC, Tron)
|
|
395
395
|
* This adds an approval tx to the ApprovalsController in the background
|
|
396
396
|
* The client needs to handle the approval tx by redirecting to the confirmation page with the approvalTxId in the URL
|
|
397
397
|
*
|
|
@@ -400,21 +400,20 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
400
400
|
* @param selectedAccount - The account to submit the transaction for
|
|
401
401
|
* @returns The transaction meta
|
|
402
402
|
*/
|
|
403
|
-
|
|
403
|
+
_BridgeStatusController_handleNonEvmTx.set(this, async (quoteResponse, selectedAccount) => {
|
|
404
404
|
if (!selectedAccount.metadata?.snap?.id) {
|
|
405
405
|
throw new Error('Failed to submit cross-chain swap transaction: undefined snap id');
|
|
406
406
|
}
|
|
407
407
|
const request = (0, transaction_1.getClientRequest)(quoteResponse, selectedAccount);
|
|
408
|
-
const requestResponse = (await this.
|
|
409
|
-
|
|
410
|
-
const txMeta = (0, transaction_1.handleSolanaTxResponse)(requestResponse, quoteResponse, selectedAccount);
|
|
408
|
+
const requestResponse = (await this.messagingSystem.call('SnapController:handleRequest', request));
|
|
409
|
+
const txMeta = (0, transaction_1.handleNonEvmTxResponse)(requestResponse, quoteResponse, selectedAccount);
|
|
411
410
|
// TODO remove this eventually, just returning it now to match extension behavior
|
|
412
411
|
// OR if the snap can propagate the snapRequestId or keyringReqId to the ApprovalsController, this can return the approvalTxId instead and clients won't need to subscribe to the ApprovalsController state to redirect
|
|
413
412
|
return txMeta;
|
|
414
413
|
});
|
|
415
414
|
_BridgeStatusController_waitForHashAndReturnFinalTxMeta.set(this, async (hashPromise) => {
|
|
416
415
|
const transactionHash = await hashPromise;
|
|
417
|
-
const finalTransactionMeta = this.
|
|
416
|
+
const finalTransactionMeta = this.messagingSystem
|
|
418
417
|
.call('TransactionController:getState')
|
|
419
418
|
.transactions.find((tx) => tx.hash === transactionHash);
|
|
420
419
|
if (!finalTransactionMeta) {
|
|
@@ -459,13 +458,13 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
459
458
|
* @returns The transaction meta
|
|
460
459
|
*/
|
|
461
460
|
_BridgeStatusController_handleEvmTransaction.set(this, async ({ transactionType, trade, requireApproval = false, }) => {
|
|
462
|
-
const actionId = (0,
|
|
463
|
-
const selectedAccount = this.
|
|
461
|
+
const actionId = (0, transaction_1.generateActionId)().toString();
|
|
462
|
+
const selectedAccount = this.messagingSystem.call('AccountsController:getAccountByAddress', trade.from);
|
|
464
463
|
if (!selectedAccount) {
|
|
465
464
|
throw new Error('Failed to submit cross-chain swap transaction: unknown account in trade data');
|
|
466
465
|
}
|
|
467
466
|
const hexChainId = (0, bridge_controller_1.formatChainIdToHex)(trade.chainId);
|
|
468
|
-
const networkClientId = this.
|
|
467
|
+
const networkClientId = this.messagingSystem.call('NetworkController:findNetworkClientIdByChainId', hexChainId);
|
|
469
468
|
const requestOptions = {
|
|
470
469
|
actionId,
|
|
471
470
|
networkClientId,
|
|
@@ -487,7 +486,7 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
487
486
|
return await __classPrivateFieldGet(this, _BridgeStatusController_waitForHashAndReturnFinalTxMeta, "f").call(this, result);
|
|
488
487
|
});
|
|
489
488
|
_BridgeStatusController_handleUSDTAllowanceReset.set(this, async (quoteResponse) => {
|
|
490
|
-
const resetApproval = await (0, transaction_1.getUSDTAllowanceResetTx)(this.
|
|
489
|
+
const resetApproval = await (0, transaction_1.getUSDTAllowanceResetTx)(this.messagingSystem, quoteResponse);
|
|
491
490
|
if (resetApproval) {
|
|
492
491
|
await __classPrivateFieldGet(this, _BridgeStatusController_handleEvmTransaction, "f").call(this, {
|
|
493
492
|
transactionType: transaction_controller_1.TransactionType.bridgeApproval,
|
|
@@ -496,7 +495,7 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
496
495
|
}
|
|
497
496
|
});
|
|
498
497
|
_BridgeStatusController_calculateGasFees.set(this, async (transactionParams, networkClientId, chainId) => {
|
|
499
|
-
const { gasFeeEstimates } = this.
|
|
498
|
+
const { gasFeeEstimates } = this.messagingSystem.call('GasFeeController:getState');
|
|
500
499
|
const { estimates: txGasFeeEstimates } = await __classPrivateFieldGet(this, _BridgeStatusController_estimateGasFeeFn, "f").call(this, {
|
|
501
500
|
transactionParams,
|
|
502
501
|
chainId,
|
|
@@ -527,7 +526,7 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
527
526
|
*/
|
|
528
527
|
_BridgeStatusController_handleEvmTransactionBatch.set(this, async (args) => {
|
|
529
528
|
const transactionParams = await (0, transaction_1.getAddTransactionBatchParams)({
|
|
530
|
-
|
|
529
|
+
messagingSystem: this.messagingSystem,
|
|
531
530
|
estimateGasFeeFn: __classPrivateFieldGet(this, _BridgeStatusController_estimateGasFeeFn, "f"),
|
|
532
531
|
...args,
|
|
533
532
|
});
|
|
@@ -539,7 +538,7 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
539
538
|
};
|
|
540
539
|
const { batchId } = await __classPrivateFieldGet(this, _BridgeStatusController_addTransactionBatchFn, "f").call(this, transactionParams);
|
|
541
540
|
const { approvalMeta, tradeMeta } = (0, transaction_1.findAndUpdateTransactionsInBatch)({
|
|
542
|
-
|
|
541
|
+
messagingSystem: this.messagingSystem,
|
|
543
542
|
updateTransactionFn: __classPrivateFieldGet(this, _BridgeStatusController_updateTransactionFn, "f"),
|
|
544
543
|
batchId,
|
|
545
544
|
txDataByType,
|
|
@@ -557,7 +556,7 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
557
556
|
* @returns The transaction meta
|
|
558
557
|
*/
|
|
559
558
|
this.submitTx = async (quoteResponse, isStxEnabledOnClient) => {
|
|
560
|
-
this.
|
|
559
|
+
this.messagingSystem.call('BridgeController:stopPollingForQuotes');
|
|
561
560
|
const selectedAccount = __classPrivateFieldGet(this, _BridgeStatusController_instances, "m", _BridgeStatusController_getMultichainSelectedAccount).call(this);
|
|
562
561
|
if (!selectedAccount) {
|
|
563
562
|
throw new Error('Failed to submit cross-chain swap transaction: undefined multichain account');
|
|
@@ -570,9 +569,13 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
570
569
|
let approvalTxId;
|
|
571
570
|
const startTime = Date.now();
|
|
572
571
|
const isBridgeTx = (0, bridge_controller_1.isCrossChain)(quoteResponse.quote.srcChainId, quoteResponse.quote.destChainId);
|
|
573
|
-
// Submit
|
|
574
|
-
|
|
575
|
-
|
|
572
|
+
// Submit non-EVM tx (Solana, BTC, Tron)
|
|
573
|
+
// Bitcoin trades come as objects with unsignedPsbtBase64, others as strings
|
|
574
|
+
const isNonEvmTrade = (0, bridge_controller_1.isNonEvmChainId)(quoteResponse.quote.srcChainId) &&
|
|
575
|
+
(typeof quoteResponse.trade === 'string' ||
|
|
576
|
+
(typeof quoteResponse.trade === 'object' &&
|
|
577
|
+
'unsignedPsbtBase64' in quoteResponse.trade));
|
|
578
|
+
if (isNonEvmTrade) {
|
|
576
579
|
txMeta = await __classPrivateFieldGet(this, _BridgeStatusController_trace, "f").call(this, {
|
|
577
580
|
name: isBridgeTx
|
|
578
581
|
? constants_1.TraceName.BridgeTransactionCompleted
|
|
@@ -583,7 +586,7 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
583
586
|
},
|
|
584
587
|
}, async () => {
|
|
585
588
|
try {
|
|
586
|
-
return await __classPrivateFieldGet(this,
|
|
589
|
+
return await __classPrivateFieldGet(this, _BridgeStatusController_handleNonEvmTx, "f").call(this, quoteResponse, selectedAccount);
|
|
587
590
|
}
|
|
588
591
|
catch (error) {
|
|
589
592
|
__classPrivateFieldGet(this, _BridgeStatusController_trackUnifiedSwapBridgeEvent, "f").call(this, bridge_controller_1.UnifiedSwapBridgeEventName.Failed, txMeta?.id, {
|
|
@@ -612,7 +615,7 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
612
615
|
if (isStxEnabledOnClient || quoteResponse.quote.gasIncluded7702) {
|
|
613
616
|
const { tradeMeta, approvalMeta } = await __classPrivateFieldGet(this, _BridgeStatusController_handleEvmTransactionBatch, "f").call(this, {
|
|
614
617
|
isBridgeTx,
|
|
615
|
-
resetApproval: await (0, transaction_1.getUSDTAllowanceResetTx)(this.
|
|
618
|
+
resetApproval: await (0, transaction_1.getUSDTAllowanceResetTx)(this.messagingSystem, quoteResponse),
|
|
616
619
|
approval: quoteResponse.approval,
|
|
617
620
|
trade: quoteResponse.trade,
|
|
618
621
|
quoteResponse,
|
|
@@ -649,10 +652,10 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
649
652
|
startTime,
|
|
650
653
|
approvalTxId,
|
|
651
654
|
});
|
|
652
|
-
if ((0, bridge_controller_1.
|
|
655
|
+
if ((0, bridge_controller_1.isNonEvmChainId)(quoteResponse.quote.srcChainId)) {
|
|
653
656
|
// Start polling for bridge tx status
|
|
654
657
|
__classPrivateFieldGet(this, _BridgeStatusController_startPollingForTxId, "f").call(this, txMeta.id);
|
|
655
|
-
// Track
|
|
658
|
+
// Track non-EVM Swap completed event
|
|
656
659
|
if (!isBridgeTx) {
|
|
657
660
|
__classPrivateFieldGet(this, _BridgeStatusController_trackUnifiedSwapBridgeEvent, "f").call(this, bridge_controller_1.UnifiedSwapBridgeEventName.Completed, txMeta.id);
|
|
658
661
|
}
|
|
@@ -676,22 +679,22 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
676
679
|
...(eventProperties ?? {}),
|
|
677
680
|
};
|
|
678
681
|
if (!txMetaId) {
|
|
679
|
-
this.
|
|
682
|
+
this.messagingSystem.call('BridgeController:trackUnifiedSwapBridgeEvent', eventName, baseProperties);
|
|
680
683
|
return;
|
|
681
684
|
}
|
|
682
685
|
const historyItem = this.state.txHistory[txMetaId];
|
|
683
686
|
if (!historyItem) {
|
|
684
|
-
this.
|
|
687
|
+
this.messagingSystem.call('BridgeController:trackUnifiedSwapBridgeEvent', eventName, eventProperties ?? {});
|
|
685
688
|
return;
|
|
686
689
|
}
|
|
687
|
-
const selectedAccount = this.
|
|
688
|
-
const { transactions } = this.
|
|
690
|
+
const selectedAccount = this.messagingSystem.call('AccountsController:getAccountByAddress', historyItem.account);
|
|
691
|
+
const { transactions } = this.messagingSystem.call('TransactionController:getState');
|
|
689
692
|
const txMeta = transactions?.find(({ id }) => id === txMetaId);
|
|
690
693
|
const approvalTxMeta = transactions?.find(({ id }) => id === historyItem.approvalTxId);
|
|
691
694
|
const requestParamProperties = (0, metrics_1.getRequestParamFromHistory)(historyItem);
|
|
692
695
|
if (eventName === bridge_controller_1.UnifiedSwapBridgeEventName.StatusValidationFailed) {
|
|
693
696
|
const { chain_id_source, chain_id_destination, token_address_source, token_address_destination, } = requestParamProperties;
|
|
694
|
-
this.
|
|
697
|
+
this.messagingSystem.call('BridgeController:trackUnifiedSwapBridgeEvent', eventName, {
|
|
695
698
|
...baseProperties,
|
|
696
699
|
chain_id_source,
|
|
697
700
|
chain_id_destination,
|
|
@@ -710,7 +713,7 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
710
713
|
...(0, metrics_1.getFinalizedTxProperties)(historyItem, txMeta, approvalTxMeta),
|
|
711
714
|
...(0, metrics_1.getPriceImpactFromQuote)(historyItem.quote),
|
|
712
715
|
};
|
|
713
|
-
this.
|
|
716
|
+
this.messagingSystem.call('BridgeController:trackUnifiedSwapBridgeEvent', eventName, requiredEventProperties);
|
|
714
717
|
});
|
|
715
718
|
__classPrivateFieldSet(this, _BridgeStatusController_clientId, clientId, "f");
|
|
716
719
|
__classPrivateFieldSet(this, _BridgeStatusController_fetchFn, fetchFn, "f");
|
|
@@ -723,15 +726,15 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
723
726
|
}, "f");
|
|
724
727
|
__classPrivateFieldSet(this, _BridgeStatusController_trace, traceFn ?? ((_request, fn) => fn?.()), "f");
|
|
725
728
|
// Register action handlers
|
|
726
|
-
this.
|
|
727
|
-
this.
|
|
728
|
-
this.
|
|
729
|
-
this.
|
|
730
|
-
this.
|
|
731
|
-
this.
|
|
729
|
+
this.messagingSystem.registerActionHandler(`${constants_1.BRIDGE_STATUS_CONTROLLER_NAME}:startPollingForBridgeTxStatus`, this.startPollingForBridgeTxStatus.bind(this));
|
|
730
|
+
this.messagingSystem.registerActionHandler(`${constants_1.BRIDGE_STATUS_CONTROLLER_NAME}:wipeBridgeStatus`, this.wipeBridgeStatus.bind(this));
|
|
731
|
+
this.messagingSystem.registerActionHandler(`${constants_1.BRIDGE_STATUS_CONTROLLER_NAME}:resetState`, this.resetState.bind(this));
|
|
732
|
+
this.messagingSystem.registerActionHandler(`${constants_1.BRIDGE_STATUS_CONTROLLER_NAME}:submitTx`, this.submitTx.bind(this));
|
|
733
|
+
this.messagingSystem.registerActionHandler(`${constants_1.BRIDGE_STATUS_CONTROLLER_NAME}:restartPollingForFailedAttempts`, this.restartPollingForFailedAttempts.bind(this));
|
|
734
|
+
this.messagingSystem.registerActionHandler(`${constants_1.BRIDGE_STATUS_CONTROLLER_NAME}:getBridgeHistoryItemByTxMetaId`, this.getBridgeHistoryItemByTxMetaId.bind(this));
|
|
732
735
|
// Set interval
|
|
733
736
|
this.setIntervalLength(constants_1.REFRESH_INTERVAL_MS);
|
|
734
|
-
this.
|
|
737
|
+
this.messagingSystem.subscribe('TransactionController:transactionFailed', ({ transactionMeta }) => {
|
|
735
738
|
const { type, status, id } = transactionMeta;
|
|
736
739
|
if (type &&
|
|
737
740
|
[
|
|
@@ -753,12 +756,12 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
753
756
|
}
|
|
754
757
|
}
|
|
755
758
|
});
|
|
756
|
-
this.
|
|
759
|
+
this.messagingSystem.subscribe('TransactionController:transactionConfirmed', (transactionMeta) => {
|
|
757
760
|
const { type, id, chainId } = transactionMeta;
|
|
758
761
|
if (type === transaction_controller_1.TransactionType.swap) {
|
|
759
762
|
__classPrivateFieldGet(this, _BridgeStatusController_trackUnifiedSwapBridgeEvent, "f").call(this, bridge_controller_1.UnifiedSwapBridgeEventName.Completed, id);
|
|
760
763
|
}
|
|
761
|
-
if (type === transaction_controller_1.TransactionType.bridge && !(0, bridge_controller_1.
|
|
764
|
+
if (type === transaction_controller_1.TransactionType.bridge && !(0, bridge_controller_1.isNonEvmChainId)(chainId)) {
|
|
762
765
|
__classPrivateFieldGet(this, _BridgeStatusController_startPollingForTxId, "f").call(this, id);
|
|
763
766
|
}
|
|
764
767
|
});
|
|
@@ -769,7 +772,7 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
769
772
|
}
|
|
770
773
|
}
|
|
771
774
|
exports.BridgeStatusController = BridgeStatusController;
|
|
772
|
-
_BridgeStatusController_pollingTokensByTxMetaId = new WeakMap(), _BridgeStatusController_clientId = new WeakMap(), _BridgeStatusController_fetchFn = new WeakMap(), _BridgeStatusController_config = new WeakMap(), _BridgeStatusController_addTransactionFn = new WeakMap(), _BridgeStatusController_addTransactionBatchFn = new WeakMap(), _BridgeStatusController_updateTransactionFn = new WeakMap(), _BridgeStatusController_estimateGasFeeFn = new WeakMap(), _BridgeStatusController_trace = new WeakMap(), _BridgeStatusController_markTxAsFailed = new WeakMap(), _BridgeStatusController_restartPollingForIncompleteHistoryItems = new WeakMap(), _BridgeStatusController_addTxToHistory = new WeakMap(), _BridgeStatusController_startPollingForTxId = new WeakMap(), _BridgeStatusController_handleFetchFailure = new WeakMap(), _BridgeStatusController_fetchBridgeTxStatus = new WeakMap(), _BridgeStatusController_getSrcTxHash = new WeakMap(), _BridgeStatusController_updateSrcTxHash = new WeakMap(), _BridgeStatusController_wipeBridgeStatusByChainId = new WeakMap(),
|
|
773
|
-
return this.
|
|
775
|
+
_BridgeStatusController_pollingTokensByTxMetaId = new WeakMap(), _BridgeStatusController_clientId = new WeakMap(), _BridgeStatusController_fetchFn = new WeakMap(), _BridgeStatusController_config = new WeakMap(), _BridgeStatusController_addTransactionFn = new WeakMap(), _BridgeStatusController_addTransactionBatchFn = new WeakMap(), _BridgeStatusController_updateTransactionFn = new WeakMap(), _BridgeStatusController_estimateGasFeeFn = new WeakMap(), _BridgeStatusController_trace = new WeakMap(), _BridgeStatusController_markTxAsFailed = new WeakMap(), _BridgeStatusController_restartPollingForIncompleteHistoryItems = new WeakMap(), _BridgeStatusController_addTxToHistory = new WeakMap(), _BridgeStatusController_startPollingForTxId = new WeakMap(), _BridgeStatusController_handleFetchFailure = new WeakMap(), _BridgeStatusController_fetchBridgeTxStatus = new WeakMap(), _BridgeStatusController_getSrcTxHash = new WeakMap(), _BridgeStatusController_updateSrcTxHash = new WeakMap(), _BridgeStatusController_wipeBridgeStatusByChainId = new WeakMap(), _BridgeStatusController_handleNonEvmTx = new WeakMap(), _BridgeStatusController_waitForHashAndReturnFinalTxMeta = new WeakMap(), _BridgeStatusController_handleApprovalTx = new WeakMap(), _BridgeStatusController_handleEvmTransaction = new WeakMap(), _BridgeStatusController_handleUSDTAllowanceReset = new WeakMap(), _BridgeStatusController_calculateGasFees = new WeakMap(), _BridgeStatusController_handleEvmTransactionBatch = new WeakMap(), _BridgeStatusController_trackUnifiedSwapBridgeEvent = new WeakMap(), _BridgeStatusController_instances = new WeakSet(), _BridgeStatusController_getMultichainSelectedAccount = function _BridgeStatusController_getMultichainSelectedAccount() {
|
|
776
|
+
return this.messagingSystem.call('AccountsController:getSelectedMultichainAccount');
|
|
774
777
|
};
|
|
775
778
|
//# sourceMappingURL=bridge-status-controller.cjs.map
|