From fc5084814ccb7c3204db263840c0266244d8f966 Mon Sep 17 00:00:00 2001 From: colinlyguo Date: Thu, 18 Jan 2024 20:28:00 +0800 Subject: [PATCH] feat: add accessList field in toCallArg --- ethclient/ethclient.go | 10 ++++++++++ ethclient/gethclient/gethclient.go | 16 ++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/ethclient/ethclient.go b/ethclient/ethclient.go index 900335988b..d2bb544920 100644 --- a/ethclient/ethclient.go +++ b/ethclient/ethclient.go @@ -662,6 +662,16 @@ func toCallArg(msg ethereum.CallMsg) interface{} { if msg.GasTipCap != nil { arg["maxPriorityFeePerGas"] = (*hexutil.Big)(msg.GasTipCap) } + if msg.AccessList != nil { + accessListArg := make([]map[string]interface{}, len(msg.AccessList)) + for i, access := range msg.AccessList { + accessListArg[i] = map[string]interface{}{ + "address": access.Address, + "storageKeys": access.StorageKeys, + } + } + arg["accessList"] = accessListArg + } return arg } diff --git a/ethclient/gethclient/gethclient.go b/ethclient/gethclient/gethclient.go index e2c0ef3ed0..37078673ce 100644 --- a/ethclient/gethclient/gethclient.go +++ b/ethclient/gethclient/gethclient.go @@ -236,6 +236,22 @@ func toCallArg(msg ethereum.CallMsg) interface{} { if msg.GasPrice != nil { arg["gasPrice"] = (*hexutil.Big)(msg.GasPrice) } + if msg.GasFeeCap != nil { + arg["maxFeePerGas"] = (*hexutil.Big)(msg.GasFeeCap) + } + if msg.GasTipCap != nil { + arg["maxPriorityFeePerGas"] = (*hexutil.Big)(msg.GasTipCap) + } + if msg.AccessList != nil { + accessListArg := make([]map[string]interface{}, len(msg.AccessList)) + for i, access := range msg.AccessList { + accessListArg[i] = map[string]interface{}{ + "address": access.Address, + "storageKeys": access.StorageKeys, + } + } + arg["accessList"] = accessListArg + } return arg }