From 53f449a7e576d4ccfa8c7e993bbcb2d37c9b222c Mon Sep 17 00:00:00 2001 From: ItsFunny <39111451+ItsFunny@users.noreply.github.com> Date: Sat, 30 Jul 2022 17:43:58 +0800 Subject: [PATCH] Merge PR: fix ut (#2382) * immutable height -1 * logic * move codes --- libs/cosmos-sdk/store/iavl/iavl_store.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/libs/cosmos-sdk/store/iavl/iavl_store.go b/libs/cosmos-sdk/store/iavl/iavl_store.go index 0fcabce3c4..33ab49e173 100644 --- a/libs/cosmos-sdk/store/iavl/iavl_store.go +++ b/libs/cosmos-sdk/store/iavl/iavl_store.go @@ -290,8 +290,8 @@ func getHeight(tree Tree, req abci.RequestQuery) int64 { height := req.Height if height == 0 { latest := tree.Version() - _, err := tree.GetImmutable(latest) - if err != nil { + _, err := tree.GetImmutable(latest - 1) + if err == nil { height = latest - 1 } else { height = latest @@ -318,16 +318,17 @@ func (st *Store) Query(req abci.RequestQuery) (res abci.ResponseQuery) { // store the height we chose in the response, with 0 being changed to the // latest height res.Height = getHeight(st.tree, req) - tree, err := st.tree.GetImmutable(res.Height) - if err != nil { - return sdkerrors.QueryResult(sdkerrors.Wrapf(iavl.ErrVersionDoesNotExist, "request height %d", req.Height)) - } switch req.Path { case "/key": // get by key key := req.Data // data holds the key bytes res.Key = key + tree, err := st.tree.GetImmutable(res.Height) + if err != nil { + return sdkerrors.QueryResult(sdkerrors.Wrapf(iavl.ErrVersionDoesNotExist, "request height %d", req.Height)) + } + if req.Prove { value, proof, err := tree.GetWithProof(key) if err != nil {