Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Detach MarketCancelledEvent (#140)
* Stop processing MarketCancelledEvent

* Dissolve handler for `predictionMarkets.MarketCancelled`

* Clean up event types
  • Loading branch information
saboonikhil committed Jul 31, 2022
1 parent 5c783c0 commit 24c5d23
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 74 deletions.
5 changes: 2 additions & 3 deletions src/processor/index.ts
Expand Up @@ -2,8 +2,8 @@ import { SubstrateProcessor } from "@subsquid/substrate-processor"
import { balancesBalanceSet, balancesDustLost, balancesEndowed, balancesReserved, balancesTransfer,
balancesUnreserved, balancesWithdraw, currencyDeposited, currencyTransferred, currencyWithdrawn,
parachainStakingRewarded, systemExtrinsicFailed, systemExtrinsicSuccess, systemNewAccount, tokensEndowed } from "./balances";
import { predictionMarketApproved, predictionMarketBoughtCompleteSet, predictionMarketCancelled,
predictionMarketClosed, predictionMarketCreated, predictionMarketDisputed, predictionMarketInsufficientSubsidy,
import { predictionMarketApproved, predictionMarketBoughtCompleteSet, predictionMarketClosed,
predictionMarketCreated, predictionMarketDisputed, predictionMarketInsufficientSubsidy,
predictionMarketRejected, predictionMarketReported, predictionMarketResolved,
predictionMarketSoldCompleteSet, predictionMarketStartedWithSubsidy, predictionMarketTokensRedeemed } from "./markets";
import { add_balance_108949, add_balance_155917, add_balance_175178, add_balance_178290, add_balance_179524,
Expand Down Expand Up @@ -50,7 +50,6 @@ processor.addEventHandler('predictionMarkets.MarketClosed', predictionMarketClos
processor.addEventHandler('predictionMarkets.MarketDisputed', predictionMarketDisputed)
processor.addEventHandler('predictionMarkets.MarketRejected', predictionMarketRejected)
processor.addEventHandler('predictionMarkets.MarketReported', predictionMarketReported)
processor.addEventHandler('predictionMarkets.MarketCancelled', predictionMarketCancelled)
processor.addEventHandler('predictionMarkets.MarketResolved', predictionMarketResolved)
processor.addEventHandler('predictionMarkets.SoldCompleteSet', predictionMarketSoldCompleteSet)
processor.addEventHandler('predictionMarkets.TokensRedeemed', predictionMarketTokensRedeemed)
Expand Down
41 changes: 2 additions & 39 deletions src/processor/markets.ts
@@ -1,8 +1,8 @@
import * as ss58 from "@subsquid/ss58"
import { encodeAddress } from '@polkadot/keyring'
import { Cache, IPFS, Tools } from './util'
import { PredictionMarketsBoughtCompleteSetEvent, PredictionMarketsMarketApprovedEvent, PredictionMarketsMarketCancelledEvent,
PredictionMarketsMarketClosedEvent, PredictionMarketsMarketDisputedEvent, PredictionMarketsMarketInsufficientSubsidyEvent,
import { PredictionMarketsBoughtCompleteSetEvent, PredictionMarketsMarketApprovedEvent, PredictionMarketsMarketClosedEvent,
PredictionMarketsMarketDisputedEvent, PredictionMarketsMarketInsufficientSubsidyEvent,
PredictionMarketsMarketRejectedEvent, PredictionMarketsMarketReportedEvent, PredictionMarketsMarketResolvedEvent,
PredictionMarketsMarketStartedWithSubsidyEvent, PredictionMarketsSoldCompleteSetEvent, PredictionMarketsTokensRedeemedEvent } from '../types/events'
import { EventHandlerContext } from '@subsquid/substrate-processor'
Expand Down Expand Up @@ -463,28 +463,6 @@ export async function predictionMarketRejected(ctx: EventHandlerContext) {
await store.save<HistoricalMarket>(hm)
}

export async function predictionMarketCancelled(ctx: EventHandlerContext) {
const {store, event, block, extrinsic} = ctx
const {marketId} = getCancelledEvent(ctx)

const savedMarket = await store.get(Market, { where: { marketId: marketId } })
if (!savedMarket) return

savedMarket.status = "Cancelled"
console.log(`[${event.name}] Saving market: ${JSON.stringify(savedMarket, null, 2)}`)
await store.save<Market>(savedMarket)

const hm = new HistoricalMarket()
hm.id = event.id + '-' + savedMarket.marketId
hm.marketId = savedMarket.marketId
hm.event = event.method
hm.status = savedMarket.status
hm.blockNumber = block.height
hm.timestamp = new Date(block.timestamp)
console.log(`[${event.name}] Saving historical market: ${JSON.stringify(hm, null, 2)}`)
await store.save<HistoricalMarket>(hm)
}

export async function predictionMarketResolved(ctx: EventHandlerContext) {
const {store, event, block, extrinsic} = ctx
const {marketId, status, report} = getResolvedEvent(ctx)
Expand Down Expand Up @@ -810,10 +788,6 @@ interface RejectedEvent {
marketId: bigint
}

interface CancelledEvent {
marketId: bigint
}

interface ResolvedEvent {
marketId: bigint
status: any
Expand Down Expand Up @@ -969,17 +943,6 @@ function getRejectedEvent(ctx: EventHandlerContext): RejectedEvent {
}
}

function getCancelledEvent(ctx: EventHandlerContext): CancelledEvent {
const event = new PredictionMarketsMarketCancelledEvent(ctx)
if (event.isV23) {
const marketId = event.asV23
return {marketId}
} else {
const marketId = event.asLatest
return {marketId}
}
}

function getResolvedEvent(ctx: EventHandlerContext): ResolvedEvent {
const event = new PredictionMarketsMarketResolvedEvent(ctx)
if (event.isV23) {
Expand Down
31 changes: 0 additions & 31 deletions src/types/events.ts
Expand Up @@ -611,37 +611,6 @@ export class PredictionMarketsMarketApprovedEvent {
}
}

export class PredictionMarketsMarketCancelledEvent {
constructor(private ctx: EventContext) {
assert(this.ctx.event.name === 'predictionMarkets.MarketCancelled')
}

/**
* A pending market has been cancelled. \[market_id, creator\]
*/
get isV23(): boolean {
return this.ctx._chain.getEventHash('predictionMarkets.MarketCancelled') === '47f20e4340181ef6a9fa426529a2a2f806c76198b2a3d7b22d1d1c9bc6b82e25'
}

/**
* A pending market has been cancelled. \[market_id, creator\]
*/
get asV23(): bigint {
assert(this.isV23)
return this.ctx._chain.decodeEvent(this.ctx.event)
}

get isLatest(): boolean {
deprecateLatest()
return this.isV23
}

get asLatest(): bigint {
deprecateLatest()
return this.asV23
}
}

export class PredictionMarketsMarketClosedEvent {
constructor(private ctx: EventContext) {
assert(this.ctx.event.name === 'predictionMarkets.MarketClosed')
Expand Down
1 change: 0 additions & 1 deletion typegen.json
Expand Up @@ -26,7 +26,6 @@
"predictionMarkets.MarketDisputed",
"predictionMarkets.MarketRejected",
"predictionMarkets.MarketReported",
"predictionMarkets.MarketCancelled",
"predictionMarkets.MarketResolved",
"predictionMarkets.SoldCompleteSet",
"predictionMarkets.TokensRedeemed",
Expand Down

0 comments on commit 24c5d23

Please sign in to comment.