Connect helper functions to update metadata related actions

This commit is contained in:
Serkan Reis 2023-02-26 10:24:46 +03:00
parent 4e646b9cf4
commit 16c859bbd8
2 changed files with 35 additions and 17 deletions

View File

@ -32,7 +32,7 @@ export const ACTION_TYPES = [
'burn_remaining',
'update_token_metadata',
'batch_update_token_metadata',
'freeze_metadata',
'freeze_token_metadata',
] as const
export interface ActionListItem {
@ -199,9 +199,9 @@ export const SG721_UPDATABLE_ACTION_LIST: ActionListItem[] = [
description: `Update the metadata URI for a range of tokens`,
},
{
id: 'freeze_metadata',
name: 'Freeze Metadata',
description: `Render the metadata for the collection no longer updatable`,
id: 'freeze_token_metadata',
name: 'Freeze Token Metadata',
description: `Render the metadata for tokens no longer updatable`,
},
]
@ -243,9 +243,9 @@ export type DispatchExecuteArgs = {
| { type: Select<'burn_remaining'> }
| { type: Select<'update_collection_info'>; collectionInfo: CollectionInfo | undefined }
| { type: Select<'freeze_collection_info'> }
| { type: Select<'update_token_metadata'> }
| { type: Select<'batch_update_token_metadata'> }
| { type: Select<'freeze_metadata'> }
| { type: Select<'update_token_metadata'>; tokenId: number; tokenUri: string }
| { type: Select<'batch_update_token_metadata'>; tokenIds: string; baseUri: string }
| { type: Select<'freeze_token_metadata'> }
)
export const dispatchExecute = async (args: DispatchExecuteArgs) => {
@ -293,6 +293,15 @@ export const dispatchExecute = async (args: DispatchExecuteArgs) => {
case 'freeze_collection_info': {
return sg721Messages.freezeCollectionInfo()
}
case 'update_token_metadata': {
return sg721Messages.updateTokenMetadata(args.tokenId.toString(), args.tokenUri)
}
case 'batch_update_token_metadata': {
return sg721Messages.batchUpdateTokenMetadata(args.tokenIds, args.baseUri)
}
case 'freeze_token_metadata': {
return sg721Messages.freezeTokenMetadata()
}
case 'shuffle': {
return vendingMinterMessages.shuffle(txSigner)
}
@ -371,6 +380,15 @@ export const previewExecutePayload = (args: DispatchExecuteArgs) => {
case 'freeze_collection_info': {
return sg721Messages(sg721Contract)?.freezeCollectionInfo()
}
case 'update_token_metadata': {
return sg721Messages(sg721Contract)?.updateTokenMetadata(args.tokenId.toString(), args.tokenUri)
}
case 'batch_update_token_metadata': {
return sg721Messages(sg721Contract)?.batchUpdateTokenMetadata(args.tokenIds, args.baseUri)
}
case 'freeze_token_metadata': {
return sg721Messages(sg721Contract)?.freezeTokenMetadata()
}
case 'shuffle': {
return vendingMinterMessages(minterContract)?.shuffle()
}

View File

@ -88,7 +88,7 @@ export interface SG721Instance {
batchTransfer: (recipient: string, tokenIds: string) => Promise<string>
updateTokenMetadata: (tokenId: string, tokenURI: string) => Promise<string>
batchUpdateTokenMetadata: (tokenIds: string, tokenURI: string) => Promise<string>
freezeMetadata: () => Promise<string>
freezeTokenMetadata: () => Promise<string>
}
export interface Sg721Messages {
@ -106,7 +106,7 @@ export interface Sg721Messages {
freezeCollectionInfo: () => FreezeCollectionInfoMessage
updateTokenMetadata: (tokenId: string, tokenURI: string) => UpdateTokenMetadataMessage
batchUpdateTokenMetadata: (tokenIds: string, tokenURI: string) => BatchUpdateTokenMetadataMessage
freezeMetadata: () => FreezeMetadataMessage
freezeTokenMetadata: () => FreezeTokenMetadataMessage
}
export interface TransferNFTMessage {
@ -240,10 +240,10 @@ export interface BatchUpdateTokenMetadataMessage {
funds: Coin[]
}
export interface FreezeMetadataMessage {
export interface FreezeTokenMetadataMessage {
sender: string
contract: string
msg: { freeze_metadata: Record<string, never> }
msg: { freeze_token_metadata: Record<string, never> }
funds: Coin[]
}
@ -674,12 +674,12 @@ export const SG721 = (client: SigningCosmWasmClient, txSigner: string): SG721Con
return res.transactionHash
}
const freezeMetadata = async (): Promise<string> => {
const freezeTokenMetadata = async (): Promise<string> => {
const res = await client.execute(
txSigner,
contractAddress,
{
freeze_metadata: {},
freeze_token_metadata: {},
},
'auto',
'',
@ -715,7 +715,7 @@ export const SG721 = (client: SigningCosmWasmClient, txSigner: string): SG721Con
freezeCollectionInfo,
updateTokenMetadata,
batchUpdateTokenMetadata,
freezeMetadata,
freezeTokenMetadata,
}
}
@ -952,12 +952,12 @@ export const SG721 = (client: SigningCosmWasmClient, txSigner: string): SG721Con
}
}
const freezeMetadata = () => {
const freezeTokenMetadata = () => {
return {
sender: txSigner,
contract: contractAddress,
msg: {
freeze_metadata: {},
freeze_token_metadata: {},
},
funds: [],
}
@ -1000,7 +1000,7 @@ export const SG721 = (client: SigningCosmWasmClient, txSigner: string): SG721Con
freezeCollectionInfo,
updateTokenMetadata,
batchUpdateTokenMetadata,
freezeMetadata,
freezeTokenMetadata,
}
}