github.com/elastos/Elastos.ELA.SideChain.ETH@v0.2.2/chainbridge-core/lvldb/lvldb.go (about) 1 // Copyright 2021 ChainSafe Systems 2 // SPDX-License-Identifier: LGPL-3.0-only 3 4 package lvldb 5 6 import ( 7 "github.com/pkg/errors" 8 "github.com/syndtr/goleveldb/leveldb" 9 ) 10 11 type LVLDB struct { 12 db *leveldb.DB 13 } 14 15 func NewLvlDB(path string) (*LVLDB, error) { 16 ldb, err := leveldb.OpenFile(path, nil) 17 if err != nil { 18 return nil, errors.Wrap(err, "levelDB.OpenFile fail") 19 } 20 return &LVLDB{db: ldb}, nil 21 } 22 23 func (db *LVLDB) GetByKey(key []byte) ([]byte, error) { 24 return db.db.Get(key, nil) 25 } 26 27 func (db *LVLDB) SetByKey(key []byte, value []byte) error { 28 return db.db.Put(key, value, nil) 29 } 30 31 func (db *LVLDB) Close() error { 32 return db.Close() 33 }