@chain-registry/utils 0.10.2 → 1.0.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,22 @@
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.0.0](https://github.com/cosmology-tech/chain-registry/compare/@chain-registry/utils@0.11.0...@chain-registry/utils@1.0.0) (2022-09-29)
7
+
8
+ **Note:** Version bump only for package @chain-registry/utils
9
+
10
+
11
+
12
+
13
+
14
+ # [0.11.0](https://github.com/cosmology-tech/chain-registry/compare/@chain-registry/utils@0.10.2...@chain-registry/utils@0.11.0) (2022-09-20)
15
+
16
+ **Note:** Version bump only for package @chain-registry/utils
17
+
18
+
19
+
20
+
21
+
6
22
  ## [0.10.2](https://github.com/cosmology-tech/chain-registry/compare/@chain-registry/utils@0.10.1...@chain-registry/utils@0.10.2) (2022-09-19)
7
23
 
8
24
  **Note:** Version bump only for package @chain-registry/utils
package/main/utils.js CHANGED
@@ -5,11 +5,13 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.ibcDenom = exports.getWasmChannel = exports.getTransferChannel = exports.getNonTransferChannel = exports.getIbcInfo = exports.getIbcDenomByBaseForCw20 = exports.getIbcDenomByBase = exports.getIbcAssets = exports.getCw20Assets = exports.getAssetLists = void 0;
8
+ exports.ibcDenom = exports.getWasmChannel = exports.getTransferChannel = exports.getNonTransferChannel = exports.getIbcInfo = exports.getIbcDenomByBase = exports.getIbcAssets = exports.getIbcAssetPath = exports.getCw20Assets = exports.getAssetLists = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
11
 
10
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
13
 
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
15
 
14
16
  var _sha = require("sha.js");
15
17
 
@@ -32,7 +34,7 @@ var ibcDenom = function ibcDenom(paths, coinMinimalDenom) {
32
34
  try {
33
35
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
34
36
  var path = _step.value;
35
- prefixes.push("".concat(path.portId, "/").concat(path.channelId));
37
+ prefixes.push("".concat(path.port_id, "/").concat(path.channel_id));
36
38
  }
37
39
  } catch (err) {
38
40
  _iterator.e(err);
@@ -83,118 +85,111 @@ var getWasmChannel = function getWasmChannel(info) {
83
85
 
84
86
  exports.getWasmChannel = getWasmChannel;
85
87
 
86
- var getIbcDenomByBase = function getIbcDenomByBase(ibc, chain, counterparty, assets, base) {
88
+ var getIbcAssetPath = function getIbcAssetPath(ibc, chain, counterparty, assets, base) {
89
+ var _asset$traces$filter, _asset$traces, _asset$traces$filter2;
90
+
87
91
  var ibcInfo = getIbcInfo(ibc, chain, counterparty);
88
92
 
89
- if (ibcInfo) {
90
- var channel = getTransferChannel(ibcInfo);
93
+ if (!ibcInfo) {
94
+ return [];
95
+ }
91
96
 
92
- if (!channel) {
93
- return;
94
- }
97
+ var channel = base.startsWith('cw20:') ? getWasmChannel(ibcInfo) : getTransferChannel(ibcInfo);
98
+
99
+ if (!channel) {
100
+ return [];
101
+ }
95
102
 
96
- var channelInfo;
103
+ var channelInfo;
97
104
 
98
- if (ibcInfo.chain_1.chain_name === chain) {
99
- channelInfo = channel.chain_1;
100
- } else {
101
- channelInfo = channel.chain_2;
102
- }
105
+ if (ibcInfo.chain_1.chain_name === chain) {
106
+ channelInfo = channel.chain_1;
107
+ } else {
108
+ channelInfo = channel.chain_2;
109
+ }
103
110
 
104
- var assetList = assets.find(function (_ref) {
105
- var chain_name = _ref.chain_name;
106
- return chain_name === counterparty;
107
- });
111
+ var memo = [channelInfo];
112
+ var assetList = assets.find(function (_ref) {
113
+ var chain_name = _ref.chain_name;
114
+ return chain_name === counterparty;
115
+ });
108
116
 
109
- if (!assetList) {
110
- return;
111
- }
117
+ if (!assetList) {
118
+ return memo;
119
+ }
112
120
 
113
- var assetInfo = assetList.assets.find(function (asset) {
114
- return asset.base === base;
115
- }); // if (!assetInfo) {
116
- // console.warn('missing referrenced asset');
117
- // }
118
- // TODO transition later!
119
-
120
- var traces = [];
121
-
122
- if (assetInfo.ibc) {// traces.push({
123
- // type: 'ibc',
124
- // counterparty: {
125
- // denom: assetInfo.ibc.source_denom,
126
- // channel: assetInfo.ibc.source_channel
127
- // },
128
- // chain: {
129
- // channel: assetInfo.ibc.dst_channel
130
- // }
131
- // });
132
- }
121
+ var asset = assetList.assets.find(function (asset) {
122
+ return asset.base === base;
123
+ });
124
+
125
+ if (!asset) {
126
+ console.log("no ".concat(base, " found in ").concat(counterparty));
127
+ return memo;
128
+ }
129
+
130
+ 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
+ return trace.type === 'ibc' || trace.type === 'ibc-cw20';
132
+ })) !== null && _asset$traces$filter !== void 0 ? _asset$traces$filter : [];
133
+
134
+ if (!traces.length) {
135
+ return memo;
136
+ }
133
137
 
134
- if (assetInfo.traces && assetInfo.traces.length) {
135
- [].push.apply(traces, assetInfo.traces);
136
- } // console.log(transition);
137
- // if (transition.length) {
138
- // return ibcDenom(
139
- // [
140
- // {
141
- // portId: 'transfer',
142
- // channelId: assetInfo.ibc.source_channel
143
- // },
144
- // {
145
- // portId: channelInfo.port_id,
146
- // channelId: channelInfo.channel_id
147
- // }
148
- // ],
149
- // base
150
- // );
151
- // }
152
-
153
-
154
- return ibcDenom([{
155
- portId: channelInfo.port_id,
156
- channelId: channelInfo.channel_id
157
- }], base);
138
+ if (traces.length > 1) {
139
+ throw new Error('contact maintainers: multi-hop not yet supported');
158
140
  }
141
+
142
+ 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
146
+ )));
159
147
  };
160
148
 
161
- exports.getIbcDenomByBase = getIbcDenomByBase;
149
+ exports.getIbcAssetPath = getIbcAssetPath;
162
150
 
163
- var getIbcDenomByBaseForCw20 = function getIbcDenomByBaseForCw20(ibc, chain, counterparty, assets, base) {
151
+ var getIbcDenomByBase = function getIbcDenomByBase(ibc, chain, counterparty, assets, base) {
164
152
  var ibcInfo = getIbcInfo(ibc, chain, counterparty);
165
153
 
166
154
  if (ibcInfo) {
167
- var channel = getWasmChannel(ibcInfo);
155
+ var _asset$traces2, _asset$traces2$find, _ibcTrace$counterpart, _ibcTrace$counterpart2;
156
+
157
+ var channel = base.startsWith('cw20:') ? getWasmChannel(ibcInfo) : getTransferChannel(ibcInfo);
168
158
 
169
159
  if (!channel) {
170
160
  return;
171
161
  }
172
162
 
173
- var channelInfo;
163
+ var ibcPath = getIbcAssetPath(ibc, chain, counterparty, assets, base);
164
+ var assetList = assets.find(function (_ref2) {
165
+ var chain_name = _ref2.chain_name;
166
+ return chain_name === counterparty;
167
+ });
174
168
 
175
- if (ibcInfo.chain_1.chain_name === chain) {
176
- channelInfo = channel.chain_1;
177
- } else {
178
- channelInfo = channel.chain_2;
169
+ if (!assetList) {
170
+ console.warn("missing asset list for ".concat(counterparty)); // could be incorrect...
171
+
172
+ return ibcDenom(ibcPath, base);
179
173
  }
180
174
 
181
- var assetInfo = assets.find(function (_ref2) {
182
- var chain_name = _ref2.chain_name;
183
- return chain_name === counterparty;
175
+ var asset = assetList.assets.find(function (asset) {
176
+ return asset.base === base;
184
177
  });
185
178
 
186
- if (!assetInfo) {
187
- return;
179
+ if (!asset) {
180
+ console.warn("no ".concat(base, " found in ").concat(counterparty));
181
+ return ibcDenom(ibcPath, base);
188
182
  }
189
183
 
190
- return ibcDenom([{
191
- portId: channelInfo.port_id,
192
- channelId: channelInfo.channel_id
193
- }], base);
184
+ 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
+ return trace.type === 'ibc';
186
+ });
187
+ var baseDenom = (_ibcTrace$counterpart = ibcTrace === null || ibcTrace === void 0 ? void 0 : (_ibcTrace$counterpart2 = ibcTrace.counterparty) === null || _ibcTrace$counterpart2 === void 0 ? void 0 : _ibcTrace$counterpart2.base_denom) !== null && _ibcTrace$counterpart !== void 0 ? _ibcTrace$counterpart : asset.base;
188
+ return ibcDenom(ibcPath, baseDenom);
194
189
  }
195
190
  };
196
191
 
197
- exports.getIbcDenomByBaseForCw20 = getIbcDenomByBaseForCw20;
192
+ exports.getIbcDenomByBase = getIbcDenomByBase;
198
193
 
199
194
  var getIbcAssets = function getIbcAssets(chainName, ibc, assets) {
200
195
  var chainIbcInfo = ibc.filter(function (i) {
@@ -252,15 +247,15 @@ var getIbcAssets = function getIbcAssets(chainName, ibc, assets) {
252
247
  type: 'ibc',
253
248
  counterparty: {
254
249
  // source_channel
255
- channel: v.counterparty.channel_id,
250
+ channel_id: v.counterparty.channel_id,
256
251
  // source_denom
257
- denom: asset.denom_units[0].aliases[0],
252
+ base_denom: asset.denom_units[0].aliases[0],
258
253
  chain_name: v.counterparty.chain_name // port: v.counterparty.port_id
259
254
 
260
255
  },
261
256
  chain: {
262
257
  // dst_denom
263
- channel: v.chain.channel_id // chain_name: v.chain.chain_name,
258
+ channel_id: v.chain.channel_id // chain_name: v.chain.chain_name,
264
259
  // port: v.chain.port_id
265
260
 
266
261
  }
@@ -309,7 +304,7 @@ var getCw20Assets = function getCw20Assets(chainName, ibc, assets) {
309
304
  var cw20Assets = counterpartyAssets.assets.filter(function (a) {
310
305
  return a.base.startsWith('cw20:');
311
306
  }).map(function (asset) {
312
- var denom = getIbcDenomByBaseForCw20(ibc, chainName, counterparty, //
307
+ var denom = getIbcDenomByBase(ibc, chainName, counterparty, //
313
308
  assets, asset.base);
314
309
 
315
310
  var newAsset = _objectSpread({}, asset);
@@ -356,15 +351,15 @@ var getCw20Assets = function getCw20Assets(chainName, ibc, assets) {
356
351
  counterparty: {
357
352
  port: v.counterparty.port_id,
358
353
  // source_channel
359
- channel: v.counterparty.channel_id,
354
+ channel_id: v.counterparty.channel_id,
360
355
  // source_denom
361
- denom: asset.denom_units[0].aliases[0],
356
+ base_denom: asset.denom_units[0].aliases[0],
362
357
  chain_name: v.counterparty.chain_name
363
358
  },
364
359
  chain: {
365
360
  // dst_denom
366
361
  port: v.chain.port_id,
367
- channel: v.chain.channel_id // chain_name: v.chain.chain_name,
362
+ channel_id: v.chain.channel_id // chain_name: v.chain.chain_name,
368
363
 
369
364
  }
370
365
  }]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chain-registry/utils",
3
- "version": "0.10.2",
3
+ "version": "1.0.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",
@@ -73,10 +73,10 @@
73
73
  },
74
74
  "dependencies": {
75
75
  "@babel/runtime": "^7.19.0",
76
- "@chain-registry/types": "^0.10.2",
76
+ "@chain-registry/types": "^0.11.0",
77
77
  "bfs-path": "^1.0.2",
78
78
  "cross-fetch": "^3.1.5",
79
79
  "sha.js": "^2.4.11"
80
80
  },
81
- "gitHead": "e01cbeb19082e4dd1386f958b59be5f2013ca49d"
81
+ "gitHead": "3f6b00c23df64fdac243ae5b6af41a69fcf27755"
82
82
  }
package/types/utils.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { AssetList, IBCInfo } from '@chain-registry/types';
2
2
  export declare const ibcDenom: (paths: {
3
- portId: string;
4
- channelId: string;
3
+ port_id: string;
4
+ channel_id: string;
5
5
  }[], coinMinimalDenom: string) => string;
6
6
  export declare const getIbcInfo: (ibc: IBCInfo[], chain: string, counterparty: string) => IBCInfo;
7
7
  export declare const getTransferChannel: (info: IBCInfo) => {
@@ -43,8 +43,8 @@ export declare const getWasmChannel: (info: IBCInfo) => {
43
43
  version: string;
44
44
  tags?: object;
45
45
  };
46
+ export declare const getIbcAssetPath: (ibc: IBCInfo[], chain: string, counterparty: string, assets: AssetList[], base: string) => any;
46
47
  export declare const getIbcDenomByBase: (ibc: IBCInfo[], chain: string, counterparty: string, assets: AssetList[], base: string) => string;
47
- export declare const getIbcDenomByBaseForCw20: (ibc: IBCInfo[], chain: string, counterparty: string, assets: AssetList[], base: string) => string;
48
48
  export declare const getIbcAssets: (chainName: string, ibc: IBCInfo[], assets: AssetList[]) => {
49
49
  chain_name: string;
50
50
  assets: any;