core, graphql, internal: expose effectiveGasPrice in receipts
This commit is contained in:
@ -236,6 +236,21 @@ func (t *Transaction) GasPrice(ctx context.Context) (hexutil.Big, error) {
|
||||
}
|
||||
}
|
||||
|
||||
func (t *Transaction) EffectiveGasPrice(ctx context.Context) (*hexutil.Big, error) {
|
||||
tx, err := t.resolve(ctx)
|
||||
if err != nil || tx == nil {
|
||||
return nil, err
|
||||
}
|
||||
header, err := t.block.resolveHeader(ctx)
|
||||
if err != nil || header == nil {
|
||||
return nil, err
|
||||
}
|
||||
if header.BaseFee == nil {
|
||||
return (*hexutil.Big)(tx.GasPrice()), nil
|
||||
}
|
||||
return (*hexutil.Big)(math.BigMin(new(big.Int).Add(tx.GasTipCap(), header.BaseFee), tx.GasFeeCap())), nil
|
||||
}
|
||||
|
||||
func (t *Transaction) MaxFeePerGas(ctx context.Context) (*hexutil.Big, error) {
|
||||
tx, err := t.resolve(ctx)
|
||||
if err != nil || tx == nil {
|
||||
|
@ -118,6 +118,13 @@ const schema string = `
|
||||
# this transaction. If the transaction has not yet been mined, this field
|
||||
# will be null.
|
||||
cumulativeGasUsed: Long
|
||||
# EffectiveGasPrice is actual value per gas deducted from the sender's
|
||||
# account. Before EIP-1559, this is equal to the transaction's gas price.
|
||||
# After EIP-1559, it is baseFeePerGas + min(maxFeePerGas - baseFeePerGas,
|
||||
# maxPriorityFeePerGas). Legacy transactions and EIP-2930 transactions are
|
||||
# coerced into the EIP-1559 format by setting both maxFeePerGas and
|
||||
# maxPriorityFeePerGas as the transaction's gas price.
|
||||
effectiveGasPrice: BigInt
|
||||
# CreatedContract is the account that was created by a contract creation
|
||||
# transaction. If the transaction was not a contract creation transaction,
|
||||
# or it has not yet been mined, this field will be null.
|
||||
|
Reference in New Issue
Block a user