22 lines
392 B
Go
22 lines
392 B
Go
|
package types
|
||
|
|
||
|
import (
|
||
|
"math/big"
|
||
|
|
||
|
"github.com/minio/blake2b-simd"
|
||
|
)
|
||
|
|
||
|
type Ticket struct {
|
||
|
VRFProof []byte
|
||
|
}
|
||
|
|
||
|
func (t *Ticket) Quality() float64 {
|
||
|
ticketHash := blake2b.Sum256(t.VRFProof)
|
||
|
ticketNum := BigFromBytes(ticketHash[:]).Int
|
||
|
ticketDenu := big.NewInt(1)
|
||
|
ticketDenu.Lsh(ticketDenu, 256)
|
||
|
tv, _ := new(big.Rat).SetFrac(ticketNum, ticketDenu).Float64()
|
||
|
tq := 1 - tv
|
||
|
return tq
|
||
|
}
|