From bd9e4e22f24b66108aca7fb7f7130fa7abeaf023 Mon Sep 17 00:00:00 2001 From: Adam A Date: Mon, 22 Jul 2024 20:10:29 +0300 Subject: [PATCH] feat(namada): allow querying epoch at height --- packages/namada/NamadaChain.ts | 4 ++-- packages/namada/NamadaConnection.ts | 4 ++-- packages/namada/NamadaEpoch.ts | 9 +++++++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/packages/namada/NamadaChain.ts b/packages/namada/NamadaChain.ts index 6963a32b8d..ebcf10ccd7 100644 --- a/packages/namada/NamadaChain.ts +++ b/packages/namada/NamadaChain.ts @@ -142,8 +142,8 @@ export default class NamadaChain extends CW.Chain { fetchProposalInfo (id: number|bigint) { return this.getConnection().fetchProposalInfoImpl(id) } - fetchEpoch () { - return this.getConnection().fetchEpochImpl() + fetchEpoch (...args: Parameters) { + return this.getConnection().fetchEpochImpl(...args) } fetchEpochFirstBlock () { return this.getConnection().fetchEpochFirstBlockImpl() diff --git a/packages/namada/NamadaConnection.ts b/packages/namada/NamadaConnection.ts index 22e330afa0..de213b717e 100644 --- a/packages/namada/NamadaConnection.ts +++ b/packages/namada/NamadaConnection.ts @@ -39,8 +39,8 @@ export default class NamadaConnection extends CW.Connection { return fetchProtocolParameters(this) } - fetchEpochImpl () { - return Epoch.fetchEpoch(this) + fetchEpochImpl (options?: { height?: number|bigint }) { + return Epoch.fetchEpoch(this, options?.height) } fetchEpochFirstBlockImpl () { return Epoch.fetchEpochFirstBlock(this) diff --git a/packages/namada/NamadaEpoch.ts b/packages/namada/NamadaEpoch.ts index d4084ce2ba..68d6b39983 100644 --- a/packages/namada/NamadaEpoch.ts +++ b/packages/namada/NamadaEpoch.ts @@ -3,9 +3,14 @@ import type { Decode } from './NamadaDecode' import type NamadaConnection from './NamadaConnection' export async function fetchEpoch ( - connection: Pick + connection: Pick, + height?: number|bigint ) { - return decode(u64, await connection.abciQuery("/shell/epoch")) + if (height !== undefined) { + return decode(u64, await connection.abciQuery(`/shell/epoch_at_height/${height}`)) + } else { + return decode(u64, await connection.abciQuery("/shell/epoch")) + } } export async function fetchEpochFirstBlock (