@metamask-previews/transaction-controller 46.0.0-preview-fefdb711 → 46.0.0-preview-0ae65d9e
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 +1 -0
- package/dist/TransactionController.cjs +48 -56
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +14 -17
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +14 -17
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +49 -57
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +0 -74
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +0 -74
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/batch.cjs +1 -123
- package/dist/utils/batch.cjs.map +1 -1
- package/dist/utils/batch.d.cts +1 -7
- package/dist/utils/batch.d.cts.map +1 -1
- package/dist/utils/batch.d.mts +1 -7
- package/dist/utils/batch.d.mts.map +1 -1
- package/dist/utils/batch.mjs +1 -123
- package/dist/utils/batch.mjs.map +1 -1
- package/dist/utils/eip7702.cjs +1 -1
- package/dist/utils/eip7702.cjs.map +1 -1
- package/dist/utils/eip7702.d.cts +0 -14
- package/dist/utils/eip7702.d.cts.map +1 -1
- package/dist/utils/eip7702.d.mts +0 -14
- package/dist/utils/eip7702.d.mts.map +1 -1
- package/dist/utils/eip7702.mjs +1 -1
- package/dist/utils/eip7702.mjs.map +1 -1
- package/dist/utils/nonce.cjs +3 -3
- package/dist/utils/nonce.cjs.map +1 -1
- package/dist/utils/nonce.d.cts +2 -2
- package/dist/utils/nonce.d.cts.map +1 -1
- package/dist/utils/nonce.d.mts +2 -2
- package/dist/utils/nonce.d.mts.map +1 -1
- package/dist/utils/nonce.mjs +3 -3
- package/dist/utils/nonce.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/hooks/CollectPublishHook.cjs +0 -84
- package/dist/hooks/CollectPublishHook.cjs.map +0 -1
- package/dist/hooks/CollectPublishHook.d.cts +0 -29
- package/dist/hooks/CollectPublishHook.d.cts.map +0 -1
- package/dist/hooks/CollectPublishHook.d.mts +0 -29
- package/dist/hooks/CollectPublishHook.d.mts.map +0 -1
- package/dist/hooks/CollectPublishHook.mjs +0 -80
- package/dist/hooks/CollectPublishHook.mjs.map +0 -1
- package/dist/hooks/ExtraTransactionsPublishHook.cjs +0 -84
- package/dist/hooks/ExtraTransactionsPublishHook.cjs.map +0 -1
- package/dist/hooks/ExtraTransactionsPublishHook.d.cts +0 -18
- package/dist/hooks/ExtraTransactionsPublishHook.d.cts.map +0 -1
- package/dist/hooks/ExtraTransactionsPublishHook.d.mts +0 -18
- package/dist/hooks/ExtraTransactionsPublishHook.d.mts.map +0 -1
- package/dist/hooks/ExtraTransactionsPublishHook.mjs +0 -80
- package/dist/hooks/ExtraTransactionsPublishHook.mjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
9
9
|
|
|
10
10
|
### Added
|
|
11
11
|
|
|
12
|
+
- Add `updateAtomicBatchData` method ([#5380](https://github.com/MetaMask/core/pull/5380))
|
|
12
13
|
- Support atomic batch transactions ([#5306](https://github.com/MetaMask/core/pull/5306))
|
|
13
14
|
- Add methods:
|
|
14
15
|
- `addTransactionBatch`
|
|
@@ -13,7 +13,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
13
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
15
|
};
|
|
16
|
-
var _TransactionController_instances, _TransactionController_internalEvents, _TransactionController_methodDataHelper, _TransactionController_incomingTransactionChainIds, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_pendingTransactionOptions,
|
|
16
|
+
var _TransactionController_instances, _TransactionController_internalEvents, _TransactionController_methodDataHelper, _TransactionController_incomingTransactionChainIds, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_pendingTransactionOptions, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_testGasFeeFlows, _TransactionController_multichainTrackingHelper, _TransactionController_retryTransaction, _TransactionController_getChainId, _TransactionController_getNetworkClientId, _TransactionController_getEthQuery, _TransactionController_getProvider, _TransactionController_createNonceTracker, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_updateFirstTimeInteraction, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_getSelectedAccount, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory;
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.TransactionController = exports.ApprovalState = exports.SPEED_UP_RATE = exports.CANCEL_RATE = void 0;
|
|
19
19
|
const base_controller_1 = require("@metamask/base-controller");
|
|
@@ -23,6 +23,7 @@ const network_controller_1 = require("@metamask/network-controller");
|
|
|
23
23
|
const nonce_tracker_1 = require("@metamask/nonce-tracker");
|
|
24
24
|
const rpc_errors_1 = require("@metamask/rpc-errors");
|
|
25
25
|
const utils_1 = require("@metamask/utils");
|
|
26
|
+
const async_mutex_1 = require("async-mutex");
|
|
26
27
|
// This package purposefully relies on Node's EventEmitter module.
|
|
27
28
|
// eslint-disable-next-line import-x/no-nodejs-modules
|
|
28
29
|
const events_1 = require("events");
|
|
@@ -41,7 +42,6 @@ const MethodDataHelper_1 = require("./helpers/MethodDataHelper.cjs");
|
|
|
41
42
|
const MultichainTrackingHelper_1 = require("./helpers/MultichainTrackingHelper.cjs");
|
|
42
43
|
const PendingTransactionTracker_1 = require("./helpers/PendingTransactionTracker.cjs");
|
|
43
44
|
const ResimulateHelper_1 = require("./helpers/ResimulateHelper.cjs");
|
|
44
|
-
const ExtraTransactionsPublishHook_1 = require("./hooks/ExtraTransactionsPublishHook.cjs");
|
|
45
45
|
const logger_1 = require("./logger.cjs");
|
|
46
46
|
const types_1 = require("./types.cjs");
|
|
47
47
|
const batch_1 = require("./utils/batch.cjs");
|
|
@@ -170,11 +170,11 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
170
170
|
_TransactionController_internalEvents.set(this, new events_1.EventEmitter());
|
|
171
171
|
this.approvingTransactionIds = new Set();
|
|
172
172
|
_TransactionController_methodDataHelper.set(this, void 0);
|
|
173
|
+
this.mutex = new async_mutex_1.Mutex();
|
|
173
174
|
_TransactionController_incomingTransactionChainIds.set(this, new Set());
|
|
174
175
|
_TransactionController_incomingTransactionHelper.set(this, void 0);
|
|
175
176
|
_TransactionController_incomingTransactionOptions.set(this, void 0);
|
|
176
177
|
_TransactionController_pendingTransactionOptions.set(this, void 0);
|
|
177
|
-
_TransactionController_publishBatchHook.set(this, void 0);
|
|
178
178
|
this.signAbortCallbacks = new Map();
|
|
179
179
|
_TransactionController_trace.set(this, void 0);
|
|
180
180
|
_TransactionController_transactionHistoryLimit.set(this, void 0);
|
|
@@ -205,7 +205,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
205
205
|
this.securityProviderRequest = securityProviderRequest;
|
|
206
206
|
__classPrivateFieldSet(this, _TransactionController_incomingTransactionOptions, incomingTransactions, "f");
|
|
207
207
|
__classPrivateFieldSet(this, _TransactionController_pendingTransactionOptions, pendingTransactions, "f");
|
|
208
|
-
__classPrivateFieldSet(this, _TransactionController_publishBatchHook, hooks?.publishBatch, "f");
|
|
209
208
|
__classPrivateFieldSet(this, _TransactionController_transactionHistoryLimit, transactionHistoryLimit, "f");
|
|
210
209
|
this.sign = sign;
|
|
211
210
|
__classPrivateFieldSet(this, _TransactionController_testGasFeeFlows, testGasFeeFlows === true, "f");
|
|
@@ -320,11 +319,8 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
320
319
|
getChainId: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).bind(this),
|
|
321
320
|
getEthQuery: (networkClientId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId }),
|
|
322
321
|
getInternalAccounts: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getInternalAccounts).bind(this),
|
|
323
|
-
getTransaction: (transactionId) => this.getTransactionOrThrow(transactionId),
|
|
324
322
|
messenger: this.messagingSystem,
|
|
325
|
-
publishBatchHook: __classPrivateFieldGet(this, _TransactionController_publishBatchHook, "f"),
|
|
326
323
|
request,
|
|
327
|
-
updateTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).bind(this),
|
|
328
324
|
});
|
|
329
325
|
}
|
|
330
326
|
/**
|
|
@@ -348,12 +344,10 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
348
344
|
* @param txParams - Standard parameters for an Ethereum transaction.
|
|
349
345
|
* @param options - Additional options to control how the transaction is added.
|
|
350
346
|
* @param options.actionId - Unique ID to prevent duplicate requests.
|
|
351
|
-
* @param options.batchId - ID of the batch this transaction belongs to.
|
|
352
347
|
* @param options.deviceConfirmedOn - An enum to indicate what device confirmed the transaction.
|
|
353
348
|
* @param options.method - RPC method that requested the transaction.
|
|
354
349
|
* @param options.nestedTransactions - Params for any nested transactions encoded in the data.
|
|
355
350
|
* @param options.origin - The origin of the transaction request, such as a dApp hostname.
|
|
356
|
-
* @param options.publishHook - Custom logic to publish the transaction.
|
|
357
351
|
* @param options.requireApproval - Whether the transaction requires approval by the user, defaults to true unless explicitly disabled.
|
|
358
352
|
* @param options.securityAlertResponse - Response from security validator.
|
|
359
353
|
* @param options.sendFlowHistory - The sendFlowHistory entries to add.
|
|
@@ -367,7 +361,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
367
361
|
*/
|
|
368
362
|
async addTransaction(txParams, options) {
|
|
369
363
|
(0, logger_1.projectLogger)('Adding transaction', txParams, options);
|
|
370
|
-
const { actionId,
|
|
364
|
+
const { actionId, deviceConfirmedOn, method, nestedTransactions, networkClientId, origin, requireApproval, securityAlertResponse, sendFlowHistory, swaps = {}, traceContext, type, } = options;
|
|
371
365
|
txParams = (0, utils_2.normalizeTransactionParams)(txParams);
|
|
372
366
|
if (!__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").has(networkClientId)) {
|
|
373
367
|
throw new Error(`Network client not found - ${networkClientId}`);
|
|
@@ -401,7 +395,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
401
395
|
: {
|
|
402
396
|
// Add actionId to txMeta to check if same actionId is seen again
|
|
403
397
|
actionId,
|
|
404
|
-
batchId,
|
|
405
398
|
chainId,
|
|
406
399
|
dappSuggestedGasFees,
|
|
407
400
|
deviceConfirmedOn,
|
|
@@ -462,10 +455,9 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
462
455
|
}
|
|
463
456
|
return {
|
|
464
457
|
result: this.processApproval(addedTransactionMeta, {
|
|
465
|
-
actionId,
|
|
466
458
|
isExisting: Boolean(existingTransactionMeta),
|
|
467
|
-
publishHook,
|
|
468
459
|
requireApproval,
|
|
460
|
+
actionId,
|
|
469
461
|
traceContext,
|
|
470
462
|
}),
|
|
471
463
|
transactionMeta: addedTransactionMeta,
|
|
@@ -1112,21 +1104,35 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1112
1104
|
this.signAbortCallbacks.delete(transactionId);
|
|
1113
1105
|
}
|
|
1114
1106
|
/**
|
|
1115
|
-
* Update the
|
|
1116
|
-
* These transactions will be submitted with the main transaction as a batch.
|
|
1107
|
+
* Update the transaction data of a single nested transaction within an atomic batch transaction.
|
|
1117
1108
|
*
|
|
1118
|
-
* @param
|
|
1119
|
-
* @param
|
|
1120
|
-
* @param
|
|
1109
|
+
* @param options - The options bag.
|
|
1110
|
+
* @param options.transactionId - ID of the atomic batch transaction.
|
|
1111
|
+
* @param options.transactionIndex - Index of the nested transaction within the atomic batch transaction.
|
|
1112
|
+
* @param options.transactionData - New data to set for the nested transaction.
|
|
1113
|
+
* @returns The updated data for the atomic batch transaction.
|
|
1121
1114
|
*/
|
|
1122
|
-
|
|
1123
|
-
(0, logger_1.projectLogger)('Updating batch
|
|
1124
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1115
|
+
updateAtomicBatchData({ transactionId, transactionIndex, transactionData, }) {
|
|
1116
|
+
(0, logger_1.projectLogger)('Updating atomic batch data', {
|
|
1125
1117
|
transactionId,
|
|
1126
|
-
|
|
1118
|
+
transactionIndex,
|
|
1119
|
+
transactionData,
|
|
1120
|
+
});
|
|
1121
|
+
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1122
|
+
transactionId,
|
|
1123
|
+
note: 'TransactionController#updateAtomicBatchData - Atomic batch data updated',
|
|
1127
1124
|
}, (transactionMeta) => {
|
|
1128
|
-
|
|
1125
|
+
const { nestedTransactions, txParams } = transactionMeta;
|
|
1126
|
+
const from = txParams.from;
|
|
1127
|
+
const nestedTransaction = nestedTransactions?.[transactionIndex];
|
|
1128
|
+
if (!nestedTransaction) {
|
|
1129
|
+
throw new Error(`Nested transaction not found with index - ${transactionIndex}`);
|
|
1130
|
+
}
|
|
1131
|
+
nestedTransaction.data = transactionData;
|
|
1132
|
+
const batchTransaction = (0, eip7702_1.generateEIP7702BatchTransaction)(from, nestedTransactions);
|
|
1133
|
+
transactionMeta.txParams.data = batchTransaction.data;
|
|
1129
1134
|
});
|
|
1135
|
+
return updatedTransactionMeta.txParams.data;
|
|
1130
1136
|
}
|
|
1131
1137
|
addMetadata(transactionMeta) {
|
|
1132
1138
|
(0, validation_1.validateTxParams)(transactionMeta.txParams);
|
|
@@ -1177,7 +1183,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1177
1183
|
this.failTransaction(transactionMeta, new Error('Transaction incomplete at startup'));
|
|
1178
1184
|
}
|
|
1179
1185
|
}
|
|
1180
|
-
async processApproval(transactionMeta, {
|
|
1186
|
+
async processApproval(transactionMeta, { isExisting = false, requireApproval, shouldShowRequest = true, actionId, traceContext, }) {
|
|
1181
1187
|
const transactionId = transactionMeta.id;
|
|
1182
1188
|
let resultCallbacks;
|
|
1183
1189
|
const { meta, isCompleted } = this.isTransactionCompleted(transactionId);
|
|
@@ -1204,7 +1210,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1204
1210
|
}
|
|
1205
1211
|
const { isCompleted: isTxCompleted } = this.isTransactionCompleted(transactionId);
|
|
1206
1212
|
if (!isTxCompleted) {
|
|
1207
|
-
const approvalResult = await this.approveTransaction(transactionId, traceContext
|
|
1213
|
+
const approvalResult = await this.approveTransaction(transactionId, traceContext);
|
|
1208
1214
|
if (approvalResult === ApprovalState.SkippedViaBeforePublishHook &&
|
|
1209
1215
|
resultCallbacks) {
|
|
1210
1216
|
resultCallbacks.success();
|
|
@@ -1238,7 +1244,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1238
1244
|
switch (finalMeta?.status) {
|
|
1239
1245
|
case types_1.TransactionStatus.failed:
|
|
1240
1246
|
resultCallbacks?.error(finalMeta.error);
|
|
1241
|
-
throw rpc_errors_1.rpcErrors.internal(finalMeta.error.
|
|
1247
|
+
throw rpc_errors_1.rpcErrors.internal(finalMeta.error.message);
|
|
1242
1248
|
case types_1.TransactionStatus.submitted:
|
|
1243
1249
|
resultCallbacks?.success();
|
|
1244
1250
|
return finalMeta.hash;
|
|
@@ -1256,14 +1262,12 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1256
1262
|
*
|
|
1257
1263
|
* @param transactionId - The ID of the transaction to approve.
|
|
1258
1264
|
* @param traceContext - The parent context for any new traces.
|
|
1259
|
-
* @param publishHookOverride - Custom logic to publish the transaction.
|
|
1260
1265
|
* @returns The state of the approval.
|
|
1261
1266
|
*/
|
|
1262
|
-
async approveTransaction(transactionId, traceContext
|
|
1263
|
-
|
|
1264
|
-
|
|
1267
|
+
async approveTransaction(transactionId, traceContext) {
|
|
1268
|
+
const cleanupTasks = new Array();
|
|
1269
|
+
cleanupTasks.push(await this.mutex.acquire());
|
|
1265
1270
|
let transactionMeta = this.getTransactionOrThrow(transactionId);
|
|
1266
|
-
(0, logger_1.projectLogger)('Approving transaction', transactionMeta);
|
|
1267
1271
|
try {
|
|
1268
1272
|
if (!this.sign) {
|
|
1269
1273
|
this.failTransaction(transactionMeta, new Error('No sign method defined.'));
|
|
@@ -1278,9 +1282,10 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1278
1282
|
return ApprovalState.NotApproved;
|
|
1279
1283
|
}
|
|
1280
1284
|
this.approvingTransactionIds.add(transactionId);
|
|
1281
|
-
|
|
1285
|
+
cleanupTasks.push(() => this.approvingTransactionIds.delete(transactionId));
|
|
1282
1286
|
const [nonce, releaseNonce] = await (0, nonce_1.getNextNonce)(transactionMeta, (address) => __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNonceLock(address, transactionMeta.networkClientId));
|
|
1283
|
-
|
|
1287
|
+
// must set transaction to submitted/failed before releasing lock
|
|
1288
|
+
releaseNonce && cleanupTasks.push(releaseNonce);
|
|
1284
1289
|
transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1285
1290
|
transactionId,
|
|
1286
1291
|
note: 'TransactionController#approveTransaction - Transaction approved',
|
|
@@ -1317,19 +1322,8 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1317
1322
|
}
|
|
1318
1323
|
(0, logger_1.projectLogger)('Publishing transaction', transactionMeta.txParams);
|
|
1319
1324
|
let hash;
|
|
1320
|
-
clearNonceLock?.();
|
|
1321
|
-
clearNonceLock = undefined;
|
|
1322
|
-
if (transactionMeta.batchTransactions?.length) {
|
|
1323
|
-
(0, logger_1.projectLogger)('Found batch transactions', transactionMeta.batchTransactions);
|
|
1324
|
-
const extraTransactionsPublishHook = new ExtraTransactionsPublishHook_1.ExtraTransactionsPublishHook({
|
|
1325
|
-
addTransactionBatch: this.addTransactionBatch.bind(this),
|
|
1326
|
-
transactions: transactionMeta.batchTransactions,
|
|
1327
|
-
});
|
|
1328
|
-
publishHookOverride = extraTransactionsPublishHook.getHook();
|
|
1329
|
-
}
|
|
1330
1325
|
await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Publish', parentContext: traceContext }, async () => {
|
|
1331
|
-
|
|
1332
|
-
({ transactionHash: hash } = await publishHook(transactionMeta, rawTx));
|
|
1326
|
+
({ transactionHash: hash } = await this.publish(transactionMeta, rawTx));
|
|
1333
1327
|
if (hash === undefined) {
|
|
1334
1328
|
hash = await this.publishTransaction(ethQuery, {
|
|
1335
1329
|
...transactionMeta,
|
|
@@ -1365,8 +1359,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1365
1359
|
return ApprovalState.NotApproved;
|
|
1366
1360
|
}
|
|
1367
1361
|
finally {
|
|
1368
|
-
|
|
1369
|
-
clearNonceLock?.();
|
|
1362
|
+
cleanupTasks.forEach((task) => task());
|
|
1370
1363
|
}
|
|
1371
1364
|
}
|
|
1372
1365
|
async publishTransaction(ethQuery, transactionMeta, { skipSubmitHistory } = {}) {
|
|
@@ -1721,8 +1714,8 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1721
1714
|
transactionMeta,
|
|
1722
1715
|
});
|
|
1723
1716
|
}
|
|
1724
|
-
getNonceTrackerTransactions(
|
|
1725
|
-
return (0, nonce_1.getAndFormatTransactionsForNonceTracker)(chainId, address,
|
|
1717
|
+
getNonceTrackerTransactions(status, address, chainId) {
|
|
1718
|
+
return (0, nonce_1.getAndFormatTransactionsForNonceTracker)(chainId, address, status, this.state.transactions);
|
|
1726
1719
|
}
|
|
1727
1720
|
onConfirmedTransaction(transactionMeta) {
|
|
1728
1721
|
(0, logger_1.projectLogger)('Processing confirmed transaction', transactionMeta.id);
|
|
@@ -1783,7 +1776,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1783
1776
|
}
|
|
1784
1777
|
}
|
|
1785
1778
|
exports.TransactionController = TransactionController;
|
|
1786
|
-
_TransactionController_internalEvents = new WeakMap(), _TransactionController_methodDataHelper = new WeakMap(), _TransactionController_incomingTransactionChainIds = new WeakMap(), _TransactionController_incomingTransactionHelper = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_pendingTransactionOptions = new WeakMap(),
|
|
1779
|
+
_TransactionController_internalEvents = new WeakMap(), _TransactionController_methodDataHelper = new WeakMap(), _TransactionController_incomingTransactionChainIds = new WeakMap(), _TransactionController_incomingTransactionHelper = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_pendingTransactionOptions = new WeakMap(), _TransactionController_trace = new WeakMap(), _TransactionController_transactionHistoryLimit = new WeakMap(), _TransactionController_isFirstTimeInteractionEnabled = new WeakMap(), _TransactionController_isSimulationEnabled = new WeakMap(), _TransactionController_testGasFeeFlows = new WeakMap(), _TransactionController_multichainTrackingHelper = new WeakMap(), _TransactionController_checkForPendingTransactionAndStartPolling = new WeakMap(), _TransactionController_instances = new WeakSet(), _TransactionController_retryTransaction = async function _TransactionController_retryTransaction({ actionId, afterSubmit, estimatedBaseFee, gasValues, label, prepareTransactionParams, rate, transactionId, transactionType, }) {
|
|
1787
1780
|
// If transaction is found for same action id, do not create a new transaction.
|
|
1788
1781
|
if (this.getTransactionWithActionId(actionId)) {
|
|
1789
1782
|
return;
|
|
@@ -1873,7 +1866,7 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
1873
1866
|
// TODO: Fix types
|
|
1874
1867
|
blockTracker,
|
|
1875
1868
|
getPendingTransactions: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getNonceTrackerPendingTransactions).bind(this, chainId),
|
|
1876
|
-
getConfirmedTransactions: this.getNonceTrackerTransactions.bind(this,
|
|
1869
|
+
getConfirmedTransactions: this.getNonceTrackerTransactions.bind(this, types_1.TransactionStatus.confirmed, chainId),
|
|
1877
1870
|
});
|
|
1878
1871
|
}, _TransactionController_createPendingTransactionTracker = function _TransactionController_createPendingTransactionTracker({ provider, blockTracker, chainId, networkClientId, }) {
|
|
1879
1872
|
const ethQuery = new eth_query_1.default(provider);
|
|
@@ -1912,11 +1905,7 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
1912
1905
|
pendingTransactionTracker.hub.on('transaction-failed', this.failTransaction.bind(this));
|
|
1913
1906
|
pendingTransactionTracker.hub.on('transaction-updated', this.updateTransaction.bind(this));
|
|
1914
1907
|
}, _TransactionController_getNonceTrackerPendingTransactions = function _TransactionController_getNonceTrackerPendingTransactions(chainId, address) {
|
|
1915
|
-
const standardPendingTransactions = this.getNonceTrackerTransactions(
|
|
1916
|
-
types_1.TransactionStatus.approved,
|
|
1917
|
-
types_1.TransactionStatus.signed,
|
|
1918
|
-
types_1.TransactionStatus.submitted,
|
|
1919
|
-
], address, chainId);
|
|
1908
|
+
const standardPendingTransactions = this.getNonceTrackerTransactions(types_1.TransactionStatus.submitted, address, chainId);
|
|
1920
1909
|
const externalPendingTransactions = this.getExternalPendingTransactions(address, chainId);
|
|
1921
1910
|
return [...standardPendingTransactions, ...externalPendingTransactions];
|
|
1922
1911
|
}, _TransactionController_getGasFeeFlows = function _TransactionController_getGasFeeFlows() {
|
|
@@ -1930,6 +1919,9 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
1930
1919
|
let resimulateResponse;
|
|
1931
1920
|
this.update((state) => {
|
|
1932
1921
|
const index = state.transactions.findIndex(({ id }) => id === transactionId);
|
|
1922
|
+
if (index === -1) {
|
|
1923
|
+
throw new Error(`Cannot update transaction as ID not found - ${transactionId}`);
|
|
1924
|
+
}
|
|
1933
1925
|
let transactionMeta = state.transactions[index];
|
|
1934
1926
|
const originalTransactionMeta = (0, lodash_1.cloneDeep)(transactionMeta);
|
|
1935
1927
|
transactionMeta = callback(transactionMeta) ?? transactionMeta;
|