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 { 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,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
@ -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)
|
||||||
|
@ -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}
|
||||||
|
Loading…
Reference in New Issue
Block a user