graz 0.2.0-alpha.1 → 0.2.0-alpha.2
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/dist/cli.js +1 -1
- package/dist/index.js +205 -76
- package/dist/index.mjs +133 -4
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -46,4 +46,4 @@ https://github.com/graz-sh/graz
|
|
|
46
46
|
`,g=(0, de.default)({"--generate":Boolean,"-g":"--generate","--authz":Boolean,"--best":Boolean,"--mainnet":String,"--testnet":String,"-b":"--best","-M":"--mainnet","-T":"--testnet","--help":Boolean,"-h":"--help","--endpoint":String,"-e":"--endpoint"}),Pe=()=>S(void 0,null,function*(){if(g["--help"]){console.log(ae);return}if(g["--generate"]){yield Oe();return}console.log(ae);}),Oe=()=>S(void 0,null,function*(){console.log("\u23F3 Generating chain list..."),g["--authz"]&&console.log("\u270D\uFE0F Detected authz flag, generating only compatible chains..."),g["--best"]&&console.log("\u{1F481}\u200D\u2642\uFE0F Detected best flag, setting REST and RPC endpoints to best latency..."),(g["--mainnet"]||g["--testnet"])&&console.log("\u{1F419} Detected chain filtering flag, generating only given chain paths...");let e,n;if(g["--endpoint"]){console.log("\u{1F310} Fetching chain information from specified endpoint");try{let m=yield fetch(g["--endpoint"]);if(!m.ok)throw new Error(`HTTP error! status: ${m.status}`);let t=yield m.json();e=ce(t.mainnet,g["--mainnet"]),n=ce(t.testnet,g["--testnet"]);}catch(m){console.error(`\u274C Failed to fetch chain information: ${m.message}`),process.exit(1);}}else [e,n]=yield Promise.all([le(cosmosDirectoryClient.createClient(),{filter:g["--mainnet"]}),le(cosmosDirectoryClient.createTestnetClient(),{filter:g["--testnet"]})]);let[r,d]=yield Promise.all([C__namespace.readFile(G("index.js.stub"),{encoding:"utf-8"}),C__namespace.readFile(G("index.mjs.stub"),{encoding:"utf-8"})]),o=r.replace("/* REPLACE_MAINNET_DEFS */",M(e)).replace("/* REPLACE_TESTNET_DEFS */",M(n,{testnet:!0})).replace("/* REPLACE_MAINNET_CHAINS */",D(e)).replace("/* REPLACE_TESTNET_CHAINS */",D(n,{testnet:!0})).replace("/* REPLACE_MAINNET_CHAINS_ARRAY */",O(e)).replace("/* REPLACE_TESTNET_CHAINS_ARRAY */",O(n,{testnet:!0})).replace("/* REPLACE_MAINNET_EXPORTS */",O(e)).replace("/* REPLACE_TESTNET_EXPORTS */",O(n,{testnet:!0})).replace(/"(.+)":/g,"$1:").trim(),h=d.replace("/* REPLACE_MAINNET_DEFS */",M(e,{mjs:!0})).replace("/* REPLACE_TESTNET_DEFS */",M(n,{mjs:!0,testnet:!0})).replace("/* REPLACE_MAINNET_CHAINS */",D(e)).replace("/* REPLACE_TESTNET_CHAINS */",D(n,{testnet:!0})).replace("/* REPLACE_MAINNET_CHAINS_ARRAY */",O(e)).replace("/* REPLACE_TESTNET_CHAINS_ARRAY */",O(n,{testnet:!0})).replace(/"(.+)":/g,"$1:").trim();yield Promise.all([C__namespace.writeFile(G("index.js"),o,{encoding:"utf-8"}),C__namespace.writeFile(G("index.mjs"),h.replace('"../dist"','"../dist/index.mjs"'),{encoding:"utf-8"}),C__namespace.writeFile(G("index.ts"),h,{encoding:"utf-8"})]),console.log('\u2728 Generate complete! You can import `mainnetChains` and `testnetChains` from "graz/chains".\n');}),ce=(e,n)=>{if(!n)return e;let r=new Set(n.split(","));return Object.fromEntries(Object.entries(e).filter(([d])=>r.has(d)))},G=(...e)=>me__namespace.resolve(Te,"../chains",...e),D=(e,{testnet:n=!1}={})=>Object.keys(e).map(r=>` ${L(r)}: ${L(r)},`).join(`
|
|
47
47
|
`),M=(e,{mjs:n=!1,testnet:r=!1}={})=>Object.entries(e).map(([d,o])=>{let h=`${L(d)}`,m=JSON.stringify(o,null,2);return `${n?"export ":""}const ${h} = defineChainInfo(${m});
|
|
48
48
|
`}).join(""),O=(e,{testnet:n=!1}={})=>Object.keys(e).map(r=>` ${L(r)},`).join(`
|
|
49
|
-
`),le=(r,...d)=>S(void 0,[r,...d],function*(e,{filter:n=""}={}){let o=n?n.split(",").map(t=>({path:t})):yield e.fetchChains().then(t=>t.chains.map(({path:i})=>({path:i}))),h=yield v(o,t=>S(void 0,null,function*(){return e.fetchChain(t.path).then(i=>i.chain)}),{concurrency:4}),m={};return h.forEach(t=>{var i,c,u,f,_;try{if(g["--authz"]&&!((i=t.params)!=null&&i.authz))return;let a=g["--best"]?t.best_apis:t.apis;if(!a||!((c=a.rest)!=null&&c[0])||!((u=a.rpc)!=null&&u[0]))throw new Error(`\u26A0\uFE0F ${t.name} has no REST/RPC endpoints, skipping codegen...`);if(!t.assets)throw new Error(`\u26A0\uFE0F ${t.name} has no assets, skipping codegen...`);let E=t.assets[0],l={coinDenom:E.denom_units[E.denom_units.length-1].denom,coinMinimalDenom:E.denom_units[0].denom,coinDecimals:E.denom_units[E.denom_units.length-1].exponent,coinGeckoId:E.coingecko_id},w=(f=t.fees)==null?void 0:f.fee_tokens.map(s=>{var P,N,R,y,A,j,z,H,Y,U,B,q,K,V,Q,X,J,W,Z,ee;return s.low_gas_price&&s.average_gas_price&&s.high_gas_price?{coinDenom:((R=(N=(P=t.assets)==null?void 0:P.find(p=>p.denom===s.denom))==null?void 0:N.denom_units.at(-1))==null?void 0:R.denom)||s.denom,coinMinimalDenom:((j=(A=(y=t.assets)==null?void 0:y.find(p=>p.denom===s.denom))==null?void 0:A.denom_units[0])==null?void 0:j.denom)||s.denom,coinDecimals:Number((H=(z=t.assets)==null?void 0:z.find(p=>p.denom===s.denom))==null?void 0:H.decimals),coinGeckoId:((U=(Y=t.assets)==null?void 0:Y.find(p=>p.denom===s.denom))==null?void 0:U.coingecko_id)||
|
|
49
|
+
`),le=(r,...d)=>S(void 0,[r,...d],function*(e,{filter:n=""}={}){let o=n?n.split(",").map(t=>({path:t})):yield e.fetchChains().then(t=>t.chains.map(({path:i})=>({path:i}))),h=yield v(o,t=>S(void 0,null,function*(){return e.fetchChain(t.path).then(i=>i.chain)}),{concurrency:4}),m={};return h.forEach(t=>{var i,c,u,f,_;try{if(g["--authz"]&&!((i=t.params)!=null&&i.authz))return;let a=g["--best"]?t.best_apis:t.apis;if(!a||!((c=a.rest)!=null&&c[0])||!((u=a.rpc)!=null&&u[0]))throw new Error(`\u26A0\uFE0F ${t.name} has no REST/RPC endpoints, skipping codegen...`);if(!t.assets)throw new Error(`\u26A0\uFE0F ${t.name} has no assets, skipping codegen...`);let E=t.assets[0],l={coinDenom:E.denom_units[E.denom_units.length-1].denom,coinMinimalDenom:E.denom_units[0].denom,coinDecimals:E.denom_units[E.denom_units.length-1].exponent,coinGeckoId:E.coingecko_id},w=(f=t.fees)==null?void 0:f.fee_tokens.map(s=>{var P,N,R,y,A,j,z,H,Y,U,B,q,K,V,Q,X,J,W,Z,ee;return s.low_gas_price&&s.average_gas_price&&s.high_gas_price?{coinDenom:((R=(N=(P=t.assets)==null?void 0:P.find(p=>p.denom===s.denom))==null?void 0:N.denom_units.at(-1))==null?void 0:R.denom)||s.denom,coinMinimalDenom:((j=(A=(y=t.assets)==null?void 0:y.find(p=>p.denom===s.denom))==null?void 0:A.denom_units[0])==null?void 0:j.denom)||s.denom,coinDecimals:Number((H=(z=t.assets)==null?void 0:z.find(p=>p.denom===s.denom))==null?void 0:H.decimals),coinGeckoId:((U=(Y=t.assets)==null?void 0:Y.find(p=>p.denom===s.denom))==null?void 0:U.coingecko_id)||void 0,gasPriceStep:{low:Number(s.low_gas_price),average:Number(s.average_gas_price),high:Number(s.high_gas_price)}}:{coinDenom:((K=(q=(B=t.assets)==null?void 0:B.find(p=>p.denom===s.denom))==null?void 0:q.denom_units.at(-1))==null?void 0:K.denom)||s.denom,coinMinimalDenom:((X=(Q=(V=t.assets)==null?void 0:V.find(p=>p.denom===s.denom))==null?void 0:Q.denom_units[0])==null?void 0:X.denom)||s.denom,coinDecimals:Number((W=(J=t.assets)==null?void 0:J.find(p=>p.denom===s.denom))==null?void 0:W.decimals),coinGeckoId:((ee=(Z=t.assets)==null?void 0:Z.find(p=>p.denom===s.denom))==null?void 0:ee.coingecko_id)||void 0}});if(!w)throw new Error(`\u26A0\uFE0F ${t.name} has no fee currencies, skipping codegen...`);m[t.path]={chainId:t.chain_id,currencies:t.assets.map(s=>({coinDenom:s.denom_units[s.denom_units.length-1].denom,coinMinimalDenom:s.denom_units[0].denom,coinDecimals:s.denom_units[s.denom_units.length-1].exponent,coinGeckoId:s.coingecko_id})),rest:a.rest[0].address||"",rpc:a.rpc[0].address||"",bech32Config:cosmos.Bech32Address.defaultBech32Config(t.bech32_prefix),chainName:t.chain_name,feeCurrencies:w,stakeCurrency:l,bip44:{coinType:(_=t.slip44)!=null?_:0}};}catch(a){console.error(a instanceof Error?a.message:String(a));}}),m});Pe();
|