Update contract helpers

This commit is contained in:
Serkan Reis 2023-07-13 12:56:46 +03:00
parent 829ecee0bd
commit 64f5cf60c5

View File

@ -87,7 +87,7 @@ export interface SG721Instance {
batchBurn: (tokenIds: string) => Promise<string> batchBurn: (tokenIds: string) => Promise<string>
batchTransfer: (recipient: string, tokenIds: string) => Promise<string> batchTransfer: (recipient: string, tokenIds: string) => Promise<string>
updateTokenMetadata: (tokenId: string, tokenURI: string) => Promise<string> updateTokenMetadata: (tokenId: string, tokenURI: string) => Promise<string>
batchUpdateTokenMetadata: (tokenIds: string, tokenURI: string) => Promise<string> batchUpdateTokenMetadata: (tokenIds: string, tokenURI: string, jsonExtensions: boolean) => Promise<string>
freezeTokenMetadata: () => Promise<string> freezeTokenMetadata: () => Promise<string>
enableUpdatable: () => Promise<string> enableUpdatable: () => Promise<string>
} }
@ -106,7 +106,11 @@ export interface Sg721Messages {
updateCollectionInfo: (collectionInfo: CollectionInfo) => UpdateCollectionInfoMessage updateCollectionInfo: (collectionInfo: CollectionInfo) => UpdateCollectionInfoMessage
freezeCollectionInfo: () => FreezeCollectionInfoMessage freezeCollectionInfo: () => FreezeCollectionInfoMessage
updateTokenMetadata: (tokenId: string, tokenURI: string) => UpdateTokenMetadataMessage updateTokenMetadata: (tokenId: string, tokenURI: string) => UpdateTokenMetadataMessage
batchUpdateTokenMetadata: (tokenIds: string, tokenURI: string) => BatchUpdateTokenMetadataMessage batchUpdateTokenMetadata: (
tokenIds: string,
tokenURI: string,
jsonExtensions: boolean,
) => BatchUpdateTokenMetadataMessage
freezeTokenMetadata: () => FreezeTokenMetadataMessage freezeTokenMetadata: () => FreezeTokenMetadataMessage
enableUpdatable: () => EnableUpdatableMessage enableUpdatable: () => EnableUpdatableMessage
} }
@ -611,13 +615,20 @@ export const SG721 = (client: SigningCosmWasmClient, txSigner: string): SG721Con
return res.transactionHash return res.transactionHash
} }
const batchUpdateTokenMetadata = async (tokenIds: string, baseURI: string): Promise<string> => { const batchUpdateTokenMetadata = async (
tokenIds: string,
baseURI: string,
jsonExtensions: boolean,
): Promise<string> => {
const executeContractMsgs: MsgExecuteContractEncodeObject[] = [] const executeContractMsgs: MsgExecuteContractEncodeObject[] = []
if (tokenIds.includes(':')) { if (tokenIds.includes(':')) {
const [start, end] = tokenIds.split(':').map(Number) const [start, end] = tokenIds.split(':').map(Number)
for (let i = start; i <= end; i++) { for (let i = start; i <= end; i++) {
const msg = { const msg = {
update_token_metadata: { token_id: i.toString(), token_uri: `${baseURI}/${i}` }, update_token_metadata: {
token_id: i.toString(),
token_uri: `${baseURI}/${i}${jsonExtensions ? '.json' : ''}`,
},
} }
const executeContractMsg: MsgExecuteContractEncodeObject = { const executeContractMsg: MsgExecuteContractEncodeObject = {
typeUrl: '/cosmwasm.wasm.v1.MsgExecuteContract', typeUrl: '/cosmwasm.wasm.v1.MsgExecuteContract',
@ -634,7 +645,10 @@ export const SG721 = (client: SigningCosmWasmClient, txSigner: string): SG721Con
const tokenNumbers = tokenIds.split(',').map(Number) const tokenNumbers = tokenIds.split(',').map(Number)
for (let i = 0; i < tokenNumbers.length; i++) { for (let i = 0; i < tokenNumbers.length; i++) {
const msg = { const msg = {
update_token_metadata: { token_id: tokenNumbers[i].toString(), token_uri: `${baseURI}/${tokenNumbers[i]}` }, update_token_metadata: {
token_id: tokenNumbers[i].toString(),
token_uri: `${baseURI}/${tokenNumbers[i]}${jsonExtensions ? '.json' : ''}`,
},
} }
const executeContractMsg: MsgExecuteContractEncodeObject = { const executeContractMsg: MsgExecuteContractEncodeObject = {
typeUrl: '/cosmwasm.wasm.v1.MsgExecuteContract', typeUrl: '/cosmwasm.wasm.v1.MsgExecuteContract',
@ -936,20 +950,30 @@ export const SG721 = (client: SigningCosmWasmClient, txSigner: string): SG721Con
} }
} }
const batchUpdateTokenMetadata = (tokenIds: string, baseURI: string): BatchUpdateTokenMetadataMessage => { const batchUpdateTokenMetadata = (
tokenIds: string,
baseURI: string,
jsonExtensions: boolean,
): BatchUpdateTokenMetadataMessage => {
const msg: Record<string, unknown>[] = [] const msg: Record<string, unknown>[] = []
if (tokenIds.includes(':')) { if (tokenIds.includes(':')) {
const [start, end] = tokenIds.split(':').map(Number) const [start, end] = tokenIds.split(':').map(Number)
for (let i = start; i <= end; i++) { for (let i = start; i <= end; i++) {
msg.push({ msg.push({
update_token_metadata: { token_id: i.toString(), token_uri: `${baseURI}/${i}` }, update_token_metadata: {
token_id: i.toString(),
token_uri: `${baseURI}/${i}${jsonExtensions ? '.json' : ''}`,
},
}) })
} }
} else { } else {
const tokenNumbers = tokenIds.split(',').map(Number) const tokenNumbers = tokenIds.split(',').map(Number)
for (let i = 0; i < tokenNumbers.length; i++) { for (let i = 0; i < tokenNumbers.length; i++) {
msg.push({ msg.push({
update_token_metadata: { token_id: tokenNumbers[i].toString(), token_uri: `${baseURI}/${tokenNumbers[i]}` }, update_token_metadata: {
token_id: tokenNumbers[i].toString(),
token_uri: `${baseURI}/${tokenNumbers[i]}${jsonExtensions ? '.json' : ''}`,
},
}) })
} }
} }