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)
|
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
|
// CreateNew intializes a new bbolt database with all of the necessary vspd
|
||||||
// buckets, and inserts:
|
// buckets, and inserts:
|
||||||
// - the provided extended pubkey (to be used for deriving fee addresses).
|
// - 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 {
|
if err = bkt.Put(feeExpirationK, int64ToBytes(ticket.FeeExpiration)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err = bkt.Put(confirmedK, boolToBytes(ticket.Confirmed)); err != nil {
|
||||||
confirmed := []byte{0}
|
|
||||||
if ticket.Confirmed {
|
|
||||||
confirmed = []byte{1}
|
|
||||||
}
|
|
||||||
if err = bkt.Put(confirmedK, confirmed); err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -205,10 +200,7 @@ func getTicketFromBkt(bkt *bolt.Bucket) (Ticket, error) {
|
|||||||
ticket.FeeAmount = bytesToInt64(bkt.Get(feeAmountK))
|
ticket.FeeAmount = bytesToInt64(bkt.Get(feeAmountK))
|
||||||
ticket.FeeExpiration = bytesToInt64(bkt.Get(feeExpirationK))
|
ticket.FeeExpiration = bytesToInt64(bkt.Get(feeExpirationK))
|
||||||
|
|
||||||
// TODO is this dodgy?
|
ticket.Confirmed = bytesToBool(bkt.Get(confirmedK))
|
||||||
if bkt.Get(confirmedK)[0] == byte(1) {
|
|
||||||
ticket.Confirmed = true
|
|
||||||
}
|
|
||||||
|
|
||||||
ticket.VoteChoices = make(map[string]string)
|
ticket.VoteChoices = make(map[string]string)
|
||||||
err := json.Unmarshal(bkt.Get(voteChoicesK), &ticket.VoteChoices)
|
err := json.Unmarshal(bkt.Get(voteChoicesK), &ticket.VoteChoices)
|
||||||
@ -316,7 +308,7 @@ func (vdb *VspDatabase) GetUnconfirmedTickets() ([]Ticket, error) {
|
|||||||
defer vdb.ticketsMtx.RUnlock()
|
defer vdb.ticketsMtx.RUnlock()
|
||||||
|
|
||||||
return vdb.filterTickets(func(t *bolt.Bucket) bool {
|
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()
|
defer vdb.ticketsMtx.RUnlock()
|
||||||
|
|
||||||
return vdb.filterTickets(func(t *bolt.Bucket) bool {
|
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.
|
// Only one ticket should be confirmed.
|
||||||
retrieved, err = db.filterTickets(func(t *bolt.Bucket) bool {
|
retrieved, err = db.filterTickets(func(t *bolt.Bucket) bool {
|
||||||
return t.Get(confirmedK)[0] == byte(1)
|
return bytesToBool(t.Get(confirmedK))
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("error filtering tickets: %v", err)
|
t.Fatalf("error filtering tickets: %v", err)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user