Add Infinity Swap related queries to Collection Actions > Queries

This commit is contained in:
Serkan Reis 2023-10-10 14:19:52 +03:00
parent 0365aa5a7b
commit b2e61d5529
3 changed files with 49 additions and 2 deletions

View File

@ -7,6 +7,7 @@ import { useInputState } from 'components/forms/FormInput.hooks'
import { JsonPreview } from 'components/JsonPreview' import { JsonPreview } from 'components/JsonPreview'
import type { BaseMinterInstance } from 'contracts/baseMinter' import type { BaseMinterInstance } from 'contracts/baseMinter'
import type { OpenEditionMinterInstance } from 'contracts/openEditionMinter' import type { OpenEditionMinterInstance } from 'contracts/openEditionMinter'
import type { RoyaltyRegistryInstance } from 'contracts/royaltyRegistry'
import type { SG721Instance } from 'contracts/sg721' import type { SG721Instance } from 'contracts/sg721'
import type { VendingMinterInstance } from 'contracts/vendingMinter' import type { VendingMinterInstance } from 'contracts/vendingMinter'
import { toast } from 'react-hot-toast' import { toast } from 'react-hot-toast'
@ -19,10 +20,12 @@ import type { MinterType } from '../actions/Combobox'
interface CollectionQueriesProps { interface CollectionQueriesProps {
minterContractAddress: string minterContractAddress: string
sg721ContractAddress: string sg721ContractAddress: string
royaltyRegistryContractAddress: string
sg721Messages: SG721Instance | undefined sg721Messages: SG721Instance | undefined
vendingMinterMessages: VendingMinterInstance | undefined vendingMinterMessages: VendingMinterInstance | undefined
baseMinterMessages: BaseMinterInstance | undefined baseMinterMessages: BaseMinterInstance | undefined
openEditionMinterMessages: OpenEditionMinterInstance | undefined openEditionMinterMessages: OpenEditionMinterInstance | undefined
royaltyRegistryMessages: RoyaltyRegistryInstance | undefined
minterType: MinterType minterType: MinterType
} }
export const CollectionQueries = ({ export const CollectionQueries = ({
@ -33,6 +36,7 @@ export const CollectionQueries = ({
openEditionMinterMessages, openEditionMinterMessages,
baseMinterMessages, baseMinterMessages,
minterType, minterType,
royaltyRegistryMessages,
}: CollectionQueriesProps) => { }: CollectionQueriesProps) => {
const wallet = useWallet() const wallet = useWallet()
@ -65,9 +69,11 @@ export const CollectionQueries = ({
baseMinterMessages, baseMinterMessages,
vendingMinterMessages, vendingMinterMessages,
openEditionMinterMessages, openEditionMinterMessages,
royaltyRegistryMessages,
type, type,
tokenId, tokenId,
address, address,
sg721ContractAddress,
] as const, ] as const,
async ({ queryKey }) => { async ({ queryKey }) => {
const [ const [
@ -75,9 +81,11 @@ export const CollectionQueries = ({
_baseMinterMessages_, _baseMinterMessages_,
_vendingMinterMessages, _vendingMinterMessages,
_openEditionMinterMessages, _openEditionMinterMessages,
_royaltyRegistryMessages,
_type, _type,
_tokenId, _tokenId,
_address, _address,
_sg721ContractAddress,
] = queryKey ] = queryKey
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
const res = await resolveAddress(_address, wallet).then(async (resolvedAddress) => { const res = await resolveAddress(_address, wallet).then(async (resolvedAddress) => {
@ -88,8 +96,10 @@ export const CollectionQueries = ({
baseMinterMessages: _baseMinterMessages_, baseMinterMessages: _baseMinterMessages_,
openEditionMinterMessages: _openEditionMinterMessages, openEditionMinterMessages: _openEditionMinterMessages,
sg721Messages: _sg721Messages, sg721Messages: _sg721Messages,
royaltyRegistryMessages: _royaltyRegistryMessages,
address: resolvedAddress, address: resolvedAddress,
type: _type, type: _type,
sg721ContractAddress: _sg721ContractAddress,
}) })
return result return result
}) })
@ -102,7 +112,9 @@ export const CollectionQueries = ({
toast.error(error.message, { style: { maxWidth: 'none' } }) toast.error(error.message, { style: { maxWidth: 'none' } })
} }
}, },
enabled: Boolean(sg721ContractAddress && minterContractAddress && type), enabled:
Boolean(type && type === 'infinity_swap_royalties' && sg721ContractAddress) ||
Boolean(sg721ContractAddress && minterContractAddress && type),
retry: false, retry: false,
}, },
) )

View File

@ -1,7 +1,9 @@
import type { BaseMinterInstance } from 'contracts/baseMinter' import type { BaseMinterInstance } from 'contracts/baseMinter'
import type { OpenEditionMinterInstance } from 'contracts/openEditionMinter/contract' import type { OpenEditionMinterInstance } from 'contracts/openEditionMinter/contract'
import type { RoyaltyRegistryInstance } from 'contracts/royaltyRegistry'
import type { SG721Instance } from 'contracts/sg721' import type { SG721Instance } from 'contracts/sg721'
import type { VendingMinterInstance } from 'contracts/vendingMinter' import type { VendingMinterInstance } from 'contracts/vendingMinter'
import { INFINITY_SWAP_PROTOCOL_ADDRESS } from 'utils/constants'
export type QueryType = typeof QUERY_TYPES[number] export type QueryType = typeof QUERY_TYPES[number]
@ -13,6 +15,7 @@ export const QUERY_TYPES = [
'total_mint_count', 'total_mint_count',
'tokens', 'tokens',
// 'token_owners', // 'token_owners',
'infinity_swap_royalties',
'token_info', 'token_info',
'config', 'config',
'status', 'status',
@ -35,6 +38,11 @@ export const VENDING_QUERY_LIST: QueryListItem[] = [
name: 'Mint Price', name: 'Mint Price',
description: `Get the price of minting a token.`, description: `Get the price of minting a token.`,
}, },
{
id: 'infinity_swap_royalties',
name: 'Infinity Swap Royalty Details',
description: `Get the collection's royalty details for Infinity Swap`,
},
{ {
id: 'num_tokens', id: 'num_tokens',
name: 'Mintable Number of Tokens', name: 'Mintable Number of Tokens',
@ -77,6 +85,11 @@ export const BASE_QUERY_LIST: QueryListItem[] = [
name: 'Tokens Minted to User', name: 'Tokens Minted to User',
description: `Get the number of tokens minted in the collection to a user.`, description: `Get the number of tokens minted in the collection to a user.`,
}, },
{
id: 'infinity_swap_royalties',
name: 'Infinity Swap Royalty Details',
description: `Get the collection's royalty details for Infinity Swap`,
},
{ {
id: 'token_info', id: 'token_info',
name: 'Token Info', name: 'Token Info',
@ -104,6 +117,11 @@ export const OPEN_EDITION_QUERY_LIST: QueryListItem[] = [
name: 'Mint Price', name: 'Mint Price',
description: `Get the price of minting a token.`, description: `Get the price of minting a token.`,
}, },
{
id: 'infinity_swap_royalties',
name: 'Infinity Swap Royalty Details',
description: `Get the collection's royalty details for Infinity Swap`,
},
{ {
id: 'tokens_minted_to_user', id: 'tokens_minted_to_user',
name: 'Tokens Minted to User', name: 'Tokens Minted to User',
@ -148,6 +166,8 @@ export type DispatchQueryArgs = {
vendingMinterMessages?: VendingMinterInstance vendingMinterMessages?: VendingMinterInstance
openEditionMinterMessages?: OpenEditionMinterInstance openEditionMinterMessages?: OpenEditionMinterInstance
sg721Messages?: SG721Instance sg721Messages?: SG721Instance
royaltyRegistryMessages?: RoyaltyRegistryInstance
sg721ContractAddress?: string
} & ( } & (
| { type: undefined } | { type: undefined }
| { type: Select<'collection_info'> } | { type: Select<'collection_info'> }
@ -156,6 +176,7 @@ export type DispatchQueryArgs = {
| { type: Select<'tokens_minted_to_user'>; address: string } | { type: Select<'tokens_minted_to_user'>; address: string }
| { type: Select<'total_mint_count'> } | { type: Select<'total_mint_count'> }
| { type: Select<'tokens'>; address: string } | { type: Select<'tokens'>; address: string }
| { type: Select<'infinity_swap_royalties'> }
// | { type: Select<'token_owners'> } // | { type: Select<'token_owners'> }
| { type: Select<'token_info'>; tokenId: string } | { type: Select<'token_info'>; tokenId: string }
| { type: Select<'config'> } | { type: Select<'config'> }
@ -163,7 +184,13 @@ export type DispatchQueryArgs = {
) )
export const dispatchQuery = async (args: DispatchQueryArgs) => { export const dispatchQuery = async (args: DispatchQueryArgs) => {
const { baseMinterMessages, vendingMinterMessages, openEditionMinterMessages, sg721Messages } = args const {
baseMinterMessages,
vendingMinterMessages,
openEditionMinterMessages,
sg721Messages,
royaltyRegistryMessages,
} = args
if (!baseMinterMessages || !vendingMinterMessages || !openEditionMinterMessages || !sg721Messages) { if (!baseMinterMessages || !vendingMinterMessages || !openEditionMinterMessages || !sg721Messages) {
throw new Error('Cannot execute actions') throw new Error('Cannot execute actions')
} }
@ -189,6 +216,12 @@ export const dispatchQuery = async (args: DispatchQueryArgs) => {
// case 'token_owners': { // case 'token_owners': {
// return vendingMinterMessages.updateStartTime(txSigner, args.startTime) // return vendingMinterMessages.updateStartTime(txSigner, args.startTime)
// } // }
case 'infinity_swap_royalties': {
return royaltyRegistryMessages?.collectionRoyaltyProtocol(
args.sg721ContractAddress as string,
INFINITY_SWAP_PROTOCOL_ADDRESS,
)
}
case 'token_info': { case 'token_info': {
if (!args.tokenId) return if (!args.tokenId) return
return sg721Messages.allNftInfo(args.tokenId) return sg721Messages.allNftInfo(args.tokenId)

View File

@ -246,6 +246,8 @@ const CollectionActionsPage: NextPage = () => {
minterContractAddress={minterContractState.value} minterContractAddress={minterContractState.value}
minterType={minterType} minterType={minterType}
openEditionMinterMessages={openEditionMinterMessages} openEditionMinterMessages={openEditionMinterMessages}
royaltyRegistryContractAddress={ROYALTY_REGISTRY_ADDRESS}
royaltyRegistryMessages={royaltyRegistryMessages}
sg721ContractAddress={sg721ContractState.value} sg721ContractAddress={sg721ContractState.value}
sg721Messages={sg721Messages} sg721Messages={sg721Messages}
vendingMinterMessages={vendingMinterMessages} vendingMinterMessages={vendingMinterMessages}