@metamask-previews/bridge-status-controller 67.0.1-preview-685dbf46b → 68.0.0-preview-bc00f2c
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 +10 -2
- package/dist/bridge-status-controller.cjs +26 -21
- package/dist/bridge-status-controller.cjs.map +1 -1
- package/dist/bridge-status-controller.d.cts +4 -6
- package/dist/bridge-status-controller.d.cts.map +1 -1
- package/dist/bridge-status-controller.d.mts +4 -6
- package/dist/bridge-status-controller.d.mts.map +1 -1
- package/dist/bridge-status-controller.intent.cjs +80 -18
- package/dist/bridge-status-controller.intent.cjs.map +1 -1
- package/dist/bridge-status-controller.intent.d.cts +38 -5
- package/dist/bridge-status-controller.intent.d.cts.map +1 -1
- package/dist/bridge-status-controller.intent.d.mts +38 -5
- package/dist/bridge-status-controller.intent.d.mts.map +1 -1
- package/dist/bridge-status-controller.intent.mjs +78 -16
- package/dist/bridge-status-controller.intent.mjs.map +1 -1
- package/dist/bridge-status-controller.mjs +28 -23
- package/dist/bridge-status-controller.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +2 -1
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +2 -1
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/intent-api.cjs +10 -6
- package/dist/utils/intent-api.cjs.map +1 -1
- package/dist/utils/intent-api.d.cts +8 -7
- package/dist/utils/intent-api.d.cts.map +1 -1
- package/dist/utils/intent-api.d.mts +8 -7
- package/dist/utils/intent-api.d.mts.map +1 -1
- package/dist/utils/intent-api.mjs +10 -6
- package/dist/utils/intent-api.mjs.map +1 -1
- package/dist/utils/transaction.d.cts +9 -1
- package/dist/utils/transaction.d.cts.map +1 -1
- package/dist/utils/transaction.d.mts +9 -1
- package/dist/utils/transaction.d.mts.map +1 -1
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- Bump `@metamask/transaction-controller` from `^62.19.0` to `^62.20.0` ([#8104](https://github.com/MetaMask/core/pull/8104))
|
|
13
|
+
|
|
14
|
+
## [68.0.0]
|
|
15
|
+
|
|
10
16
|
### Added
|
|
11
17
|
|
|
12
18
|
- Added optional `abTests` property to `BridgeHistoryItem` to persist A/B test context across the transaction lifecycle ([#8007](https://github.com/MetaMask/core/pull/8007))
|
|
@@ -16,8 +22,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
16
22
|
|
|
17
23
|
### Changed
|
|
18
24
|
|
|
19
|
-
- Bump `@metamask/bridge-controller` from `^67.1.1` to `^
|
|
25
|
+
- Bump `@metamask/bridge-controller` from `^67.1.1` to `^68.0.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), [#8101](https://github.com/MetaMask/core/pull/8101))
|
|
20
26
|
- 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))
|
|
27
|
+
- **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))
|
|
21
28
|
|
|
22
29
|
## [67.0.1]
|
|
23
30
|
|
|
@@ -992,7 +999,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
992
999
|
|
|
993
1000
|
- Initial release ([#5317](https://github.com/MetaMask/core/pull/5317))
|
|
994
1001
|
|
|
995
|
-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/bridge-status-controller@
|
|
1002
|
+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/bridge-status-controller@68.0.0...HEAD
|
|
1003
|
+
[68.0.0]: https://github.com/MetaMask/core/compare/@metamask/bridge-status-controller@67.0.1...@metamask/bridge-status-controller@68.0.0
|
|
996
1004
|
[67.0.1]: https://github.com/MetaMask/core/compare/@metamask/bridge-status-controller@67.0.0...@metamask/bridge-status-controller@67.0.1
|
|
997
1005
|
[67.0.0]: https://github.com/MetaMask/core/compare/@metamask/bridge-status-controller@66.1.0...@metamask/bridge-status-controller@67.0.0
|
|
998
1006
|
[66.1.0]: https://github.com/MetaMask/core/compare/@metamask/bridge-status-controller@66.0.2...@metamask/bridge-status-controller@66.1.0
|
|
@@ -10,11 +10,12 @@ 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_intentManager, _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");
|
|
18
19
|
const polling_controller_1 = require("@metamask/polling-controller");
|
|
19
20
|
const transaction_controller_1 = require("@metamask/transaction-controller");
|
|
20
21
|
const utils_1 = require("@metamask/utils");
|
|
@@ -50,7 +51,7 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
50
51
|
});
|
|
51
52
|
_BridgeStatusController_instances.add(this);
|
|
52
53
|
_BridgeStatusController_pollingTokensByTxMetaId.set(this, {});
|
|
53
|
-
|
|
54
|
+
_BridgeStatusController_intentManager.set(this, void 0);
|
|
54
55
|
_BridgeStatusController_clientId.set(this, void 0);
|
|
55
56
|
_BridgeStatusController_fetchFn.set(this, void 0);
|
|
56
57
|
_BridgeStatusController_config.set(this, void 0);
|
|
@@ -380,16 +381,14 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
380
381
|
try {
|
|
381
382
|
let status;
|
|
382
383
|
let validationFailures = [];
|
|
383
|
-
let intentTranslation = null;
|
|
384
|
-
let intentOrderStatus;
|
|
385
384
|
const isIntent = Boolean(historyItem.quote.intent);
|
|
386
385
|
if (isIntent) {
|
|
387
|
-
const
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
status =
|
|
386
|
+
const intentTxStatus = await __classPrivateFieldGet(this, _BridgeStatusController_intentManager, "f").getIntentTransactionStatus(bridgeTxMetaId, historyItem, __classPrivateFieldGet(this, _BridgeStatusController_clientId, "f"));
|
|
387
|
+
if (intentTxStatus?.bridgeStatus === null ||
|
|
388
|
+
intentTxStatus?.bridgeStatus === undefined) {
|
|
389
|
+
return;
|
|
390
|
+
}
|
|
391
|
+
status = intentTxStatus.bridgeStatus.status;
|
|
393
392
|
}
|
|
394
393
|
else {
|
|
395
394
|
// We try here because we receive 500 errors from Bridge API if we try to fetch immediately after submitting the source tx
|
|
@@ -429,8 +428,8 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
429
428
|
this.update((state) => {
|
|
430
429
|
state.txHistory[bridgeTxMetaId] = newBridgeHistoryItem;
|
|
431
430
|
});
|
|
432
|
-
if (isIntent
|
|
433
|
-
__classPrivateFieldGet(this,
|
|
431
|
+
if (isIntent) {
|
|
432
|
+
__classPrivateFieldGet(this, _BridgeStatusController_intentManager, "f").syncTransactionFromIntentStatus(bridgeTxMetaId, historyItem);
|
|
434
433
|
}
|
|
435
434
|
// 5. After effects
|
|
436
435
|
const pollingToken = __classPrivateFieldGet(this, _BridgeStatusController_pollingTokensByTxMetaId, "f")[bridgeTxMetaId];
|
|
@@ -909,19 +908,18 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
909
908
|
return txMeta;
|
|
910
909
|
};
|
|
911
910
|
/**
|
|
912
|
-
*
|
|
913
|
-
*
|
|
911
|
+
* Submits an intent order and creates a synthetic history entry for UX.
|
|
912
|
+
* The EIP-712 payload is always signed inside this controller via KeyringController.
|
|
914
913
|
*
|
|
915
914
|
* @param params - Object containing intent submission parameters
|
|
916
915
|
* @param params.quoteResponse - Quote carrying intent data
|
|
917
|
-
* @param params.signature - Hex signature produced by eth_signTypedData_v4
|
|
918
916
|
* @param params.accountAddress - The EOA submitting the order
|
|
919
917
|
* @param params.location - The entry point from which the user initiated the swap or bridge
|
|
920
918
|
* @param params.abTests - A/B test context to attribute events to specific experiments
|
|
921
919
|
* @returns A lightweight TransactionMeta-like object for history linking
|
|
922
920
|
*/
|
|
923
921
|
this.submitIntent = async (params) => {
|
|
924
|
-
const { quoteResponse,
|
|
922
|
+
const { quoteResponse, accountAddress, location, abTests } = params;
|
|
925
923
|
this.messenger.call('BridgeController:stopPollingForQuotes', bridge_controller_1.AbortReason.TransactionSubmitted);
|
|
926
924
|
// Build pre-confirmation properties for error tracking parity with submitTx
|
|
927
925
|
const account = __classPrivateFieldGet(this, _BridgeStatusController_instances, "m", _BridgeStatusController_getMultichainSelectedAccount).call(this, accountAddress);
|
|
@@ -945,6 +943,10 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
945
943
|
}
|
|
946
944
|
}
|
|
947
945
|
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);
|
|
948
950
|
const submissionParams = {
|
|
949
951
|
srcChainId: chainId.toString(),
|
|
950
952
|
quoteId: requestId,
|
|
@@ -953,8 +955,7 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
953
955
|
userAddress: accountAddress,
|
|
954
956
|
aggregatorId: intent.protocol,
|
|
955
957
|
};
|
|
956
|
-
const
|
|
957
|
-
const intentOrder = await intentApi.submitIntent(submissionParams, __classPrivateFieldGet(this, _BridgeStatusController_clientId, "f"), await __classPrivateFieldGet(this, _BridgeStatusController_getJwt, "f").call(this));
|
|
958
|
+
const intentOrder = await __classPrivateFieldGet(this, _BridgeStatusController_intentManager, "f").submitIntent(submissionParams, __classPrivateFieldGet(this, _BridgeStatusController_clientId, "f"));
|
|
958
959
|
const orderUid = intentOrder.id;
|
|
959
960
|
// Determine transaction type: swap for same-chain, bridge for cross-chain
|
|
960
961
|
const isCrossChainTx = (0, bridge_controller_1.isCrossChain)(quoteResponse.quote.srcChainId, quoteResponse.quote.destChainId);
|
|
@@ -1049,10 +1050,11 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
1049
1050
|
* @param eventProperties - The properties for the event
|
|
1050
1051
|
*/
|
|
1051
1052
|
_BridgeStatusController_trackUnifiedSwapBridgeEvent.set(this, (eventName, txMetaId, eventProperties) => {
|
|
1053
|
+
const { ab_tests: eventAbTests } = eventProperties ?? {};
|
|
1052
1054
|
const historyAbTests = txMetaId
|
|
1053
1055
|
? this.state.txHistory?.[txMetaId]?.abTests
|
|
1054
1056
|
: undefined;
|
|
1055
|
-
const resolvedAbTests =
|
|
1057
|
+
const resolvedAbTests = eventAbTests ?? historyAbTests ?? undefined;
|
|
1056
1058
|
const baseProperties = {
|
|
1057
1059
|
action_type: bridge_controller_1.MetricsActionType.SWAPBRIDGE_V1,
|
|
1058
1060
|
location: eventProperties?.location ??
|
|
@@ -1116,9 +1118,12 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
1116
1118
|
customBridgeApiBaseUrl: config?.customBridgeApiBaseUrl ?? constants_1.BRIDGE_PROD_API_BASE_URL,
|
|
1117
1119
|
}, "f");
|
|
1118
1120
|
__classPrivateFieldSet(this, _BridgeStatusController_trace, traceFn ?? ((_request, fn) => fn?.()), "f");
|
|
1119
|
-
__classPrivateFieldSet(this,
|
|
1121
|
+
__classPrivateFieldSet(this, _BridgeStatusController_intentManager, new bridge_status_controller_intent_1.IntentManager({
|
|
1120
1122
|
messenger: this.messenger,
|
|
1121
1123
|
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"),
|
|
1122
1127
|
}), "f");
|
|
1123
1128
|
// Register action handlers
|
|
1124
1129
|
this.messenger.registerActionHandler(`${constants_1.BRIDGE_STATUS_CONTROLLER_NAME}:startPollingForBridgeTxStatus`, this.startPollingForBridgeTxStatus.bind(this));
|
|
@@ -1176,7 +1181,7 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll
|
|
|
1176
1181
|
}
|
|
1177
1182
|
}
|
|
1178
1183
|
exports.BridgeStatusController = BridgeStatusController;
|
|
1179
|
-
_BridgeStatusController_pollingTokensByTxMetaId = new WeakMap(),
|
|
1184
|
+
_BridgeStatusController_pollingTokensByTxMetaId = new WeakMap(), _BridgeStatusController_intentManager = 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) {
|
|
1180
1185
|
return this.messenger.call('AccountsController:getAccountByAddress', accountAddress);
|
|
1181
1186
|
};
|
|
1182
1187
|
//# sourceMappingURL=bridge-status-controller.cjs.map
|