@chain-registry/utils 1.22.1 → 1.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/assets.js ADDED
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getChainNameByStakingDenom = exports.getChainByStakingDenom = exports.getChainNameByDenom = exports.getTokenNameByDenom = exports.getChainLogo = exports.getTokenLogoByDenom = exports.getNativeTokenByChainName = exports.getExponentBySymbol = exports.getExponentByDenom = exports.getExponentFromAsset = exports.getDenomBySymbol = exports.getSymbolByDenom = exports.getCoinGeckoIdByDenom = exports.getDenomByCoinGeckoId = exports.getAssetBySymbol = exports.getAssetByDenom = void 0;
4
+ const utils_1 = require("./utils");
5
+ const getAssetByKeyValue = (assets, key, value, chainName) => {
6
+ const filteredAssets = assets
7
+ .filter(({ chain_name }) => !chainName || chain_name === chainName)
8
+ .flatMap(({ assets }) => assets);
9
+ return (0, utils_1.customFind)(filteredAssets, (asset) => asset[key] === value);
10
+ };
11
+ const getAssetByDenom = (assets, denom, chainName) => {
12
+ return getAssetByKeyValue(assets, 'base', denom, chainName);
13
+ };
14
+ exports.getAssetByDenom = getAssetByDenom;
15
+ const getAssetBySymbol = (assets, symbol, chainName) => {
16
+ return getAssetByKeyValue(assets, 'symbol', symbol, chainName);
17
+ };
18
+ exports.getAssetBySymbol = getAssetBySymbol;
19
+ const getDenomByCoinGeckoId = (assets, coinGeckoId, chainName) => {
20
+ return getAssetByKeyValue(assets, 'coingecko_id', coinGeckoId, chainName)
21
+ ?.base;
22
+ };
23
+ exports.getDenomByCoinGeckoId = getDenomByCoinGeckoId;
24
+ const getCoinGeckoIdByDenom = (assets, denom, { chainName, allowTestnet = false, customAssetFilter = () => true, excludedChainNames = [] } = {}) => {
25
+ const filteredAssetLists = assets.filter(({ chain_name }) => {
26
+ return ((!chainName || chain_name === chainName) &&
27
+ (allowTestnet || !chain_name.includes('testnet')) &&
28
+ !excludedChainNames.includes(chain_name));
29
+ });
30
+ const filteredAssets = filteredAssetLists
31
+ .flatMap(({ assets }) => assets)
32
+ .filter(({ coingecko_id }) => coingecko_id)
33
+ .filter(customAssetFilter);
34
+ const asset = filteredAssets.find(({ base }) => base === denom);
35
+ return asset?.coingecko_id;
36
+ };
37
+ exports.getCoinGeckoIdByDenom = getCoinGeckoIdByDenom;
38
+ const getSymbolByDenom = (assets, denom, chainName) => {
39
+ return (0, exports.getAssetByDenom)(assets, denom, chainName)?.symbol;
40
+ };
41
+ exports.getSymbolByDenom = getSymbolByDenom;
42
+ const getDenomBySymbol = (assets, symbol, chainName) => {
43
+ return getAssetByKeyValue(assets, 'symbol', symbol, chainName)?.base;
44
+ };
45
+ exports.getDenomBySymbol = getDenomBySymbol;
46
+ const getExponentFromAsset = (asset) => {
47
+ return asset.denom_units.find(({ denom }) => denom === asset.display)
48
+ ?.exponent;
49
+ };
50
+ exports.getExponentFromAsset = getExponentFromAsset;
51
+ const getExponentByDenom = (assets, denom, chainName) => {
52
+ const asset = (0, exports.getAssetByDenom)(assets, denom, chainName);
53
+ return asset ? (0, exports.getExponentFromAsset)(asset) : undefined;
54
+ };
55
+ exports.getExponentByDenom = getExponentByDenom;
56
+ const getExponentBySymbol = (assets, symbol, chainName) => {
57
+ const asset = (0, exports.getAssetBySymbol)(assets, symbol, chainName);
58
+ return asset ? (0, exports.getExponentFromAsset)(asset) : undefined;
59
+ };
60
+ exports.getExponentBySymbol = getExponentBySymbol;
61
+ const getNativeTokenByChainName = (assets, chainName) => {
62
+ const assetList = (0, utils_1.customFind)(assets, (assetList) => assetList.chain_name === chainName &&
63
+ !assetList.assets[0].base.startsWith('ibc/'));
64
+ return assetList?.assets[0];
65
+ };
66
+ exports.getNativeTokenByChainName = getNativeTokenByChainName;
67
+ const getTokenLogoByDenom = (assets, denom, chainName) => {
68
+ const asset = (0, exports.getAssetByDenom)(assets, denom, chainName);
69
+ return Object.values(asset?.logo_URIs || {})[0];
70
+ };
71
+ exports.getTokenLogoByDenom = getTokenLogoByDenom;
72
+ const getChainLogo = (assets, chainName) => {
73
+ const nativeToken = (0, exports.getNativeTokenByChainName)(assets, chainName);
74
+ return Object.values(nativeToken?.logo_URIs || {})[0];
75
+ };
76
+ exports.getChainLogo = getChainLogo;
77
+ const getTokenNameByDenom = (assets, denom, chainName) => {
78
+ const asset = (0, exports.getAssetByDenom)(assets, denom, chainName);
79
+ return asset?.name;
80
+ };
81
+ exports.getTokenNameByDenom = getTokenNameByDenom;
82
+ const getChainNameByDenom = (assets, denom) => {
83
+ const isIbcDenom = denom.startsWith('ibc/');
84
+ if (isIbcDenom) {
85
+ const asset = (0, exports.getAssetByDenom)(assets, denom);
86
+ return asset?.traces?.find((t) => t.type === 'ibc')?.counterparty
87
+ ?.chain_name;
88
+ }
89
+ return (0, utils_1.customFind)(assets, (assetList) => assetList.assets.some((asset) => asset.base === denom))?.chain_name;
90
+ };
91
+ exports.getChainNameByDenom = getChainNameByDenom;
92
+ const getChainByStakingDenom = (chains, denom) => (0, utils_1.customFind)(chains, (chain) => !!chain.staking?.staking_tokens.find((token) => token.denom === denom));
93
+ exports.getChainByStakingDenom = getChainByStakingDenom;
94
+ const getChainNameByStakingDenom = (chains, denom) => (0, exports.getChainByStakingDenom)(chains, denom)?.chain_name;
95
+ exports.getChainNameByStakingDenom = getChainNameByStakingDenom;
96
+ //# sourceMappingURL=assets.js.map
package/assets.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../src/assets.ts"],"names":[],"mappings":"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"}
package/calc.js ADDED
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.convertDisplayUnitToBaseUnit = exports.convertBaseUnitToDisplayUnit = exports.convertDollarValueToBaseUnit = exports.convertBaseUnitToDollarValue = exports.roundDown = exports.mapCoinGeckoPricesToDenoms = void 0;
7
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
+ const assets_1 = require("./assets");
9
+ const mapCoinGeckoPricesToDenoms = (assets, prices) => {
10
+ return Object.keys(prices).reduce((res, geckoId) => {
11
+ const denom = (0, assets_1.getDenomByCoinGeckoId)(assets, geckoId);
12
+ if (!denom) {
13
+ throw new Error(`No denom found for CoinGecko ID: ${geckoId}`);
14
+ }
15
+ res[denom] = prices[geckoId].usd;
16
+ return res;
17
+ }, {});
18
+ };
19
+ exports.mapCoinGeckoPricesToDenoms = mapCoinGeckoPricesToDenoms;
20
+ const roundDown = (value) => {
21
+ return new bignumber_js_1.default(value).decimalPlaces(0, bignumber_js_1.default.ROUND_DOWN).toString();
22
+ };
23
+ exports.roundDown = roundDown;
24
+ const getAssetInfo = (assets, symbol, chainName) => {
25
+ const asset = (0, assets_1.getAssetBySymbol)(assets, symbol, chainName);
26
+ const denom = asset?.base;
27
+ const exponent = asset ? (0, assets_1.getExponentFromAsset)(asset) : undefined;
28
+ if (!denom || !exponent) {
29
+ throw new Error(`No denom or exponent found for symbol: ${symbol}`);
30
+ }
31
+ return { denom, exponent };
32
+ };
33
+ const shiftDecimalPlaces = (amount, exponent, direction = 1) => {
34
+ return new bignumber_js_1.default(amount).shiftedBy(exponent * direction).toString();
35
+ };
36
+ const convertBaseUnitToDollarValue = (assets, prices, symbol, amount, chainName) => {
37
+ const { denom, exponent } = getAssetInfo(assets, symbol, chainName);
38
+ const baseAmount = shiftDecimalPlaces(amount, exponent, -1);
39
+ return new bignumber_js_1.default(baseAmount).multipliedBy(prices[denom]).toString();
40
+ };
41
+ exports.convertBaseUnitToDollarValue = convertBaseUnitToDollarValue;
42
+ const convertDollarValueToBaseUnit = (assets, prices, symbol, value, chainName) => {
43
+ const { denom, exponent } = getAssetInfo(assets, symbol, chainName);
44
+ const baseAmount = new bignumber_js_1.default(value).dividedBy(prices[denom]).toString();
45
+ return (0, exports.roundDown)(shiftDecimalPlaces(baseAmount, exponent));
46
+ };
47
+ exports.convertDollarValueToBaseUnit = convertDollarValueToBaseUnit;
48
+ const convertBaseUnitToDisplayUnit = (assets, symbol, amount, chainName) => {
49
+ const { exponent } = getAssetInfo(assets, symbol, chainName);
50
+ return shiftDecimalPlaces(amount, exponent, -1);
51
+ };
52
+ exports.convertBaseUnitToDisplayUnit = convertBaseUnitToDisplayUnit;
53
+ const convertDisplayUnitToBaseUnit = (assets, symbol, amount, chainName) => {
54
+ const { exponent } = getAssetInfo(assets, symbol, chainName);
55
+ return (0, exports.roundDown)(shiftDecimalPlaces(amount, exponent));
56
+ };
57
+ exports.convertDisplayUnitToBaseUnit = convertDisplayUnitToBaseUnit;
58
+ //# sourceMappingURL=calc.js.map
package/calc.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calc.js","sourceRoot":"","sources":["../src/calc.ts"],"names":[],"mappings":"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"}
package/chains.js ADDED
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getChainBech32Prefix = exports.getChainPrettyName = exports.getChainGasPriceRanges = exports.getChainIdByChainName = exports.getChainNameByChainId = exports.getChainByChainId = exports.getChainByChainName = exports.getGasPriceRangesFromChain = void 0;
4
+ const utils_1 = require("./utils");
5
+ const getGasPriceRangesFromChain = (chain) => {
6
+ const feeToken = chain.fees?.fee_tokens?.[0];
7
+ return {
8
+ low: feeToken?.low_gas_price ?? 0.01,
9
+ average: feeToken?.average_gas_price ?? 0.025,
10
+ high: feeToken?.high_gas_price ?? 0.04
11
+ };
12
+ };
13
+ exports.getGasPriceRangesFromChain = getGasPriceRangesFromChain;
14
+ const getChainByChainName = (chains, chainName) => {
15
+ return (0, utils_1.customFind)(chains, (chain) => chain.chain_name === chainName);
16
+ };
17
+ exports.getChainByChainName = getChainByChainName;
18
+ const getChainByChainId = (chains, chainId) => {
19
+ return (0, utils_1.customFind)(chains, (chain) => chain.chain_id === chainId);
20
+ };
21
+ exports.getChainByChainId = getChainByChainId;
22
+ const getChainNameByChainId = (chains, chainId) => {
23
+ return (0, exports.getChainByChainId)(chains, chainId)?.chain_name;
24
+ };
25
+ exports.getChainNameByChainId = getChainNameByChainId;
26
+ const getChainIdByChainName = (chains, chainName) => {
27
+ return (0, exports.getChainByChainName)(chains, chainName)?.chain_id;
28
+ };
29
+ exports.getChainIdByChainName = getChainIdByChainName;
30
+ const getChainGasPriceRanges = (chains, chainName) => {
31
+ const chain = (0, exports.getChainByChainName)(chains, chainName);
32
+ return chain ? (0, exports.getGasPriceRangesFromChain)(chain) : undefined;
33
+ };
34
+ exports.getChainGasPriceRanges = getChainGasPriceRanges;
35
+ const getChainPrettyName = (chains, chainName) => {
36
+ return (0, exports.getChainByChainName)(chains, chainName)?.pretty_name;
37
+ };
38
+ exports.getChainPrettyName = getChainPrettyName;
39
+ const getChainBech32Prefix = (chains, chainName) => {
40
+ return (0, exports.getChainByChainName)(chains, chainName)?.bech32_prefix;
41
+ };
42
+ exports.getChainBech32Prefix = getChainBech32Prefix;
43
+ //# sourceMappingURL=chains.js.map
package/chains.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chains.js","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":";;;AAEA,mCAAqC;AAQ9B,MAAM,0BAA0B,GAAG,CAAC,KAAY,EAAkB,EAAE;IACzE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,OAAO;QACL,GAAG,EAAE,QAAQ,EAAE,aAAa,IAAI,IAAI;QACpC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,IAAI,KAAK;QAC7C,IAAI,EAAE,QAAQ,EAAE,cAAc,IAAI,IAAI;KACvC,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,0BAA0B,8BAOrC;AAEK,MAAM,mBAAmB,GAAG,CACjC,MAAe,EACf,SAAiB,EACE,EAAE;IACrB,OAAO,IAAA,kBAAU,EAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;AACvE,CAAC,CAAC;AALW,QAAA,mBAAmB,uBAK9B;AAEK,MAAM,iBAAiB,GAAG,CAC/B,MAAe,EACf,OAAe,EACI,EAAE;IACrB,OAAO,IAAA,kBAAU,EAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;AACnE,CAAC,CAAC;AALW,QAAA,iBAAiB,qBAK5B;AAEK,MAAM,qBAAqB,GAAG,CACnC,MAAe,EACf,OAAe,EACK,EAAE;IACtB,OAAO,IAAA,yBAAiB,EAAC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC;AACxD,CAAC,CAAC;AALW,QAAA,qBAAqB,yBAKhC;AAEK,MAAM,qBAAqB,GAAG,CACnC,MAAe,EACf,SAAiB,EACG,EAAE;IACtB,OAAO,IAAA,2BAAmB,EAAC,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC;AAC1D,CAAC,CAAC;AALW,QAAA,qBAAqB,yBAKhC;AAEK,MAAM,sBAAsB,GAAG,CACpC,MAAe,EACf,SAAiB,EACW,EAAE;IAC9B,MAAM,KAAK,GAAG,IAAA,2BAAmB,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAA,kCAA0B,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC,CAAC;AANW,QAAA,sBAAsB,0BAMjC;AAEK,MAAM,kBAAkB,GAAG,CAChC,MAAe,EACf,SAAiB,EACG,EAAE;IACtB,OAAO,IAAA,2BAAmB,EAAC,MAAM,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC;AAC7D,CAAC,CAAC;AALW,QAAA,kBAAkB,sBAK7B;AAEK,MAAM,oBAAoB,GAAG,CAClC,MAAe,EACf,SAAiB,EACG,EAAE;IACtB,OAAO,IAAA,2BAAmB,EAAC,MAAM,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC;AAC/D,CAAC,CAAC;AALW,QAAA,oBAAoB,wBAK/B"}
package/esm/assets.js ADDED
@@ -0,0 +1,77 @@
1
+ import { customFind } from './utils';
2
+ const getAssetByKeyValue = (assets, key, value, chainName) => {
3
+ const filteredAssets = assets
4
+ .filter(({ chain_name }) => !chainName || chain_name === chainName)
5
+ .flatMap(({ assets }) => assets);
6
+ return customFind(filteredAssets, (asset) => asset[key] === value);
7
+ };
8
+ export const getAssetByDenom = (assets, denom, chainName) => {
9
+ return getAssetByKeyValue(assets, 'base', denom, chainName);
10
+ };
11
+ export const getAssetBySymbol = (assets, symbol, chainName) => {
12
+ return getAssetByKeyValue(assets, 'symbol', symbol, chainName);
13
+ };
14
+ export const getDenomByCoinGeckoId = (assets, coinGeckoId, chainName) => {
15
+ return getAssetByKeyValue(assets, 'coingecko_id', coinGeckoId, chainName)
16
+ ?.base;
17
+ };
18
+ export const getCoinGeckoIdByDenom = (assets, denom, { chainName, allowTestnet = false, customAssetFilter = () => true, excludedChainNames = [] } = {}) => {
19
+ const filteredAssetLists = assets.filter(({ chain_name }) => {
20
+ return ((!chainName || chain_name === chainName) &&
21
+ (allowTestnet || !chain_name.includes('testnet')) &&
22
+ !excludedChainNames.includes(chain_name));
23
+ });
24
+ const filteredAssets = filteredAssetLists
25
+ .flatMap(({ assets }) => assets)
26
+ .filter(({ coingecko_id }) => coingecko_id)
27
+ .filter(customAssetFilter);
28
+ const asset = filteredAssets.find(({ base }) => base === denom);
29
+ return asset?.coingecko_id;
30
+ };
31
+ export const getSymbolByDenom = (assets, denom, chainName) => {
32
+ return getAssetByDenom(assets, denom, chainName)?.symbol;
33
+ };
34
+ export const getDenomBySymbol = (assets, symbol, chainName) => {
35
+ return getAssetByKeyValue(assets, 'symbol', symbol, chainName)?.base;
36
+ };
37
+ export const getExponentFromAsset = (asset) => {
38
+ return asset.denom_units.find(({ denom }) => denom === asset.display)
39
+ ?.exponent;
40
+ };
41
+ export const getExponentByDenom = (assets, denom, chainName) => {
42
+ const asset = getAssetByDenom(assets, denom, chainName);
43
+ return asset ? getExponentFromAsset(asset) : undefined;
44
+ };
45
+ export const getExponentBySymbol = (assets, symbol, chainName) => {
46
+ const asset = getAssetBySymbol(assets, symbol, chainName);
47
+ return asset ? getExponentFromAsset(asset) : undefined;
48
+ };
49
+ export const getNativeTokenByChainName = (assets, chainName) => {
50
+ const assetList = customFind(assets, (assetList) => assetList.chain_name === chainName &&
51
+ !assetList.assets[0].base.startsWith('ibc/'));
52
+ return assetList?.assets[0];
53
+ };
54
+ export const getTokenLogoByDenom = (assets, denom, chainName) => {
55
+ const asset = getAssetByDenom(assets, denom, chainName);
56
+ return Object.values(asset?.logo_URIs || {})[0];
57
+ };
58
+ export const getChainLogo = (assets, chainName) => {
59
+ const nativeToken = getNativeTokenByChainName(assets, chainName);
60
+ return Object.values(nativeToken?.logo_URIs || {})[0];
61
+ };
62
+ export const getTokenNameByDenom = (assets, denom, chainName) => {
63
+ const asset = getAssetByDenom(assets, denom, chainName);
64
+ return asset?.name;
65
+ };
66
+ export const getChainNameByDenom = (assets, denom) => {
67
+ const isIbcDenom = denom.startsWith('ibc/');
68
+ if (isIbcDenom) {
69
+ const asset = getAssetByDenom(assets, denom);
70
+ return asset?.traces?.find((t) => t.type === 'ibc')?.counterparty
71
+ ?.chain_name;
72
+ }
73
+ return customFind(assets, (assetList) => assetList.assets.some((asset) => asset.base === denom))?.chain_name;
74
+ };
75
+ export const getChainByStakingDenom = (chains, denom) => customFind(chains, (chain) => !!chain.staking?.staking_tokens.find((token) => token.denom === denom));
76
+ export const getChainNameByStakingDenom = (chains, denom) => getChainByStakingDenom(chains, denom)?.chain_name;
77
+ //# sourceMappingURL=assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/assets.ts"],"names":[],"mappings":"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"}
package/esm/calc.js ADDED
@@ -0,0 +1,46 @@
1
+ import BigNumber from 'bignumber.js';
2
+ import { getAssetBySymbol, getDenomByCoinGeckoId, getExponentFromAsset } from './assets';
3
+ export const mapCoinGeckoPricesToDenoms = (assets, prices) => {
4
+ return Object.keys(prices).reduce((res, geckoId) => {
5
+ const denom = getDenomByCoinGeckoId(assets, geckoId);
6
+ if (!denom) {
7
+ throw new Error(`No denom found for CoinGecko ID: ${geckoId}`);
8
+ }
9
+ res[denom] = prices[geckoId].usd;
10
+ return res;
11
+ }, {});
12
+ };
13
+ export const roundDown = (value) => {
14
+ return new BigNumber(value).decimalPlaces(0, BigNumber.ROUND_DOWN).toString();
15
+ };
16
+ const getAssetInfo = (assets, symbol, chainName) => {
17
+ const asset = getAssetBySymbol(assets, symbol, chainName);
18
+ const denom = asset?.base;
19
+ const exponent = asset ? getExponentFromAsset(asset) : undefined;
20
+ if (!denom || !exponent) {
21
+ throw new Error(`No denom or exponent found for symbol: ${symbol}`);
22
+ }
23
+ return { denom, exponent };
24
+ };
25
+ const shiftDecimalPlaces = (amount, exponent, direction = 1) => {
26
+ return new BigNumber(amount).shiftedBy(exponent * direction).toString();
27
+ };
28
+ export const convertBaseUnitToDollarValue = (assets, prices, symbol, amount, chainName) => {
29
+ const { denom, exponent } = getAssetInfo(assets, symbol, chainName);
30
+ const baseAmount = shiftDecimalPlaces(amount, exponent, -1);
31
+ return new BigNumber(baseAmount).multipliedBy(prices[denom]).toString();
32
+ };
33
+ export const convertDollarValueToBaseUnit = (assets, prices, symbol, value, chainName) => {
34
+ const { denom, exponent } = getAssetInfo(assets, symbol, chainName);
35
+ const baseAmount = new BigNumber(value).dividedBy(prices[denom]).toString();
36
+ return roundDown(shiftDecimalPlaces(baseAmount, exponent));
37
+ };
38
+ export const convertBaseUnitToDisplayUnit = (assets, symbol, amount, chainName) => {
39
+ const { exponent } = getAssetInfo(assets, symbol, chainName);
40
+ return shiftDecimalPlaces(amount, exponent, -1);
41
+ };
42
+ export const convertDisplayUnitToBaseUnit = (assets, symbol, amount, chainName) => {
43
+ const { exponent } = getAssetInfo(assets, symbol, chainName);
44
+ return roundDown(shiftDecimalPlaces(amount, exponent));
45
+ };
46
+ //# sourceMappingURL=calc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calc.js","sourceRoot":"","sources":["../../src/calc.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,EAEL,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAUlB,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,MAAmB,EACnB,MAAyC,EAC1B,EAAE;IACjB,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAkB,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC;QACjC,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAsB,EAAU,EAAE;IAC1D,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;AAChF,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACnB,MAAmB,EACnB,MAAc,EACd,SAAkB,EAClB,EAAE;IACF,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,KAAK,EAAE,IAAI,CAAC;IAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEjE,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CACzB,MAAuB,EACvB,QAAgB,EAChB,YAAoB,CAAC,EACrB,EAAE;IACF,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC1E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,MAAmB,EACnB,MAAqB,EACrB,MAAc,EACd,MAAuB,EACvB,SAAkB,EACV,EAAE;IACV,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5D,OAAO,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC1E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,MAAmB,EACnB,MAAqB,EACrB,MAAc,EACd,KAAsB,EACtB,SAAkB,EACV,EAAE;IACV,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5E,OAAO,SAAS,CAAC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,MAAmB,EACnB,MAAc,EACd,MAAuB,EACvB,SAAkB,EACV,EAAE;IACV,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC7D,OAAO,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,MAAmB,EACnB,MAAc,EACd,MAAuB,EACvB,SAAkB,EACV,EAAE;IACV,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC7D,OAAO,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AACzD,CAAC,CAAC"}
package/esm/chains.js ADDED
@@ -0,0 +1,32 @@
1
+ import { customFind } from './utils';
2
+ export const getGasPriceRangesFromChain = (chain) => {
3
+ const feeToken = chain.fees?.fee_tokens?.[0];
4
+ return {
5
+ low: feeToken?.low_gas_price ?? 0.01,
6
+ average: feeToken?.average_gas_price ?? 0.025,
7
+ high: feeToken?.high_gas_price ?? 0.04
8
+ };
9
+ };
10
+ export const getChainByChainName = (chains, chainName) => {
11
+ return customFind(chains, (chain) => chain.chain_name === chainName);
12
+ };
13
+ export const getChainByChainId = (chains, chainId) => {
14
+ return customFind(chains, (chain) => chain.chain_id === chainId);
15
+ };
16
+ export const getChainNameByChainId = (chains, chainId) => {
17
+ return getChainByChainId(chains, chainId)?.chain_name;
18
+ };
19
+ export const getChainIdByChainName = (chains, chainName) => {
20
+ return getChainByChainName(chains, chainName)?.chain_id;
21
+ };
22
+ export const getChainGasPriceRanges = (chains, chainName) => {
23
+ const chain = getChainByChainName(chains, chainName);
24
+ return chain ? getGasPriceRangesFromChain(chain) : undefined;
25
+ };
26
+ export const getChainPrettyName = (chains, chainName) => {
27
+ return getChainByChainName(chains, chainName)?.pretty_name;
28
+ };
29
+ export const getChainBech32Prefix = (chains, chainName) => {
30
+ return getChainByChainName(chains, chainName)?.bech32_prefix;
31
+ };
32
+ //# sourceMappingURL=chains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chains.js","sourceRoot":"","sources":["../../src/chains.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAQrC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,KAAY,EAAkB,EAAE;IACzE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,OAAO;QACL,GAAG,EAAE,QAAQ,EAAE,aAAa,IAAI,IAAI;QACpC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,IAAI,KAAK;QAC7C,IAAI,EAAE,QAAQ,EAAE,cAAc,IAAI,IAAI;KACvC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAAe,EACf,SAAiB,EACE,EAAE;IACrB,OAAO,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;AACvE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,MAAe,EACf,OAAe,EACI,EAAE;IACrB,OAAO,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,MAAe,EACf,OAAe,EACK,EAAE;IACtB,OAAO,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,MAAe,EACf,SAAiB,EACG,EAAE;IACtB,OAAO,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC;AAC1D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,MAAe,EACf,SAAiB,EACW,EAAE;IAC9B,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAAe,EACf,SAAiB,EACG,EAAE;IACtB,OAAO,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,MAAe,EACf,SAAiB,EACG,EAAE;IACtB,OAAO,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC;AAC/D,CAAC,CAAC"}