From fefa8b99c7b3dea8f15e8350245f71c3bbafa046 Mon Sep 17 00:00:00 2001 From: Ho Date: Wed, 27 Jul 2022 13:01:38 +0800 Subject: [PATCH] fix getProof API when zktrie is enabled (#132) fix getProof under zktrie --- internal/ethapi/api.go | 7 ++++++- les/server.go | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/internal/ethapi/api.go b/internal/ethapi/api.go index 8d28fe6457..f27486629b 100644 --- a/internal/ethapi/api.go +++ b/internal/ethapi/api.go @@ -657,8 +657,13 @@ func (s *PublicBlockChainAPI) GetProof(ctx context.Context, address common.Addre return nil, err } + zktrie := s.b.ChainConfig().Zktrie + storageTrie := state.StorageTrie(address) - storageHash := types.EmptyRootHash + var storageHash common.Hash + if !zktrie { + storageHash = types.EmptyRootHash + } codeHash := state.GetCodeHash(address) storageProof := make([]StorageResult, len(storageKeys)) diff --git a/les/server.go b/les/server.go index 88730c23b8..6697da0d42 100644 --- a/les/server.go +++ b/les/server.go @@ -18,6 +18,7 @@ package les import ( "crypto/ecdsa" + "errors" "time" "github.com/scroll-tech/go-ethereum/common/mclock" @@ -81,6 +82,11 @@ func NewLesServer(node *node.Node, e ethBackend, config *ethconfig.Config) (*Les if err != nil { return nil, err } + // Now disable for zktrie + if e.BlockChain().Config().Zktrie { + return nil, errors.New("light server not work with zktrie storage") + } + // Calculate the number of threads used to service the light client // requests based on the user-specified value. threads := config.LightServ * 4 / 100