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  }