fix update_chain script
This commit is contained in:
parent
a399a2d87b
commit
5bc0b34db0
@ -19,19 +19,56 @@ const chainNameMap = {
|
||||
'dyson-protocol': 'dyson',
|
||||
};
|
||||
|
||||
const filterProvider = (providers) => {
|
||||
return providers.filter((p) => {
|
||||
const url = p.address || p;
|
||||
return url.startsWith('https://') && !url.includes('notional');
|
||||
});
|
||||
};
|
||||
|
||||
const updateChain = async (chainFile) => {
|
||||
const first = chainFile.split('.')[0];
|
||||
const chainName = chainNameMap[first] || first;
|
||||
const url = `https://raw.githubusercontent.com/cosmos/chain-registry/master/${chainName}/chain.json`;
|
||||
const filePath = path.join(chainsPath, chainFile);
|
||||
const chainData = fs.existsSync(filePath)
|
||||
? JSON.parse(fs.readFileSync(filePath).toString())
|
||||
: {};
|
||||
|
||||
try {
|
||||
const data = await fetch(url).then((res) => res.json());
|
||||
const cosmwasmEnabled = data.codebase?.cosmwasm_enabled ?? false;
|
||||
const logo = data.logo_URIs?.svg ?? data.logo_URIs?.png;
|
||||
const filePath = path.join(chainsPath, chainFile);
|
||||
const chainData = JSON.parse(fs.readFileSync(filePath).toString());
|
||||
let data = await fetch(
|
||||
`https://raw.githubusercontent.com/cosmos/chain-registry/master/${chainName}/chain.json`
|
||||
).then((res) => res.json());
|
||||
// re-assign
|
||||
chainData.cosmwasm_enabled = data.codebase?.cosmwasm_enabled ?? false;
|
||||
const logo = data.logo_URIs?.svg || data.logo_URIs?.png;
|
||||
if (logo) chainData.logo = logo;
|
||||
if (cosmwasmEnabled) chainData.cosmwasm_enabled = cosmwasmEnabled;
|
||||
fs.writeFileSync(filePath, JSON.stringify(chainData, null, 2));
|
||||
|
||||
chainData.chain_name = data.chain_name;
|
||||
chainData.sdk_version = data.codebase.cosmos_sdk_version.match(
|
||||
/v((?:\d+\.)?(?:\d+\.)?(?:\*|\d+))/
|
||||
)[1];
|
||||
chainData.coin_type = data.slip44;
|
||||
chainData.min_tx_fee = data.fees.fee_tokens[0].low_gas_price;
|
||||
chainData.addr_prefix = data.bech32_prefix;
|
||||
chainData.api = filterProvider(data.apis.rest);
|
||||
chainData.grpc = filterProvider(data.apis.grpc);
|
||||
// re-assign assets
|
||||
data = await fetch(
|
||||
`https://raw.githubusercontent.com/cosmos/chain-registry/master/${chainName}/assetlist.json`
|
||||
).then((res) => res.json());
|
||||
chainData.assets = data.assets.map((asset) => {
|
||||
return {
|
||||
base: asset.base,
|
||||
symbol: asset.symbol,
|
||||
exponent: asset.denom_units.find((u) => u.denom === asset.display)
|
||||
.exponent,
|
||||
coingecko_id: asset.coingecko_id ?? asset.display,
|
||||
logo: asset.logo_URIs?.svg || asset.logo_URIs?.png,
|
||||
};
|
||||
});
|
||||
const strData = JSON.stringify(chainData, null, 2);
|
||||
// console.log(strData);
|
||||
fs.writeFileSync(filePath, strData);
|
||||
} catch (ex) {
|
||||
console.log('Problem with', url, ex.toString());
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user