func (store *EvidenceStore) PriorityEvidence() (evidence []types.Evidence) {
	l := store.listEvidence(baseKeyOutqueue, -1)
	for i, j := 0, len(l)-1; i < j; i, j = i+1, j-1 {
		l[i], l[j] = l[j], l[i]
	}
	return l
}
PriorityEvidence returns the evidence from the outqueue, sorted by highest priority.
package evidence
import (
	"fmt"
	dbm "github.com/XuanMaoSecLab/DolphinChain/libs/db"
	"github.com/XuanMaoSecLab/DolphinChain/types"
)
type EvidenceInfo struct {
	Committed bool
	Priority  int64
	Evidence  types.Evidence
}
const (
	baseKeyLookup   = "evidence-lookup"    
	baseKeyOutqueue = "evidence-outqueue"  
	baseKeyPending  = "evidence-pending"   
)
func keyLookup(evidence types.Evidence) []byte {
	return keyLookupFromHeightAndHash(evidence.Height(), evidence.Hash())
}
func bE(h int64) string {
	return fmt.Sprintf("%0.16X", h)
}
func keyLookupFromHeightAndHash(height int64, hash []byte) []byte {
	return _key("%s/%s/%X", baseKeyLookup, bE(height), hash)
}
func keyOutqueue(evidence types.Evidence, priority int64) []byte {
	return _key("%s/%s/%s/%X", baseKeyOutqueue, bE(priority), bE(evidence.Height()), evidence.Hash())
}
func keyPending(evidence types.Evidence) []byte {
	return _key("%s/%s/%X", baseKeyPending, bE(evidence.Height()), evidence.Hash())
}
func _key(fmt_ string, o ...interface{}) []byte {
	return []byte(fmt.Sprintf(fmt_, o...))
}
type EvidenceStore struct {
	db dbm.DB
}
func NewEvidenceStore(db dbm.DB) *EvidenceStore {
	return &EvidenceStore{
		db: db,
	}
}