mirror of
https://github.com/cosmos/cosmjs.git
synced 2025-03-10 13:47:12 +00:00
Add denomMetadata/denomsMetadata queries to BankExtension
This commit is contained in:
parent
66fa0d65c6
commit
3b559d22d1
@ -10,8 +10,11 @@ and this project adheres to
|
||||
|
||||
- @cosmjs/tendermint-rpc: Add `hash` field to `BroadcastTxAsyncResponse`
|
||||
([#938]).
|
||||
- @cosmjs/stargate: Add `denomMetadata` and `denomsMetadata` to `BankExtension`
|
||||
([#932]).
|
||||
|
||||
[#938]: https://github.com/cosmos/cosmjs/issues/938
|
||||
[#932]: https://github.com/cosmos/cosmjs/issues/932
|
||||
|
||||
### Fixed
|
||||
|
||||
|
@ -143,4 +143,74 @@ describe("BankExtension", () => {
|
||||
tmClient.disconnect();
|
||||
});
|
||||
});
|
||||
|
||||
describe("denomMetadata", () => {
|
||||
it("works for existent denom", async () => {
|
||||
pendingWithoutSimapp();
|
||||
const [client, tmClient] = await makeClientWithBank(simapp.tendermintUrl);
|
||||
|
||||
const metadata = await client.bank.denomMetadata("ucosm");
|
||||
expect(metadata).toEqual({
|
||||
description: "The fee token of this test chain",
|
||||
denomUnits: [
|
||||
{
|
||||
denom: "ucosm",
|
||||
exponent: 0,
|
||||
aliases: [],
|
||||
},
|
||||
{
|
||||
denom: "COSM",
|
||||
exponent: 6,
|
||||
aliases: [],
|
||||
},
|
||||
],
|
||||
base: "ucosm",
|
||||
display: "COSM",
|
||||
name: "",
|
||||
symbol: "",
|
||||
});
|
||||
|
||||
tmClient.disconnect();
|
||||
});
|
||||
|
||||
it("works for non-existent denom", async () => {
|
||||
pendingWithoutSimapp();
|
||||
const [client, tmClient] = await makeClientWithBank(simapp.tendermintUrl);
|
||||
|
||||
await expectAsync(client.bank.denomMetadata("nothere")).toBeRejectedWithError(/code = NotFound/i);
|
||||
|
||||
tmClient.disconnect();
|
||||
});
|
||||
});
|
||||
|
||||
describe("denomsMetadata", () => {
|
||||
it("works", async () => {
|
||||
pendingWithoutSimapp();
|
||||
const [client, tmClient] = await makeClientWithBank(simapp.tendermintUrl);
|
||||
|
||||
const metadatas = await client.bank.denomsMetadata();
|
||||
expect(metadatas.length).toEqual(1);
|
||||
expect(metadatas[0]).toEqual({
|
||||
description: "The fee token of this test chain",
|
||||
denomUnits: [
|
||||
{
|
||||
denom: "ucosm",
|
||||
exponent: 0,
|
||||
aliases: [],
|
||||
},
|
||||
{
|
||||
denom: "COSM",
|
||||
exponent: 6,
|
||||
aliases: [],
|
||||
},
|
||||
],
|
||||
base: "ucosm",
|
||||
display: "COSM",
|
||||
name: "",
|
||||
symbol: "",
|
||||
});
|
||||
|
||||
tmClient.disconnect();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -1,5 +1,6 @@
|
||||
/* eslint-disable @typescript-eslint/naming-convention */
|
||||
import { assert } from "@cosmjs/utils";
|
||||
import { Metadata } from "cosmjs-types/cosmos/bank/v1beta1/bank";
|
||||
import { QueryClientImpl } from "cosmjs-types/cosmos/bank/v1beta1/query";
|
||||
import { Coin } from "cosmjs-types/cosmos/base/v1beta1/coin";
|
||||
|
||||
@ -12,6 +13,8 @@ export interface BankExtension {
|
||||
readonly allBalances: (address: string) => Promise<Coin[]>;
|
||||
readonly totalSupply: () => Promise<Coin[]>;
|
||||
readonly supplyOf: (denom: string) => Promise<Coin>;
|
||||
readonly denomMetadata: (denom: string) => Promise<Metadata>;
|
||||
readonly denomsMetadata: () => Promise<Metadata[]>;
|
||||
};
|
||||
}
|
||||
|
||||
@ -41,6 +44,17 @@ export function setupBankExtension(base: QueryClient): BankExtension {
|
||||
assert(amount);
|
||||
return amount;
|
||||
},
|
||||
denomMetadata: async (denom: string) => {
|
||||
const { metadata } = await queryService.DenomMetadata({ denom });
|
||||
assert(metadata);
|
||||
return metadata;
|
||||
},
|
||||
denomsMetadata: async () => {
|
||||
const { metadatas } = await queryService.DenomsMetadata({
|
||||
pagination: undefined, // Not implemented
|
||||
});
|
||||
return metadatas;
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user