github.com/sexdefi/go-ethereum@v0.0.0-20230807164010-b4cd42fe399f/internal/ethapi/dbapi.go (about) 1 // Copyright 2022 The go-ethereum Authors 2 // This file is part of the go-ethereum library. 3 // 4 // The go-ethereum library is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU Lesser General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // The go-ethereum library is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU Lesser General Public License for more details. 13 // 14 // You should have received a copy of the GNU Lesser General Public License 15 // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. 16 17 package ethapi 18 19 import ( 20 "github.com/sexdefi/go-ethereum/common" 21 "github.com/sexdefi/go-ethereum/common/hexutil" 22 ) 23 24 // DbGet returns the raw value of a key stored in the database. 25 func (api *DebugAPI) DbGet(key string) (hexutil.Bytes, error) { 26 blob, err := common.ParseHexOrString(key) 27 if err != nil { 28 return nil, err 29 } 30 return api.b.ChainDb().Get(blob) 31 } 32 33 // DbAncient retrieves an ancient binary blob from the append-only immutable files. 34 // It is a mapping to the `AncientReaderOp.Ancient` method 35 func (api *DebugAPI) DbAncient(kind string, number uint64) (hexutil.Bytes, error) { 36 return api.b.ChainDb().Ancient(kind, number) 37 } 38 39 // DbAncients returns the ancient item numbers in the ancient store. 40 // It is a mapping to the `AncientReaderOp.Ancients` method 41 func (api *DebugAPI) DbAncients() (uint64, error) { 42 return api.b.ChainDb().Ancients() 43 }