Helpers for bool<>[]byte conversion.
This commit is contained in:
parent
49af391b0c
commit
4db50a4439
@ -105,6 +105,18 @@ func bytesToUint32(bytes []byte) uint32 {
|
||||
return binary.LittleEndian.Uint32(bytes)
|
||||
}
|
||||
|
||||
func bytesToBool(bytes []byte) bool {
|
||||
return bytes[0] == 1
|
||||
}
|
||||
|
||||
func boolToBytes(b bool) []byte {
|
||||
if b {
|
||||
return []byte{1}
|
||||
}
|
||||
|
||||
return []byte{0}
|
||||
}
|
||||
|
||||
// CreateNew intializes a new bbolt database with all of the necessary vspd
|
||||
// buckets, and inserts:
|
||||
// - the provided extended pubkey (to be used for deriving fee addresses).
|
||||
|
||||
@ -172,12 +172,7 @@ func putTicketInBucket(bkt *bolt.Bucket, ticket Ticket) error {
|
||||
if err = bkt.Put(feeExpirationK, int64ToBytes(ticket.FeeExpiration)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
confirmed := []byte{0}
|
||||
if ticket.Confirmed {
|
||||
confirmed = []byte{1}
|
||||
}
|
||||
if err = bkt.Put(confirmedK, confirmed); err != nil {
|
||||
if err = bkt.Put(confirmedK, boolToBytes(ticket.Confirmed)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@ -205,10 +200,7 @@ func getTicketFromBkt(bkt *bolt.Bucket) (Ticket, error) {
|
||||
ticket.FeeAmount = bytesToInt64(bkt.Get(feeAmountK))
|
||||
ticket.FeeExpiration = bytesToInt64(bkt.Get(feeExpirationK))
|
||||
|
||||
// TODO is this dodgy?
|
||||
if bkt.Get(confirmedK)[0] == byte(1) {
|
||||
ticket.Confirmed = true
|
||||
}
|
||||
ticket.Confirmed = bytesToBool(bkt.Get(confirmedK))
|
||||
|
||||
ticket.VoteChoices = make(map[string]string)
|
||||
err := json.Unmarshal(bkt.Get(voteChoicesK), &ticket.VoteChoices)
|
||||
@ -316,7 +308,7 @@ func (vdb *VspDatabase) GetUnconfirmedTickets() ([]Ticket, error) {
|
||||
defer vdb.ticketsMtx.RUnlock()
|
||||
|
||||
return vdb.filterTickets(func(t *bolt.Bucket) bool {
|
||||
return t.Get(confirmedK)[0] == byte(0)
|
||||
return !bytesToBool(t.Get(confirmedK))
|
||||
})
|
||||
}
|
||||
|
||||
@ -327,7 +319,7 @@ func (vdb *VspDatabase) GetPendingFees() ([]Ticket, error) {
|
||||
defer vdb.ticketsMtx.RUnlock()
|
||||
|
||||
return vdb.filterTickets(func(t *bolt.Bucket) bool {
|
||||
return t.Get(confirmedK)[0] == byte(1) && FeeStatus(t.Get(feeTxStatusK)) == FeeReceieved
|
||||
return bytesToBool(t.Get(confirmedK)) && FeeStatus(t.Get(feeTxStatusK)) == FeeReceieved
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@ -238,7 +238,7 @@ func testFilterTickets(t *testing.T) {
|
||||
|
||||
// Only one ticket should be confirmed.
|
||||
retrieved, err = db.filterTickets(func(t *bolt.Bucket) bool {
|
||||
return t.Get(confirmedK)[0] == byte(1)
|
||||
return bytesToBool(t.Get(confirmedK))
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("error filtering tickets: %v", err)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user