@shapeshiftoss/caip 8.15.0 → 8.16.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.
Files changed (99) hide show
  1. package/CHANGELOG.md +726 -0
  2. package/dist/accountId/accountId.d.ts +9 -9
  3. package/dist/accountId/accountId.js +16 -20
  4. package/dist/accountId/accountId.test.js +107 -0
  5. package/dist/adapters/banxa/index.d.ts +6 -5
  6. package/dist/adapters/banxa/index.js +60 -38
  7. package/dist/adapters/coinbase/generate.js +4 -8
  8. package/dist/adapters/coinbase/generated/index.js +2 -8
  9. package/dist/adapters/coinbase/index.d.ts +1 -1
  10. package/dist/adapters/coinbase/index.js +7 -15
  11. package/dist/adapters/coinbase/utils.d.ts +2 -2
  12. package/dist/adapters/coinbase/utils.js +11 -23
  13. package/dist/adapters/coincap/generate.js +5 -7
  14. package/dist/adapters/coincap/generated/cosmos_thorchain-1/adapter.json +1 -0
  15. package/dist/adapters/coincap/generated/eip155_1/adapter.json +1 -1
  16. package/dist/adapters/coincap/generated/index.d.ts +2 -3
  17. package/dist/adapters/coincap/generated/index.js +8 -22
  18. package/dist/adapters/coincap/index.d.ts +2 -1
  19. package/dist/adapters/coincap/index.js +9 -38
  20. package/dist/adapters/coincap/index.test.js +92 -0
  21. package/dist/adapters/coincap/utils.d.ts +1 -1
  22. package/dist/adapters/coincap/utils.js +21 -32
  23. package/dist/adapters/coincap/utils.test.d.ts +4 -0
  24. package/dist/adapters/coincap/utils.test.js +163 -0
  25. package/dist/adapters/coingecko/generate.js +5 -7
  26. package/dist/adapters/coingecko/generated/cosmos_mayachain-mainnet-v1/adapter.json +1 -0
  27. package/dist/adapters/coingecko/generated/cosmos_thorchain-1/adapter.json +1 -0
  28. package/dist/adapters/coingecko/generated/eip155_1/adapter.json +1 -1
  29. package/dist/adapters/coingecko/generated/eip155_10/adapter.json +1 -1
  30. package/dist/adapters/coingecko/generated/eip155_100/adapter.json +1 -0
  31. package/dist/adapters/coingecko/generated/eip155_137/adapter.json +1 -0
  32. package/dist/adapters/coingecko/generated/eip155_42161/adapter.json +1 -0
  33. package/dist/adapters/coingecko/generated/eip155_42170/adapter.json +1 -0
  34. package/dist/adapters/coingecko/generated/eip155_43114/adapter.json +1 -1
  35. package/dist/adapters/coingecko/generated/eip155_56/adapter.json +1 -1
  36. package/dist/adapters/coingecko/generated/eip155_8453/adapter.json +1 -0
  37. package/dist/adapters/coingecko/generated/index.d.ts +9 -3
  38. package/dist/adapters/coingecko/generated/index.js +18 -28
  39. package/dist/adapters/coingecko/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +1 -0
  40. package/dist/adapters/coingecko/index.d.ts +16 -14
  41. package/dist/adapters/coingecko/index.js +87 -73
  42. package/dist/adapters/coingecko/index.test.d.ts +1 -0
  43. package/dist/adapters/coingecko/index.test.js +274 -0
  44. package/dist/adapters/coingecko/utils.d.ts +4 -6
  45. package/dist/adapters/coingecko/utils.js +141 -59
  46. package/dist/adapters/coingecko/utils.test.d.ts +1 -0
  47. package/dist/adapters/coingecko/utils.test.js +188 -0
  48. package/dist/adapters/index.d.ts +0 -5
  49. package/dist/adapters/index.js +6 -27
  50. package/dist/adapters/mtpelerin/index.d.ts +1 -61
  51. package/dist/adapters/mtpelerin/index.js +96 -88
  52. package/dist/adapters/onramper/index.d.ts +2 -2
  53. package/dist/adapters/onramper/index.js +1483 -62
  54. package/dist/assetId/assetId.d.ts +14 -13
  55. package/dist/assetId/assetId.js +81 -57
  56. package/dist/assetId/assetId.test.d.ts +1 -0
  57. package/dist/assetId/assetId.test.js +336 -0
  58. package/dist/chainId/chainId.d.ts +11 -10
  59. package/dist/chainId/chainId.js +14 -16
  60. package/dist/chainId/chainId.test.d.ts +1 -0
  61. package/dist/chainId/chainId.test.js +88 -0
  62. package/dist/constants.d.ts +57 -38
  63. package/dist/constants.js +135 -108
  64. package/dist/index.js +7 -36
  65. package/dist/typeGuards.d.ts +5 -3
  66. package/dist/typeGuards.js +34 -40
  67. package/dist/utils.d.ts +7 -8
  68. package/dist/utils.js +23 -67
  69. package/dist/utils.test.d.ts +1 -0
  70. package/dist/utils.test.js +162 -0
  71. package/package.json +11 -30
  72. package/dist/adapters/coincap/generated/cosmos_osmosis-1/adapter.json +0 -1
  73. package/dist/adapters/coincap/generated/cosmos_thorchain-mainnet-v1/adapter.json +0 -1
  74. package/dist/adapters/coingecko/generated/cosmos_osmosis-1/adapter.json +0 -1
  75. package/dist/adapters/coingecko/generated/cosmos_thorchain-mainnet-v1/adapter.json +0 -1
  76. package/dist/adapters/gem/index.d.ts +0 -2
  77. package/dist/adapters/gem/index.js +0 -39
  78. package/dist/adapters/junopay/index.d.ts +0 -7
  79. package/dist/adapters/junopay/index.js +0 -52
  80. package/dist/adapters/osmosis/generate.js +0 -13
  81. package/dist/adapters/osmosis/generated/cosmos_osmosis-1/adapter.json +0 -1022
  82. package/dist/adapters/osmosis/generated/index.d.ts +0 -2
  83. package/dist/adapters/osmosis/generated/index.js +0 -8
  84. package/dist/adapters/osmosis/index.d.ts +0 -6
  85. package/dist/adapters/osmosis/index.js +0 -54
  86. package/dist/adapters/osmosis/utils.d.ts +0 -37
  87. package/dist/adapters/osmosis/utils.js +0 -90
  88. package/dist/adapters/thortrading/index.d.ts +0 -5
  89. package/dist/adapters/thortrading/index.js +0 -44
  90. package/dist/adapters/yearn/generate.js +0 -9
  91. package/dist/adapters/yearn/generated/eip155_1/adapter.json +0 -1
  92. package/dist/adapters/yearn/generated/index.d.ts +0 -2
  93. package/dist/adapters/yearn/generated/index.js +0 -8
  94. package/dist/adapters/yearn/index.d.ts +0 -2
  95. package/dist/adapters/yearn/index.js +0 -41
  96. package/dist/adapters/yearn/utils.d.ts +0 -7
  97. package/dist/adapters/yearn/utils.js +0 -62
  98. /package/dist/{adapters/osmosis/generate.d.ts → accountId/accountId.test.d.ts} +0 -0
  99. /package/dist/adapters/{yearn/generate.d.ts → coincap/index.test.d.ts} +0 -0
@@ -1,99 +1,181 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.writeFiles = exports.parseData = exports.fetchData = void 0;
7
- const axios_1 = __importDefault(require("axios"));
8
- const fs_1 = __importDefault(require("fs"));
9
- const assetId_1 = require("../../assetId/assetId");
10
- const constants_1 = require("../../constants");
11
- const utils_1 = require("../../utils");
12
- const _1 = require(".");
13
- const fetchData = async (URL) => (await axios_1.default.get(URL)).data;
14
- exports.fetchData = fetchData;
15
- const parseData = (coins) => {
1
+ import axios from 'axios';
2
+ import fs from 'fs';
3
+ import { toAssetId } from '../../assetId/assetId';
4
+ import { arbitrumAssetId, arbitrumChainId, arbitrumNovaAssetId, arbitrumNovaChainId, avalancheAssetId, avalancheChainId, baseAssetId, baseChainId, bchChainId, bscAssetId, bscChainId, btcChainId, CHAIN_NAMESPACE, CHAIN_REFERENCE, cosmosChainId, dogeChainId, ethAssetId, ethChainId, gnosisAssetId, gnosisChainId, ltcChainId, mayachainChainId, optimismAssetId, optimismChainId, polygonAssetId, polygonChainId, solanaChainId, solAssetId, thorchainChainId, } from '../../constants';
5
+ import { bitcoinAssetMap, bitcoinCashAssetMap, cosmosAssetMap, dogecoinAssetMap, litecoinAssetMap, mayachainAssetMap, thorchainAssetMap, } from '../../utils';
6
+ import { CoingeckoAssetPlatform } from '.';
7
+ export const fetchData = async (URL) => (await axios.get(URL)).data;
8
+ export const parseData = (coins) => {
16
9
  const assetMap = coins.reduce((prev, { id, platforms }) => {
17
- if (Object.keys(platforms).includes(_1.CoingeckoAssetPlatform.Ethereum)) {
10
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Ethereum)) {
18
11
  try {
19
- const assetId = (0, assetId_1.toAssetId)({
20
- chainNamespace: constants_1.CHAIN_NAMESPACE.Evm,
21
- chainReference: constants_1.CHAIN_REFERENCE.EthereumMainnet,
12
+ const assetId = toAssetId({
13
+ chainNamespace: CHAIN_NAMESPACE.Evm,
14
+ chainReference: CHAIN_REFERENCE.EthereumMainnet,
22
15
  assetNamespace: 'erc20',
23
- assetReference: platforms[_1.CoingeckoAssetPlatform.Ethereum],
16
+ assetReference: platforms[CoingeckoAssetPlatform.Ethereum],
24
17
  });
25
- prev[constants_1.ethChainId][assetId] = id;
18
+ prev[ethChainId][assetId] = id;
26
19
  }
27
- catch (_a) {
20
+ catch {
28
21
  // unable to create assetId, skip token
29
22
  }
30
23
  }
31
- if (Object.keys(platforms).includes(_1.CoingeckoAssetPlatform.Avalanche)) {
24
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Avalanche)) {
32
25
  try {
33
- const assetId = (0, assetId_1.toAssetId)({
34
- chainNamespace: constants_1.CHAIN_NAMESPACE.Evm,
35
- chainReference: constants_1.CHAIN_REFERENCE.AvalancheCChain,
26
+ const assetId = toAssetId({
27
+ chainNamespace: CHAIN_NAMESPACE.Evm,
28
+ chainReference: CHAIN_REFERENCE.AvalancheCChain,
36
29
  assetNamespace: 'erc20',
37
- assetReference: platforms[_1.CoingeckoAssetPlatform.Avalanche],
30
+ assetReference: platforms[CoingeckoAssetPlatform.Avalanche],
38
31
  });
39
- prev[constants_1.avalancheChainId][assetId] = id;
32
+ prev[avalancheChainId][assetId] = id;
40
33
  }
41
- catch (_b) {
34
+ catch {
42
35
  // unable to create assetId, skip token
43
36
  }
44
37
  }
45
- if (Object.keys(platforms).includes(_1.CoingeckoAssetPlatform.Optimism)) {
38
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Optimism)) {
46
39
  try {
47
- const assetId = (0, assetId_1.toAssetId)({
48
- chainNamespace: constants_1.CHAIN_NAMESPACE.Evm,
49
- chainReference: constants_1.CHAIN_REFERENCE.OptimismMainnet,
40
+ const assetId = toAssetId({
41
+ chainNamespace: CHAIN_NAMESPACE.Evm,
42
+ chainReference: CHAIN_REFERENCE.OptimismMainnet,
50
43
  assetNamespace: 'erc20',
51
- assetReference: platforms[_1.CoingeckoAssetPlatform.Optimism],
44
+ assetReference: platforms[CoingeckoAssetPlatform.Optimism],
52
45
  });
53
- prev[constants_1.optimismChainId][assetId] = id;
46
+ prev[optimismChainId][assetId] = id;
54
47
  }
55
- catch (_c) {
48
+ catch {
56
49
  // unable to create assetId, skip token
57
50
  }
58
51
  }
59
- if (Object.keys(platforms).includes(_1.CoingeckoAssetPlatform.BnbSmartChain)) {
52
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.BnbSmartChain)) {
60
53
  try {
61
- const assetId = (0, assetId_1.toAssetId)({
62
- chainNamespace: constants_1.CHAIN_NAMESPACE.Evm,
63
- chainReference: constants_1.CHAIN_REFERENCE.BnbSmartChainMainnet,
54
+ const assetId = toAssetId({
55
+ chainNamespace: CHAIN_NAMESPACE.Evm,
56
+ chainReference: CHAIN_REFERENCE.BnbSmartChainMainnet,
64
57
  assetNamespace: 'bep20',
65
- assetReference: platforms[_1.CoingeckoAssetPlatform.BnbSmartChain],
58
+ assetReference: platforms[CoingeckoAssetPlatform.BnbSmartChain],
59
+ });
60
+ prev[bscChainId][assetId] = id;
61
+ }
62
+ catch {
63
+ // unable to create assetId, skip token
64
+ }
65
+ }
66
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Polygon)) {
67
+ try {
68
+ const assetId = toAssetId({
69
+ chainNamespace: CHAIN_NAMESPACE.Evm,
70
+ chainReference: CHAIN_REFERENCE.PolygonMainnet,
71
+ assetNamespace: 'erc20',
72
+ assetReference: platforms[CoingeckoAssetPlatform.Polygon],
73
+ });
74
+ prev[polygonChainId][assetId] = id;
75
+ }
76
+ catch (err) {
77
+ // unable to create assetId, skip token
78
+ }
79
+ }
80
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Gnosis)) {
81
+ try {
82
+ const assetId = toAssetId({
83
+ chainNamespace: CHAIN_NAMESPACE.Evm,
84
+ chainReference: CHAIN_REFERENCE.GnosisMainnet,
85
+ assetNamespace: 'erc20',
86
+ assetReference: platforms[CoingeckoAssetPlatform.Gnosis],
87
+ });
88
+ prev[gnosisChainId][assetId] = id;
89
+ }
90
+ catch (err) {
91
+ // unable to create assetId, skip token
92
+ }
93
+ }
94
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Arbitrum)) {
95
+ try {
96
+ const assetId = toAssetId({
97
+ chainNamespace: CHAIN_NAMESPACE.Evm,
98
+ chainReference: CHAIN_REFERENCE.ArbitrumMainnet,
99
+ assetNamespace: 'erc20',
100
+ assetReference: platforms[CoingeckoAssetPlatform.Arbitrum],
101
+ });
102
+ prev[arbitrumChainId][assetId] = id;
103
+ }
104
+ catch (err) {
105
+ // unable to create assetId, skip token
106
+ }
107
+ }
108
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.ArbitrumNova)) {
109
+ try {
110
+ const assetId = toAssetId({
111
+ chainNamespace: CHAIN_NAMESPACE.Evm,
112
+ chainReference: CHAIN_REFERENCE.ArbitrumNovaMainnet,
113
+ assetNamespace: 'erc20',
114
+ assetReference: platforms[CoingeckoAssetPlatform.ArbitrumNova],
115
+ });
116
+ prev[arbitrumNovaChainId][assetId] = id;
117
+ }
118
+ catch (err) {
119
+ // unable to create assetId, skip token
120
+ }
121
+ }
122
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Base)) {
123
+ try {
124
+ const assetId = toAssetId({
125
+ chainNamespace: CHAIN_NAMESPACE.Evm,
126
+ chainReference: CHAIN_REFERENCE.BaseMainnet,
127
+ assetNamespace: 'erc20',
128
+ assetReference: platforms[CoingeckoAssetPlatform.Base],
129
+ });
130
+ prev[baseChainId][assetId] = id;
131
+ }
132
+ catch {
133
+ // unable to create assetId, skip token
134
+ }
135
+ }
136
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Solana)) {
137
+ try {
138
+ const assetId = toAssetId({
139
+ chainNamespace: CHAIN_NAMESPACE.Solana,
140
+ chainReference: CHAIN_REFERENCE.SolanaMainnet,
141
+ assetNamespace: 'token',
142
+ assetReference: platforms[CoingeckoAssetPlatform.Solana],
66
143
  });
67
- prev[constants_1.bscChainId][assetId] = id;
144
+ prev[solanaChainId][assetId] = id;
68
145
  }
69
- catch (_d) {
146
+ catch {
70
147
  // unable to create assetId, skip token
71
148
  }
72
149
  }
73
150
  return prev;
74
151
  }, {
75
- [constants_1.ethChainId]: { [constants_1.ethAssetId]: 'ethereum' },
76
- [constants_1.avalancheChainId]: { [constants_1.avalancheAssetId]: 'avalanche-2' },
77
- [constants_1.optimismChainId]: { [constants_1.optimismAssetId]: 'ethereum' },
78
- [constants_1.bscChainId]: { [constants_1.bscAssetId]: 'binancecoin' },
152
+ [ethChainId]: { [ethAssetId]: 'ethereum' },
153
+ [avalancheChainId]: { [avalancheAssetId]: 'avalanche-2' },
154
+ [optimismChainId]: { [optimismAssetId]: 'ethereum' },
155
+ [bscChainId]: { [bscAssetId]: 'binancecoin' },
156
+ [polygonChainId]: { [polygonAssetId]: 'matic-network' },
157
+ [gnosisChainId]: { [gnosisAssetId]: 'xdai' },
158
+ [arbitrumChainId]: { [arbitrumAssetId]: 'ethereum' },
159
+ [arbitrumNovaChainId]: { [arbitrumNovaAssetId]: 'ethereum' },
160
+ [baseChainId]: { [baseAssetId]: 'ethereum' },
161
+ [solanaChainId]: { [solAssetId]: 'solana' },
79
162
  });
80
163
  return {
81
164
  ...assetMap,
82
- [constants_1.btcChainId]: utils_1.bitcoinAssetMap,
83
- [constants_1.bchChainId]: utils_1.bitcoinCashAssetMap,
84
- [constants_1.dogeChainId]: utils_1.dogecoinAssetMap,
85
- [constants_1.ltcChainId]: utils_1.litecoinAssetMap,
86
- [constants_1.cosmosChainId]: utils_1.cosmosAssetMap,
87
- [constants_1.osmosisChainId]: utils_1.osmosisAssetMap,
88
- [constants_1.thorchainChainId]: utils_1.thorchainAssetMap,
165
+ [btcChainId]: bitcoinAssetMap,
166
+ [bchChainId]: bitcoinCashAssetMap,
167
+ [dogeChainId]: dogecoinAssetMap,
168
+ [ltcChainId]: litecoinAssetMap,
169
+ [cosmosChainId]: cosmosAssetMap,
170
+ [thorchainChainId]: thorchainAssetMap,
171
+ [mayachainChainId]: mayachainAssetMap,
89
172
  };
90
173
  };
91
- exports.parseData = parseData;
92
- const writeFiles = async (data) => {
174
+ export const writeFiles = async (data) => {
93
175
  await Promise.all(Object.entries(data).map(async ([chainId, assets]) => {
94
- const path = `./src/adapters/coingecko/generated/${chainId}/adapter.json`.replace(':', '_');
95
- await fs_1.default.promises.writeFile(path, JSON.stringify(assets));
176
+ const dirPath = `./src/adapters/coingecko/generated/${chainId}`.replace(':', '_');
177
+ await fs.promises.mkdir(dirPath, { recursive: true });
178
+ await fs.promises.writeFile(`${dirPath}/adapter.json`, JSON.stringify(assets));
96
179
  }));
97
180
  console.info('Generated CoinGecko AssetId adapter data.');
98
181
  };
99
- exports.writeFiles = writeFiles;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,188 @@
1
+ import realFs from 'fs';
2
+ import { describe, expect, it, vi } from 'vitest';
3
+ import { bitcoinAssetMap, cosmosAssetMap } from '../../utils';
4
+ import { parseData, writeFiles } from './utils';
5
+ const makeEthMockCoingeckoResponse = () => ({
6
+ id: 'ethereum',
7
+ symbol: 'eth',
8
+ platforms: {},
9
+ });
10
+ const makeWethMockCoingeckoResponse = () => ({
11
+ id: 'weth',
12
+ symbol: 'weth',
13
+ name: 'WETH',
14
+ platforms: {
15
+ ethereum: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
16
+ 'optimistic-ethereum': '0x4200000000000000000000000000000000000006',
17
+ avalanche: '0x49d5c2bdffac6ce2bfdb6640f4f80f226bc10bab',
18
+ 'binance-smart-chain': '0x2170ed0880ac9a755fd29b2688956bd959f933f8',
19
+ 'polygon-pos': '0x7ceb23fd6bc0add59e62ac25578270cff1b9f619',
20
+ xdai: '0x6a023ccd1ff6f2045c3309768ead9e68f978f6e1',
21
+ 'arbitrum-one': '0x82af49447d8a07e3bd95bd0d56f35241523fbab1',
22
+ 'arbitrum-nova': '0x722e8bdd2ce80a4422e880164f2079488e115365',
23
+ base: '0x4200000000000000000000000000000000000006',
24
+ },
25
+ });
26
+ const makeAvalancheMockCoingeckoResponse = () => ({
27
+ id: 'avalanche-2',
28
+ symbol: 'avax',
29
+ platforms: {},
30
+ });
31
+ const makeFoxMockCoingeckoResponse = () => ({
32
+ id: 'shapeshift-fox-token',
33
+ symbol: 'fox',
34
+ platforms: {
35
+ ethereum: '0xc770eefad204b5180df6a14ee197d99d808ee52d',
36
+ },
37
+ });
38
+ const makeBtcMockCoingeckoResponse = () => ({
39
+ id: 'bitcoin',
40
+ symbol: 'btc',
41
+ platforms: {},
42
+ });
43
+ const makeCosmosMockCoingeckoResponse = () => ({
44
+ id: 'cosmos',
45
+ symbol: 'atom',
46
+ platforms: {},
47
+ });
48
+ const makePolygonMockCoingeckoResponse = () => ({
49
+ id: 'polygon-pos',
50
+ symbol: 'matic',
51
+ platforms: {},
52
+ });
53
+ const makeGnosisMockCoingeckoResponse = () => ({
54
+ id: 'gnosis',
55
+ symbol: 'xDai',
56
+ platforms: {},
57
+ });
58
+ const makeThorchainMockCoingeckoResponse = () => ({
59
+ id: 'thorchain',
60
+ symbol: 'rune',
61
+ platforms: {
62
+ thorchain: '',
63
+ },
64
+ });
65
+ vi.mock('fs', () => ({
66
+ default: {
67
+ promises: {
68
+ writeFile: vi.fn(() => undefined),
69
+ mkdir: vi.fn(() => undefined),
70
+ },
71
+ },
72
+ }));
73
+ describe('adapters:coingecko:utils', () => {
74
+ describe('makeData', () => {
75
+ it('can make btc data', () => {
76
+ const result = bitcoinAssetMap;
77
+ const expected = { 'bip122:000000000019d6689c085ae165831e93/slip44:0': 'bitcoin' };
78
+ expect(result).toEqual(expected);
79
+ });
80
+ it('can make cosmos data', () => {
81
+ const result = cosmosAssetMap;
82
+ const expected = { 'cosmos:cosmoshub-4/slip44:118': 'cosmos' };
83
+ expect(result).toEqual(expected);
84
+ });
85
+ });
86
+ describe('parseData', () => {
87
+ it('can parse all data', () => {
88
+ const result = parseData([
89
+ makeEthMockCoingeckoResponse(),
90
+ makeWethMockCoingeckoResponse(),
91
+ makeFoxMockCoingeckoResponse(),
92
+ makeBtcMockCoingeckoResponse(),
93
+ makeCosmosMockCoingeckoResponse(),
94
+ makeThorchainMockCoingeckoResponse(),
95
+ makeAvalancheMockCoingeckoResponse(),
96
+ makePolygonMockCoingeckoResponse(),
97
+ makeGnosisMockCoingeckoResponse(),
98
+ ]);
99
+ const expected = {
100
+ 'bip122:000000000019d6689c085ae165831e93': {
101
+ 'bip122:000000000019d6689c085ae165831e93/slip44:0': 'bitcoin',
102
+ },
103
+ 'bip122:000000000000000000651ef99cb9fcbe': {
104
+ 'bip122:000000000000000000651ef99cb9fcbe/slip44:145': 'bitcoin-cash',
105
+ },
106
+ 'bip122:00000000001a91e3dace36e2be3bf030': {
107
+ 'bip122:00000000001a91e3dace36e2be3bf030/slip44:3': 'dogecoin',
108
+ },
109
+ 'bip122:12a765e31ffd4059bada1e25190f6e98': {
110
+ 'bip122:12a765e31ffd4059bada1e25190f6e98/slip44:2': 'litecoin',
111
+ },
112
+ 'cosmos:cosmoshub-4': {
113
+ 'cosmos:cosmoshub-4/slip44:118': 'cosmos',
114
+ },
115
+ 'cosmos:thorchain-1': {
116
+ 'cosmos:thorchain-1/slip44:931': 'thorchain',
117
+ },
118
+ 'cosmos:mayachain-mainnet-v1': {
119
+ 'cosmos:mayachain-mainnet-v1/slip44:931': 'cacao',
120
+ },
121
+ 'eip155:1': {
122
+ 'eip155:1/slip44:60': 'ethereum',
123
+ 'eip155:1/erc20:0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2': 'weth',
124
+ 'eip155:1/erc20:0xc770eefad204b5180df6a14ee197d99d808ee52d': 'shapeshift-fox-token',
125
+ },
126
+ 'eip155:43114': {
127
+ 'eip155:43114/slip44:60': 'avalanche-2',
128
+ 'eip155:43114/erc20:0x49d5c2bdffac6ce2bfdb6640f4f80f226bc10bab': 'weth',
129
+ },
130
+ 'eip155:56': {
131
+ 'eip155:56/slip44:60': 'binancecoin',
132
+ 'eip155:56/bep20:0x2170ed0880ac9a755fd29b2688956bd959f933f8': 'weth',
133
+ },
134
+ 'eip155:10': {
135
+ 'eip155:10/slip44:60': 'ethereum',
136
+ 'eip155:10/erc20:0x4200000000000000000000000000000000000006': 'weth',
137
+ },
138
+ 'eip155:137': {
139
+ 'eip155:137/slip44:60': 'matic-network',
140
+ 'eip155:137/erc20:0x7ceb23fd6bc0add59e62ac25578270cff1b9f619': 'weth',
141
+ },
142
+ 'eip155:100': {
143
+ 'eip155:100/slip44:60': 'xdai',
144
+ 'eip155:100/erc20:0x6a023ccd1ff6f2045c3309768ead9e68f978f6e1': 'weth',
145
+ },
146
+ 'eip155:42161': {
147
+ 'eip155:42161/slip44:60': 'ethereum',
148
+ 'eip155:42161/erc20:0x82af49447d8a07e3bd95bd0d56f35241523fbab1': 'weth',
149
+ },
150
+ 'eip155:42170': {
151
+ 'eip155:42170/slip44:60': 'ethereum',
152
+ 'eip155:42170/erc20:0x722e8bdd2ce80a4422e880164f2079488e115365': 'weth',
153
+ },
154
+ 'eip155:8453': {
155
+ 'eip155:8453/slip44:60': 'ethereum',
156
+ 'eip155:8453/erc20:0x4200000000000000000000000000000000000006': 'weth',
157
+ },
158
+ 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp': {
159
+ 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501': 'solana',
160
+ },
161
+ };
162
+ expect(result).toEqual(expected);
163
+ });
164
+ });
165
+ describe('writeFiles', () => {
166
+ it('can writeFiles', async () => {
167
+ const data = {
168
+ foo: {
169
+ assetIdAbc: 'bitcorn',
170
+ assetIdDef: 'efferium',
171
+ },
172
+ bar: {
173
+ assetIdGhi: 'fox',
174
+ assetIdJkl: 'shib',
175
+ },
176
+ };
177
+ const fooAssetIds = JSON.stringify(data.foo);
178
+ const barAssetIds = JSON.stringify(data.bar);
179
+ console.info = vi.fn();
180
+ await writeFiles(data);
181
+ expect(realFs.promises.mkdir).toHaveBeenNthCalledWith(1, './src/adapters/coingecko/generated/foo', { recursive: true });
182
+ expect(realFs.promises.writeFile).toHaveBeenNthCalledWith(1, './src/adapters/coingecko/generated/foo/adapter.json', fooAssetIds);
183
+ expect(realFs.promises.mkdir).toHaveBeenNthCalledWith(2, './src/adapters/coingecko/generated/bar', { recursive: true });
184
+ expect(realFs.promises.writeFile).toHaveBeenNthCalledWith(2, './src/adapters/coingecko/generated/bar/adapter.json', barAssetIds);
185
+ expect(console.info).toBeCalledWith('Generated CoinGecko AssetId adapter data.');
186
+ });
187
+ });
188
+ });
@@ -1,11 +1,6 @@
1
1
  export * from './coingecko';
2
2
  export * from './coincap';
3
- export * from './yearn';
4
- export * from './osmosis';
5
- export * from './gem';
6
3
  export * from './banxa';
7
4
  export * from './coinbase';
8
- export * from './junopay';
9
- export * from './thortrading';
10
5
  export * from './mtpelerin';
11
6
  export * from './onramper';
@@ -1,27 +1,6 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./coingecko"), exports);
18
- __exportStar(require("./coincap"), exports);
19
- __exportStar(require("./yearn"), exports);
20
- __exportStar(require("./osmosis"), exports);
21
- __exportStar(require("./gem"), exports);
22
- __exportStar(require("./banxa"), exports);
23
- __exportStar(require("./coinbase"), exports);
24
- __exportStar(require("./junopay"), exports);
25
- __exportStar(require("./thortrading"), exports);
26
- __exportStar(require("./mtpelerin"), exports);
27
- __exportStar(require("./onramper"), exports);
1
+ export * from './coingecko';
2
+ export * from './coincap';
3
+ export * from './banxa';
4
+ export * from './coinbase';
5
+ export * from './mtpelerin';
6
+ export * from './onramper';
@@ -1,64 +1,4 @@
1
- import { AssetId } from '../../assetId/assetId';
2
- /**
3
- * The following is the list of assets that Mt Pelerin supports
4
- * but they're **not supported** (yet?) in ShapeShift
5
- * {
6
- '[xdai_mainnet]/0x0000000000000000000000000000000000000000': 'XDAI',
7
- '[xdai_mainnet]/0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83': 'USDC',
8
- '[xdai_mainnet]/0x4ECaBa5870353805a9F068101A40E0f32ed605C6': 'USDT',
9
- '[xdai_mainnet]/0x8e5bBbb09Ed1ebdE8674Cda39A0c169401db4252': 'WBTC',
10
- '[xdai_mainnet]/0x6A023CCd1ff6F2045C3309768eAd9E68F978f6e1': 'WETH',
11
- '[xdai_mainnet]/0x9fB1d52596c44603198fB0aee434fac3a679f702': 'jEUR',
12
- '[xdai_mainnet]/0x2d5563da42b06FbBF9c67b7DC073cF6A7842239e': 'jCHF',
13
- '[bsc_mainnet]/0x0000000000000000000000000000000000000000': 'BNB',
14
- '[bsc_mainnet]/0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d': 'USDC',
15
- '[bsc_mainnet]/0x55d398326f99059fF775485246999027B3197955': 'USDT',
16
- '[bsc_mainnet]/0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c': 'BTCB',
17
- '[bsc_mainnet]/0x2170ed0880ac9a755fd29b2688956bd959f933f8': 'WETH',
18
- '[bsc_mainnet]/0xe9e7cea3dedca5984780bafc599bd69add087d56': 'BUSD',
19
- '[bsc_mainnet]/0x23b8683Ff98F9E4781552DFE6f12Aa32814924e8': 'jEUR',
20
- '[bsc_mainnet]/0x7c869b5A294b1314E985283d01C702B62224a05f': 'jCHF',
21
- '[bsc_mainnet]/0x048E9b1ddF9EBbb224812372280e94Ccac443f9e': 'jGBP',
22
- '[bsc_mainnet]/0x6B8b9AE0627a7622c593A1696859ca753c61A670': 'jZAR',
23
- '[matic_mainnet]/0x0000000000000000000000000000000000000000': 'MATIC',
24
- '[matic_mainnet]/0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174': 'USDC',
25
- '[matic_mainnet]/0xc2132D05D31c914a87C6611C10748AEb04B58e8F': 'USDT',
26
- '[matic_mainnet]/0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6': 'WBTC',
27
- '[matic_mainnet]/0x4e3Decbb3645551B8A19f0eA1678079FCB33fB4c': 'jEUR',
28
- '[matic_mainnet]/0xbD1463F02f61676d53fd183C2B19282BFF93D099': 'jCHF',
29
- '[matic_mainnet]/0x767058F11800FBA6A682E73A6e79ec5eB74Fac8c': 'jGBP',
30
- '[matic_mainnet]/0x8ca194A3b22077359b5732DE53373D4afC11DeE3': 'jCAD',
31
- '[matic_mainnet]/0xa926db7a4CC0cb1736D5ac60495ca8Eb7214B503': 'jSGD',
32
- '[matic_mainnet]/0x197E5d6CcfF265AC3E303a34Db360ee1429f5d1A': 'jSEK',
33
- '[matic_mainnet]/0xCB7F1Ef7246D1497b985f7FC45A1A31F04346133': 'jAUD',
34
- '[matic_mainnet]/0x8343091F2499FD4b6174A46D067A920a3b851FF9': 'jJPY',
35
- '[matic_mainnet]/0x7ceb23fd6bc0add59e62ac25578270cff1b9f619': 'WETH',
36
- '[matic_mainnet]/0xE111178A87A3BFf0c8d18DECBa5798827539Ae99': 'EURS',
37
- '[matic_mainnet]/0x7BDF330f423Ea880FF95fC41A280fD5eCFD3D09f': 'EURT',
38
- '[matic_mainnet]/0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4': 'agEUR',
39
- '[matic_mainnet]/0x45c32fA6DF82ead1e2EF74d17b76547EDdFaFF89': 'FRAX',
40
- '[matic_mainnet]/0xa3Fa99A148fA48D14Ed51d610c367C61876997F1': 'MAI',
41
- '[matic_mainnet]/0xE6469Ba6D2fD6130788E0eA9C0a0515900563b59': 'UST',
42
- '[tezos_mainnet]/0x0000000000000000000000000000000000000000': 'XTZ',
43
- '[tezos_mainnet]/KT1JBNFcB5tiycHNdYGYCtR3kk6JaJysUCi8': 'EURL',
44
- '[arbitrum_mainnet]/0x0000000000000000000000000000000000000000': 'ETH',
45
- '[arbitrum_mainnet]/0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8': 'USDC',
46
- '[avalanche_mainnet]/0x9fB1d52596c44603198fB0aee434fac3a679f702': 'jEUR',
47
- '[avalanche_mainnet]/0x2d5563da42b06FbBF9c67b7DC073cF6A7842239e': 'jCHF',
48
- '[avalanche_mainnet]/0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b': 'MAI',
49
- '[avalanche_mainnet]/0xb599c3590F42f8F995ECfa0f85D2980B76862fc1': 'UST',
50
- '[fantom_mainnet]/0x0000000000000000000000000000000000000000': 'FTM',
51
- '[fantom_mainnet]/0x04068DA6C83AFCFA0e13ba15A6696662335D5B75': 'USDC',
52
- '[fantom_mainnet]/0xdc301622e621166BD8E82f2cA0A26c13Ad0BE355': 'FRAX',
53
- '[fantom_mainnet]/0xfB98B335551a418cD0737375a2ea0ded62Ea213b': 'MAI',
54
- '[fantom_mainnet]/0x846e4D51d7E2043C1a87E0Ab7490B93FB940357b': 'UST',
55
- '[rsk_mainnet]/0x0000000000000000000000000000000000000000': 'RBTC',
56
- '[rsk_mainnet]/0x2d919f19d4892381d58edebeca66d5642cef1a1f': 'RDOC',
57
- '[rsk_mainnet]/0xef213441a85df4d7acbdae0cf78004e1e486bb96': 'USDT',
58
- '[rsk_mainnet]/0x2acc95758f8b5f583470ba265eb685a8f45fc9d5': 'RIF',
59
- '[ethChainId]/0x89d71DfbDD6ebeCd0dfe27D55189F903169d2991': 'THDX'
60
- * }
61
- */
1
+ import type { AssetId } from '../../assetId/assetId';
62
2
  export declare const mtPelerinSymbolToAssetIds: (id: string) => AssetId[];
63
3
  export declare const assetIdToMtPelerinSymbol: (assetId: AssetId) => string | undefined;
64
4
  /**