From 71d6adbd4c0e8baf8f1382d5bd09f1fc02ceb5be Mon Sep 17 00:00:00 2001 From: Mark Tyneway Date: Fri, 24 Sep 2021 12:03:10 -0700 Subject: [PATCH] core-utils: ethers l2 context receipt Have the ethers L2 context helper pass through the new optimistic ethereum related fields --- .changeset/four-chairs-press.md | 5 +++++ l2geth/rollup/fees/rollup_fee.go | 2 -- packages/core-utils/src/l2context.ts | 14 +++++++++++++- 3 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 .changeset/four-chairs-press.md diff --git a/.changeset/four-chairs-press.md b/.changeset/four-chairs-press.md new file mode 100644 index 000000000000..8f6652eed0f5 --- /dev/null +++ b/.changeset/four-chairs-press.md @@ -0,0 +1,5 @@ +--- +'@eth-optimism/core-utils': minor +--- + +Parse optimistic ethereum specific fields on transaction receipts diff --git a/l2geth/rollup/fees/rollup_fee.go b/l2geth/rollup/fees/rollup_fee.go index 1b5c73c30606..e6d221b2d4bc 100644 --- a/l2geth/rollup/fees/rollup_fee.go +++ b/l2geth/rollup/fees/rollup_fee.go @@ -9,7 +9,6 @@ import ( "math/big" "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/params" "github.com/ethereum/go-ethereum/rollup/rcfg" @@ -159,7 +158,6 @@ func CalculateL1GasUsed(data []byte, overhead *big.Int) *big.Int { func DeriveL1GasInfo(msg Message, state StateDB) (*big.Int, *big.Int, *big.Int, *big.Float, error) { tx := asTransaction(msg) raw, err := rlpEncode(tx) - fmt.Println(hexutil.Encode(raw)) if err != nil { return nil, nil, nil, nil, err } diff --git a/packages/core-utils/src/l2context.ts b/packages/core-utils/src/l2context.ts index 18e526ba2e10..f721ad4307ca 100644 --- a/packages/core-utils/src/l2context.ts +++ b/packages/core-utils/src/l2context.ts @@ -1,5 +1,5 @@ import cloneDeep from 'lodash/cloneDeep' -import { providers } from 'ethers' +import { providers, BigNumber } from 'ethers' /** * Helper for adding additional L2 context to transactions @@ -54,5 +54,17 @@ export const injectL2Context = (l1Provider: providers.JsonRpcProvider) => { return tx } + const formatReceiptResponse = provider.formatter.receipt.bind( + provider.formatter + ) + provider.formatter.receipt = (receipt) => { + const r = formatReceiptResponse(receipt) + r.l1GasPrice = BigNumber.from(receipt.l1GasPrice) + r.l1GasUsed = BigNumber.from(receipt.l1GasUsed) + r.l1Fee = BigNumber.from(receipt.l1Fee) + r.l1FeeScalar = parseFloat(receipt.l1FeeScalar) + return r + } + return provider }