@metamask/transaction-controller 52.1.0 → 52.3.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 +55 -4
- package/dist/TransactionController.cjs +111 -28
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +33 -5
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +33 -5
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +114 -31
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/constants.cjs +1 -0
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +1 -0
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.mts +1 -0
- package/dist/constants.d.mts.map +1 -1
- package/dist/constants.mjs +1 -0
- package/dist/constants.mjs.map +1 -1
- package/dist/gas-flows/DefaultGasFeeFlow.cjs +1 -3
- package/dist/gas-flows/DefaultGasFeeFlow.cjs.map +1 -1
- package/dist/gas-flows/DefaultGasFeeFlow.d.cts +2 -2
- package/dist/gas-flows/DefaultGasFeeFlow.d.cts.map +1 -1
- package/dist/gas-flows/DefaultGasFeeFlow.d.mts +2 -2
- package/dist/gas-flows/DefaultGasFeeFlow.d.mts.map +1 -1
- package/dist/gas-flows/DefaultGasFeeFlow.mjs +1 -3
- package/dist/gas-flows/DefaultGasFeeFlow.mjs.map +1 -1
- package/dist/gas-flows/LineaGasFeeFlow.cjs +1 -1
- package/dist/gas-flows/LineaGasFeeFlow.cjs.map +1 -1
- package/dist/gas-flows/LineaGasFeeFlow.d.cts +5 -1
- package/dist/gas-flows/LineaGasFeeFlow.d.cts.map +1 -1
- package/dist/gas-flows/LineaGasFeeFlow.d.mts +5 -1
- package/dist/gas-flows/LineaGasFeeFlow.d.mts.map +1 -1
- package/dist/gas-flows/LineaGasFeeFlow.mjs +1 -1
- package/dist/gas-flows/LineaGasFeeFlow.mjs.map +1 -1
- package/dist/gas-flows/OptimismLayer1GasFeeFlow.cjs +1 -1
- package/dist/gas-flows/OptimismLayer1GasFeeFlow.cjs.map +1 -1
- package/dist/gas-flows/OptimismLayer1GasFeeFlow.d.cts +5 -1
- package/dist/gas-flows/OptimismLayer1GasFeeFlow.d.cts.map +1 -1
- package/dist/gas-flows/OptimismLayer1GasFeeFlow.d.mts +5 -1
- package/dist/gas-flows/OptimismLayer1GasFeeFlow.d.mts.map +1 -1
- package/dist/gas-flows/OptimismLayer1GasFeeFlow.mjs +1 -1
- package/dist/gas-flows/OptimismLayer1GasFeeFlow.mjs.map +1 -1
- package/dist/gas-flows/OracleLayer1GasFeeFlow.cjs.map +1 -1
- package/dist/gas-flows/OracleLayer1GasFeeFlow.d.cts +5 -1
- package/dist/gas-flows/OracleLayer1GasFeeFlow.d.cts.map +1 -1
- package/dist/gas-flows/OracleLayer1GasFeeFlow.d.mts +5 -1
- package/dist/gas-flows/OracleLayer1GasFeeFlow.d.mts.map +1 -1
- package/dist/gas-flows/OracleLayer1GasFeeFlow.mjs.map +1 -1
- package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.cjs +123 -0
- package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.cjs.map +1 -0
- package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.d.cts +28 -0
- package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.d.cts.map +1 -0
- package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.d.mts +28 -0
- package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.d.mts.map +1 -0
- package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.mjs +118 -0
- package/dist/gas-flows/RandomisedEstimationsGasFeeFlow.mjs.map +1 -0
- package/dist/gas-flows/ScrollLayer1GasFeeFlow.cjs +1 -1
- package/dist/gas-flows/ScrollLayer1GasFeeFlow.cjs.map +1 -1
- package/dist/gas-flows/ScrollLayer1GasFeeFlow.d.cts +5 -1
- package/dist/gas-flows/ScrollLayer1GasFeeFlow.d.cts.map +1 -1
- package/dist/gas-flows/ScrollLayer1GasFeeFlow.d.mts +5 -1
- package/dist/gas-flows/ScrollLayer1GasFeeFlow.d.mts.map +1 -1
- package/dist/gas-flows/ScrollLayer1GasFeeFlow.mjs +1 -1
- package/dist/gas-flows/ScrollLayer1GasFeeFlow.mjs.map +1 -1
- package/dist/gas-flows/TestGasFeeFlow.cjs +1 -1
- package/dist/gas-flows/TestGasFeeFlow.cjs.map +1 -1
- package/dist/gas-flows/TestGasFeeFlow.d.cts +2 -2
- package/dist/gas-flows/TestGasFeeFlow.d.cts.map +1 -1
- package/dist/gas-flows/TestGasFeeFlow.d.mts +2 -2
- package/dist/gas-flows/TestGasFeeFlow.d.mts.map +1 -1
- package/dist/gas-flows/TestGasFeeFlow.mjs +1 -1
- package/dist/gas-flows/TestGasFeeFlow.mjs.map +1 -1
- package/dist/helpers/GasFeePoller.cjs +11 -8
- package/dist/helpers/GasFeePoller.cjs.map +1 -1
- package/dist/helpers/GasFeePoller.d.cts +6 -5
- package/dist/helpers/GasFeePoller.d.cts.map +1 -1
- package/dist/helpers/GasFeePoller.d.mts +6 -5
- package/dist/helpers/GasFeePoller.d.mts.map +1 -1
- package/dist/helpers/GasFeePoller.mjs +11 -8
- package/dist/helpers/GasFeePoller.mjs.map +1 -1
- package/dist/helpers/IncomingTransactionHelper.cjs +2 -1
- 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 +2 -1
- package/dist/helpers/IncomingTransactionHelper.mjs.map +1 -1
- package/dist/helpers/PendingTransactionTracker.cjs +6 -2
- package/dist/helpers/PendingTransactionTracker.cjs.map +1 -1
- package/dist/helpers/PendingTransactionTracker.d.cts +5 -2
- package/dist/helpers/PendingTransactionTracker.d.cts.map +1 -1
- package/dist/helpers/PendingTransactionTracker.d.mts +5 -2
- package/dist/helpers/PendingTransactionTracker.d.mts.map +1 -1
- package/dist/helpers/PendingTransactionTracker.mjs +6 -2
- package/dist/helpers/PendingTransactionTracker.mjs.map +1 -1
- package/dist/helpers/TransactionPoller.cjs +12 -8
- package/dist/helpers/TransactionPoller.cjs.map +1 -1
- package/dist/helpers/TransactionPoller.d.cts +7 -3
- package/dist/helpers/TransactionPoller.d.cts.map +1 -1
- package/dist/helpers/TransactionPoller.d.mts +7 -3
- package/dist/helpers/TransactionPoller.d.mts.map +1 -1
- package/dist/helpers/TransactionPoller.mjs +11 -7
- package/dist/helpers/TransactionPoller.mjs.map +1 -1
- package/dist/hooks/CollectPublishHook.cjs +84 -0
- package/dist/hooks/CollectPublishHook.cjs.map +1 -0
- package/dist/hooks/CollectPublishHook.d.cts +29 -0
- package/dist/hooks/CollectPublishHook.d.cts.map +1 -0
- package/dist/hooks/CollectPublishHook.d.mts +29 -0
- package/dist/hooks/CollectPublishHook.d.mts.map +1 -0
- package/dist/hooks/CollectPublishHook.mjs +80 -0
- package/dist/hooks/CollectPublishHook.mjs.map +1 -0
- package/dist/hooks/ExtraTransactionsPublishHook.cjs +90 -0
- package/dist/hooks/ExtraTransactionsPublishHook.cjs.map +1 -0
- package/dist/hooks/ExtraTransactionsPublishHook.d.cts +18 -0
- package/dist/hooks/ExtraTransactionsPublishHook.d.cts.map +1 -0
- package/dist/hooks/ExtraTransactionsPublishHook.d.mts +18 -0
- package/dist/hooks/ExtraTransactionsPublishHook.d.mts.map +1 -0
- package/dist/hooks/ExtraTransactionsPublishHook.mjs +86 -0
- package/dist/hooks/ExtraTransactionsPublishHook.mjs.map +1 -0
- 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 +161 -7
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +161 -7
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/batch.cjs +142 -1
- package/dist/utils/batch.cjs.map +1 -1
- package/dist/utils/batch.d.cts +7 -1
- package/dist/utils/batch.d.cts.map +1 -1
- package/dist/utils/batch.d.mts +7 -1
- package/dist/utils/batch.d.mts.map +1 -1
- package/dist/utils/batch.mjs +142 -1
- package/dist/utils/batch.mjs.map +1 -1
- package/dist/utils/eip7702.cjs +12 -0
- package/dist/utils/eip7702.cjs.map +1 -1
- package/dist/utils/eip7702.d.cts.map +1 -1
- package/dist/utils/eip7702.d.mts.map +1 -1
- package/dist/utils/eip7702.mjs +12 -0
- package/dist/utils/eip7702.mjs.map +1 -1
- package/dist/utils/feature-flags.cjs +39 -2
- package/dist/utils/feature-flags.cjs.map +1 -1
- package/dist/utils/feature-flags.d.cts +49 -0
- package/dist/utils/feature-flags.d.cts.map +1 -1
- package/dist/utils/feature-flags.d.mts +49 -0
- package/dist/utils/feature-flags.d.mts.map +1 -1
- package/dist/utils/feature-flags.mjs +36 -1
- package/dist/utils/feature-flags.mjs.map +1 -1
- package/dist/utils/gas-fees.cjs +21 -3
- package/dist/utils/gas-fees.cjs.map +1 -1
- package/dist/utils/gas-fees.d.cts +14 -0
- package/dist/utils/gas-fees.d.cts.map +1 -1
- package/dist/utils/gas-fees.d.mts +14 -0
- package/dist/utils/gas-fees.d.mts.map +1 -1
- package/dist/utils/gas-fees.mjs +19 -2
- package/dist/utils/gas-fees.mjs.map +1 -1
- package/dist/utils/gas-flow.cjs +3 -2
- package/dist/utils/gas-flow.cjs.map +1 -1
- package/dist/utils/gas-flow.d.cts +3 -1
- package/dist/utils/gas-flow.d.cts.map +1 -1
- package/dist/utils/gas-flow.d.mts +3 -1
- package/dist/utils/gas-flow.d.mts.map +1 -1
- package/dist/utils/gas-flow.mjs +3 -2
- package/dist/utils/gas-flow.mjs.map +1 -1
- package/dist/utils/gas.cjs +7 -3
- package/dist/utils/gas.cjs.map +1 -1
- package/dist/utils/gas.mjs +7 -3
- package/dist/utils/gas.mjs.map +1 -1
- package/dist/utils/layer1-gas-fee-flow.cjs +9 -4
- package/dist/utils/layer1-gas-fee-flow.cjs.map +1 -1
- package/dist/utils/layer1-gas-fee-flow.d.cts +4 -1
- package/dist/utils/layer1-gas-fee-flow.d.cts.map +1 -1
- package/dist/utils/layer1-gas-fee-flow.d.mts +4 -1
- package/dist/utils/layer1-gas-fee-flow.d.mts.map +1 -1
- package/dist/utils/layer1-gas-fee-flow.mjs +9 -4
- package/dist/utils/layer1-gas-fee-flow.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/dist/utils/simulation-api.cjs.map +1 -1
- package/dist/utils/simulation-api.d.cts +37 -0
- package/dist/utils/simulation-api.d.cts.map +1 -1
- package/dist/utils/simulation-api.d.mts +37 -0
- package/dist/utils/simulation-api.d.mts.map +1 -1
- package/dist/utils/simulation-api.mjs.map +1 -1
- package/dist/utils/simulation.cjs +63 -9
- package/dist/utils/simulation.cjs.map +1 -1
- package/dist/utils/simulation.d.cts +7 -2
- package/dist/utils/simulation.d.cts.map +1 -1
- package/dist/utils/simulation.d.mts +7 -2
- package/dist/utils/simulation.d.mts.map +1 -1
- package/dist/utils/simulation.mjs +63 -9
- package/dist/utils/simulation.mjs.map +1 -1
- package/dist/utils/utils.cjs +23 -1
- package/dist/utils/utils.cjs.map +1 -1
- package/dist/utils/utils.d.cts +8 -0
- package/dist/utils/utils.d.cts.map +1 -1
- package/dist/utils/utils.d.mts +8 -0
- package/dist/utils/utils.d.mts.map +1 -1
- package/dist/utils/utils.mjs +22 -1
- package/dist/utils/utils.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -9,7 +9,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
10
10
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
11
11
|
};
|
|
12
|
-
var _TransactionController_instances, _TransactionController_internalEvents, _TransactionController_methodDataHelper, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_pendingTransactionOptions, _TransactionController_publicKeyEIP7702, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_testGasFeeFlows, _TransactionController_multichainTrackingHelper, _TransactionController_retryTransaction, _TransactionController_rejectTransaction, _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, _TransactionController_updateGasEstimate, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow;
|
|
12
|
+
var _TransactionController_instances, _TransactionController_internalEvents, _TransactionController_methodDataHelper, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_pendingTransactionOptions, _TransactionController_publishBatchHook, _TransactionController_publicKeyEIP7702, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_testGasFeeFlows, _TransactionController_multichainTrackingHelper, _TransactionController_retryTransaction, _TransactionController_rejectTransaction, _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, _TransactionController_updateGasEstimate, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow;
|
|
13
13
|
function $importDefault(module) {
|
|
14
14
|
if (module?.__esModule) {
|
|
15
15
|
return module.default;
|
|
@@ -23,8 +23,7 @@ const EthQuery = $importDefault($EthQuery);
|
|
|
23
23
|
import { NetworkClientType } from "@metamask/network-controller";
|
|
24
24
|
import { NonceTracker } from "@metamask/nonce-tracker";
|
|
25
25
|
import { errorCodes, rpcErrors, providerErrors } from "@metamask/rpc-errors";
|
|
26
|
-
import { add0x, hexToNumber } from "@metamask/utils";
|
|
27
|
-
import { Mutex } from "async-mutex";
|
|
26
|
+
import { add0x, hexToNumber, remove0x } from "@metamask/utils";
|
|
28
27
|
// This package purposefully relies on Node's EventEmitter module.
|
|
29
28
|
// eslint-disable-next-line import-x/no-nodejs-modules
|
|
30
29
|
import { EventEmitter } from "events";
|
|
@@ -35,6 +34,7 @@ import { getAccountAddressRelationship } from "./api/accounts-api.mjs";
|
|
|
35
34
|
import { DefaultGasFeeFlow } from "./gas-flows/DefaultGasFeeFlow.mjs";
|
|
36
35
|
import { LineaGasFeeFlow } from "./gas-flows/LineaGasFeeFlow.mjs";
|
|
37
36
|
import { OptimismLayer1GasFeeFlow } from "./gas-flows/OptimismLayer1GasFeeFlow.mjs";
|
|
37
|
+
import { RandomisedEstimationsGasFeeFlow } from "./gas-flows/RandomisedEstimationsGasFeeFlow.mjs";
|
|
38
38
|
import { ScrollLayer1GasFeeFlow } from "./gas-flows/ScrollLayer1GasFeeFlow.mjs";
|
|
39
39
|
import { TestGasFeeFlow } from "./gas-flows/TestGasFeeFlow.mjs";
|
|
40
40
|
import { AccountsApiRemoteTransactionSource } from "./helpers/AccountsApiRemoteTransactionSource.mjs";
|
|
@@ -44,10 +44,11 @@ import { MethodDataHelper } from "./helpers/MethodDataHelper.mjs";
|
|
|
44
44
|
import { MultichainTrackingHelper } from "./helpers/MultichainTrackingHelper.mjs";
|
|
45
45
|
import { PendingTransactionTracker } from "./helpers/PendingTransactionTracker.mjs";
|
|
46
46
|
import { ResimulateHelper, hasSimulationDataChanged, shouldResimulate } from "./helpers/ResimulateHelper.mjs";
|
|
47
|
+
import { ExtraTransactionsPublishHook } from "./hooks/ExtraTransactionsPublishHook.mjs";
|
|
47
48
|
import { projectLogger as log } from "./logger.mjs";
|
|
48
49
|
import { TransactionEnvelopeType, TransactionType, TransactionStatus, SimulationErrorCode } from "./types.mjs";
|
|
49
50
|
import { addTransactionBatch, isAtomicBatchSupported } from "./utils/batch.mjs";
|
|
50
|
-
import { generateEIP7702BatchTransaction, getDelegationAddress, signAuthorizationList } from "./utils/eip7702.mjs";
|
|
51
|
+
import { DELEGATION_PREFIX, generateEIP7702BatchTransaction, getDelegationAddress, signAuthorizationList } from "./utils/eip7702.mjs";
|
|
51
52
|
import { validateConfirmedExternalTransaction } from "./utils/external-transactions.mjs";
|
|
52
53
|
import { addGasBuffer, estimateGas, updateGas } from "./utils/gas.mjs";
|
|
53
54
|
import { updateGasFees } from "./utils/gas-fees.mjs";
|
|
@@ -60,7 +61,7 @@ import { getTransactionParamsWithIncreasedGasFee } from "./utils/retry.mjs";
|
|
|
60
61
|
import { getSimulationData } from "./utils/simulation.mjs";
|
|
61
62
|
import { updatePostTransactionBalance, updateSwapsTransaction } from "./utils/swaps.mjs";
|
|
62
63
|
import { determineTransactionType } from "./utils/transaction-type.mjs";
|
|
63
|
-
import { normalizeTransactionParams, isEIP1559Transaction, validateGasValues, validateIfTransactionUnapproved, normalizeTxError, normalizeGasFeeValues } from "./utils/utils.mjs";
|
|
64
|
+
import { normalizeTransactionParams, isEIP1559Transaction, validateGasValues, validateIfTransactionUnapproved, normalizeTxError, normalizeGasFeeValues, setEnvelopeType } from "./utils/utils.mjs";
|
|
64
65
|
import { validateParamTo, validateTransactionOrigin, validateTxParams } from "./utils/validation.mjs";
|
|
65
66
|
/**
|
|
66
67
|
* Metadata for the TransactionController state, describing how to "anonymize"
|
|
@@ -172,10 +173,10 @@ export class TransactionController extends BaseController {
|
|
|
172
173
|
_TransactionController_internalEvents.set(this, new EventEmitter());
|
|
173
174
|
this.approvingTransactionIds = new Set();
|
|
174
175
|
_TransactionController_methodDataHelper.set(this, void 0);
|
|
175
|
-
this.mutex = new Mutex();
|
|
176
176
|
_TransactionController_incomingTransactionHelper.set(this, void 0);
|
|
177
177
|
_TransactionController_incomingTransactionOptions.set(this, void 0);
|
|
178
178
|
_TransactionController_pendingTransactionOptions.set(this, void 0);
|
|
179
|
+
_TransactionController_publishBatchHook.set(this, void 0);
|
|
179
180
|
_TransactionController_publicKeyEIP7702.set(this, void 0);
|
|
180
181
|
this.signAbortCallbacks = new Map();
|
|
181
182
|
_TransactionController_trace.set(this, void 0);
|
|
@@ -208,6 +209,7 @@ export class TransactionController extends BaseController {
|
|
|
208
209
|
this.securityProviderRequest = securityProviderRequest;
|
|
209
210
|
__classPrivateFieldSet(this, _TransactionController_incomingTransactionOptions, incomingTransactions, "f");
|
|
210
211
|
__classPrivateFieldSet(this, _TransactionController_pendingTransactionOptions, pendingTransactions, "f");
|
|
212
|
+
__classPrivateFieldSet(this, _TransactionController_publishBatchHook, hooks?.publishBatch, "f");
|
|
211
213
|
__classPrivateFieldSet(this, _TransactionController_publicKeyEIP7702, publicKeyEIP7702, "f");
|
|
212
214
|
__classPrivateFieldSet(this, _TransactionController_transactionHistoryLimit, transactionHistoryLimit, "f");
|
|
213
215
|
this.sign = sign;
|
|
@@ -249,6 +251,7 @@ export class TransactionController extends BaseController {
|
|
|
249
251
|
getProvider: (networkClientId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getProvider).call(this, { networkClientId }),
|
|
250
252
|
getTransactions: () => this.state.transactions,
|
|
251
253
|
layer1GasFeeFlows: this.layer1GasFeeFlows,
|
|
254
|
+
messenger: this.messagingSystem,
|
|
252
255
|
onStateChange: (listener) => {
|
|
253
256
|
this.messagingSystem.subscribe('TransactionController:stateChange', listener);
|
|
254
257
|
},
|
|
@@ -322,9 +325,12 @@ export class TransactionController extends BaseController {
|
|
|
322
325
|
getChainId: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).bind(this),
|
|
323
326
|
getEthQuery: (networkClientId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId }),
|
|
324
327
|
getInternalAccounts: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getInternalAccounts).bind(this),
|
|
328
|
+
getTransaction: (transactionId) => this.getTransactionOrThrow(transactionId),
|
|
325
329
|
messenger: this.messagingSystem,
|
|
330
|
+
publishBatchHook: __classPrivateFieldGet(this, _TransactionController_publishBatchHook, "f"),
|
|
326
331
|
publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
|
|
327
332
|
request,
|
|
333
|
+
updateTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).bind(this),
|
|
328
334
|
});
|
|
329
335
|
}
|
|
330
336
|
/**
|
|
@@ -351,9 +357,11 @@ export class TransactionController extends BaseController {
|
|
|
351
357
|
* @param options.actionId - Unique ID to prevent duplicate requests.
|
|
352
358
|
* @param options.batchId - A custom ID for the batch this transaction belongs to.
|
|
353
359
|
* @param options.deviceConfirmedOn - An enum to indicate what device confirmed the transaction.
|
|
360
|
+
* @param options.disableGasBuffer - Whether to disable the gas estimation buffer.
|
|
354
361
|
* @param options.method - RPC method that requested the transaction.
|
|
355
362
|
* @param options.nestedTransactions - Params for any nested transactions encoded in the data.
|
|
356
363
|
* @param options.origin - The origin of the transaction request, such as a dApp hostname.
|
|
364
|
+
* @param options.publishHook - Custom logic to publish the transaction.
|
|
357
365
|
* @param options.requireApproval - Whether the transaction requires approval by the user, defaults to true unless explicitly disabled.
|
|
358
366
|
* @param options.securityAlertResponse - Response from security validator.
|
|
359
367
|
* @param options.sendFlowHistory - The sendFlowHistory entries to add.
|
|
@@ -367,7 +375,7 @@ export class TransactionController extends BaseController {
|
|
|
367
375
|
*/
|
|
368
376
|
async addTransaction(txParams, options) {
|
|
369
377
|
log('Adding transaction', txParams, options);
|
|
370
|
-
const { actionId, batchId, deviceConfirmedOn, method, nestedTransactions, networkClientId, origin, requireApproval, securityAlertResponse, sendFlowHistory, swaps = {}, traceContext, type, } = options;
|
|
378
|
+
const { actionId, batchId, deviceConfirmedOn, disableGasBuffer, method, nestedTransactions, networkClientId, origin, publishHook, requireApproval, securityAlertResponse, sendFlowHistory, swaps = {}, traceContext, type, } = options;
|
|
371
379
|
txParams = normalizeTransactionParams(txParams);
|
|
372
380
|
if (!__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").has(networkClientId)) {
|
|
373
381
|
throw new Error(`Network client not found - ${networkClientId}`);
|
|
@@ -394,9 +402,13 @@ export class TransactionController extends BaseController {
|
|
|
394
402
|
const delegationAddressPromise = getDelegationAddress(txParams.from, ethQuery).catch(() => undefined);
|
|
395
403
|
const isEIP1559Compatible = await this.getEIP1559Compatibility(networkClientId);
|
|
396
404
|
validateTxParams(txParams, isEIP1559Compatible);
|
|
405
|
+
if (!txParams.type) {
|
|
406
|
+
// Determine transaction type based on transaction parameters and network compatibility
|
|
407
|
+
setEnvelopeType(txParams, isEIP1559Compatible);
|
|
408
|
+
}
|
|
397
409
|
const isDuplicateBatchId = batchId?.length &&
|
|
398
410
|
this.state.transactions.some((tx) => tx.batchId?.toLowerCase() === batchId?.toLowerCase());
|
|
399
|
-
if (isDuplicateBatchId) {
|
|
411
|
+
if (isDuplicateBatchId && origin && origin !== ORIGIN_METAMASK) {
|
|
400
412
|
throw rpcErrors.invalidInput('Batch ID already exists');
|
|
401
413
|
}
|
|
402
414
|
const dappSuggestedGasFees = this.generateDappSuggestedGasFees(txParams, origin);
|
|
@@ -414,6 +426,7 @@ export class TransactionController extends BaseController {
|
|
|
414
426
|
dappSuggestedGasFees,
|
|
415
427
|
delegationAddress,
|
|
416
428
|
deviceConfirmedOn,
|
|
429
|
+
disableGasBuffer,
|
|
417
430
|
id: random(),
|
|
418
431
|
isFirstTimeInteraction: undefined,
|
|
419
432
|
nestedTransactions,
|
|
@@ -471,9 +484,10 @@ export class TransactionController extends BaseController {
|
|
|
471
484
|
}
|
|
472
485
|
return {
|
|
473
486
|
result: this.processApproval(addedTransactionMeta, {
|
|
487
|
+
actionId,
|
|
474
488
|
isExisting: Boolean(existingTransactionMeta),
|
|
489
|
+
publishHook,
|
|
475
490
|
requireApproval,
|
|
476
|
-
actionId,
|
|
477
491
|
traceContext,
|
|
478
492
|
}),
|
|
479
493
|
transactionMeta: addedTransactionMeta,
|
|
@@ -796,14 +810,16 @@ export class TransactionController extends BaseController {
|
|
|
796
810
|
* @param txId - The ID of the transaction to update.
|
|
797
811
|
* @param params - The editable parameters to update.
|
|
798
812
|
* @param params.data - Data to pass with the transaction.
|
|
813
|
+
* @param params.from - Address to send the transaction from.
|
|
799
814
|
* @param params.gas - Maximum number of units of gas to use for the transaction.
|
|
800
815
|
* @param params.gasPrice - Price per gas for legacy transactions.
|
|
801
|
-
* @param params.
|
|
816
|
+
* @param params.maxFeePerGas - Maximum amount per gas to pay for the transaction, including the priority fee.
|
|
817
|
+
* @param params.maxPriorityFeePerGas - Maximum amount per gas to give to validator as incentive.
|
|
802
818
|
* @param params.to - Address to send the transaction to.
|
|
803
819
|
* @param params.value - Value associated with the transaction.
|
|
804
820
|
* @returns The updated transaction metadata.
|
|
805
821
|
*/
|
|
806
|
-
async updateEditableParams(txId, { data, gas, gasPrice,
|
|
822
|
+
async updateEditableParams(txId, { data, from, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, to, value, }) {
|
|
807
823
|
const transactionMeta = this.getTransaction(txId);
|
|
808
824
|
if (!transactionMeta) {
|
|
809
825
|
throw new Error(`Cannot update editable params as no transaction metadata found`);
|
|
@@ -817,6 +833,8 @@ export class TransactionController extends BaseController {
|
|
|
817
833
|
value,
|
|
818
834
|
gas,
|
|
819
835
|
gasPrice,
|
|
836
|
+
maxFeePerGas,
|
|
837
|
+
maxPriorityFeePerGas,
|
|
820
838
|
},
|
|
821
839
|
};
|
|
822
840
|
editableParams.txParams = pickBy(editableParams.txParams);
|
|
@@ -828,6 +846,7 @@ export class TransactionController extends BaseController {
|
|
|
828
846
|
updatedTransaction.type = type;
|
|
829
847
|
await updateTransactionLayer1GasFee({
|
|
830
848
|
layer1GasFeeFlows: this.layer1GasFeeFlows,
|
|
849
|
+
messenger: this.messagingSystem,
|
|
831
850
|
provider,
|
|
832
851
|
transactionMeta: updatedTransaction,
|
|
833
852
|
});
|
|
@@ -1040,7 +1059,7 @@ export class TransactionController extends BaseController {
|
|
|
1040
1059
|
networkClientId,
|
|
1041
1060
|
};
|
|
1042
1061
|
// Guaranteed as the default gas fee flow matches all transactions.
|
|
1043
|
-
const gasFeeFlow = getGasFeeFlow(transactionMeta, this.gasFeeFlows);
|
|
1062
|
+
const gasFeeFlow = getGasFeeFlow(transactionMeta, this.gasFeeFlows, this.messagingSystem);
|
|
1044
1063
|
const ethQuery = new EthQuery(provider);
|
|
1045
1064
|
const gasFeeControllerData = await this.getGasFeeEstimates({
|
|
1046
1065
|
networkClientId,
|
|
@@ -1048,6 +1067,7 @@ export class TransactionController extends BaseController {
|
|
|
1048
1067
|
return gasFeeFlow.getGasFees({
|
|
1049
1068
|
ethQuery,
|
|
1050
1069
|
gasFeeControllerData,
|
|
1070
|
+
messenger: this.messagingSystem,
|
|
1051
1071
|
transactionMeta,
|
|
1052
1072
|
});
|
|
1053
1073
|
}
|
|
@@ -1067,6 +1087,7 @@ export class TransactionController extends BaseController {
|
|
|
1067
1087
|
});
|
|
1068
1088
|
return await getTransactionLayer1GasFee({
|
|
1069
1089
|
layer1GasFeeFlows: this.layer1GasFeeFlows,
|
|
1090
|
+
messenger: this.messagingSystem,
|
|
1070
1091
|
provider,
|
|
1071
1092
|
transactionMeta: {
|
|
1072
1093
|
txParams: transactionParams,
|
|
@@ -1169,6 +1190,38 @@ export class TransactionController extends BaseController {
|
|
|
1169
1190
|
});
|
|
1170
1191
|
return updatedTransactionMeta.txParams.data;
|
|
1171
1192
|
}
|
|
1193
|
+
/**
|
|
1194
|
+
* Update the batch transactions associated with a transaction.
|
|
1195
|
+
* These transactions will be submitted with the main transaction as a batch.
|
|
1196
|
+
*
|
|
1197
|
+
* @param request - The request object.
|
|
1198
|
+
* @param request.transactionId - The ID of the transaction to update.
|
|
1199
|
+
* @param request.batchTransactions - The new batch transactions.
|
|
1200
|
+
*/
|
|
1201
|
+
updateBatchTransactions({ transactionId, batchTransactions, }) {
|
|
1202
|
+
log('Updating batch transactions', { transactionId, batchTransactions });
|
|
1203
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1204
|
+
transactionId,
|
|
1205
|
+
note: 'TransactionController#updateBatchTransactions - Batch transactions updated',
|
|
1206
|
+
}, (transactionMeta) => {
|
|
1207
|
+
transactionMeta.batchTransactions = batchTransactions;
|
|
1208
|
+
});
|
|
1209
|
+
}
|
|
1210
|
+
/**
|
|
1211
|
+
* Update the selected gas fee token for a transaction.
|
|
1212
|
+
*
|
|
1213
|
+
* @param transactionId - The ID of the transaction to update.
|
|
1214
|
+
* @param contractAddress - The contract address of the selected gas fee token.
|
|
1215
|
+
*/
|
|
1216
|
+
updateSelectedGasFeeToken(transactionId, contractAddress) {
|
|
1217
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, (transactionMeta) => {
|
|
1218
|
+
const hasMatchingGasFeeToken = transactionMeta.gasFeeTokens?.some((token) => token.tokenAddress.toLowerCase() === contractAddress?.toLowerCase());
|
|
1219
|
+
if (contractAddress && !hasMatchingGasFeeToken) {
|
|
1220
|
+
throw new Error(`No matching gas fee token found with address - ${contractAddress}`);
|
|
1221
|
+
}
|
|
1222
|
+
transactionMeta.selectedGasFeeToken = contractAddress;
|
|
1223
|
+
});
|
|
1224
|
+
}
|
|
1172
1225
|
addMetadata(transactionMeta) {
|
|
1173
1226
|
validateTxParams(transactionMeta.txParams);
|
|
1174
1227
|
this.update((state) => {
|
|
@@ -1193,10 +1246,12 @@ export class TransactionController extends BaseController {
|
|
|
1193
1246
|
gasFeeFlows: this.gasFeeFlows,
|
|
1194
1247
|
getGasFeeEstimates: this.getGasFeeEstimates,
|
|
1195
1248
|
getSavedGasFees: this.getSavedGasFees.bind(this),
|
|
1249
|
+
messenger: this.messagingSystem,
|
|
1196
1250
|
txMeta: transactionMeta,
|
|
1197
1251
|
}));
|
|
1198
1252
|
await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Update Layer 1 Gas Fees', parentContext: traceContext }, async () => await updateTransactionLayer1GasFee({
|
|
1199
1253
|
layer1GasFeeFlows: this.layer1GasFeeFlows,
|
|
1254
|
+
messenger: this.messagingSystem,
|
|
1200
1255
|
provider,
|
|
1201
1256
|
transactionMeta,
|
|
1202
1257
|
}));
|
|
@@ -1211,7 +1266,7 @@ export class TransactionController extends BaseController {
|
|
|
1211
1266
|
this.failTransaction(transactionMeta, new Error('Transaction incomplete at startup'));
|
|
1212
1267
|
}
|
|
1213
1268
|
}
|
|
1214
|
-
async processApproval(transactionMeta, { isExisting = false, requireApproval, shouldShowRequest = true,
|
|
1269
|
+
async processApproval(transactionMeta, { actionId, isExisting = false, publishHook, requireApproval, shouldShowRequest = true, traceContext, }) {
|
|
1215
1270
|
const transactionId = transactionMeta.id;
|
|
1216
1271
|
let resultCallbacks;
|
|
1217
1272
|
const { meta, isCompleted } = this.isTransactionCompleted(transactionId);
|
|
@@ -1238,7 +1293,7 @@ export class TransactionController extends BaseController {
|
|
|
1238
1293
|
}
|
|
1239
1294
|
const { isCompleted: isTxCompleted } = this.isTransactionCompleted(transactionId);
|
|
1240
1295
|
if (!isTxCompleted) {
|
|
1241
|
-
const approvalResult = await this.approveTransaction(transactionId, traceContext);
|
|
1296
|
+
const approvalResult = await this.approveTransaction(transactionId, traceContext, publishHook);
|
|
1242
1297
|
if (approvalResult === ApprovalState.SkippedViaBeforePublishHook &&
|
|
1243
1298
|
resultCallbacks) {
|
|
1244
1299
|
resultCallbacks.success();
|
|
@@ -1286,12 +1341,14 @@ export class TransactionController extends BaseController {
|
|
|
1286
1341
|
*
|
|
1287
1342
|
* @param transactionId - The ID of the transaction to approve.
|
|
1288
1343
|
* @param traceContext - The parent context for any new traces.
|
|
1344
|
+
* @param publishHookOverride - Custom logic to publish the transaction.
|
|
1289
1345
|
* @returns The state of the approval.
|
|
1290
1346
|
*/
|
|
1291
|
-
async approveTransaction(transactionId, traceContext) {
|
|
1292
|
-
|
|
1293
|
-
|
|
1347
|
+
async approveTransaction(transactionId, traceContext, publishHookOverride) {
|
|
1348
|
+
let clearApprovingTransactionId;
|
|
1349
|
+
let clearNonceLock;
|
|
1294
1350
|
let transactionMeta = this.getTransactionOrThrow(transactionId);
|
|
1351
|
+
log('Approving transaction', transactionMeta);
|
|
1295
1352
|
try {
|
|
1296
1353
|
if (!this.sign) {
|
|
1297
1354
|
this.failTransaction(transactionMeta, new Error('No sign method defined.'));
|
|
@@ -1306,10 +1363,9 @@ export class TransactionController extends BaseController {
|
|
|
1306
1363
|
return ApprovalState.NotApproved;
|
|
1307
1364
|
}
|
|
1308
1365
|
this.approvingTransactionIds.add(transactionId);
|
|
1309
|
-
|
|
1366
|
+
clearApprovingTransactionId = () => this.approvingTransactionIds.delete(transactionId);
|
|
1310
1367
|
const [nonce, releaseNonce] = await getNextNonce(transactionMeta, (address) => __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNonceLock(address, transactionMeta.networkClientId));
|
|
1311
|
-
|
|
1312
|
-
releaseNonce && cleanupTasks.push(releaseNonce);
|
|
1368
|
+
clearNonceLock = releaseNonce;
|
|
1313
1369
|
transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1314
1370
|
transactionId,
|
|
1315
1371
|
note: 'TransactionController#approveTransaction - Transaction approved',
|
|
@@ -1346,8 +1402,19 @@ export class TransactionController extends BaseController {
|
|
|
1346
1402
|
}
|
|
1347
1403
|
log('Publishing transaction', transactionMeta.txParams);
|
|
1348
1404
|
let hash;
|
|
1405
|
+
clearNonceLock?.();
|
|
1406
|
+
clearNonceLock = undefined;
|
|
1407
|
+
if (transactionMeta.batchTransactions?.length) {
|
|
1408
|
+
log('Found batch transactions', transactionMeta.batchTransactions);
|
|
1409
|
+
const extraTransactionsPublishHook = new ExtraTransactionsPublishHook({
|
|
1410
|
+
addTransactionBatch: this.addTransactionBatch.bind(this),
|
|
1411
|
+
transactions: transactionMeta.batchTransactions,
|
|
1412
|
+
});
|
|
1413
|
+
publishHookOverride = extraTransactionsPublishHook.getHook();
|
|
1414
|
+
}
|
|
1349
1415
|
await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Publish', parentContext: traceContext }, async () => {
|
|
1350
|
-
|
|
1416
|
+
const publishHook = publishHookOverride ?? this.publish;
|
|
1417
|
+
({ transactionHash: hash } = await publishHook(transactionMeta, rawTx));
|
|
1351
1418
|
if (hash === undefined) {
|
|
1352
1419
|
hash = await this.publishTransaction(ethQuery, {
|
|
1353
1420
|
...transactionMeta,
|
|
@@ -1383,7 +1450,8 @@ export class TransactionController extends BaseController {
|
|
|
1383
1450
|
return ApprovalState.NotApproved;
|
|
1384
1451
|
}
|
|
1385
1452
|
finally {
|
|
1386
|
-
|
|
1453
|
+
clearApprovingTransactionId?.();
|
|
1454
|
+
clearNonceLock?.();
|
|
1387
1455
|
}
|
|
1388
1456
|
}
|
|
1389
1457
|
async publishTransaction(ethQuery, transactionMeta, { skipSubmitHistory } = {}) {
|
|
@@ -1710,8 +1778,8 @@ export class TransactionController extends BaseController {
|
|
|
1710
1778
|
transactionMeta,
|
|
1711
1779
|
});
|
|
1712
1780
|
}
|
|
1713
|
-
getNonceTrackerTransactions(
|
|
1714
|
-
return getAndFormatTransactionsForNonceTracker(chainId, address,
|
|
1781
|
+
getNonceTrackerTransactions(statuses, address, chainId) {
|
|
1782
|
+
return getAndFormatTransactionsForNonceTracker(chainId, address, statuses, this.state.transactions);
|
|
1715
1783
|
}
|
|
1716
1784
|
onConfirmedTransaction(transactionMeta) {
|
|
1717
1785
|
log('Processing confirmed transaction', transactionMeta.id);
|
|
@@ -1771,7 +1839,7 @@ export class TransactionController extends BaseController {
|
|
|
1771
1839
|
error?.data?.message?.includes('nonce too low'));
|
|
1772
1840
|
}
|
|
1773
1841
|
}
|
|
1774
|
-
_TransactionController_internalEvents = new WeakMap(), _TransactionController_methodDataHelper = new WeakMap(), _TransactionController_incomingTransactionHelper = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_pendingTransactionOptions = new WeakMap(), _TransactionController_publicKeyEIP7702 = 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, }) {
|
|
1842
|
+
_TransactionController_internalEvents = new WeakMap(), _TransactionController_methodDataHelper = new WeakMap(), _TransactionController_incomingTransactionHelper = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_pendingTransactionOptions = new WeakMap(), _TransactionController_publishBatchHook = new WeakMap(), _TransactionController_publicKeyEIP7702 = 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, }) {
|
|
1775
1843
|
// If transaction is found for same action id, do not create a new transaction.
|
|
1776
1844
|
if (this.getTransactionWithActionId(actionId)) {
|
|
1777
1845
|
return;
|
|
@@ -1879,7 +1947,7 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
1879
1947
|
// TODO: Fix types
|
|
1880
1948
|
blockTracker,
|
|
1881
1949
|
getPendingTransactions: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getNonceTrackerPendingTransactions).bind(this, chainId),
|
|
1882
|
-
getConfirmedTransactions: this.getNonceTrackerTransactions.bind(this, TransactionStatus.confirmed, chainId),
|
|
1950
|
+
getConfirmedTransactions: this.getNonceTrackerTransactions.bind(this, [TransactionStatus.confirmed], chainId),
|
|
1883
1951
|
});
|
|
1884
1952
|
}, _TransactionController_createPendingTransactionTracker = function _TransactionController_createPendingTransactionTracker({ provider, blockTracker, chainId, networkClientId, }) {
|
|
1885
1953
|
const ethQuery = new EthQuery(provider);
|
|
@@ -1893,6 +1961,7 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
1893
1961
|
getGlobalLock: () => __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").acquireNonceLockForChainIdKey({
|
|
1894
1962
|
chainId,
|
|
1895
1963
|
}),
|
|
1964
|
+
messenger: this.messagingSystem,
|
|
1896
1965
|
publishTransaction: (_ethQuery, transactionMeta) => this.publishTransaction(_ethQuery, transactionMeta, {
|
|
1897
1966
|
skipSubmitHistory: true,
|
|
1898
1967
|
}),
|
|
@@ -1918,14 +1987,22 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
1918
1987
|
pendingTransactionTracker.hub.on('transaction-failed', this.failTransaction.bind(this));
|
|
1919
1988
|
pendingTransactionTracker.hub.on('transaction-updated', this.updateTransaction.bind(this));
|
|
1920
1989
|
}, _TransactionController_getNonceTrackerPendingTransactions = function _TransactionController_getNonceTrackerPendingTransactions(chainId, address) {
|
|
1921
|
-
const standardPendingTransactions = this.getNonceTrackerTransactions(
|
|
1990
|
+
const standardPendingTransactions = this.getNonceTrackerTransactions([
|
|
1991
|
+
TransactionStatus.approved,
|
|
1992
|
+
TransactionStatus.signed,
|
|
1993
|
+
TransactionStatus.submitted,
|
|
1994
|
+
], address, chainId);
|
|
1922
1995
|
const externalPendingTransactions = this.getExternalPendingTransactions(address, chainId);
|
|
1923
1996
|
return [...standardPendingTransactions, ...externalPendingTransactions];
|
|
1924
1997
|
}, _TransactionController_getGasFeeFlows = function _TransactionController_getGasFeeFlows() {
|
|
1925
1998
|
if (__classPrivateFieldGet(this, _TransactionController_testGasFeeFlows, "f")) {
|
|
1926
1999
|
return [new TestGasFeeFlow()];
|
|
1927
2000
|
}
|
|
1928
|
-
return [
|
|
2001
|
+
return [
|
|
2002
|
+
new RandomisedEstimationsGasFeeFlow(),
|
|
2003
|
+
new LineaGasFeeFlow(),
|
|
2004
|
+
new DefaultGasFeeFlow(),
|
|
2005
|
+
];
|
|
1929
2006
|
}, _TransactionController_getLayer1GasFeeFlows = function _TransactionController_getLayer1GasFeeFlows() {
|
|
1930
2007
|
return [new OptimismLayer1GasFeeFlow(), new ScrollLayer1GasFeeFlow()];
|
|
1931
2008
|
}, _TransactionController_updateTransactionInternal = function _TransactionController_updateTransactionInternal({ transactionId, note, skipHistory, skipValidation, skipResimulateCheck, }, callback) {
|
|
@@ -2013,8 +2090,12 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
2013
2090
|
},
|
|
2014
2091
|
tokenBalanceChanges: [],
|
|
2015
2092
|
};
|
|
2093
|
+
let gasFeeTokens = [];
|
|
2016
2094
|
if (__classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this)) {
|
|
2017
|
-
|
|
2095
|
+
const authorizationAddress = txParams?.authorizationList?.[0]?.address;
|
|
2096
|
+
const senderCode = authorizationAddress &&
|
|
2097
|
+
(DELEGATION_PREFIX + remove0x(authorizationAddress));
|
|
2098
|
+
const result = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Simulate', parentContext: traceContext }, () => getSimulationData({
|
|
2018
2099
|
chainId,
|
|
2019
2100
|
from: from,
|
|
2020
2101
|
to: to,
|
|
@@ -2022,7 +2103,10 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
2022
2103
|
data: data,
|
|
2023
2104
|
}, {
|
|
2024
2105
|
blockTime,
|
|
2106
|
+
senderCode,
|
|
2025
2107
|
}));
|
|
2108
|
+
gasFeeTokens = result?.gasFeeTokens;
|
|
2109
|
+
simulationData = result?.simulationData;
|
|
2026
2110
|
if (blockTime &&
|
|
2027
2111
|
prevSimulationData &&
|
|
2028
2112
|
hasSimulationDataChanged(prevSimulationData, simulationData)) {
|
|
@@ -2043,17 +2127,16 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
2043
2127
|
note: 'TransactionController#updateSimulationData - Update simulation data',
|
|
2044
2128
|
skipResimulateCheck: Boolean(blockTime),
|
|
2045
2129
|
}, (txMeta) => {
|
|
2130
|
+
txMeta.gasFeeTokens = gasFeeTokens;
|
|
2046
2131
|
txMeta.simulationData = simulationData;
|
|
2047
2132
|
});
|
|
2048
2133
|
log('Updated simulation data', transactionId, simulationData);
|
|
2049
2134
|
}, _TransactionController_onGasFeePollerTransactionUpdate = function _TransactionController_onGasFeePollerTransactionUpdate({ transactionId, gasFeeEstimates, gasFeeEstimatesLoaded, layer1GasFee, }) {
|
|
2050
2135
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipHistory: true }, (txMeta) => {
|
|
2051
|
-
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
2052
2136
|
updateTransactionGasFees({
|
|
2053
2137
|
txMeta,
|
|
2054
2138
|
gasFeeEstimates,
|
|
2055
2139
|
gasFeeEstimatesLoaded,
|
|
2056
|
-
getEIP1559Compatibility: this.getEIP1559Compatibility.bind(this),
|
|
2057
2140
|
isTxParamsGasFeeUpdatesEnabled: this.isTxParamsGasFeeUpdatesEnabled,
|
|
2058
2141
|
layer1GasFee,
|
|
2059
2142
|
});
|