From 63e6a436c0f706d2bf601781ee0d74864a91ccc7 Mon Sep 17 00:00:00 2001 From: Nikhil Saboo <36529278+saboonikhil@users.noreply.github.com> Date: Fri, 11 Nov 2022 08:25:06 +0530 Subject: [PATCH] Reconcile destroyed markets on testnet (#217) * Add handler marketDestroyed * Connect handler to processor * Add marketIds to hook destroyMarkets * Connect handler only to bsr network * Resolve db txn conflicts --- src/mappings/postHooks/marketDestroyed.ts | 32 +++++++++++++++++++++++ src/processor.ts | 5 +++- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 src/mappings/postHooks/marketDestroyed.ts diff --git a/src/mappings/postHooks/marketDestroyed.ts b/src/mappings/postHooks/marketDestroyed.ts new file mode 100644 index 00000000..97698f39 --- /dev/null +++ b/src/mappings/postHooks/marketDestroyed.ts @@ -0,0 +1,32 @@ +import { BlockHandlerContext } from '@subsquid/substrate-processor'; +import { Store } from '@subsquid/typeorm-store'; +import { HistoricalMarket, Market } from '../../model'; + +export async function destroyMarkets(ctx: BlockHandlerContext) { + const mIds = [ + 8, 9, 10, 11, 12, 16, 17, 19, 20, 26, 27, 28, 37, 38, 39, 42, 43, 45, 50, 51, 52, 53, 57, + 58, 66, 67, 92, 105, 112, 124, 126, 134, 135, 137, 151, 152, 158, 159, 161, 162, 165, 182, + 191, 202, 232, 239, 252, 253, 257, 258, 265, 266, 283, 284, 312, 328, 333, 334, 335, 344, + ]; + + await Promise.all( + mIds.map(async (mId) => { + let market = await ctx.store.get(Market, { where: { marketId: mId } }); + if (!market) return; + + market.status = 'Destroyed'; + console.log(`[postHooks.destroyMarkets] Saving market: ${JSON.stringify(market, null, 2)}`); + await ctx.store.save(market); + + let hm = new HistoricalMarket(); + hm.id = '0000579140-000000-9634e-' + market.marketId; + hm.marketId = market.marketId; + hm.event = 'MarketDestroyed'; + hm.status = market.status; + hm.blockNumber = ctx.block.height; + hm.timestamp = new Date(ctx.block.timestamp); + console.log(`[postHooks.destroyMarkets] Saving historical market: ${JSON.stringify(hm, null, 2)}`); + await ctx.store.save(hm); + }) + ) +} diff --git a/src/processor.ts b/src/processor.ts index 15385777..0a581d6b 100644 --- a/src/processor.ts +++ b/src/processor.ts @@ -4,6 +4,7 @@ import { balancesBalanceSet, balancesDustLost, balancesEndowed, balancesReserved balancesTransferOld, balancesUnreserved, balancesWithdraw } from './mappings/balances'; import { currencyDeposited, currencyTransferred, currencyWithdrawn } from './mappings/currency'; import { parachainStakingRewarded } from './mappings/parachainStaking'; +import { destroyMarkets } from './mappings/postHooks/marketDestroyed'; import { boughtCompleteSet, marketApproved, marketClosed, marketCreated, marketDestroyed, marketDisputed, marketExpired, marketInsufficientSubsidy, marketRejected, marketReported, marketResolved, marketStartedWithSubsidy, soldCompleteSet, tokensRedeemed} from './mappings/predictionMarkets'; @@ -26,7 +27,7 @@ processor.setDataSource({ archive: process.env.INDEXER_ENDPOINT_URL ?? 'https://indexer.zeitgeist.pm/graphql', chain: process.env.WS_NODE_URL ?? 'wss://bsr.zeitgeist.pm', }); -// processor.setBlockRange({from: 832, to: 832}) +//processor.setBlockRange({from: 579140, to: 579140}) processor.addEventHandler('Balances.BalanceSet', ctx => balancesBalanceSet(ctx)) processor.addEventHandler('Balances.DustLost', ctx => balancesDustLost(ctx)) @@ -76,6 +77,8 @@ if (!process.env.WS_NODE_URL?.includes(`bs`)) { processor.addEventHandler('Balances.Transfer', {range: {from: 588250}}, ctx => balancesTransfer(ctx)) processor.addEventHandler('System.ExtrinsicFailed', {range: {from: 0, to: 588249}}, ctx => systemExtrinsicFailed(ctx)) processor.addEventHandler('System.ExtrinsicSuccess', {range: {from: 0, to: 588249}}, ctx => systemExtrinsicSuccess(ctx)) + + processor.addPostHook({range: {from: 579140, to: 579140}}, ctx => destroyMarkets(ctx)) } processor.run() \ No newline at end of file