@chain-registry/client 1.24.0 → 1.25.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/chain-info.js +41 -0
- package/chain-info.js.map +1 -0
- package/chain-util.js +73 -0
- package/chain-util.js.map +1 -0
- package/esm/chain-info.js +37 -0
- package/esm/chain-info.js.map +1 -0
- package/esm/chain-util.js +69 -0
- package/esm/chain-util.js.map +1 -0
- package/esm/fetcher.js +152 -0
- package/esm/fetcher.js.map +1 -0
- package/esm/index.js +5 -0
- package/esm/index.js.map +1 -0
- package/esm/registry.js +60 -0
- package/esm/registry.js.map +1 -0
- package/{types/fetcher.d.ts → fetcher.d.ts} +1 -1
- package/fetcher.js +159 -0
- package/fetcher.js.map +1 -0
- package/index.js +21 -0
- package/index.js.map +1 -0
- package/package.json +25 -59
- package/registry.js +64 -0
- package/registry.js.map +1 -0
- package/main/chain-info.js +0 -56
- package/main/chain-util.js +0 -112
- package/main/fetcher.js +0 -228
- package/main/index.js +0 -49
- package/main/registry.js +0 -86
- /package/{types/chain-info.d.ts → chain-info.d.ts} +0 -0
- /package/{types/chain-util.d.ts → chain-util.d.ts} +0 -0
- /package/{types/index.d.ts → index.d.ts} +0 -0
- /package/{types/registry.d.ts → registry.d.ts} +0 -0
package/chain-info.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChainInfo = void 0;
|
|
4
|
+
const utils_1 = require("@chain-registry/utils");
|
|
5
|
+
class ChainInfo {
|
|
6
|
+
chainName;
|
|
7
|
+
fetcher;
|
|
8
|
+
_chain;
|
|
9
|
+
_assetList;
|
|
10
|
+
_assetLists;
|
|
11
|
+
_ibcData = [];
|
|
12
|
+
constructor(options) {
|
|
13
|
+
this.chainName = options.chainName;
|
|
14
|
+
this.fetcher = options.fetcher;
|
|
15
|
+
this.refresh();
|
|
16
|
+
}
|
|
17
|
+
refresh() {
|
|
18
|
+
this._assetList = this.fetcher.getChainAssetList(this.chainName);
|
|
19
|
+
this._ibcData = this.fetcher.getChainIbcData(this.chainName);
|
|
20
|
+
this._chain = this.fetcher.getChain(this.chainName);
|
|
21
|
+
const supportedChains = this._ibcData.reduce((m, v) => {
|
|
22
|
+
if (!m.includes(v.chain_1.chain_name))
|
|
23
|
+
m.push(v.chain_1.chain_name);
|
|
24
|
+
if (!m.includes(v.chain_2.chain_name))
|
|
25
|
+
m.push(v.chain_2.chain_name);
|
|
26
|
+
return m;
|
|
27
|
+
}, []);
|
|
28
|
+
this._assetLists = this.fetcher.assetLists.filter((list) => supportedChains.includes(list.chain_name));
|
|
29
|
+
}
|
|
30
|
+
get chain() {
|
|
31
|
+
return this._chain;
|
|
32
|
+
}
|
|
33
|
+
get nativeAssetList() {
|
|
34
|
+
return this._assetList;
|
|
35
|
+
}
|
|
36
|
+
get assetLists() {
|
|
37
|
+
return (0, utils_1.getAssetLists)(this.chainName, this._ibcData, this._assetLists);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.ChainInfo = ChainInfo;
|
|
41
|
+
//# sourceMappingURL=chain-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain-info.js","sourceRoot":"","sources":["../src/chain-info.ts"],"names":[],"mappings":";;;AACA,iDAAsD;AAStD,MAAa,SAAS;IACpB,SAAS,CAAS;IAClB,OAAO,CAAuB;IAEpB,MAAM,CAAQ;IACd,UAAU,CAAY;IACtB,WAAW,CAAc;IACzB,QAAQ,GAAc,EAAE,CAAC;IAEnC,YAAY,OAAyB;QACnC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAE/B,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEpD,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACpD,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;gBAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACpE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;gBAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACpE,OAAO,CAAC,CAAC;QACX,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACzD,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAC1C,CAAC;IACJ,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,IAAI,UAAU;QACZ,OAAO,IAAA,qBAAa,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACxE,CAAC;CACF;AAzCD,8BAyCC"}
|
package/chain-util.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChainRegistryChainUtil = void 0;
|
|
4
|
+
const utils_1 = require("@chain-registry/utils");
|
|
5
|
+
class ChainRegistryChainUtil {
|
|
6
|
+
_assets = [];
|
|
7
|
+
_chainName;
|
|
8
|
+
constructor(options) {
|
|
9
|
+
const { chainName, chainInfo } = options;
|
|
10
|
+
this._chainName = options.chainName;
|
|
11
|
+
this._assets = [
|
|
12
|
+
{
|
|
13
|
+
assets: [
|
|
14
|
+
...chainInfo.nativeAssetList.assets,
|
|
15
|
+
...chainInfo.assetLists.flatMap(({ assets }) => assets)
|
|
16
|
+
],
|
|
17
|
+
chain_name: chainName
|
|
18
|
+
}
|
|
19
|
+
];
|
|
20
|
+
}
|
|
21
|
+
getAssetByDenom(denom) {
|
|
22
|
+
return (0, utils_1.getAssetByDenom)(this._assets, denom, this._chainName);
|
|
23
|
+
}
|
|
24
|
+
getAssetBySymbol(symbol) {
|
|
25
|
+
return (0, utils_1.getAssetBySymbol)(this._assets, symbol, this._chainName);
|
|
26
|
+
}
|
|
27
|
+
getDenomByCoinGeckoId(coinGeckoId) {
|
|
28
|
+
return (0, utils_1.getDenomByCoinGeckoId)(this._assets, coinGeckoId, this._chainName);
|
|
29
|
+
}
|
|
30
|
+
getCoinGeckoIdByDenom(coinGeckoId) {
|
|
31
|
+
return (0, utils_1.getCoinGeckoIdByDenom)(this._assets, coinGeckoId, {
|
|
32
|
+
chainName: this._chainName
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
getSymbolByDenom(denom) {
|
|
36
|
+
return (0, utils_1.getSymbolByDenom)(this._assets, denom, this._chainName);
|
|
37
|
+
}
|
|
38
|
+
getDenomBySymbol(symbol) {
|
|
39
|
+
return (0, utils_1.getDenomBySymbol)(this._assets, symbol, this._chainName);
|
|
40
|
+
}
|
|
41
|
+
getExponentByDenom(denom) {
|
|
42
|
+
return (0, utils_1.getExponentByDenom)(this._assets, denom, this._chainName);
|
|
43
|
+
}
|
|
44
|
+
getExponentBySymbol(symbol) {
|
|
45
|
+
return (0, utils_1.getExponentBySymbol)(this._assets, symbol, this._chainName);
|
|
46
|
+
}
|
|
47
|
+
getTokenLogoByDenom(denom) {
|
|
48
|
+
return (0, utils_1.getTokenLogoByDenom)(this._assets, denom, this._chainName);
|
|
49
|
+
}
|
|
50
|
+
getTokenNameByDenom(denom) {
|
|
51
|
+
return (0, utils_1.getTokenNameByDenom)(this._assets, denom, this._chainName);
|
|
52
|
+
}
|
|
53
|
+
getChainNameByDenom(denom) {
|
|
54
|
+
return (0, utils_1.getChainNameByDenom)(this._assets, denom);
|
|
55
|
+
}
|
|
56
|
+
mapCoinGeckoPricesToDenoms(prices) {
|
|
57
|
+
return (0, utils_1.mapCoinGeckoPricesToDenoms)(this._assets, prices);
|
|
58
|
+
}
|
|
59
|
+
convertBaseUnitToDollarValue(prices, symbol, amount) {
|
|
60
|
+
return (0, utils_1.convertBaseUnitToDollarValue)(this._assets, prices, symbol, amount, this._chainName);
|
|
61
|
+
}
|
|
62
|
+
convertDollarValueToBaseUnit(prices, symbol, value) {
|
|
63
|
+
return (0, utils_1.convertDollarValueToBaseUnit)(this._assets, prices, symbol, value, this._chainName);
|
|
64
|
+
}
|
|
65
|
+
convertBaseUnitToDisplayUnit(symbol, amount) {
|
|
66
|
+
return (0, utils_1.convertBaseUnitToDisplayUnit)(this._assets, symbol, amount, this._chainName);
|
|
67
|
+
}
|
|
68
|
+
convertDisplayUnitToBaseUnit(symbol, amount) {
|
|
69
|
+
return (0, utils_1.convertDisplayUnitToBaseUnit)(this._assets, symbol, amount, this._chainName);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.ChainRegistryChainUtil = ChainRegistryChainUtil;
|
|
73
|
+
//# sourceMappingURL=chain-util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain-util.js","sourceRoot":"","sources":["../src/chain-util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { getAssetLists } from '@chain-registry/utils';
|
|
2
|
+
export class ChainInfo {
|
|
3
|
+
chainName;
|
|
4
|
+
fetcher;
|
|
5
|
+
_chain;
|
|
6
|
+
_assetList;
|
|
7
|
+
_assetLists;
|
|
8
|
+
_ibcData = [];
|
|
9
|
+
constructor(options) {
|
|
10
|
+
this.chainName = options.chainName;
|
|
11
|
+
this.fetcher = options.fetcher;
|
|
12
|
+
this.refresh();
|
|
13
|
+
}
|
|
14
|
+
refresh() {
|
|
15
|
+
this._assetList = this.fetcher.getChainAssetList(this.chainName);
|
|
16
|
+
this._ibcData = this.fetcher.getChainIbcData(this.chainName);
|
|
17
|
+
this._chain = this.fetcher.getChain(this.chainName);
|
|
18
|
+
const supportedChains = this._ibcData.reduce((m, v) => {
|
|
19
|
+
if (!m.includes(v.chain_1.chain_name))
|
|
20
|
+
m.push(v.chain_1.chain_name);
|
|
21
|
+
if (!m.includes(v.chain_2.chain_name))
|
|
22
|
+
m.push(v.chain_2.chain_name);
|
|
23
|
+
return m;
|
|
24
|
+
}, []);
|
|
25
|
+
this._assetLists = this.fetcher.assetLists.filter((list) => supportedChains.includes(list.chain_name));
|
|
26
|
+
}
|
|
27
|
+
get chain() {
|
|
28
|
+
return this._chain;
|
|
29
|
+
}
|
|
30
|
+
get nativeAssetList() {
|
|
31
|
+
return this._assetList;
|
|
32
|
+
}
|
|
33
|
+
get assetLists() {
|
|
34
|
+
return getAssetLists(this.chainName, this._ibcData, this._assetLists);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=chain-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain-info.js","sourceRoot":"","sources":["../../src/chain-info.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAStD,MAAM,OAAO,SAAS;IACpB,SAAS,CAAS;IAClB,OAAO,CAAuB;IAEpB,MAAM,CAAQ;IACd,UAAU,CAAY;IACtB,WAAW,CAAc;IACzB,QAAQ,GAAc,EAAE,CAAC;IAEnC,YAAY,OAAyB;QACnC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAE/B,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEpD,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACpD,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;gBAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACpE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;gBAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACpE,OAAO,CAAC,CAAC;QACX,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACzD,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAC1C,CAAC;IACJ,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,IAAI,UAAU;QACZ,OAAO,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACxE,CAAC;CACF"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { getAssetByDenom, getAssetBySymbol, getDenomByCoinGeckoId, getCoinGeckoIdByDenom, getSymbolByDenom, getDenomBySymbol, getExponentByDenom, getExponentBySymbol, getTokenLogoByDenom, getTokenNameByDenom, getChainNameByDenom, mapCoinGeckoPricesToDenoms, convertBaseUnitToDollarValue, convertDollarValueToBaseUnit, convertBaseUnitToDisplayUnit, convertDisplayUnitToBaseUnit } from '@chain-registry/utils';
|
|
2
|
+
export class ChainRegistryChainUtil {
|
|
3
|
+
_assets = [];
|
|
4
|
+
_chainName;
|
|
5
|
+
constructor(options) {
|
|
6
|
+
const { chainName, chainInfo } = options;
|
|
7
|
+
this._chainName = options.chainName;
|
|
8
|
+
this._assets = [
|
|
9
|
+
{
|
|
10
|
+
assets: [
|
|
11
|
+
...chainInfo.nativeAssetList.assets,
|
|
12
|
+
...chainInfo.assetLists.flatMap(({ assets }) => assets)
|
|
13
|
+
],
|
|
14
|
+
chain_name: chainName
|
|
15
|
+
}
|
|
16
|
+
];
|
|
17
|
+
}
|
|
18
|
+
getAssetByDenom(denom) {
|
|
19
|
+
return getAssetByDenom(this._assets, denom, this._chainName);
|
|
20
|
+
}
|
|
21
|
+
getAssetBySymbol(symbol) {
|
|
22
|
+
return getAssetBySymbol(this._assets, symbol, this._chainName);
|
|
23
|
+
}
|
|
24
|
+
getDenomByCoinGeckoId(coinGeckoId) {
|
|
25
|
+
return getDenomByCoinGeckoId(this._assets, coinGeckoId, this._chainName);
|
|
26
|
+
}
|
|
27
|
+
getCoinGeckoIdByDenom(coinGeckoId) {
|
|
28
|
+
return getCoinGeckoIdByDenom(this._assets, coinGeckoId, {
|
|
29
|
+
chainName: this._chainName
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
getSymbolByDenom(denom) {
|
|
33
|
+
return getSymbolByDenom(this._assets, denom, this._chainName);
|
|
34
|
+
}
|
|
35
|
+
getDenomBySymbol(symbol) {
|
|
36
|
+
return getDenomBySymbol(this._assets, symbol, this._chainName);
|
|
37
|
+
}
|
|
38
|
+
getExponentByDenom(denom) {
|
|
39
|
+
return getExponentByDenom(this._assets, denom, this._chainName);
|
|
40
|
+
}
|
|
41
|
+
getExponentBySymbol(symbol) {
|
|
42
|
+
return getExponentBySymbol(this._assets, symbol, this._chainName);
|
|
43
|
+
}
|
|
44
|
+
getTokenLogoByDenom(denom) {
|
|
45
|
+
return getTokenLogoByDenom(this._assets, denom, this._chainName);
|
|
46
|
+
}
|
|
47
|
+
getTokenNameByDenom(denom) {
|
|
48
|
+
return getTokenNameByDenom(this._assets, denom, this._chainName);
|
|
49
|
+
}
|
|
50
|
+
getChainNameByDenom(denom) {
|
|
51
|
+
return getChainNameByDenom(this._assets, denom);
|
|
52
|
+
}
|
|
53
|
+
mapCoinGeckoPricesToDenoms(prices) {
|
|
54
|
+
return mapCoinGeckoPricesToDenoms(this._assets, prices);
|
|
55
|
+
}
|
|
56
|
+
convertBaseUnitToDollarValue(prices, symbol, amount) {
|
|
57
|
+
return convertBaseUnitToDollarValue(this._assets, prices, symbol, amount, this._chainName);
|
|
58
|
+
}
|
|
59
|
+
convertDollarValueToBaseUnit(prices, symbol, value) {
|
|
60
|
+
return convertDollarValueToBaseUnit(this._assets, prices, symbol, value, this._chainName);
|
|
61
|
+
}
|
|
62
|
+
convertBaseUnitToDisplayUnit(symbol, amount) {
|
|
63
|
+
return convertBaseUnitToDisplayUnit(this._assets, symbol, amount, this._chainName);
|
|
64
|
+
}
|
|
65
|
+
convertDisplayUnitToBaseUnit(symbol, amount) {
|
|
66
|
+
return convertDisplayUnitToBaseUnit(this._assets, symbol, amount, this._chainName);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=chain-util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain-util.js","sourceRoot":"","sources":["../../src/chain-util.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,EAC1B,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC5B,4BAA4B,EAC7B,MAAM,uBAAuB,CAAC;AAS/B,MAAM,OAAO,sBAAsB;IACzB,OAAO,GAAgB,EAAE,CAAC;IAC1B,UAAU,CAAS;IAE3B,YAAY,OAAsC;QAChD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG;YACb;gBACE,MAAM,EAAE;oBACN,GAAG,SAAS,CAAC,eAAe,CAAC,MAAM;oBACnC,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;iBACxD;gBACD,UAAU,EAAE,SAAS;aACtB;SACF,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,KAAY;QAC1B,OAAO,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/D,CAAC;IAED,gBAAgB,CAAC,MAAc;QAC7B,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACjE,CAAC;IAED,qBAAqB,CAAC,WAAmB;QACvC,OAAO,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3E,CAAC;IAED,qBAAqB,CAAC,WAAmB;QACvC,OAAO,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE;YACtD,SAAS,EAAE,IAAI,CAAC,UAAU;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,KAAY;QAC3B,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAChE,CAAC;IAED,gBAAgB,CAAC,MAAc;QAC7B,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACjE,CAAC;IAED,kBAAkB,CAAC,KAAY;QAC7B,OAAO,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAClE,CAAC;IAED,mBAAmB,CAAC,MAAc;QAChC,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC;IAED,mBAAmB,CAAC,KAAY;QAC9B,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACnE,CAAC;IAED,mBAAmB,CAAC,KAAY;QAC9B,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACnE,CAAC;IAED,mBAAmB,CAAC,KAAY;QAC9B,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,0BAA0B,CACxB,MAAyC;QAEzC,OAAO,0BAA0B,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED,4BAA4B,CAC1B,MAAqB,EACrB,MAAc,EACd,MAAuB;QAEvB,OAAO,4BAA4B,CACjC,IAAI,CAAC,OAAO,EACZ,MAAM,EACN,MAAM,EACN,MAAM,EACN,IAAI,CAAC,UAAU,CAChB,CAAC;IACJ,CAAC;IAED,4BAA4B,CAC1B,MAAqB,EACrB,MAAc,EACd,KAAsB;QAEtB,OAAO,4BAA4B,CACjC,IAAI,CAAC,OAAO,EACZ,MAAM,EACN,MAAM,EACN,KAAK,EACL,IAAI,CAAC,UAAU,CAChB,CAAC;IACJ,CAAC;IAED,4BAA4B,CAC1B,MAAc,EACd,MAAuB;QAEvB,OAAO,4BAA4B,CACjC,IAAI,CAAC,OAAO,EACZ,MAAM,EACN,MAAM,EACN,IAAI,CAAC,UAAU,CAChB,CAAC;IACJ,CAAC;IAED,4BAA4B,CAC1B,MAAc,EACd,MAAuB;QAEvB,OAAO,4BAA4B,CACjC,IAAI,CAAC,OAAO,EACZ,MAAM,EACN,MAAM,EACN,IAAI,CAAC,UAAU,CAChB,CAAC;IACJ,CAAC;CACF"}
|
package/esm/fetcher.js
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { getAssetLists } from '@chain-registry/utils';
|
|
2
|
+
import { basename } from 'bfs-path';
|
|
3
|
+
import fetch from 'cross-fetch';
|
|
4
|
+
import { ChainInfo } from './chain-info';
|
|
5
|
+
const fetchUrl = (url) => {
|
|
6
|
+
return fetch(url).then((res) => {
|
|
7
|
+
if (res.status >= 400) {
|
|
8
|
+
throw new Error('Bad response');
|
|
9
|
+
}
|
|
10
|
+
return res.json();
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
// QUESTION: should ChainRegistryFetcher just be ChainRegistry?
|
|
14
|
+
export class ChainRegistryFetcher {
|
|
15
|
+
urls = [];
|
|
16
|
+
_assetLists = [];
|
|
17
|
+
_chains = [];
|
|
18
|
+
_ibcData = [];
|
|
19
|
+
chainInfoList = [];
|
|
20
|
+
constructor(options = {}) {
|
|
21
|
+
//
|
|
22
|
+
if (options.chains) {
|
|
23
|
+
this._chains = options.chains;
|
|
24
|
+
}
|
|
25
|
+
if (options.assetLists) {
|
|
26
|
+
this._assetLists = options.assetLists;
|
|
27
|
+
}
|
|
28
|
+
if (options.ibcData) {
|
|
29
|
+
this._ibcData = options.ibcData;
|
|
30
|
+
}
|
|
31
|
+
if (options.urls) {
|
|
32
|
+
this.urls = options.urls;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
get chains() {
|
|
36
|
+
return this._chains;
|
|
37
|
+
}
|
|
38
|
+
get assetLists() {
|
|
39
|
+
return this._assetLists;
|
|
40
|
+
}
|
|
41
|
+
get ibcData() {
|
|
42
|
+
return this._ibcData;
|
|
43
|
+
}
|
|
44
|
+
getChain(chainName) {
|
|
45
|
+
return this._chains.find((chain) => chain.chain_name === chainName);
|
|
46
|
+
}
|
|
47
|
+
getChainAssetList(chainName) {
|
|
48
|
+
return this._assetLists.find((list) => list.chain_name === chainName);
|
|
49
|
+
}
|
|
50
|
+
getGeneratedAssetLists(chainName) {
|
|
51
|
+
return getAssetLists(chainName, this._ibcData, this._assetLists);
|
|
52
|
+
}
|
|
53
|
+
getChainIbcData(chainName) {
|
|
54
|
+
return this._ibcData.filter((info) => info.chain_1.chain_name === chainName ||
|
|
55
|
+
info.chain_2.chain_name === chainName);
|
|
56
|
+
}
|
|
57
|
+
getChainInfo(chainName) {
|
|
58
|
+
let chainInfo = this.chainInfoList.find((it) => it.chainName === chainName);
|
|
59
|
+
if (!chainInfo) {
|
|
60
|
+
chainInfo = new ChainInfo({
|
|
61
|
+
chainName: chainName,
|
|
62
|
+
fetcher: this
|
|
63
|
+
});
|
|
64
|
+
this.chainInfoList.push(chainInfo);
|
|
65
|
+
}
|
|
66
|
+
return chainInfo;
|
|
67
|
+
}
|
|
68
|
+
upsertChain(data) {
|
|
69
|
+
const found = this._chains.find((chain) => {
|
|
70
|
+
return (chain.chain_name === data.chain_name &&
|
|
71
|
+
chain.network_type === data.network_type);
|
|
72
|
+
});
|
|
73
|
+
if (!found) {
|
|
74
|
+
this._chains.push(data);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
this._chains = this._chains.map((chain) => {
|
|
78
|
+
if (chain.chain_name === data.chain_name &&
|
|
79
|
+
chain.network_type === data.network_type) {
|
|
80
|
+
return data;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
return chain;
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
updateAssetList(data) {
|
|
88
|
+
const found = this._assetLists.find((list) => {
|
|
89
|
+
return list.chain_name === data.chain_name;
|
|
90
|
+
});
|
|
91
|
+
if (!found) {
|
|
92
|
+
this._assetLists.push(data);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
this._assetLists = this._assetLists.map((list) => {
|
|
96
|
+
if (list.chain_name === data.chain_name) {
|
|
97
|
+
return data;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
return list;
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
upsertIbcData(data) {
|
|
105
|
+
const found = this._ibcData.find((info) => {
|
|
106
|
+
return (info.chain_1.chain_name === data.chain_1.chain_name &&
|
|
107
|
+
info.chain_2.chain_name === data.chain_2.chain_name);
|
|
108
|
+
});
|
|
109
|
+
if (!found) {
|
|
110
|
+
this._ibcData.push(data);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
this._ibcData = this._ibcData.map((info) => {
|
|
114
|
+
if (info.chain_1.chain_name === data.chain_1.chain_name &&
|
|
115
|
+
info.chain_2.chain_name === data.chain_2.chain_name) {
|
|
116
|
+
return data;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
return info;
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
update(data) {
|
|
124
|
+
if (!data.$schema)
|
|
125
|
+
throw new Error('not a registered JSON schema type');
|
|
126
|
+
const type = basename(data.$schema, '.schema.json');
|
|
127
|
+
switch (type) {
|
|
128
|
+
case 'chain':
|
|
129
|
+
this.upsertChain(data);
|
|
130
|
+
break;
|
|
131
|
+
case 'assetlist':
|
|
132
|
+
this.updateAssetList(data);
|
|
133
|
+
break;
|
|
134
|
+
case 'ibc_data':
|
|
135
|
+
this.upsertIbcData(data);
|
|
136
|
+
break;
|
|
137
|
+
default:
|
|
138
|
+
throw new Error('unknown schema type');
|
|
139
|
+
}
|
|
140
|
+
this.chainInfoList.forEach((chainInfo) => {
|
|
141
|
+
chainInfo.refresh();
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
async fetch(url) {
|
|
145
|
+
const data = await fetchUrl(url);
|
|
146
|
+
this.update(data);
|
|
147
|
+
}
|
|
148
|
+
async fetchUrls() {
|
|
149
|
+
return Promise.all(this.urls.map((url) => this.fetch(url)));
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=fetcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../../src/fetcher.ts"],"names":[],"mappings":"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"}
|
package/esm/index.js
ADDED
package/esm/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
|
package/esm/registry.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { ChainRegistryChainUtil } from './chain-util';
|
|
2
|
+
import { ChainRegistryFetcher } from './fetcher';
|
|
3
|
+
export class ChainRegistryClient extends ChainRegistryFetcher {
|
|
4
|
+
_options = {
|
|
5
|
+
chainNames: [],
|
|
6
|
+
baseUrl: 'https://raw.githubusercontent.com/cosmos/chain-registry/master'
|
|
7
|
+
};
|
|
8
|
+
constructor(options) {
|
|
9
|
+
const { chainNames, assetListNames, ibcNamePairs, baseUrl, ...restOptions } = options;
|
|
10
|
+
super(restOptions);
|
|
11
|
+
this._options = {
|
|
12
|
+
...this._options,
|
|
13
|
+
chainNames: chainNames || this._options.chainNames,
|
|
14
|
+
assetListNames: assetListNames || this._options.assetListNames,
|
|
15
|
+
ibcNamePairs: ibcNamePairs || this._options.ibcNamePairs,
|
|
16
|
+
baseUrl: baseUrl || this._options.baseUrl
|
|
17
|
+
};
|
|
18
|
+
this.generateUrls();
|
|
19
|
+
}
|
|
20
|
+
generateUrls() {
|
|
21
|
+
const { chainNames, assetListNames, ibcNamePairs, baseUrl } = this._options;
|
|
22
|
+
const chainUrls = chainNames.map((chain) => {
|
|
23
|
+
return `${baseUrl}/${chain}/chain.json`;
|
|
24
|
+
});
|
|
25
|
+
const assetlistUrls = (assetListNames || chainNames).map((chain) => {
|
|
26
|
+
return `${baseUrl}/${chain}/assetlist.json`;
|
|
27
|
+
});
|
|
28
|
+
let namePairs = ibcNamePairs;
|
|
29
|
+
if (!namePairs) {
|
|
30
|
+
namePairs = [];
|
|
31
|
+
for (let i = 0; i < chainNames.length; i++) {
|
|
32
|
+
for (let j = i + 1; j < chainNames.length; j++) {
|
|
33
|
+
namePairs.push([chainNames[i], chainNames[j]]);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const ibcUrls = namePairs.map((namePair) => {
|
|
38
|
+
const fileName = namePair[0].localeCompare(namePair[1]) <= 0
|
|
39
|
+
? `${namePair[0]}-${namePair[1]}.json`
|
|
40
|
+
: `${namePair[1]}-${namePair[0]}.json`;
|
|
41
|
+
return `${baseUrl}/_IBC/${fileName}`;
|
|
42
|
+
});
|
|
43
|
+
this.urls = [
|
|
44
|
+
...new Set([
|
|
45
|
+
...chainUrls,
|
|
46
|
+
...assetlistUrls,
|
|
47
|
+
...ibcUrls,
|
|
48
|
+
...(this.urls || [])
|
|
49
|
+
])
|
|
50
|
+
];
|
|
51
|
+
}
|
|
52
|
+
getChainUtil(chainName) {
|
|
53
|
+
const chainInfo = this.getChainInfo(chainName);
|
|
54
|
+
return new ChainRegistryChainUtil({
|
|
55
|
+
chainName: chainName,
|
|
56
|
+
chainInfo: chainInfo
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,6 @@ export declare class ChainRegistryFetcher implements ChainRegistry {
|
|
|
25
25
|
updateAssetList(data: AssetList): void;
|
|
26
26
|
upsertIbcData(data: IBCInfo): void;
|
|
27
27
|
update(data: Chain | AssetList | IBCInfo): void;
|
|
28
|
-
fetch(url:
|
|
28
|
+
fetch(url: string): Promise<void>;
|
|
29
29
|
fetchUrls(): Promise<void[]>;
|
|
30
30
|
}
|
package/fetcher.js
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
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.ChainRegistryFetcher = void 0;
|
|
7
|
+
const utils_1 = require("@chain-registry/utils");
|
|
8
|
+
const bfs_path_1 = require("bfs-path");
|
|
9
|
+
const cross_fetch_1 = __importDefault(require("cross-fetch"));
|
|
10
|
+
const chain_info_1 = require("./chain-info");
|
|
11
|
+
const fetchUrl = (url) => {
|
|
12
|
+
return (0, cross_fetch_1.default)(url).then((res) => {
|
|
13
|
+
if (res.status >= 400) {
|
|
14
|
+
throw new Error('Bad response');
|
|
15
|
+
}
|
|
16
|
+
return res.json();
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
// QUESTION: should ChainRegistryFetcher just be ChainRegistry?
|
|
20
|
+
class ChainRegistryFetcher {
|
|
21
|
+
urls = [];
|
|
22
|
+
_assetLists = [];
|
|
23
|
+
_chains = [];
|
|
24
|
+
_ibcData = [];
|
|
25
|
+
chainInfoList = [];
|
|
26
|
+
constructor(options = {}) {
|
|
27
|
+
//
|
|
28
|
+
if (options.chains) {
|
|
29
|
+
this._chains = options.chains;
|
|
30
|
+
}
|
|
31
|
+
if (options.assetLists) {
|
|
32
|
+
this._assetLists = options.assetLists;
|
|
33
|
+
}
|
|
34
|
+
if (options.ibcData) {
|
|
35
|
+
this._ibcData = options.ibcData;
|
|
36
|
+
}
|
|
37
|
+
if (options.urls) {
|
|
38
|
+
this.urls = options.urls;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
get chains() {
|
|
42
|
+
return this._chains;
|
|
43
|
+
}
|
|
44
|
+
get assetLists() {
|
|
45
|
+
return this._assetLists;
|
|
46
|
+
}
|
|
47
|
+
get ibcData() {
|
|
48
|
+
return this._ibcData;
|
|
49
|
+
}
|
|
50
|
+
getChain(chainName) {
|
|
51
|
+
return this._chains.find((chain) => chain.chain_name === chainName);
|
|
52
|
+
}
|
|
53
|
+
getChainAssetList(chainName) {
|
|
54
|
+
return this._assetLists.find((list) => list.chain_name === chainName);
|
|
55
|
+
}
|
|
56
|
+
getGeneratedAssetLists(chainName) {
|
|
57
|
+
return (0, utils_1.getAssetLists)(chainName, this._ibcData, this._assetLists);
|
|
58
|
+
}
|
|
59
|
+
getChainIbcData(chainName) {
|
|
60
|
+
return this._ibcData.filter((info) => info.chain_1.chain_name === chainName ||
|
|
61
|
+
info.chain_2.chain_name === chainName);
|
|
62
|
+
}
|
|
63
|
+
getChainInfo(chainName) {
|
|
64
|
+
let chainInfo = this.chainInfoList.find((it) => it.chainName === chainName);
|
|
65
|
+
if (!chainInfo) {
|
|
66
|
+
chainInfo = new chain_info_1.ChainInfo({
|
|
67
|
+
chainName: chainName,
|
|
68
|
+
fetcher: this
|
|
69
|
+
});
|
|
70
|
+
this.chainInfoList.push(chainInfo);
|
|
71
|
+
}
|
|
72
|
+
return chainInfo;
|
|
73
|
+
}
|
|
74
|
+
upsertChain(data) {
|
|
75
|
+
const found = this._chains.find((chain) => {
|
|
76
|
+
return (chain.chain_name === data.chain_name &&
|
|
77
|
+
chain.network_type === data.network_type);
|
|
78
|
+
});
|
|
79
|
+
if (!found) {
|
|
80
|
+
this._chains.push(data);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
this._chains = this._chains.map((chain) => {
|
|
84
|
+
if (chain.chain_name === data.chain_name &&
|
|
85
|
+
chain.network_type === data.network_type) {
|
|
86
|
+
return data;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
return chain;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
updateAssetList(data) {
|
|
94
|
+
const found = this._assetLists.find((list) => {
|
|
95
|
+
return list.chain_name === data.chain_name;
|
|
96
|
+
});
|
|
97
|
+
if (!found) {
|
|
98
|
+
this._assetLists.push(data);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
this._assetLists = this._assetLists.map((list) => {
|
|
102
|
+
if (list.chain_name === data.chain_name) {
|
|
103
|
+
return data;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
return list;
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
upsertIbcData(data) {
|
|
111
|
+
const found = this._ibcData.find((info) => {
|
|
112
|
+
return (info.chain_1.chain_name === data.chain_1.chain_name &&
|
|
113
|
+
info.chain_2.chain_name === data.chain_2.chain_name);
|
|
114
|
+
});
|
|
115
|
+
if (!found) {
|
|
116
|
+
this._ibcData.push(data);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
this._ibcData = this._ibcData.map((info) => {
|
|
120
|
+
if (info.chain_1.chain_name === data.chain_1.chain_name &&
|
|
121
|
+
info.chain_2.chain_name === data.chain_2.chain_name) {
|
|
122
|
+
return data;
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
return info;
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
update(data) {
|
|
130
|
+
if (!data.$schema)
|
|
131
|
+
throw new Error('not a registered JSON schema type');
|
|
132
|
+
const type = (0, bfs_path_1.basename)(data.$schema, '.schema.json');
|
|
133
|
+
switch (type) {
|
|
134
|
+
case 'chain':
|
|
135
|
+
this.upsertChain(data);
|
|
136
|
+
break;
|
|
137
|
+
case 'assetlist':
|
|
138
|
+
this.updateAssetList(data);
|
|
139
|
+
break;
|
|
140
|
+
case 'ibc_data':
|
|
141
|
+
this.upsertIbcData(data);
|
|
142
|
+
break;
|
|
143
|
+
default:
|
|
144
|
+
throw new Error('unknown schema type');
|
|
145
|
+
}
|
|
146
|
+
this.chainInfoList.forEach((chainInfo) => {
|
|
147
|
+
chainInfo.refresh();
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
async fetch(url) {
|
|
151
|
+
const data = await fetchUrl(url);
|
|
152
|
+
this.update(data);
|
|
153
|
+
}
|
|
154
|
+
async fetchUrls() {
|
|
155
|
+
return Promise.all(this.urls.map((url) => this.fetch(url)));
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
exports.ChainRegistryFetcher = ChainRegistryFetcher;
|
|
159
|
+
//# sourceMappingURL=fetcher.js.map
|
package/fetcher.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../src/fetcher.ts"],"names":[],"mappings":"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"}
|