@metamask/transaction-controller 62.5.0 → 62.7.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 (178) hide show
  1. package/CHANGELOG.md +29 -1
  2. package/dist/TransactionController.cjs +107 -49
  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 +108 -50
  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 +18 -0
  83. package/dist/types.d.cts.map +1 -1
  84. package/dist/types.d.mts +18 -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 +10 -4
  99. package/dist/utils/batch.cjs.map +1 -1
  100. package/dist/utils/batch.d.cts +1 -0
  101. package/dist/utils/batch.d.cts.map +1 -1
  102. package/dist/utils/batch.d.mts +1 -0
  103. package/dist/utils/batch.d.mts.map +1 -1
  104. package/dist/utils/batch.mjs +10 -4
  105. package/dist/utils/batch.mjs.map +1 -1
  106. package/dist/utils/eip7702.cjs +4 -3
  107. package/dist/utils/eip7702.cjs.map +1 -1
  108. package/dist/utils/eip7702.d.cts +1 -1
  109. package/dist/utils/eip7702.d.cts.map +1 -1
  110. package/dist/utils/eip7702.d.mts +1 -1
  111. package/dist/utils/eip7702.d.mts.map +1 -1
  112. package/dist/utils/eip7702.mjs +4 -3
  113. package/dist/utils/eip7702.mjs.map +1 -1
  114. package/dist/utils/external-transactions.cjs.map +1 -1
  115. package/dist/utils/external-transactions.d.cts.map +1 -1
  116. package/dist/utils/external-transactions.d.mts.map +1 -1
  117. package/dist/utils/external-transactions.mjs.map +1 -1
  118. package/dist/utils/feature-flags.cjs +22 -7
  119. package/dist/utils/feature-flags.cjs.map +1 -1
  120. package/dist/utils/feature-flags.d.cts +24 -0
  121. package/dist/utils/feature-flags.d.cts.map +1 -1
  122. package/dist/utils/feature-flags.d.mts +24 -0
  123. package/dist/utils/feature-flags.d.mts.map +1 -1
  124. package/dist/utils/feature-flags.mjs +20 -6
  125. package/dist/utils/feature-flags.mjs.map +1 -1
  126. package/dist/utils/first-time-interaction.cjs +3 -5
  127. package/dist/utils/first-time-interaction.cjs.map +1 -1
  128. package/dist/utils/first-time-interaction.d.cts.map +1 -1
  129. package/dist/utils/first-time-interaction.d.mts.map +1 -1
  130. package/dist/utils/first-time-interaction.mjs +3 -5
  131. package/dist/utils/first-time-interaction.mjs.map +1 -1
  132. package/dist/utils/gas-fee-tokens.cjs +1 -1
  133. package/dist/utils/gas-fee-tokens.cjs.map +1 -1
  134. package/dist/utils/gas-fee-tokens.d.cts.map +1 -1
  135. package/dist/utils/gas-fee-tokens.d.mts.map +1 -1
  136. package/dist/utils/gas-fee-tokens.mjs +1 -1
  137. package/dist/utils/gas-fee-tokens.mjs.map +1 -1
  138. package/dist/utils/gas-fees.cjs +1 -3
  139. package/dist/utils/gas-fees.cjs.map +1 -1
  140. package/dist/utils/gas-fees.d.cts +1 -1
  141. package/dist/utils/gas-fees.d.cts.map +1 -1
  142. package/dist/utils/gas-fees.d.mts +1 -1
  143. package/dist/utils/gas-fees.d.mts.map +1 -1
  144. package/dist/utils/gas-fees.mjs +1 -3
  145. package/dist/utils/gas-fees.mjs.map +1 -1
  146. package/dist/utils/gas.cjs +71 -15
  147. package/dist/utils/gas.cjs.map +1 -1
  148. package/dist/utils/gas.d.cts +18 -12
  149. package/dist/utils/gas.d.cts.map +1 -1
  150. package/dist/utils/gas.d.mts +18 -12
  151. package/dist/utils/gas.d.mts.map +1 -1
  152. package/dist/utils/gas.mjs +70 -15
  153. package/dist/utils/gas.mjs.map +1 -1
  154. package/dist/utils/layer1-gas-fee-flow.cjs.map +1 -1
  155. package/dist/utils/layer1-gas-fee-flow.d.cts.map +1 -1
  156. package/dist/utils/layer1-gas-fee-flow.d.mts.map +1 -1
  157. package/dist/utils/layer1-gas-fee-flow.mjs.map +1 -1
  158. package/dist/utils/prepare.cjs.map +1 -1
  159. package/dist/utils/prepare.d.cts +1 -1
  160. package/dist/utils/prepare.d.cts.map +1 -1
  161. package/dist/utils/prepare.d.mts +1 -1
  162. package/dist/utils/prepare.d.mts.map +1 -1
  163. package/dist/utils/prepare.mjs.map +1 -1
  164. package/dist/utils/swaps.cjs.map +1 -1
  165. package/dist/utils/swaps.mjs.map +1 -1
  166. package/dist/utils/utils.cjs +10 -10
  167. package/dist/utils/utils.cjs.map +1 -1
  168. package/dist/utils/utils.d.cts +4 -4
  169. package/dist/utils/utils.d.cts.map +1 -1
  170. package/dist/utils/utils.d.mts +4 -4
  171. package/dist/utils/utils.d.mts.map +1 -1
  172. package/dist/utils/utils.mjs +10 -10
  173. package/dist/utils/utils.mjs.map +1 -1
  174. package/dist/utils/validation.cjs.map +1 -1
  175. package/dist/utils/validation.d.cts.map +1 -1
  176. package/dist/utils/validation.d.mts.map +1 -1
  177. package/dist/utils/validation.mjs.map +1 -1
  178. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [62.7.0]
11
+
12
+ ### Added
13
+
14
+ - Adding a new transaction meta property `requestId`. It is supported for both simple and batched transactions ([#7415](https://github.com/MetaMask/core/pull/7415))
15
+
16
+ ## [62.6.0]
17
+
18
+ ### Added
19
+
20
+ - Add `estimateGasBatch` function and messenger action to estimate gas for batch transactions ([#7405](https://github.com/MetaMask/core/pull/7405))
21
+ - Add optional `gasLimit7702` property to `TransactionBatchRequest`.
22
+ - Automatically fail pending transactions if no receipt and hash not recognised by network after multiple attempts ([#7329](https://github.com/MetaMask/core/pull/7329))
23
+ - Add optional `isTimeoutEnabled` callback to disable for specific transactions.
24
+ - Ignores transactions with future nonce.
25
+ - Threshold determined by feature flag.
26
+ - Adding a new transaction meta property `requestId`. It is supported for both simple and batched transactions ([#7415](https://github.com/MetaMask/core/pull/7415))
27
+
28
+ ### Changed
29
+
30
+ - Throw with more specific error message if publish fails ([#7418](https://github.com/MetaMask/core/pull/7418))
31
+
32
+ ### Fixed
33
+
34
+ - Prevent `TransactionController:transactionApproved` event firing if keyring throws during signing ([#7410](https://github.com/MetaMask/core/pull/7410))
35
+
10
36
  ## [62.5.0]
11
37
 
12
38
  ### Changed
@@ -2009,7 +2035,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2009
2035
 
2010
2036
  All changes listed after this point were applied to this package following the monorepo conversion.
2011
2037
 
2012
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.5.0...HEAD
2038
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.7.0...HEAD
2039
+ [62.7.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.6.0...@metamask/transaction-controller@62.7.0
2040
+ [62.6.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.5.0...@metamask/transaction-controller@62.6.0
2013
2041
  [62.5.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.4.0...@metamask/transaction-controller@62.5.0
2014
2042
  [62.4.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.3.1...@metamask/transaction-controller@62.4.0
2015
2043
  [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) => {
@@ -378,7 +391,8 @@ class TransactionController extends base_controller_1.BaseController {
378
391
  */
379
392
  async addTransaction(txParams, options) {
380
393
  (0, logger_1.projectLogger)('Adding transaction', txParams, options);
381
- const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, isGasFeeIncluded, isGasFeeSponsored, method, nestedTransactions, networkClientId, origin, publishHook, requireApproval, securityAlertResponse, sendFlowHistory, skipInitialGasEstimate, swaps = {}, traceContext, type, } = options;
394
+ const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, isGasFeeIncluded, isGasFeeSponsored, method, nestedTransactions, networkClientId, origin, publishHook, requestId, 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}`);
@@ -435,6 +449,7 @@ class TransactionController extends base_controller_1.BaseController {
435
449
  nestedTransactions,
436
450
  networkClientId,
437
451
  origin,
452
+ requestId,
438
453
  securityAlertResponse,
439
454
  selectedGasFeeToken: gasFeeToken,
440
455
  status: types_1.TransactionStatus.unapproved,
@@ -452,6 +467,7 @@ class TransactionController extends base_controller_1.BaseController {
452
467
  addedTransactionMeta.txParamsOriginal = (0, lodash_1.cloneDeep)(addedTransactionMeta.txParams);
453
468
  updateTransaction(addedTransactionMeta);
454
469
  }
470
+ // eslint-disable-next-line no-negated-condition
455
471
  if (!skipInitialGasEstimate) {
456
472
  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
473
  traceContext: context,
@@ -483,10 +499,12 @@ class TransactionController extends base_controller_1.BaseController {
483
499
  // Set security provider response
484
500
  if (method && __classPrivateFieldGet(this, _TransactionController_securityProviderRequest, "f")) {
485
501
  const securityProviderResponse = await __classPrivateFieldGet(this, _TransactionController_securityProviderRequest, "f").call(this, addedTransactionMeta, method);
502
+ // eslint-disable-next-line require-atomic-updates
486
503
  addedTransactionMeta.securityProviderResponse =
487
504
  securityProviderResponse;
488
505
  }
489
506
  if (!__classPrivateFieldGet(this, _TransactionController_isSendFlowHistoryDisabled, "f")) {
507
+ // eslint-disable-next-line require-atomic-updates
490
508
  addedTransactionMeta.sendFlowHistory = sendFlowHistory ?? [];
491
509
  }
492
510
  // Initial history push
@@ -512,6 +530,7 @@ class TransactionController extends base_controller_1.BaseController {
512
530
  return undefined;
513
531
  })
514
532
  .catch(lodash_1.noop);
533
+ // eslint-disable-next-line no-negated-condition
515
534
  if (requireApproval !== false) {
516
535
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSimulationData).call(this, addedTransactionMeta, {
517
536
  traceContext,
@@ -559,7 +578,7 @@ class TransactionController extends base_controller_1.BaseController {
559
578
  * @param request - Request object.
560
579
  * @param request.tags - Additional tags to identify the source of the request.
561
580
  */
562
- async updateIncomingTransactions({ tags } = {}) {
581
+ async updateIncomingTransactions({ tags, } = {}) {
563
582
  await __classPrivateFieldGet(this, _TransactionController_incomingTransactionHelper, "f").update({ tags });
564
583
  }
565
584
  /**
@@ -639,6 +658,29 @@ class TransactionController extends base_controller_1.BaseController {
639
658
  });
640
659
  return { gas: estimatedGas, simulationFails };
641
660
  }
661
+ /**
662
+ * Estimates required gas for a batch of transactions.
663
+ *
664
+ * @param request - Request object.
665
+ * @param request.chainId - Chain ID of the transactions.
666
+ * @param request.from - Address of the sender.
667
+ * @param request.transactions - Array of transactions within a batch request.
668
+ * @returns Object containing the gas limit.
669
+ */
670
+ async estimateGasBatch({ chainId, from, transactions, }) {
671
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, {
672
+ chainId,
673
+ });
674
+ return (0, gas_1.estimateGasBatch)({
675
+ chainId,
676
+ ethQuery,
677
+ from,
678
+ getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
679
+ isAtomicBatchSupported: this.isAtomicBatchSupported.bind(this),
680
+ messenger: this.messenger,
681
+ transactions,
682
+ });
683
+ }
642
684
  /**
643
685
  * Estimates required gas for a given transaction and add additional gas buffer with the given multiplier.
644
686
  *
@@ -1026,11 +1068,11 @@ class TransactionController extends base_controller_1.BaseController {
1026
1068
  return __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_signExternalTransaction).call(this, txParams.chainId, txParams);
1027
1069
  }));
1028
1070
  }
1029
- catch (err) {
1030
- (0, logger_1.projectLogger)('Error while signing transactions with same nonce', err);
1071
+ catch (error) {
1072
+ (0, logger_1.projectLogger)('Error while signing transactions with same nonce', error);
1031
1073
  // Must set transaction to submitted/failed before releasing lock
1032
1074
  // continue with error chain
1033
- throw err;
1075
+ throw error;
1034
1076
  }
1035
1077
  finally {
1036
1078
  nonceLock?.releaseLock();
@@ -1109,7 +1151,7 @@ class TransactionController extends base_controller_1.BaseController {
1109
1151
  ? predicate
1110
1152
  : // TODO: Replace `any` with type
1111
1153
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1112
- (v) => v === predicate;
1154
+ (value) => value === predicate;
1113
1155
  });
1114
1156
  const transactionsToFilter = initialList ?? this.state.transactions;
1115
1157
  // Combine sortBy and pickBy to transform our state object into an array of
@@ -1386,13 +1428,14 @@ class TransactionController extends base_controller_1.BaseController {
1386
1428
  }
1387
1429
  }
1388
1430
  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, }) {
1431
+ _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
1432
  // If transaction is found for same action id, do not create a new transaction.
1391
1433
  if (__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionWithActionId).call(this, actionId)) {
1392
1434
  return;
1393
1435
  }
1394
1436
  if (gasValues) {
1395
1437
  // Not good practice to reassign a parameter but temporarily avoiding a larger refactor.
1438
+ // eslint-disable-next-line no-param-reassign
1396
1439
  gasValues = (0, utils_2.normalizeGasFeeValues)(gasValues);
1397
1440
  (0, utils_2.validateGasValues)(gasValues);
1398
1441
  }
@@ -1552,10 +1595,12 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
1552
1595
  resultCallbacks.success();
1553
1596
  }
1554
1597
  const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
1555
- this.messenger.publish(`${controllerName}:transactionApproved`, {
1556
- transactionMeta: updatedTransactionMeta,
1557
- actionId,
1558
- });
1598
+ if (approvalResult === ApprovalState.Approved) {
1599
+ this.messenger.publish(`${controllerName}:transactionApproved`, {
1600
+ transactionMeta: updatedTransactionMeta,
1601
+ actionId,
1602
+ });
1603
+ }
1559
1604
  }
1560
1605
  }
1561
1606
  catch (rawError) {
@@ -1576,17 +1621,19 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
1576
1621
  }
1577
1622
  const finalMeta = await finishedPromise;
1578
1623
  switch (finalMeta?.status) {
1579
- case types_1.TransactionStatus.failed:
1624
+ case types_1.TransactionStatus.failed: {
1580
1625
  const error = finalMeta.error;
1581
1626
  resultCallbacks?.error(error);
1582
1627
  throw rpc_errors_1.rpcErrors.internal(error.message);
1628
+ }
1583
1629
  case types_1.TransactionStatus.submitted:
1584
1630
  resultCallbacks?.success();
1585
1631
  return finalMeta.hash;
1586
- default:
1587
- const internalError = rpc_errors_1.rpcErrors.internal(`MetaMask Tx Signature: Unknown problem: ${JSON.stringify(finalMeta || transactionId)}`);
1632
+ default: {
1633
+ const internalError = rpc_errors_1.rpcErrors.internal(`MetaMask Tx Signature: Unknown problem: ${JSON.stringify(finalMeta ?? transactionId)}`);
1588
1634
  resultCallbacks?.error(internalError);
1589
1635
  throw internalError;
1636
+ }
1590
1637
  }
1591
1638
  }, _TransactionController_approveTransaction =
1592
1639
  /**
@@ -1624,6 +1671,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1624
1671
  const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId });
1625
1672
  const [nonce, releaseNonce] = await (0, nonce_1.getNextNonce)(transactionMeta, (address) => __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNonceLock(address, transactionMeta.networkClientId));
1626
1673
  clearNonceLock = releaseNonce;
1674
+ // eslint-disable-next-line require-atomic-updates
1627
1675
  transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1628
1676
  transactionId,
1629
1677
  note: 'TransactionController#approveTransaction - Transaction approved',
@@ -1640,6 +1688,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1640
1688
  });
1641
1689
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, transactionMeta);
1642
1690
  const rawTx = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Sign', parentContext: traceContext }, () => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_signTransaction).call(this, transactionMeta));
1691
+ // eslint-disable-next-line require-atomic-updates
1643
1692
  transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
1644
1693
  if (!(await __classPrivateFieldGet(this, _TransactionController_beforePublish, "f").call(this, transactionMeta))) {
1645
1694
  (0, logger_1.projectLogger)('Skipping publishing transaction based on hook');
@@ -1675,6 +1724,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1675
1724
  publishHook = extraTransactionsPublishHook.getHook();
1676
1725
  }
1677
1726
  const { transactionHash: hash } = await publishHook(transactionMeta, rawTx ?? '0x');
1727
+ // eslint-disable-next-line require-atomic-updates
1678
1728
  transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1679
1729
  transactionId,
1680
1730
  note: 'TransactionController#approveTransaction - Transaction submitted',
@@ -1706,13 +1756,20 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1706
1756
  clearNonceLock?.();
1707
1757
  }
1708
1758
  }, _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);
1759
+ try {
1760
+ const transactionHash = await (0, controller_utils_1.query)(ethQuery, 'sendRawTransaction', [
1761
+ transactionMeta.rawTx,
1762
+ ]);
1763
+ if (skipSubmitHistory !== true) {
1764
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSubmitHistory).call(this, transactionMeta, transactionHash);
1765
+ }
1766
+ return transactionHash;
1767
+ }
1768
+ catch (error) {
1769
+ const errorObject = error;
1770
+ const errorMessage = errorObject?.data?.message ?? errorObject?.message ?? String(error);
1771
+ throw new Error(errorMessage);
1714
1772
  }
1715
- return transactionHash;
1716
1773
  }, _TransactionController_rejectTransaction = function _TransactionController_rejectTransaction(transactionId, actionId, error) {
1717
1774
  const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
1718
1775
  if (!transactionMeta) {
@@ -1776,7 +1833,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1776
1833
  });
1777
1834
  return (await this.messenger.call('ApprovalController:addRequest', {
1778
1835
  id,
1779
- origin: origin || controller_utils_1.ORIGIN_METAMASK,
1836
+ origin: origin ?? controller_utils_1.ORIGIN_METAMASK,
1780
1837
  type,
1781
1838
  requestData,
1782
1839
  expectsResult: true,
@@ -2076,19 +2133,20 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2076
2133
  blockTracker,
2077
2134
  getChainId: () => chainId,
2078
2135
  getEthQuery: () => ethQuery,
2079
- getNetworkClientId: () => networkClientId,
2080
- getTransactions: () => this.state.transactions,
2081
- isResubmitEnabled: __classPrivateFieldGet(this, _TransactionController_pendingTransactionOptions, "f").isResubmitEnabled,
2082
2136
  getGlobalLock: () => __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").acquireNonceLockForChainIdKey({
2083
2137
  chainId,
2084
2138
  }),
2139
+ getNetworkClientId: () => networkClientId,
2140
+ getTransactions: () => this.state.transactions,
2141
+ hooks: {
2142
+ beforeCheckPendingTransaction: __classPrivateFieldGet(this, _TransactionController_beforeCheckPendingTransaction, "f").bind(this),
2143
+ },
2144
+ isResubmitEnabled: __classPrivateFieldGet(this, _TransactionController_pendingTransactionOptions, "f").isResubmitEnabled,
2145
+ isTimeoutEnabled: __classPrivateFieldGet(this, _TransactionController_isTimeoutEnabled, "f"),
2085
2146
  messenger: this.messenger,
2086
2147
  publishTransaction: (_ethQuery, transactionMeta) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, _ethQuery, transactionMeta, {
2087
2148
  skipSubmitHistory: true,
2088
2149
  }),
2089
- hooks: {
2090
- beforeCheckPendingTransaction: __classPrivateFieldGet(this, _TransactionController_beforeCheckPendingTransaction, "f").bind(this),
2091
- },
2092
2150
  });
2093
2151
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_addPendingTransactionTrackerListeners).call(this, pendingTransactionTracker);
2094
2152
  return pendingTransactionTracker;
@@ -2125,8 +2183,8 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2125
2183
  throw error;
2126
2184
  }
2127
2185
  }, _TransactionController_isTransactionAlreadyConfirmedError = function _TransactionController_isTransactionAlreadyConfirmedError(error) {
2128
- return (error?.message?.includes('nonce too low') ||
2129
- error?.data?.message?.includes('nonce too low'));
2186
+ return (Boolean(error?.message?.includes('nonce too low')) ||
2187
+ Boolean(error?.data?.message?.includes('nonce too low')));
2130
2188
  }, _TransactionController_getGasFeeFlows = function _TransactionController_getGasFeeFlows() {
2131
2189
  if (__classPrivateFieldGet(this, _TransactionController_testGasFeeFlows, "f")) {
2132
2190
  return [new TestGasFeeFlow_1.TestGasFeeFlow()];
@@ -2309,6 +2367,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2309
2367
  this.messenger.registerActionHandler(`${controllerName}:emulateNewTransaction`, this.emulateNewTransaction.bind(this));
2310
2368
  this.messenger.registerActionHandler(`${controllerName}:emulateTransactionUpdate`, this.emulateTransactionUpdate.bind(this));
2311
2369
  this.messenger.registerActionHandler(`${controllerName}:estimateGas`, this.estimateGas.bind(this));
2370
+ this.messenger.registerActionHandler(`${controllerName}:estimateGasBatch`, this.estimateGasBatch.bind(this));
2312
2371
  this.messenger.registerActionHandler(`${controllerName}:getGasFeeTokens`, __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokensAction).bind(this));
2313
2372
  this.messenger.registerActionHandler(`${controllerName}:getNonceLock`, this.getNonceLock.bind(this));
2314
2373
  this.messenger.registerActionHandler(`${controllerName}:getTransactions`, this.getTransactions.bind(this));
@@ -2345,8 +2404,8 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2345
2404
  draftTransactionMeta.error = (0, utils_2.normalizeTxError)(error);
2346
2405
  });
2347
2406
  }
2348
- catch (err) {
2349
- (0, logger_1.projectLogger)('Failed to mark transaction as failed', err);
2407
+ catch (caughtError) {
2408
+ (0, logger_1.projectLogger)('Failed to mark transaction as failed', caughtError);
2350
2409
  newTransactionMeta = {
2351
2410
  ...transactionMeta,
2352
2411
  status: types_1.TransactionStatus.failed,
@@ -2367,7 +2426,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2367
2426
  const result = await __classPrivateFieldGet(this, _TransactionController_afterSimulate, "f").call(this, {
2368
2427
  transactionMeta,
2369
2428
  });
2370
- const { skipSimulation, updateTransaction } = result || {};
2429
+ const { skipSimulation, updateTransaction } = result ?? {};
2371
2430
  if (skipSimulation) {
2372
2431
  __classPrivateFieldGet(this, _TransactionController_skipSimulationTransactionIds, "f").add(transactionId);
2373
2432
  }
@@ -2391,12 +2450,11 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2391
2450
  await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Publish', parentContext: traceContext }, async () => {
2392
2451
  const publishHook = publishHookOverride ?? __classPrivateFieldGet(this, _TransactionController_publish, "f");
2393
2452
  ({ 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
- }
2453
+ // eslint-disable-next-line require-atomic-updates
2454
+ transactionHash ?? (transactionHash = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, ethQuery, {
2455
+ ...transactionMeta,
2456
+ rawTx: signedTx,
2457
+ }));
2400
2458
  });
2401
2459
  (0, logger_1.projectLogger)('Publish successful', transactionHash);
2402
2460
  return { transactionHash };