import type { RoyaltyRegistryInstance } from '../contract' export type QueryType = typeof QUERY_TYPES[number] export const QUERY_TYPES = [ 'config', 'collection_royalty_default', 'collection_royalty_protocol', 'royalty_payment', ] as const export interface QueryListItem { id: QueryType name: string description?: string } export const QUERY_LIST: QueryListItem[] = [ { id: 'config', name: 'Query Config', description: 'View the contract config' }, { id: 'collection_royalty_default', name: 'Query Collection Royalty Details', description: 'View the collection royalty details', }, { id: 'collection_royalty_protocol', name: 'Query Collection Royalty Protocol', description: 'View the collection royalty protocol', }, { id: 'royalty_payment', name: 'Query Royalty Payment', description: 'View the royalty payment', }, ] /* //Query config: () => Promise collectionRoyaltyDefault: (collection: string) => Promise collectionRoyaltyProtocol: (collection: string, protocol: string) => Promise // RoyaltyProtocolByCollection: (collection: string, queryOptions: QqueryOptions) => Promise royaltyPayment: (collection: string, protocol?: string) => Promise */ export interface DispatchQueryProps { messages: RoyaltyRegistryInstance | undefined type: QueryType collection: string protocol: string } export const dispatchQuery = (props: DispatchQueryProps) => { const { messages, type, collection, protocol } = props switch (type) { case 'config': return messages?.config() case 'collection_royalty_default': return messages?.collectionRoyaltyDefault(collection) case 'collection_royalty_protocol': return messages?.collectionRoyaltyProtocol(collection, protocol) default: { throw new Error('unknown query type') } } }