From 0c5f72a55fc45a3481d5b3bbc66bafcff864d0cb Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Thu, 13 Aug 2020 11:56:42 +0200 Subject: [PATCH] Add supplyOf query --- packages/stargate/src/queries/bank.spec.ts | 24 ++++++++++++++++++++++ packages/stargate/src/queries/bank.ts | 6 ++++++ packages/stargate/types/queries/bank.d.ts | 1 + 3 files changed, 31 insertions(+) diff --git a/packages/stargate/src/queries/bank.spec.ts b/packages/stargate/src/queries/bank.spec.ts index 3761d892..89831469 100644 --- a/packages/stargate/src/queries/bank.spec.ts +++ b/packages/stargate/src/queries/bank.spec.ts @@ -137,5 +137,29 @@ describe("BankExtension", () => { ]); }); }); + + describe("supplyOf", () => { + it("works for existing denom", async () => { + pendingWithoutSimapp(); + const client = await makeBankClient(simapp.tendermintUrl); + + const response = await client.bank.unverified.supplyOf(simapp.denomFee); + expect(response).toEqual({ + amount: "18000000000", + denom: simapp.denomFee, + }); + }); + + it("returns zero for non-existent denom", async () => { + pendingWithoutSimapp(); + const client = await makeBankClient(simapp.tendermintUrl); + + const response = await client.bank.unverified.supplyOf("gintonic"); + expect(response).toEqual({ + amount: "0", + denom: "gintonic", + }); + }); + }); }); }); diff --git a/packages/stargate/src/queries/bank.ts b/packages/stargate/src/queries/bank.ts index 33824098..a4b66ba6 100644 --- a/packages/stargate/src/queries/bank.ts +++ b/packages/stargate/src/queries/bank.ts @@ -12,6 +12,7 @@ export interface BankExtension { readonly balance: (address: string, denom: string) => Promise; readonly allBalances: (address: string) => Promise; readonly totalSupply: () => Promise; + readonly supplyOf: (denom: string) => Promise; }; }; } @@ -55,6 +56,11 @@ export function setupBankExtension(base: QueryClient): BankExtension { const { supply } = await queryService.totalSupply({}); return supply.map(toObject); }, + supplyOf: async (denom: string) => { + const { amount } = await queryService.supplyOf({ denom: denom }); + assert(amount); + return toObject(amount); + }, }, }, }; diff --git a/packages/stargate/types/queries/bank.d.ts b/packages/stargate/types/queries/bank.d.ts index 83db8a76..4cb53485 100644 --- a/packages/stargate/types/queries/bank.d.ts +++ b/packages/stargate/types/queries/bank.d.ts @@ -7,6 +7,7 @@ export interface BankExtension { readonly balance: (address: string, denom: string) => Promise; readonly allBalances: (address: string) => Promise; readonly totalSupply: () => Promise; + readonly supplyOf: (denom: string) => Promise; }; }; }