From 095175aaa08cbde99052b0bd87e2173c871632f0 Mon Sep 17 00:00:00 2001 From: luca Date: Mon, 18 Mar 2024 21:31:08 +0800 Subject: [PATCH] fix: add explicit return types --- packages/utils/src/assets.ts | 7 ++++-- packages/utils/src/chains.ts | 43 ++++++++++++++++++++++++++------ packages/utils/tsconfig.json | 3 +-- packages/utils/types/assets.d.ts | 2 +- packages/utils/types/chains.d.ts | 11 +++----- packages/utils/types/ibc.d.ts | 17 ++++++------- 6 files changed, 53 insertions(+), 30 deletions(-) diff --git a/packages/utils/src/assets.ts b/packages/utils/src/assets.ts index 3cfcd3378..9ce0556c8 100644 --- a/packages/utils/src/assets.ts +++ b/packages/utils/src/assets.ts @@ -106,7 +106,7 @@ export const getDenomBySymbol = ( return getAssetByKeyValue(assets, 'symbol', symbol, chainName)?.base; }; -export const getExponentFromAsset = (asset: Asset) => { +export const getExponentFromAsset = (asset: Asset): number | undefined => { return asset.denom_units.find(({ denom }) => denom === asset.display) ?.exponent; }; @@ -169,7 +169,10 @@ export const getTokenNameByDenom = ( return asset?.name; }; -export const getChainNameByDenom = (assets: AssetList[], denom: Denom) => { +export const getChainNameByDenom = ( + assets: AssetList[], + denom: Denom +): string | undefined => { const isIbcDenom = denom.startsWith('ibc/'); if (isIbcDenom) { diff --git a/packages/utils/src/chains.ts b/packages/utils/src/chains.ts index 954fc1ecf..95112e44d 100644 --- a/packages/utils/src/chains.ts +++ b/packages/utils/src/chains.ts @@ -1,7 +1,13 @@ import { Chain } from '@chain-registry/types'; import { customFind } from './assets'; -export const getGasPriceRangesFromChain = (chain: Chain) => { +export interface GasPriceRanges { + low: number; + average: number; + high: number; +} + +export const getGasPriceRangesFromChain = (chain: Chain): GasPriceRanges => { const feeToken = chain.fees?.fee_tokens?.[0]; return { low: feeToken?.low_gas_price ?? 0.01, @@ -10,31 +16,52 @@ export const getGasPriceRangesFromChain = (chain: Chain) => { }; }; -export const getChainByChainName = (chains: Chain[], chainName: string) => { +export const getChainByChainName = ( + chains: Chain[], + chainName: string +): Chain | undefined => { return customFind(chains, (chain) => chain.chain_name === chainName); }; -export const getChainByChainId = (chains: Chain[], chainId: string) => { +export const getChainByChainId = ( + chains: Chain[], + chainId: string +): Chain | undefined => { return customFind(chains, (chain) => chain.chain_id === chainId); }; -export const getChainNameByChainId = (chains: Chain[], chainId: string) => { +export const getChainNameByChainId = ( + chains: Chain[], + chainId: string +): string | undefined => { return getChainByChainId(chains, chainId)?.chain_name; }; -export const getChainIdByChainName = (chains: Chain[], chainName: string) => { +export const getChainIdByChainName = ( + chains: Chain[], + chainName: string +): string | undefined => { return getChainByChainName(chains, chainName)?.chain_id; }; -export const getChainGasPriceRanges = (chains: Chain[], chainName: string) => { +export const getChainGasPriceRanges = ( + chains: Chain[], + chainName: string +): GasPriceRanges | undefined => { const chain = getChainByChainName(chains, chainName); return chain ? getGasPriceRangesFromChain(chain) : undefined; }; -export const getChainPrettyName = (chains: Chain[], chainName: string) => { +export const getChainPrettyName = ( + chains: Chain[], + chainName: string +): string | undefined => { return getChainByChainName(chains, chainName)?.pretty_name; }; -export const getChainBech32Prefix = (chains: Chain[], chainName: string) => { +export const getChainBech32Prefix = ( + chains: Chain[], + chainName: string +): string | undefined => { return getChainByChainName(chains, chainName)?.bech32_prefix; }; diff --git a/packages/utils/tsconfig.json b/packages/utils/tsconfig.json index 4de92bd6e..ae41eba22 100644 --- a/packages/utils/tsconfig.json +++ b/packages/utils/tsconfig.json @@ -7,8 +7,7 @@ "declaration": true, "declarationDir": "./types", "emitDeclarationOnly": true, - "isolatedModules": true, - "strict": true + "isolatedModules": true }, "include": ["src/**/*"], "exclude": ["node_modules"] diff --git a/packages/utils/types/assets.d.ts b/packages/utils/types/assets.d.ts index ba45db85a..fc4879176 100644 --- a/packages/utils/types/assets.d.ts +++ b/packages/utils/types/assets.d.ts @@ -1,7 +1,7 @@ import { Asset, AssetDenomUnit, AssetList } from '@chain-registry/types'; export type Denom = AssetDenomUnit['denom']; export type Exponent = AssetDenomUnit['exponent']; -export declare const customFind: (array: T[], filterFn: (item: T) => boolean) => T | undefined; +export declare const customFind: (array: T[], filterFn: (item: T) => boolean) => T; export declare const getAssetByDenom: (assets: AssetList[], denom: Denom, chainName?: string) => Asset | undefined; export declare const getAssetBySymbol: (assets: AssetList[], symbol: string, chainName?: string) => Asset | undefined; export declare const getDenomByCoinGeckoId: (assets: AssetList[], coinGeckoId: string, chainName?: string) => Denom | undefined; diff --git a/packages/utils/types/chains.d.ts b/packages/utils/types/chains.d.ts index 583f2c522..e1116c00a 100644 --- a/packages/utils/types/chains.d.ts +++ b/packages/utils/types/chains.d.ts @@ -1,17 +1,14 @@ import { Chain } from '@chain-registry/types'; -export declare const getGasPriceRangesFromChain: (chain: Chain) => { +export interface GasPriceRanges { low: number; average: number; high: number; -}; +} +export declare const getGasPriceRangesFromChain: (chain: Chain) => GasPriceRanges; export declare const getChainByChainName: (chains: Chain[], chainName: string) => Chain | undefined; export declare const getChainByChainId: (chains: Chain[], chainId: string) => Chain | undefined; export declare const getChainNameByChainId: (chains: Chain[], chainId: string) => string | undefined; export declare const getChainIdByChainName: (chains: Chain[], chainName: string) => string | undefined; -export declare const getChainGasPriceRanges: (chains: Chain[], chainName: string) => { - low: number; - average: number; - high: number; -} | undefined; +export declare const getChainGasPriceRanges: (chains: Chain[], chainName: string) => GasPriceRanges | undefined; export declare const getChainPrettyName: (chains: Chain[], chainName: string) => string | undefined; export declare const getChainBech32Prefix: (chains: Chain[], chainName: string) => string | undefined; diff --git a/packages/utils/types/ibc.d.ts b/packages/utils/types/ibc.d.ts index a6951c4c9..b3a1fa277 100644 --- a/packages/utils/types/ibc.d.ts +++ b/packages/utils/types/ibc.d.ts @@ -15,8 +15,8 @@ export declare const getTransferChannel: (info: IBCInfo) => { }; ordering: string; version: string; - tags?: object | undefined; -} | undefined; + tags?: object; +}; export declare const getNonTransferChannel: (info: IBCInfo) => { chain_1: { channel_id: string; @@ -28,8 +28,8 @@ export declare const getNonTransferChannel: (info: IBCInfo) => { }; ordering: string; version: string; - tags?: object | undefined; -} | undefined; + tags?: object; +}; export declare const getWasmChannel: (info: IBCInfo) => { chain_1: { channel_id: string; @@ -41,8 +41,8 @@ export declare const getWasmChannel: (info: IBCInfo) => { }; ordering: string; version: string; - tags?: object | undefined; -} | undefined; + tags?: object; +}; export declare const getIbcAssetPath: (ibc: IBCInfo[], chain: string, counterparty: string, assets: AssetList[], base: string) => any; export declare const getIbcDenomByBase: (ibc: IBCInfo[], chain: string, counterparty: string, assets: AssetList[], base: string) => string; export declare const getIbcAssets: (chainName: string, ibc: IBCInfo[], assets: AssetList[]) => { @@ -53,7 +53,4 @@ export declare const getCw20Assets: (chainName: string, ibc: IBCInfo[], assets: chain_name: string; assets: any; }[]; -export declare const getAssetLists: (chainName: string, ibc: IBCInfo[], assets: AssetList[]) => { - chain_name: string; - assets: any; -}; +export declare const getAssetLists: (chainName: string, ibc: IBCInfo[], assets: AssetList[]) => any[];