From c262e72b2b07275c6f62e1569c1b06a38463936d Mon Sep 17 00:00:00 2001 From: 2075 <1140449+2075@users.noreply.github.com> Date: Wed, 10 May 2023 20:06:51 +0200 Subject: [PATCH] feat(battlepass): return battlepass state --- src/chain/chain.ts | 9 +++++++++ src/db.ts | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/src/chain/chain.ts b/src/chain/chain.ts index 24e0e44..024548c 100644 --- a/src/chain/chain.ts +++ b/src/chain/chain.ts @@ -32,6 +32,7 @@ export async function listenNewEvents(api: ApiPromise, knownBlock: number, known if (api.events.battlepass.BattlepassCreated.is(event)) { let [orgId, bpId, season] = event.data const chainBp: any = await api.query.battlepass.battlepasses(bpId.toString()) + const bpState: any = await api.query.battlepass.battlepassStates(bpId.toString()) await Battlepass.create({ chainId: bpId.toString(), startDate: null, @@ -41,6 +42,8 @@ export async function listenNewEvents(api: ApiPromise, knownBlock: number, known price: chainBp ? parseInt(chainBp.value.price?.toString()) : null, season: parseInt(season.toString()), active: false, + // correct? + state: bpState ? Buffer.from(bpState.value, 'hex').toString() : 'DRAFT', finalized: false, }) logger.info('Found new battlepass %s', bpId.toString()) @@ -58,12 +61,16 @@ export async function listenNewEvents(api: ApiPromise, knownBlock: number, known name: chainBp ? Buffer.from(chainBp.value.name, 'hex').toString() : null, cid: chainBp ? Buffer.from(chainBp.value.cid, 'hex').toString() : null, active: true, + // correct? should be derived from chain... + state: 'DRAFT', finalized: false, }, }) if (!created) { bp.startDate = calculateBlockDate(knownDate, knownBlock, header.number.toNumber()) bp.active = true + // correct? should be derived from chain... + bp.state = 'ACTIVE' bp.finalized = false await bp.save() } @@ -79,6 +86,8 @@ export async function listenNewEvents(api: ApiPromise, knownBlock: number, known } bp.endDate = calculateBlockDate(knownDate, knownBlock, header.number.toNumber()) bp.active = false + // correct? should be derived from chain... + bp.state = 'ENDED' await bp.save() logger.info('Found ended battlepass %s', bpId.toString()) } else if (api.events.battlepass.BattlepassClaimed.is(event)) { diff --git a/src/db.ts b/src/db.ts index 02eca49..aef8930 100644 --- a/src/db.ts +++ b/src/db.ts @@ -27,6 +27,7 @@ export class Battlepass extends Model, InferCreation declare startDate: Date | null declare endDate: Date | null declare active: boolean + declare state: string declare finalized: boolean declare joinable: CreationOptional declare totalJoined: CreationOptional @@ -78,6 +79,10 @@ Battlepass.init( type: DataTypes.BOOLEAN, allowNull: false, }, + state: { + type: DataTypes.STRING(16), + allowNull: false, + }, finalized: { type: DataTypes.BOOLEAN, allowNull: false,