@metamask/transaction-controller 62.5.0 → 62.6.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 (176) hide show
  1. package/CHANGELOG.md +21 -1
  2. package/dist/TransactionController.cjs +105 -48
  3. package/dist/TransactionController.cjs.map +1 -1
  4. package/dist/TransactionController.d.cts +33 -21
  5. package/dist/TransactionController.d.cts.map +1 -1
  6. package/dist/TransactionController.d.mts +33 -21
  7. package/dist/TransactionController.d.mts.map +1 -1
  8. package/dist/TransactionController.mjs +106 -49
  9. package/dist/TransactionController.mjs.map +1 -1
  10. package/dist/api/accounts-api.cjs +1 -1
  11. package/dist/api/accounts-api.cjs.map +1 -1
  12. package/dist/api/accounts-api.mjs +1 -1
  13. package/dist/api/accounts-api.mjs.map +1 -1
  14. package/dist/api/simulation-api.cjs +1 -1
  15. package/dist/api/simulation-api.cjs.map +1 -1
  16. package/dist/api/simulation-api.mjs +1 -1
  17. package/dist/api/simulation-api.mjs.map +1 -1
  18. package/dist/gas-flows/LineaGasFeeFlow.cjs.map +1 -1
  19. package/dist/gas-flows/LineaGasFeeFlow.mjs.map +1 -1
  20. package/dist/gas-flows/OptimismLayer1GasFeeFlow.cjs +28 -17
  21. package/dist/gas-flows/OptimismLayer1GasFeeFlow.cjs.map +1 -1
  22. package/dist/gas-flows/OptimismLayer1GasFeeFlow.d.cts +1 -6
  23. package/dist/gas-flows/OptimismLayer1GasFeeFlow.d.cts.map +1 -1
  24. package/dist/gas-flows/OptimismLayer1GasFeeFlow.d.mts +1 -6
  25. package/dist/gas-flows/OptimismLayer1GasFeeFlow.d.mts.map +1 -1
  26. package/dist/gas-flows/OptimismLayer1GasFeeFlow.mjs +28 -17
  27. package/dist/gas-flows/OptimismLayer1GasFeeFlow.mjs.map +1 -1
  28. package/dist/gas-flows/OracleLayer1GasFeeFlow.cjs +1 -0
  29. package/dist/gas-flows/OracleLayer1GasFeeFlow.cjs.map +1 -1
  30. package/dist/gas-flows/OracleLayer1GasFeeFlow.d.cts.map +1 -1
  31. package/dist/gas-flows/OracleLayer1GasFeeFlow.d.mts.map +1 -1
  32. package/dist/gas-flows/OracleLayer1GasFeeFlow.mjs +1 -0
  33. package/dist/gas-flows/OracleLayer1GasFeeFlow.mjs.map +1 -1
  34. package/dist/helpers/AccountsApiRemoteTransactionSource.cjs.map +1 -1
  35. package/dist/helpers/AccountsApiRemoteTransactionSource.mjs.map +1 -1
  36. package/dist/helpers/GasFeePoller.cjs.map +1 -1
  37. package/dist/helpers/GasFeePoller.mjs.map +1 -1
  38. package/dist/helpers/IncomingTransactionHelper.cjs.map +1 -1
  39. package/dist/helpers/IncomingTransactionHelper.d.cts.map +1 -1
  40. package/dist/helpers/IncomingTransactionHelper.d.mts.map +1 -1
  41. package/dist/helpers/IncomingTransactionHelper.mjs.map +1 -1
  42. package/dist/helpers/MultichainTrackingHelper.cjs +2 -2
  43. package/dist/helpers/MultichainTrackingHelper.cjs.map +1 -1
  44. package/dist/helpers/MultichainTrackingHelper.d.cts.map +1 -1
  45. package/dist/helpers/MultichainTrackingHelper.d.mts.map +1 -1
  46. package/dist/helpers/MultichainTrackingHelper.mjs +2 -2
  47. package/dist/helpers/MultichainTrackingHelper.mjs.map +1 -1
  48. package/dist/helpers/PendingTransactionTracker.cjs +88 -22
  49. package/dist/helpers/PendingTransactionTracker.cjs.map +1 -1
  50. package/dist/helpers/PendingTransactionTracker.d.cts +7 -6
  51. package/dist/helpers/PendingTransactionTracker.d.cts.map +1 -1
  52. package/dist/helpers/PendingTransactionTracker.d.mts +7 -6
  53. package/dist/helpers/PendingTransactionTracker.d.mts.map +1 -1
  54. package/dist/helpers/PendingTransactionTracker.mjs +88 -22
  55. package/dist/helpers/PendingTransactionTracker.mjs.map +1 -1
  56. package/dist/helpers/ResimulateHelper.cjs.map +1 -1
  57. package/dist/helpers/ResimulateHelper.d.cts +1 -4
  58. package/dist/helpers/ResimulateHelper.d.cts.map +1 -1
  59. package/dist/helpers/ResimulateHelper.d.mts +1 -4
  60. package/dist/helpers/ResimulateHelper.d.mts.map +1 -1
  61. package/dist/helpers/ResimulateHelper.mjs.map +1 -1
  62. package/dist/helpers/TransactionPoller.cjs.map +1 -1
  63. package/dist/helpers/TransactionPoller.d.cts.map +1 -1
  64. package/dist/helpers/TransactionPoller.d.mts.map +1 -1
  65. package/dist/helpers/TransactionPoller.mjs.map +1 -1
  66. package/dist/hooks/CollectPublishHook.cjs +1 -1
  67. package/dist/hooks/CollectPublishHook.cjs.map +1 -1
  68. package/dist/hooks/CollectPublishHook.d.cts.map +1 -1
  69. package/dist/hooks/CollectPublishHook.d.mts.map +1 -1
  70. package/dist/hooks/CollectPublishHook.mjs +1 -1
  71. package/dist/hooks/CollectPublishHook.mjs.map +1 -1
  72. package/dist/hooks/ExtraTransactionsPublishHook.cjs.map +1 -1
  73. package/dist/hooks/ExtraTransactionsPublishHook.mjs.map +1 -1
  74. package/dist/index.cjs.map +1 -1
  75. package/dist/index.d.cts +1 -1
  76. package/dist/index.d.cts.map +1 -1
  77. package/dist/index.d.mts +1 -1
  78. package/dist/index.d.mts.map +1 -1
  79. package/dist/index.mjs.map +1 -1
  80. package/dist/types.cjs +5 -0
  81. package/dist/types.cjs.map +1 -1
  82. package/dist/types.d.cts +6 -0
  83. package/dist/types.d.cts.map +1 -1
  84. package/dist/types.d.mts +6 -0
  85. package/dist/types.d.mts.map +1 -1
  86. package/dist/types.mjs +5 -0
  87. package/dist/types.mjs.map +1 -1
  88. package/dist/utils/balance-changes.cjs +5 -5
  89. package/dist/utils/balance-changes.cjs.map +1 -1
  90. package/dist/utils/balance-changes.d.cts.map +1 -1
  91. package/dist/utils/balance-changes.d.mts.map +1 -1
  92. package/dist/utils/balance-changes.mjs +5 -5
  93. package/dist/utils/balance-changes.mjs.map +1 -1
  94. package/dist/utils/balance.cjs.map +1 -1
  95. package/dist/utils/balance.d.cts.map +1 -1
  96. package/dist/utils/balance.d.mts.map +1 -1
  97. package/dist/utils/balance.mjs.map +1 -1
  98. package/dist/utils/batch.cjs +9 -4
  99. package/dist/utils/batch.cjs.map +1 -1
  100. package/dist/utils/batch.d.cts.map +1 -1
  101. package/dist/utils/batch.d.mts.map +1 -1
  102. package/dist/utils/batch.mjs +9 -4
  103. package/dist/utils/batch.mjs.map +1 -1
  104. package/dist/utils/eip7702.cjs +4 -3
  105. package/dist/utils/eip7702.cjs.map +1 -1
  106. package/dist/utils/eip7702.d.cts +1 -1
  107. package/dist/utils/eip7702.d.cts.map +1 -1
  108. package/dist/utils/eip7702.d.mts +1 -1
  109. package/dist/utils/eip7702.d.mts.map +1 -1
  110. package/dist/utils/eip7702.mjs +4 -3
  111. package/dist/utils/eip7702.mjs.map +1 -1
  112. package/dist/utils/external-transactions.cjs.map +1 -1
  113. package/dist/utils/external-transactions.d.cts.map +1 -1
  114. package/dist/utils/external-transactions.d.mts.map +1 -1
  115. package/dist/utils/external-transactions.mjs.map +1 -1
  116. package/dist/utils/feature-flags.cjs +22 -7
  117. package/dist/utils/feature-flags.cjs.map +1 -1
  118. package/dist/utils/feature-flags.d.cts +24 -0
  119. package/dist/utils/feature-flags.d.cts.map +1 -1
  120. package/dist/utils/feature-flags.d.mts +24 -0
  121. package/dist/utils/feature-flags.d.mts.map +1 -1
  122. package/dist/utils/feature-flags.mjs +20 -6
  123. package/dist/utils/feature-flags.mjs.map +1 -1
  124. package/dist/utils/first-time-interaction.cjs +3 -5
  125. package/dist/utils/first-time-interaction.cjs.map +1 -1
  126. package/dist/utils/first-time-interaction.d.cts.map +1 -1
  127. package/dist/utils/first-time-interaction.d.mts.map +1 -1
  128. package/dist/utils/first-time-interaction.mjs +3 -5
  129. package/dist/utils/first-time-interaction.mjs.map +1 -1
  130. package/dist/utils/gas-fee-tokens.cjs +1 -1
  131. package/dist/utils/gas-fee-tokens.cjs.map +1 -1
  132. package/dist/utils/gas-fee-tokens.d.cts.map +1 -1
  133. package/dist/utils/gas-fee-tokens.d.mts.map +1 -1
  134. package/dist/utils/gas-fee-tokens.mjs +1 -1
  135. package/dist/utils/gas-fee-tokens.mjs.map +1 -1
  136. package/dist/utils/gas-fees.cjs +1 -3
  137. package/dist/utils/gas-fees.cjs.map +1 -1
  138. package/dist/utils/gas-fees.d.cts +1 -1
  139. package/dist/utils/gas-fees.d.cts.map +1 -1
  140. package/dist/utils/gas-fees.d.mts +1 -1
  141. package/dist/utils/gas-fees.d.mts.map +1 -1
  142. package/dist/utils/gas-fees.mjs +1 -3
  143. package/dist/utils/gas-fees.mjs.map +1 -1
  144. package/dist/utils/gas.cjs +71 -15
  145. package/dist/utils/gas.cjs.map +1 -1
  146. package/dist/utils/gas.d.cts +18 -12
  147. package/dist/utils/gas.d.cts.map +1 -1
  148. package/dist/utils/gas.d.mts +18 -12
  149. package/dist/utils/gas.d.mts.map +1 -1
  150. package/dist/utils/gas.mjs +70 -15
  151. package/dist/utils/gas.mjs.map +1 -1
  152. package/dist/utils/layer1-gas-fee-flow.cjs.map +1 -1
  153. package/dist/utils/layer1-gas-fee-flow.d.cts.map +1 -1
  154. package/dist/utils/layer1-gas-fee-flow.d.mts.map +1 -1
  155. package/dist/utils/layer1-gas-fee-flow.mjs.map +1 -1
  156. package/dist/utils/prepare.cjs.map +1 -1
  157. package/dist/utils/prepare.d.cts +1 -1
  158. package/dist/utils/prepare.d.cts.map +1 -1
  159. package/dist/utils/prepare.d.mts +1 -1
  160. package/dist/utils/prepare.d.mts.map +1 -1
  161. package/dist/utils/prepare.mjs.map +1 -1
  162. package/dist/utils/swaps.cjs.map +1 -1
  163. package/dist/utils/swaps.mjs.map +1 -1
  164. package/dist/utils/utils.cjs +10 -10
  165. package/dist/utils/utils.cjs.map +1 -1
  166. package/dist/utils/utils.d.cts +4 -4
  167. package/dist/utils/utils.d.cts.map +1 -1
  168. package/dist/utils/utils.d.mts +4 -4
  169. package/dist/utils/utils.d.mts.map +1 -1
  170. package/dist/utils/utils.mjs +10 -10
  171. package/dist/utils/utils.mjs.map +1 -1
  172. package/dist/utils/validation.cjs.map +1 -1
  173. package/dist/utils/validation.d.cts.map +1 -1
  174. package/dist/utils/validation.d.mts.map +1 -1
  175. package/dist/utils/validation.mjs.map +1 -1
  176. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [62.6.0]
11
+
12
+ ### Added
13
+
14
+ - Add `estimateGasBatch` function and messenger action to estimate gas for batch transactions ([#7405](https://github.com/MetaMask/core/pull/7405))
15
+ - Add optional `gasLimit7702` property to `TransactionBatchRequest`.
16
+ - Automatically fail pending transactions if no receipt and hash not recognised by network after multiple attempts ([#7329](https://github.com/MetaMask/core/pull/7329))
17
+ - Add optional `isTimeoutEnabled` callback to disable for specific transactions.
18
+ - Ignores transactions with future nonce.
19
+ - Threshold determined by feature flag.
20
+
21
+ ### Changed
22
+
23
+ - Throw with more specific error message if publish fails ([#7418](https://github.com/MetaMask/core/pull/7418))
24
+
25
+ ### Fixed
26
+
27
+ - Prevent `TransactionController:transactionApproved` event firing if keyring throws during signing ([#7410](https://github.com/MetaMask/core/pull/7410))
28
+
10
29
  ## [62.5.0]
11
30
 
12
31
  ### Changed
@@ -2009,7 +2028,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2009
2028
 
2010
2029
  All changes listed after this point were applied to this package following the monorepo conversion.
2011
2030
 
2012
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.5.0...HEAD
2031
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.6.0...HEAD
2032
+ [62.6.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.5.0...@metamask/transaction-controller@62.6.0
2013
2033
  [62.5.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.4.0...@metamask/transaction-controller@62.5.0
2014
2034
  [62.4.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.3.1...@metamask/transaction-controller@62.4.0
2015
2035
  [62.3.1]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.3.0...@metamask/transaction-controller@62.3.1
@@ -13,7 +13,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
13
13
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
15
  };
16
- var _TransactionController_instances, _TransactionController_afterAdd, _TransactionController_afterSign, _TransactionController_afterSimulate, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_beforeSign, _TransactionController_gasFeeFlows, _TransactionController_getAdditionalSignArguments, _TransactionController_getCurrentAccountEIP1559Compatibility, _TransactionController_getCurrentNetworkEIP1559Compatibility, _TransactionController_getExternalPendingTransactions, _TransactionController_getGasFeeEstimates, _TransactionController_getNetworkState, _TransactionController_getPermittedAccounts, _TransactionController_getSavedGasFees, _TransactionController_getSimulationConfig, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_internalEvents, _TransactionController_isAutomaticGasFeeUpdateEnabled, _TransactionController_isEIP7702GasFeeTokensEnabled, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isHistoryDisabled, _TransactionController_isSendFlowHistoryDisabled, _TransactionController_isSimulationEnabled, _TransactionController_isSwapsDisabled, _TransactionController_layer1GasFeeFlows, _TransactionController_methodDataHelper, _TransactionController_multichainTrackingHelper, _TransactionController_pendingTransactionOptions, _TransactionController_publicKeyEIP7702, _TransactionController_publish, _TransactionController_publishBatchHook, _TransactionController_securityProviderRequest, _TransactionController_sign, _TransactionController_signAbortCallbacks, _TransactionController_skipSimulationTransactionIds, _TransactionController_testGasFeeFlows, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _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_getChainId, _TransactionController_getNetworkClientId, _TransactionController_getEthQuery, _TransactionController_getProvider, _TransactionController_onIncomingTransactions, _TransactionController_generateDappSuggestedGasFees, _TransactionController_addExternalTransaction, _TransactionController_markNonceDuplicatesDropped, _TransactionController_setTransactionStatusDropped, _TransactionController_getTransactionWithActionId, _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_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_runAfterSimulateHook, _TransactionController_defaultPublishHook, _TransactionController_getGasFeeTokens, _TransactionController_getGasFeeTokensAction;
16
+ var _TransactionController_instances, _TransactionController_afterAdd, _TransactionController_afterSign, _TransactionController_afterSimulate, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_beforeSign, _TransactionController_gasFeeFlows, _TransactionController_getAdditionalSignArguments, _TransactionController_getCurrentAccountEIP1559Compatibility, _TransactionController_getCurrentNetworkEIP1559Compatibility, _TransactionController_getExternalPendingTransactions, _TransactionController_getGasFeeEstimates, _TransactionController_getNetworkState, _TransactionController_getPermittedAccounts, _TransactionController_getSavedGasFees, _TransactionController_getSimulationConfig, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_internalEvents, _TransactionController_isAutomaticGasFeeUpdateEnabled, _TransactionController_isEIP7702GasFeeTokensEnabled, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isHistoryDisabled, _TransactionController_isSendFlowHistoryDisabled, _TransactionController_isSimulationEnabled, _TransactionController_isSwapsDisabled, _TransactionController_isTimeoutEnabled, _TransactionController_layer1GasFeeFlows, _TransactionController_methodDataHelper, _TransactionController_multichainTrackingHelper, _TransactionController_pendingTransactionOptions, _TransactionController_publicKeyEIP7702, _TransactionController_publish, _TransactionController_publishBatchHook, _TransactionController_securityProviderRequest, _TransactionController_sign, _TransactionController_signAbortCallbacks, _TransactionController_skipSimulationTransactionIds, _TransactionController_testGasFeeFlows, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _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_getChainId, _TransactionController_getNetworkClientId, _TransactionController_getEthQuery, _TransactionController_getProvider, _TransactionController_onIncomingTransactions, _TransactionController_generateDappSuggestedGasFees, _TransactionController_addExternalTransaction, _TransactionController_markNonceDuplicatesDropped, _TransactionController_setTransactionStatusDropped, _TransactionController_getTransactionWithActionId, _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_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_runAfterSimulateHook, _TransactionController_defaultPublishHook, _TransactionController_getGasFeeTokens, _TransactionController_getGasFeeTokensAction;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.TransactionController = exports.ApprovalState = exports.SPEED_UP_RATE = exports.CANCEL_RATE = void 0;
19
19
  const base_controller_1 = require("@metamask/base-controller");
@@ -182,6 +182,7 @@ class TransactionController extends base_controller_1.BaseController {
182
182
  _TransactionController_isSendFlowHistoryDisabled.set(this, void 0);
183
183
  _TransactionController_isSimulationEnabled.set(this, void 0);
184
184
  _TransactionController_isSwapsDisabled.set(this, void 0);
185
+ _TransactionController_isTimeoutEnabled.set(this, void 0);
185
186
  _TransactionController_layer1GasFeeFlows.set(this, void 0);
186
187
  _TransactionController_methodDataHelper.set(this, void 0);
187
188
  _TransactionController_multichainTrackingHelper.set(this, void 0);
@@ -202,32 +203,43 @@ class TransactionController extends base_controller_1.BaseController {
202
203
  this.messenger = messenger;
203
204
  __classPrivateFieldSet(this, _TransactionController_afterAdd, hooks?.afterAdd ?? (() => Promise.resolve({})), "f");
204
205
  __classPrivateFieldSet(this, _TransactionController_afterSign, hooks?.afterSign ?? (() => true), "f");
205
- __classPrivateFieldSet(this, _TransactionController_afterSimulate, hooks?.afterSimulate ?? (() => Promise.resolve({})), "f");
206
+ __classPrivateFieldSet(this, _TransactionController_afterSimulate, hooks?.afterSimulate ??
207
+ (() => Promise.resolve({})), "f");
206
208
  __classPrivateFieldSet(this, _TransactionController_beforeCheckPendingTransaction,
207
209
  /* istanbul ignore next */
208
- hooks?.beforeCheckPendingTransaction ?? (() => Promise.resolve(true)), "f");
210
+ hooks?.beforeCheckPendingTransaction ??
211
+ (() => Promise.resolve(true)), "f");
209
212
  __classPrivateFieldSet(this, _TransactionController_beforePublish, hooks?.beforePublish ?? (() => Promise.resolve(true)), "f");
210
- __classPrivateFieldSet(this, _TransactionController_beforeSign, hooks?.beforeSign ?? (() => Promise.resolve({})), "f");
211
- __classPrivateFieldSet(this, _TransactionController_getAdditionalSignArguments, hooks?.getAdditionalSignArguments ?? (() => []), "f");
212
- __classPrivateFieldSet(this, _TransactionController_getCurrentAccountEIP1559Compatibility, getCurrentAccountEIP1559Compatibility ?? (() => Promise.resolve(true)), "f");
213
+ __classPrivateFieldSet(this, _TransactionController_beforeSign, hooks?.beforeSign ??
214
+ (() => Promise.resolve({})), "f");
215
+ __classPrivateFieldSet(this, _TransactionController_getAdditionalSignArguments, hooks?.getAdditionalSignArguments ??
216
+ (() => []), "f");
217
+ __classPrivateFieldSet(this, _TransactionController_getCurrentAccountEIP1559Compatibility, getCurrentAccountEIP1559Compatibility ??
218
+ (() => Promise.resolve(true)), "f");
213
219
  __classPrivateFieldSet(this, _TransactionController_getCurrentNetworkEIP1559Compatibility, getCurrentNetworkEIP1559Compatibility, "f");
214
220
  __classPrivateFieldSet(this, _TransactionController_getExternalPendingTransactions, getExternalPendingTransactions ?? (() => []), "f");
215
- __classPrivateFieldSet(this, _TransactionController_getGasFeeEstimates, getGasFeeEstimates || (() => Promise.resolve({})), "f");
221
+ __classPrivateFieldSet(this, _TransactionController_getGasFeeEstimates, getGasFeeEstimates ??
222
+ (() => Promise.resolve({})), "f");
216
223
  __classPrivateFieldSet(this, _TransactionController_getNetworkState, getNetworkState, "f");
217
224
  __classPrivateFieldSet(this, _TransactionController_getPermittedAccounts, getPermittedAccounts, "f");
218
225
  __classPrivateFieldSet(this, _TransactionController_getSavedGasFees, getSavedGasFees ?? ((_chainId) => undefined), "f");
219
- __classPrivateFieldSet(this, _TransactionController_getSimulationConfig, getSimulationConfig ?? (() => Promise.resolve({})), "f");
226
+ __classPrivateFieldSet(this, _TransactionController_getSimulationConfig, getSimulationConfig ??
227
+ (() => Promise.resolve({})), "f");
220
228
  __classPrivateFieldSet(this, _TransactionController_incomingTransactionOptions, incomingTransactions, "f");
221
- __classPrivateFieldSet(this, _TransactionController_isAutomaticGasFeeUpdateEnabled, isAutomaticGasFeeUpdateEnabled ?? ((_txMeta) => false), "f");
222
- __classPrivateFieldSet(this, _TransactionController_isEIP7702GasFeeTokensEnabled, isEIP7702GasFeeTokensEnabled ?? (() => Promise.resolve(false)), "f");
229
+ __classPrivateFieldSet(this, _TransactionController_isAutomaticGasFeeUpdateEnabled, isAutomaticGasFeeUpdateEnabled ??
230
+ ((_txMeta) => false), "f");
231
+ __classPrivateFieldSet(this, _TransactionController_isEIP7702GasFeeTokensEnabled, isEIP7702GasFeeTokensEnabled ??
232
+ (() => Promise.resolve(false)), "f");
223
233
  __classPrivateFieldSet(this, _TransactionController_isFirstTimeInteractionEnabled, isFirstTimeInteractionEnabled ?? (() => true), "f");
224
234
  __classPrivateFieldSet(this, _TransactionController_isHistoryDisabled, disableHistory ?? false, "f");
225
235
  __classPrivateFieldSet(this, _TransactionController_isSendFlowHistoryDisabled, disableSendFlowHistory ?? false, "f");
226
236
  __classPrivateFieldSet(this, _TransactionController_isSimulationEnabled, isSimulationEnabled ?? (() => true), "f");
227
237
  __classPrivateFieldSet(this, _TransactionController_isSwapsDisabled, disableSwaps ?? false, "f");
238
+ __classPrivateFieldSet(this, _TransactionController_isTimeoutEnabled, hooks?.isTimeoutEnabled ?? (() => true), "f");
228
239
  __classPrivateFieldSet(this, _TransactionController_pendingTransactionOptions, pendingTransactions, "f");
229
240
  __classPrivateFieldSet(this, _TransactionController_publicKeyEIP7702, publicKeyEIP7702, "f");
230
- __classPrivateFieldSet(this, _TransactionController_publish, hooks?.publish ?? (() => Promise.resolve({ transactionHash: undefined })), "f");
241
+ __classPrivateFieldSet(this, _TransactionController_publish, hooks?.publish ??
242
+ (() => Promise.resolve({ transactionHash: undefined })), "f");
231
243
  __classPrivateFieldSet(this, _TransactionController_publishBatchHook, hooks?.publishBatch, "f");
232
244
  __classPrivateFieldSet(this, _TransactionController_securityProviderRequest, securityProviderRequest, "f");
233
245
  __classPrivateFieldSet(this, _TransactionController_sign, sign, "f");
@@ -292,6 +304,7 @@ class TransactionController extends base_controller_1.BaseController {
292
304
  // when transactionsController state changes
293
305
  // check for pending transactions and start polling if there are any
294
306
  this.messenger.subscribe('TransactionController:stateChange', __classPrivateFieldGet(this, _TransactionController_checkForPendingTransactionAndStartPolling, "f"));
307
+ // eslint-disable-next-line no-new
295
308
  new ResimulateHelper_1.ResimulateHelper({
296
309
  simulateTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSimulationData).bind(this),
297
310
  onTransactionsUpdate: (listener) => {
@@ -379,6 +392,7 @@ class TransactionController extends base_controller_1.BaseController {
379
392
  async addTransaction(txParams, options) {
380
393
  (0, logger_1.projectLogger)('Adding transaction', txParams, options);
381
394
  const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, isGasFeeIncluded, isGasFeeSponsored, method, nestedTransactions, networkClientId, origin, publishHook, requireApproval, securityAlertResponse, sendFlowHistory, skipInitialGasEstimate, swaps = {}, traceContext, type, } = options;
395
+ // eslint-disable-next-line no-param-reassign
382
396
  txParams = (0, utils_2.normalizeTransactionParams)(txParams);
383
397
  if (!__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").has(networkClientId)) {
384
398
  throw new Error(`Network client not found - ${networkClientId}`);
@@ -452,6 +466,7 @@ class TransactionController extends base_controller_1.BaseController {
452
466
  addedTransactionMeta.txParamsOriginal = (0, lodash_1.cloneDeep)(addedTransactionMeta.txParams);
453
467
  updateTransaction(addedTransactionMeta);
454
468
  }
469
+ // eslint-disable-next-line no-negated-condition
455
470
  if (!skipInitialGasEstimate) {
456
471
  await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Estimate Gas Properties', parentContext: traceContext }, (context) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasProperties).call(this, addedTransactionMeta, {
457
472
  traceContext: context,
@@ -483,10 +498,12 @@ class TransactionController extends base_controller_1.BaseController {
483
498
  // Set security provider response
484
499
  if (method && __classPrivateFieldGet(this, _TransactionController_securityProviderRequest, "f")) {
485
500
  const securityProviderResponse = await __classPrivateFieldGet(this, _TransactionController_securityProviderRequest, "f").call(this, addedTransactionMeta, method);
501
+ // eslint-disable-next-line require-atomic-updates
486
502
  addedTransactionMeta.securityProviderResponse =
487
503
  securityProviderResponse;
488
504
  }
489
505
  if (!__classPrivateFieldGet(this, _TransactionController_isSendFlowHistoryDisabled, "f")) {
506
+ // eslint-disable-next-line require-atomic-updates
490
507
  addedTransactionMeta.sendFlowHistory = sendFlowHistory ?? [];
491
508
  }
492
509
  // Initial history push
@@ -512,6 +529,7 @@ class TransactionController extends base_controller_1.BaseController {
512
529
  return undefined;
513
530
  })
514
531
  .catch(lodash_1.noop);
532
+ // eslint-disable-next-line no-negated-condition
515
533
  if (requireApproval !== false) {
516
534
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSimulationData).call(this, addedTransactionMeta, {
517
535
  traceContext,
@@ -559,7 +577,7 @@ class TransactionController extends base_controller_1.BaseController {
559
577
  * @param request - Request object.
560
578
  * @param request.tags - Additional tags to identify the source of the request.
561
579
  */
562
- async updateIncomingTransactions({ tags } = {}) {
580
+ async updateIncomingTransactions({ tags, } = {}) {
563
581
  await __classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").update({ tags });
564
582
  }
565
583
  /**
@@ -639,6 +657,29 @@ class TransactionController extends base_controller_1.BaseController {
639
657
  });
640
658
  return { gas: estimatedGas, simulationFails };
641
659
  }
660
+ /**
661
+ * Estimates required gas for a batch of transactions.
662
+ *
663
+ * @param request - Request object.
664
+ * @param request.chainId - Chain ID of the transactions.
665
+ * @param request.from - Address of the sender.
666
+ * @param request.transactions - Array of transactions within a batch request.
667
+ * @returns Object containing the gas limit.
668
+ */
669
+ async estimateGasBatch({ chainId, from, transactions, }) {
670
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, {
671
+ chainId,
672
+ });
673
+ return (0, gas_1.estimateGasBatch)({
674
+ chainId,
675
+ ethQuery,
676
+ from,
677
+ getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
678
+ isAtomicBatchSupported: this.isAtomicBatchSupported.bind(this),
679
+ messenger: this.messenger,
680
+ transactions,
681
+ });
682
+ }
642
683
  /**
643
684
  * Estimates required gas for a given transaction and add additional gas buffer with the given multiplier.
644
685
  *
@@ -1026,11 +1067,11 @@ class TransactionController extends base_controller_1.BaseController {
1026
1067
  return __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_signExternalTransaction).call(this, txParams.chainId, txParams);
1027
1068
  }));
1028
1069
  }
1029
- catch (err) {
1030
- (0, logger_1.projectLogger)('Error while signing transactions with same nonce', err);
1070
+ catch (error) {
1071
+ (0, logger_1.projectLogger)('Error while signing transactions with same nonce', error);
1031
1072
  // Must set transaction to submitted/failed before releasing lock
1032
1073
  // continue with error chain
1033
- throw err;
1074
+ throw error;
1034
1075
  }
1035
1076
  finally {
1036
1077
  nonceLock?.releaseLock();
@@ -1109,7 +1150,7 @@ class TransactionController extends base_controller_1.BaseController {
1109
1150
  ? predicate
1110
1151
  : // TODO: Replace `any` with type
1111
1152
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1112
- (v) => v === predicate;
1153
+ (value) => value === predicate;
1113
1154
  });
1114
1155
  const transactionsToFilter = initialList ?? this.state.transactions;
1115
1156
  // Combine sortBy and pickBy to transform our state object into an array of
@@ -1386,13 +1427,14 @@ class TransactionController extends base_controller_1.BaseController {
1386
1427
  }
1387
1428
  }
1388
1429
  exports.TransactionController = TransactionController;
1389
- _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSign = new WeakMap(), _TransactionController_afterSimulate = new WeakMap(), _TransactionController_approvingTransactionIds = new WeakMap(), _TransactionController_beforeCheckPendingTransaction = new WeakMap(), _TransactionController_beforePublish = new WeakMap(), _TransactionController_beforeSign = new WeakMap(), _TransactionController_gasFeeFlows = new WeakMap(), _TransactionController_getAdditionalSignArguments = new WeakMap(), _TransactionController_getCurrentAccountEIP1559Compatibility = new WeakMap(), _TransactionController_getCurrentNetworkEIP1559Compatibility = new WeakMap(), _TransactionController_getExternalPendingTransactions = new WeakMap(), _TransactionController_getGasFeeEstimates = new WeakMap(), _TransactionController_getNetworkState = new WeakMap(), _TransactionController_getPermittedAccounts = new WeakMap(), _TransactionController_getSavedGasFees = new WeakMap(), _TransactionController_getSimulationConfig = new WeakMap(), _TransactionController_incomingTransactionHelper = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_internalEvents = new WeakMap(), _TransactionController_isAutomaticGasFeeUpdateEnabled = new WeakMap(), _TransactionController_isEIP7702GasFeeTokensEnabled = new WeakMap(), _TransactionController_isFirstTimeInteractionEnabled = new WeakMap(), _TransactionController_isHistoryDisabled = new WeakMap(), _TransactionController_isSendFlowHistoryDisabled = new WeakMap(), _TransactionController_isSimulationEnabled = new WeakMap(), _TransactionController_isSwapsDisabled = new WeakMap(), _TransactionController_layer1GasFeeFlows = new WeakMap(), _TransactionController_methodDataHelper = new WeakMap(), _TransactionController_multichainTrackingHelper = new WeakMap(), _TransactionController_pendingTransactionOptions = new WeakMap(), _TransactionController_publicKeyEIP7702 = new WeakMap(), _TransactionController_publish = new WeakMap(), _TransactionController_publishBatchHook = new WeakMap(), _TransactionController_securityProviderRequest = new WeakMap(), _TransactionController_sign = new WeakMap(), _TransactionController_signAbortCallbacks = new WeakMap(), _TransactionController_skipSimulationTransactionIds = new WeakMap(), _TransactionController_testGasFeeFlows = new WeakMap(), _TransactionController_trace = new WeakMap(), _TransactionController_transactionHistoryLimit = new WeakMap(), _TransactionController_checkForPendingTransactionAndStartPolling = new WeakMap(), _TransactionController_instances = new WeakSet(), _TransactionController_retryTransaction = async function _TransactionController_retryTransaction({ actionId, afterSubmit, estimatedBaseFee, gasValues, label, prepareTransactionParams, rate, transactionId, transactionType, }) {
1430
+ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSign = new WeakMap(), _TransactionController_afterSimulate = new WeakMap(), _TransactionController_approvingTransactionIds = new WeakMap(), _TransactionController_beforeCheckPendingTransaction = new WeakMap(), _TransactionController_beforePublish = new WeakMap(), _TransactionController_beforeSign = new WeakMap(), _TransactionController_gasFeeFlows = new WeakMap(), _TransactionController_getAdditionalSignArguments = new WeakMap(), _TransactionController_getCurrentAccountEIP1559Compatibility = new WeakMap(), _TransactionController_getCurrentNetworkEIP1559Compatibility = new WeakMap(), _TransactionController_getExternalPendingTransactions = new WeakMap(), _TransactionController_getGasFeeEstimates = new WeakMap(), _TransactionController_getNetworkState = new WeakMap(), _TransactionController_getPermittedAccounts = new WeakMap(), _TransactionController_getSavedGasFees = new WeakMap(), _TransactionController_getSimulationConfig = new WeakMap(), _TransactionController_incomingTransactionHelper = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_internalEvents = new WeakMap(), _TransactionController_isAutomaticGasFeeUpdateEnabled = new WeakMap(), _TransactionController_isEIP7702GasFeeTokensEnabled = new WeakMap(), _TransactionController_isFirstTimeInteractionEnabled = new WeakMap(), _TransactionController_isHistoryDisabled = new WeakMap(), _TransactionController_isSendFlowHistoryDisabled = new WeakMap(), _TransactionController_isSimulationEnabled = new WeakMap(), _TransactionController_isSwapsDisabled = new WeakMap(), _TransactionController_isTimeoutEnabled = new WeakMap(), _TransactionController_layer1GasFeeFlows = new WeakMap(), _TransactionController_methodDataHelper = new WeakMap(), _TransactionController_multichainTrackingHelper = new WeakMap(), _TransactionController_pendingTransactionOptions = new WeakMap(), _TransactionController_publicKeyEIP7702 = new WeakMap(), _TransactionController_publish = new WeakMap(), _TransactionController_publishBatchHook = new WeakMap(), _TransactionController_securityProviderRequest = new WeakMap(), _TransactionController_sign = new WeakMap(), _TransactionController_signAbortCallbacks = new WeakMap(), _TransactionController_skipSimulationTransactionIds = new WeakMap(), _TransactionController_testGasFeeFlows = new WeakMap(), _TransactionController_trace = new WeakMap(), _TransactionController_transactionHistoryLimit = new WeakMap(), _TransactionController_checkForPendingTransactionAndStartPolling = new WeakMap(), _TransactionController_instances = new WeakSet(), _TransactionController_retryTransaction = async function _TransactionController_retryTransaction({ actionId, afterSubmit, estimatedBaseFee, gasValues, label, prepareTransactionParams, rate, transactionId, transactionType, }) {
1390
1431
  // If transaction is found for same action id, do not create a new transaction.
1391
1432
  if (__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionWithActionId).call(this, actionId)) {
1392
1433
  return;
1393
1434
  }
1394
1435
  if (gasValues) {
1395
1436
  // Not good practice to reassign a parameter but temporarily avoiding a larger refactor.
1437
+ // eslint-disable-next-line no-param-reassign
1396
1438
  gasValues = (0, utils_2.normalizeGasFeeValues)(gasValues);
1397
1439
  (0, utils_2.validateGasValues)(gasValues);
1398
1440
  }
@@ -1552,10 +1594,12 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
1552
1594
  resultCallbacks.success();
1553
1595
  }
1554
1596
  const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
1555
- this.messenger.publish(`${controllerName}:transactionApproved`, {
1556
- transactionMeta: updatedTransactionMeta,
1557
- actionId,
1558
- });
1597
+ if (approvalResult === ApprovalState.Approved) {
1598
+ this.messenger.publish(`${controllerName}:transactionApproved`, {
1599
+ transactionMeta: updatedTransactionMeta,
1600
+ actionId,
1601
+ });
1602
+ }
1559
1603
  }
1560
1604
  }
1561
1605
  catch (rawError) {
@@ -1576,17 +1620,19 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
1576
1620
  }
1577
1621
  const finalMeta = await finishedPromise;
1578
1622
  switch (finalMeta?.status) {
1579
- case types_1.TransactionStatus.failed:
1623
+ case types_1.TransactionStatus.failed: {
1580
1624
  const error = finalMeta.error;
1581
1625
  resultCallbacks?.error(error);
1582
1626
  throw rpc_errors_1.rpcErrors.internal(error.message);
1627
+ }
1583
1628
  case types_1.TransactionStatus.submitted:
1584
1629
  resultCallbacks?.success();
1585
1630
  return finalMeta.hash;
1586
- default:
1587
- const internalError = rpc_errors_1.rpcErrors.internal(`MetaMask Tx Signature: Unknown problem: ${JSON.stringify(finalMeta || transactionId)}`);
1631
+ default: {
1632
+ const internalError = rpc_errors_1.rpcErrors.internal(`MetaMask Tx Signature: Unknown problem: ${JSON.stringify(finalMeta ?? transactionId)}`);
1588
1633
  resultCallbacks?.error(internalError);
1589
1634
  throw internalError;
1635
+ }
1590
1636
  }
1591
1637
  }, _TransactionController_approveTransaction =
1592
1638
  /**
@@ -1624,6 +1670,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1624
1670
  const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId });
1625
1671
  const [nonce, releaseNonce] = await (0, nonce_1.getNextNonce)(transactionMeta, (address) => __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNonceLock(address, transactionMeta.networkClientId));
1626
1672
  clearNonceLock = releaseNonce;
1673
+ // eslint-disable-next-line require-atomic-updates
1627
1674
  transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1628
1675
  transactionId,
1629
1676
  note: 'TransactionController#approveTransaction - Transaction approved',
@@ -1640,6 +1687,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1640
1687
  });
1641
1688
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, transactionMeta);
1642
1689
  const rawTx = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Sign', parentContext: traceContext }, () => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_signTransaction).call(this, transactionMeta));
1690
+ // eslint-disable-next-line require-atomic-updates
1643
1691
  transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
1644
1692
  if (!(await __classPrivateFieldGet(this, _TransactionController_beforePublish, "f").call(this, transactionMeta))) {
1645
1693
  (0, logger_1.projectLogger)('Skipping publishing transaction based on hook');
@@ -1675,6 +1723,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1675
1723
  publishHook = extraTransactionsPublishHook.getHook();
1676
1724
  }
1677
1725
  const { transactionHash: hash } = await publishHook(transactionMeta, rawTx ?? '0x');
1726
+ // eslint-disable-next-line require-atomic-updates
1678
1727
  transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1679
1728
  transactionId,
1680
1729
  note: 'TransactionController#approveTransaction - Transaction submitted',
@@ -1706,13 +1755,20 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1706
1755
  clearNonceLock?.();
1707
1756
  }
1708
1757
  }, _TransactionController_publishTransaction = async function _TransactionController_publishTransaction(ethQuery, transactionMeta, { skipSubmitHistory } = {}) {
1709
- const transactionHash = await (0, controller_utils_1.query)(ethQuery, 'sendRawTransaction', [
1710
- transactionMeta.rawTx,
1711
- ]);
1712
- if (skipSubmitHistory !== true) {
1713
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSubmitHistory).call(this, transactionMeta, transactionHash);
1758
+ try {
1759
+ const transactionHash = await (0, controller_utils_1.query)(ethQuery, 'sendRawTransaction', [
1760
+ transactionMeta.rawTx,
1761
+ ]);
1762
+ if (skipSubmitHistory !== true) {
1763
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSubmitHistory).call(this, transactionMeta, transactionHash);
1764
+ }
1765
+ return transactionHash;
1766
+ }
1767
+ catch (error) {
1768
+ const errorObject = error;
1769
+ const errorMessage = errorObject?.data?.message ?? errorObject?.message ?? String(error);
1770
+ throw new Error(errorMessage);
1714
1771
  }
1715
- return transactionHash;
1716
1772
  }, _TransactionController_rejectTransaction = function _TransactionController_rejectTransaction(transactionId, actionId, error) {
1717
1773
  const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
1718
1774
  if (!transactionMeta) {
@@ -1776,7 +1832,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1776
1832
  });
1777
1833
  return (await this.messenger.call('ApprovalController:addRequest', {
1778
1834
  id,
1779
- origin: origin || controller_utils_1.ORIGIN_METAMASK,
1835
+ origin: origin ?? controller_utils_1.ORIGIN_METAMASK,
1780
1836
  type,
1781
1837
  requestData,
1782
1838
  expectsResult: true,
@@ -2076,19 +2132,20 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2076
2132
  blockTracker,
2077
2133
  getChainId: () => chainId,
2078
2134
  getEthQuery: () => ethQuery,
2079
- getNetworkClientId: () => networkClientId,
2080
- getTransactions: () => this.state.transactions,
2081
- isResubmitEnabled: __classPrivateFieldGet(this, _TransactionController_pendingTransactionOptions, "f").isResubmitEnabled,
2082
2135
  getGlobalLock: () => __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").acquireNonceLockForChainIdKey({
2083
2136
  chainId,
2084
2137
  }),
2138
+ getNetworkClientId: () => networkClientId,
2139
+ getTransactions: () => this.state.transactions,
2140
+ hooks: {
2141
+ beforeCheckPendingTransaction: __classPrivateFieldGet(this, _TransactionController_beforeCheckPendingTransaction, "f").bind(this),
2142
+ },
2143
+ isResubmitEnabled: __classPrivateFieldGet(this, _TransactionController_pendingTransactionOptions, "f").isResubmitEnabled,
2144
+ isTimeoutEnabled: __classPrivateFieldGet(this, _TransactionController_isTimeoutEnabled, "f"),
2085
2145
  messenger: this.messenger,
2086
2146
  publishTransaction: (_ethQuery, transactionMeta) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, _ethQuery, transactionMeta, {
2087
2147
  skipSubmitHistory: true,
2088
2148
  }),
2089
- hooks: {
2090
- beforeCheckPendingTransaction: __classPrivateFieldGet(this, _TransactionController_beforeCheckPendingTransaction, "f").bind(this),
2091
- },
2092
2149
  });
2093
2150
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addPendingTransactionTrackerListeners).call(this, pendingTransactionTracker);
2094
2151
  return pendingTransactionTracker;
@@ -2125,8 +2182,8 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2125
2182
  throw error;
2126
2183
  }
2127
2184
  }, _TransactionController_isTransactionAlreadyConfirmedError = function _TransactionController_isTransactionAlreadyConfirmedError(error) {
2128
- return (error?.message?.includes('nonce too low') ||
2129
- error?.data?.message?.includes('nonce too low'));
2185
+ return (Boolean(error?.message?.includes('nonce too low')) ||
2186
+ Boolean(error?.data?.message?.includes('nonce too low')));
2130
2187
  }, _TransactionController_getGasFeeFlows = function _TransactionController_getGasFeeFlows() {
2131
2188
  if (__classPrivateFieldGet(this, _TransactionController_testGasFeeFlows, "f")) {
2132
2189
  return [new TestGasFeeFlow_1.TestGasFeeFlow()];
@@ -2309,6 +2366,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2309
2366
  this.messenger.registerActionHandler(`${controllerName}:emulateNewTransaction`, this.emulateNewTransaction.bind(this));
2310
2367
  this.messenger.registerActionHandler(`${controllerName}:emulateTransactionUpdate`, this.emulateTransactionUpdate.bind(this));
2311
2368
  this.messenger.registerActionHandler(`${controllerName}:estimateGas`, this.estimateGas.bind(this));
2369
+ this.messenger.registerActionHandler(`${controllerName}:estimateGasBatch`, this.estimateGasBatch.bind(this));
2312
2370
  this.messenger.registerActionHandler(`${controllerName}:getGasFeeTokens`, __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokensAction).bind(this));
2313
2371
  this.messenger.registerActionHandler(`${controllerName}:getNonceLock`, this.getNonceLock.bind(this));
2314
2372
  this.messenger.registerActionHandler(`${controllerName}:getTransactions`, this.getTransactions.bind(this));
@@ -2345,8 +2403,8 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2345
2403
  draftTransactionMeta.error = (0, utils_2.normalizeTxError)(error);
2346
2404
  });
2347
2405
  }
2348
- catch (err) {
2349
- (0, logger_1.projectLogger)('Failed to mark transaction as failed', err);
2406
+ catch (caughtError) {
2407
+ (0, logger_1.projectLogger)('Failed to mark transaction as failed', caughtError);
2350
2408
  newTransactionMeta = {
2351
2409
  ...transactionMeta,
2352
2410
  status: types_1.TransactionStatus.failed,
@@ -2367,7 +2425,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2367
2425
  const result = await __classPrivateFieldGet(this, _TransactionController_afterSimulate, "f").call(this, {
2368
2426
  transactionMeta,
2369
2427
  });
2370
- const { skipSimulation, updateTransaction } = result || {};
2428
+ const { skipSimulation, updateTransaction } = result ?? {};
2371
2429
  if (skipSimulation) {
2372
2430
  __classPrivateFieldGet(this, _TransactionController_skipSimulationTransactionIds, "f").add(transactionId);
2373
2431
  }
@@ -2391,12 +2449,11 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2391
2449
  await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Publish', parentContext: traceContext }, async () => {
2392
2450
  const publishHook = publishHookOverride ?? __classPrivateFieldGet(this, _TransactionController_publish, "f");
2393
2451
  ({ transactionHash } = await publishHook(transactionMeta, signedTx));
2394
- if (transactionHash === undefined) {
2395
- transactionHash = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, ethQuery, {
2396
- ...transactionMeta,
2397
- rawTx: signedTx,
2398
- });
2399
- }
2452
+ // eslint-disable-next-line require-atomic-updates
2453
+ transactionHash ?? (transactionHash = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, ethQuery, {
2454
+ ...transactionMeta,
2455
+ rawTx: signedTx,
2456
+ }));
2400
2457
  });
2401
2458
  (0, logger_1.projectLogger)('Publish successful', transactionHash);
2402
2459
  return { transactionHash };