@chain-registry/client
Advanced tools
Comparing version 1.13.0 to 1.14.0
@@ -6,2 +6,10 @@ # Change Log | ||
# [1.14.0](https://github.com/cosmology-tech/chain-registry/compare/@chain-registry/client@1.13.0...@chain-registry/client@1.14.0) (2023-07-11) | ||
**Note:** Version bump only for package @chain-registry/client | ||
# [1.13.0](https://github.com/cosmology-tech/chain-registry/compare/@chain-registry/client@1.12.0...@chain-registry/client@1.13.0) (2023-07-08) | ||
@@ -8,0 +16,0 @@ |
@@ -6,2 +6,35 @@ "use strict"; | ||
}); | ||
var _chainInfo = require("./chain-info"); | ||
Object.keys(_chainInfo).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
if (key in exports && exports[key] === _chainInfo[key]) return; | ||
Object.defineProperty(exports, key, { | ||
enumerable: true, | ||
get: function get() { | ||
return _chainInfo[key]; | ||
} | ||
}); | ||
}); | ||
var _chainUtil = require("./chain-util"); | ||
Object.keys(_chainUtil).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
if (key in exports && exports[key] === _chainUtil[key]) return; | ||
Object.defineProperty(exports, key, { | ||
enumerable: true, | ||
get: function get() { | ||
return _chainUtil[key]; | ||
} | ||
}); | ||
}); | ||
var _fetcher = require("./fetcher"); | ||
Object.keys(_fetcher).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
if (key in exports && exports[key] === _fetcher[key]) return; | ||
Object.defineProperty(exports, key, { | ||
enumerable: true, | ||
get: function get() { | ||
return _fetcher[key]; | ||
} | ||
}); | ||
}); | ||
var _registry = require("./registry"); | ||
@@ -8,0 +41,0 @@ Object.keys(_registry).forEach(function (key) { |
@@ -7,259 +7,85 @@ "use strict"; | ||
}); | ||
exports.ChainRegistryFetcher = exports.ChainInfo = void 0; | ||
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); | ||
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); | ||
exports.ChainRegistryClient = void 0; | ||
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); | ||
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); | ||
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); | ||
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); | ||
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); | ||
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); | ||
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); | ||
var _utils = require("@chain-registry/utils"); | ||
var _bfsPath = require("bfs-path"); | ||
var _crossFetch = _interopRequireDefault(require("cross-fetch")); | ||
var fetchUrl = function fetchUrl(url) { | ||
return (0, _crossFetch["default"])(url).then(function (res) { | ||
if (res.status >= 400) { | ||
throw new Error('Bad response'); | ||
} | ||
return res.json(); | ||
}); | ||
}; | ||
var ChainInfo = /*#__PURE__*/function () { | ||
function ChainInfo(options) { | ||
(0, _classCallCheck2["default"])(this, ChainInfo); | ||
(0, _defineProperty2["default"])(this, "chain_name", void 0); | ||
(0, _defineProperty2["default"])(this, "fetcher", void 0); | ||
(0, _defineProperty2["default"])(this, "_asset_list", void 0); | ||
(0, _defineProperty2["default"])(this, "_asset_lists", void 0); | ||
(0, _defineProperty2["default"])(this, "_chain", void 0); | ||
(0, _defineProperty2["default"])(this, "_ibc_data", []); | ||
this.chain_name = options.chain_name; | ||
this.fetcher = options.fetcher; | ||
this.refresh(); | ||
var _chainUtil = require("./chain-util"); | ||
var _fetcher = require("./fetcher"); | ||
var _excluded = ["chainNames", "assetListNames", "ibcNamePairs", "baseUrl"]; | ||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } | ||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } | ||
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } | ||
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } | ||
var ChainRegistryClient = /*#__PURE__*/function (_ChainRegistryFetcher) { | ||
(0, _inherits2["default"])(ChainRegistryClient, _ChainRegistryFetcher); | ||
var _super = _createSuper(ChainRegistryClient); | ||
function ChainRegistryClient(options) { | ||
var _this; | ||
(0, _classCallCheck2["default"])(this, ChainRegistryClient); | ||
var chainNames = options.chainNames, | ||
assetListNames = options.assetListNames, | ||
ibcNamePairs = options.ibcNamePairs, | ||
baseUrl = options.baseUrl, | ||
restOptions = (0, _objectWithoutProperties2["default"])(options, _excluded); | ||
_this = _super.call(this, restOptions); | ||
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_options", { | ||
chainNames: [], | ||
baseUrl: 'https://raw.githubusercontent.com/cosmos/chain-registry/master' | ||
}); | ||
_this._options = _objectSpread(_objectSpread({}, _this._options), {}, { | ||
chainNames: chainNames || _this._options.chainNames, | ||
assetListNames: assetListNames || _this._options.assetListNames, | ||
ibcNamePairs: ibcNamePairs || _this._options.ibcNamePairs, | ||
baseUrl: baseUrl || _this._options.baseUrl | ||
}); | ||
_this.generateUrls(); | ||
return _this; | ||
} | ||
(0, _createClass2["default"])(ChainInfo, [{ | ||
key: "refresh", | ||
value: function refresh() { | ||
this._asset_list = this.fetcher.getChainAssetList(this.chain_name); | ||
this._ibc_data = this.fetcher.getChainIbcData(this.chain_name); | ||
this._chain = this.fetcher.getChain(this.chain_name); | ||
var supportedChains = this._ibc_data.reduce(function (m, v) { | ||
if (!m.includes(v.chain_1.chain_name)) m.push(v.chain_1.chain_name); | ||
if (!m.includes(v.chain_2.chain_name)) m.push(v.chain_2.chain_name); | ||
return m; | ||
}, []); | ||
this._asset_lists = this.fetcher.assetLists.filter(function (list) { | ||
return supportedChains.includes(list.chain_name); | ||
(0, _createClass2["default"])(ChainRegistryClient, [{ | ||
key: "generateUrls", | ||
value: function generateUrls() { | ||
var _this$_options = this._options, | ||
chainNames = _this$_options.chainNames, | ||
assetListNames = _this$_options.assetListNames, | ||
ibcNamePairs = _this$_options.ibcNamePairs, | ||
baseUrl = _this$_options.baseUrl; | ||
var chainUrls = chainNames.map(function (chain) { | ||
return "".concat(baseUrl, "/").concat(chain, "/chain.json"); | ||
}); | ||
} | ||
}, { | ||
key: "nativeAssetLists", | ||
get: function get() { | ||
return this._asset_list; | ||
} | ||
}, { | ||
key: "chain", | ||
get: function get() { | ||
return this._chain; | ||
} | ||
}, { | ||
key: "assetLists", | ||
get: function get() { | ||
return (0, _utils.getAssetLists)(this.chain_name, this._ibc_data, this._asset_lists); | ||
} | ||
}]); | ||
return ChainInfo; | ||
}(); // QUESTION: should ChainRegistryFetcher just be ChainRegistry? | ||
exports.ChainInfo = ChainInfo; | ||
var ChainRegistryFetcher = /*#__PURE__*/function () { | ||
function ChainRegistryFetcher() { | ||
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
(0, _classCallCheck2["default"])(this, ChainRegistryFetcher); | ||
(0, _defineProperty2["default"])(this, "_asset_lists", []); | ||
(0, _defineProperty2["default"])(this, "_chains", []); | ||
(0, _defineProperty2["default"])(this, "_ibc_data", []); | ||
(0, _defineProperty2["default"])(this, "urls", []); | ||
// | ||
if (options.assetLists) { | ||
this._asset_lists = options.assetLists; | ||
} | ||
if (options.chains) { | ||
this._chains = options.chains; | ||
} | ||
if (options.ibcData) { | ||
this._ibc_data = options.ibcData; | ||
} | ||
if (options.urls) { | ||
this.urls = options.urls; | ||
} | ||
} | ||
(0, _createClass2["default"])(ChainRegistryFetcher, [{ | ||
key: "assetLists", | ||
get: function get() { | ||
return this._asset_lists; | ||
} | ||
}, { | ||
key: "getChainAssetList", | ||
value: function getChainAssetList(chainName) { | ||
return this._asset_lists.find(function (list) { | ||
return list.chain_name === chainName; | ||
var assetlistUrls = (assetListNames || chainNames).map(function (chain) { | ||
return "".concat(baseUrl, "/").concat(chain, "/assetlist.json"); | ||
}); | ||
} | ||
}, { | ||
key: "getGeneratedAssetLists", | ||
value: function getGeneratedAssetLists(chainName) { | ||
return (0, _utils.getAssetLists)(chainName, this._ibc_data, this._asset_lists); | ||
} | ||
}, { | ||
key: "chains", | ||
get: function get() { | ||
return this._chains; | ||
} | ||
}, { | ||
key: "getChain", | ||
value: function getChain(chainName) { | ||
return this._chains.find(function (chain) { | ||
return chain.chain_name === chainName; | ||
}); | ||
} | ||
}, { | ||
key: "ibcData", | ||
get: function get() { | ||
return this._ibc_data; | ||
} | ||
}, { | ||
key: "getChainIbcData", | ||
value: function getChainIbcData(chainName) { | ||
return this._ibc_data.filter(function (info) { | ||
return info.chain_1.chain_name === chainName || info.chain_2.chain_name === chainName; | ||
}); | ||
} | ||
}, { | ||
key: "getChainInfo", | ||
value: function getChainInfo(chainName) { | ||
return new ChainInfo({ | ||
chain_name: chainName, | ||
fetcher: this | ||
}); | ||
} | ||
}, { | ||
key: "upsertChain", | ||
value: function upsertChain(data) { | ||
var found = this._chains.find(function (chain) { | ||
return chain.chain_name === data.chain_name && chain.network_type === data.network_type; | ||
}); | ||
if (!found) { | ||
this._chains.push(data); | ||
return; | ||
} | ||
this._chains = this._chains.map(function (chain) { | ||
if (chain.chain_name === data.chain_name && chain.network_type === data.network_type) { | ||
return data; | ||
} else { | ||
return chain; | ||
var namePairs = ibcNamePairs; | ||
if (!namePairs) { | ||
namePairs = []; | ||
for (var i = 0; i < chainNames.length; i++) { | ||
for (var j = i + 1; j < chainNames.length; j++) { | ||
namePairs.push([chainNames[i], chainNames[j]]); | ||
} | ||
} | ||
}); | ||
} | ||
}, { | ||
key: "updateAssetList", | ||
value: function updateAssetList(data) { | ||
var found = this._asset_lists.find(function (list) { | ||
return list.chain_name === data.chain_name; | ||
}); | ||
if (!found) { | ||
this._asset_lists.push(data); | ||
return; | ||
} | ||
this._asset_lists = this._asset_lists.map(function (list) { | ||
if (list.chain_name === data.chain_name) { | ||
return data; | ||
} else { | ||
return list; | ||
} | ||
var ibcUrls = namePairs.map(function (namePair) { | ||
var fileName = namePair[0].localeCompare(namePair[1]) <= 0 ? "".concat(namePair[0], "-").concat(namePair[1], ".json") : "".concat(namePair[1], "-").concat(namePair[0], ".json"); | ||
return "".concat(baseUrl, "/_IBC/").concat(fileName); | ||
}); | ||
this.urls = [].concat((0, _toConsumableArray2["default"])(chainUrls), (0, _toConsumableArray2["default"])(assetlistUrls), (0, _toConsumableArray2["default"])(ibcUrls)); | ||
} | ||
}, { | ||
key: "upsertIbcData", | ||
value: function upsertIbcData(data) { | ||
var found = this._ibc_data.find(function (info) { | ||
return info.chain_1.chain_name === data.chain_1.chain_name && info.chain_2.chain_name === data.chain_2.chain_name; | ||
key: "getChainUtil", | ||
value: function getChainUtil(chainName) { | ||
var chainInfo = this.getChainInfo(chainName); | ||
return new _chainUtil.ChainRegistryChainUtil({ | ||
chain_name: chainName, | ||
chain_info: chainInfo | ||
}); | ||
if (!found) { | ||
this._ibc_data.push(data); | ||
return; | ||
} | ||
this._ibc_data = this._ibc_data.map(function (info) { | ||
if (info.chain_1.chain_name === data.chain_1.chain_name && info.chain_2.chain_name === data.chain_2.chain_name) { | ||
return data; | ||
} else { | ||
return info; | ||
} | ||
}); | ||
} | ||
}, { | ||
key: "update", | ||
value: function update(data) { | ||
if (!data.$schema) throw new Error('not a registered JSON schema type'); | ||
var type = (0, _bfsPath.basename)(data.$schema, '.schema.json'); | ||
switch (type) { | ||
case 'chain': | ||
this.upsertChain(data); | ||
break; | ||
case 'assetlist': | ||
this.updateAssetList(data); | ||
break; | ||
case 'ibc_data': | ||
this.upsertIbcData(data); | ||
break; | ||
default: | ||
throw new Error('unknown schema type'); | ||
} | ||
} | ||
}, { | ||
key: "fetch", | ||
value: function () { | ||
var _fetch = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(url) { | ||
var data; | ||
return _regenerator["default"].wrap(function _callee$(_context) { | ||
while (1) switch (_context.prev = _context.next) { | ||
case 0: | ||
_context.next = 2; | ||
return fetchUrl(url); | ||
case 2: | ||
data = _context.sent; | ||
this.update(data); | ||
case 4: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
}, _callee, this); | ||
})); | ||
function fetch(_x) { | ||
return _fetch.apply(this, arguments); | ||
} | ||
return fetch; | ||
}() | ||
}, { | ||
key: "fetchUrls", | ||
value: function () { | ||
var _fetchUrls = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { | ||
var _this = this; | ||
return _regenerator["default"].wrap(function _callee2$(_context2) { | ||
while (1) switch (_context2.prev = _context2.next) { | ||
case 0: | ||
return _context2.abrupt("return", Promise.all(this.urls.map(function (url) { | ||
return _this.fetch(url); | ||
}))); | ||
case 1: | ||
case "end": | ||
return _context2.stop(); | ||
} | ||
}, _callee2, this); | ||
})); | ||
function fetchUrls() { | ||
return _fetchUrls.apply(this, arguments); | ||
} | ||
return fetchUrls; | ||
}() | ||
}]); | ||
return ChainRegistryFetcher; | ||
}(); | ||
exports.ChainRegistryFetcher = ChainRegistryFetcher; | ||
return ChainRegistryClient; | ||
}(_fetcher.ChainRegistryFetcher); | ||
exports.ChainRegistryClient = ChainRegistryClient; |
{ | ||
"name": "@chain-registry/client", | ||
"version": "1.13.0", | ||
"version": "1.14.0", | ||
"description": "Chain Registry Client", | ||
@@ -77,7 +77,7 @@ "author": "Dan Lynch <pyramation@gmail.com>", | ||
"@chain-registry/types": "^0.16.0", | ||
"@chain-registry/utils": "^1.12.0", | ||
"@chain-registry/utils": "^1.13.0", | ||
"bfs-path": "^1.0.2", | ||
"cross-fetch": "^3.1.5" | ||
}, | ||
"gitHead": "cd90a190410a65d842f35fc7a053c41fbd310866" | ||
"gitHead": "235baabaa618def6fc1bd1de9cd84660c30d1d71" | ||
} |
@@ -0,1 +1,4 @@ | ||
export * from './chain-info'; | ||
export * from './chain-util'; | ||
export * from './fetcher'; | ||
export * from './registry'; |
@@ -1,45 +0,16 @@ | ||
import { AssetList, Chain, ChainRegistry, IBCInfo } from '@chain-registry/types'; | ||
export interface ChainRegistryFetcherOptions { | ||
assetLists?: AssetList[]; | ||
chains?: Chain[]; | ||
ibcData?: IBCInfo[]; | ||
urls?: string[]; | ||
import { ChainRegistryChainUtil } from './chain-util'; | ||
import { ChainRegistryFetcher, ChainRegistryFetcherOptions } from './fetcher'; | ||
export interface ChainRegistryClientOptions | ||
extends ChainRegistryFetcherOptions { | ||
chainNames: string[]; | ||
assetListNames?: string[]; | ||
ibcNamePairs?: string[][]; | ||
baseUrl?: string; | ||
} | ||
export interface ChainInfoOptions { | ||
chain_name: string; | ||
fetcher: ChainRegistryFetcher; | ||
export declare class ChainRegistryClient extends ChainRegistryFetcher { | ||
protected _options: ChainRegistryClientOptions; | ||
constructor(options: ChainRegistryClientOptions); | ||
generateUrls(): void; | ||
getChainUtil(chainName: string): ChainRegistryChainUtil; | ||
} | ||
export declare class ChainInfo { | ||
chain_name: string; | ||
fetcher: ChainRegistryFetcher; | ||
protected _asset_list: AssetList; | ||
protected _asset_lists: AssetList[]; | ||
protected _chain: Chain; | ||
protected _ibc_data: IBCInfo[]; | ||
constructor(options: ChainInfoOptions); | ||
refresh(): void; | ||
get nativeAssetLists(): AssetList; | ||
get chain(): Chain; | ||
get assetLists(): any[]; | ||
} | ||
export declare class ChainRegistryFetcher implements ChainRegistry { | ||
protected _asset_lists: AssetList[]; | ||
protected _chains: Chain[]; | ||
protected _ibc_data: IBCInfo[]; | ||
urls: string[]; | ||
constructor(options?: ChainRegistryFetcherOptions); | ||
get assetLists(): AssetList[]; | ||
getChainAssetList(chainName: string): AssetList; | ||
getGeneratedAssetLists(chainName: string): AssetList[]; | ||
get chains(): Chain[]; | ||
getChain(chainName: string): Chain; | ||
get ibcData(): IBCInfo[]; | ||
getChainIbcData(chainName: string): IBCInfo[]; | ||
getChainInfo(chainName: string): ChainInfo; | ||
upsertChain(data: Chain): void; | ||
updateAssetList(data: AssetList): void; | ||
upsertIbcData(data: IBCInfo): void; | ||
update(data: Chain | AssetList | IBCInfo): void; | ||
fetch(url: any): Promise<void>; | ||
fetchUrls(): Promise<void[]>; | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
35970
14
614
2