Merge pull request #77 from cosmos/provenance-denom

Get display denom exponent from chain registry
This commit is contained in:
Simon Warta
2023-01-16 11:21:05 +01:00
committed by GitHub
2 changed files with 34 additions and 6 deletions
+9 -6
View File
@@ -9,6 +9,7 @@ import { useAppContext } from "../../context/AppContext";
import Select from "../inputs/Select";
import StackableContainer from "../layout/StackableContainer";
import { assert } from "@cosmjs/utils";
import { ChainRegistryAsset } from "./chainregistry";
interface ChainOption {
label: string;
@@ -127,24 +128,26 @@ const ChainSelect = () => {
const chainDisplayName = chainData["pretty_name"];
const registryName = chainOption.name;
const explorerLink = getExplorerFromArray(chainData.explorers);
let asset = null;
let denom = "";
let displayDenom = "";
const displayDenomExponent = 6;
let gasPrice = "";
let denom: string;
let displayDenom: string;
let displayDenomExponent: number;
let gasPrice: string;
if (assetData.assets.length > 1) {
denom = "";
displayDenom = "";
gasPrice = "";
displayDenomExponent = 0;
setChainError("Multiple token denoms available, enter manually");
setShowSettings(true);
} else {
asset = assetData.assets[0];
const asset: ChainRegistryAsset = assetData.assets[0];
denom = asset.base;
displayDenom = asset.symbol;
gasPrice = `0.03${asset.base}`;
const displayUnit = asset.denom_units.find((u) => u.denom == asset.display);
displayDenomExponent = displayUnit?.exponent ?? 6;
}
// test client connection
+25
View File
@@ -0,0 +1,25 @@
/**
* See https://github.com/cosmos/chain-registry/blob/1e9ecde770951cab90f0853a624411d79af90b83/provenance/assetlist.json#L8-L12
*/
export interface ChainRegistryDemonUnit {
denom: string;
exponent: number;
aliases: string[];
}
/**
* See https://github.com/cosmos/chain-registry/blob/1e9ecde770951cab90f0853a624411d79af90b83/provenance/assetlist.json#L5-L28
*/
export interface ChainRegistryAsset {
description: string;
denom_units: ChainRegistryDemonUnit[];
base: string;
name: string;
display: string;
symbol: string;
logo_URIs: {
png: string;
svg: string;
};
coingecko_id: string;
}