@metamask-previews/bridge-status-controller 67.0.1-preview-0aca970c8 → 67.0.1-preview-b2b2c8f6a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +0 -1
- package/dist/bridge-status-controller.cjs +21 -26
- package/dist/bridge-status-controller.cjs.map +1 -1
- package/dist/bridge-status-controller.d.cts +6 -4
- package/dist/bridge-status-controller.d.cts.map +1 -1
- package/dist/bridge-status-controller.d.mts +6 -4
- package/dist/bridge-status-controller.d.mts.map +1 -1
- package/dist/bridge-status-controller.intent.cjs +18 -78
- package/dist/bridge-status-controller.intent.cjs.map +1 -1
- package/dist/bridge-status-controller.intent.d.cts +5 -38
- package/dist/bridge-status-controller.intent.d.cts.map +1 -1
- package/dist/bridge-status-controller.intent.d.mts +5 -38
- package/dist/bridge-status-controller.intent.d.mts.map +1 -1
- package/dist/bridge-status-controller.intent.mjs +16 -76
- package/dist/bridge-status-controller.intent.mjs.map +1 -1
- package/dist/bridge-status-controller.mjs +23 -28
- package/dist/bridge-status-controller.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +1 -2
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +1 -2
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/intent-api.cjs +6 -10
- package/dist/utils/intent-api.cjs.map +1 -1
- package/dist/utils/intent-api.d.cts +7 -8
- package/dist/utils/intent-api.d.cts.map +1 -1
- package/dist/utils/intent-api.d.mts +7 -8
- package/dist/utils/intent-api.d.mts.map +1 -1
- package/dist/utils/intent-api.mjs +6 -10
- package/dist/utils/intent-api.mjs.map +1 -1
- package/dist/utils/transaction.d.cts +1 -9
- package/dist/utils/transaction.d.cts.map +1 -1
- package/dist/utils/transaction.d.mts +1 -9
- package/dist/utils/transaction.d.mts.map +1 -1
- package/package.json +1 -2
package/CHANGELOG.md
CHANGED
|
@@ -18,7 +18,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
18
18
|
|
|
19
19
|
- Bump `@metamask/bridge-controller` from `^67.1.1` to `^67.4.0` ([#8024](https://github.com/MetaMask/core/pull/8024), [#8051](https://github.com/MetaMask/core/pull/8051), [#8070](https://github.com/MetaMask/core/pull/8070))
|
|
20
20
|
- Bump `@metamask/transaction-controller` from `^62.17.1` to `^62.19.0` ([#8005](https://github.com/MetaMask/core/pull/8005), [#8031](https://github.com/MetaMask/core/pull/8031))
|
|
21
|
-
- **BREAKING:** Move intent signing and submission orchestration into `BridgeStatusController`, including internal EIP-712 signing via `KeyringController` and the new `IntentManager` flow. ([#8048](https://github.com/MetaMask/core/pull/8048))
|
|
22
21
|
|
|
23
22
|
## [67.0.1]
|
|
24
23
|
|
|
@@ -10,12 +10,11 @@ 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,
|
|
13
|
+
var _BridgeStatusController_instances, _BridgeStatusController_pollingTokensByTxMetaId, _BridgeStatusController_intentStatusManager, _BridgeStatusController_clientId, _BridgeStatusController_fetchFn, _BridgeStatusController_config, _BridgeStatusController_addTransactionFn, _BridgeStatusController_addTransactionBatchFn, _BridgeStatusController_updateTransactionFn, _BridgeStatusController_estimateGasFeeFn, _BridgeStatusController_trace, _BridgeStatusController_markTxAsFailed, _BridgeStatusController_restartPollingForIncompleteHistoryItems, _BridgeStatusController_addTxToHistory, _BridgeStatusController_rekeyHistoryItem, _BridgeStatusController_startPollingForTxId, _BridgeStatusController_shouldPollHistoryItem, _BridgeStatusController_getMultichainSelectedAccount, _BridgeStatusController_handleFetchFailure, _BridgeStatusController_fetchBridgeTxStatus, _BridgeStatusController_getJwt, _BridgeStatusController_getSrcTxHash, _BridgeStatusController_updateSrcTxHash, _BridgeStatusController_wipeBridgeStatusByChainId, _BridgeStatusController_handleNonEvmTx, _BridgeStatusController_waitForHashAndReturnFinalTxMeta, _BridgeStatusController_waitForTxConfirmation, _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");
|
|
17
17
|
const controller_utils_1 = require("@metamask/controller-utils");
|
|
18
|
-
const keyring_controller_1 = require("@metamask/keyring-controller");
|
|
19
18
|
const polling_controller_1 = require("@metamask/polling-controller");
|
|
20
19
|
const transaction_controller_1 = require("@metamask/transaction-controller");
|
|
21
20
|
const utils_1 = require("@metamask/utils");
|
|
@@ -51,7 +50,7 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
51
50
|
});
|
|
52
51
|
_BridgeStatusController_instances.add(this);
|
|
53
52
|
_BridgeStatusController_pollingTokensByTxMetaId.set(this, {});
|
|
54
|
-
|
|
53
|
+
_BridgeStatusController_intentStatusManager.set(this, void 0);
|
|
55
54
|
_BridgeStatusController_clientId.set(this, void 0);
|
|
56
55
|
_BridgeStatusController_fetchFn.set(this, void 0);
|
|
57
56
|
_BridgeStatusController_config.set(this, void 0);
|
|
@@ -381,14 +380,16 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
381
380
|
try {
|
|
382
381
|
let status;
|
|
383
382
|
let validationFailures = [];
|
|
383
|
+
let intentTranslation = null;
|
|
384
|
+
let intentOrderStatus;
|
|
384
385
|
const isIntent = Boolean(historyItem.quote.intent);
|
|
385
386
|
if (isIntent) {
|
|
386
|
-
const
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
status =
|
|
387
|
+
const { srcChainId } = historyItem.quote;
|
|
388
|
+
const intentApi = new intent_api_1.IntentApiImpl(__classPrivateFieldGet(this, _BridgeStatusController_config, "f").customBridgeApiBaseUrl, __classPrivateFieldGet(this, _BridgeStatusController_fetchFn, "f"));
|
|
389
|
+
const intentOrder = await intentApi.getOrderStatus(bridgeTxMetaId, historyItem.quote.intent?.protocol ?? '', srcChainId.toString(), __classPrivateFieldGet(this, _BridgeStatusController_clientId, "f"), await __classPrivateFieldGet(this, _BridgeStatusController_getJwt, "f").call(this));
|
|
390
|
+
intentOrderStatus = intentOrder.status;
|
|
391
|
+
intentTranslation = (0, intent_api_1.translateIntentOrderToBridgeStatus)(intentOrder, srcChainId, historyItem.status.srcChain.txHash);
|
|
392
|
+
status = intentTranslation.status;
|
|
392
393
|
}
|
|
393
394
|
else {
|
|
394
395
|
// We try here because we receive 500 errors from Bridge API if we try to fetch immediately after submitting the source tx
|
|
@@ -428,8 +429,8 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
428
429
|
this.update((state) => {
|
|
429
430
|
state.txHistory[bridgeTxMetaId] = newBridgeHistoryItem;
|
|
430
431
|
});
|
|
431
|
-
if (isIntent) {
|
|
432
|
-
__classPrivateFieldGet(this,
|
|
432
|
+
if (isIntent && intentTranslation && intentOrderStatus) {
|
|
433
|
+
__classPrivateFieldGet(this, _BridgeStatusController_intentStatusManager, "f").syncTransactionFromIntentStatus(bridgeTxMetaId, historyItem, intentTranslation, intentOrderStatus);
|
|
433
434
|
}
|
|
434
435
|
// 5. After effects
|
|
435
436
|
const pollingToken = __classPrivateFieldGet(this, _BridgeStatusController_pollingTokensByTxMetaId, "f")[bridgeTxMetaId];
|
|
@@ -908,18 +909,19 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
908
909
|
return txMeta;
|
|
909
910
|
};
|
|
910
911
|
/**
|
|
911
|
-
*
|
|
912
|
-
*
|
|
912
|
+
* UI-signed intent submission (fast path): the UI generates the EIP-712 signature and calls this with the raw signature.
|
|
913
|
+
* Here we submit the order to the intent provider and create a synthetic history entry for UX.
|
|
913
914
|
*
|
|
914
915
|
* @param params - Object containing intent submission parameters
|
|
915
916
|
* @param params.quoteResponse - Quote carrying intent data
|
|
917
|
+
* @param params.signature - Hex signature produced by eth_signTypedData_v4
|
|
916
918
|
* @param params.accountAddress - The EOA submitting the order
|
|
917
919
|
* @param params.location - The entry point from which the user initiated the swap or bridge
|
|
918
920
|
* @param params.abTests - A/B test context to attribute events to specific experiments
|
|
919
921
|
* @returns A lightweight TransactionMeta-like object for history linking
|
|
920
922
|
*/
|
|
921
923
|
this.submitIntent = async (params) => {
|
|
922
|
-
const { quoteResponse, accountAddress, location, abTests } = params;
|
|
924
|
+
const { quoteResponse, signature, accountAddress, location, abTests } = params;
|
|
923
925
|
this.messenger.call('BridgeController:stopPollingForQuotes', bridge_controller_1.AbortReason.TransactionSubmitted);
|
|
924
926
|
// Build pre-confirmation properties for error tracking parity with submitTx
|
|
925
927
|
const account = __classPrivateFieldGet(this, _BridgeStatusController_instances, "m", _BridgeStatusController_getMultichainSelectedAccount).call(this, accountAddress);
|
|
@@ -943,10 +945,6 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
943
945
|
}
|
|
944
946
|
}
|
|
945
947
|
const { srcChainId: chainId, requestId } = quoteResponse.quote;
|
|
946
|
-
const signature = await this.messenger.call('KeyringController:signTypedMessage', {
|
|
947
|
-
from: accountAddress,
|
|
948
|
-
data: intent.typedData,
|
|
949
|
-
}, keyring_controller_1.SignTypedDataVersion.V4);
|
|
950
948
|
const submissionParams = {
|
|
951
949
|
srcChainId: chainId.toString(),
|
|
952
950
|
quoteId: requestId,
|
|
@@ -955,7 +953,8 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
955
953
|
userAddress: accountAddress,
|
|
956
954
|
aggregatorId: intent.protocol,
|
|
957
955
|
};
|
|
958
|
-
const
|
|
956
|
+
const intentApi = new intent_api_1.IntentApiImpl(__classPrivateFieldGet(this, _BridgeStatusController_config, "f").customBridgeApiBaseUrl, __classPrivateFieldGet(this, _BridgeStatusController_fetchFn, "f"));
|
|
957
|
+
const intentOrder = await intentApi.submitIntent(submissionParams, __classPrivateFieldGet(this, _BridgeStatusController_clientId, "f"), await __classPrivateFieldGet(this, _BridgeStatusController_getJwt, "f").call(this));
|
|
959
958
|
const orderUid = intentOrder.id;
|
|
960
959
|
// Determine transaction type: swap for same-chain, bridge for cross-chain
|
|
961
960
|
const isCrossChainTx = (0, bridge_controller_1.isCrossChain)(quoteResponse.quote.srcChainId, quoteResponse.quote.destChainId);
|
|
@@ -1050,11 +1049,10 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
1050
1049
|
* @param eventProperties - The properties for the event
|
|
1051
1050
|
*/
|
|
1052
1051
|
_BridgeStatusController_trackUnifiedSwapBridgeEvent.set(this, (eventName, txMetaId, eventProperties) => {
|
|
1053
|
-
const { ab_tests: eventAbTests } = eventProperties ?? {};
|
|
1054
1052
|
const historyAbTests = txMetaId
|
|
1055
1053
|
? this.state.txHistory?.[txMetaId]?.abTests
|
|
1056
1054
|
: undefined;
|
|
1057
|
-
const resolvedAbTests =
|
|
1055
|
+
const resolvedAbTests = eventProperties?.ab_tests ?? historyAbTests ?? undefined;
|
|
1058
1056
|
const baseProperties = {
|
|
1059
1057
|
action_type: bridge_controller_1.MetricsActionType.SWAPBRIDGE_V1,
|
|
1060
1058
|
location: eventProperties?.location ??
|
|
@@ -1118,12 +1116,9 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
1118
1116
|
customBridgeApiBaseUrl: config?.customBridgeApiBaseUrl ?? constants_1.BRIDGE_PROD_API_BASE_URL,
|
|
1119
1117
|
}, "f");
|
|
1120
1118
|
__classPrivateFieldSet(this, _BridgeStatusController_trace, traceFn ?? ((_request, fn) => fn?.()), "f");
|
|
1121
|
-
__classPrivateFieldSet(this,
|
|
1119
|
+
__classPrivateFieldSet(this, _BridgeStatusController_intentStatusManager, new bridge_status_controller_intent_1.IntentStatusManager({
|
|
1122
1120
|
messenger: this.messenger,
|
|
1123
1121
|
updateTransactionFn: __classPrivateFieldGet(this, _BridgeStatusController_updateTransactionFn, "f"),
|
|
1124
|
-
customBridgeApiBaseUrl: __classPrivateFieldGet(this, _BridgeStatusController_config, "f").customBridgeApiBaseUrl,
|
|
1125
|
-
fetchFn: __classPrivateFieldGet(this, _BridgeStatusController_fetchFn, "f"),
|
|
1126
|
-
getJwt: __classPrivateFieldGet(this, _BridgeStatusController_getJwt, "f"),
|
|
1127
1122
|
}), "f");
|
|
1128
1123
|
// Register action handlers
|
|
1129
1124
|
this.messenger.registerActionHandler(`${constants_1.BRIDGE_STATUS_CONTROLLER_NAME}:startPollingForBridgeTxStatus`, this.startPollingForBridgeTxStatus.bind(this));
|
|
@@ -1181,7 +1176,7 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
1181
1176
|
}
|
|
1182
1177
|
}
|
|
1183
1178
|
exports.BridgeStatusController = BridgeStatusController;
|
|
1184
|
-
_BridgeStatusController_pollingTokensByTxMetaId = new WeakMap(),
|
|
1179
|
+
_BridgeStatusController_pollingTokensByTxMetaId = new WeakMap(), _BridgeStatusController_intentStatusManager = 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_rekeyHistoryItem = new WeakMap(), _BridgeStatusController_startPollingForTxId = new WeakMap(), _BridgeStatusController_shouldPollHistoryItem = new WeakMap(), _BridgeStatusController_handleFetchFailure = new WeakMap(), _BridgeStatusController_fetchBridgeTxStatus = new WeakMap(), _BridgeStatusController_getJwt = new WeakMap(), _BridgeStatusController_getSrcTxHash = new WeakMap(), _BridgeStatusController_updateSrcTxHash = new WeakMap(), _BridgeStatusController_wipeBridgeStatusByChainId = new WeakMap(), _BridgeStatusController_handleNonEvmTx = new WeakMap(), _BridgeStatusController_waitForHashAndReturnFinalTxMeta = new WeakMap(), _BridgeStatusController_waitForTxConfirmation = 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(accountAddress) {
|
|
1185
1180
|
return this.messenger.call('AccountsController:getAccountByAddress', accountAddress);
|
|
1186
1181
|
};
|
|
1187
1182
|
//# sourceMappingURL=bridge-status-controller.cjs.map
|