@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 +16 -0
- package/main/utils.js +86 -91
- package/package.json +3 -3
- package/types/utils.d.ts +3 -3
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.
|
|
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
|
|
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.
|
|
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
|
|
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
|
-
|
|
93
|
+
if (!ibcInfo) {
|
|
94
|
+
return [];
|
|
95
|
+
}
|
|
91
96
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
97
|
+
var channel = base.startsWith('cw20:') ? getWasmChannel(ibcInfo) : getTransferChannel(ibcInfo);
|
|
98
|
+
|
|
99
|
+
if (!channel) {
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
95
102
|
|
|
96
|
-
|
|
103
|
+
var channelInfo;
|
|
97
104
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
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
|
-
|
|
105
|
-
|
|
106
|
-
|
|
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
|
-
|
|
110
|
-
|
|
111
|
-
|
|
117
|
+
if (!assetList) {
|
|
118
|
+
return memo;
|
|
119
|
+
}
|
|
112
120
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
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
|
-
|
|
135
|
-
|
|
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.
|
|
149
|
+
exports.getIbcAssetPath = getIbcAssetPath;
|
|
162
150
|
|
|
163
|
-
var
|
|
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
|
|
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
|
|
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 (
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
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
|
|
182
|
-
|
|
183
|
-
return chain_name === counterparty;
|
|
175
|
+
var asset = assetList.assets.find(function (asset) {
|
|
176
|
+
return asset.base === base;
|
|
184
177
|
});
|
|
185
178
|
|
|
186
|
-
if (!
|
|
187
|
-
|
|
179
|
+
if (!asset) {
|
|
180
|
+
console.warn("no ".concat(base, " found in ").concat(counterparty));
|
|
181
|
+
return ibcDenom(ibcPath, base);
|
|
188
182
|
}
|
|
189
183
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
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.
|
|
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
|
-
|
|
250
|
+
channel_id: v.counterparty.channel_id,
|
|
256
251
|
// source_denom
|
|
257
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
354
|
+
channel_id: v.counterparty.channel_id,
|
|
360
355
|
// source_denom
|
|
361
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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": "
|
|
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
|
-
|
|
4
|
-
|
|
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;
|