mirror of
https://github.com/colinear-labs/chain.git
synced 2026-03-05 08:14:25 -08:00
fix memdb encode/decode EOF issue
This commit is contained in:
@@ -31,9 +31,6 @@ func (b *bidDB) Mount() {
|
|||||||
|
|
||||||
// Add a bid to the bid list under specified auction key.
|
// Add a bid to the bid list under specified auction key.
|
||||||
func (b *bidDB) AddBid(auctionId string, bid *types.Bid) error {
|
func (b *bidDB) AddBid(auctionId string, bid *types.Bid) error {
|
||||||
buf := bytes.NewBuffer([]byte{})
|
|
||||||
enc := gob.NewEncoder(buf)
|
|
||||||
dec := gob.NewDecoder(buf)
|
|
||||||
k := []byte(auctionId)
|
k := []byte(auctionId)
|
||||||
|
|
||||||
err := b.db.Update(func(txn *badger.Txn) error {
|
err := b.db.Update(func(txn *badger.Txn) error {
|
||||||
@@ -48,10 +45,7 @@ func (b *bidDB) AddBid(auctionId string, bid *types.Bid) error {
|
|||||||
}
|
}
|
||||||
// key found -> decode contents to bids
|
// key found -> decode contents to bids
|
||||||
bidsOld.Value(func(val []byte) error {
|
bidsOld.Value(func(val []byte) error {
|
||||||
buf.Reset()
|
dec := gob.NewDecoder(bytes.NewReader(val))
|
||||||
if _, err := buf.Read(val); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := dec.Decode(&bids); err != nil {
|
if err := dec.Decode(&bids); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -62,7 +56,8 @@ func (b *bidDB) AddBid(auctionId string, bid *types.Bid) error {
|
|||||||
// append bid
|
// append bid
|
||||||
bids = append(bids, bid)
|
bids = append(bids, bid)
|
||||||
// encode new list
|
// encode new list
|
||||||
buf.Reset()
|
buf := bytes.NewBuffer(nil)
|
||||||
|
enc := gob.NewEncoder(buf)
|
||||||
if err := enc.Encode(&bids); err != nil {
|
if err := enc.Encode(&bids); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -80,8 +75,6 @@ func (b *bidDB) AddBid(auctionId string, bid *types.Bid) error {
|
|||||||
// Get the highest bid in the list under specified auction key.
|
// Get the highest bid in the list under specified auction key.
|
||||||
func (b *bidDB) GetHighestBid(auctionId string) (*types.Bid, error) {
|
func (b *bidDB) GetHighestBid(auctionId string) (*types.Bid, error) {
|
||||||
k := []byte(auctionId)
|
k := []byte(auctionId)
|
||||||
buf := bytes.NewBuffer([]byte{})
|
|
||||||
dec := gob.NewDecoder(buf)
|
|
||||||
|
|
||||||
var bid *types.Bid
|
var bid *types.Bid
|
||||||
|
|
||||||
@@ -92,13 +85,8 @@ func (b *bidDB) GetHighestBid(auctionId string) (*types.Bid, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
err = bidData.Value(func(val []byte) error {
|
err = bidData.Value(func(val []byte) error {
|
||||||
buf.Reset()
|
|
||||||
if _, err := buf.Read(val); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
// panic(len(val))
|
|
||||||
|
|
||||||
var bids []*types.Bid
|
var bids []*types.Bid
|
||||||
|
dec := gob.NewDecoder(bytes.NewReader(val))
|
||||||
if err := dec.Decode(&bids); err != nil {
|
if err := dec.Decode(&bids); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user