@metamask/transaction-controller 27.0.1 → 28.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.
Files changed (33) hide show
  1. package/CHANGELOG.md +12 -1
  2. package/dist/TransactionController.js +4 -4
  3. package/dist/TransactionController.mjs +3 -3
  4. package/dist/{chunk-5WFLNKCL.js → chunk-2XKEAKQG.js} +11 -5
  5. package/dist/chunk-2XKEAKQG.js.map +1 -0
  6. package/dist/{chunk-JDLNCMGI.mjs → chunk-H6NWVGHL.mjs} +76 -39
  7. package/dist/chunk-H6NWVGHL.mjs.map +1 -0
  8. package/dist/{chunk-35MG26Y3.mjs → chunk-HHK4QSNF.mjs} +44 -34
  9. package/dist/chunk-HHK4QSNF.mjs.map +1 -0
  10. package/dist/{chunk-W3CS5GRD.mjs → chunk-NOHEXQ7Y.mjs} +11 -5
  11. package/dist/chunk-NOHEXQ7Y.mjs.map +1 -0
  12. package/dist/{chunk-HUVOOFOM.js → chunk-V6UIRCOF.js} +43 -33
  13. package/dist/chunk-V6UIRCOF.js.map +1 -0
  14. package/dist/{chunk-5SKCGFUC.js → chunk-X5WPBDI5.js} +79 -42
  15. package/dist/chunk-X5WPBDI5.js.map +1 -0
  16. package/dist/helpers/GasFeePoller.js +3 -3
  17. package/dist/helpers/GasFeePoller.mjs +2 -2
  18. package/dist/index.js +4 -4
  19. package/dist/index.mjs +3 -3
  20. package/dist/tsconfig.build.tsbuildinfo +1 -1
  21. package/dist/types/TransactionController.d.ts +11 -6
  22. package/dist/types/TransactionController.d.ts.map +1 -1
  23. package/dist/types/helpers/GasFeePoller.d.ts.map +1 -1
  24. package/dist/types/utils/layer1-gas-fee-flow.d.ts.map +1 -1
  25. package/dist/utils/layer1-gas-fee-flow.js +2 -2
  26. package/dist/utils/layer1-gas-fee-flow.mjs +1 -1
  27. package/package.json +2 -2
  28. package/dist/chunk-35MG26Y3.mjs.map +0 -1
  29. package/dist/chunk-5SKCGFUC.js.map +0 -1
  30. package/dist/chunk-5WFLNKCL.js.map +0 -1
  31. package/dist/chunk-HUVOOFOM.js.map +0 -1
  32. package/dist/chunk-JDLNCMGI.mjs.map +0 -1
  33. package/dist/chunk-W3CS5GRD.mjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
2
 
3
- var _chunk5WFLNKCLjs = require('./chunk-5WFLNKCL.js');
3
+ var _chunk2XKEAKQGjs = require('./chunk-2XKEAKQG.js');
4
4
 
5
5
 
6
6
  var _chunkUH7FNVKSjs = require('./chunk-UH7FNVKS.js');
@@ -20,7 +20,7 @@ var _utils = require('@metamask/utils');
20
20
  var _events = require('events'); var _events2 = _interopRequireDefault(_events);
21
21
  var log = _utils.createModuleLogger.call(void 0, _chunkS6VGOPUYjs.projectLogger, "gas-fee-poller");
22
22
  var INTERVAL_MILLISECONDS = 1e4;
23
- var _gasFeeFlows, _getGasFeeControllerEstimates, _getProvider, _getTransactions, _layer1GasFeeFlows, _timeout, _running, _start, start_fn, _stop, stop_fn, _onTimeout, onTimeout_fn, _updateTransactionGasFeeEstimates, updateTransactionGasFeeEstimates_fn, _updateTransactionSuggestedFees, updateTransactionSuggestedFees_fn, _updateTransactionLayer1GasFee, updateTransactionLayer1GasFee_fn, _getUnapprovedTransactions, getUnapprovedTransactions_fn;
23
+ var _gasFeeFlows, _getGasFeeControllerEstimates, _getProvider, _getTransactions, _layer1GasFeeFlows, _timeout, _running, _start, start_fn, _stop, stop_fn, _onTimeout, onTimeout_fn, _updateUnapprovedTransactions, updateUnapprovedTransactions_fn, _updateUnapprovedTransaction, updateUnapprovedTransaction_fn, _updateTransactionGasFeeEstimates, updateTransactionGasFeeEstimates_fn, _updateTransactionLayer1GasFee, updateTransactionLayer1GasFee_fn, _getUnapprovedTransactions, getUnapprovedTransactions_fn;
24
24
  var GasFeePoller = class {
25
25
  /**
26
26
  * Constructs a new instance of the GasFeePoller.
@@ -43,8 +43,9 @@ var GasFeePoller = class {
43
43
  _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _start);
44
44
  _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _stop);
45
45
  _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _onTimeout);
46
+ _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _updateUnapprovedTransactions);
47
+ _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _updateUnapprovedTransaction);
46
48
  _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _updateTransactionGasFeeEstimates);
47
- _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _updateTransactionSuggestedFees);
48
49
  _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _updateTransactionLayer1GasFee);
49
50
  _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _getUnapprovedTransactions);
50
51
  this.hub = new (0, _events2.default)();
@@ -98,30 +99,44 @@ stop_fn = function() {
98
99
  };
99
100
  _onTimeout = new WeakSet();
100
101
  onTimeout_fn = async function() {
101
- await _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionGasFeeEstimates, updateTransactionGasFeeEstimates_fn).call(this);
102
+ await _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateUnapprovedTransactions, updateUnapprovedTransactions_fn).call(this);
102
103
  _chunkZ4BLTVTBjs.__privateSet.call(void 0, this, _timeout, setTimeout(() => _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _onTimeout, onTimeout_fn).call(this), INTERVAL_MILLISECONDS));
103
104
  };
104
- _updateTransactionGasFeeEstimates = new WeakSet();
105
- updateTransactionGasFeeEstimates_fn = async function() {
105
+ _updateUnapprovedTransactions = new WeakSet();
106
+ updateUnapprovedTransactions_fn = async function() {
106
107
  const unapprovedTransactions = _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _getUnapprovedTransactions, getUnapprovedTransactions_fn).call(this);
107
- log("Found unapproved transactions", {
108
- count: unapprovedTransactions.length
109
- });
108
+ if (unapprovedTransactions.length) {
109
+ log("Found unapproved transactions", unapprovedTransactions.length);
110
+ }
110
111
  await Promise.all(
111
- unapprovedTransactions.flatMap((tx) => [
112
- _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionSuggestedFees, updateTransactionSuggestedFees_fn).call(this, tx),
113
- _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionLayer1GasFee, updateTransactionLayer1GasFee_fn).call(this, tx)
114
- ])
112
+ unapprovedTransactions.flatMap(
113
+ (tx) => _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateUnapprovedTransaction, updateUnapprovedTransaction_fn).call(this, tx)
114
+ )
115
115
  );
116
116
  };
117
- _updateTransactionSuggestedFees = new WeakSet();
118
- updateTransactionSuggestedFees_fn = async function(transactionMeta) {
117
+ _updateUnapprovedTransaction = new WeakSet();
118
+ updateUnapprovedTransaction_fn = async function(transactionMeta) {
119
+ const { id } = transactionMeta;
120
+ const [gasFeeEstimatesResponse, layer1GasFee] = await Promise.all([
121
+ _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionGasFeeEstimates, updateTransactionGasFeeEstimates_fn).call(this, transactionMeta),
122
+ _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionLayer1GasFee, updateTransactionLayer1GasFee_fn).call(this, transactionMeta)
123
+ ]);
124
+ if (!gasFeeEstimatesResponse && !layer1GasFee) {
125
+ return;
126
+ }
127
+ this.hub.emit("transaction-updated", {
128
+ transactionId: id,
129
+ gasFeeEstimates: gasFeeEstimatesResponse?.gasFeeEstimates,
130
+ gasFeeEstimatesLoaded: gasFeeEstimatesResponse?.gasFeeEstimatesLoaded,
131
+ layer1GasFee
132
+ });
133
+ };
134
+ _updateTransactionGasFeeEstimates = new WeakSet();
135
+ updateTransactionGasFeeEstimates_fn = async function(transactionMeta) {
119
136
  const { chainId, networkClientId } = transactionMeta;
120
137
  const ethQuery = new (0, _ethquery2.default)(_chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _getProvider).call(this, chainId, networkClientId));
121
138
  const gasFeeFlow = _chunkUH7FNVKSjs.getGasFeeFlow.call(void 0, transactionMeta, _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _gasFeeFlows));
122
- if (!gasFeeFlow) {
123
- log("No gas fee flow found", transactionMeta.id);
124
- } else {
139
+ if (gasFeeFlow) {
125
140
  log(
126
141
  "Found gas fee flow",
127
142
  gasFeeFlow.constructor.name,
@@ -143,32 +158,27 @@ updateTransactionSuggestedFees_fn = async function(transactionMeta) {
143
158
  }
144
159
  }
145
160
  if (!gasFeeEstimates && transactionMeta.gasFeeEstimatesLoaded) {
146
- return;
161
+ return void 0;
147
162
  }
148
- const updatedTransactionMeta = {
149
- ...transactionMeta,
163
+ log("Updated gas fee estimates", {
150
164
  gasFeeEstimates,
151
- gasFeeEstimatesLoaded: true
152
- };
153
- this.hub.emit("transaction-updated", updatedTransactionMeta);
154
- log("Updated suggested gas fees", {
155
- gasFeeEstimates: updatedTransactionMeta.gasFeeEstimates,
156
- transaction: updatedTransactionMeta.id
165
+ transaction: transactionMeta.id
157
166
  });
167
+ return { gasFeeEstimates, gasFeeEstimatesLoaded: true };
158
168
  };
159
169
  _updateTransactionLayer1GasFee = new WeakSet();
160
170
  updateTransactionLayer1GasFee_fn = async function(transactionMeta) {
161
171
  const { chainId, networkClientId } = transactionMeta;
162
172
  const provider = _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _getProvider).call(this, chainId, networkClientId);
163
- await _chunk5WFLNKCLjs.updateTransactionLayer1GasFee.call(void 0, {
164
- provider,
173
+ const layer1GasFee = await _chunk2XKEAKQGjs.getTransactionLayer1GasFee.call(void 0, {
165
174
  layer1GasFeeFlows: _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _layer1GasFeeFlows),
175
+ provider,
166
176
  transactionMeta
167
177
  });
168
- if (transactionMeta.layer1GasFee === void 0) {
169
- return;
178
+ if (layer1GasFee) {
179
+ log("Updated layer 1 gas fee", layer1GasFee, transactionMeta.id);
170
180
  }
171
- this.hub.emit("transaction-updated", transactionMeta);
181
+ return layer1GasFee;
172
182
  };
173
183
  _getUnapprovedTransactions = new WeakSet();
174
184
  getUnapprovedTransactions_fn = function() {
@@ -180,4 +190,4 @@ getUnapprovedTransactions_fn = function() {
180
190
 
181
191
 
182
192
  exports.GasFeePoller = GasFeePoller;
183
- //# sourceMappingURL=chunk-HUVOOFOM.js.map
193
+ //# sourceMappingURL=chunk-V6UIRCOF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/helpers/GasFeePoller.ts"],"names":[],"mappings":"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","sourcesContent":["import EthQuery from '@metamask/eth-query';\nimport type { GasFeeState } from '@metamask/gas-fee-controller';\nimport type { NetworkClientId, Provider } from '@metamask/network-controller';\nimport type { Hex } from '@metamask/utils';\nimport { createModuleLogger } from '@metamask/utils';\nimport EventEmitter from 'events';\n\nimport { projectLogger } from '../logger';\nimport type {\n GasFeeEstimates,\n GasFeeFlow,\n GasFeeFlowRequest,\n Layer1GasFeeFlow,\n} from '../types';\nimport { TransactionStatus, type TransactionMeta } from '../types';\nimport { getGasFeeFlow } from '../utils/gas-flow';\nimport { getTransactionLayer1GasFee } from '../utils/layer1-gas-fee-flow';\n\nconst log = createModuleLogger(projectLogger, 'gas-fee-poller');\n\nconst INTERVAL_MILLISECONDS = 10000;\n\n/**\n * Automatically polls and updates suggested gas fees on unapproved transactions.\n */\nexport class GasFeePoller {\n hub: EventEmitter = new EventEmitter();\n\n #gasFeeFlows: GasFeeFlow[];\n\n #getGasFeeControllerEstimates: () => Promise<GasFeeState>;\n\n #getProvider: (chainId: Hex, networkClientId?: NetworkClientId) => Provider;\n\n #getTransactions: () => TransactionMeta[];\n\n #layer1GasFeeFlows: Layer1GasFeeFlow[];\n\n #timeout: ReturnType<typeof setTimeout> | undefined;\n\n #running = false;\n\n /**\n * Constructs a new instance of the GasFeePoller.\n * @param options - The options for this instance.\n * @param options.gasFeeFlows - The gas fee flows to use to obtain suitable gas fees.\n * @param options.getGasFeeControllerEstimates - Callback to obtain the default fee estimates.\n * @param options.getProvider - Callback to obtain a provider instance.\n * @param options.getTransactions - Callback to obtain the transaction data.\n * @param options.layer1GasFeeFlows - The layer 1 gas fee flows to use to obtain suitable layer 1 gas fees.\n * @param options.onStateChange - Callback to register a listener for controller state changes.\n */\n constructor({\n gasFeeFlows,\n getGasFeeControllerEstimates,\n getProvider,\n getTransactions,\n layer1GasFeeFlows,\n onStateChange,\n }: {\n gasFeeFlows: GasFeeFlow[];\n getGasFeeControllerEstimates: () => Promise<GasFeeState>;\n getProvider: (chainId: Hex, networkClientId?: NetworkClientId) => Provider;\n getTransactions: () => TransactionMeta[];\n layer1GasFeeFlows: Layer1GasFeeFlow[];\n onStateChange: (listener: () => void) => void;\n }) {\n this.#gasFeeFlows = gasFeeFlows;\n this.#layer1GasFeeFlows = layer1GasFeeFlows;\n this.#getGasFeeControllerEstimates = getGasFeeControllerEstimates;\n this.#getProvider = getProvider;\n this.#getTransactions = getTransactions;\n\n onStateChange(() => {\n const unapprovedTransactions = this.#getUnapprovedTransactions();\n\n if (unapprovedTransactions.length) {\n this.#start();\n } else {\n this.#stop();\n }\n });\n }\n\n #start() {\n if (this.#running) {\n return;\n }\n\n // Intentionally not awaiting since this starts the timeout chain.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.#onTimeout();\n\n this.#running = true;\n\n log('Started polling');\n }\n\n #stop() {\n if (!this.#running) {\n return;\n }\n\n clearTimeout(this.#timeout);\n\n this.#timeout = undefined;\n this.#running = false;\n\n log('Stopped polling');\n }\n\n async #onTimeout() {\n await this.#updateUnapprovedTransactions();\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n this.#timeout = setTimeout(() => this.#onTimeout(), INTERVAL_MILLISECONDS);\n }\n\n async #updateUnapprovedTransactions() {\n const unapprovedTransactions = this.#getUnapprovedTransactions();\n\n if (unapprovedTransactions.length) {\n log('Found unapproved transactions', unapprovedTransactions.length);\n }\n\n await Promise.all(\n unapprovedTransactions.flatMap((tx) =>\n this.#updateUnapprovedTransaction(tx),\n ),\n );\n }\n\n async #updateUnapprovedTransaction(transactionMeta: TransactionMeta) {\n const { id } = transactionMeta;\n\n const [gasFeeEstimatesResponse, layer1GasFee] = await Promise.all([\n this.#updateTransactionGasFeeEstimates(transactionMeta),\n this.#updateTransactionLayer1GasFee(transactionMeta),\n ]);\n\n if (!gasFeeEstimatesResponse && !layer1GasFee) {\n return;\n }\n\n this.hub.emit('transaction-updated', {\n transactionId: id,\n gasFeeEstimates: gasFeeEstimatesResponse?.gasFeeEstimates,\n gasFeeEstimatesLoaded: gasFeeEstimatesResponse?.gasFeeEstimatesLoaded,\n layer1GasFee,\n });\n }\n\n async #updateTransactionGasFeeEstimates(\n transactionMeta: TransactionMeta,\n ): Promise<\n | { gasFeeEstimates?: GasFeeEstimates; gasFeeEstimatesLoaded: boolean }\n | undefined\n > {\n const { chainId, networkClientId } = transactionMeta;\n\n const ethQuery = new EthQuery(this.#getProvider(chainId, networkClientId));\n const gasFeeFlow = getGasFeeFlow(transactionMeta, this.#gasFeeFlows);\n\n if (gasFeeFlow) {\n log(\n 'Found gas fee flow',\n gasFeeFlow.constructor.name,\n transactionMeta.id,\n );\n }\n\n const request: GasFeeFlowRequest = {\n ethQuery,\n getGasFeeControllerEstimates: this.#getGasFeeControllerEstimates,\n transactionMeta,\n };\n\n let gasFeeEstimates: GasFeeEstimates | undefined;\n\n if (gasFeeFlow) {\n try {\n const response = await gasFeeFlow.getGasFees(request);\n gasFeeEstimates = response.estimates;\n } catch (error) {\n log('Failed to get suggested gas fees', transactionMeta.id, error);\n }\n }\n\n if (!gasFeeEstimates && transactionMeta.gasFeeEstimatesLoaded) {\n return undefined;\n }\n\n log('Updated gas fee estimates', {\n gasFeeEstimates,\n transaction: transactionMeta.id,\n });\n\n return { gasFeeEstimates, gasFeeEstimatesLoaded: true };\n }\n\n async #updateTransactionLayer1GasFee(\n transactionMeta: TransactionMeta,\n ): Promise<Hex | undefined> {\n const { chainId, networkClientId } = transactionMeta;\n const provider = this.#getProvider(chainId, networkClientId);\n\n const layer1GasFee = await getTransactionLayer1GasFee({\n layer1GasFeeFlows: this.#layer1GasFeeFlows,\n provider,\n transactionMeta,\n });\n\n if (layer1GasFee) {\n log('Updated layer 1 gas fee', layer1GasFee, transactionMeta.id);\n }\n\n return layer1GasFee;\n }\n\n #getUnapprovedTransactions() {\n return this.#getTransactions().filter(\n (tx) => tx.status === TransactionStatus.unapproved,\n );\n }\n}\n"]}
@@ -26,11 +26,11 @@ var _chunk3VF7ZGRVjs = require('./chunk-3VF7ZGRV.js');
26
26
  var _chunkETMW527Mjs = require('./chunk-ETMW527M.js');
27
27
 
28
28
 
29
- var _chunkHUVOOFOMjs = require('./chunk-HUVOOFOM.js');
29
+ var _chunkV6UIRCOFjs = require('./chunk-V6UIRCOF.js');
30
30
 
31
31
 
32
32
 
33
- var _chunk5WFLNKCLjs = require('./chunk-5WFLNKCL.js');
33
+ var _chunk2XKEAKQGjs = require('./chunk-2XKEAKQG.js');
34
34
 
35
35
 
36
36
  var _chunkDTDTOMTBjs = require('./chunk-DTDTOMTB.js');
@@ -134,7 +134,7 @@ function getDefaultTransactionControllerState() {
134
134
  lastFetchedBlockNumbers: {}
135
135
  };
136
136
  }
137
- var _internalEvents, _incomingTransactionOptions, _pendingTransactionOptions, _transactionHistoryLimit, _isSimulationEnabled, _multichainTrackingHelper, _createNonceTracker, createNonceTracker_fn, _createIncomingTransactionHelper, createIncomingTransactionHelper_fn, _createPendingTransactionTracker, createPendingTransactionTracker_fn, _checkForPendingTransactionAndStartPolling, _stopAllTracking, stopAllTracking_fn, _removeIncomingTransactionHelperListeners, removeIncomingTransactionHelperListeners_fn, _addIncomingTransactionHelperListeners, addIncomingTransactionHelperListeners_fn, _removePendingTransactionTrackerListeners, removePendingTransactionTrackerListeners_fn, _addPendingTransactionTrackerListeners, addPendingTransactionTrackerListeners_fn, _getNonceTrackerPendingTransactions, getNonceTrackerPendingTransactions_fn, _getGasFeeFlows, getGasFeeFlows_fn, _getLayer1GasFeeFlows, getLayer1GasFeeFlows_fn, _updateTransactionInternal, updateTransactionInternal_fn, _checkIfTransactionParamsUpdated, checkIfTransactionParamsUpdated_fn, _onTransactionParamsUpdated, onTransactionParamsUpdated_fn, _updateSimulationData, updateSimulationData_fn;
137
+ var _internalEvents, _incomingTransactionOptions, _pendingTransactionOptions, _transactionHistoryLimit, _isSimulationEnabled, _multichainTrackingHelper, _createNonceTracker, createNonceTracker_fn, _createIncomingTransactionHelper, createIncomingTransactionHelper_fn, _createPendingTransactionTracker, createPendingTransactionTracker_fn, _checkForPendingTransactionAndStartPolling, _stopAllTracking, stopAllTracking_fn, _removeIncomingTransactionHelperListeners, removeIncomingTransactionHelperListeners_fn, _addIncomingTransactionHelperListeners, addIncomingTransactionHelperListeners_fn, _removePendingTransactionTrackerListeners, removePendingTransactionTrackerListeners_fn, _addPendingTransactionTrackerListeners, addPendingTransactionTrackerListeners_fn, _getNonceTrackerPendingTransactions, getNonceTrackerPendingTransactions_fn, _getGasFeeFlows, getGasFeeFlows_fn, _getLayer1GasFeeFlows, getLayer1GasFeeFlows_fn, _updateTransactionInternal, updateTransactionInternal_fn, _checkIfTransactionParamsUpdated, checkIfTransactionParamsUpdated_fn, _onTransactionParamsUpdated, onTransactionParamsUpdated_fn, _updateSimulationData, updateSimulationData_fn, _onGasFeePollerTransactionUpdate, onGasFeePollerTransactionUpdate_fn;
138
138
  var TransactionController = class extends _basecontroller.BaseController {
139
139
  /**
140
140
  * Constructs a TransactionController.
@@ -217,6 +217,7 @@ var TransactionController = class extends _basecontroller.BaseController {
217
217
  _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _checkIfTransactionParamsUpdated);
218
218
  _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _onTransactionParamsUpdated);
219
219
  _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _updateSimulationData);
220
+ _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _onGasFeePollerTransactionUpdate);
220
221
  _chunkZ4BLTVTBjs.__privateAdd.call(void 0, this, _internalEvents, new (0, _events.EventEmitter)());
221
222
  this.inProcessOfSigning = /* @__PURE__ */ new Set();
222
223
  this.mutex = new (0, _asyncmutex.Mutex)();
@@ -304,7 +305,7 @@ var TransactionController = class extends _basecontroller.BaseController {
304
305
  });
305
306
  this.gasFeeFlows = _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _getGasFeeFlows, getGasFeeFlows_fn).call(this);
306
307
  this.layer1GasFeeFlows = _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _getLayer1GasFeeFlows, getLayer1GasFeeFlows_fn).call(this);
307
- const gasFeePoller = new (0, _chunkHUVOOFOMjs.GasFeePoller)({
308
+ const gasFeePoller = new (0, _chunkV6UIRCOFjs.GasFeePoller)({
308
309
  // Default gas fee polling is not yet supported by the clients
309
310
  gasFeeFlows: this.gasFeeFlows.slice(0, -1),
310
311
  getGasFeeControllerEstimates: this.getGasFeeEstimates,
@@ -323,7 +324,7 @@ var TransactionController = class extends _basecontroller.BaseController {
323
324
  });
324
325
  gasFeePoller.hub.on(
325
326
  "transaction-updated",
326
- (transactionMeta) => _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionInternal, updateTransactionInternal_fn).call(this, transactionMeta, { skipHistory: true })
327
+ _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _onGasFeePollerTransactionUpdate, onGasFeePollerTransactionUpdate_fn).bind(this)
327
328
  );
328
329
  this.messagingSystem.subscribe(
329
330
  "TransactionController:stateChange",
@@ -857,10 +858,8 @@ var TransactionController = class extends _basecontroller.BaseController {
857
858
  * @param note - A note or update reason to include in the transaction history.
858
859
  */
859
860
  updateTransaction(transactionMeta, note) {
860
- _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionInternal, updateTransactionInternal_fn).call(this, transactionMeta, {
861
- note,
862
- skipHistory: this.isHistoryDisabled
863
- });
861
+ const { id: transactionId } = transactionMeta;
862
+ _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionInternal, updateTransactionInternal_fn).call(this, { transactionId, note, skipHistory: this.isHistoryDisabled }, () => ({ ...transactionMeta }));
864
863
  }
865
864
  /**
866
865
  * Update the security alert response for a transaction.
@@ -1156,7 +1155,7 @@ var TransactionController = class extends _basecontroller.BaseController {
1156
1155
  ethQuery
1157
1156
  );
1158
1157
  updatedTransaction.type = type;
1159
- await _chunk5WFLNKCLjs.updateTransactionLayer1GasFee.call(void 0, {
1158
+ await _chunk2XKEAKQGjs.updateTransactionLayer1GasFee.call(void 0, {
1160
1159
  layer1GasFeeFlows: this.layer1GasFeeFlows,
1161
1160
  provider,
1162
1161
  transactionMeta: updatedTransaction
@@ -1367,18 +1366,23 @@ var TransactionController = class extends _basecontroller.BaseController {
1367
1366
  return filteredTransactions;
1368
1367
  }
1369
1368
  /**
1370
- * Utility method to get the layer 1 gas fee for given transaction params.
1369
+ * Determine the layer 1 gas fee for the given transaction parameters.
1371
1370
  *
1372
- * @param chainId - Estimated transaction chainId.
1373
- * @param networkClientId - Estimated transaction networkClientId.
1374
- * @param transactionParams - The transaction params to estimate layer 1 gas fee for.
1371
+ * @param request - The request object.
1372
+ * @param request.transactionParams - The transaction parameters to estimate the layer 1 gas fee for.
1373
+ * @param request.chainId - The ID of the chain where the transaction will be executed.
1374
+ * @param request.networkClientId - The ID of a specific network client to process the transaction.
1375
1375
  */
1376
- async getLayer1GasFee(chainId, networkClientId, transactionParams) {
1376
+ async getLayer1GasFee({
1377
+ transactionParams,
1378
+ chainId,
1379
+ networkClientId
1380
+ }) {
1377
1381
  const provider = _chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _multichainTrackingHelper).getProvider({
1378
1382
  networkClientId,
1379
1383
  chainId
1380
1384
  });
1381
- const layer1GasFee = await _chunk5WFLNKCLjs.getTransactionLayer1GasFee.call(void 0, {
1385
+ return await _chunk2XKEAKQGjs.getTransactionLayer1GasFee.call(void 0, {
1382
1386
  layer1GasFeeFlows: this.layer1GasFeeFlows,
1383
1387
  provider,
1384
1388
  transactionMeta: {
@@ -1386,7 +1390,6 @@ var TransactionController = class extends _basecontroller.BaseController {
1386
1390
  chainId
1387
1391
  }
1388
1392
  });
1389
- return layer1GasFee;
1390
1393
  }
1391
1394
  async signExternalTransaction(chainId, transactionParams) {
1392
1395
  if (!this.sign) {
@@ -1477,7 +1480,7 @@ var TransactionController = class extends _basecontroller.BaseController {
1477
1480
  getSavedGasFees: this.getSavedGasFees.bind(this),
1478
1481
  txMeta: transactionMeta
1479
1482
  });
1480
- await _chunk5WFLNKCLjs.updateTransactionLayer1GasFee.call(void 0, {
1483
+ await _chunk2XKEAKQGjs.updateTransactionLayer1GasFee.call(void 0, {
1481
1484
  layer1GasFeeFlows: this.layer1GasFeeFlows,
1482
1485
  provider,
1483
1486
  transactionMeta
@@ -2327,25 +2330,36 @@ getLayer1GasFeeFlows_fn = function() {
2327
2330
  return [new (0, _chunkETMW527Mjs.OptimismLayer1GasFeeFlow)()];
2328
2331
  };
2329
2332
  _updateTransactionInternal = new WeakSet();
2330
- updateTransactionInternal_fn = function(transactionMeta, { note, skipHistory }) {
2331
- const normalizedTransaction = {
2332
- ...transactionMeta,
2333
- txParams: _chunkUGFBA4GVjs.normalizeTransactionParams.call(void 0, transactionMeta.txParams)
2334
- };
2335
- _chunkVH47Q6TSjs.validateTxParams.call(void 0, normalizedTransaction.txParams);
2336
- const updatedTransactionParams = _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _checkIfTransactionParamsUpdated, checkIfTransactionParamsUpdated_fn).call(this, normalizedTransaction);
2337
- const transactionWithUpdatedHistory = skipHistory === true ? normalizedTransaction : _chunkQP75SWIQjs.updateTransactionHistory.call(void 0,
2338
- normalizedTransaction,
2339
- note ?? "Transaction updated"
2340
- );
2333
+ updateTransactionInternal_fn = function({
2334
+ transactionId,
2335
+ note,
2336
+ skipHistory
2337
+ }, callback) {
2338
+ let updatedTransactionParams = [];
2341
2339
  this.update((state) => {
2342
2340
  const index = state.transactions.findIndex(
2343
- ({ id }) => transactionMeta.id === id
2341
+ ({ id }) => id === transactionId
2344
2342
  );
2345
- state.transactions[index] = transactionWithUpdatedHistory;
2343
+ let transactionMeta2 = state.transactions[index];
2344
+ transactionMeta2 = callback(transactionMeta2) ?? transactionMeta2;
2345
+ transactionMeta2.txParams = _chunkUGFBA4GVjs.normalizeTransactionParams.call(void 0,
2346
+ transactionMeta2.txParams
2347
+ );
2348
+ _chunkVH47Q6TSjs.validateTxParams.call(void 0, transactionMeta2.txParams);
2349
+ updatedTransactionParams = _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _checkIfTransactionParamsUpdated, checkIfTransactionParamsUpdated_fn).call(this, transactionMeta2);
2350
+ if (skipHistory !== true) {
2351
+ transactionMeta2 = _chunkQP75SWIQjs.updateTransactionHistory.call(void 0,
2352
+ transactionMeta2,
2353
+ note ?? "Transaction updated"
2354
+ );
2355
+ }
2356
+ state.transactions[index] = transactionMeta2;
2346
2357
  });
2358
+ const transactionMeta = this.getTransaction(
2359
+ transactionId
2360
+ );
2347
2361
  if (updatedTransactionParams.length > 0) {
2348
- _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _onTransactionParamsUpdated, onTransactionParamsUpdated_fn).call(this, normalizedTransaction, updatedTransactionParams);
2362
+ _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _onTransactionParamsUpdated, onTransactionParamsUpdated_fn).call(this, transactionMeta, updatedTransactionParams);
2349
2363
  }
2350
2364
  };
2351
2365
  _checkIfTransactionParamsUpdated = new WeakSet();
@@ -2379,7 +2393,7 @@ onTransactionParamsUpdated_fn = function(transactionMeta, updatedParams) {
2379
2393
  };
2380
2394
  _updateSimulationData = new WeakSet();
2381
2395
  updateSimulationData_fn = async function(transactionMeta) {
2382
- const { id, chainId, txParams } = transactionMeta;
2396
+ const { id: transactionId, chainId, txParams } = transactionMeta;
2383
2397
  const { from, to, value, data } = txParams;
2384
2398
  let simulationData = {
2385
2399
  error: {
@@ -2389,7 +2403,9 @@ updateSimulationData_fn = async function(transactionMeta) {
2389
2403
  tokenBalanceChanges: []
2390
2404
  };
2391
2405
  if (_chunkZ4BLTVTBjs.__privateGet.call(void 0, this, _isSimulationEnabled).call(this)) {
2392
- _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionInternal, updateTransactionInternal_fn).call(this, { ...transactionMeta, simulationData: void 0 }, { skipHistory: true });
2406
+ _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionInternal, updateTransactionInternal_fn).call(this, { transactionId, skipHistory: true }, (txMeta) => {
2407
+ txMeta.simulationData = void 0;
2408
+ });
2393
2409
  simulationData = await _chunk3VF7ZGRVjs.getSimulationData.call(void 0, {
2394
2410
  chainId,
2395
2411
  from,
@@ -2398,20 +2414,41 @@ updateSimulationData_fn = async function(transactionMeta) {
2398
2414
  data
2399
2415
  });
2400
2416
  }
2401
- const finalTransactionMeta = this.getTransaction(id);
2417
+ const finalTransactionMeta = this.getTransaction(transactionId);
2402
2418
  if (!finalTransactionMeta) {
2403
2419
  _chunkS6VGOPUYjs.projectLogger.call(void 0,
2404
2420
  "Cannot update simulation data as transaction not found",
2405
- id,
2421
+ transactionId,
2406
2422
  simulationData
2407
2423
  );
2408
2424
  return;
2409
2425
  }
2410
- this.updateTransaction(
2411
- { ...finalTransactionMeta, simulationData },
2412
- "TransactionController#updateSimulationData - Update simulation data"
2413
- );
2414
- _chunkS6VGOPUYjs.projectLogger.call(void 0, "Updated simulation data", id, simulationData);
2426
+ _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionInternal, updateTransactionInternal_fn).call(this, {
2427
+ transactionId,
2428
+ note: "TransactionController#updateSimulationData - Update simulation data"
2429
+ }, (txMeta) => {
2430
+ txMeta.simulationData = simulationData;
2431
+ });
2432
+ _chunkS6VGOPUYjs.projectLogger.call(void 0, "Updated simulation data", transactionId, simulationData);
2433
+ };
2434
+ _onGasFeePollerTransactionUpdate = new WeakSet();
2435
+ onGasFeePollerTransactionUpdate_fn = function({
2436
+ transactionId,
2437
+ gasFeeEstimates,
2438
+ gasFeeEstimatesLoaded,
2439
+ layer1GasFee
2440
+ }) {
2441
+ _chunkZ4BLTVTBjs.__privateMethod.call(void 0, this, _updateTransactionInternal, updateTransactionInternal_fn).call(this, { transactionId, skipHistory: true }, (txMeta) => {
2442
+ if (gasFeeEstimates) {
2443
+ txMeta.gasFeeEstimates = gasFeeEstimates;
2444
+ }
2445
+ if (gasFeeEstimatesLoaded !== void 0) {
2446
+ txMeta.gasFeeEstimatesLoaded = gasFeeEstimatesLoaded;
2447
+ }
2448
+ if (layer1GasFee) {
2449
+ txMeta.layer1GasFee = layer1GasFee;
2450
+ }
2451
+ });
2415
2452
  };
2416
2453
 
2417
2454
 
@@ -2421,4 +2458,4 @@ updateSimulationData_fn = async function(transactionMeta) {
2421
2458
 
2422
2459
 
2423
2460
  exports.HARDFORK = HARDFORK; exports.CANCEL_RATE = CANCEL_RATE; exports.SPEED_UP_RATE = SPEED_UP_RATE; exports.ApprovalState = ApprovalState; exports.TransactionController = TransactionController;
2424
- //# sourceMappingURL=chunk-5SKCGFUC.js.map
2461
+ //# sourceMappingURL=chunk-X5WPBDI5.js.map