accounts/abi/bind: take into account gas price during gas estimation (#20189)
The gas price was not passed to the `EstimateGas` function. As a result, conditional execution paths depending on `tx.gasprice` could be not correctly processed and we could get invalid gas estimates for contract function calls.
This commit is contained in:
		
				
					committed by
					
						
						Martin Holst Swende
					
				
			
			
				
	
			
			
			
						parent
						
							d4bb3798d8
						
					
				
				
					commit
					538f763fdc
				
			@@ -218,7 +218,7 @@ func (c *BoundContract) transact(opts *TransactOpts, contract *common.Address, i
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		// If the contract surely has code (or code is not needed), estimate the transaction
 | 
							// If the contract surely has code (or code is not needed), estimate the transaction
 | 
				
			||||||
		msg := ethereum.CallMsg{From: opts.From, To: contract, Value: value, Data: input}
 | 
							msg := ethereum.CallMsg{From: opts.From, To: contract, GasPrice: gasPrice, Value: value, Data: input}
 | 
				
			||||||
		gasLimit, err = c.transactor.EstimateGas(ensureContext(opts.Context), msg)
 | 
							gasLimit, err = c.transactor.EstimateGas(ensureContext(opts.Context), msg)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, fmt.Errorf("failed to estimate gas needed: %v", err)
 | 
								return nil, fmt.Errorf("failed to estimate gas needed: %v", err)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user