foundry icon indicating copy to clipboard operation
foundry copied to clipboard

feat(`forge script`): add `--gas-price-multiplier`

Open 409H opened this issue 1 year ago • 2 comments

Component

Forge

Describe the feature you would like

When running forge script script/deploy.s.sol and specifying the gas params, either with -g or --gas-price, the output of the simulation (running without --broadcast) shows the estimated gas price of the current block, not what was specified with the cli params and can be confusing.

As per the docs, supplying -g will multiply the estimated gas by some number.

If gas price is 65 gwei, and we want to deploy with 6 gwei, we could specify -g 10

Current avg gas price: 65 gwei Call: forge script script/deploy.s.sol:DeployScript -g 10 --rpc-url https://cloudflare-eth.com/

However, in doing so, the output still specifies the 65 gwei. Interpretation of the output could be that we will deploy with 65 gwei gas price.

## Setting up 1 EVM.

==========================

Chain 1

Estimated gas price: 64.375837984 gwei

Estimated total gas used for script: 15627

Estimated amount required: 0.001006001220175968 ETH

We can confirm the estimated amount required is correct and uses what we specify with -g by calling the same exec with -g 1000.

Current avg gas price: 65 gwei Call: forge script script/deploy.s.sol:DeployScript -g 1000 --rpc-url https://cloudflare-eth.com/

## Setting up 1 EVM.

==========================

Chain 1

Estimated gas price: 64.834925182 gwei

Estimated total gas used for script: 1562760

Estimated amount required: 0.10132142767742232 ETH

It seems to be that Estimated gas price: is not overridden with what we specify in the args but instead of always the gas price of the current block.

Ask:

In the output, either;

  • relabel Estimated gas price: to what we specify (in the case of -g 10, it should read Estimated gas price: 6.4834925182 gwei)
  • relabel Estimated gas price: to something more accurate such as Block gas price and then a new line item with Broadcasting with gas price: if the user specifies a gas price with -g or --gas-price.

Additional context

No response

409H avatar Oct 08 '24 17:10 409H

Hi @409H

--gas-estimate-multiplier decreases / the gas limit of the transaction by a scalar, you can see an example here: https://holesky.etherscan.io/tx/0x16f18c36af6f987282d846b58e9ab982f9c813f53f9deb8b947c01c3c8b693f4

1,067,150 | 106,733 (10%) when -g is set to 1000 (think of this as specifying a budget of gas the transaction is allowed to use)

I think what you are requesting is a new flag called --gas-price-multiplier which would multiply the gas_price or max_fee_per_gas field by a scalar (as in 6.4 gwei -> 64 gwei)

zerosnacks avatar Oct 09 '24 15:10 zerosnacks

@zerosnacks Ah yes, sorry -- good catch. Yes, you're correct in what I mean

409H avatar Oct 15 '24 18:10 409H