@shapeshiftoss/caip 8.14.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.
- package/CHANGELOG.md +726 -0
- package/dist/accountId/accountId.d.ts +9 -9
- package/dist/accountId/accountId.js +16 -20
- package/dist/accountId/accountId.test.js +107 -0
- package/dist/adapters/banxa/index.d.ts +6 -5
- package/dist/adapters/banxa/index.js +60 -38
- package/dist/adapters/coinbase/generate.js +4 -8
- package/dist/adapters/coinbase/generated/index.js +2 -8
- package/dist/adapters/coinbase/index.d.ts +1 -1
- package/dist/adapters/coinbase/index.js +7 -15
- package/dist/adapters/coinbase/utils.d.ts +2 -2
- package/dist/adapters/coinbase/utils.js +11 -23
- package/dist/adapters/coincap/generate.js +5 -7
- package/dist/adapters/coincap/generated/cosmos_thorchain-1/adapter.json +1 -0
- package/dist/adapters/coincap/generated/eip155_1/adapter.json +1 -1
- package/dist/adapters/coincap/generated/index.d.ts +2 -3
- package/dist/adapters/coincap/generated/index.js +8 -22
- package/dist/adapters/coincap/index.d.ts +2 -1
- package/dist/adapters/coincap/index.js +9 -38
- package/dist/adapters/coincap/index.test.js +92 -0
- package/dist/adapters/coincap/utils.d.ts +1 -1
- package/dist/adapters/coincap/utils.js +21 -32
- package/dist/adapters/coincap/utils.test.d.ts +4 -0
- package/dist/adapters/coincap/utils.test.js +163 -0
- package/dist/adapters/coingecko/generate.js +5 -7
- package/dist/adapters/coingecko/generated/cosmos_mayachain-mainnet-v1/adapter.json +1 -0
- package/dist/adapters/coingecko/generated/cosmos_thorchain-1/adapter.json +1 -0
- package/dist/adapters/coingecko/generated/eip155_1/adapter.json +1 -1
- package/dist/adapters/coingecko/generated/eip155_10/adapter.json +1 -1
- package/dist/adapters/coingecko/generated/eip155_100/adapter.json +1 -0
- package/dist/adapters/coingecko/generated/eip155_137/adapter.json +1 -0
- package/dist/adapters/coingecko/generated/eip155_42161/adapter.json +1 -0
- package/dist/adapters/coingecko/generated/eip155_42170/adapter.json +1 -0
- package/dist/adapters/coingecko/generated/eip155_43114/adapter.json +1 -1
- package/dist/adapters/coingecko/generated/eip155_56/adapter.json +1 -0
- package/dist/adapters/coingecko/generated/eip155_8453/adapter.json +1 -0
- package/dist/adapters/coingecko/generated/index.d.ts +10 -3
- package/dist/adapters/coingecko/generated/index.js +18 -26
- package/dist/adapters/coingecko/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +1 -0
- package/dist/adapters/coingecko/index.d.ts +17 -14
- package/dist/adapters/coingecko/index.js +89 -72
- package/dist/adapters/coingecko/index.test.d.ts +1 -0
- package/dist/adapters/coingecko/index.test.js +274 -0
- package/dist/adapters/coingecko/utils.d.ts +4 -6
- package/dist/adapters/coingecko/utils.js +148 -50
- package/dist/adapters/coingecko/utils.test.d.ts +1 -0
- package/dist/adapters/coingecko/utils.test.js +188 -0
- package/dist/adapters/index.d.ts +0 -5
- package/dist/adapters/index.js +6 -27
- package/dist/adapters/mtpelerin/index.d.ts +1 -61
- package/dist/adapters/mtpelerin/index.js +96 -88
- package/dist/adapters/onramper/index.d.ts +2 -2
- package/dist/adapters/onramper/index.js +1483 -62
- package/dist/assetId/assetId.d.ts +14 -13
- package/dist/assetId/assetId.js +81 -57
- package/dist/assetId/assetId.test.d.ts +1 -0
- package/dist/assetId/assetId.test.js +336 -0
- package/dist/chainId/chainId.d.ts +11 -10
- package/dist/chainId/chainId.js +14 -16
- package/dist/chainId/chainId.test.d.ts +1 -0
- package/dist/chainId/chainId.test.js +88 -0
- package/dist/constants.d.ts +63 -38
- package/dist/constants.js +139 -99
- package/dist/index.js +7 -36
- package/dist/typeGuards.d.ts +5 -3
- package/dist/typeGuards.js +34 -40
- package/dist/utils.d.ts +7 -8
- package/dist/utils.js +23 -67
- package/dist/utils.test.d.ts +1 -0
- package/dist/utils.test.js +162 -0
- package/package.json +11 -30
- package/dist/adapters/coincap/generated/cosmos_osmosis-1/adapter.json +0 -1
- package/dist/adapters/coincap/generated/cosmos_thorchain-mainnet-v1/adapter.json +0 -1
- package/dist/adapters/coingecko/generated/cosmos_osmosis-1/adapter.json +0 -1
- package/dist/adapters/coingecko/generated/cosmos_thorchain-mainnet-v1/adapter.json +0 -1
- package/dist/adapters/gem/index.d.ts +0 -2
- package/dist/adapters/gem/index.js +0 -39
- package/dist/adapters/junopay/index.d.ts +0 -7
- package/dist/adapters/junopay/index.js +0 -52
- package/dist/adapters/osmosis/generate.js +0 -13
- package/dist/adapters/osmosis/generated/cosmos_osmosis-1/adapter.json +0 -1022
- package/dist/adapters/osmosis/generated/index.d.ts +0 -2
- package/dist/adapters/osmosis/generated/index.js +0 -8
- package/dist/adapters/osmosis/index.d.ts +0 -6
- package/dist/adapters/osmosis/index.js +0 -54
- package/dist/adapters/osmosis/utils.d.ts +0 -37
- package/dist/adapters/osmosis/utils.js +0 -90
- package/dist/adapters/thortrading/index.d.ts +0 -5
- package/dist/adapters/thortrading/index.js +0 -44
- package/dist/adapters/yearn/generate.js +0 -9
- package/dist/adapters/yearn/generated/eip155_1/adapter.json +0 -1
- package/dist/adapters/yearn/generated/index.d.ts +0 -2
- package/dist/adapters/yearn/generated/index.js +0 -8
- package/dist/adapters/yearn/index.d.ts +0 -2
- package/dist/adapters/yearn/index.js +0 -41
- package/dist/adapters/yearn/utils.d.ts +0 -7
- package/dist/adapters/yearn/utils.js +0 -62
- /package/dist/{adapters/osmosis/generate.d.ts → accountId/accountId.test.d.ts} +0 -0
- /package/dist/adapters/{yearn/generate.d.ts → coincap/index.test.d.ts} +0 -0
|
@@ -1,83 +1,181 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const assetId_1 = require("../../assetId/assetId");
|
|
10
|
-
const constants_1 = require("../../constants");
|
|
11
|
-
const utils_1 = require("../../utils");
|
|
12
|
-
const fetchData = async (URL) => (await axios_1.default.get(URL)).data;
|
|
13
|
-
exports.fetchData = fetchData;
|
|
14
|
-
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) => {
|
|
15
9
|
const assetMap = coins.reduce((prev, { id, platforms }) => {
|
|
16
|
-
if (Object.keys(platforms).includes(
|
|
10
|
+
if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Ethereum)) {
|
|
11
|
+
try {
|
|
12
|
+
const assetId = toAssetId({
|
|
13
|
+
chainNamespace: CHAIN_NAMESPACE.Evm,
|
|
14
|
+
chainReference: CHAIN_REFERENCE.EthereumMainnet,
|
|
15
|
+
assetNamespace: 'erc20',
|
|
16
|
+
assetReference: platforms[CoingeckoAssetPlatform.Ethereum],
|
|
17
|
+
});
|
|
18
|
+
prev[ethChainId][assetId] = id;
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
// unable to create assetId, skip token
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Avalanche)) {
|
|
25
|
+
try {
|
|
26
|
+
const assetId = toAssetId({
|
|
27
|
+
chainNamespace: CHAIN_NAMESPACE.Evm,
|
|
28
|
+
chainReference: CHAIN_REFERENCE.AvalancheCChain,
|
|
29
|
+
assetNamespace: 'erc20',
|
|
30
|
+
assetReference: platforms[CoingeckoAssetPlatform.Avalanche],
|
|
31
|
+
});
|
|
32
|
+
prev[avalancheChainId][assetId] = id;
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
// unable to create assetId, skip token
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Optimism)) {
|
|
39
|
+
try {
|
|
40
|
+
const assetId = toAssetId({
|
|
41
|
+
chainNamespace: CHAIN_NAMESPACE.Evm,
|
|
42
|
+
chainReference: CHAIN_REFERENCE.OptimismMainnet,
|
|
43
|
+
assetNamespace: 'erc20',
|
|
44
|
+
assetReference: platforms[CoingeckoAssetPlatform.Optimism],
|
|
45
|
+
});
|
|
46
|
+
prev[optimismChainId][assetId] = id;
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// unable to create assetId, skip token
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (Object.keys(platforms).includes(CoingeckoAssetPlatform.BnbSmartChain)) {
|
|
53
|
+
try {
|
|
54
|
+
const assetId = toAssetId({
|
|
55
|
+
chainNamespace: CHAIN_NAMESPACE.Evm,
|
|
56
|
+
chainReference: CHAIN_REFERENCE.BnbSmartChainMainnet,
|
|
57
|
+
assetNamespace: 'bep20',
|
|
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)) {
|
|
17
95
|
try {
|
|
18
|
-
const assetId =
|
|
19
|
-
chainNamespace:
|
|
20
|
-
chainReference:
|
|
96
|
+
const assetId = toAssetId({
|
|
97
|
+
chainNamespace: CHAIN_NAMESPACE.Evm,
|
|
98
|
+
chainReference: CHAIN_REFERENCE.ArbitrumMainnet,
|
|
21
99
|
assetNamespace: 'erc20',
|
|
22
|
-
assetReference: platforms.
|
|
100
|
+
assetReference: platforms[CoingeckoAssetPlatform.Arbitrum],
|
|
23
101
|
});
|
|
24
|
-
prev[
|
|
102
|
+
prev[arbitrumChainId][assetId] = id;
|
|
25
103
|
}
|
|
26
|
-
catch (
|
|
104
|
+
catch (err) {
|
|
27
105
|
// unable to create assetId, skip token
|
|
28
106
|
}
|
|
29
107
|
}
|
|
30
|
-
if (Object.keys(platforms).includes(
|
|
108
|
+
if (Object.keys(platforms).includes(CoingeckoAssetPlatform.ArbitrumNova)) {
|
|
31
109
|
try {
|
|
32
|
-
const assetId =
|
|
33
|
-
chainNamespace:
|
|
34
|
-
chainReference:
|
|
110
|
+
const assetId = toAssetId({
|
|
111
|
+
chainNamespace: CHAIN_NAMESPACE.Evm,
|
|
112
|
+
chainReference: CHAIN_REFERENCE.ArbitrumNovaMainnet,
|
|
35
113
|
assetNamespace: 'erc20',
|
|
36
|
-
assetReference: platforms.
|
|
114
|
+
assetReference: platforms[CoingeckoAssetPlatform.ArbitrumNova],
|
|
37
115
|
});
|
|
38
|
-
prev[
|
|
116
|
+
prev[arbitrumNovaChainId][assetId] = id;
|
|
39
117
|
}
|
|
40
|
-
catch (
|
|
118
|
+
catch (err) {
|
|
41
119
|
// unable to create assetId, skip token
|
|
42
120
|
}
|
|
43
121
|
}
|
|
44
|
-
if (Object.keys(platforms).includes(
|
|
122
|
+
if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Base)) {
|
|
45
123
|
try {
|
|
46
|
-
const assetId =
|
|
47
|
-
chainNamespace:
|
|
48
|
-
chainReference:
|
|
124
|
+
const assetId = toAssetId({
|
|
125
|
+
chainNamespace: CHAIN_NAMESPACE.Evm,
|
|
126
|
+
chainReference: CHAIN_REFERENCE.BaseMainnet,
|
|
49
127
|
assetNamespace: 'erc20',
|
|
50
|
-
assetReference: platforms[
|
|
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],
|
|
51
143
|
});
|
|
52
|
-
prev[
|
|
144
|
+
prev[solanaChainId][assetId] = id;
|
|
53
145
|
}
|
|
54
|
-
catch
|
|
146
|
+
catch {
|
|
55
147
|
// unable to create assetId, skip token
|
|
56
148
|
}
|
|
57
149
|
}
|
|
58
150
|
return prev;
|
|
59
151
|
}, {
|
|
60
|
-
[
|
|
61
|
-
[
|
|
62
|
-
[
|
|
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' },
|
|
63
162
|
});
|
|
64
163
|
return {
|
|
65
164
|
...assetMap,
|
|
66
|
-
[
|
|
67
|
-
[
|
|
68
|
-
[
|
|
69
|
-
[
|
|
70
|
-
[
|
|
71
|
-
[
|
|
72
|
-
[
|
|
165
|
+
[btcChainId]: bitcoinAssetMap,
|
|
166
|
+
[bchChainId]: bitcoinCashAssetMap,
|
|
167
|
+
[dogeChainId]: dogecoinAssetMap,
|
|
168
|
+
[ltcChainId]: litecoinAssetMap,
|
|
169
|
+
[cosmosChainId]: cosmosAssetMap,
|
|
170
|
+
[thorchainChainId]: thorchainAssetMap,
|
|
171
|
+
[mayachainChainId]: mayachainAssetMap,
|
|
73
172
|
};
|
|
74
173
|
};
|
|
75
|
-
|
|
76
|
-
const writeFiles = async (data) => {
|
|
174
|
+
export const writeFiles = async (data) => {
|
|
77
175
|
await Promise.all(Object.entries(data).map(async ([chainId, assets]) => {
|
|
78
|
-
const
|
|
79
|
-
await
|
|
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));
|
|
80
179
|
}));
|
|
81
180
|
console.info('Generated CoinGecko AssetId adapter data.');
|
|
82
181
|
};
|
|
83
|
-
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
|
+
});
|
package/dist/adapters/index.d.ts
CHANGED
|
@@ -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';
|
package/dist/adapters/index.js
CHANGED
|
@@ -1,27 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
/**
|