From 0c655ee732f1801dadfcde93ac570cbfa051da2e Mon Sep 17 00:00:00 2001 From: Pedro Figueiredo Date: Wed, 26 Feb 2025 13:08:07 +0000 Subject: [PATCH 1/2] fix: Override lower bound gas when gasLimit is defined --- packages/transaction-controller/src/utils/gas.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/transaction-controller/src/utils/gas.ts b/packages/transaction-controller/src/utils/gas.ts index 67b0331ed73..5a47345a618 100644 --- a/packages/transaction-controller/src/utils/gas.ts +++ b/packages/transaction-controller/src/utils/gas.ts @@ -141,6 +141,11 @@ async function getGas( return [txMeta.txParams.gas, undefined, txMeta.txParams.gas]; } + if (txMeta.txParams.gasLimit) { + log('Using value from request', txMeta.txParams.gasLimit); + return [txMeta.txParams.gasLimit, undefined, txMeta.txParams.gasLimit]; + } + if (await requiresFixedGas(request)) { log('Using fixed value', FIXED_GAS); return [FIXED_GAS, undefined, FIXED_GAS]; From e020ae2d1976c4ab0c95a0545853fff7b3a0ef5e Mon Sep 17 00:00:00 2001 From: Pedro Figueiredo Date: Fri, 28 Feb 2025 11:46:43 +0000 Subject: [PATCH 2/2] fix: Override lower bound gas when gasLimit is defined --- .../src/gas-flows/OracleLayer1GasFeeFlow.test.ts | 1 + .../src/gas-flows/OracleLayer1GasFeeFlow.ts | 3 +-- packages/transaction-controller/src/types.ts | 6 ++++-- packages/transaction-controller/src/utils/gas.ts | 5 ----- packages/transaction-controller/src/utils/utils.ts | 5 +++++ 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/packages/transaction-controller/src/gas-flows/OracleLayer1GasFeeFlow.test.ts b/packages/transaction-controller/src/gas-flows/OracleLayer1GasFeeFlow.test.ts index f567e50e7be..8416147f85f 100644 --- a/packages/transaction-controller/src/gas-flows/OracleLayer1GasFeeFlow.test.ts +++ b/packages/transaction-controller/src/gas-flows/OracleLayer1GasFeeFlow.test.ts @@ -105,6 +105,7 @@ describe('OracleLayer1GasFeeFlow', () => { expect(transactionFactoryMock).toHaveBeenCalledWith( { from: TRANSACTION_PARAMS_MOCK.from, + gas: TRANSACTION_PARAMS_MOCK.gas, gasLimit: TRANSACTION_PARAMS_MOCK.gas, }, expect.anything(), diff --git a/packages/transaction-controller/src/gas-flows/OracleLayer1GasFeeFlow.ts b/packages/transaction-controller/src/gas-flows/OracleLayer1GasFeeFlow.ts index a4b80adb26e..8a3394ea2c2 100644 --- a/packages/transaction-controller/src/gas-flows/OracleLayer1GasFeeFlow.ts +++ b/packages/transaction-controller/src/gas-flows/OracleLayer1GasFeeFlow.ts @@ -2,7 +2,6 @@ import { Contract } from '@ethersproject/contracts'; import { Web3Provider, type ExternalProvider } from '@ethersproject/providers'; import type { Hex } from '@metamask/utils'; import { createModuleLogger } from '@metamask/utils'; -import { omit } from 'lodash'; import { projectLogger } from '../logger'; import type { @@ -103,7 +102,7 @@ export abstract class OracleLayer1GasFeeFlow implements Layer1GasFeeFlow { transactionMeta: TransactionMeta, ): TransactionMeta['txParams'] { return { - ...omit(transactionMeta.txParams, 'gas'), + ...transactionMeta.txParams, gasLimit: transactionMeta.txParams.gas, }; } diff --git a/packages/transaction-controller/src/types.ts b/packages/transaction-controller/src/types.ts index c5bff26a152..94614ae6ed2 100644 --- a/packages/transaction-controller/src/types.ts +++ b/packages/transaction-controller/src/types.ts @@ -752,12 +752,14 @@ export type TransactionParams = { from: string; /** - * same as gasLimit? + * Maximum number of units of gas to use for this transaction. */ gas?: string; /** - * Maxmimum number of units of gas to use for this transaction. + * Maximum number of units of gas to use for this transaction. + * + * @deprecated Use `gas` instead. */ gasLimit?: string; diff --git a/packages/transaction-controller/src/utils/gas.ts b/packages/transaction-controller/src/utils/gas.ts index 5a47345a618..67b0331ed73 100644 --- a/packages/transaction-controller/src/utils/gas.ts +++ b/packages/transaction-controller/src/utils/gas.ts @@ -141,11 +141,6 @@ async function getGas( return [txMeta.txParams.gas, undefined, txMeta.txParams.gas]; } - if (txMeta.txParams.gasLimit) { - log('Using value from request', txMeta.txParams.gasLimit); - return [txMeta.txParams.gasLimit, undefined, txMeta.txParams.gasLimit]; - } - if (await requiresFixedGas(request)) { log('Using fixed value', FIXED_GAS); return [FIXED_GAS, undefined, FIXED_GAS]; diff --git a/packages/transaction-controller/src/utils/utils.ts b/packages/transaction-controller/src/utils/utils.ts index ac61345e8df..0dc64ef01f3 100644 --- a/packages/transaction-controller/src/utils/utils.ts +++ b/packages/transaction-controller/src/utils/utils.ts @@ -58,6 +58,11 @@ export function normalizeTransactionParams(txParams: TransactionParams) { normalizedTxParams.value = '0x0'; } + if (normalizedTxParams.gasLimit) { + normalizedTxParams.gas = + normalizedTxParams.gas || normalizedTxParams.gasLimit; + } + return normalizedTxParams; }