Skip to content

Commit a30313b

Browse files
committed
op-service: serialize call fee caps
1 parent a71cadf commit a30313b

2 files changed

Lines changed: 36 additions & 0 deletions

File tree

op-service/sources/eth_client.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -567,6 +567,12 @@ func ToCallArg(msg ethereum.CallMsg) interface{} {
567567
if msg.GasPrice != nil {
568568
arg["gasPrice"] = (*hexutil.Big)(msg.GasPrice)
569569
}
570+
if msg.GasFeeCap != nil {
571+
arg["maxFeePerGas"] = (*hexutil.Big)(msg.GasFeeCap)
572+
}
573+
if msg.GasTipCap != nil {
574+
arg["maxPriorityFeePerGas"] = (*hexutil.Big)(msg.GasTipCap)
575+
}
570576
if msg.AccessList != nil {
571577
arg["accessList"] = msg.AccessList
572578
}

op-service/sources/eth_client_test.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,36 @@ func randHeader() (*types.Header, *RPCHeader) {
104104
return hdr, rhdr
105105
}
106106

107+
func TestToCallArgIncludesFeeFields(t *testing.T) {
108+
to := common.Address{0x01}
109+
accessList := types.AccessList{
110+
{Address: common.Address{0x02}, StorageKeys: []common.Hash{{0x03}}},
111+
}
112+
msg := ethereum.CallMsg{
113+
From: common.Address{0x04},
114+
To: &to,
115+
Gas: 123_456,
116+
GasPrice: big.NewInt(1),
117+
GasFeeCap: big.NewInt(2),
118+
GasTipCap: big.NewInt(3),
119+
Value: big.NewInt(4),
120+
Data: []byte{0x05, 0x06},
121+
AccessList: accessList,
122+
}
123+
124+
arg, ok := ToCallArg(msg).(map[string]interface{})
125+
require.True(t, ok)
126+
require.Equal(t, msg.From, arg["from"])
127+
require.Equal(t, msg.To, arg["to"])
128+
require.Equal(t, hexutil.Uint64(msg.Gas), arg["gas"])
129+
require.Equal(t, (*hexutil.Big)(msg.GasPrice), arg["gasPrice"])
130+
require.Equal(t, (*hexutil.Big)(msg.GasFeeCap), arg["maxFeePerGas"])
131+
require.Equal(t, (*hexutil.Big)(msg.GasTipCap), arg["maxPriorityFeePerGas"])
132+
require.Equal(t, (*hexutil.Big)(msg.Value), arg["value"])
133+
require.Equal(t, hexutil.Bytes(msg.Data), arg["data"])
134+
require.Equal(t, accessList, arg["accessList"])
135+
}
136+
107137
func TestEthClient_InfoByHash(t *testing.T) {
108138
m := new(mockRPC)
109139
_, rhdr := randHeader()

0 commit comments

Comments
 (0)