@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
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { toAssetId } from '../../assetId/assetId';
|
|
3
|
+
import { ASSET_REFERENCE, CHAIN_NAMESPACE, CHAIN_REFERENCE } from '../../constants';
|
|
4
|
+
import { assetIdToCoinCap, coincapToAssetId } from '.';
|
|
5
|
+
describe('adapters:coincap', () => {
|
|
6
|
+
describe('coincapToAssetId', () => {
|
|
7
|
+
it('can get AssetId for bitcoin', () => {
|
|
8
|
+
const chainNamespace = CHAIN_NAMESPACE.Utxo;
|
|
9
|
+
const chainReference = CHAIN_REFERENCE.BitcoinMainnet;
|
|
10
|
+
const assetId = toAssetId({
|
|
11
|
+
chainNamespace,
|
|
12
|
+
chainReference,
|
|
13
|
+
assetNamespace: 'slip44',
|
|
14
|
+
assetReference: ASSET_REFERENCE.Bitcoin,
|
|
15
|
+
});
|
|
16
|
+
expect(coincapToAssetId('bitcoin')).toEqual(assetId);
|
|
17
|
+
});
|
|
18
|
+
it('can get AssetId id for ethereum', () => {
|
|
19
|
+
const chainNamespace = CHAIN_NAMESPACE.Evm;
|
|
20
|
+
const chainReference = CHAIN_REFERENCE.EthereumMainnet;
|
|
21
|
+
const assetId = toAssetId({
|
|
22
|
+
chainNamespace,
|
|
23
|
+
chainReference,
|
|
24
|
+
assetNamespace: 'slip44',
|
|
25
|
+
assetReference: ASSET_REFERENCE.Ethereum,
|
|
26
|
+
});
|
|
27
|
+
expect(coincapToAssetId('ethereum')).toEqual(assetId);
|
|
28
|
+
});
|
|
29
|
+
it('can get AssetId id for FOX', () => {
|
|
30
|
+
const chainNamespace = CHAIN_NAMESPACE.Evm;
|
|
31
|
+
const chainReference = CHAIN_REFERENCE.EthereumMainnet;
|
|
32
|
+
const assetNamespace = 'erc20';
|
|
33
|
+
const assetReference = '0xc770eefad204b5180df6a14ee197d99d808ee52d';
|
|
34
|
+
const assetId = toAssetId({ chainNamespace, chainReference, assetNamespace, assetReference });
|
|
35
|
+
expect(coincapToAssetId('fox-token')).toEqual(assetId);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
it('can get AssetId for cosmos', () => {
|
|
39
|
+
const chainNamespace = CHAIN_NAMESPACE.CosmosSdk;
|
|
40
|
+
const chainReference = CHAIN_REFERENCE.CosmosHubMainnet;
|
|
41
|
+
const assetId = toAssetId({
|
|
42
|
+
chainNamespace,
|
|
43
|
+
chainReference,
|
|
44
|
+
assetNamespace: 'slip44',
|
|
45
|
+
assetReference: ASSET_REFERENCE.Cosmos,
|
|
46
|
+
});
|
|
47
|
+
expect(coincapToAssetId('cosmos')).toEqual(assetId);
|
|
48
|
+
});
|
|
49
|
+
describe('assetIdToCoinCap', () => {
|
|
50
|
+
it('can get coincap id for bitcoin AssetId', () => {
|
|
51
|
+
const chainNamespace = CHAIN_NAMESPACE.Utxo;
|
|
52
|
+
const chainReference = CHAIN_REFERENCE.BitcoinMainnet;
|
|
53
|
+
const assetId = toAssetId({
|
|
54
|
+
chainNamespace,
|
|
55
|
+
chainReference,
|
|
56
|
+
assetNamespace: 'slip44',
|
|
57
|
+
assetReference: ASSET_REFERENCE.Bitcoin,
|
|
58
|
+
});
|
|
59
|
+
expect(assetIdToCoinCap(assetId)).toEqual('bitcoin');
|
|
60
|
+
});
|
|
61
|
+
it('can get coincap id for ethereum AssetId', () => {
|
|
62
|
+
const chainNamespace = CHAIN_NAMESPACE.Evm;
|
|
63
|
+
const chainReference = CHAIN_REFERENCE.EthereumMainnet;
|
|
64
|
+
const assetId = toAssetId({
|
|
65
|
+
chainNamespace,
|
|
66
|
+
chainReference,
|
|
67
|
+
assetNamespace: 'slip44',
|
|
68
|
+
assetReference: ASSET_REFERENCE.Ethereum,
|
|
69
|
+
});
|
|
70
|
+
expect(assetIdToCoinCap(assetId)).toEqual('ethereum');
|
|
71
|
+
});
|
|
72
|
+
it('can get coincap id for FOX', () => {
|
|
73
|
+
const chainNamespace = CHAIN_NAMESPACE.Evm;
|
|
74
|
+
const chainReference = CHAIN_REFERENCE.EthereumMainnet;
|
|
75
|
+
const assetNamespace = 'erc20';
|
|
76
|
+
const assetReference = '0xc770eefad204b5180df6a14ee197d99d808ee52d';
|
|
77
|
+
const assetId = toAssetId({ chainNamespace, chainReference, assetNamespace, assetReference });
|
|
78
|
+
expect(assetIdToCoinCap(assetId)).toEqual('fox-token');
|
|
79
|
+
});
|
|
80
|
+
it('can get coincap id for cosmos AssetId', () => {
|
|
81
|
+
const chainNamespace = CHAIN_NAMESPACE.CosmosSdk;
|
|
82
|
+
const chainReference = CHAIN_REFERENCE.CosmosHubMainnet;
|
|
83
|
+
const assetId = toAssetId({
|
|
84
|
+
chainNamespace,
|
|
85
|
+
chainReference,
|
|
86
|
+
assetNamespace: 'slip44',
|
|
87
|
+
assetReference: ASSET_REFERENCE.Cosmos,
|
|
88
|
+
});
|
|
89
|
+
expect(assetIdToCoinCap(assetId)).toEqual('cosmos');
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
});
|
|
@@ -1,30 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
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 writeFiles = async (data) => {
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import { toAssetId } from '../../assetId/assetId';
|
|
4
|
+
import { ASSET_REFERENCE, bchChainId, btcChainId, CHAIN_NAMESPACE, CHAIN_REFERENCE, cosmosChainId, dogeChainId, ethChainId, ltcChainId, thorchainChainId, } from '../../constants';
|
|
5
|
+
import { bitcoinAssetMap, bitcoinCashAssetMap, cosmosAssetMap, dogecoinAssetMap, litecoinAssetMap, thorchainAssetMap, } from '../../utils';
|
|
6
|
+
export const writeFiles = async (data) => {
|
|
13
7
|
const path = './src/adapters/coincap/generated/';
|
|
14
8
|
const file = '/adapter.json';
|
|
15
|
-
const writeFile = async ([k, v]) => await
|
|
9
|
+
const writeFile = async ([k, v]) => await fs.promises.writeFile(`${path}${k}${file}`.replace(':', '_'), JSON.stringify(v));
|
|
16
10
|
await Promise.all(Object.entries(data).map(writeFile));
|
|
17
11
|
console.info('Generated CoinCap AssetId adapter data.');
|
|
18
12
|
};
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
exports.fetchData = fetchData;
|
|
22
|
-
const parseEthData = (data) => {
|
|
13
|
+
export const fetchData = async (URL) => (await axios.get(URL)).data.data;
|
|
14
|
+
export const parseEthData = (data) => {
|
|
23
15
|
const ethCoins = data.filter(({ id, explorer }) => (explorer && explorer.startsWith('https://etherscan.io/token/0x')) || id === 'ethereum');
|
|
24
16
|
return ethCoins.reduce((acc, { id, explorer }) => {
|
|
25
|
-
const chainNamespace =
|
|
26
|
-
const chainReference =
|
|
27
|
-
let assetReference =
|
|
17
|
+
const chainNamespace = CHAIN_NAMESPACE.Evm;
|
|
18
|
+
const chainReference = CHAIN_REFERENCE.EthereumMainnet;
|
|
19
|
+
let assetReference = ASSET_REFERENCE.Ethereum;
|
|
28
20
|
const assetNamespace = id === 'ethereum' ? 'slip44' : 'erc20';
|
|
29
21
|
if (id !== 'ethereum' && explorer) {
|
|
30
22
|
assetReference = explorer
|
|
@@ -32,20 +24,17 @@ const parseEthData = (data) => {
|
|
|
32
24
|
.split('#')[0]
|
|
33
25
|
.split('?')[0];
|
|
34
26
|
}
|
|
35
|
-
const assetId =
|
|
27
|
+
const assetId = toAssetId({ chainNamespace, chainReference, assetNamespace, assetReference });
|
|
36
28
|
acc[assetId] = id;
|
|
37
29
|
return acc;
|
|
38
30
|
}, {});
|
|
39
31
|
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
[
|
|
43
|
-
[
|
|
44
|
-
[
|
|
45
|
-
[
|
|
46
|
-
[
|
|
47
|
-
[
|
|
48
|
-
[constants_1.osmosisChainId]: utils_1.osmosisAssetMap,
|
|
49
|
-
[constants_1.thorchainChainId]: utils_1.thorchainAssetMap,
|
|
32
|
+
export const parseData = (d) => ({
|
|
33
|
+
[ethChainId]: parseEthData(d),
|
|
34
|
+
[btcChainId]: bitcoinAssetMap,
|
|
35
|
+
[bchChainId]: bitcoinCashAssetMap,
|
|
36
|
+
[dogeChainId]: dogecoinAssetMap,
|
|
37
|
+
[ltcChainId]: litecoinAssetMap,
|
|
38
|
+
[cosmosChainId]: cosmosAssetMap,
|
|
39
|
+
[thorchainChainId]: thorchainAssetMap,
|
|
50
40
|
});
|
|
51
|
-
exports.parseData = parseData;
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @vitest-environment node
|
|
3
|
+
*/
|
|
4
|
+
import realFs from 'fs';
|
|
5
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
6
|
+
import { bitcoinAssetMap, cosmosAssetMap } from '../../utils';
|
|
7
|
+
import { parseData, parseEthData, writeFiles } from './utils';
|
|
8
|
+
const makeEthMockCoincapResponse = () => ({
|
|
9
|
+
id: 'ethereum',
|
|
10
|
+
rank: '2',
|
|
11
|
+
symbol: 'ETH',
|
|
12
|
+
name: 'Ethereum',
|
|
13
|
+
supply: '118739782.1240000000000000',
|
|
14
|
+
maxSupply: null,
|
|
15
|
+
marketCapUsd: '461557096820.5397856216327206',
|
|
16
|
+
volumeUsd24Hr: '13216473429.9114945699035335',
|
|
17
|
+
priceUsd: '3887.1310740534754598',
|
|
18
|
+
changePercent24Hr: '1.7301970732523704',
|
|
19
|
+
vwap24Hr: '3796.0013297212388563',
|
|
20
|
+
explorer: 'https://etherscan.io/',
|
|
21
|
+
});
|
|
22
|
+
const makeFoxMockCoincapResponse = () => ({
|
|
23
|
+
id: 'fox-token',
|
|
24
|
+
rank: '396',
|
|
25
|
+
symbol: 'FOX',
|
|
26
|
+
name: 'FOX Token',
|
|
27
|
+
supply: '117022448.6044180000000000',
|
|
28
|
+
maxSupply: '1000001337.0000000000000000',
|
|
29
|
+
marketCapUsd: '76108238.1995641297877127',
|
|
30
|
+
volumeUsd24Hr: '1574012.7599955363585018',
|
|
31
|
+
priceUsd: '0.6503729763580659',
|
|
32
|
+
changePercent24Hr: '-3.1066427856364231',
|
|
33
|
+
vwap24Hr: '0.6546275575306273',
|
|
34
|
+
explorer: 'https://etherscan.io/token/0xc770eefad204b5180df6a14ee197d99d808ee52d',
|
|
35
|
+
});
|
|
36
|
+
const makeBtcMockCoincapResponse = () => ({
|
|
37
|
+
id: 'bitcoin',
|
|
38
|
+
rank: '1',
|
|
39
|
+
symbol: 'BTC',
|
|
40
|
+
name: 'Bitcoin',
|
|
41
|
+
supply: '18901193.0000000000000000',
|
|
42
|
+
maxSupply: '21000000.0000000000000000',
|
|
43
|
+
marketCapUsd: '908356345541.2269154394485668',
|
|
44
|
+
volumeUsd24Hr: '19001957914.4173604708767279',
|
|
45
|
+
priceUsd: '48058.1487920485715076',
|
|
46
|
+
changePercent24Hr: '2.0370678507913180',
|
|
47
|
+
vwap24Hr: '47473.8260811456834087',
|
|
48
|
+
explorer: 'https://blockchain.info/',
|
|
49
|
+
});
|
|
50
|
+
const makeThorchainMockCoincapResponse = () => ({
|
|
51
|
+
id: 'thorchain',
|
|
52
|
+
rank: '65',
|
|
53
|
+
symbol: 'RUNE',
|
|
54
|
+
name: 'THORChain',
|
|
55
|
+
supply: '330688061.3344559700000000',
|
|
56
|
+
maxSupply: '500000000.0000000000000000',
|
|
57
|
+
marketCapUsd: '657476102.4209547026470565',
|
|
58
|
+
volumeUsd24Hr: '62707742.6988409953177376',
|
|
59
|
+
priceUsd: '1.9882063469959601',
|
|
60
|
+
changePercent24Hr: '-3.0298851309669810',
|
|
61
|
+
vwap24Hr: '2.0280215210735477',
|
|
62
|
+
explorer: 'https://explorer.binance.org/asset/RUNE-B1A',
|
|
63
|
+
});
|
|
64
|
+
const makeCosmosMockCoincapResponse = () => ({
|
|
65
|
+
id: 'cosmos',
|
|
66
|
+
rank: '24',
|
|
67
|
+
symbol: 'ATOM',
|
|
68
|
+
name: 'Cosmos',
|
|
69
|
+
supply: '248453201.0000000000000000',
|
|
70
|
+
maxSupply: null,
|
|
71
|
+
marketCapUsd: '6802617738.3591834303735576',
|
|
72
|
+
volumeUsd24Hr: '294469112.0045679597220454',
|
|
73
|
+
priceUsd: '27.3798756102932376',
|
|
74
|
+
changePercent24Hr: '-2.0945235735481851',
|
|
75
|
+
vwap24Hr: '27.4571410501515669',
|
|
76
|
+
explorer: 'https://www.mintscan.io/cosmos',
|
|
77
|
+
});
|
|
78
|
+
vi.mock('fs', () => ({
|
|
79
|
+
default: {
|
|
80
|
+
promises: {
|
|
81
|
+
writeFile: vi.fn(() => undefined),
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
}));
|
|
85
|
+
describe('adapters:coincap:utils', () => {
|
|
86
|
+
describe('parseEthData', () => {
|
|
87
|
+
it('can parse eth data', () => {
|
|
88
|
+
const result = parseEthData([makeEthMockCoincapResponse(), makeFoxMockCoincapResponse()]);
|
|
89
|
+
const expected = {
|
|
90
|
+
'eip155:1/slip44:60': 'ethereum',
|
|
91
|
+
'eip155:1/erc20:0xc770eefad204b5180df6a14ee197d99d808ee52d': 'fox-token',
|
|
92
|
+
};
|
|
93
|
+
expect(result).toEqual(expected);
|
|
94
|
+
});
|
|
95
|
+
it('can parse btc data', () => {
|
|
96
|
+
const result = bitcoinAssetMap;
|
|
97
|
+
const expected = { 'bip122:000000000019d6689c085ae165831e93/slip44:0': 'bitcoin' };
|
|
98
|
+
expect(result).toEqual(expected);
|
|
99
|
+
});
|
|
100
|
+
it('can parse cosmos data', () => {
|
|
101
|
+
const result = cosmosAssetMap;
|
|
102
|
+
const expected = { 'cosmos:cosmoshub-4/slip44:118': 'cosmos' };
|
|
103
|
+
expect(result).toEqual(expected);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
describe('parseData', () => {
|
|
107
|
+
it('can parse all data', () => {
|
|
108
|
+
const result = parseData([
|
|
109
|
+
makeEthMockCoincapResponse(),
|
|
110
|
+
makeFoxMockCoincapResponse(),
|
|
111
|
+
makeBtcMockCoincapResponse(),
|
|
112
|
+
makeCosmosMockCoincapResponse(),
|
|
113
|
+
makeThorchainMockCoincapResponse(),
|
|
114
|
+
]);
|
|
115
|
+
const expected = {
|
|
116
|
+
'bip122:000000000019d6689c085ae165831e93': {
|
|
117
|
+
'bip122:000000000019d6689c085ae165831e93/slip44:0': 'bitcoin',
|
|
118
|
+
},
|
|
119
|
+
'bip122:000000000000000000651ef99cb9fcbe': {
|
|
120
|
+
'bip122:000000000000000000651ef99cb9fcbe/slip44:145': 'bitcoin-cash',
|
|
121
|
+
},
|
|
122
|
+
'bip122:00000000001a91e3dace36e2be3bf030': {
|
|
123
|
+
'bip122:00000000001a91e3dace36e2be3bf030/slip44:3': 'dogecoin',
|
|
124
|
+
},
|
|
125
|
+
'bip122:12a765e31ffd4059bada1e25190f6e98': {
|
|
126
|
+
'bip122:12a765e31ffd4059bada1e25190f6e98/slip44:2': 'litecoin',
|
|
127
|
+
},
|
|
128
|
+
'cosmos:cosmoshub-4': {
|
|
129
|
+
'cosmos:cosmoshub-4/slip44:118': 'cosmos',
|
|
130
|
+
},
|
|
131
|
+
'cosmos:thorchain-1': {
|
|
132
|
+
'cosmos:thorchain-1/slip44:931': 'thorchain',
|
|
133
|
+
},
|
|
134
|
+
'eip155:1': {
|
|
135
|
+
'eip155:1/slip44:60': 'ethereum',
|
|
136
|
+
'eip155:1/erc20:0xc770eefad204b5180df6a14ee197d99d808ee52d': 'fox-token',
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
expect(result).toEqual(expected);
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
describe('writeFiles', () => {
|
|
143
|
+
it('can writeFiles', async () => {
|
|
144
|
+
const data = {
|
|
145
|
+
foo: {
|
|
146
|
+
assetIdAbc: 'bitcorn',
|
|
147
|
+
assetIdDef: 'efferium',
|
|
148
|
+
},
|
|
149
|
+
bar: {
|
|
150
|
+
assetIdGhi: 'fox',
|
|
151
|
+
assetIdJkl: 'shib',
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
const fooAssetIds = JSON.stringify(data.foo);
|
|
155
|
+
const barAssetIds = JSON.stringify(data.bar);
|
|
156
|
+
console.info = vi.fn();
|
|
157
|
+
await writeFiles(data);
|
|
158
|
+
expect(realFs.promises.writeFile).toBeCalledWith('./src/adapters/coincap/generated/foo/adapter.json', fooAssetIds);
|
|
159
|
+
expect(realFs.promises.writeFile).toBeCalledWith('./src/adapters/coincap/generated/bar/adapter.json', barAssetIds);
|
|
160
|
+
expect(console.info).toBeCalledWith('Generated CoinCap AssetId adapter data.');
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
});
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const index_1 = require("./index");
|
|
4
|
-
const utils_1 = require("./utils");
|
|
1
|
+
import { coingeckoUrl } from './index';
|
|
2
|
+
import { fetchData, parseData, writeFiles } from './utils';
|
|
5
3
|
const main = async () => {
|
|
6
|
-
const data = await
|
|
7
|
-
const output =
|
|
8
|
-
await
|
|
4
|
+
const data = await fetchData(coingeckoUrl);
|
|
5
|
+
const output = parseData(data);
|
|
6
|
+
await writeFiles(output);
|
|
9
7
|
};
|
|
10
8
|
main();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{ "cosmos:mayachain-mainnet-v1/slip44:931": "cacao" }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{ "cosmos:thorchain-1/slip44:931": "thorchain" }
|