@metamask-previews/transaction-controller 63.1.0-preview-a0caca0c0 → 63.1.0-preview-3ce0062c4

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 (162) hide show
  1. package/CHANGELOG.md +6 -3
  2. package/dist/TransactionController.cjs +111 -75
  3. package/dist/TransactionController.cjs.map +1 -1
  4. package/dist/TransactionController.d.cts.map +1 -1
  5. package/dist/TransactionController.d.mts.map +1 -1
  6. package/dist/TransactionController.mjs +116 -76
  7. package/dist/TransactionController.mjs.map +1 -1
  8. package/dist/gas-flows/LineaGasFeeFlow.cjs +11 -22
  9. package/dist/gas-flows/LineaGasFeeFlow.cjs.map +1 -1
  10. package/dist/gas-flows/LineaGasFeeFlow.d.cts.map +1 -1
  11. package/dist/gas-flows/LineaGasFeeFlow.d.mts.map +1 -1
  12. package/dist/gas-flows/LineaGasFeeFlow.mjs +12 -23
  13. package/dist/gas-flows/LineaGasFeeFlow.mjs.map +1 -1
  14. package/dist/helpers/AccountsApiRemoteTransactionSource.cjs +2 -2
  15. package/dist/helpers/AccountsApiRemoteTransactionSource.cjs.map +1 -1
  16. package/dist/helpers/AccountsApiRemoteTransactionSource.d.cts.map +1 -1
  17. package/dist/helpers/AccountsApiRemoteTransactionSource.d.mts.map +1 -1
  18. package/dist/helpers/AccountsApiRemoteTransactionSource.mjs +1 -1
  19. package/dist/helpers/AccountsApiRemoteTransactionSource.mjs.map +1 -1
  20. package/dist/helpers/GasFeePoller.cjs +19 -5
  21. package/dist/helpers/GasFeePoller.cjs.map +1 -1
  22. package/dist/helpers/GasFeePoller.d.cts +6 -1
  23. package/dist/helpers/GasFeePoller.d.cts.map +1 -1
  24. package/dist/helpers/GasFeePoller.d.mts +6 -1
  25. package/dist/helpers/GasFeePoller.d.mts.map +1 -1
  26. package/dist/helpers/GasFeePoller.mjs +26 -5
  27. package/dist/helpers/GasFeePoller.mjs.map +1 -1
  28. package/dist/helpers/MethodDataHelper.cjs +6 -10
  29. package/dist/helpers/MethodDataHelper.cjs.map +1 -1
  30. package/dist/helpers/MethodDataHelper.d.cts +4 -4
  31. package/dist/helpers/MethodDataHelper.d.cts.map +1 -1
  32. package/dist/helpers/MethodDataHelper.d.mts +4 -4
  33. package/dist/helpers/MethodDataHelper.d.mts.map +1 -1
  34. package/dist/helpers/MethodDataHelper.mjs +6 -10
  35. package/dist/helpers/MethodDataHelper.mjs.map +1 -1
  36. package/dist/helpers/MultichainTrackingHelper.cjs +2 -0
  37. package/dist/helpers/MultichainTrackingHelper.cjs.map +1 -1
  38. package/dist/helpers/MultichainTrackingHelper.d.cts +2 -0
  39. package/dist/helpers/MultichainTrackingHelper.d.cts.map +1 -1
  40. package/dist/helpers/MultichainTrackingHelper.d.mts +2 -0
  41. package/dist/helpers/MultichainTrackingHelper.d.mts.map +1 -1
  42. package/dist/helpers/MultichainTrackingHelper.mjs +2 -0
  43. package/dist/helpers/MultichainTrackingHelper.mjs.map +1 -1
  44. package/dist/helpers/PendingTransactionTracker.cjs +24 -38
  45. package/dist/helpers/PendingTransactionTracker.cjs.map +1 -1
  46. package/dist/helpers/PendingTransactionTracker.d.cts +7 -3
  47. package/dist/helpers/PendingTransactionTracker.d.cts.map +1 -1
  48. package/dist/helpers/PendingTransactionTracker.d.mts +7 -3
  49. package/dist/helpers/PendingTransactionTracker.d.mts.map +1 -1
  50. package/dist/helpers/PendingTransactionTracker.mjs +24 -38
  51. package/dist/helpers/PendingTransactionTracker.mjs.map +1 -1
  52. package/dist/hooks/SequentialPublishBatchHook.cjs +6 -4
  53. package/dist/hooks/SequentialPublishBatchHook.cjs.map +1 -1
  54. package/dist/hooks/SequentialPublishBatchHook.d.cts +4 -2
  55. package/dist/hooks/SequentialPublishBatchHook.d.cts.map +1 -1
  56. package/dist/hooks/SequentialPublishBatchHook.d.mts +4 -2
  57. package/dist/hooks/SequentialPublishBatchHook.d.mts.map +1 -1
  58. package/dist/hooks/SequentialPublishBatchHook.mjs +6 -4
  59. package/dist/hooks/SequentialPublishBatchHook.mjs.map +1 -1
  60. package/dist/index.cjs +3 -1
  61. package/dist/index.cjs.map +1 -1
  62. package/dist/index.d.cts +1 -0
  63. package/dist/index.d.cts.map +1 -1
  64. package/dist/index.d.mts +1 -0
  65. package/dist/index.d.mts.map +1 -1
  66. package/dist/index.mjs +1 -0
  67. package/dist/index.mjs.map +1 -1
  68. package/dist/types.cjs.map +1 -1
  69. package/dist/types.d.cts +17 -0
  70. package/dist/types.d.cts.map +1 -1
  71. package/dist/types.d.mts +17 -0
  72. package/dist/types.d.mts.map +1 -1
  73. package/dist/types.mjs.map +1 -1
  74. package/dist/utils/balance-changes.cjs +2 -2
  75. package/dist/utils/balance-changes.cjs.map +1 -1
  76. package/dist/utils/balance-changes.d.cts +2 -4
  77. package/dist/utils/balance-changes.d.cts.map +1 -1
  78. package/dist/utils/balance-changes.d.mts +2 -4
  79. package/dist/utils/balance-changes.d.mts.map +1 -1
  80. package/dist/utils/balance-changes.mjs +2 -2
  81. package/dist/utils/balance-changes.mjs.map +1 -1
  82. package/dist/utils/balance.cjs +10 -14
  83. package/dist/utils/balance.cjs.map +1 -1
  84. package/dist/utils/balance.d.cts +5 -8
  85. package/dist/utils/balance.d.cts.map +1 -1
  86. package/dist/utils/balance.d.mts +5 -8
  87. package/dist/utils/balance.d.mts.map +1 -1
  88. package/dist/utils/balance.mjs +10 -14
  89. package/dist/utils/balance.mjs.map +1 -1
  90. package/dist/utils/batch.cjs +19 -16
  91. package/dist/utils/batch.cjs.map +1 -1
  92. package/dist/utils/batch.d.cts +5 -1
  93. package/dist/utils/batch.d.cts.map +1 -1
  94. package/dist/utils/batch.d.mts +5 -1
  95. package/dist/utils/batch.d.mts.map +1 -1
  96. package/dist/utils/batch.mjs +20 -17
  97. package/dist/utils/batch.mjs.map +1 -1
  98. package/dist/utils/eip7702.cjs +6 -13
  99. package/dist/utils/eip7702.cjs.map +1 -1
  100. package/dist/utils/eip7702.d.cts +5 -6
  101. package/dist/utils/eip7702.d.cts.map +1 -1
  102. package/dist/utils/eip7702.d.mts +5 -6
  103. package/dist/utils/eip7702.d.mts.map +1 -1
  104. package/dist/utils/eip7702.mjs +7 -14
  105. package/dist/utils/eip7702.mjs.map +1 -1
  106. package/dist/utils/gas-fee-tokens.cjs +3 -4
  107. package/dist/utils/gas-fee-tokens.cjs.map +1 -1
  108. package/dist/utils/gas-fee-tokens.d.cts +4 -6
  109. package/dist/utils/gas-fee-tokens.d.cts.map +1 -1
  110. package/dist/utils/gas-fee-tokens.d.mts +4 -6
  111. package/dist/utils/gas-fee-tokens.d.mts.map +1 -1
  112. package/dist/utils/gas-fee-tokens.mjs +3 -4
  113. package/dist/utils/gas-fee-tokens.mjs.map +1 -1
  114. package/dist/utils/gas-fees.cjs +6 -8
  115. package/dist/utils/gas-fees.cjs.map +1 -1
  116. package/dist/utils/gas-fees.d.cts +2 -0
  117. package/dist/utils/gas-fees.d.cts.map +1 -1
  118. package/dist/utils/gas-fees.d.mts +2 -0
  119. package/dist/utils/gas-fees.d.mts.map +1 -1
  120. package/dist/utils/gas-fees.mjs +7 -9
  121. package/dist/utils/gas-fees.mjs.map +1 -1
  122. package/dist/utils/gas.cjs +34 -60
  123. package/dist/utils/gas.cjs.map +1 -1
  124. package/dist/utils/gas.d.cts +11 -6
  125. package/dist/utils/gas.d.cts.map +1 -1
  126. package/dist/utils/gas.d.mts +11 -6
  127. package/dist/utils/gas.d.mts.map +1 -1
  128. package/dist/utils/gas.mjs +35 -61
  129. package/dist/utils/gas.mjs.map +1 -1
  130. package/dist/utils/layer1-gas-fee-flow.cjs +3 -7
  131. package/dist/utils/layer1-gas-fee-flow.cjs.map +1 -1
  132. package/dist/utils/layer1-gas-fee-flow.d.cts +5 -2
  133. package/dist/utils/layer1-gas-fee-flow.d.cts.map +1 -1
  134. package/dist/utils/layer1-gas-fee-flow.d.mts +5 -2
  135. package/dist/utils/layer1-gas-fee-flow.d.mts.map +1 -1
  136. package/dist/utils/layer1-gas-fee-flow.mjs +3 -7
  137. package/dist/utils/layer1-gas-fee-flow.mjs.map +1 -1
  138. package/dist/utils/swaps.cjs +7 -11
  139. package/dist/utils/swaps.cjs.map +1 -1
  140. package/dist/utils/swaps.d.cts +4 -6
  141. package/dist/utils/swaps.d.cts.map +1 -1
  142. package/dist/utils/swaps.d.mts +4 -6
  143. package/dist/utils/swaps.d.mts.map +1 -1
  144. package/dist/utils/swaps.mjs +7 -11
  145. package/dist/utils/swaps.mjs.map +1 -1
  146. package/dist/utils/transaction-type.cjs +8 -17
  147. package/dist/utils/transaction-type.cjs.map +1 -1
  148. package/dist/utils/transaction-type.d.cts +3 -9
  149. package/dist/utils/transaction-type.d.cts.map +1 -1
  150. package/dist/utils/transaction-type.d.mts +3 -9
  151. package/dist/utils/transaction-type.d.mts.map +1 -1
  152. package/dist/utils/transaction-type.mjs +8 -17
  153. package/dist/utils/transaction-type.mjs.map +1 -1
  154. package/package.json +2 -2
  155. package/dist/utils/provider.cjs +0 -74
  156. package/dist/utils/provider.cjs.map +0 -1
  157. package/dist/utils/provider.d.cts +0 -65
  158. package/dist/utils/provider.d.cts.map +0 -1
  159. package/dist/utils/provider.d.mts +0 -65
  160. package/dist/utils/provider.d.mts.map +0 -1
  161. package/dist/utils/provider.mjs +0 -67
  162. package/dist/utils/provider.mjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -7,10 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
- ### Removed
10
+ ### Changed
11
11
 
12
- - **BREAKING:** Remove `@metamask/eth-query` dependency and all `EthQuery` usage in favour of messenger-based provider utilities ([#8273](https://github.com/MetaMask/core/pull/8273))
13
- - Remove `determineTransactionType` from exported functions.
12
+ - Add extra parameters in types and change `addTransaction` behavior ([#8052](https://github.com/MetaMask/core/pull/8052))
13
+ - Add optional `excludeNativeTokenForFee` in `TransactionMeta` type.
14
+ - Add optional `actionId` and optional `excludeNativeTokenForFee` in `TransactionBatchRequest` type.
15
+ - Add optional `excludeNativeTokenForFee` to `AddTransactionOptions` type.
16
+ - Changed `isGasFeeTokenIgnoredIfBalance` to be false if `excludeNativeTokenForFee` is passed in `addTransaction`.
14
17
 
15
18
  ## [63.1.0]
16
19
 
@@ -10,11 +10,15 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
11
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
12
  };
13
- 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_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_retryTransaction, _TransactionController_signExternalTransaction, _TransactionController_addMetadata, _TransactionController_updateGasProperties, _TransactionController_onBootCleanup, _TransactionController_failIncompleteTransactions, _TransactionController_processApproval, _TransactionController_approveTransaction, _TransactionController_publishTransaction, _TransactionController_rejectTransaction, _TransactionController_trimTransactionsForState, _TransactionController_isFinalState, _TransactionController_isLocalFinalState, _TransactionController_requestApproval, _TransactionController_getTransaction, _TransactionController_getTransactionOrThrow, _TransactionController_getApprovalId, _TransactionController_isTransactionCompleted, _TransactionController_onIncomingTransactions, _TransactionController_generateDappSuggestedGasFees, _TransactionController_addExternalTransaction, _TransactionController_markNonceDuplicatesDropped, _TransactionController_setTransactionStatusDropped, _TransactionController_waitForTransactionFinished, _TransactionController_updateTransactionMetaRSV, _TransactionController_getEIP1559Compatibility, _TransactionController_signTransaction, _TransactionController_onTransactionStatusChange, _TransactionController_getNonceTrackerTransactions, _TransactionController_onConfirmedTransaction, _TransactionController_updatePostBalance, _TransactionController_createNonceTracker, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_publishTransactionForRetry, _TransactionController_isTransactionAlreadyConfirmedError, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_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;
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
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_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_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_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;
14
17
  Object.defineProperty(exports, "__esModule", { value: true });
15
18
  exports.TransactionController = exports.ApprovalState = exports.SPEED_UP_RATE = exports.CANCEL_RATE = void 0;
16
19
  const base_controller_1 = require("@metamask/base-controller");
17
20
  const controller_utils_1 = require("@metamask/controller-utils");
21
+ const eth_query_1 = __importDefault(require("@metamask/eth-query"));
18
22
  const network_controller_1 = require("@metamask/network-controller");
19
23
  const nonce_tracker_1 = require("@metamask/nonce-tracker");
20
24
  const rpc_errors_1 = require("@metamask/rpc-errors");
@@ -53,7 +57,6 @@ const gas_flow_1 = require("./utils/gas-flow.cjs");
53
57
  const layer1_gas_fee_flow_1 = require("./utils/layer1-gas-fee-flow.cjs");
54
58
  const nonce_1 = require("./utils/nonce.cjs");
55
59
  const prepare_1 = require("./utils/prepare.cjs");
56
- const provider_1 = require("./utils/provider.cjs");
57
60
  const retry_1 = require("./utils/retry.cjs");
58
61
  const swaps_1 = require("./utils/swaps.cjs");
59
62
  const transaction_type_1 = require("./utils/transaction-type.cjs");
@@ -287,8 +290,10 @@ class TransactionController extends base_controller_1.BaseController {
287
290
  __classPrivateFieldSet(this, _TransactionController_gasFeeFlows, __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeFlows).call(this), "f");
288
291
  __classPrivateFieldSet(this, _TransactionController_layer1GasFeeFlows, __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getLayer1GasFeeFlows).call(this), "f");
289
292
  const gasFeePoller = new GasFeePoller_1.GasFeePoller({
293
+ findNetworkClientIdByChainId,
290
294
  gasFeeFlows: __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"),
291
295
  getGasFeeControllerEstimates: __classPrivateFieldGet(this, _TransactionController_getGasFeeEstimates, "f"),
296
+ getProvider: (networkClientId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getProvider).call(this, { networkClientId }),
292
297
  getTransactions: () => this.state.transactions,
293
298
  getTransactionBatches: () => this.state.transactionBatches,
294
299
  layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
@@ -300,7 +305,7 @@ class TransactionController extends base_controller_1.BaseController {
300
305
  gasFeePoller.hub.on('transaction-updated', __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onGasFeePollerTransactionUpdate).bind(this));
301
306
  gasFeePoller.hub.on('transaction-batch-updated', __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onGasFeePollerTransactionBatchUpdate).bind(this));
302
307
  __classPrivateFieldSet(this, _TransactionController_methodDataHelper, new MethodDataHelper_1.MethodDataHelper({
303
- messenger: this.messenger,
308
+ getProvider: (networkClientId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getProvider).call(this, { networkClientId }),
304
309
  getState: () => this.state.methodData,
305
310
  }), "f");
306
311
  __classPrivateFieldGet(this, _TransactionController_methodDataHelper, "f").hub.on('update', ({ fourBytePrefix, methodData }) => {
@@ -362,11 +367,15 @@ class TransactionController extends base_controller_1.BaseController {
362
367
  return await (0, batch_1.addTransactionBatch)({
363
368
  addTransaction: this.addTransaction.bind(this),
364
369
  estimateGas: this.estimateGas.bind(this),
370
+ getChainId: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).bind(this),
371
+ getEthQuery: (networkClientId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId }),
365
372
  getGasFeeEstimates: __classPrivateFieldGet(this, _TransactionController_getGasFeeEstimates, "f"),
366
373
  getInternalAccounts: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getInternalAccounts).bind(this),
367
374
  getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f").bind(this),
368
375
  getPendingTransactionTracker: (networkClientId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_createPendingTransactionTracker).call(this, {
376
+ provider: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getProvider).call(this, { networkClientId }),
369
377
  blockTracker,
378
+ chainId: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).call(this, networkClientId),
370
379
  networkClientId,
371
380
  }),
372
381
  getTransaction: (transactionId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId),
@@ -374,7 +383,7 @@ class TransactionController extends base_controller_1.BaseController {
374
383
  messenger: this.messenger,
375
384
  publishBatchHook: __classPrivateFieldGet(this, _TransactionController_publishBatchHook, "f"),
376
385
  publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
377
- publishTransaction: (transactionMeta) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, transactionMeta),
386
+ publishTransaction: (ethQuery, transactionMeta) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, ethQuery, transactionMeta),
378
387
  request,
379
388
  signTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_signTransaction).bind(this),
380
389
  update: this.update.bind(this),
@@ -390,6 +399,7 @@ class TransactionController extends base_controller_1.BaseController {
390
399
  async isAtomicBatchSupported(request) {
391
400
  return (0, batch_1.isAtomicBatchSupported)({
392
401
  ...request,
402
+ getEthQuery: (chainId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { chainId }),
393
403
  messenger: this.messenger,
394
404
  publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
395
405
  });
@@ -405,13 +415,16 @@ class TransactionController extends base_controller_1.BaseController {
405
415
  */
406
416
  async addTransaction(txParams, options) {
407
417
  (0, logger_1.projectLogger)('Adding transaction', txParams, options);
408
- const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, isGasFeeIncluded, isGasFeeSponsored, isStateOnly, method, nestedTransactions, networkClientId, origin, publishHook, requestId, requiredAssets, requireApproval, securityAlertResponse, skipInitialGasEstimate, swaps = {}, traceContext, type, } = options;
418
+ const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, excludeNativeTokenForFee, isGasFeeIncluded, isGasFeeSponsored, isStateOnly, method, nestedTransactions, networkClientId, origin, publishHook, requestId, requiredAssets, requireApproval, securityAlertResponse, skipInitialGasEstimate, swaps = {}, traceContext, type, } = options;
409
419
  // eslint-disable-next-line no-param-reassign
410
420
  txParams = (0, utils_2.normalizeTransactionParams)(txParams);
411
421
  if (!__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").has(networkClientId)) {
412
422
  throw new Error(`Network client not found - ${networkClientId}`);
413
423
  }
414
- const chainId = (0, provider_1.getChainId)({ messenger: this.messenger, networkClientId });
424
+ const chainId = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).call(this, networkClientId);
425
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, {
426
+ networkClientId,
427
+ });
415
428
  const permittedAddresses = origin === undefined
416
429
  ? undefined
417
430
  : await __classPrivateFieldGet(this, _TransactionController_getPermittedAccounts, "f")?.call(this, origin);
@@ -425,7 +438,7 @@ class TransactionController extends base_controller_1.BaseController {
425
438
  txParams,
426
439
  type,
427
440
  });
428
- const delegationAddressPromise = (0, eip7702_1.getDelegationAddress)(txParams.from, this.messenger, networkClientId).catch(() => undefined);
441
+ const delegationAddressPromise = (0, eip7702_1.getDelegationAddress)(txParams.from, ethQuery).catch(() => undefined);
429
442
  const isEIP1559Compatible = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEIP1559Compatibility).call(this, networkClientId);
430
443
  (0, validation_1.validateTxParams)(txParams, isEIP1559Compatible, chainId);
431
444
  if (!txParams.type) {
@@ -438,11 +451,11 @@ class TransactionController extends base_controller_1.BaseController {
438
451
  throw new rpc_errors_1.JsonRpcError(validation_1.ErrorCode.DuplicateBundleId, 'Batch ID already exists');
439
452
  }
440
453
  const dappSuggestedGasFees = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_generateDappSuggestedGasFees).call(this, txParams, origin);
441
- const transactionType = type ??
442
- (await (0, transaction_type_1.determineTransactionType)(txParams, {
443
- messenger: this.messenger,
444
- networkClientId,
445
- })).type;
454
+ const transactionType = type ?? (await (0, transaction_type_1.determineTransactionType)(txParams, ethQuery)).type;
455
+ // Original behavior was that this was set to 'true' whenever a gasFeeToken was passed.
456
+ // 'excludeNativeTokenForFee' optionnally overrides this behavior to prevent native token from
457
+ // being used when another gasFeeToken is set.
458
+ const isGasFeeTokenIgnoredIfBalance = Boolean(gasFeeToken) && !excludeNativeTokenForFee;
446
459
  let addedTransactionMeta = {
447
460
  actionId,
448
461
  assetsFiatValues,
@@ -452,9 +465,13 @@ class TransactionController extends base_controller_1.BaseController {
452
465
  deviceConfirmedOn,
453
466
  disableGasBuffer,
454
467
  id: (0, uuid_1.v1)(),
455
- isGasFeeTokenIgnoredIfBalance: Boolean(gasFeeToken),
468
+ isGasFeeTokenIgnoredIfBalance,
456
469
  isGasFeeIncluded,
457
470
  isGasFeeSponsored,
471
+ // To avoid the property to be set as undefined.
472
+ ...(excludeNativeTokenForFee === undefined
473
+ ? {}
474
+ : { excludeNativeTokenForFee }),
458
475
  isFirstTimeInteraction: undefined,
459
476
  isStateOnly,
460
477
  nestedTransactions,
@@ -646,12 +663,16 @@ class TransactionController extends base_controller_1.BaseController {
646
663
  * @returns The gas and gas price.
647
664
  */
648
665
  async estimateGas(transaction, networkClientId, { ignoreDelegationSignatures, } = {}) {
666
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, {
667
+ networkClientId,
668
+ });
649
669
  const { estimatedGas, simulationFails } = await (0, gas_1.estimateGas)({
670
+ chainId: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).call(this, networkClientId),
671
+ ethQuery,
650
672
  ignoreDelegationSignatures,
651
673
  isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
652
674
  getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
653
675
  messenger: this.messenger,
654
- networkClientId,
655
676
  txParams: transaction,
656
677
  });
657
678
  return { gas: estimatedGas, simulationFails };
@@ -666,15 +687,16 @@ class TransactionController extends base_controller_1.BaseController {
666
687
  * @returns Object containing the gas limit.
667
688
  */
668
689
  async estimateGasBatch({ chainId, from, transactions, }) {
690
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, {
691
+ chainId,
692
+ });
669
693
  return (0, gas_1.estimateGasBatch)({
694
+ chainId,
695
+ ethQuery,
670
696
  from,
671
697
  getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
672
698
  isAtomicBatchSupported: this.isAtomicBatchSupported.bind(this),
673
699
  messenger: this.messenger,
674
- networkClientId: (0, provider_1.getNetworkClientId)({
675
- messenger: this.messenger,
676
- chainId,
677
- }),
678
700
  transactions,
679
701
  });
680
702
  }
@@ -687,11 +709,15 @@ class TransactionController extends base_controller_1.BaseController {
687
709
  * @returns The buffered estimated gas and whether the estimation failed.
688
710
  */
689
711
  async estimateGasBuffered(transaction, multiplier, networkClientId) {
712
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, {
713
+ networkClientId,
714
+ });
690
715
  const { blockGasLimit, estimatedGas, simulationFails } = await (0, gas_1.estimateGas)({
716
+ chainId: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).call(this, networkClientId),
717
+ ethQuery,
691
718
  isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
692
719
  getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
693
720
  messenger: this.messenger,
694
- networkClientId,
695
721
  txParams: transaction,
696
722
  });
697
723
  const gas = (0, gas_1.addGasBuffer)(estimatedGas, blockGasLimit, multiplier);
@@ -971,11 +997,10 @@ class TransactionController extends base_controller_1.BaseController {
971
997
  editableParams.txParams = (0, lodash_1.pickBy)(editableParams.txParams);
972
998
  const updatedTransaction = (0, lodash_1.merge)({}, transactionMeta, editableParams);
973
999
  const { networkClientId } = transactionMeta;
1000
+ const provider = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getProvider).call(this, { networkClientId });
1001
+ const ethQuery = new eth_query_1.default(provider);
974
1002
  if (updateType !== false) {
975
- const { type } = await (0, transaction_type_1.determineTransactionType)(updatedTransaction.txParams, {
976
- messenger: this.messenger,
977
- networkClientId,
978
- });
1003
+ const { type } = await (0, transaction_type_1.determineTransactionType)(updatedTransaction.txParams, ethQuery);
979
1004
  updatedTransaction.type = type;
980
1005
  }
981
1006
  if (containerTypes) {
@@ -984,6 +1009,7 @@ class TransactionController extends base_controller_1.BaseController {
984
1009
  await (0, layer1_gas_fee_flow_1.updateTransactionLayer1GasFee)({
985
1010
  layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
986
1011
  messenger: this.messenger,
1012
+ provider,
987
1013
  transactionMeta: updatedTransaction,
988
1014
  });
989
1015
  this.updateTransaction(updatedTransaction, `Update Editable Params for ${txId}`);
@@ -1025,10 +1051,7 @@ class TransactionController extends base_controller_1.BaseController {
1025
1051
  }
1026
1052
  const initialTx = listOfTxParams[0];
1027
1053
  const { chainId } = initialTx;
1028
- const networkClientId = (0, provider_1.getNetworkClientId)({
1029
- messenger: this.messenger,
1030
- chainId,
1031
- });
1054
+ const networkClientId = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getNetworkClientId).call(this, { chainId });
1032
1055
  const initialTxAsEthTx = (0, prepare_1.prepareTransaction)(chainId, initialTx);
1033
1056
  const initialTxAsSerializedHex = (0, prepare_1.serializeTransaction)(initialTxAsEthTx);
1034
1057
  if (__classPrivateFieldGet(this, _TransactionController_approvingTransactionIds, "f").has(initialTxAsSerializedHex)) {
@@ -1207,7 +1230,7 @@ class TransactionController extends base_controller_1.BaseController {
1207
1230
  * @returns A promise that resolves to the estimated gas fee response.
1208
1231
  */
1209
1232
  async estimateGasFee({ transactionParams, chainId, networkClientId: requestNetworkClientId, }) {
1210
- const { id: networkClientId } = __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNetworkClient({
1233
+ const { id: networkClientId, provider } = __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNetworkClient({
1211
1234
  chainId,
1212
1235
  networkClientId: requestNetworkClientId,
1213
1236
  });
@@ -1218,10 +1241,12 @@ class TransactionController extends base_controller_1.BaseController {
1218
1241
  };
1219
1242
  // Guaranteed as the default gas fee flow matches all transactions.
1220
1243
  const gasFeeFlow = (0, gas_flow_1.getGasFeeFlow)(transactionMeta, __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"), this.messenger);
1244
+ const ethQuery = new eth_query_1.default(provider);
1221
1245
  const gasFeeControllerData = await __classPrivateFieldGet(this, _TransactionController_getGasFeeEstimates, "f").call(this, {
1222
1246
  networkClientId,
1223
1247
  });
1224
1248
  return gasFeeFlow.getGasFees({
1249
+ ethQuery,
1225
1250
  gasFeeControllerData,
1226
1251
  messenger: this.messenger,
1227
1252
  transactionMeta,
@@ -1237,18 +1262,17 @@ class TransactionController extends base_controller_1.BaseController {
1237
1262
  * @returns The layer 1 gas fee.
1238
1263
  */
1239
1264
  async getLayer1GasFee({ transactionParams, chainId, networkClientId, }) {
1240
- const resolvedNetworkClientId = (0, provider_1.getNetworkClientId)({
1241
- messenger: this.messenger,
1265
+ const provider = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getProvider).call(this, {
1242
1266
  chainId,
1243
1267
  networkClientId,
1244
1268
  });
1245
1269
  return await (0, layer1_gas_fee_flow_1.getTransactionLayer1GasFee)({
1246
1270
  layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
1247
1271
  messenger: this.messenger,
1272
+ provider,
1248
1273
  transactionMeta: {
1249
1274
  txParams: transactionParams,
1250
1275
  chainId,
1251
- networkClientId: resolvedNetworkClientId,
1252
1276
  },
1253
1277
  });
1254
1278
  }
@@ -1425,11 +1449,8 @@ class TransactionController extends base_controller_1.BaseController {
1425
1449
  */
1426
1450
  async getGasFeeTokens(request) {
1427
1451
  const { chainId, data, from, to, value } = request;
1428
- const networkClientId = (0, provider_1.getNetworkClientId)({
1429
- messenger: this.messenger,
1430
- chainId,
1431
- });
1432
- const delegationAddress = await (0, eip7702_1.getDelegationAddress)(from, this.messenger, networkClientId);
1452
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { chainId });
1453
+ const delegationAddress = await (0, eip7702_1.getDelegationAddress)(from, ethQuery);
1433
1454
  const transaction = {
1434
1455
  chainId,
1435
1456
  delegationAddress,
@@ -1478,6 +1499,8 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
1478
1499
  newFee,
1479
1500
  txParams: newTxParams,
1480
1501
  });
1502
+ const { networkClientId } = transactionMeta;
1503
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId });
1481
1504
  const newTransactionMeta = {
1482
1505
  ...transactionMetaWithRsv,
1483
1506
  actionId,
@@ -1490,7 +1513,7 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
1490
1513
  txParams: newTxParams,
1491
1514
  type: transactionType,
1492
1515
  };
1493
- const hash = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransactionForRetry).call(this, {
1516
+ const hash = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransactionForRetry).call(this, ethQuery, {
1494
1517
  ...newTransactionMeta,
1495
1518
  origin: label,
1496
1519
  });
@@ -1536,11 +1559,15 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
1536
1559
  }, _TransactionController_updateGasProperties = async function _TransactionController_updateGasProperties(transactionMeta, { traceContext } = {}) {
1537
1560
  const isEIP1559Compatible = transactionMeta.txParams.type !== types_1.TransactionEnvelopeType.legacy &&
1538
1561
  (await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEIP1559Compatibility).call(this, transactionMeta.networkClientId));
1562
+ const { networkClientId } = transactionMeta;
1563
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId });
1564
+ const provider = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getProvider).call(this, { networkClientId });
1539
1565
  await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Update Gas', parentContext: traceContext }, async () => {
1540
1566
  await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasEstimate).call(this, transactionMeta);
1541
1567
  });
1542
1568
  await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Update Gas Fees', parentContext: traceContext }, async () => await (0, gas_fees_1.updateGasFees)({
1543
1569
  eip1559: isEIP1559Compatible,
1570
+ ethQuery,
1544
1571
  gasFeeFlows: __classPrivateFieldGet(this, _TransactionController_gasFeeFlows, "f"),
1545
1572
  getGasFeeEstimates: __classPrivateFieldGet(this, _TransactionController_getGasFeeEstimates, "f"),
1546
1573
  getSavedGasFees: __classPrivateFieldGet(this, _TransactionController_getSavedGasFees, "f").bind(this),
@@ -1550,6 +1577,7 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
1550
1577
  await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Update Layer 1 Gas Fees', parentContext: traceContext }, async () => await (0, layer1_gas_fee_flow_1.updateTransactionLayer1GasFee)({
1551
1578
  layer1GasFeeFlows: __classPrivateFieldGet(this, _TransactionController_layer1GasFeeFlows, "f"),
1552
1579
  messenger: this.messenger,
1580
+ provider,
1553
1581
  transactionMeta,
1554
1582
  }));
1555
1583
  }, _TransactionController_onBootCleanup = function _TransactionController_onBootCleanup() {
@@ -1690,6 +1718,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1690
1718
  __classPrivateFieldGet(this, _TransactionController_approvingTransactionIds, "f").add(transactionId);
1691
1719
  clearApprovingTransactionId = () => __classPrivateFieldGet(this, _TransactionController_approvingTransactionIds, "f").delete(transactionId);
1692
1720
  const { networkClientId } = transactionMeta;
1721
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId });
1693
1722
  const [nonce, releaseNonce] = await (0, nonce_1.getNextNonce)(transactionMeta, (address) => __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNonceLock(address, transactionMeta.networkClientId));
1694
1723
  clearNonceLock = releaseNonce;
1695
1724
  // eslint-disable-next-line require-atomic-updates
@@ -1722,18 +1751,15 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1722
1751
  const shouldUpdatePreTxBalance = transactionMeta.type === types_1.TransactionType.swap;
1723
1752
  if (shouldUpdatePreTxBalance) {
1724
1753
  (0, logger_1.projectLogger)('Determining pre-transaction balance');
1725
- preTxBalance = (await (0, provider_1.rpcRequest)({
1726
- messenger: this.messenger,
1727
- networkClientId,
1728
- method: 'eth_getBalance',
1729
- params: [transactionMeta.txParams.from, 'latest'],
1730
- }));
1754
+ preTxBalance = await (0, controller_utils_1.query)(ethQuery, 'getBalance', [
1755
+ transactionMeta.txParams.from,
1756
+ ]);
1731
1757
  }
1732
1758
  (0, logger_1.projectLogger)('Publishing transaction', transactionMeta.txParams);
1733
1759
  clearNonceLock?.();
1734
1760
  clearNonceLock = undefined;
1735
1761
  let publishHook = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_defaultPublishHook).bind(this, {
1736
- networkClientId,
1762
+ ethQuery,
1737
1763
  publishHookOverride,
1738
1764
  traceContext,
1739
1765
  });
@@ -1777,18 +1803,11 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1777
1803
  clearApprovingTransactionId?.();
1778
1804
  clearNonceLock?.();
1779
1805
  }
1780
- }, _TransactionController_publishTransaction = async function _TransactionController_publishTransaction(transactionMeta, { skipSubmitHistory } = {}) {
1806
+ }, _TransactionController_publishTransaction = async function _TransactionController_publishTransaction(ethQuery, transactionMeta, { skipSubmitHistory } = {}) {
1781
1807
  try {
1782
- const { networkClientId, rawTx } = transactionMeta;
1783
- if (!rawTx) {
1784
- throw new Error('Missing raw transaction');
1785
- }
1786
- const transactionHash = (await (0, provider_1.rpcRequest)({
1787
- messenger: this.messenger,
1788
- networkClientId,
1789
- method: 'eth_sendRawTransaction',
1790
- params: [rawTx],
1791
- }));
1808
+ const transactionHash = await (0, controller_utils_1.query)(ethQuery, 'sendRawTransaction', [
1809
+ transactionMeta.rawTx,
1810
+ ]);
1792
1811
  if (skipSubmitHistory !== true) {
1793
1812
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSubmitHistory).call(this, transactionMeta, transactionHash);
1794
1813
  }
@@ -1886,6 +1905,23 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1886
1905
  }
1887
1906
  const isCompleted = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_isLocalFinalState).call(this, transaction.status);
1888
1907
  return { meta: transaction, isCompleted };
1908
+ }, _TransactionController_getChainId = function _TransactionController_getChainId(networkClientId) {
1909
+ return __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNetworkClient({ networkClientId })
1910
+ .configuration.chainId;
1911
+ }, _TransactionController_getNetworkClientId = function _TransactionController_getNetworkClientId({ chainId, networkClientId, }) {
1912
+ if (networkClientId) {
1913
+ return networkClientId;
1914
+ }
1915
+ return __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNetworkClient({
1916
+ chainId,
1917
+ }).id;
1918
+ }, _TransactionController_getEthQuery = function _TransactionController_getEthQuery({ chainId, networkClientId, }) {
1919
+ return new eth_query_1.default(__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getProvider).call(this, { chainId, networkClientId }));
1920
+ }, _TransactionController_getProvider = function _TransactionController_getProvider({ chainId, networkClientId, }) {
1921
+ return __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNetworkClient({
1922
+ chainId,
1923
+ networkClientId,
1924
+ }).provider;
1889
1925
  }, _TransactionController_onIncomingTransactions = function _TransactionController_onIncomingTransactions(transactions) {
1890
1926
  if (!transactions.length) {
1891
1927
  return;
@@ -1894,10 +1930,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1894
1930
  for (const tx of transactions) {
1895
1931
  const { chainId } = tx;
1896
1932
  try {
1897
- const networkClientId = (0, provider_1.getNetworkClientId)({
1898
- messenger: this.messenger,
1899
- chainId,
1900
- });
1933
+ const networkClientId = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getNetworkClientId).call(this, { chainId });
1901
1934
  finalTransactions.push({
1902
1935
  ...tx,
1903
1936
  networkClientId,
@@ -2033,9 +2066,9 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2033
2066
  }
2034
2067
  transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
2035
2068
  const { networkClientId } = transactionMeta;
2069
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId });
2036
2070
  await (0, gas_fee_tokens_1.checkGasFeeTokenBeforePublish)({
2037
- messenger: this.messenger,
2038
- networkClientId,
2071
+ ethQuery,
2039
2072
  fetchGasFeeTokens: async (tx) => (await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokens).call(this, tx)).gasFeeTokens,
2040
2073
  transaction: transactionMeta,
2041
2074
  updateTransaction: (txId, fn) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId: txId }, fn),
@@ -2113,9 +2146,9 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2113
2146
  if (type !== types_1.TransactionType.swap) {
2114
2147
  return;
2115
2148
  }
2149
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId });
2116
2150
  const { updatedTransactionMeta, approvalTransactionMeta } = await (0, swaps_1.updatePostTransactionBalance)(transactionMeta, {
2117
- messenger: this.messenger,
2118
- networkClientId,
2151
+ ethQuery,
2119
2152
  getTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).bind(this),
2120
2153
  updateTransaction: this.updateTransaction.bind(this),
2121
2154
  });
@@ -2138,13 +2171,16 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2138
2171
  getPendingTransactions: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getNonceTrackerPendingTransactions).bind(this, chainId),
2139
2172
  getConfirmedTransactions: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getNonceTrackerTransactions).bind(this, [types_1.TransactionStatus.confirmed], chainId),
2140
2173
  });
2141
- }, _TransactionController_createPendingTransactionTracker = function _TransactionController_createPendingTransactionTracker({ blockTracker, networkClientId, }) {
2142
- const chainId = (0, provider_1.getChainId)({ messenger: this.messenger, networkClientId });
2174
+ }, _TransactionController_createPendingTransactionTracker = function _TransactionController_createPendingTransactionTracker({ provider, blockTracker, chainId, networkClientId, }) {
2175
+ const ethQuery = new eth_query_1.default(provider);
2143
2176
  const pendingTransactionTracker = new PendingTransactionTracker_1.PendingTransactionTracker({
2144
2177
  blockTracker,
2178
+ getChainId: () => chainId,
2179
+ getEthQuery: () => ethQuery,
2145
2180
  getGlobalLock: () => __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").acquireNonceLockForChainIdKey({
2146
2181
  chainId,
2147
2182
  }),
2183
+ getNetworkClientId: () => networkClientId,
2148
2184
  getTransactions: () => this.state.transactions,
2149
2185
  hooks: {
2150
2186
  beforeCheckPendingTransaction: __classPrivateFieldGet(this, _TransactionController_beforeCheckPendingTransaction, "f").bind(this),
@@ -2152,8 +2188,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2152
2188
  isResubmitEnabled: __classPrivateFieldGet(this, _TransactionController_pendingTransactionOptions, "f").isResubmitEnabled,
2153
2189
  isTimeoutEnabled: __classPrivateFieldGet(this, _TransactionController_isTimeoutEnabled, "f"),
2154
2190
  messenger: this.messenger,
2155
- networkClientId,
2156
- publishTransaction: (transactionMeta) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, transactionMeta, {
2191
+ publishTransaction: (_ethQuery, transactionMeta) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, _ethQuery, transactionMeta, {
2157
2192
  skipSubmitHistory: true,
2158
2193
  }),
2159
2194
  });
@@ -2181,9 +2216,9 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2181
2216
  ], address, chainId);
2182
2217
  const externalPendingTransactions = __classPrivateFieldGet(this, _TransactionController_getExternalPendingTransactions, "f").call(this, address, chainId);
2183
2218
  return [...standardPendingTransactions, ...externalPendingTransactions];
2184
- }, _TransactionController_publishTransactionForRetry = async function _TransactionController_publishTransactionForRetry(transactionMeta) {
2219
+ }, _TransactionController_publishTransactionForRetry = async function _TransactionController_publishTransactionForRetry(ethQuery, transactionMeta) {
2185
2220
  try {
2186
- return await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, transactionMeta);
2221
+ return await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, ethQuery, transactionMeta);
2187
2222
  }
2188
2223
  catch (error) {
2189
2224
  if (__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_isTransactionAlreadyConfirmedError).call(this, error)) {
@@ -2251,8 +2286,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2251
2286
  const balanceChangesResult = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Simulate', parentContext: traceContext }, () => (0, balance_changes_1.getBalanceChanges)({
2252
2287
  blockTime,
2253
2288
  chainId,
2254
- messenger: this.messenger,
2255
- networkClientId,
2289
+ ethQuery: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId }),
2256
2290
  getSimulationConfig: (url, opts) => {
2257
2291
  return __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f").call(this, url, {
2258
2292
  txMeta: transactionMeta,
@@ -2353,10 +2387,13 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2353
2387
  submitHistory.unshift(submitHistoryEntry);
2354
2388
  });
2355
2389
  }, _TransactionController_updateGasEstimate = async function _TransactionController_updateGasEstimate(transactionMeta) {
2356
- const { networkClientId } = transactionMeta;
2390
+ const { chainId, networkClientId } = transactionMeta;
2357
2391
  const isCustomNetwork = __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNetworkClient({ networkClientId })
2358
2392
  .configuration.type === network_controller_1.NetworkClientType.Custom;
2393
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId });
2359
2394
  await (0, gas_1.updateGas)({
2395
+ chainId,
2396
+ ethQuery,
2360
2397
  isCustomNetwork,
2361
2398
  isSimulationEnabled: __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this),
2362
2399
  getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
@@ -2435,15 +2472,14 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2435
2472
  updateTransaction(txMeta);
2436
2473
  });
2437
2474
  (0, logger_1.projectLogger)('Updated transaction with afterSimulate data', updatedTransactionMeta);
2438
- }, _TransactionController_defaultPublishHook = async function _TransactionController_defaultPublishHook({ networkClientId, publishHookOverride, traceContext, }, transactionMeta, signedTx) {
2475
+ }, _TransactionController_defaultPublishHook = async function _TransactionController_defaultPublishHook({ ethQuery, publishHookOverride, traceContext, }, transactionMeta, signedTx) {
2439
2476
  let transactionHash;
2440
2477
  await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Publish', parentContext: traceContext }, async () => {
2441
2478
  const publishHook = publishHookOverride ?? __classPrivateFieldGet(this, _TransactionController_publish, "f");
2442
2479
  ({ transactionHash } = await publishHook(transactionMeta, signedTx));
2443
2480
  // eslint-disable-next-line require-atomic-updates
2444
- transactionHash ?? (transactionHash = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, {
2481
+ transactionHash ?? (transactionHash = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, ethQuery, {
2445
2482
  ...transactionMeta,
2446
- networkClientId,
2447
2483
  rawTx: signedTx,
2448
2484
  }));
2449
2485
  });