diff --git a/src/jobs/compute-traits.ts b/src/jobs/compute-traits.ts index 302a04e35..5d96f58d4 100644 --- a/src/jobs/compute-traits.ts +++ b/src/jobs/compute-traits.ts @@ -4,7 +4,7 @@ import { redisConfig } from './common' export type JobData = { collectionId: string } export const traitsQueue = new Queue('traitsQueue', { - defaultJobOptions: { delay: 60_000, attempts: 2, removeOnComplete: true }, + defaultJobOptions: { delay: 120_000, attempts: 2, removeOnComplete: true }, redis: redisConfig, settings: { maxStalledCount: 3, diff --git a/src/mappings/claims/events/claimRequested.ts b/src/mappings/claims/events/claimRequested.ts index c14590123..d2c6b2709 100644 --- a/src/mappings/claims/events/claimRequested.ts +++ b/src/mappings/claims/events/claimRequested.ts @@ -34,7 +34,7 @@ export async function claimRequested(ctx: CommonContext, block: BlockHeader, ite createdAt: new Date(block.timestamp ?? 0), }) - await Promise.all([ctx.store.insert(claim)]) + await Promise.all([ctx.store.save(claim)]) if (item.extrinsic) { await Sns.getInstance().send({ diff --git a/src/server-extension/resolvers/delete_token_traits.ts b/src/server-extension/resolvers/delete_token_traits.ts new file mode 100644 index 000000000..d90bffa16 --- /dev/null +++ b/src/server-extension/resolvers/delete_token_traits.ts @@ -0,0 +1,35 @@ +/* eslint-disable max-classes-per-file */ +import { Query, Resolver, Arg } from 'type-graphql' +import 'reflect-metadata' +import { EntityManager } from 'typeorm' + +@Resolver() +export class DeleteTokenTraitsResolver { + constructor(private tx: () => Promise) {} + + @Query(() => Boolean) + async deleteTokenTraits( + @Arg('tokenId', { + description: 'token id e.g. 2100-17', + }) + tokenId: string + ): Promise { + const manager = await this.tx() + + await manager.query( + ` + DELETE FROM trait_token WHERE token_id = $1 + `, + [tokenId] + ) + + await manager.query( + ` + DELETE FROM token_rarity WHERE token_id = $1 + `, + [tokenId] + ) + + return true + } +} diff --git a/src/server-extension/resolvers/index.ts b/src/server-extension/resolvers/index.ts index 0e8bd80cc..4b54630dc 100644 --- a/src/server-extension/resolvers/index.ts +++ b/src/server-extension/resolvers/index.ts @@ -10,6 +10,7 @@ import { RefreshCollectionsResolver } from './refresh_collections' import { FuelTanksAccountsResolver } from './fueltanks-accounts' import { ClaimableCollectionIdsResolver } from './claimable_colllection_ids' import { SyncCollectionsResolver } from './sync_collections' +import { DeleteTokenTraitsResolver } from './delete_token_traits' export { TokenSalesHistoryResolver, @@ -24,4 +25,5 @@ export { MyTokensResolver, ClaimsAccountNonceResolver, SyncCollectionsResolver, + DeleteTokenTraitsResolver, }