@chain-registry/utils 0.5.1 → 0.6.2
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 +24 -0
- package/README.md +85 -1
- package/main/index.js +18 -399
- package/main/registry.js +312 -0
- package/main/utils.js +415 -0
- package/module/index.js +2 -338
- package/module/registry.js +216 -0
- package/module/utils.js +341 -0
- package/package.json +6 -3
package/main/utils.js
ADDED
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.ibcDenom = exports.getWasmChannel = exports.getTransferChannel = exports.getNonTransferChannel = exports.getIbcInfo = exports.getIbcDenomByBaseForCw20 = exports.getIbcDenomByBase = exports.getIbcAssets = exports.getCw20Assets = exports.getAssetLists = void 0;
|
|
9
|
+
|
|
10
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
+
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
|
|
14
|
+
var _sha = require("sha.js");
|
|
15
|
+
|
|
16
|
+
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; }
|
|
17
|
+
|
|
18
|
+
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; }
|
|
19
|
+
|
|
20
|
+
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; } } }; }
|
|
21
|
+
|
|
22
|
+
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); }
|
|
23
|
+
|
|
24
|
+
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; }
|
|
25
|
+
|
|
26
|
+
var ibcDenom = function ibcDenom(paths, coinMinimalDenom) {
|
|
27
|
+
var prefixes = [];
|
|
28
|
+
|
|
29
|
+
var _iterator = _createForOfIteratorHelper(paths),
|
|
30
|
+
_step;
|
|
31
|
+
|
|
32
|
+
try {
|
|
33
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
34
|
+
var path = _step.value;
|
|
35
|
+
prefixes.push("".concat(path.portId, "/").concat(path.channelId));
|
|
36
|
+
}
|
|
37
|
+
} catch (err) {
|
|
38
|
+
_iterator.e(err);
|
|
39
|
+
} finally {
|
|
40
|
+
_iterator.f();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
var prefix = prefixes.join('/');
|
|
44
|
+
var denom = "".concat(prefix, "/").concat(coinMinimalDenom);
|
|
45
|
+
return 'ibc/' + Buffer.from(new Uint8Array(new _sha.sha256().update(Buffer.from(denom)).digest())).toString('hex').toUpperCase();
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
exports.ibcDenom = ibcDenom;
|
|
49
|
+
|
|
50
|
+
var findInfo = function findInfo(ibc, to, from) {
|
|
51
|
+
return ibc.find(function (i) {
|
|
52
|
+
return i['chain-1']['chain-name'] === from && i['chain-2']['chain-name'] === to;
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
var getIbcInfo = function getIbcInfo(ibc, chain, counterparty) {
|
|
57
|
+
return findInfo(ibc, chain, counterparty) || findInfo(ibc, counterparty, chain);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
exports.getIbcInfo = getIbcInfo;
|
|
61
|
+
|
|
62
|
+
var getTransferChannel = function getTransferChannel(info) {
|
|
63
|
+
return info.channels.find(function (channel) {
|
|
64
|
+
return channel['chain-1']['port-id'] === 'transfer' && channel['chain-2']['port-id'] === 'transfer';
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
exports.getTransferChannel = getTransferChannel;
|
|
69
|
+
|
|
70
|
+
var getNonTransferChannel = function getNonTransferChannel(info) {
|
|
71
|
+
return info.channels.find(function (channel) {
|
|
72
|
+
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';
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
exports.getNonTransferChannel = getNonTransferChannel;
|
|
77
|
+
|
|
78
|
+
var getWasmChannel = function getWasmChannel(info) {
|
|
79
|
+
return info.channels.find(function (channel) {
|
|
80
|
+
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');
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
exports.getWasmChannel = getWasmChannel;
|
|
85
|
+
|
|
86
|
+
var getIbcDenomByBase = function getIbcDenomByBase(ibc, chain, counterparty, assets, base) {
|
|
87
|
+
var ibcInfo = getIbcInfo(ibc, chain, counterparty);
|
|
88
|
+
|
|
89
|
+
if (ibcInfo) {
|
|
90
|
+
var channel = getTransferChannel(ibcInfo);
|
|
91
|
+
|
|
92
|
+
if (!channel) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
var channelInfo;
|
|
97
|
+
|
|
98
|
+
if (ibcInfo['chain-1']['chain-name'] === chain) {
|
|
99
|
+
channelInfo = channel['chain-1'];
|
|
100
|
+
} else {
|
|
101
|
+
channelInfo = channel['chain-2'];
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
var assetList = assets.find(function (_ref) {
|
|
105
|
+
var chain_name = _ref.chain_name;
|
|
106
|
+
return chain_name === counterparty;
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
if (!assetList) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
|
|
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) {
|
|
123
|
+
traces.push({
|
|
124
|
+
type: 'ibc',
|
|
125
|
+
counterparty: {
|
|
126
|
+
denom: assetInfo.ibc.source_denom,
|
|
127
|
+
channel: assetInfo.ibc.source_channel
|
|
128
|
+
},
|
|
129
|
+
chain: {
|
|
130
|
+
channel: assetInfo.ibc.dst_channel
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
if (assetInfo.traces && assetInfo.traces.length) {
|
|
136
|
+
[].push.apply(traces, assetInfo.traces);
|
|
137
|
+
} // console.log(transition);
|
|
138
|
+
// if (transition.length) {
|
|
139
|
+
// return ibcDenom(
|
|
140
|
+
// [
|
|
141
|
+
// {
|
|
142
|
+
// portId: 'transfer',
|
|
143
|
+
// channelId: assetInfo.ibc.source_channel
|
|
144
|
+
// },
|
|
145
|
+
// {
|
|
146
|
+
// portId: channelInfo['port-id'],
|
|
147
|
+
// channelId: channelInfo['channel-id']
|
|
148
|
+
// }
|
|
149
|
+
// ],
|
|
150
|
+
// base
|
|
151
|
+
// );
|
|
152
|
+
// }
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
return ibcDenom([{
|
|
156
|
+
portId: channelInfo['port-id'],
|
|
157
|
+
channelId: channelInfo['channel-id']
|
|
158
|
+
}], base);
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
exports.getIbcDenomByBase = getIbcDenomByBase;
|
|
163
|
+
|
|
164
|
+
var getIbcDenomByBaseForCw20 = function getIbcDenomByBaseForCw20(ibc, chain, counterparty, assets, base) {
|
|
165
|
+
var ibcInfo = getIbcInfo(ibc, chain, counterparty);
|
|
166
|
+
|
|
167
|
+
if (ibcInfo) {
|
|
168
|
+
var channel = getWasmChannel(ibcInfo);
|
|
169
|
+
|
|
170
|
+
if (!channel) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
var channelInfo;
|
|
175
|
+
|
|
176
|
+
if (ibcInfo['chain-1']['chain-name'] === chain) {
|
|
177
|
+
channelInfo = channel['chain-1'];
|
|
178
|
+
} else {
|
|
179
|
+
channelInfo = channel['chain-2'];
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
var assetInfo = assets.find(function (_ref2) {
|
|
183
|
+
var chain_name = _ref2.chain_name;
|
|
184
|
+
return chain_name === counterparty;
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
if (!assetInfo) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
return ibcDenom([{
|
|
192
|
+
portId: channelInfo['port-id'],
|
|
193
|
+
channelId: channelInfo['channel-id']
|
|
194
|
+
}], base);
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
exports.getIbcDenomByBaseForCw20 = getIbcDenomByBaseForCw20;
|
|
199
|
+
|
|
200
|
+
var getIbcAssets = function getIbcAssets(chainName, ibc, assets) {
|
|
201
|
+
var chainIbcInfo = ibc.filter(function (i) {
|
|
202
|
+
return i['chain-1']['chain-name'] === chainName || i['chain-2']['chain-name'] === chainName;
|
|
203
|
+
});
|
|
204
|
+
var ibcAssetLists = chainIbcInfo.map(function (ibcInfo) {
|
|
205
|
+
var counterpartyIs = ibcInfo['chain-1']['chain-name'] === chainName ? 'chain-2' : 'chain-1';
|
|
206
|
+
var chainIs = ibcInfo['chain-1']['chain-name'] === chainName ? 'chain-1' : 'chain-2';
|
|
207
|
+
var counterparty = ibcInfo[counterpartyIs]['chain-name'];
|
|
208
|
+
var counterpartyIbc = ibcInfo[counterpartyIs];
|
|
209
|
+
var chainIbc = ibcInfo[chainIs];
|
|
210
|
+
var counterpartyAssets = assets.find(function (a) {
|
|
211
|
+
return a.chain_name === counterparty;
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
if (!counterpartyAssets) {
|
|
215
|
+
// console.warn('asset not found: ' + counterparty);
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
var ibcAssets = counterpartyAssets.assets.filter(function (a) {
|
|
220
|
+
return !a.base.startsWith('cw20:');
|
|
221
|
+
}).map(function (asset) {
|
|
222
|
+
var denom = getIbcDenomByBase(ibc, chainName, counterparty, //
|
|
223
|
+
assets, asset.base);
|
|
224
|
+
|
|
225
|
+
var newAsset = _objectSpread({}, asset);
|
|
226
|
+
|
|
227
|
+
newAsset.base = denom;
|
|
228
|
+
newAsset.denom_units = newAsset.denom_units.map(function (unit) {
|
|
229
|
+
if (unit.denom === asset.base) {
|
|
230
|
+
var newUnit = _objectSpread({}, unit);
|
|
231
|
+
|
|
232
|
+
newUnit.denom = denom;
|
|
233
|
+
newUnit.aliases = [unit.denom];
|
|
234
|
+
return newUnit;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
return unit;
|
|
238
|
+
});
|
|
239
|
+
return newAsset;
|
|
240
|
+
});
|
|
241
|
+
var channel = getTransferChannel(ibcInfo);
|
|
242
|
+
return {
|
|
243
|
+
chain: _objectSpread(_objectSpread({}, chainIbc), channel[chainIs]),
|
|
244
|
+
counterparty: _objectSpread(_objectSpread({}, counterpartyIbc), channel[counterpartyIs]),
|
|
245
|
+
assets: ibcAssets
|
|
246
|
+
};
|
|
247
|
+
}).filter(Boolean);
|
|
248
|
+
var hash = ibcAssetLists.reduce(function (m, v) {
|
|
249
|
+
m[v.chain['chain-name']] = m[v.chain['chain-name']] || [];
|
|
250
|
+
var assets = v.assets.map(function (asset) {
|
|
251
|
+
return _objectSpread(_objectSpread({}, asset), {}, {
|
|
252
|
+
traces: [{
|
|
253
|
+
type: 'ibc',
|
|
254
|
+
counterparty: {
|
|
255
|
+
// source_channel
|
|
256
|
+
channel: v.counterparty['channel-id'],
|
|
257
|
+
// source_denom
|
|
258
|
+
denom: asset.denom_units[0].aliases[0],
|
|
259
|
+
chain_name: v.counterparty['chain-name'] // port: v.counterparty['port-id']
|
|
260
|
+
|
|
261
|
+
},
|
|
262
|
+
chain: {
|
|
263
|
+
// dst_denom
|
|
264
|
+
channel: v.chain['channel-id'] // chain_name: v.chain['chain-name'],
|
|
265
|
+
// port: v.chain['port-id']
|
|
266
|
+
|
|
267
|
+
}
|
|
268
|
+
}]
|
|
269
|
+
});
|
|
270
|
+
});
|
|
271
|
+
|
|
272
|
+
var obj = _objectSpread(_objectSpread({}, v), {}, {
|
|
273
|
+
assets: assets
|
|
274
|
+
});
|
|
275
|
+
|
|
276
|
+
m[v.chain['chain-name']].push(obj);
|
|
277
|
+
return m;
|
|
278
|
+
}, {});
|
|
279
|
+
return Object.keys(hash).map(function (chain) {
|
|
280
|
+
return {
|
|
281
|
+
chain_name: chain,
|
|
282
|
+
assets: hash[chain].reduce(function (m, v) {
|
|
283
|
+
return [].concat((0, _toConsumableArray2["default"])(m), (0, _toConsumableArray2["default"])(v.assets));
|
|
284
|
+
}, [])
|
|
285
|
+
};
|
|
286
|
+
});
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
exports.getIbcAssets = getIbcAssets;
|
|
290
|
+
|
|
291
|
+
var getCw20Assets = function getCw20Assets(chainName, ibc, assets) {
|
|
292
|
+
var chainIbcInfo = ibc.filter(function (i) {
|
|
293
|
+
return i['chain-1']['chain-name'] === chainName || i['chain-2']['chain-name'] === chainName;
|
|
294
|
+
});
|
|
295
|
+
var cw20AssetLists = chainIbcInfo.map(function (ibcInfo) {
|
|
296
|
+
var counterpartyIs = ibcInfo['chain-1']['chain-name'] === chainName ? 'chain-2' : 'chain-1';
|
|
297
|
+
var chainIs = ibcInfo['chain-1']['chain-name'] === chainName ? 'chain-1' : 'chain-2';
|
|
298
|
+
var counterparty = ibcInfo[counterpartyIs]['chain-name'];
|
|
299
|
+
var counterpartyIbc = ibcInfo[counterpartyIs];
|
|
300
|
+
var chainIbc = ibcInfo[chainIs];
|
|
301
|
+
var counterpartyAssets = assets.find(function (a) {
|
|
302
|
+
return a.chain_name === counterparty;
|
|
303
|
+
});
|
|
304
|
+
|
|
305
|
+
if (!counterpartyAssets) {
|
|
306
|
+
// console.warn('asset not found: ' + counterparty);
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
var cw20Assets = counterpartyAssets.assets.filter(function (a) {
|
|
311
|
+
return a.base.startsWith('cw20:');
|
|
312
|
+
}).map(function (asset) {
|
|
313
|
+
var denom = getIbcDenomByBaseForCw20(ibc, chainName, counterparty, //
|
|
314
|
+
assets, asset.base);
|
|
315
|
+
|
|
316
|
+
var newAsset = _objectSpread({}, asset);
|
|
317
|
+
|
|
318
|
+
newAsset.base = denom;
|
|
319
|
+
newAsset.denom_units = newAsset.denom_units.map(function (unit) {
|
|
320
|
+
if (unit.denom === asset.base) {
|
|
321
|
+
var newUnit = _objectSpread({}, unit);
|
|
322
|
+
|
|
323
|
+
newUnit.denom = denom;
|
|
324
|
+
newUnit.aliases = [unit.denom];
|
|
325
|
+
return newUnit;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
return unit;
|
|
329
|
+
});
|
|
330
|
+
return newAsset;
|
|
331
|
+
});
|
|
332
|
+
if (!cw20Assets.length) return;
|
|
333
|
+
var channel = getWasmChannel(ibcInfo);
|
|
334
|
+
|
|
335
|
+
if (!channel) {
|
|
336
|
+
// console.warn(
|
|
337
|
+
// chainIbc['chain-name'],
|
|
338
|
+
// '<>',
|
|
339
|
+
// counterpartyIbc['chain-name'],
|
|
340
|
+
// 'MISSING cw20 IBC info'
|
|
341
|
+
// );
|
|
342
|
+
return;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
return {
|
|
346
|
+
chain: _objectSpread(_objectSpread({}, chainIbc), channel[chainIs]),
|
|
347
|
+
counterparty: _objectSpread(_objectSpread({}, counterpartyIbc), channel[counterpartyIs]),
|
|
348
|
+
assets: cw20Assets
|
|
349
|
+
};
|
|
350
|
+
}).filter(Boolean);
|
|
351
|
+
var hash = cw20AssetLists.reduce(function (m, v) {
|
|
352
|
+
m[v.chain['chain-name']] = m[v.chain['chain-name']] || [];
|
|
353
|
+
var assets = v.assets.map(function (asset) {
|
|
354
|
+
return _objectSpread(_objectSpread({}, asset), {}, {
|
|
355
|
+
traces: [{
|
|
356
|
+
type: 'ibc',
|
|
357
|
+
counterparty: {
|
|
358
|
+
port: v.counterparty['port-id'],
|
|
359
|
+
// source_channel
|
|
360
|
+
channel: v.counterparty['channel-id'],
|
|
361
|
+
// source_denom
|
|
362
|
+
denom: asset.denom_units[0].aliases[0],
|
|
363
|
+
chain_name: v.counterparty['chain-name']
|
|
364
|
+
},
|
|
365
|
+
chain: {
|
|
366
|
+
// dst_denom
|
|
367
|
+
port: v.chain['port-id'],
|
|
368
|
+
channel: v.chain['channel-id'] // chain_name: v.chain['chain-name'],
|
|
369
|
+
|
|
370
|
+
}
|
|
371
|
+
}]
|
|
372
|
+
});
|
|
373
|
+
});
|
|
374
|
+
|
|
375
|
+
var obj = _objectSpread(_objectSpread({}, v), {}, {
|
|
376
|
+
assets: assets
|
|
377
|
+
});
|
|
378
|
+
|
|
379
|
+
m[v.chain['chain-name']].push(obj);
|
|
380
|
+
return m;
|
|
381
|
+
}, {});
|
|
382
|
+
return Object.keys(hash).map(function (chain) {
|
|
383
|
+
return {
|
|
384
|
+
chain_name: chain,
|
|
385
|
+
assets: hash[chain].reduce(function (m, v) {
|
|
386
|
+
return [].concat((0, _toConsumableArray2["default"])(m), (0, _toConsumableArray2["default"])(v.assets));
|
|
387
|
+
}, [])
|
|
388
|
+
};
|
|
389
|
+
});
|
|
390
|
+
};
|
|
391
|
+
|
|
392
|
+
exports.getCw20Assets = getCw20Assets;
|
|
393
|
+
|
|
394
|
+
var getAssetLists = function getAssetLists(chainName, ibc, assets) {
|
|
395
|
+
var ibcAssetLists = getIbcAssets(chainName, ibc, assets);
|
|
396
|
+
var cw20Assets = getCw20Assets(chainName, ibc, assets);
|
|
397
|
+
return ibcAssetLists.reduce(function (m, v) {
|
|
398
|
+
var chain = v.chain_name;
|
|
399
|
+
var assets = (0, _toConsumableArray2["default"])(v.assets);
|
|
400
|
+
var cw20 = cw20Assets.find(function (a) {
|
|
401
|
+
return a.chain_name === chain;
|
|
402
|
+
});
|
|
403
|
+
|
|
404
|
+
if (cw20) {
|
|
405
|
+
[].push.apply(assets, cw20.assets);
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
return [{
|
|
409
|
+
chain_name: chain,
|
|
410
|
+
assets: assets
|
|
411
|
+
}].concat((0, _toConsumableArray2["default"])(m));
|
|
412
|
+
}, []);
|
|
413
|
+
};
|
|
414
|
+
|
|
415
|
+
exports.getAssetLists = getAssetLists;
|