Add Infinity Swap related queries to Collection Actions > Queries
This commit is contained in:
parent
0365aa5a7b
commit
b2e61d5529
@ -7,6 +7,7 @@ import { useInputState } from 'components/forms/FormInput.hooks'
|
||||
import { JsonPreview } from 'components/JsonPreview'
|
||||
import type { BaseMinterInstance } from 'contracts/baseMinter'
|
||||
import type { OpenEditionMinterInstance } from 'contracts/openEditionMinter'
|
||||
import type { RoyaltyRegistryInstance } from 'contracts/royaltyRegistry'
|
||||
import type { SG721Instance } from 'contracts/sg721'
|
||||
import type { VendingMinterInstance } from 'contracts/vendingMinter'
|
||||
import { toast } from 'react-hot-toast'
|
||||
@ -19,10 +20,12 @@ import type { MinterType } from '../actions/Combobox'
|
||||
interface CollectionQueriesProps {
|
||||
minterContractAddress: string
|
||||
sg721ContractAddress: string
|
||||
royaltyRegistryContractAddress: string
|
||||
sg721Messages: SG721Instance | undefined
|
||||
vendingMinterMessages: VendingMinterInstance | undefined
|
||||
baseMinterMessages: BaseMinterInstance | undefined
|
||||
openEditionMinterMessages: OpenEditionMinterInstance | undefined
|
||||
royaltyRegistryMessages: RoyaltyRegistryInstance | undefined
|
||||
minterType: MinterType
|
||||
}
|
||||
export const CollectionQueries = ({
|
||||
@ -33,6 +36,7 @@ export const CollectionQueries = ({
|
||||
openEditionMinterMessages,
|
||||
baseMinterMessages,
|
||||
minterType,
|
||||
royaltyRegistryMessages,
|
||||
}: CollectionQueriesProps) => {
|
||||
const wallet = useWallet()
|
||||
|
||||
@ -65,9 +69,11 @@ export const CollectionQueries = ({
|
||||
baseMinterMessages,
|
||||
vendingMinterMessages,
|
||||
openEditionMinterMessages,
|
||||
royaltyRegistryMessages,
|
||||
type,
|
||||
tokenId,
|
||||
address,
|
||||
sg721ContractAddress,
|
||||
] as const,
|
||||
async ({ queryKey }) => {
|
||||
const [
|
||||
@ -75,9 +81,11 @@ export const CollectionQueries = ({
|
||||
_baseMinterMessages_,
|
||||
_vendingMinterMessages,
|
||||
_openEditionMinterMessages,
|
||||
_royaltyRegistryMessages,
|
||||
_type,
|
||||
_tokenId,
|
||||
_address,
|
||||
_sg721ContractAddress,
|
||||
] = queryKey
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
const res = await resolveAddress(_address, wallet).then(async (resolvedAddress) => {
|
||||
@ -88,8 +96,10 @@ export const CollectionQueries = ({
|
||||
baseMinterMessages: _baseMinterMessages_,
|
||||
openEditionMinterMessages: _openEditionMinterMessages,
|
||||
sg721Messages: _sg721Messages,
|
||||
royaltyRegistryMessages: _royaltyRegistryMessages,
|
||||
address: resolvedAddress,
|
||||
type: _type,
|
||||
sg721ContractAddress: _sg721ContractAddress,
|
||||
})
|
||||
return result
|
||||
})
|
||||
@ -102,7 +112,9 @@ export const CollectionQueries = ({
|
||||
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,
|
||||
},
|
||||
)
|
||||
|
@ -1,7 +1,9 @@
|
||||
import type { BaseMinterInstance } from 'contracts/baseMinter'
|
||||
import type { OpenEditionMinterInstance } from 'contracts/openEditionMinter/contract'
|
||||
import type { RoyaltyRegistryInstance } from 'contracts/royaltyRegistry'
|
||||
import type { SG721Instance } from 'contracts/sg721'
|
||||
import type { VendingMinterInstance } from 'contracts/vendingMinter'
|
||||
import { INFINITY_SWAP_PROTOCOL_ADDRESS } from 'utils/constants'
|
||||
|
||||
export type QueryType = typeof QUERY_TYPES[number]
|
||||
|
||||
@ -13,6 +15,7 @@ export const QUERY_TYPES = [
|
||||
'total_mint_count',
|
||||
'tokens',
|
||||
// 'token_owners',
|
||||
'infinity_swap_royalties',
|
||||
'token_info',
|
||||
'config',
|
||||
'status',
|
||||
@ -35,6 +38,11 @@ export const VENDING_QUERY_LIST: QueryListItem[] = [
|
||||
name: 'Mint Price',
|
||||
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',
|
||||
name: 'Mintable Number of Tokens',
|
||||
@ -77,6 +85,11 @@ export const BASE_QUERY_LIST: QueryListItem[] = [
|
||||
name: 'Tokens Minted to 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',
|
||||
name: 'Token Info',
|
||||
@ -104,6 +117,11 @@ export const OPEN_EDITION_QUERY_LIST: QueryListItem[] = [
|
||||
name: 'Mint Price',
|
||||
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',
|
||||
name: 'Tokens Minted to User',
|
||||
@ -148,6 +166,8 @@ export type DispatchQueryArgs = {
|
||||
vendingMinterMessages?: VendingMinterInstance
|
||||
openEditionMinterMessages?: OpenEditionMinterInstance
|
||||
sg721Messages?: SG721Instance
|
||||
royaltyRegistryMessages?: RoyaltyRegistryInstance
|
||||
sg721ContractAddress?: string
|
||||
} & (
|
||||
| { type: undefined }
|
||||
| { type: Select<'collection_info'> }
|
||||
@ -156,6 +176,7 @@ export type DispatchQueryArgs = {
|
||||
| { type: Select<'tokens_minted_to_user'>; address: string }
|
||||
| { type: Select<'total_mint_count'> }
|
||||
| { type: Select<'tokens'>; address: string }
|
||||
| { type: Select<'infinity_swap_royalties'> }
|
||||
// | { type: Select<'token_owners'> }
|
||||
| { type: Select<'token_info'>; tokenId: string }
|
||||
| { type: Select<'config'> }
|
||||
@ -163,7 +184,13 @@ export type 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) {
|
||||
throw new Error('Cannot execute actions')
|
||||
}
|
||||
@ -189,6 +216,12 @@ export const dispatchQuery = async (args: DispatchQueryArgs) => {
|
||||
// case 'token_owners': {
|
||||
// return vendingMinterMessages.updateStartTime(txSigner, args.startTime)
|
||||
// }
|
||||
case 'infinity_swap_royalties': {
|
||||
return royaltyRegistryMessages?.collectionRoyaltyProtocol(
|
||||
args.sg721ContractAddress as string,
|
||||
INFINITY_SWAP_PROTOCOL_ADDRESS,
|
||||
)
|
||||
}
|
||||
case 'token_info': {
|
||||
if (!args.tokenId) return
|
||||
return sg721Messages.allNftInfo(args.tokenId)
|
||||
|
@ -246,6 +246,8 @@ const CollectionActionsPage: NextPage = () => {
|
||||
minterContractAddress={minterContractState.value}
|
||||
minterType={minterType}
|
||||
openEditionMinterMessages={openEditionMinterMessages}
|
||||
royaltyRegistryContractAddress={ROYALTY_REGISTRY_ADDRESS}
|
||||
royaltyRegistryMessages={royaltyRegistryMessages}
|
||||
sg721ContractAddress={sg721ContractState.value}
|
||||
sg721Messages={sg721Messages}
|
||||
vendingMinterMessages={vendingMinterMessages}
|
||||
|
Loading…
Reference in New Issue
Block a user