mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-18 02:40:45 +00:00
parent
8664487b0c
commit
0c2b0f3234
1 changed files with 13 additions and 6 deletions
|
|
@ -1711,12 +1711,7 @@ func newRPCTransaction(tx *types.Transaction, blockHash common.Hash, blockNumber
|
||||||
// if the transaction has been mined, compute the effective gas price
|
// if the transaction has been mined, compute the effective gas price
|
||||||
if baseFee != nil && blockHash != (common.Hash{}) {
|
if baseFee != nil && blockHash != (common.Hash{}) {
|
||||||
// price = min(tip, gasFeeCap - baseFee) + baseFee
|
// price = min(tip, gasFeeCap - baseFee) + baseFee
|
||||||
price := new(big.Int).Add(tx.GasTipCap(), baseFee)
|
result.GasPrice = (*hexutil.Big)(effectiveGasPrice(tx, baseFee))
|
||||||
txGasFeeCap := tx.GasFeeCap()
|
|
||||||
if price.Cmp(txGasFeeCap) > 0 {
|
|
||||||
price = txGasFeeCap
|
|
||||||
}
|
|
||||||
result.GasPrice = (*hexutil.Big)(price)
|
|
||||||
} else {
|
} else {
|
||||||
result.GasPrice = (*hexutil.Big)(tx.GasFeeCap())
|
result.GasPrice = (*hexutil.Big)(tx.GasFeeCap())
|
||||||
}
|
}
|
||||||
|
|
@ -1724,6 +1719,18 @@ func newRPCTransaction(tx *types.Transaction, blockHash common.Hash, blockNumber
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// effectiveGasPrice computes the transaction gas fee, based on the given basefee value.
|
||||||
|
//
|
||||||
|
// price = min(gasTipCap + baseFee, gasFeeCap)
|
||||||
|
func effectiveGasPrice(tx *types.Transaction, baseFee *big.Int) *big.Int {
|
||||||
|
fee := tx.GasTipCap()
|
||||||
|
fee = fee.Add(fee, baseFee)
|
||||||
|
if tx.GasFeeCapIntCmp(fee) < 0 {
|
||||||
|
return tx.GasFeeCap()
|
||||||
|
}
|
||||||
|
return fee
|
||||||
|
}
|
||||||
|
|
||||||
// newRPCPendingTransaction returns a pending transaction that will serialize to the RPC representation
|
// newRPCPendingTransaction returns a pending transaction that will serialize to the RPC representation
|
||||||
func newRPCPendingTransaction(tx *types.Transaction, current *types.Header, config *params.ChainConfig) *RPCTransaction {
|
func newRPCPendingTransaction(tx *types.Transaction, current *types.Header, config *params.ChainConfig) *RPCTransaction {
|
||||||
var baseFee *big.Int
|
var baseFee *big.Int
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue