Skip to content

Commit 408de15

Browse files
committed
2 parents 5bec020 + d655e91 commit 408de15

File tree

1,619 files changed

+90540
-8993
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,619 files changed

+90540
-8993
lines changed

.github/workflows/lint.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
on:
2+
pull_request:
3+
types: [opened, synchronize, reopened]
4+
workflow_dispatch:
5+
6+
name: Lint PR
7+
8+
jobs:
9+
lint-json:
10+
name: Lint JSON files
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Checkout Repository 📥
14+
uses: actions/checkout@v4
15+
16+
- name: Setup Node.js 🌐
17+
uses: actions/setup-node@v4
18+
with:
19+
node-version: '20.x'
20+
21+
- name: Install ESLint
22+
run: npm install
23+
24+
- name: Lint JSON files
25+
run: npx eslint ./

.github/workflows/update_chainjson.yml

Lines changed: 0 additions & 54 deletions
This file was deleted.

.github/workflows/utility/chain_registry.mjs

Lines changed: 88 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,22 @@ import * as path from 'path';
1111

1212
export let chainNameToDirectoryMap = new Map();
1313

14-
export const chainRegistryRoot = "../../..";
14+
export const chainRegistryRoot = "../../../chain-registry";
1515

16-
const networkTypeToDirectoryNameMap = new Map();
16+
export const networkTypeToDirectoryNameMap = new Map();
1717
networkTypeToDirectoryNameMap.set("mainnet", "");
1818
networkTypeToDirectoryNameMap.set("testnet", "testnets");
1919
const networkTypes = Array.from(networkTypeToDirectoryNameMap.keys());
2020

21-
const domainToDirectoryNameMap = new Map();
21+
export const domainToDirectoryNameMap = new Map();
2222
domainToDirectoryNameMap.set("cosmos", "");
2323
domainToDirectoryNameMap.set("non-cosmos", "_non-cosmos");
2424
const domains = Array.from(domainToDirectoryNameMap.keys());
2525

26-
const fileToFileNameMap = new Map();
26+
export const fileToFileNameMap = new Map();
2727
fileToFileNameMap.set("chain", "chain.json");
2828
fileToFileNameMap.set("assetlist", "assetlist.json");
29+
fileToFileNameMap.set("versions", "versions.json");
2930
const files = Array.from(domainToDirectoryNameMap.keys());
3031

3132
export const nonChainDirectories = [
@@ -36,14 +37,20 @@ export const nonChainDirectories = [
3637
"_memo_keys",
3738
"_non-cosmos",
3839
"_template",
40+
"_scripts",
3941
"testnets",
4042
".gitignore",
4143
"assetlist.schema.json",
4244
"chain.schema.json",
4345
"ibc_data.schema.json",
4446
"memo_keys.schema.json",
47+
"versions.schema.json",
4548
"README.md",
46-
"LICENSE"
49+
"LICENSE",
50+
"package.json",
51+
"package-lock.json",
52+
"eslint.config.mjs",
53+
"primary_colors.py"
4754
]
4855

4956
export const assetSchema = {
@@ -64,6 +71,13 @@ export const assetSchema = {
6471
keywords: []
6572
}
6673

74+
export const schemas = new Map([
75+
["ibc", "ibc_data.schema.json"],
76+
["chain", "chain.schema.json"],
77+
["assetlist", "assetlist.schema.json"],
78+
["versions", "versions.schema.json"],
79+
]);
80+
6781
export const bech32ConfigSuffixMap = new Map([
6882
["bech32PrefixAccAddr", ""],
6983
["bech32PrefixAccPub", "pub"],
@@ -74,7 +88,7 @@ export const bech32ConfigSuffixMap = new Map([
7488
]);
7589

7690

77-
const networkTypeToDirectoryMap = new Map();
91+
export const networkTypeToDirectoryMap = new Map();
7892
networkTypeToDirectoryMap.set("mainnet", "");
7993
networkTypeToDirectoryMap.set("testnet", "testnets");
8094
for (const [networkType, directory] of networkTypeToDirectoryMap.entries()) {
@@ -83,7 +97,7 @@ for (const [networkType, directory] of networkTypeToDirectoryMap.entries()) {
8397

8498
const fileNames = {
8599
chain: "chain.json",
86-
assetlist: "assetlist.json",
100+
assetlist: "assetlist.json"
87101
};
88102

89103
let paths = {};
@@ -229,6 +243,41 @@ export function getAssetProperty(chainName, baseDenom, property) {
229243
}
230244
}
231245

246+
247+
export function getAssetDecimals(chainName, baseDenom) {
248+
let decimals;
249+
let display = getAssetProperty(chainName, baseDenom, "display");
250+
let denom_units = getAssetProperty(chainName, baseDenom, "denom_units");
251+
denom_units?.forEach((denom_unit) => {
252+
if(
253+
denom_unit.denom == display ||
254+
denom_unit.aliases?.includes(display)
255+
) {
256+
decimals = denom_unit.exponent;
257+
return;
258+
}
259+
});
260+
return decimals;
261+
}
262+
263+
264+
export function getAssetObject(chainName, baseDenom) {
265+
const assets = getFileProperty(chainName, "assetlist", "assets");
266+
if(assets) {
267+
let selectedAsset;
268+
assets.forEach((asset) => {
269+
if(asset.base == baseDenom) {
270+
selectedAsset = asset;
271+
return;
272+
}
273+
});
274+
if(selectedAsset) {
275+
return selectedAsset;
276+
}
277+
}
278+
}
279+
280+
232281
export function setAssetProperty(chainName, baseDenom, property, value) {
233282
const assets = getFileProperty(chainName, "assetlist", "assets");
234283
if(assets) {
@@ -259,6 +308,37 @@ export function getAssetPropertyWithTrace(chainName, baseDenom, property) {
259308
return value;
260309
}
261310

311+
export function getAssetPropertyWithTraceCustom(chainName, baseDenom, property, types) {
312+
let value = getAssetProperty(chainName, baseDenom, property);
313+
if (value) { return value; }
314+
if (property === "traces") { return; }
315+
let traces = getAssetProperty(chainName, baseDenom, "traces");
316+
if (!traces) { return; }
317+
if (!types.includes(traces[traces.length - 1].type)) { return; }
318+
let originAsset = {
319+
chainName: traces[traces.length - 1].counterparty.chain_name,
320+
baseDenom: traces[traces.length - 1].counterparty.base_denom
321+
}
322+
return getAssetPropertyWithTraceCustom(originAsset.chainName, originAsset.baseDenom, property, types);
323+
}
324+
325+
export function getAssetPropertyWithTraceIBC(chainName, baseDenom, property) {
326+
let value = getAssetProperty(chainName, baseDenom, property);
327+
if (!value) {
328+
if (property != "traces") {
329+
let traces = getAssetProperty(chainName, baseDenom, "traces");
330+
if (traces && (traces[traces.length - 1].type == "ibc" || traces[traces.length - 1].type == "ibc-cw20")) {
331+
let originAsset = {
332+
chainName: traces[traces.length - 1].counterparty.chain_name,
333+
baseDenom: traces[traces.length - 1].counterparty.base_denom
334+
}
335+
return getAssetPropertyWithTrace(originAsset.chainName, originAsset.baseDenom, property);
336+
}
337+
}
338+
}
339+
return value;
340+
}
341+
262342
export function getAssetTraces(chainName, baseDenom) {
263343
let traces = getAssetProperty(chainName, baseDenom, "traces");
264344
let fullTrace;
@@ -377,4 +457,4 @@ function main() {
377457
populateChainDirectories();
378458
}
379459

380-
main();
460+
main();

0 commit comments

Comments
 (0)