@metamask/transaction-controller 60.9.0 → 61.0.0
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 +31 -1
- package/dist/TransactionController.cjs +107 -61
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +34 -3
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +34 -3
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +107 -61
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.cjs +12 -2
- package/dist/helpers/IncomingTransactionHelper.cjs.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.d.cts.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.d.mts.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.mjs +12 -2
- package/dist/helpers/IncomingTransactionHelper.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/package.json +13 -12
|
@@ -72,31 +72,31 @@ const metadata = {
|
|
|
72
72
|
transactions: {
|
|
73
73
|
includeInStateLogs: true,
|
|
74
74
|
persist: true,
|
|
75
|
-
|
|
75
|
+
includeInDebugSnapshot: false,
|
|
76
76
|
usedInUi: true,
|
|
77
77
|
},
|
|
78
78
|
transactionBatches: {
|
|
79
79
|
includeInStateLogs: true,
|
|
80
80
|
persist: true,
|
|
81
|
-
|
|
81
|
+
includeInDebugSnapshot: false,
|
|
82
82
|
usedInUi: true,
|
|
83
83
|
},
|
|
84
84
|
methodData: {
|
|
85
85
|
includeInStateLogs: true,
|
|
86
86
|
persist: true,
|
|
87
|
-
|
|
87
|
+
includeInDebugSnapshot: false,
|
|
88
88
|
usedInUi: true,
|
|
89
89
|
},
|
|
90
90
|
lastFetchedBlockNumbers: {
|
|
91
91
|
includeInStateLogs: true,
|
|
92
92
|
persist: true,
|
|
93
|
-
|
|
93
|
+
includeInDebugSnapshot: false,
|
|
94
94
|
usedInUi: false,
|
|
95
95
|
},
|
|
96
96
|
submitHistory: {
|
|
97
97
|
includeInStateLogs: true,
|
|
98
98
|
persist: true,
|
|
99
|
-
|
|
99
|
+
includeInDebugSnapshot: false,
|
|
100
100
|
usedInUi: false,
|
|
101
101
|
},
|
|
102
102
|
};
|
|
@@ -201,7 +201,7 @@ export class TransactionController extends BaseController {
|
|
|
201
201
|
_TransactionController_checkForPendingTransactionAndStartPolling.set(this, () => {
|
|
202
202
|
__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").checkForPendingTransactionAndStartPolling();
|
|
203
203
|
});
|
|
204
|
-
this.
|
|
204
|
+
this.messenger = messenger;
|
|
205
205
|
__classPrivateFieldSet(this, _TransactionController_afterAdd, hooks?.afterAdd ?? (() => Promise.resolve({})), "f");
|
|
206
206
|
__classPrivateFieldSet(this, _TransactionController_afterSign, hooks?.afterSign ?? (() => true), "f");
|
|
207
207
|
__classPrivateFieldSet(this, _TransactionController_afterSimulate, hooks?.afterSimulate ?? (() => Promise.resolve({})), "f");
|
|
@@ -237,19 +237,19 @@ export class TransactionController extends BaseController {
|
|
|
237
237
|
__classPrivateFieldSet(this, _TransactionController_trace, trace ?? ((_request, fn) => fn?.()), "f");
|
|
238
238
|
__classPrivateFieldSet(this, _TransactionController_transactionHistoryLimit, transactionHistoryLimit, "f");
|
|
239
239
|
const findNetworkClientIdByChainId = (chainId) => {
|
|
240
|
-
return this.
|
|
240
|
+
return this.messenger.call(`NetworkController:findNetworkClientIdByChainId`, chainId);
|
|
241
241
|
};
|
|
242
242
|
__classPrivateFieldSet(this, _TransactionController_multichainTrackingHelper, new MultichainTrackingHelper({
|
|
243
243
|
findNetworkClientIdByChainId,
|
|
244
244
|
getNetworkClientById: ((networkClientId) => {
|
|
245
|
-
return this.
|
|
245
|
+
return this.messenger.call(`NetworkController:getNetworkClientById`, networkClientId);
|
|
246
246
|
}),
|
|
247
247
|
getNetworkClientRegistry,
|
|
248
248
|
removePendingTransactionTrackerListeners: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_removePendingTransactionTrackerListeners).bind(this),
|
|
249
249
|
createNonceTracker: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createNonceTracker).bind(this),
|
|
250
250
|
createPendingTransactionTracker: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createPendingTransactionTracker).bind(this),
|
|
251
251
|
onNetworkStateChange: (listener) => {
|
|
252
|
-
this.
|
|
252
|
+
this.messenger.subscribe('NetworkController:stateChange', listener);
|
|
253
253
|
},
|
|
254
254
|
}), "f");
|
|
255
255
|
__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").initialize();
|
|
@@ -263,9 +263,9 @@ export class TransactionController extends BaseController {
|
|
|
263
263
|
getTransactions: () => this.state.transactions,
|
|
264
264
|
getTransactionBatches: () => this.state.transactionBatches,
|
|
265
265
|
layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
|
|
266
|
-
messenger: this.
|
|
266
|
+
messenger: this.messenger,
|
|
267
267
|
onStateChange: (listener) => {
|
|
268
|
-
this.
|
|
268
|
+
this.messenger.subscribe('TransactionController:stateChange', listener);
|
|
269
269
|
},
|
|
270
270
|
});
|
|
271
271
|
gasFeePoller.hub.on('transaction-updated', __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onGasFeePollerTransactionUpdate).bind(this));
|
|
@@ -285,7 +285,7 @@ export class TransactionController extends BaseController {
|
|
|
285
285
|
getLocalTransactions: () => this.state.transactions,
|
|
286
286
|
includeTokenTransfers: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").includeTokenTransfers,
|
|
287
287
|
isEnabled: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").isEnabled,
|
|
288
|
-
messenger: this.
|
|
288
|
+
messenger: this.messenger,
|
|
289
289
|
remoteTransactionSource: new AccountsApiRemoteTransactionSource(),
|
|
290
290
|
trimTransactions: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_trimTransactionsForState).bind(this),
|
|
291
291
|
updateTransactions: __classPrivateFieldGet(this, _TransactionController_incomingTransactionOptions, "f").updateTransactions,
|
|
@@ -293,11 +293,11 @@ export class TransactionController extends BaseController {
|
|
|
293
293
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addIncomingTransactionHelperListeners).call(this, __classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f"));
|
|
294
294
|
// when transactionsController state changes
|
|
295
295
|
// check for pending transactions and start polling if there are any
|
|
296
|
-
this.
|
|
296
|
+
this.messenger.subscribe('TransactionController:stateChange', __classPrivateFieldGet(this, _TransactionController_checkForPendingTransactionAndStartPolling, "f"));
|
|
297
297
|
new ResimulateHelper({
|
|
298
298
|
simulateTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSimulationData).bind(this),
|
|
299
299
|
onTransactionsUpdate: (listener) => {
|
|
300
|
-
this.
|
|
300
|
+
this.messenger.subscribe('TransactionController:stateChange', listener, (controllerState) => controllerState.transactions);
|
|
301
301
|
},
|
|
302
302
|
getTransactions: () => this.state.transactions,
|
|
303
303
|
});
|
|
@@ -328,7 +328,7 @@ export class TransactionController extends BaseController {
|
|
|
328
328
|
* @returns Result object containing the generated batch ID.
|
|
329
329
|
*/
|
|
330
330
|
async addTransactionBatch(request) {
|
|
331
|
-
const { blockTracker } = this.
|
|
331
|
+
const { blockTracker } = this.messenger.call(`NetworkController:getNetworkClientById`, request.networkClientId);
|
|
332
332
|
return await addTransactionBatch({
|
|
333
333
|
addTransaction: this.addTransaction.bind(this),
|
|
334
334
|
estimateGas: this.estimateGas.bind(this),
|
|
@@ -345,7 +345,7 @@ export class TransactionController extends BaseController {
|
|
|
345
345
|
}),
|
|
346
346
|
getTransaction: (transactionId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId),
|
|
347
347
|
isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f"),
|
|
348
|
-
messenger: this.
|
|
348
|
+
messenger: this.messenger,
|
|
349
349
|
publishBatchHook: __classPrivateFieldGet(this, _TransactionController_publishBatchHook, "f"),
|
|
350
350
|
publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
|
|
351
351
|
publishTransaction: (ethQuery, transactionMeta) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, ethQuery, transactionMeta),
|
|
@@ -365,7 +365,7 @@ export class TransactionController extends BaseController {
|
|
|
365
365
|
return isAtomicBatchSupported({
|
|
366
366
|
...request,
|
|
367
367
|
getEthQuery: (chainId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { chainId }),
|
|
368
|
-
messenger: this.
|
|
368
|
+
messenger: this.messenger,
|
|
369
369
|
publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
|
|
370
370
|
});
|
|
371
371
|
}
|
|
@@ -474,7 +474,7 @@ export class TransactionController extends BaseController {
|
|
|
474
474
|
addedTransactionMeta = updateSwapsTransaction(addedTransactionMeta, transactionType, swaps, {
|
|
475
475
|
isSwapsDisabled: __classPrivateFieldGet(this, _TransactionController_isSwapsDisabled, "f"),
|
|
476
476
|
cancelTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransaction).bind(this),
|
|
477
|
-
messenger: this.
|
|
477
|
+
messenger: this.messenger,
|
|
478
478
|
});
|
|
479
479
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addMetadata).call(this, addedTransactionMeta);
|
|
480
480
|
if (requireApproval !== false) {
|
|
@@ -499,7 +499,7 @@ export class TransactionController extends BaseController {
|
|
|
499
499
|
else {
|
|
500
500
|
log('Skipping simulation & first interaction update as approval not required');
|
|
501
501
|
}
|
|
502
|
-
this.
|
|
502
|
+
this.messenger.publish(`${controllerName}:unapprovedTransactionAdded`, addedTransactionMeta);
|
|
503
503
|
}
|
|
504
504
|
return {
|
|
505
505
|
result: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_processApproval).call(this, addedTransactionMeta, {
|
|
@@ -552,7 +552,7 @@ export class TransactionController extends BaseController {
|
|
|
552
552
|
txParams.value = '0x0';
|
|
553
553
|
},
|
|
554
554
|
afterSubmit: (newTransactionMeta) => {
|
|
555
|
-
this.
|
|
555
|
+
this.messenger.publish(`${controllerName}:transactionFinished`, newTransactionMeta);
|
|
556
556
|
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${newTransactionMeta.id}:finished`, newTransactionMeta);
|
|
557
557
|
},
|
|
558
558
|
});
|
|
@@ -576,7 +576,7 @@ export class TransactionController extends BaseController {
|
|
|
576
576
|
transactionId,
|
|
577
577
|
transactionType: TransactionType.retry,
|
|
578
578
|
afterSubmit: (newTransactionMeta) => {
|
|
579
|
-
this.
|
|
579
|
+
this.messenger.publish(`${controllerName}:speedupTransactionAdded`, newTransactionMeta);
|
|
580
580
|
},
|
|
581
581
|
});
|
|
582
582
|
}
|
|
@@ -599,7 +599,7 @@ export class TransactionController extends BaseController {
|
|
|
599
599
|
ignoreDelegationSignatures,
|
|
600
600
|
isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
|
|
601
601
|
getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
|
|
602
|
-
messenger: this.
|
|
602
|
+
messenger: this.messenger,
|
|
603
603
|
txParams: transaction,
|
|
604
604
|
});
|
|
605
605
|
return { gas: estimatedGas, simulationFails };
|
|
@@ -621,7 +621,7 @@ export class TransactionController extends BaseController {
|
|
|
621
621
|
ethQuery,
|
|
622
622
|
isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
|
|
623
623
|
getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
|
|
624
|
-
messenger: this.
|
|
624
|
+
messenger: this.messenger,
|
|
625
625
|
txParams: transaction,
|
|
626
626
|
});
|
|
627
627
|
const gas = addGasBuffer(estimatedGas, blockGasLimit, multiplier);
|
|
@@ -723,7 +723,7 @@ export class TransactionController extends BaseController {
|
|
|
723
723
|
log('Error while updating post balance', error);
|
|
724
724
|
throw error;
|
|
725
725
|
});
|
|
726
|
-
this.
|
|
726
|
+
this.messenger.publish(`${controllerName}:transactionConfirmed`, updatedTransactionMeta);
|
|
727
727
|
}
|
|
728
728
|
catch (error) {
|
|
729
729
|
console.error('Failed to confirm external transaction', error);
|
|
@@ -920,7 +920,7 @@ export class TransactionController extends BaseController {
|
|
|
920
920
|
}
|
|
921
921
|
await updateTransactionLayer1GasFee({
|
|
922
922
|
layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
|
|
923
|
-
messenger: this.
|
|
923
|
+
messenger: this.messenger,
|
|
924
924
|
provider,
|
|
925
925
|
transactionMeta: updatedTransaction,
|
|
926
926
|
});
|
|
@@ -1048,7 +1048,7 @@ export class TransactionController extends BaseController {
|
|
|
1048
1048
|
this.updateTransaction(updatedTransactionMeta, `${controllerName}:updateCustodialTransaction - Custodial transaction updated`);
|
|
1049
1049
|
if (status &&
|
|
1050
1050
|
[TransactionStatus.submitted, TransactionStatus.failed].includes(status)) {
|
|
1051
|
-
this.
|
|
1051
|
+
this.messenger.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
|
|
1052
1052
|
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${updatedTransactionMeta.id}:finished`, updatedTransactionMeta);
|
|
1053
1053
|
}
|
|
1054
1054
|
return updatedTransactionMeta;
|
|
@@ -1145,7 +1145,7 @@ export class TransactionController extends BaseController {
|
|
|
1145
1145
|
networkClientId,
|
|
1146
1146
|
};
|
|
1147
1147
|
// Guaranteed as the default gas fee flow matches all transactions.
|
|
1148
|
-
const gasFeeFlow = getGasFeeFlow(transactionMeta, __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"), this.
|
|
1148
|
+
const gasFeeFlow = getGasFeeFlow(transactionMeta, __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"), this.messenger);
|
|
1149
1149
|
const ethQuery = new EthQuery(provider);
|
|
1150
1150
|
const gasFeeControllerData = await __classPrivateFieldGet(this, _TransactionController_getGasFeeEstimates, "f").call(this, {
|
|
1151
1151
|
networkClientId,
|
|
@@ -1153,7 +1153,7 @@ export class TransactionController extends BaseController {
|
|
|
1153
1153
|
return gasFeeFlow.getGasFees({
|
|
1154
1154
|
ethQuery,
|
|
1155
1155
|
gasFeeControllerData,
|
|
1156
|
-
messenger: this.
|
|
1156
|
+
messenger: this.messenger,
|
|
1157
1157
|
transactionMeta,
|
|
1158
1158
|
});
|
|
1159
1159
|
}
|
|
@@ -1173,7 +1173,7 @@ export class TransactionController extends BaseController {
|
|
|
1173
1173
|
});
|
|
1174
1174
|
return await getTransactionLayer1GasFee({
|
|
1175
1175
|
layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
|
|
1176
|
-
messenger: this.
|
|
1176
|
+
messenger: this.messenger,
|
|
1177
1177
|
provider,
|
|
1178
1178
|
transactionMeta: {
|
|
1179
1179
|
txParams: transactionParams,
|
|
@@ -1305,6 +1305,50 @@ export class TransactionController extends BaseController {
|
|
|
1305
1305
|
];
|
|
1306
1306
|
});
|
|
1307
1307
|
}
|
|
1308
|
+
/**
|
|
1309
|
+
* Emulate a new transaction.
|
|
1310
|
+
*
|
|
1311
|
+
* @param transactionId - The transaction ID.
|
|
1312
|
+
*/
|
|
1313
|
+
emulateNewTransaction(transactionId) {
|
|
1314
|
+
const transactionMeta = this.state.transactions.find((tx) => tx.id === transactionId);
|
|
1315
|
+
if (!transactionMeta) {
|
|
1316
|
+
return;
|
|
1317
|
+
}
|
|
1318
|
+
if (transactionMeta.type === TransactionType.swap) {
|
|
1319
|
+
this.messenger.publish('TransactionController:transactionNewSwap', {
|
|
1320
|
+
transactionMeta,
|
|
1321
|
+
});
|
|
1322
|
+
}
|
|
1323
|
+
else if (transactionMeta.type === TransactionType.swapApproval) {
|
|
1324
|
+
this.messenger.publish('TransactionController:transactionNewSwapApproval', { transactionMeta });
|
|
1325
|
+
}
|
|
1326
|
+
}
|
|
1327
|
+
/**
|
|
1328
|
+
* Emulate a transaction update.
|
|
1329
|
+
*
|
|
1330
|
+
* @param transactionMeta - Transaction metadata.
|
|
1331
|
+
*/
|
|
1332
|
+
emulateTransactionUpdate(transactionMeta) {
|
|
1333
|
+
const updatedTransactionMeta = {
|
|
1334
|
+
...transactionMeta,
|
|
1335
|
+
txParams: {
|
|
1336
|
+
...transactionMeta.txParams,
|
|
1337
|
+
from: this.messenger.call('AccountsController:getSelectedAccount')
|
|
1338
|
+
.address,
|
|
1339
|
+
},
|
|
1340
|
+
};
|
|
1341
|
+
const transactionExists = this.state.transactions.some((tx) => tx.id === updatedTransactionMeta.id);
|
|
1342
|
+
if (!transactionExists) {
|
|
1343
|
+
this.update((state) => {
|
|
1344
|
+
state.transactions.push(updatedTransactionMeta);
|
|
1345
|
+
});
|
|
1346
|
+
}
|
|
1347
|
+
this.updateTransaction(updatedTransactionMeta, 'Generated from user operation');
|
|
1348
|
+
this.messenger.publish('TransactionController:transactionStatusUpdated', {
|
|
1349
|
+
transactionMeta: updatedTransactionMeta,
|
|
1350
|
+
});
|
|
1351
|
+
}
|
|
1308
1352
|
}
|
|
1309
1353
|
_TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSign = new WeakMap(), _TransactionController_afterSimulate = new WeakMap(), _TransactionController_approvingTransactionIds = new WeakMap(), _TransactionController_beforeCheckPendingTransaction = new WeakMap(), _TransactionController_beforePublish = new WeakMap(), _TransactionController_beforeSign = new WeakMap(), _TransactionController_gasFeeFlows = new WeakMap(), _TransactionController_getAdditionalSignArguments = new WeakMap(), _TransactionController_getCurrentAccountEIP1559Compatibility = new WeakMap(), _TransactionController_getCurrentNetworkEIP1559Compatibility = new WeakMap(), _TransactionController_getExternalPendingTransactions = new WeakMap(), _TransactionController_getGasFeeEstimates = new WeakMap(), _TransactionController_getNetworkState = new WeakMap(), _TransactionController_getPermittedAccounts = new WeakMap(), _TransactionController_getSavedGasFees = new WeakMap(), _TransactionController_getSimulationConfig = new WeakMap(), _TransactionController_incomingTransactionHelper = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_internalEvents = new WeakMap(), _TransactionController_isAutomaticGasFeeUpdateEnabled = new WeakMap(), _TransactionController_isEIP7702GasFeeTokensEnabled = new WeakMap(), _TransactionController_isFirstTimeInteractionEnabled = new WeakMap(), _TransactionController_isHistoryDisabled = new WeakMap(), _TransactionController_isSendFlowHistoryDisabled = new WeakMap(), _TransactionController_isSimulationEnabled = new WeakMap(), _TransactionController_isSwapsDisabled = new WeakMap(), _TransactionController_layer1GasFeeFlows = new WeakMap(), _TransactionController_methodDataHelper = new WeakMap(), _TransactionController_multichainTrackingHelper = new WeakMap(), _TransactionController_pendingTransactionOptions = new WeakMap(), _TransactionController_publicKeyEIP7702 = new WeakMap(), _TransactionController_publish = new WeakMap(), _TransactionController_publishBatchHook = new WeakMap(), _TransactionController_securityProviderRequest = new WeakMap(), _TransactionController_sign = new WeakMap(), _TransactionController_signAbortCallbacks = new WeakMap(), _TransactionController_skipSimulationTransactionIds = new WeakMap(), _TransactionController_testGasFeeFlows = new WeakMap(), _TransactionController_trace = new WeakMap(), _TransactionController_transactionHistoryLimit = 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, }) {
|
|
1310
1354
|
// If transaction is found for same action id, do not create a new transaction.
|
|
@@ -1362,11 +1406,11 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1362
1406
|
newTransactionMeta.hash = hash;
|
|
1363
1407
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addMetadata).call(this, newTransactionMeta);
|
|
1364
1408
|
// speedUpTransaction has no approval request, so we assume the user has already approved the transaction
|
|
1365
|
-
this.
|
|
1409
|
+
this.messenger.publish(`${controllerName}:transactionApproved`, {
|
|
1366
1410
|
transactionMeta: newTransactionMeta,
|
|
1367
1411
|
actionId,
|
|
1368
1412
|
});
|
|
1369
|
-
this.
|
|
1413
|
+
this.messenger.publish(`${controllerName}:transactionSubmitted`, {
|
|
1370
1414
|
transactionMeta: newTransactionMeta,
|
|
1371
1415
|
actionId,
|
|
1372
1416
|
});
|
|
@@ -1413,12 +1457,12 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1413
1457
|
gasFeeFlows: __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"),
|
|
1414
1458
|
getGasFeeEstimates: __classPrivateFieldGet(this, _TransactionController_getGasFeeEstimates, "f"),
|
|
1415
1459
|
getSavedGasFees: __classPrivateFieldGet(this, _TransactionController_getSavedGasFees, "f").bind(this),
|
|
1416
|
-
messenger: this.
|
|
1460
|
+
messenger: this.messenger,
|
|
1417
1461
|
txMeta: transactionMeta,
|
|
1418
1462
|
}));
|
|
1419
1463
|
await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Update Layer 1 Gas Fees', parentContext: traceContext }, async () => await updateTransactionLayer1GasFee({
|
|
1420
1464
|
layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
|
|
1421
|
-
messenger: this.
|
|
1465
|
+
messenger: this.messenger,
|
|
1422
1466
|
provider,
|
|
1423
1467
|
transactionMeta,
|
|
1424
1468
|
}));
|
|
@@ -1463,7 +1507,7 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1463
1507
|
resultCallbacks.success();
|
|
1464
1508
|
}
|
|
1465
1509
|
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
|
|
1466
|
-
this.
|
|
1510
|
+
this.messenger.publish(`${controllerName}:transactionApproved`, {
|
|
1467
1511
|
transactionMeta: updatedTransactionMeta,
|
|
1468
1512
|
actionId,
|
|
1469
1513
|
});
|
|
@@ -1551,7 +1595,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1551
1595
|
const rawTx = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Sign', parentContext: traceContext }, () => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_signTransaction).call(this, transactionMeta));
|
|
1552
1596
|
if (!(await __classPrivateFieldGet(this, _TransactionController_beforePublish, "f").call(this, transactionMeta))) {
|
|
1553
1597
|
log('Skipping publishing transaction based on hook');
|
|
1554
|
-
this.
|
|
1598
|
+
this.messenger.publish(`${controllerName}:transactionPublishingSkipped`, transactionMeta);
|
|
1555
1599
|
return ApprovalState.SkippedViaBeforePublishHook;
|
|
1556
1600
|
}
|
|
1557
1601
|
if (!rawTx && !transactionMeta.isExternalSign) {
|
|
@@ -1597,10 +1641,10 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1597
1641
|
log('Updated pre-transaction balance', preTxBalance);
|
|
1598
1642
|
}
|
|
1599
1643
|
});
|
|
1600
|
-
this.
|
|
1644
|
+
this.messenger.publish(`${controllerName}:transactionSubmitted`, {
|
|
1601
1645
|
transactionMeta,
|
|
1602
1646
|
});
|
|
1603
|
-
this.
|
|
1647
|
+
this.messenger.publish(`${controllerName}:transactionFinished`, transactionMeta);
|
|
1604
1648
|
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionId}:finished`, transactionMeta);
|
|
1605
1649
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, transactionMeta);
|
|
1606
1650
|
return ApprovalState.Approved;
|
|
@@ -1634,9 +1678,9 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1634
1678
|
status: TransactionStatus.rejected,
|
|
1635
1679
|
error: normalizeTxError(error ?? providerErrors.userRejectedRequest()),
|
|
1636
1680
|
};
|
|
1637
|
-
this.
|
|
1681
|
+
this.messenger.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
|
|
1638
1682
|
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionMeta.id}:finished`, updatedTransactionMeta);
|
|
1639
|
-
this.
|
|
1683
|
+
this.messenger.publish(`${controllerName}:transactionRejected`, {
|
|
1640
1684
|
transactionMeta: updatedTransactionMeta,
|
|
1641
1685
|
actionId,
|
|
1642
1686
|
});
|
|
@@ -1683,7 +1727,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1683
1727
|
id,
|
|
1684
1728
|
parentContext: traceContext,
|
|
1685
1729
|
});
|
|
1686
|
-
return (await this.
|
|
1730
|
+
return (await this.messenger.call('ApprovalController:addRequest', {
|
|
1687
1731
|
id,
|
|
1688
1732
|
origin: origin || ORIGIN_METAMASK,
|
|
1689
1733
|
type,
|
|
@@ -1754,7 +1798,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1754
1798
|
]);
|
|
1755
1799
|
log('Added incoming transactions to state', finalTransactions.length, finalTransactions);
|
|
1756
1800
|
});
|
|
1757
|
-
this.
|
|
1801
|
+
this.messenger.publish(`${controllerName}:incomingTransactionsReceived`, finalTransactions);
|
|
1758
1802
|
}, _TransactionController_generateDappSuggestedGasFees = function _TransactionController_generateDappSuggestedGasFees(txParams, origin) {
|
|
1759
1803
|
if (!origin || origin === ORIGIN_METAMASK) {
|
|
1760
1804
|
return undefined;
|
|
@@ -1836,7 +1880,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1836
1880
|
...transactionMeta,
|
|
1837
1881
|
status: TransactionStatus.dropped,
|
|
1838
1882
|
};
|
|
1839
|
-
this.
|
|
1883
|
+
this.messenger.publish(`${controllerName}:transactionDropped`, {
|
|
1840
1884
|
transactionMeta: updatedTransactionMeta,
|
|
1841
1885
|
});
|
|
1842
1886
|
this.updateTransaction(updatedTransactionMeta, 'TransactionController#setTransactionStatusDropped - Transaction dropped');
|
|
@@ -1872,7 +1916,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1872
1916
|
const { authorizationList, from } = txParams;
|
|
1873
1917
|
const signedAuthorizationList = await signAuthorizationList({
|
|
1874
1918
|
authorizationList,
|
|
1875
|
-
messenger: this.
|
|
1919
|
+
messenger: this.messenger,
|
|
1876
1920
|
transactionMeta,
|
|
1877
1921
|
});
|
|
1878
1922
|
if (signedAuthorizationList) {
|
|
@@ -1920,7 +1964,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1920
1964
|
this.updateTransaction(transactionMetaWithRawTx, 'TransactionController#approveTransaction - RawTransaction added');
|
|
1921
1965
|
return rawTx;
|
|
1922
1966
|
}, _TransactionController_onTransactionStatusChange = function _TransactionController_onTransactionStatusChange(transactionMeta) {
|
|
1923
|
-
this.
|
|
1967
|
+
this.messenger.publish(`${controllerName}:transactionStatusUpdated`, {
|
|
1924
1968
|
transactionMeta,
|
|
1925
1969
|
});
|
|
1926
1970
|
}, _TransactionController_getNonceTrackerTransactions = function _TransactionController_getNonceTrackerTransactions(statuses, address, chainId) {
|
|
@@ -1928,7 +1972,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1928
1972
|
}, _TransactionController_onConfirmedTransaction = function _TransactionController_onConfirmedTransaction(transactionMeta) {
|
|
1929
1973
|
log('Processing confirmed transaction', transactionMeta.id);
|
|
1930
1974
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_markNonceDuplicatesDropped).call(this, transactionMeta.id);
|
|
1931
|
-
this.
|
|
1975
|
+
this.messenger.publish(`${controllerName}:transactionConfirmed`, transactionMeta);
|
|
1932
1976
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, transactionMeta);
|
|
1933
1977
|
// Intentional given potential duration of process.
|
|
1934
1978
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updatePostBalance).call(this, transactionMeta).catch((error) => {
|
|
@@ -1947,7 +1991,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1947
1991
|
getTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).bind(this),
|
|
1948
1992
|
updateTransaction: this.updateTransaction.bind(this),
|
|
1949
1993
|
});
|
|
1950
|
-
this.
|
|
1994
|
+
this.messenger.publish(`${controllerName}:postTransactionBalanceUpdated`, {
|
|
1951
1995
|
transactionMeta: updatedTransactionMeta,
|
|
1952
1996
|
approvalTransactionMeta,
|
|
1953
1997
|
});
|
|
@@ -1978,7 +2022,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1978
2022
|
getGlobalLock: () => __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").acquireNonceLockForChainIdKey({
|
|
1979
2023
|
chainId,
|
|
1980
2024
|
}),
|
|
1981
|
-
messenger: this.
|
|
2025
|
+
messenger: this.messenger,
|
|
1982
2026
|
publishTransaction: (_ethQuery, transactionMeta) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, _ethQuery, transactionMeta, {
|
|
1983
2027
|
skipSubmitHistory: true,
|
|
1984
2028
|
}),
|
|
@@ -2108,7 +2152,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2108
2152
|
chainId,
|
|
2109
2153
|
getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
|
|
2110
2154
|
isEIP7702GasFeeTokensEnabled: __classPrivateFieldGet(this, _TransactionController_isEIP7702GasFeeTokensEnabled, "f"),
|
|
2111
|
-
messenger: this.
|
|
2155
|
+
messenger: this.messenger,
|
|
2112
2156
|
publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
|
|
2113
2157
|
transactionMeta,
|
|
2114
2158
|
});
|
|
@@ -2160,9 +2204,9 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2160
2204
|
state.transactionBatches[index] = updated ?? batch;
|
|
2161
2205
|
});
|
|
2162
2206
|
}, _TransactionController_getSelectedAccount = function _TransactionController_getSelectedAccount() {
|
|
2163
|
-
return this.
|
|
2207
|
+
return this.messenger.call('AccountsController:getSelectedAccount');
|
|
2164
2208
|
}, _TransactionController_getInternalAccounts = function _TransactionController_getInternalAccounts() {
|
|
2165
|
-
const state = this.
|
|
2209
|
+
const state = this.messenger.call('AccountsController:getState');
|
|
2166
2210
|
return Object.values(state.internalAccounts?.accounts ?? {})
|
|
2167
2211
|
.filter((account) => account.type === 'eip155:eoa')
|
|
2168
2212
|
.map((account) => account.address);
|
|
@@ -2202,18 +2246,20 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2202
2246
|
isCustomNetwork,
|
|
2203
2247
|
isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
|
|
2204
2248
|
getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
|
|
2205
|
-
messenger: this.
|
|
2249
|
+
messenger: this.messenger,
|
|
2206
2250
|
txMeta: transactionMeta,
|
|
2207
2251
|
});
|
|
2208
2252
|
}, _TransactionController_registerActionHandlers = function _TransactionController_registerActionHandlers() {
|
|
2209
|
-
this.
|
|
2210
|
-
this.
|
|
2211
|
-
this.
|
|
2212
|
-
this.
|
|
2213
|
-
this.
|
|
2214
|
-
this.
|
|
2215
|
-
this.
|
|
2216
|
-
this.
|
|
2253
|
+
this.messenger.registerActionHandler(`${controllerName}:addTransaction`, this.addTransaction.bind(this));
|
|
2254
|
+
this.messenger.registerActionHandler(`${controllerName}:addTransactionBatch`, this.addTransactionBatch.bind(this));
|
|
2255
|
+
this.messenger.registerActionHandler(`${controllerName}:confirmExternalTransaction`, this.confirmExternalTransaction.bind(this));
|
|
2256
|
+
this.messenger.registerActionHandler(`${controllerName}:estimateGas`, this.estimateGas.bind(this));
|
|
2257
|
+
this.messenger.registerActionHandler(`${controllerName}:getNonceLock`, this.getNonceLock.bind(this));
|
|
2258
|
+
this.messenger.registerActionHandler(`${controllerName}:getTransactions`, this.getTransactions.bind(this));
|
|
2259
|
+
this.messenger.registerActionHandler(`${controllerName}:updateCustodialTransaction`, this.updateCustodialTransaction.bind(this));
|
|
2260
|
+
this.messenger.registerActionHandler(`${controllerName}:updateTransaction`, this.updateTransaction.bind(this));
|
|
2261
|
+
this.messenger.registerActionHandler(`${controllerName}:emulateNewTransaction`, this.emulateNewTransaction.bind(this));
|
|
2262
|
+
this.messenger.registerActionHandler(`${controllerName}:emulateTransactionUpdate`, this.emulateTransactionUpdate.bind(this));
|
|
2217
2263
|
}, _TransactionController_deleteTransaction = function _TransactionController_deleteTransaction(transactionId) {
|
|
2218
2264
|
this.update((state) => {
|
|
2219
2265
|
const transactions = state.transactions.filter(({ id }) => id !== transactionId);
|
|
@@ -2253,13 +2299,13 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2253
2299
|
error: normalizeTxError(error),
|
|
2254
2300
|
};
|
|
2255
2301
|
}
|
|
2256
|
-
this.
|
|
2302
|
+
this.messenger.publish(`${controllerName}:transactionFailed`, {
|
|
2257
2303
|
actionId,
|
|
2258
2304
|
error: error.message,
|
|
2259
2305
|
transactionMeta: newTransactionMeta,
|
|
2260
2306
|
});
|
|
2261
2307
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, newTransactionMeta);
|
|
2262
|
-
this.
|
|
2308
|
+
this.messenger.publish(`${controllerName}:transactionFinished`, newTransactionMeta);
|
|
2263
2309
|
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionMeta.id}:finished`, newTransactionMeta);
|
|
2264
2310
|
}, _TransactionController_runAfterSimulateHook = async function _TransactionController_runAfterSimulateHook(transactionMeta) {
|
|
2265
2311
|
log('Calling afterSimulate hook', transactionMeta);
|