@chain-registry/utils 1.1.0 → 1.2.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/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.2.0](https://github.com/cosmology-tech/chain-registry/compare/@chain-registry/utils@1.1.0...@chain-registry/utils@1.2.0) (2022-10-20)
7
+
8
+ **Note:** Version bump only for package @chain-registry/utils
9
+
10
+
11
+
12
+
13
+
6
14
  # [1.1.0](https://github.com/cosmology-tech/chain-registry/compare/@chain-registry/utils@1.0.1...@chain-registry/utils@1.1.0) (2022-10-20)
7
15
 
8
16
  **Note:** Version bump only for package @chain-registry/utils
package/main/index.js CHANGED
@@ -3,9 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
7
6
  var _utils = require("./utils");
8
-
9
7
  Object.keys(_utils).forEach(function (key) {
10
8
  if (key === "default" || key === "__esModule") return;
11
9
  if (key in exports && exports[key] === _utils[key]) return;
package/main/utils.js CHANGED
@@ -1,36 +1,23 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.ibcDenom = exports.getWasmChannel = exports.getTransferChannel = exports.getNonTransferChannel = exports.getIbcInfo = exports.getIbcDenomByBase = exports.getIbcAssets = exports.getIbcAssetPath = exports.getCw20Assets = exports.getAssetLists = void 0;
9
-
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
-
16
11
  var _sha = require("sha.js");
17
-
18
12
  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; }
19
-
20
13
  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; }
21
-
22
14
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
23
-
24
15
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
25
-
26
16
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
27
-
28
17
  var ibcDenom = function ibcDenom(paths, coinMinimalDenom) {
29
18
  var prefixes = [];
30
-
31
19
  var _iterator = _createForOfIteratorHelper(paths),
32
- _step;
33
-
20
+ _step;
34
21
  try {
35
22
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
36
23
  var path = _step.value;
@@ -41,146 +28,110 @@ var ibcDenom = function ibcDenom(paths, coinMinimalDenom) {
41
28
  } finally {
42
29
  _iterator.f();
43
30
  }
44
-
45
31
  var prefix = prefixes.join('/');
46
32
  var denom = "".concat(prefix, "/").concat(coinMinimalDenom);
47
33
  return 'ibc/' + Buffer.from(new Uint8Array(new _sha.sha256().update(Buffer.from(denom)).digest())).toString('hex').toUpperCase();
48
34
  };
49
-
50
35
  exports.ibcDenom = ibcDenom;
51
-
52
36
  var findInfo = function findInfo(ibc, to, from) {
53
37
  return ibc.find(function (i) {
54
38
  return i.chain_1.chain_name === from && i.chain_2.chain_name === to;
55
39
  });
56
40
  };
57
-
58
41
  var getIbcInfo = function getIbcInfo(ibc, chain, counterparty) {
59
42
  return findInfo(ibc, chain, counterparty) || findInfo(ibc, counterparty, chain);
60
43
  };
61
-
62
44
  exports.getIbcInfo = getIbcInfo;
63
-
64
45
  var getTransferChannel = function getTransferChannel(info) {
65
46
  return info.channels.find(function (channel) {
66
47
  return channel.chain_1.port_id === 'transfer' && channel.chain_2.port_id === 'transfer';
67
48
  });
68
49
  };
69
-
70
50
  exports.getTransferChannel = getTransferChannel;
71
-
72
51
  var getNonTransferChannel = function getNonTransferChannel(info) {
73
52
  return info.channels.find(function (channel) {
74
53
  return channel.chain_1.port_id !== 'transfer' && channel.chain_2.port_id === 'transfer' || channel.chain_1.port_id === 'transfer' && channel.chain_2.port_id !== 'transfer';
75
54
  });
76
55
  };
77
-
78
56
  exports.getNonTransferChannel = getNonTransferChannel;
79
-
80
57
  var getWasmChannel = function getWasmChannel(info) {
81
58
  return info.channels.find(function (channel) {
82
59
  return channel.chain_1.port_id.startsWith('wasm.') && channel.chain_2.port_id === 'transfer' || channel.chain_1.port_id === 'transfer' && channel.chain_2.port_id.startsWith('wasm');
83
60
  });
84
61
  };
85
-
86
62
  exports.getWasmChannel = getWasmChannel;
87
-
88
63
  var getIbcAssetPath = function getIbcAssetPath(ibc, chain, counterparty, assets, base) {
89
64
  var _asset$traces$filter, _asset$traces, _asset$traces$filter2;
90
-
91
65
  var ibcInfo = getIbcInfo(ibc, chain, counterparty);
92
-
93
66
  if (!ibcInfo) {
94
67
  return [];
95
68
  }
96
-
97
69
  var channel = base.startsWith('cw20:') ? getWasmChannel(ibcInfo) : getTransferChannel(ibcInfo);
98
-
99
70
  if (!channel) {
100
71
  return [];
101
72
  }
102
-
103
73
  var channelInfo;
104
-
105
74
  if (ibcInfo.chain_1.chain_name === chain) {
106
75
  channelInfo = channel.chain_1;
107
76
  } else {
108
77
  channelInfo = channel.chain_2;
109
78
  }
110
-
111
79
  var memo = [channelInfo];
112
80
  var assetList = assets.find(function (_ref) {
113
81
  var chain_name = _ref.chain_name;
114
82
  return chain_name === counterparty;
115
83
  });
116
-
117
84
  if (!assetList) {
118
85
  return memo;
119
86
  }
120
-
121
87
  var asset = assetList.assets.find(function (asset) {
122
88
  return asset.base === base;
123
89
  });
124
-
125
90
  if (!asset) {
126
91
  console.log("no ".concat(base, " found in ").concat(counterparty));
127
92
  return memo;
128
93
  }
129
-
130
94
  var traces = (_asset$traces$filter = (_asset$traces = asset.traces) === null || _asset$traces === void 0 ? void 0 : (_asset$traces$filter2 = _asset$traces.filter) === null || _asset$traces$filter2 === void 0 ? void 0 : _asset$traces$filter2.call(_asset$traces, function (trace) {
131
95
  return trace.type === 'ibc' || trace.type === 'ibc-cw20';
132
96
  })) !== null && _asset$traces$filter !== void 0 ? _asset$traces$filter : [];
133
-
134
97
  if (!traces.length) {
135
98
  return memo;
136
99
  }
137
-
138
100
  if (traces.length > 1) {
139
101
  throw new Error('contact maintainers: multi-hop not yet supported');
140
102
  }
141
-
142
103
  var _traces = (0, _slicedToArray2["default"])(traces, 1),
143
- trace = _traces[0];
144
-
145
- return [].concat(memo, (0, _toConsumableArray2["default"])(getIbcAssetPath(ibc, counterparty, trace.counterparty.chain_name, assets, trace.counterparty.base_denom // base
104
+ trace = _traces[0];
105
+ return [].concat(memo, (0, _toConsumableArray2["default"])(getIbcAssetPath(ibc, counterparty, trace.counterparty.chain_name, assets, trace.counterparty.base_denom
106
+ // base
146
107
  )));
147
108
  };
148
-
149
109
  exports.getIbcAssetPath = getIbcAssetPath;
150
-
151
110
  var getIbcDenomByBase = function getIbcDenomByBase(ibc, chain, counterparty, assets, base) {
152
111
  var ibcInfo = getIbcInfo(ibc, chain, counterparty);
153
-
154
112
  if (ibcInfo) {
155
113
  var _asset$traces2, _asset$traces2$find, _ibcTrace$counterpart, _ibcTrace$counterpart2;
156
-
157
114
  var channel = base.startsWith('cw20:') ? getWasmChannel(ibcInfo) : getTransferChannel(ibcInfo);
158
-
159
115
  if (!channel) {
160
116
  return;
161
117
  }
162
-
163
118
  var ibcPath = getIbcAssetPath(ibc, chain, counterparty, assets, base);
164
119
  var assetList = assets.find(function (_ref2) {
165
120
  var chain_name = _ref2.chain_name;
166
121
  return chain_name === counterparty;
167
122
  });
168
-
169
123
  if (!assetList) {
170
- console.warn("missing asset list for ".concat(counterparty)); // could be incorrect...
171
-
124
+ console.warn("missing asset list for ".concat(counterparty));
125
+ // could be incorrect...
172
126
  return ibcDenom(ibcPath, base);
173
127
  }
174
-
175
128
  var asset = assetList.assets.find(function (asset) {
176
129
  return asset.base === base;
177
130
  });
178
-
179
131
  if (!asset) {
180
132
  console.warn("no ".concat(base, " found in ").concat(counterparty));
181
133
  return ibcDenom(ibcPath, base);
182
134
  }
183
-
184
135
  var ibcTrace = (_asset$traces2 = asset.traces) === null || _asset$traces2 === void 0 ? void 0 : (_asset$traces2$find = _asset$traces2.find) === null || _asset$traces2$find === void 0 ? void 0 : _asset$traces2$find.call(_asset$traces2, function (trace) {
185
136
  return trace.type === 'ibc';
186
137
  });
@@ -188,9 +139,7 @@ var getIbcDenomByBase = function getIbcDenomByBase(ibc, chain, counterparty, ass
188
139
  return ibcDenom(ibcPath, baseDenom);
189
140
  }
190
141
  };
191
-
192
142
  exports.getIbcDenomByBase = getIbcDenomByBase;
193
-
194
143
  var getIbcAssets = function getIbcAssets(chainName, ibc, assets) {
195
144
  var chainIbcInfo = ibc.filter(function (i) {
196
145
  return i.chain_1.chain_name === chainName || i.chain_2.chain_name === chainName;
@@ -204,30 +153,25 @@ var getIbcAssets = function getIbcAssets(chainName, ibc, assets) {
204
153
  var counterpartyAssets = assets.find(function (a) {
205
154
  return a.chain_name === counterparty;
206
155
  });
207
-
208
156
  if (!counterpartyAssets) {
209
157
  // console.warn('asset not found: ' + counterparty);
210
158
  return;
211
159
  }
212
-
213
160
  var ibcAssets = counterpartyAssets.assets.filter(function (a) {
214
161
  return !a.base.startsWith('cw20:');
215
162
  }).map(function (asset) {
216
- var denom = getIbcDenomByBase(ibc, chainName, counterparty, //
163
+ var denom = getIbcDenomByBase(ibc, chainName, counterparty,
164
+ //
217
165
  assets, asset.base);
218
-
219
166
  var newAsset = _objectSpread({}, asset);
220
-
221
167
  newAsset.base = denom;
222
168
  newAsset.denom_units = newAsset.denom_units.map(function (unit) {
223
169
  if (unit.denom === asset.base) {
224
170
  var newUnit = _objectSpread({}, unit);
225
-
226
171
  newUnit.denom = denom;
227
172
  newUnit.aliases = [unit.denom];
228
173
  return newUnit;
229
174
  }
230
-
231
175
  return unit;
232
176
  });
233
177
  return newAsset;
@@ -250,14 +194,15 @@ var getIbcAssets = function getIbcAssets(chainName, ibc, assets) {
250
194
  channel_id: v.counterparty.channel_id,
251
195
  // source_denom
252
196
  base_denom: asset.denom_units[0].aliases[0],
253
- chain_name: v.counterparty.chain_name // port: v.counterparty.port_id
254
-
197
+ chain_name: v.counterparty.chain_name
198
+ // port: v.counterparty.port_id
255
199
  },
200
+
256
201
  chain: {
257
202
  // dst_denom
258
- channel_id: v.chain.channel_id // chain_name: v.chain.chain_name,
203
+ channel_id: v.chain.channel_id
204
+ // chain_name: v.chain.chain_name,
259
205
  // port: v.chain.port_id
260
-
261
206
  }
262
207
  }]
263
208
  });
@@ -266,7 +211,6 @@ var getIbcAssets = function getIbcAssets(chainName, ibc, assets) {
266
211
  var obj = _objectSpread(_objectSpread({}, v), {}, {
267
212
  assets: assets
268
213
  });
269
-
270
214
  m[v.chain.chain_name].push(obj);
271
215
  return m;
272
216
  }, {});
@@ -279,9 +223,7 @@ var getIbcAssets = function getIbcAssets(chainName, ibc, assets) {
279
223
  };
280
224
  });
281
225
  };
282
-
283
226
  exports.getIbcAssets = getIbcAssets;
284
-
285
227
  var getCw20Assets = function getCw20Assets(chainName, ibc, assets) {
286
228
  var chainIbcInfo = ibc.filter(function (i) {
287
229
  return i.chain_1.chain_name === chainName || i.chain_2.chain_name === chainName;
@@ -295,37 +237,31 @@ var getCw20Assets = function getCw20Assets(chainName, ibc, assets) {
295
237
  var counterpartyAssets = assets.find(function (a) {
296
238
  return a.chain_name === counterparty;
297
239
  });
298
-
299
240
  if (!counterpartyAssets) {
300
241
  // console.warn('asset not found: ' + counterparty);
301
242
  return;
302
243
  }
303
-
304
244
  var cw20Assets = counterpartyAssets.assets.filter(function (a) {
305
245
  return a.base.startsWith('cw20:');
306
246
  }).map(function (asset) {
307
- var denom = getIbcDenomByBase(ibc, chainName, counterparty, //
247
+ var denom = getIbcDenomByBase(ibc, chainName, counterparty,
248
+ //
308
249
  assets, asset.base);
309
-
310
250
  var newAsset = _objectSpread({}, asset);
311
-
312
251
  newAsset.base = denom;
313
252
  newAsset.denom_units = newAsset.denom_units.map(function (unit) {
314
253
  if (unit.denom === asset.base) {
315
254
  var newUnit = _objectSpread({}, unit);
316
-
317
255
  newUnit.denom = denom;
318
256
  newUnit.aliases = [unit.denom];
319
257
  return newUnit;
320
258
  }
321
-
322
259
  return unit;
323
260
  });
324
261
  return newAsset;
325
262
  });
326
263
  if (!cw20Assets.length) return;
327
264
  var channel = getWasmChannel(ibcInfo);
328
-
329
265
  if (!channel) {
330
266
  // console.warn(
331
267
  // chainIbc.chain_name,
@@ -335,7 +271,6 @@ var getCw20Assets = function getCw20Assets(chainName, ibc, assets) {
335
271
  // );
336
272
  return;
337
273
  }
338
-
339
274
  return {
340
275
  chain: _objectSpread(_objectSpread({}, chainIbc), channel[chainIs]),
341
276
  counterparty: _objectSpread(_objectSpread({}, counterpartyIbc), channel[counterpartyIs]),
@@ -359,8 +294,8 @@ var getCw20Assets = function getCw20Assets(chainName, ibc, assets) {
359
294
  chain: {
360
295
  // dst_denom
361
296
  port: v.chain.port_id,
362
- channel_id: v.chain.channel_id // chain_name: v.chain.chain_name,
363
-
297
+ channel_id: v.chain.channel_id
298
+ // chain_name: v.chain.chain_name,
364
299
  }
365
300
  }]
366
301
  });
@@ -369,7 +304,6 @@ var getCw20Assets = function getCw20Assets(chainName, ibc, assets) {
369
304
  var obj = _objectSpread(_objectSpread({}, v), {}, {
370
305
  assets: assets
371
306
  });
372
-
373
307
  m[v.chain.chain_name].push(obj);
374
308
  return m;
375
309
  }, {});
@@ -382,9 +316,7 @@ var getCw20Assets = function getCw20Assets(chainName, ibc, assets) {
382
316
  };
383
317
  });
384
318
  };
385
-
386
319
  exports.getCw20Assets = getCw20Assets;
387
-
388
320
  var getAssetLists = function getAssetLists(chainName, ibc, assets) {
389
321
  var ibcAssetLists = getIbcAssets(chainName, ibc, assets);
390
322
  var cw20Assets = getCw20Assets(chainName, ibc, assets);
@@ -394,16 +326,13 @@ var getAssetLists = function getAssetLists(chainName, ibc, assets) {
394
326
  var cw20 = cw20Assets.find(function (a) {
395
327
  return a.chain_name === chain;
396
328
  });
397
-
398
329
  if (cw20) {
399
330
  [].push.apply(assets, cw20.assets);
400
331
  }
401
-
402
332
  return [{
403
333
  chain_name: chain,
404
334
  assets: assets
405
335
  }].concat((0, _toConsumableArray2["default"])(m));
406
336
  }, []);
407
337
  };
408
-
409
338
  exports.getAssetLists = getAssetLists;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chain-registry/utils",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "Chain Registry Utils",
5
5
  "author": "Dan Lynch <pyramation@gmail.com>",
6
6
  "homepage": "https://github.com/cosmology-tech/chain-registry",
@@ -41,40 +41,40 @@
41
41
  "url": "https://github.com/cosmology-tech/chain-registry/issues"
42
42
  },
43
43
  "devDependencies": {
44
- "@babel/cli": "7.18.10",
45
- "@babel/core": "7.19.1",
44
+ "@babel/cli": "7.19.3",
45
+ "@babel/core": "7.19.6",
46
46
  "@babel/eslint-parser": "^7.19.1",
47
47
  "@babel/node": "^7.19.1",
48
48
  "@babel/plugin-proposal-class-properties": "7.18.6",
49
49
  "@babel/plugin-proposal-export-default-from": "7.18.10",
50
- "@babel/plugin-proposal-object-rest-spread": "7.18.9",
51
- "@babel/plugin-transform-runtime": "7.19.1",
52
- "@babel/preset-env": "7.19.1",
50
+ "@babel/plugin-proposal-object-rest-spread": "7.19.4",
51
+ "@babel/plugin-transform-runtime": "7.19.6",
52
+ "@babel/preset-env": "7.19.4",
53
53
  "@babel/preset-typescript": "^7.17.12",
54
- "@types/jest": "^29.0.2",
54
+ "@types/jest": "^29.2.0",
55
55
  "@types/sha.js": "^2.4.0",
56
- "@typescript-eslint/eslint-plugin": "5.37.0",
57
- "@typescript-eslint/parser": "5.37.0",
56
+ "@typescript-eslint/eslint-plugin": "5.40.1",
57
+ "@typescript-eslint/parser": "5.40.1",
58
58
  "babel-core": "7.0.0-bridge.0",
59
- "babel-jest": "29.0.3",
59
+ "babel-jest": "29.2.1",
60
60
  "babel-watch": "^7.0.0",
61
61
  "cross-env": "^7.0.2",
62
- "eslint": "8.23.1",
62
+ "eslint": "8.25.0",
63
63
  "eslint-config-prettier": "^8.5.0",
64
64
  "eslint-plugin-prettier": "^4.0.0",
65
65
  "eslint-plugin-simple-import-sort": "8.0.0",
66
66
  "eslint-plugin-unused-imports": "2.0.0",
67
- "jest": "^29.0.3",
67
+ "jest": "^29.2.1",
68
68
  "long": "^5.2.0",
69
69
  "prettier": "^2.7.0",
70
- "regenerator-runtime": "^0.13.7",
71
- "ts-jest": "^29.0.1",
72
- "typescript": "^4.8.3"
70
+ "regenerator-runtime": "^0.13.10",
71
+ "ts-jest": "^29.0.3",
72
+ "typescript": "^4.8.4"
73
73
  },
74
74
  "dependencies": {
75
- "@babel/runtime": "^7.19.0",
76
- "@chain-registry/types": "^0.12.0",
75
+ "@babel/runtime": "^7.19.4",
76
+ "@chain-registry/types": "^0.13.0",
77
77
  "sha.js": "^2.4.11"
78
78
  },
79
- "gitHead": "1f570daf2ee8e4a86cd7addf97f453a322b2e9b3"
79
+ "gitHead": "36c1490330c272c8348ebc147595bd8af848d35d"
80
80
  }