func NewQuery(pkFetcher verifiable.PublicKeyFetcher, loader ld.DocumentLoader, queries ...*QueryParams) *Query {
	return &Query{publicKeyFetcher: pkFetcher, documentLoader: loader, params: queries}
}
NewQuery returns new wallet query instance.
package wallet
import (
	"encoding/json"
	"errors"
	"fmt"
	"strings"
	"github.com/piprate/json-gold/ld"
	"github.com/hyperledger/aries-framework-go/pkg/doc/presexch"
	"github.com/hyperledger/aries-framework-go/pkg/doc/verifiable"
)
var (
	ErrQueryNoResultFound = errors.New("no result found")
)
type QueryType int
const (
	QueryByExample QueryType = iota + 1
	QueryByFrame
	PresentationExchange
	DIDAuth
)
func (q QueryType) Name() string {
	return []string{"", "QueryByExample", "QueryByFrame", "PresentationExchange"}[q]
}
func GetQueryType(name string) (QueryType, error) {
	switch strings.ToLower(name) {
	case "querybyexample":
		return QueryByExample, nil
	case "querybyframe":
		return QueryByFrame, nil
	case "presentationexchange":
		return PresentationExchange, nil
	case "didauth":
		return DIDAuth, nil
	default:
		return 0, fmt.Errorf("unsupported query type, supported types - (%s, %s, %s)",
			QueryByExample.Name(), QueryByFrame.Name(), PresentationExchange.Name())
	}
}
type Query struct {
	publicKeyFetcher verifiable.PublicKeyFetcher
	documentLoader   ld.DocumentLoader
	params           []*QueryParams
}