@metamask-previews/transaction-controller 66.0.1-preview-e37aff3 → 66.0.1-preview-92f3bde43
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 -0
- package/dist/TransactionController.cjs +28 -111
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +8 -55
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +8 -55
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +28 -111
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/helpers/PendingTransactionTracker.cjs +4 -82
- package/dist/helpers/PendingTransactionTracker.cjs.map +1 -1
- package/dist/helpers/PendingTransactionTracker.d.cts +1 -3
- package/dist/helpers/PendingTransactionTracker.d.cts.map +1 -1
- package/dist/helpers/PendingTransactionTracker.d.mts +1 -3
- package/dist/helpers/PendingTransactionTracker.d.mts.map +1 -1
- package/dist/helpers/PendingTransactionTracker.mjs +5 -83
- package/dist/helpers/PendingTransactionTracker.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 -14
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +0 -14
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/prepare.cjs +8 -4
- package/dist/utils/prepare.cjs.map +1 -1
- package/dist/utils/prepare.d.cts +5 -4
- package/dist/utils/prepare.d.cts.map +1 -1
- package/dist/utils/prepare.d.mts +5 -4
- package/dist/utils/prepare.d.mts.map +1 -1
- package/dist/utils/prepare.mjs +8 -4
- package/dist/utils/prepare.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -9,7 +9,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
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");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var _TransactionController_instances, _TransactionController_afterAdd,
|
|
12
|
+
var _TransactionController_instances, _TransactionController_afterAdd, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_beforeSign, _TransactionController_gasFeeFlows, _TransactionController_getPermittedAccounts, _TransactionController_getSavedGasFees, _TransactionController_getSimulationConfig, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_internalEvents, _TransactionController_isAutomaticGasFeeUpdateEnabled, _TransactionController_isEIP7702GasFeeTokensEnabled, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_isSwapsDisabled, _TransactionController_isTimeoutEnabled, _TransactionController_layer1GasFeeFlows, _TransactionController_methodDataHelper, _TransactionController_multichainTrackingHelper, _TransactionController_publicKeyEIP7702, _TransactionController_publish, _TransactionController_publishBatchHook, _TransactionController_signAbortCallbacks, _TransactionController_skipSimulationTransactionIds, _TransactionController_testGasFeeFlows, _TransactionController_trace, _TransactionController_retryTransaction, _TransactionController_signExternalTransaction, _TransactionController_addMetadata, _TransactionController_updateGasProperties, _TransactionController_onBootCleanup, _TransactionController_failIncompleteTransactions, _TransactionController_processApproval, _TransactionController_approveTransaction, _TransactionController_publishTransaction, _TransactionController_rejectTransaction, _TransactionController_trimTransactionsForState, _TransactionController_isFinalState, _TransactionController_isLocalFinalState, _TransactionController_requestApproval, _TransactionController_getTransaction, _TransactionController_getTransactionOrThrow, _TransactionController_getApprovalId, _TransactionController_isTransactionCompleted, _TransactionController_onIncomingTransactions, _TransactionController_generateDappSuggestedGasFees, _TransactionController_addExternalTransaction, _TransactionController_markNonceDuplicatesDropped, _TransactionController_setTransactionStatusDropped, _TransactionController_waitForTransactionFinished, _TransactionController_updateTransactionMetaRSV, _TransactionController_getEIP1559Compatibility, _TransactionController_signTransaction, _TransactionController_onTransactionStatusChange, _TransactionController_getNonceTrackerTransactions, _TransactionController_onConfirmedTransaction, _TransactionController_updatePostBalance, _TransactionController_createNonceTracker, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_publishTransactionForRetry, _TransactionController_isTransactionAlreadyConfirmedError, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_isBalanceChangesSkipped, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_onGasFeePollerTransactionBatchUpdate, _TransactionController_updateTransactionBatch, _TransactionController_getSelectedAccount, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory, _TransactionController_updateGasEstimate, _TransactionController_registerActionHandlers, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow, _TransactionController_failTransaction, _TransactionController_defaultPublishHook, _TransactionController_getGasFeeTokens;
|
|
13
13
|
import { BaseController } from "@metamask/base-controller";
|
|
14
14
|
import { ApprovalType, ORIGIN_METAMASK, convertHexToDecimal } from "@metamask/controller-utils";
|
|
15
15
|
import { NetworkClientType } from "@metamask/network-controller";
|
|
@@ -176,7 +176,7 @@ export class TransactionController extends BaseController {
|
|
|
176
176
|
* @param options - The controller options.
|
|
177
177
|
*/
|
|
178
178
|
constructor(options) {
|
|
179
|
-
const { disableSwaps,
|
|
179
|
+
const { disableSwaps, getPermittedAccounts, getSavedGasFees, getSimulationConfig, hooks, incomingTransactions = {}, isAutomaticGasFeeUpdateEnabled, isEIP7702GasFeeTokensEnabled, isFirstTimeInteractionEnabled, isSimulationEnabled, isTimeoutEnabled, messenger, publicKeyEIP7702, state, testGasFeeFlows, trace, } = options;
|
|
180
180
|
super({
|
|
181
181
|
name: controllerName,
|
|
182
182
|
metadata,
|
|
@@ -188,19 +188,11 @@ export class TransactionController extends BaseController {
|
|
|
188
188
|
});
|
|
189
189
|
_TransactionController_instances.add(this);
|
|
190
190
|
_TransactionController_afterAdd.set(this, void 0);
|
|
191
|
-
_TransactionController_afterSign.set(this, void 0);
|
|
192
|
-
_TransactionController_afterSimulate.set(this, void 0);
|
|
193
191
|
_TransactionController_approvingTransactionIds.set(this, new Set());
|
|
194
192
|
_TransactionController_beforeCheckPendingTransaction.set(this, void 0);
|
|
195
193
|
_TransactionController_beforePublish.set(this, void 0);
|
|
196
194
|
_TransactionController_beforeSign.set(this, void 0);
|
|
197
195
|
_TransactionController_gasFeeFlows.set(this, void 0);
|
|
198
|
-
_TransactionController_getAdditionalSignArguments.set(this, void 0);
|
|
199
|
-
_TransactionController_getCurrentAccountEIP1559Compatibility.set(this, void 0);
|
|
200
|
-
_TransactionController_getCurrentNetworkEIP1559Compatibility.set(this, void 0);
|
|
201
|
-
_TransactionController_getExternalPendingTransactions.set(this, void 0);
|
|
202
|
-
_TransactionController_getGasFeeEstimates.set(this, void 0);
|
|
203
|
-
_TransactionController_getNetworkState.set(this, void 0);
|
|
204
196
|
_TransactionController_getPermittedAccounts.set(this, void 0);
|
|
205
197
|
_TransactionController_getSavedGasFees.set(this, void 0);
|
|
206
198
|
_TransactionController_getSimulationConfig.set(this, void 0);
|
|
@@ -216,12 +208,9 @@ export class TransactionController extends BaseController {
|
|
|
216
208
|
_TransactionController_layer1GasFeeFlows.set(this, void 0);
|
|
217
209
|
_TransactionController_methodDataHelper.set(this, void 0);
|
|
218
210
|
_TransactionController_multichainTrackingHelper.set(this, void 0);
|
|
219
|
-
_TransactionController_pendingTransactionOptions.set(this, void 0);
|
|
220
211
|
_TransactionController_publicKeyEIP7702.set(this, void 0);
|
|
221
212
|
_TransactionController_publish.set(this, void 0);
|
|
222
213
|
_TransactionController_publishBatchHook.set(this, void 0);
|
|
223
|
-
_TransactionController_securityProviderRequest.set(this, void 0);
|
|
224
|
-
_TransactionController_sign.set(this, void 0);
|
|
225
214
|
_TransactionController_signAbortCallbacks.set(this, new Map());
|
|
226
215
|
_TransactionController_skipSimulationTransactionIds.set(this, new Set());
|
|
227
216
|
_TransactionController_testGasFeeFlows.set(this, void 0);
|
|
@@ -231,9 +220,6 @@ export class TransactionController extends BaseController {
|
|
|
231
220
|
});
|
|
232
221
|
this.messenger = messenger;
|
|
233
222
|
__classPrivateFieldSet(this, _TransactionController_afterAdd, hooks?.afterAdd ?? (() => Promise.resolve({})), "f");
|
|
234
|
-
__classPrivateFieldSet(this, _TransactionController_afterSign, hooks?.afterSign ?? (() => true), "f");
|
|
235
|
-
__classPrivateFieldSet(this, _TransactionController_afterSimulate, hooks?.afterSimulate ??
|
|
236
|
-
(() => Promise.resolve({})), "f");
|
|
237
223
|
__classPrivateFieldSet(this, _TransactionController_beforeCheckPendingTransaction,
|
|
238
224
|
/* istanbul ignore next */
|
|
239
225
|
hooks?.beforeCheckPendingTransaction ??
|
|
@@ -241,15 +227,6 @@ export class TransactionController extends BaseController {
|
|
|
241
227
|
__classPrivateFieldSet(this, _TransactionController_beforePublish, hooks?.beforePublish ?? (() => Promise.resolve(true)), "f");
|
|
242
228
|
__classPrivateFieldSet(this, _TransactionController_beforeSign, hooks?.beforeSign ??
|
|
243
229
|
(() => Promise.resolve({})), "f");
|
|
244
|
-
__classPrivateFieldSet(this, _TransactionController_getAdditionalSignArguments, hooks?.getAdditionalSignArguments ??
|
|
245
|
-
(() => []), "f");
|
|
246
|
-
__classPrivateFieldSet(this, _TransactionController_getCurrentAccountEIP1559Compatibility, getCurrentAccountEIP1559Compatibility ??
|
|
247
|
-
(() => Promise.resolve(true)), "f");
|
|
248
|
-
__classPrivateFieldSet(this, _TransactionController_getCurrentNetworkEIP1559Compatibility, getCurrentNetworkEIP1559Compatibility, "f");
|
|
249
|
-
__classPrivateFieldSet(this, _TransactionController_getExternalPendingTransactions, getExternalPendingTransactions ?? (() => []), "f");
|
|
250
|
-
__classPrivateFieldSet(this, _TransactionController_getGasFeeEstimates, getGasFeeEstimates ??
|
|
251
|
-
(() => Promise.resolve({})), "f");
|
|
252
|
-
__classPrivateFieldSet(this, _TransactionController_getNetworkState, getNetworkState, "f");
|
|
253
230
|
__classPrivateFieldSet(this, _TransactionController_getPermittedAccounts, getPermittedAccounts, "f");
|
|
254
231
|
__classPrivateFieldSet(this, _TransactionController_getSavedGasFees, getSavedGasFees ?? ((_chainId) => undefined), "f");
|
|
255
232
|
__classPrivateFieldSet(this, _TransactionController_getSimulationConfig, getSimulationConfig ??
|
|
@@ -262,14 +239,11 @@ export class TransactionController extends BaseController {
|
|
|
262
239
|
__classPrivateFieldSet(this, _TransactionController_isFirstTimeInteractionEnabled, isFirstTimeInteractionEnabled ?? (() => true), "f");
|
|
263
240
|
__classPrivateFieldSet(this, _TransactionController_isSimulationEnabled, isSimulationEnabled ?? (() => true), "f");
|
|
264
241
|
__classPrivateFieldSet(this, _TransactionController_isSwapsDisabled, disableSwaps ?? false, "f");
|
|
265
|
-
__classPrivateFieldSet(this, _TransactionController_isTimeoutEnabled,
|
|
266
|
-
__classPrivateFieldSet(this, _TransactionController_pendingTransactionOptions, pendingTransactions, "f");
|
|
242
|
+
__classPrivateFieldSet(this, _TransactionController_isTimeoutEnabled, isTimeoutEnabled ?? (() => true), "f");
|
|
267
243
|
__classPrivateFieldSet(this, _TransactionController_publicKeyEIP7702, publicKeyEIP7702, "f");
|
|
268
244
|
__classPrivateFieldSet(this, _TransactionController_publish, hooks?.publish ??
|
|
269
245
|
(() => Promise.resolve({ transactionHash: undefined })), "f");
|
|
270
246
|
__classPrivateFieldSet(this, _TransactionController_publishBatchHook, hooks?.publishBatch, "f");
|
|
271
|
-
__classPrivateFieldSet(this, _TransactionController_securityProviderRequest, securityProviderRequest, "f");
|
|
272
|
-
__classPrivateFieldSet(this, _TransactionController_sign, sign, "f");
|
|
273
247
|
__classPrivateFieldSet(this, _TransactionController_testGasFeeFlows, testGasFeeFlows === true, "f");
|
|
274
248
|
__classPrivateFieldSet(this, _TransactionController_trace, trace ?? ((_request, fn) => fn?.()), "f");
|
|
275
249
|
const findNetworkClientIdByChainId = (chainId) => {
|
|
@@ -280,7 +254,7 @@ export class TransactionController extends BaseController {
|
|
|
280
254
|
getNetworkClientById: ((networkClientId) => {
|
|
281
255
|
return this.messenger.call(`NetworkController:getNetworkClientById`, networkClientId);
|
|
282
256
|
}),
|
|
283
|
-
getNetworkClientRegistry,
|
|
257
|
+
getNetworkClientRegistry: (() => this.messenger.call('NetworkController:getNetworkClientRegistry')),
|
|
284
258
|
removePendingTransactionTrackerListeners: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_removePendingTransactionTrackerListeners).bind(this),
|
|
285
259
|
createNonceTracker: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createNonceTracker).bind(this),
|
|
286
260
|
createPendingTransactionTracker: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createPendingTransactionTracker).bind(this),
|
|
@@ -293,7 +267,7 @@ export class TransactionController extends BaseController {
|
|
|
293
267
|
__classPrivateFieldSet(this, _TransactionController_layer1GasFeeFlows, __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getLayer1GasFeeFlows).call(this), "f");
|
|
294
268
|
const gasFeePoller = new GasFeePoller({
|
|
295
269
|
gasFeeFlows: __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"),
|
|
296
|
-
getGasFeeControllerEstimates:
|
|
270
|
+
getGasFeeControllerEstimates: (gasFeeOpts) => this.messenger.call('GasFeeController:fetchGasFeeEstimates', gasFeeOpts),
|
|
297
271
|
getTransactions: () => this.state.transactions,
|
|
298
272
|
getTransactionBatches: () => this.state.transactionBatches,
|
|
299
273
|
layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
|
|
@@ -367,7 +341,7 @@ export class TransactionController extends BaseController {
|
|
|
367
341
|
return await addTransactionBatch({
|
|
368
342
|
addTransaction: this.addTransaction.bind(this),
|
|
369
343
|
estimateGas: this.estimateGas.bind(this),
|
|
370
|
-
getGasFeeEstimates:
|
|
344
|
+
getGasFeeEstimates: (options) => this.messenger.call('GasFeeController:fetchGasFeeEstimates', options),
|
|
371
345
|
getInternalAccounts: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getInternalAccounts).bind(this),
|
|
372
346
|
getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f").bind(this),
|
|
373
347
|
getPendingTransactionTracker: (networkClientId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createPendingTransactionTracker).call(this, {
|
|
@@ -410,7 +384,7 @@ export class TransactionController extends BaseController {
|
|
|
410
384
|
*/
|
|
411
385
|
async addTransaction(txParams, options) {
|
|
412
386
|
log('Adding transaction', txParams, options);
|
|
413
|
-
const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, excludeNativeTokenForFee, isGasFeeIncluded, isGasFeeSponsored, isInternal = false, isStateOnly,
|
|
387
|
+
const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, excludeNativeTokenForFee, isGasFeeIncluded, isGasFeeSponsored, isInternal = false, isStateOnly, nestedTransactions, networkClientId, origin, publishHook, requestId, requiredAssets, requireApproval, securityAlertResponse, skipInitialGasEstimate, swaps = {}, traceContext, type, } = options;
|
|
414
388
|
// eslint-disable-next-line no-param-reassign
|
|
415
389
|
txParams = normalizeTransactionParams(txParams);
|
|
416
390
|
if (!__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").has(networkClientId)) {
|
|
@@ -522,12 +496,6 @@ export class TransactionController extends BaseController {
|
|
|
522
496
|
})
|
|
523
497
|
.catch(noop);
|
|
524
498
|
}
|
|
525
|
-
// Set security provider response
|
|
526
|
-
if (method && __classPrivateFieldGet(this, _TransactionController_securityProviderRequest, "f")) {
|
|
527
|
-
const securityProviderResponse = await __classPrivateFieldGet(this, _TransactionController_securityProviderRequest, "f").call(this, addedTransactionMeta, method);
|
|
528
|
-
// eslint-disable-next-line require-atomic-updates
|
|
529
|
-
addedTransactionMeta.securityProviderResponse = securityProviderResponse;
|
|
530
|
-
}
|
|
531
499
|
addedTransactionMeta = updateSwapsTransaction(addedTransactionMeta, transactionType, swaps, {
|
|
532
500
|
isSwapsDisabled: __classPrivateFieldGet(this, _TransactionController_isSwapsDisabled, "f"),
|
|
533
501
|
cancelTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransaction).bind(this),
|
|
@@ -1051,7 +1019,7 @@ export class TransactionController extends BaseController {
|
|
|
1051
1019
|
chainId,
|
|
1052
1020
|
});
|
|
1053
1021
|
const initialTxAsEthTx = prepareTransaction(chainId, initialTx);
|
|
1054
|
-
const initialTxAsSerializedHex = serializeTransaction(initialTxAsEthTx);
|
|
1022
|
+
const initialTxAsSerializedHex = serializeTransaction(chainId, initialTxAsEthTx);
|
|
1055
1023
|
if (__classPrivateFieldGet(this, _TransactionController_approvingTransactionIds, "f").has(initialTxAsSerializedHex)) {
|
|
1056
1024
|
return '';
|
|
1057
1025
|
}
|
|
@@ -1239,9 +1207,7 @@ export class TransactionController extends BaseController {
|
|
|
1239
1207
|
};
|
|
1240
1208
|
// Guaranteed as the default gas fee flow matches all transactions.
|
|
1241
1209
|
const gasFeeFlow = getGasFeeFlow(transactionMeta, __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"), this.messenger);
|
|
1242
|
-
const gasFeeControllerData = await
|
|
1243
|
-
networkClientId,
|
|
1244
|
-
});
|
|
1210
|
+
const gasFeeControllerData = await this.messenger.call('GasFeeController:fetchGasFeeEstimates', { networkClientId });
|
|
1245
1211
|
return gasFeeFlow.getGasFees({
|
|
1246
1212
|
gasFeeControllerData,
|
|
1247
1213
|
messenger: this.messenger,
|
|
@@ -1473,7 +1439,7 @@ export class TransactionController extends BaseController {
|
|
|
1473
1439
|
return result.gasFeeTokens;
|
|
1474
1440
|
}
|
|
1475
1441
|
}
|
|
1476
|
-
_TransactionController_afterAdd = new WeakMap(),
|
|
1442
|
+
_TransactionController_afterAdd = new WeakMap(), _TransactionController_approvingTransactionIds = new WeakMap(), _TransactionController_beforeCheckPendingTransaction = new WeakMap(), _TransactionController_beforePublish = new WeakMap(), _TransactionController_beforeSign = new WeakMap(), _TransactionController_gasFeeFlows = 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_isSimulationEnabled = new WeakMap(), _TransactionController_isSwapsDisabled = new WeakMap(), _TransactionController_isTimeoutEnabled = new WeakMap(), _TransactionController_layer1GasFeeFlows = new WeakMap(), _TransactionController_methodDataHelper = new WeakMap(), _TransactionController_multichainTrackingHelper = new WeakMap(), _TransactionController_publicKeyEIP7702 = new WeakMap(), _TransactionController_publish = new WeakMap(), _TransactionController_publishBatchHook = new WeakMap(), _TransactionController_signAbortCallbacks = new WeakMap(), _TransactionController_skipSimulationTransactionIds = new WeakMap(), _TransactionController_testGasFeeFlows = new WeakMap(), _TransactionController_trace = 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, }) {
|
|
1477
1443
|
if (gasValues) {
|
|
1478
1444
|
// Not good practice to reassign a parameter but temporarily avoiding a larger refactor.
|
|
1479
1445
|
// eslint-disable-next-line no-param-reassign
|
|
@@ -1486,16 +1452,12 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1486
1452
|
if (!transactionMeta) {
|
|
1487
1453
|
return;
|
|
1488
1454
|
}
|
|
1489
|
-
/* istanbul ignore next */
|
|
1490
|
-
if (!__classPrivateFieldGet(this, _TransactionController_sign, "f")) {
|
|
1491
|
-
throw new Error('No sign method defined.');
|
|
1492
|
-
}
|
|
1493
1455
|
const newTxParams = getTransactionParamsWithIncreasedGasFee(transactionMeta.txParams, rate, gasValues);
|
|
1494
1456
|
prepareTransactionParams?.(newTxParams);
|
|
1495
1457
|
const unsignedEthTx = prepareTransaction(transactionMeta.chainId, newTxParams);
|
|
1496
|
-
const
|
|
1497
|
-
const transactionMetaWithRsv = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionMetaRSV).call(this, transactionMeta,
|
|
1498
|
-
const rawTx = serializeTransaction(
|
|
1458
|
+
const signedTxData = await this.messenger.call('KeyringController:signTransaction', unsignedEthTx, transactionMeta.txParams.from);
|
|
1459
|
+
const transactionMetaWithRsv = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionMetaRSV).call(this, transactionMeta, signedTxData);
|
|
1460
|
+
const rawTx = serializeTransaction(transactionMeta.chainId, signedTxData);
|
|
1499
1461
|
const newFee = newTxParams.maxFeePerGas ?? newTxParams.gasPrice;
|
|
1500
1462
|
const oldFee = newTxParams.maxFeePerGas
|
|
1501
1463
|
? transactionMetaWithRsv.txParams.maxFeePerGas
|
|
@@ -1534,9 +1496,6 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1534
1496
|
});
|
|
1535
1497
|
afterSubmit?.(newTransactionMeta);
|
|
1536
1498
|
}, _TransactionController_signExternalTransaction = async function _TransactionController_signExternalTransaction(chainId, transactionParams) {
|
|
1537
|
-
if (!__classPrivateFieldGet(this, _TransactionController_sign, "f")) {
|
|
1538
|
-
throw new Error('No sign method defined.');
|
|
1539
|
-
}
|
|
1540
1499
|
const normalizedTransactionParams = normalizeTransactionParams(transactionParams);
|
|
1541
1500
|
const type = isEIP1559Transaction(normalizedTransactionParams)
|
|
1542
1501
|
? TransactionEnvelopeType.feeMarket
|
|
@@ -1549,8 +1508,8 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1549
1508
|
};
|
|
1550
1509
|
const { from } = updatedTransactionParams;
|
|
1551
1510
|
const unsignedTransaction = prepareTransaction(chainId, updatedTransactionParams);
|
|
1552
|
-
const
|
|
1553
|
-
const rawTransaction = serializeTransaction(
|
|
1511
|
+
const signedTxData = await this.messenger.call('KeyringController:signTransaction', unsignedTransaction, from);
|
|
1512
|
+
const rawTransaction = serializeTransaction(chainId, signedTxData);
|
|
1554
1513
|
return rawTransaction;
|
|
1555
1514
|
}, _TransactionController_addMetadata = function _TransactionController_addMetadata(transactionMeta) {
|
|
1556
1515
|
validateTxParams(transactionMeta.txParams);
|
|
@@ -1569,7 +1528,7 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1569
1528
|
await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Update Gas Fees', parentContext: traceContext }, async () => await updateGasFees({
|
|
1570
1529
|
eip1559: isEIP1559Compatible,
|
|
1571
1530
|
gasFeeFlows: __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"),
|
|
1572
|
-
getGasFeeEstimates:
|
|
1531
|
+
getGasFeeEstimates: (options) => this.messenger.call('GasFeeController:fetchGasFeeEstimates', options),
|
|
1573
1532
|
getSavedGasFees: __classPrivateFieldGet(this, _TransactionController_getSavedGasFees, "f").bind(this),
|
|
1574
1533
|
messenger: this.messenger,
|
|
1575
1534
|
txMeta: transactionMeta,
|
|
@@ -1702,11 +1661,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1702
1661
|
let transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
|
|
1703
1662
|
log('Approving transaction', transactionMeta);
|
|
1704
1663
|
try {
|
|
1705
|
-
if (!
|
|
1706
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_failTransaction).call(this, transactionMeta, new Error('No sign method defined.'));
|
|
1707
|
-
return ApprovalState.NotApproved;
|
|
1708
|
-
}
|
|
1709
|
-
else if (!transactionMeta.chainId) {
|
|
1664
|
+
if (!transactionMeta.chainId) {
|
|
1710
1665
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_failTransaction).call(this, transactionMeta, new Error('No chainId defined.'));
|
|
1711
1666
|
return ApprovalState.NotApproved;
|
|
1712
1667
|
}
|
|
@@ -2042,13 +1997,11 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2042
1997
|
if (value === undefined || value === null) {
|
|
2043
1998
|
continue;
|
|
2044
1999
|
}
|
|
2045
|
-
transactionMetaWithRsv[key] = add0x(value.toString(16));
|
|
2000
|
+
transactionMetaWithRsv[key] = add0x(BigInt(value).toString(16));
|
|
2046
2001
|
}
|
|
2047
2002
|
return transactionMetaWithRsv;
|
|
2048
2003
|
}, _TransactionController_getEIP1559Compatibility = async function _TransactionController_getEIP1559Compatibility(networkClientId) {
|
|
2049
|
-
|
|
2050
|
-
const currentAccountIsEIP1559Compatible = await __classPrivateFieldGet(this, _TransactionController_getCurrentAccountEIP1559Compatibility, "f").call(this);
|
|
2051
|
-
return (currentNetworkIsEIP1559Compatible && currentAccountIsEIP1559Compatible);
|
|
2004
|
+
return ((await this.messenger.call('NetworkController:getEIP1559Compatibility', networkClientId)) ?? false);
|
|
2052
2005
|
}, _TransactionController_signTransaction = async function _TransactionController_signTransaction(originalTransactionMeta) {
|
|
2053
2006
|
let transactionMeta = originalTransactionMeta;
|
|
2054
2007
|
const { id: transactionId } = transactionMeta;
|
|
@@ -2090,29 +2043,23 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2090
2043
|
const unsignedEthTx = prepareTransaction(chainId, finalTxParams);
|
|
2091
2044
|
__classPrivateFieldGet(this, _TransactionController_approvingTransactionIds, "f").add(transactionId);
|
|
2092
2045
|
log('Signing transaction', finalTxParams);
|
|
2093
|
-
const
|
|
2094
|
-
|
|
2046
|
+
const signedTxData = await new Promise((resolve, reject) => {
|
|
2047
|
+
// eslint-disable-next-line promise/catch-or-return
|
|
2048
|
+
this.messenger
|
|
2049
|
+
.call('KeyringController:signTransaction', unsignedEthTx, from)
|
|
2050
|
+
.then(resolve, reject);
|
|
2095
2051
|
__classPrivateFieldGet(this, _TransactionController_signAbortCallbacks, "f").set(transactionId, () => reject(new Error('Signing aborted by user')));
|
|
2096
2052
|
});
|
|
2097
2053
|
__classPrivateFieldGet(this, _TransactionController_signAbortCallbacks, "f").delete(transactionId);
|
|
2098
|
-
if (!signedTx) {
|
|
2099
|
-
log('Skipping signed status as no signed transaction');
|
|
2100
|
-
return undefined;
|
|
2101
|
-
}
|
|
2102
2054
|
const transactionMetaFromHook = cloneDeep(finalTransactionMeta);
|
|
2103
|
-
if (!__classPrivateFieldGet(this, _TransactionController_afterSign, "f").call(this, transactionMetaFromHook, signedTx)) {
|
|
2104
|
-
this.updateTransaction(transactionMetaFromHook, 'TransactionController#signTransaction - Update after sign');
|
|
2105
|
-
log('Skipping signed status based on hook');
|
|
2106
|
-
return undefined;
|
|
2107
|
-
}
|
|
2108
2055
|
const transactionMetaWithRsv = {
|
|
2109
|
-
...__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionMetaRSV).call(this, transactionMetaFromHook,
|
|
2056
|
+
...__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionMetaRSV).call(this, transactionMetaFromHook, signedTxData),
|
|
2110
2057
|
status: TransactionStatus.signed,
|
|
2111
2058
|
txParams: finalTxParams,
|
|
2112
2059
|
};
|
|
2113
2060
|
this.updateTransaction(transactionMetaWithRsv, 'TransactionController#approveTransaction - Transaction signed');
|
|
2114
2061
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, transactionMetaWithRsv);
|
|
2115
|
-
const rawTx = serializeTransaction(
|
|
2062
|
+
const rawTx = serializeTransaction(chainId, signedTxData);
|
|
2116
2063
|
const transactionMetaWithRawTx = merge({}, transactionMetaWithRsv, {
|
|
2117
2064
|
rawTx,
|
|
2118
2065
|
});
|
|
@@ -2176,13 +2123,9 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2176
2123
|
hooks: {
|
|
2177
2124
|
beforeCheckPendingTransaction: __classPrivateFieldGet(this, _TransactionController_beforeCheckPendingTransaction, "f").bind(this),
|
|
2178
2125
|
},
|
|
2179
|
-
isResubmitEnabled: __classPrivateFieldGet(this, _TransactionController_pendingTransactionOptions, "f").isResubmitEnabled,
|
|
2180
2126
|
isTimeoutEnabled: __classPrivateFieldGet(this, _TransactionController_isTimeoutEnabled, "f"),
|
|
2181
2127
|
messenger: this.messenger,
|
|
2182
2128
|
networkClientId,
|
|
2183
|
-
publishTransaction: (transactionMeta) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, transactionMeta, {
|
|
2184
|
-
skipSubmitHistory: true,
|
|
2185
|
-
}),
|
|
2186
2129
|
});
|
|
2187
2130
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addPendingTransactionTrackerListeners).call(this, pendingTransactionTracker);
|
|
2188
2131
|
return pendingTransactionTracker;
|
|
@@ -2206,8 +2149,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2206
2149
|
TransactionStatus.signed,
|
|
2207
2150
|
TransactionStatus.submitted,
|
|
2208
2151
|
], address, chainId);
|
|
2209
|
-
|
|
2210
|
-
return [...standardPendingTransactions, ...externalPendingTransactions];
|
|
2152
|
+
return standardPendingTransactions;
|
|
2211
2153
|
}, _TransactionController_publishTransactionForRetry = async function _TransactionController_publishTransactionForRetry(transactionMeta) {
|
|
2212
2154
|
try {
|
|
2213
2155
|
return await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, transactionMeta);
|
|
@@ -2336,7 +2278,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2336
2278
|
}
|
|
2337
2279
|
});
|
|
2338
2280
|
log('Updated simulation data', transactionId, updatedTransactionMeta);
|
|
2339
|
-
await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_runAfterSimulateHook).call(this, updatedTransactionMeta);
|
|
2340
2281
|
}, _TransactionController_onGasFeePollerTransactionUpdate = function _TransactionController_onGasFeePollerTransactionUpdate({ transactionId, gasFeeEstimates, gasFeeEstimatesLoaded, layer1GasFee, }) {
|
|
2341
2282
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, (txMeta) => {
|
|
2342
2283
|
updateTransactionGasProperties({
|
|
@@ -2370,7 +2311,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2370
2311
|
.map((account) => account.address);
|
|
2371
2312
|
}, _TransactionController_updateSubmitHistory = function _TransactionController_updateSubmitHistory(transactionMeta, hash) {
|
|
2372
2313
|
const { chainId, networkClientId, origin, rawTx, txParams } = transactionMeta;
|
|
2373
|
-
const { networkConfigurationsByChainId } =
|
|
2314
|
+
const { networkConfigurationsByChainId } = this.messenger.call('NetworkController:getState');
|
|
2374
2315
|
const networkConfiguration = networkConfigurationsByChainId[chainId];
|
|
2375
2316
|
const endpoint = networkConfiguration?.rpcEndpoints.find((currentEndpoint) => currentEndpoint.networkClientId === networkClientId);
|
|
2376
2317
|
const networkUrl = endpoint?.url;
|
|
@@ -2469,30 +2410,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2469
2410
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, newTransactionMeta);
|
|
2470
2411
|
this.messenger.publish(`${controllerName}:transactionFinished`, newTransactionMeta);
|
|
2471
2412
|
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionMeta.id}:finished`, newTransactionMeta);
|
|
2472
|
-
}, _TransactionController_runAfterSimulateHook = async function _TransactionController_runAfterSimulateHook(transactionMeta) {
|
|
2473
|
-
log('Calling afterSimulate hook', transactionMeta);
|
|
2474
|
-
const { id: transactionId } = transactionMeta;
|
|
2475
|
-
const result = await __classPrivateFieldGet(this, _TransactionController_afterSimulate, "f").call(this, {
|
|
2476
|
-
transactionMeta,
|
|
2477
|
-
});
|
|
2478
|
-
const { skipSimulation, updateTransaction } = result ?? {};
|
|
2479
|
-
if (skipSimulation) {
|
|
2480
|
-
__classPrivateFieldGet(this, _TransactionController_skipSimulationTransactionIds, "f").add(transactionId);
|
|
2481
|
-
}
|
|
2482
|
-
else if (skipSimulation === false) {
|
|
2483
|
-
__classPrivateFieldGet(this, _TransactionController_skipSimulationTransactionIds, "f").delete(transactionId);
|
|
2484
|
-
}
|
|
2485
|
-
if (!updateTransaction) {
|
|
2486
|
-
return;
|
|
2487
|
-
}
|
|
2488
|
-
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2489
|
-
transactionId,
|
|
2490
|
-
skipResimulateCheck: true,
|
|
2491
|
-
}, (txMeta) => {
|
|
2492
|
-
txMeta.txParamsOriginal = cloneDeep(txMeta.txParams);
|
|
2493
|
-
updateTransaction(txMeta);
|
|
2494
|
-
});
|
|
2495
|
-
log('Updated transaction with afterSimulate data', updatedTransactionMeta);
|
|
2496
2413
|
}, _TransactionController_defaultPublishHook = async function _TransactionController_defaultPublishHook({ networkClientId, publishHookOverride, traceContext, }, transactionMeta, signedTx) {
|
|
2497
2414
|
let transactionHash;
|
|
2498
2415
|
await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Publish', parentContext: traceContext }, async () => {
|