Skip to content

Commit

Permalink
Merge pull request #137 from kodadot/main
Browse files Browse the repository at this point in the history
🔖 Stick v6.0.3
  • Loading branch information
vikiival authored Oct 30, 2023
2 parents a99d2c1 + ff3cf54 commit 9855f0e
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 11 deletions.
4 changes: 3 additions & 1 deletion src/mappings/nfts/setMetadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ export async function handleMetadataSet(context: Context): Promise<void> {

if (final.metadata) {
const metadata = await handleMetadata(final.metadata, context.store)
const previousNftMedia = final?.image || final?.media
const newNftMedia = metadata?.image || metadata?.animationUrl
final.meta = metadata
final.name = metadata?.name
final.image = metadata?.image
Expand All @@ -51,7 +53,7 @@ export async function handleMetadataSet(context: Context): Promise<void> {
warn(OPERATION, `collection ${event.collectionId} not found`)
return
}
if (final instanceof NFTEntity) {
if (final instanceof NFTEntity && newNftMedia !== previousNftMedia) {
await setMetadataHandler(context, collection, final)
}
}
Expand Down
16 changes: 6 additions & 10 deletions src/mappings/shared/token/setMetadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,18 @@ export async function setMetadataHandler(context: Context, collection: CE, nft:
if (!nftMedia) {
return
}
const tokenAPI = new TokenAPI(context.store)

let nftWithToken, existingToken
try {
[nftWithToken, existingToken] = await Promise.all([
getWith(context.store, NE, nft.id, { token: true }),
getOptional<TE>(context.store, TE, generateTokenId(collection.id, nftMedia)),
])
const nftWithToken = await getWith(context.store, NE, nft.id, { token: true })
if (nftWithToken?.token) {
await tokenAPI.removeNftFromToken(nft, nftWithToken.token)
}
} catch (error) {
warn(OPERATION, `ERROR ${error}`)
return
}

const tokenAPI = new TokenAPI(context.store)

if (nftWithToken.token) {
await tokenAPI.removeNftFromToken(nft, nftWithToken.token)
}
const existingToken = await getOptional<TE>(context.store, TE, generateTokenId(collection.id, nftMedia))
return await (existingToken ? tokenAPI.addNftToToken(nft, existingToken) : tokenAPI.create(collection, nft))
}

0 comments on commit 9855f0e

Please sign in to comment.