@metamask-previews/transaction-controller 46.0.0-preview-0ae65d9e → 46.0.0-preview-90578fc4

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.
@@ -13,7 +13,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || 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_internalEvents, _TransactionController_methodDataHelper, _TransactionController_incomingTransactionChainIds, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_pendingTransactionOptions, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_testGasFeeFlows, _TransactionController_multichainTrackingHelper, _TransactionController_retryTransaction, _TransactionController_getChainId, _TransactionController_getNetworkClientId, _TransactionController_getEthQuery, _TransactionController_getProvider, _TransactionController_createNonceTracker, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_updateFirstTimeInteraction, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_getSelectedAccount, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory;
16
+ var _TransactionController_instances, _TransactionController_internalEvents, _TransactionController_methodDataHelper, _TransactionController_incomingTransactionChainIds, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_pendingTransactionOptions, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_testGasFeeFlows, _TransactionController_multichainTrackingHelper, _TransactionController_retryTransaction, _TransactionController_getChainId, _TransactionController_getNetworkClientId, _TransactionController_getEthQuery, _TransactionController_getProvider, _TransactionController_createNonceTracker, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_updateFirstTimeInteraction, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_getSelectedAccount, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory, _TransactionController_updateGasEstimate;
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");
@@ -1112,7 +1112,7 @@ class TransactionController extends base_controller_1.BaseController {
1112
1112
  * @param options.transactionData - New data to set for the nested transaction.
1113
1113
  * @returns The updated data for the atomic batch transaction.
1114
1114
  */
1115
- updateAtomicBatchData({ transactionId, transactionIndex, transactionData, }) {
1115
+ async updateAtomicBatchData({ transactionId, transactionIndex, transactionData, }) {
1116
1116
  (0, logger_1.projectLogger)('Updating atomic batch data', {
1117
1117
  transactionId,
1118
1118
  transactionIndex,
@@ -1132,6 +1132,23 @@ class TransactionController extends base_controller_1.BaseController {
1132
1132
  const batchTransaction = (0, eip7702_1.generateEIP7702BatchTransaction)(from, nestedTransactions);
1133
1133
  transactionMeta.txParams.data = batchTransaction.data;
1134
1134
  });
1135
+ const draftTransaction = (0, lodash_1.cloneDeep)({
1136
+ ...updatedTransactionMeta,
1137
+ txParams: {
1138
+ ...updatedTransactionMeta.txParams,
1139
+ // Clear existing gas to force estimation
1140
+ gas: undefined,
1141
+ },
1142
+ });
1143
+ await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasEstimate).call(this, draftTransaction);
1144
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1145
+ transactionId,
1146
+ note: 'TransactionController#updateAtomicBatchData - Gas estimate updated',
1147
+ }, (transactionMeta) => {
1148
+ transactionMeta.txParams.gas = draftTransaction.txParams.gas;
1149
+ transactionMeta.simulationFails = draftTransaction.simulationFails;
1150
+ transactionMeta.gasLimitNoBuffer = draftTransaction.gasLimitNoBuffer;
1151
+ });
1135
1152
  return updatedTransactionMeta.txParams.data;
1136
1153
  }
1137
1154
  addMetadata(transactionMeta) {
@@ -1146,18 +1163,11 @@ class TransactionController extends base_controller_1.BaseController {
1146
1163
  async updateGasProperties(transactionMeta, { traceContext } = {}) {
1147
1164
  const isEIP1559Compatible = transactionMeta.txParams.type !== types_1.TransactionEnvelopeType.legacy &&
1148
1165
  (await this.getEIP1559Compatibility(transactionMeta.networkClientId));
1149
- const { networkClientId, chainId } = transactionMeta;
1150
- const isCustomNetwork = __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNetworkClient({ networkClientId })
1151
- .configuration.type === network_controller_1.NetworkClientType.Custom;
1166
+ const { networkClientId } = transactionMeta;
1152
1167
  const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId });
1153
1168
  const provider = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getProvider).call(this, { networkClientId });
1154
1169
  await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Update Gas', parentContext: traceContext }, async () => {
1155
- await (0, gas_1.updateGas)({
1156
- ethQuery,
1157
- chainId,
1158
- isCustomNetwork,
1159
- txMeta: transactionMeta,
1160
- });
1170
+ await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasEstimate).call(this, transactionMeta);
1161
1171
  });
1162
1172
  await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Update Gas Fees', parentContext: traceContext }, async () => await (0, gas_fees_1.updateGasFees)({
1163
1173
  eip1559: isEIP1559Compatible,
@@ -2077,5 +2087,16 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
2077
2087
  }
2078
2088
  submitHistory.unshift(submitHistoryEntry);
2079
2089
  });
2090
+ }, _TransactionController_updateGasEstimate = async function _TransactionController_updateGasEstimate(transactionMeta) {
2091
+ const { chainId, networkClientId } = transactionMeta;
2092
+ const isCustomNetwork = __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNetworkClient({ networkClientId })
2093
+ .configuration.type === network_controller_1.NetworkClientType.Custom;
2094
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId });
2095
+ await (0, gas_1.updateGas)({
2096
+ chainId,
2097
+ ethQuery,
2098
+ isCustomNetwork,
2099
+ txMeta: transactionMeta,
2100
+ });
2080
2101
  };
2081
2102
  //# sourceMappingURL=TransactionController.cjs.map