@shapeshiftoss/caip 8.16.4-alpha.1 → 8.16.4
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/package.json +1 -1
- package/dist/cjs/.tsbuildinfo +0 -1
- package/dist/cjs/accountId/accountId.d.ts +0 -29
- package/dist/cjs/accountId/accountId.js +0 -44
- package/dist/cjs/accountId/accountId.test.d.ts +0 -1
- package/dist/cjs/accountId/accountId.test.js +0 -109
- package/dist/cjs/adapters/banxa/index.d.ts +0 -15
- package/dist/cjs/adapters/banxa/index.js +0 -153
- package/dist/cjs/adapters/coinbase/generate.d.ts +0 -1
- package/dist/cjs/adapters/coinbase/generate.js +0 -9
- package/dist/cjs/adapters/coinbase/generated/adapter.json +0 -153
- package/dist/cjs/adapters/coinbase/generated/index.d.ts +0 -2
- package/dist/cjs/adapters/coinbase/generated/index.js +0 -8
- package/dist/cjs/adapters/coinbase/index.d.ts +0 -3
- package/dist/cjs/adapters/coinbase/index.js +0 -16
- package/dist/cjs/adapters/coinbase/utils.d.ts +0 -12
- package/dist/cjs/adapters/coinbase/utils.js +0 -55
- package/dist/cjs/adapters/coincap/generate.d.ts +0 -1
- package/dist/cjs/adapters/coincap/generate.js +0 -10
- package/dist/cjs/adapters/coincap/generated/bip122_000000000000000000651ef99cb9fcbe/adapter.json +0 -1
- package/dist/cjs/adapters/coincap/generated/bip122_000000000019d6689c085ae165831e93/adapter.json +0 -1
- package/dist/cjs/adapters/coincap/generated/bip122_00000000001a91e3dace36e2be3bf030/adapter.json +0 -1
- package/dist/cjs/adapters/coincap/generated/bip122_12a765e31ffd4059bada1e25190f6e98/adapter.json +0 -1
- package/dist/cjs/adapters/coincap/generated/cosmos_cosmoshub-4/adapter.json +0 -1
- package/dist/cjs/adapters/coincap/generated/cosmos_thorchain-1/adapter.json +0 -1
- package/dist/cjs/adapters/coincap/generated/eip155_1/adapter.json +0 -1
- package/dist/cjs/adapters/coincap/generated/eip155_10/adapter.json +0 -1
- package/dist/cjs/adapters/coincap/generated/eip155_137/adapter.json +0 -1
- package/dist/cjs/adapters/coincap/generated/eip155_42161/adapter.json +0 -1
- package/dist/cjs/adapters/coincap/generated/eip155_43114/adapter.json +0 -1
- package/dist/cjs/adapters/coincap/generated/eip155_56/adapter.json +0 -1
- package/dist/cjs/adapters/coincap/generated/eip155_8453/adapter.json +0 -1
- package/dist/cjs/adapters/coincap/generated/index.d.ts +0 -15
- package/dist/cjs/adapters/coincap/generated/index.js +0 -34
- package/dist/cjs/adapters/coincap/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +0 -1
- package/dist/cjs/adapters/coincap/index.d.ts +0 -4
- package/dist/cjs/adapters/coincap/index.js +0 -44
- package/dist/cjs/adapters/coincap/index.test.d.ts +0 -1
- package/dist/cjs/adapters/coincap/index.test.js +0 -90
- package/dist/cjs/adapters/coincap/utils.d.ts +0 -24
- package/dist/cjs/adapters/coincap/utils.js +0 -146
- package/dist/cjs/adapters/coincap/utils.test.d.ts +0 -4
- package/dist/cjs/adapters/coincap/utils.test.js +0 -173
- package/dist/cjs/adapters/coingecko/generate.d.ts +0 -1
- package/dist/cjs/adapters/coingecko/generate.js +0 -10
- package/dist/cjs/adapters/coingecko/generated/bip122_000000000000000000651ef99cb9fcbe/adapter.json +0 -1
- package/dist/cjs/adapters/coingecko/generated/bip122_000000000019d6689c085ae165831e93/adapter.json +0 -1
- package/dist/cjs/adapters/coingecko/generated/bip122_00000000001a91e3dace36e2be3bf030/adapter.json +0 -1
- package/dist/cjs/adapters/coingecko/generated/bip122_12a765e31ffd4059bada1e25190f6e98/adapter.json +0 -1
- package/dist/cjs/adapters/coingecko/generated/cosmos_cosmoshub-4/adapter.json +0 -1
- package/dist/cjs/adapters/coingecko/generated/cosmos_mayachain-mainnet-v1/adapter.json +0 -1
- package/dist/cjs/adapters/coingecko/generated/cosmos_thorchain-1/adapter.json +0 -1
- package/dist/cjs/adapters/coingecko/generated/eip155_1/adapter.json +0 -1
- package/dist/cjs/adapters/coingecko/generated/eip155_10/adapter.json +0 -1
- package/dist/cjs/adapters/coingecko/generated/eip155_100/adapter.json +0 -1
- package/dist/cjs/adapters/coingecko/generated/eip155_137/adapter.json +0 -1
- package/dist/cjs/adapters/coingecko/generated/eip155_42161/adapter.json +0 -1
- package/dist/cjs/adapters/coingecko/generated/eip155_42170/adapter.json +0 -1
- package/dist/cjs/adapters/coingecko/generated/eip155_43114/adapter.json +0 -1
- package/dist/cjs/adapters/coingecko/generated/eip155_56/adapter.json +0 -1
- package/dist/cjs/adapters/coingecko/generated/eip155_8453/adapter.json +0 -1
- package/dist/cjs/adapters/coingecko/generated/index.d.ts +0 -18
- package/dist/cjs/adapters/coingecko/generated/index.js +0 -40
- package/dist/cjs/adapters/coingecko/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +0 -1
- package/dist/cjs/adapters/coingecko/index.d.ts +0 -26
- package/dist/cjs/adapters/coingecko/index.js +0 -163
- package/dist/cjs/adapters/coingecko/index.test.d.ts +0 -1
- package/dist/cjs/adapters/coingecko/index.test.js +0 -276
- package/dist/cjs/adapters/coingecko/utils.d.ts +0 -11
- package/dist/cjs/adapters/coingecko/utils.js +0 -190
- package/dist/cjs/adapters/coingecko/utils.test.d.ts +0 -1
- package/dist/cjs/adapters/coingecko/utils.test.js +0 -193
- package/dist/cjs/adapters/index.d.ts +0 -6
- package/dist/cjs/adapters/index.js +0 -22
- package/dist/cjs/adapters/mtpelerin/index.d.ts +0 -10
- package/dist/cjs/adapters/mtpelerin/index.js +0 -127
- package/dist/cjs/adapters/onramper/index.d.ts +0 -6
- package/dist/cjs/adapters/onramper/index.js +0 -39
- package/dist/cjs/assetId/assetId.d.ts +0 -36
- package/dist/cjs/assetId/assetId.js +0 -120
- package/dist/cjs/assetId/assetId.test.d.ts +0 -1
- package/dist/cjs/assetId/assetId.test.js +0 -324
- package/dist/cjs/chainId/chainId.d.ts +0 -20
- package/dist/cjs/chainId/chainId.js +0 -25
- package/dist/cjs/chainId/chainId.test.d.ts +0 -1
- package/dist/cjs/chainId/chainId.test.js +0 -90
- package/dist/cjs/constants.d.ts +0 -118
- package/dist/cjs/constants.js +0 -167
- package/dist/cjs/index.d.ts +0 -7
- package/dist/cjs/index.js +0 -36
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/typeGuards.d.ts +0 -16
- package/dist/cjs/typeGuards.js +0 -56
- package/dist/cjs/utils.d.ts +0 -33
- package/dist/cjs/utils.js +0 -56
- package/dist/cjs/utils.test.d.ts +0 -1
- package/dist/cjs/utils.test.js +0 -160
- package/dist/esm/.tsbuildinfo +0 -1
- package/dist/esm/accountId/accountId.d.ts +0 -29
- package/dist/esm/accountId/accountId.js +0 -39
- package/dist/esm/accountId/accountId.test.d.ts +0 -1
- package/dist/esm/accountId/accountId.test.js +0 -107
- package/dist/esm/adapters/banxa/index.d.ts +0 -15
- package/dist/esm/adapters/banxa/index.js +0 -143
- package/dist/esm/adapters/coinbase/generate.d.ts +0 -1
- package/dist/esm/adapters/coinbase/generate.js +0 -7
- package/dist/esm/adapters/coinbase/generated/adapter.json +0 -153
- package/dist/esm/adapters/coinbase/generated/index.d.ts +0 -2
- package/dist/esm/adapters/coinbase/generated/index.js +0 -2
- package/dist/esm/adapters/coinbase/index.d.ts +0 -3
- package/dist/esm/adapters/coinbase/index.js +0 -8
- package/dist/esm/adapters/coinbase/utils.d.ts +0 -12
- package/dist/esm/adapters/coinbase/utils.js +0 -46
- package/dist/esm/adapters/coincap/generate.d.ts +0 -1
- package/dist/esm/adapters/coincap/generate.js +0 -8
- package/dist/esm/adapters/coincap/generated/bip122_000000000000000000651ef99cb9fcbe/adapter.json +0 -1
- package/dist/esm/adapters/coincap/generated/bip122_000000000019d6689c085ae165831e93/adapter.json +0 -1
- package/dist/esm/adapters/coincap/generated/bip122_00000000001a91e3dace36e2be3bf030/adapter.json +0 -1
- package/dist/esm/adapters/coincap/generated/bip122_12a765e31ffd4059bada1e25190f6e98/adapter.json +0 -1
- package/dist/esm/adapters/coincap/generated/cosmos_cosmoshub-4/adapter.json +0 -1
- package/dist/esm/adapters/coincap/generated/cosmos_thorchain-1/adapter.json +0 -1
- package/dist/esm/adapters/coincap/generated/eip155_1/adapter.json +0 -1
- package/dist/esm/adapters/coincap/generated/eip155_10/adapter.json +0 -1
- package/dist/esm/adapters/coincap/generated/eip155_137/adapter.json +0 -1
- package/dist/esm/adapters/coincap/generated/eip155_42161/adapter.json +0 -1
- package/dist/esm/adapters/coincap/generated/eip155_43114/adapter.json +0 -1
- package/dist/esm/adapters/coincap/generated/eip155_56/adapter.json +0 -1
- package/dist/esm/adapters/coincap/generated/eip155_8453/adapter.json +0 -1
- package/dist/esm/adapters/coincap/generated/index.d.ts +0 -15
- package/dist/esm/adapters/coincap/generated/index.js +0 -15
- package/dist/esm/adapters/coincap/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +0 -1
- package/dist/esm/adapters/coincap/index.d.ts +0 -4
- package/dist/esm/adapters/coincap/index.js +0 -13
- package/dist/esm/adapters/coincap/index.test.d.ts +0 -1
- package/dist/esm/adapters/coincap/index.test.js +0 -88
- package/dist/esm/adapters/coincap/utils.d.ts +0 -24
- package/dist/esm/adapters/coincap/utils.js +0 -135
- package/dist/esm/adapters/coincap/utils.test.d.ts +0 -4
- package/dist/esm/adapters/coincap/utils.test.js +0 -168
- package/dist/esm/adapters/coingecko/generate.d.ts +0 -1
- package/dist/esm/adapters/coingecko/generate.js +0 -8
- package/dist/esm/adapters/coingecko/generated/bip122_000000000000000000651ef99cb9fcbe/adapter.json +0 -1
- package/dist/esm/adapters/coingecko/generated/bip122_000000000019d6689c085ae165831e93/adapter.json +0 -1
- package/dist/esm/adapters/coingecko/generated/bip122_00000000001a91e3dace36e2be3bf030/adapter.json +0 -1
- package/dist/esm/adapters/coingecko/generated/bip122_12a765e31ffd4059bada1e25190f6e98/adapter.json +0 -1
- package/dist/esm/adapters/coingecko/generated/cosmos_cosmoshub-4/adapter.json +0 -1
- package/dist/esm/adapters/coingecko/generated/cosmos_mayachain-mainnet-v1/adapter.json +0 -1
- package/dist/esm/adapters/coingecko/generated/cosmos_thorchain-1/adapter.json +0 -1
- package/dist/esm/adapters/coingecko/generated/eip155_1/adapter.json +0 -1
- package/dist/esm/adapters/coingecko/generated/eip155_10/adapter.json +0 -1
- package/dist/esm/adapters/coingecko/generated/eip155_100/adapter.json +0 -1
- package/dist/esm/adapters/coingecko/generated/eip155_137/adapter.json +0 -1
- package/dist/esm/adapters/coingecko/generated/eip155_42161/adapter.json +0 -1
- package/dist/esm/adapters/coingecko/generated/eip155_42170/adapter.json +0 -1
- package/dist/esm/adapters/coingecko/generated/eip155_43114/adapter.json +0 -1
- package/dist/esm/adapters/coingecko/generated/eip155_56/adapter.json +0 -1
- package/dist/esm/adapters/coingecko/generated/eip155_8453/adapter.json +0 -1
- package/dist/esm/adapters/coingecko/generated/index.d.ts +0 -18
- package/dist/esm/adapters/coingecko/generated/index.js +0 -18
- package/dist/esm/adapters/coingecko/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +0 -1
- package/dist/esm/adapters/coingecko/index.d.ts +0 -26
- package/dist/esm/adapters/coingecko/index.js +0 -127
- package/dist/esm/adapters/coingecko/index.test.d.ts +0 -1
- package/dist/esm/adapters/coingecko/index.test.js +0 -274
- package/dist/esm/adapters/coingecko/utils.d.ts +0 -11
- package/dist/esm/adapters/coingecko/utils.js +0 -181
- package/dist/esm/adapters/coingecko/utils.test.d.ts +0 -1
- package/dist/esm/adapters/coingecko/utils.test.js +0 -188
- package/dist/esm/adapters/index.d.ts +0 -6
- package/dist/esm/adapters/index.js +0 -6
- package/dist/esm/adapters/mtpelerin/index.d.ts +0 -10
- package/dist/esm/adapters/mtpelerin/index.js +0 -121
- package/dist/esm/adapters/onramper/index.d.ts +0 -6
- package/dist/esm/adapters/onramper/index.js +0 -31
- package/dist/esm/assetId/assetId.d.ts +0 -36
- package/dist/esm/assetId/assetId.js +0 -114
- package/dist/esm/assetId/assetId.test.d.ts +0 -1
- package/dist/esm/assetId/assetId.test.js +0 -322
- package/dist/esm/chainId/chainId.d.ts +0 -20
- package/dist/esm/chainId/chainId.js +0 -20
- package/dist/esm/chainId/chainId.test.d.ts +0 -1
- package/dist/esm/chainId/chainId.test.js +0 -88
- package/dist/esm/constants.d.ts +0 -118
- package/dist/esm/constants.js +0 -163
- package/dist/esm/index.d.ts +0 -7
- package/dist/esm/index.js +0 -7
- package/dist/esm/typeGuards.d.ts +0 -16
- package/dist/esm/typeGuards.js +0 -44
- package/dist/esm/utils.d.ts +0 -33
- package/dist/esm/utils.js +0 -26
- package/dist/esm/utils.test.d.ts +0 -1
- package/dist/esm/utils.test.js +0 -158
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { AssetId } from '../../assetId/assetId.js';
|
|
2
|
-
import type { ChainId } from '../../chainId/chainId.js';
|
|
3
|
-
export { fetchData as fetchCoingeckoData, parseData as parseCoingeckoData } from './utils.js';
|
|
4
|
-
export declare enum CoingeckoAssetPlatform {
|
|
5
|
-
Ethereum = "ethereum",
|
|
6
|
-
Cosmos = "cosmos",
|
|
7
|
-
Polygon = "polygon-pos",
|
|
8
|
-
Gnosis = "xdai",
|
|
9
|
-
Avalanche = "avalanche",
|
|
10
|
-
Thorchain = "thorchain",
|
|
11
|
-
Mayachain = "cacao",
|
|
12
|
-
Optimism = "optimistic-ethereum",
|
|
13
|
-
BnbSmartChain = "binance-smart-chain",
|
|
14
|
-
Arbitrum = "arbitrum-one",
|
|
15
|
-
ArbitrumNova = "arbitrum-nova",
|
|
16
|
-
Base = "base",
|
|
17
|
-
Solana = "solana"
|
|
18
|
-
}
|
|
19
|
-
type CoinGeckoId = string;
|
|
20
|
-
export declare const coingeckoBaseUrl = "https://api.proxy.shapeshift.com/api/v1/markets";
|
|
21
|
-
export declare const coingeckoUrl = "https://api.proxy.shapeshift.com/api/v1/markets/coins/list?include_platform=true";
|
|
22
|
-
export declare const coingeckoToAssetIds: (id: CoinGeckoId) => AssetId[];
|
|
23
|
-
export declare const assetIdToCoingecko: (assetId: AssetId) => CoinGeckoId | undefined;
|
|
24
|
-
export declare const chainIdToCoingeckoAssetPlatform: (chainId: ChainId) => string;
|
|
25
|
-
export declare const coingeckoAssetPlatformToChainId: (platform: CoingeckoAssetPlatform) => ChainId | undefined;
|
|
26
|
-
export declare const makeCoingeckoAssetUrl: (assetId: AssetId) => string | undefined;
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import invertBy from 'lodash/invertBy';
|
|
2
|
-
import { fromAssetId } from '../../assetId/assetId.js';
|
|
3
|
-
import { fromChainId, toChainId } from '../../chainId/chainId.js';
|
|
4
|
-
import { arbitrumChainId, arbitrumNovaChainId, avalancheChainId, baseChainId, bscChainId, CHAIN_NAMESPACE, CHAIN_REFERENCE, cosmosChainId, ethChainId, gnosisChainId, mayachainChainId, optimismChainId, polygonChainId, solanaChainId, thorchainChainId, } from '../../constants.js';
|
|
5
|
-
import * as adapters from './generated/index.js';
|
|
6
|
-
export { fetchData as fetchCoingeckoData, parseData as parseCoingeckoData } from './utils.js';
|
|
7
|
-
// https://api.coingecko.com/api/v3/asset_platforms
|
|
8
|
-
export var CoingeckoAssetPlatform;
|
|
9
|
-
(function (CoingeckoAssetPlatform) {
|
|
10
|
-
CoingeckoAssetPlatform["Ethereum"] = "ethereum";
|
|
11
|
-
CoingeckoAssetPlatform["Cosmos"] = "cosmos";
|
|
12
|
-
CoingeckoAssetPlatform["Polygon"] = "polygon-pos";
|
|
13
|
-
CoingeckoAssetPlatform["Gnosis"] = "xdai";
|
|
14
|
-
CoingeckoAssetPlatform["Avalanche"] = "avalanche";
|
|
15
|
-
CoingeckoAssetPlatform["Thorchain"] = "thorchain";
|
|
16
|
-
CoingeckoAssetPlatform["Mayachain"] = "cacao";
|
|
17
|
-
CoingeckoAssetPlatform["Optimism"] = "optimistic-ethereum";
|
|
18
|
-
CoingeckoAssetPlatform["BnbSmartChain"] = "binance-smart-chain";
|
|
19
|
-
CoingeckoAssetPlatform["Arbitrum"] = "arbitrum-one";
|
|
20
|
-
CoingeckoAssetPlatform["ArbitrumNova"] = "arbitrum-nova";
|
|
21
|
-
CoingeckoAssetPlatform["Base"] = "base";
|
|
22
|
-
CoingeckoAssetPlatform["Solana"] = "solana";
|
|
23
|
-
})(CoingeckoAssetPlatform || (CoingeckoAssetPlatform = {}));
|
|
24
|
-
export const coingeckoBaseUrl = 'https://api.proxy.shapeshift.com/api/v1/markets';
|
|
25
|
-
export const coingeckoUrl = `${coingeckoBaseUrl}/coins/list?include_platform=true`;
|
|
26
|
-
const assetIdToCoinGeckoIdMapByChain = Object.values(adapters);
|
|
27
|
-
const generatedAssetIdToCoingeckoMap = assetIdToCoinGeckoIdMapByChain.reduce((acc, cur) => ({
|
|
28
|
-
...acc,
|
|
29
|
-
...cur,
|
|
30
|
-
}));
|
|
31
|
-
const generatedCoingeckoToAssetIdsMap = invertBy(generatedAssetIdToCoingeckoMap);
|
|
32
|
-
export const coingeckoToAssetIds = (id) => generatedCoingeckoToAssetIdsMap[id];
|
|
33
|
-
export const assetIdToCoingecko = (assetId) => generatedAssetIdToCoingeckoMap[assetId];
|
|
34
|
-
// https://www.coingecko.com/en/api/documentation - See asset_platforms
|
|
35
|
-
export const chainIdToCoingeckoAssetPlatform = (chainId) => {
|
|
36
|
-
const { chainNamespace, chainReference } = fromChainId(chainId);
|
|
37
|
-
switch (chainNamespace) {
|
|
38
|
-
case CHAIN_NAMESPACE.Evm:
|
|
39
|
-
switch (chainReference) {
|
|
40
|
-
case CHAIN_REFERENCE.EthereumMainnet:
|
|
41
|
-
return CoingeckoAssetPlatform.Ethereum;
|
|
42
|
-
case CHAIN_REFERENCE.AvalancheCChain:
|
|
43
|
-
return CoingeckoAssetPlatform.Avalanche;
|
|
44
|
-
case CHAIN_REFERENCE.OptimismMainnet:
|
|
45
|
-
return CoingeckoAssetPlatform.Optimism;
|
|
46
|
-
case CHAIN_REFERENCE.BnbSmartChainMainnet:
|
|
47
|
-
return CoingeckoAssetPlatform.BnbSmartChain;
|
|
48
|
-
case CHAIN_REFERENCE.PolygonMainnet:
|
|
49
|
-
return CoingeckoAssetPlatform.Polygon;
|
|
50
|
-
case CHAIN_REFERENCE.GnosisMainnet:
|
|
51
|
-
return CoingeckoAssetPlatform.Gnosis;
|
|
52
|
-
case CHAIN_REFERENCE.ArbitrumMainnet:
|
|
53
|
-
return CoingeckoAssetPlatform.Arbitrum;
|
|
54
|
-
case CHAIN_REFERENCE.ArbitrumNovaMainnet:
|
|
55
|
-
return CoingeckoAssetPlatform.ArbitrumNova;
|
|
56
|
-
case CHAIN_REFERENCE.BaseMainnet:
|
|
57
|
-
return CoingeckoAssetPlatform.Base;
|
|
58
|
-
default:
|
|
59
|
-
throw new Error(`chainNamespace ${chainNamespace}, chainReference ${chainReference} not supported.`);
|
|
60
|
-
}
|
|
61
|
-
case CHAIN_NAMESPACE.CosmosSdk:
|
|
62
|
-
switch (chainReference) {
|
|
63
|
-
case CHAIN_REFERENCE.CosmosHubMainnet:
|
|
64
|
-
return CoingeckoAssetPlatform.Cosmos;
|
|
65
|
-
case CHAIN_REFERENCE.ThorchainMainnet:
|
|
66
|
-
return CoingeckoAssetPlatform.Thorchain;
|
|
67
|
-
case CHAIN_REFERENCE.MayachainMainnet:
|
|
68
|
-
return CoingeckoAssetPlatform.Mayachain;
|
|
69
|
-
default:
|
|
70
|
-
throw new Error(`chainNamespace ${chainNamespace}, chainReference ${chainReference} not supported.`);
|
|
71
|
-
}
|
|
72
|
-
case CHAIN_NAMESPACE.Solana:
|
|
73
|
-
switch (chainReference) {
|
|
74
|
-
case CHAIN_REFERENCE.SolanaMainnet:
|
|
75
|
-
return CoingeckoAssetPlatform.Solana;
|
|
76
|
-
default:
|
|
77
|
-
throw new Error(`chainNamespace ${chainNamespace}, chainReference ${chainReference} not supported.`);
|
|
78
|
-
}
|
|
79
|
-
// No valid asset platform: https://api.coingecko.com/api/v3/asset_platforms
|
|
80
|
-
case CHAIN_NAMESPACE.Utxo:
|
|
81
|
-
default:
|
|
82
|
-
throw new Error(`chainNamespace ${chainNamespace} not supported.`);
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
export const coingeckoAssetPlatformToChainId = (platform) => {
|
|
86
|
-
switch (platform) {
|
|
87
|
-
case CoingeckoAssetPlatform.Ethereum:
|
|
88
|
-
return ethChainId;
|
|
89
|
-
case CoingeckoAssetPlatform.Avalanche:
|
|
90
|
-
return avalancheChainId;
|
|
91
|
-
case CoingeckoAssetPlatform.Optimism:
|
|
92
|
-
return optimismChainId;
|
|
93
|
-
case CoingeckoAssetPlatform.BnbSmartChain:
|
|
94
|
-
return bscChainId;
|
|
95
|
-
case CoingeckoAssetPlatform.Polygon:
|
|
96
|
-
return polygonChainId;
|
|
97
|
-
case CoingeckoAssetPlatform.Gnosis:
|
|
98
|
-
return gnosisChainId;
|
|
99
|
-
case CoingeckoAssetPlatform.Arbitrum:
|
|
100
|
-
return arbitrumChainId;
|
|
101
|
-
case CoingeckoAssetPlatform.ArbitrumNova:
|
|
102
|
-
return arbitrumNovaChainId;
|
|
103
|
-
case CoingeckoAssetPlatform.Base:
|
|
104
|
-
return baseChainId;
|
|
105
|
-
case CoingeckoAssetPlatform.Cosmos:
|
|
106
|
-
return cosmosChainId;
|
|
107
|
-
case CoingeckoAssetPlatform.Thorchain:
|
|
108
|
-
return thorchainChainId;
|
|
109
|
-
case CoingeckoAssetPlatform.Mayachain:
|
|
110
|
-
return mayachainChainId;
|
|
111
|
-
case CoingeckoAssetPlatform.Solana:
|
|
112
|
-
return solanaChainId;
|
|
113
|
-
default:
|
|
114
|
-
return undefined;
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
export const makeCoingeckoAssetUrl = (assetId) => {
|
|
118
|
-
const id = assetIdToCoingecko(assetId);
|
|
119
|
-
if (!id)
|
|
120
|
-
return;
|
|
121
|
-
const { chainNamespace, chainReference, assetNamespace, assetReference } = fromAssetId(assetId);
|
|
122
|
-
if (assetNamespace === 'erc20') {
|
|
123
|
-
const assetPlatform = chainIdToCoingeckoAssetPlatform(toChainId({ chainNamespace, chainReference }));
|
|
124
|
-
return `${coingeckoBaseUrl}/coins/${assetPlatform}/contract/${assetReference}`;
|
|
125
|
-
}
|
|
126
|
-
return `${coingeckoBaseUrl}/coins/${id}`;
|
|
127
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,274 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { toAssetId } from '../../assetId/assetId.js';
|
|
3
|
-
import { ASSET_REFERENCE, btcChainId, CHAIN_NAMESPACE, CHAIN_REFERENCE, ethChainId, foxOnArbitrumOneAssetId, } from '../../constants.js';
|
|
4
|
-
import { assetIdToCoingecko, chainIdToCoingeckoAssetPlatform, CoingeckoAssetPlatform, coingeckoToAssetIds, } from './index.js';
|
|
5
|
-
describe('adapters:coingecko', () => {
|
|
6
|
-
describe('coingeckoToAssetIds', () => {
|
|
7
|
-
it('can get AssetIds 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(coingeckoToAssetIds('bitcoin')).toEqual([assetId]);
|
|
17
|
-
});
|
|
18
|
-
it('can get AssetIds id for ethereum', () => {
|
|
19
|
-
const chainNamespace = CHAIN_NAMESPACE.Evm;
|
|
20
|
-
const ethOnEthereum = toAssetId({
|
|
21
|
-
chainNamespace,
|
|
22
|
-
chainReference: CHAIN_REFERENCE.EthereumMainnet,
|
|
23
|
-
assetNamespace: 'slip44',
|
|
24
|
-
assetReference: ASSET_REFERENCE.Ethereum,
|
|
25
|
-
});
|
|
26
|
-
const ethOnOptimism = toAssetId({
|
|
27
|
-
chainNamespace,
|
|
28
|
-
chainReference: CHAIN_REFERENCE.OptimismMainnet,
|
|
29
|
-
assetNamespace: 'slip44',
|
|
30
|
-
assetReference: ASSET_REFERENCE.Optimism,
|
|
31
|
-
});
|
|
32
|
-
const ethOnArbitrum = toAssetId({
|
|
33
|
-
chainNamespace,
|
|
34
|
-
chainReference: CHAIN_REFERENCE.ArbitrumMainnet,
|
|
35
|
-
assetNamespace: 'slip44',
|
|
36
|
-
assetReference: ASSET_REFERENCE.Arbitrum,
|
|
37
|
-
});
|
|
38
|
-
const ethOnArbitrumNova = toAssetId({
|
|
39
|
-
chainNamespace,
|
|
40
|
-
chainReference: CHAIN_REFERENCE.ArbitrumNovaMainnet,
|
|
41
|
-
assetNamespace: 'slip44',
|
|
42
|
-
assetReference: ASSET_REFERENCE.ArbitrumNova,
|
|
43
|
-
});
|
|
44
|
-
const ethOnBase = toAssetId({
|
|
45
|
-
chainNamespace,
|
|
46
|
-
chainReference: CHAIN_REFERENCE.BaseMainnet,
|
|
47
|
-
assetNamespace: 'slip44',
|
|
48
|
-
assetReference: ASSET_REFERENCE.Base,
|
|
49
|
-
});
|
|
50
|
-
expect(coingeckoToAssetIds('ethereum')).toEqual([
|
|
51
|
-
ethOnEthereum,
|
|
52
|
-
ethOnOptimism,
|
|
53
|
-
ethOnArbitrum,
|
|
54
|
-
ethOnArbitrumNova,
|
|
55
|
-
ethOnBase,
|
|
56
|
-
]);
|
|
57
|
-
});
|
|
58
|
-
it('can get AssetIds id for FOX', () => {
|
|
59
|
-
const assetNamespace = 'erc20';
|
|
60
|
-
const foxOnEthereum = toAssetId({
|
|
61
|
-
chainNamespace: CHAIN_NAMESPACE.Evm,
|
|
62
|
-
chainReference: CHAIN_REFERENCE.EthereumMainnet,
|
|
63
|
-
assetNamespace,
|
|
64
|
-
assetReference: '0xc770eefad204b5180df6a14ee197d99d808ee52d',
|
|
65
|
-
});
|
|
66
|
-
const foxOnPolygon = toAssetId({
|
|
67
|
-
chainNamespace: CHAIN_NAMESPACE.Evm,
|
|
68
|
-
chainReference: CHAIN_REFERENCE.PolygonMainnet,
|
|
69
|
-
assetNamespace,
|
|
70
|
-
assetReference: '0x65a05db8322701724c197af82c9cae41195b0aa8',
|
|
71
|
-
});
|
|
72
|
-
const foxOnGnosis = toAssetId({
|
|
73
|
-
chainNamespace: CHAIN_NAMESPACE.Evm,
|
|
74
|
-
chainReference: CHAIN_REFERENCE.GnosisMainnet,
|
|
75
|
-
assetNamespace,
|
|
76
|
-
assetReference: '0x21a42669643f45bc0e086b8fc2ed70c23d67509d',
|
|
77
|
-
});
|
|
78
|
-
const foxOnOptimism = toAssetId({
|
|
79
|
-
chainNamespace: CHAIN_NAMESPACE.Evm,
|
|
80
|
-
chainReference: CHAIN_REFERENCE.OptimismMainnet,
|
|
81
|
-
assetNamespace,
|
|
82
|
-
assetReference: '0xf1a0da3367bc7aa04f8d94ba57b862ff37ced174',
|
|
83
|
-
});
|
|
84
|
-
expect(coingeckoToAssetIds('shapeshift-fox-token')).toEqual([
|
|
85
|
-
foxOnEthereum,
|
|
86
|
-
foxOnOptimism,
|
|
87
|
-
foxOnPolygon,
|
|
88
|
-
foxOnGnosis,
|
|
89
|
-
foxOnArbitrumOneAssetId,
|
|
90
|
-
]);
|
|
91
|
-
});
|
|
92
|
-
it('can get AssetIds for cosmos', () => {
|
|
93
|
-
const atomOnCosmos = toAssetId({
|
|
94
|
-
chainNamespace: CHAIN_NAMESPACE.CosmosSdk,
|
|
95
|
-
chainReference: CHAIN_REFERENCE.CosmosHubMainnet,
|
|
96
|
-
assetNamespace: 'slip44',
|
|
97
|
-
assetReference: ASSET_REFERENCE.Cosmos,
|
|
98
|
-
});
|
|
99
|
-
const atomOnBsc = toAssetId({
|
|
100
|
-
chainNamespace: CHAIN_NAMESPACE.Evm,
|
|
101
|
-
chainReference: CHAIN_REFERENCE.BnbSmartChainMainnet,
|
|
102
|
-
assetNamespace: 'erc20',
|
|
103
|
-
assetReference: '0x0eb3a705fc54725037cc9e008bdede697f62f335',
|
|
104
|
-
});
|
|
105
|
-
expect(coingeckoToAssetIds('cosmos')).toEqual([atomOnBsc, atomOnCosmos]);
|
|
106
|
-
});
|
|
107
|
-
it('can get AssetIds for USD Coin on Solana and EVM chains using coingecko', () => {
|
|
108
|
-
const chainNamespace = CHAIN_NAMESPACE.Evm;
|
|
109
|
-
const assetNamespace = 'erc20';
|
|
110
|
-
const usdcOnEthereum = toAssetId({
|
|
111
|
-
chainNamespace,
|
|
112
|
-
chainReference: CHAIN_REFERENCE.EthereumMainnet,
|
|
113
|
-
assetNamespace,
|
|
114
|
-
assetReference: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
|
|
115
|
-
});
|
|
116
|
-
const usdcOnAvalanche = toAssetId({
|
|
117
|
-
chainNamespace,
|
|
118
|
-
chainReference: CHAIN_REFERENCE.AvalancheCChain,
|
|
119
|
-
assetNamespace,
|
|
120
|
-
assetReference: '0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e',
|
|
121
|
-
});
|
|
122
|
-
const usdcOnOptimism = toAssetId({
|
|
123
|
-
chainNamespace,
|
|
124
|
-
chainReference: CHAIN_REFERENCE.OptimismMainnet,
|
|
125
|
-
assetNamespace,
|
|
126
|
-
assetReference: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85',
|
|
127
|
-
});
|
|
128
|
-
const usdcOnPolygon = toAssetId({
|
|
129
|
-
chainNamespace,
|
|
130
|
-
chainReference: CHAIN_REFERENCE.PolygonMainnet,
|
|
131
|
-
assetNamespace,
|
|
132
|
-
assetReference: '0x3c499c542cef5e3811e1192ce70d8cc03d5c3359',
|
|
133
|
-
});
|
|
134
|
-
const usdcOnArbitrum = toAssetId({
|
|
135
|
-
chainNamespace,
|
|
136
|
-
chainReference: CHAIN_REFERENCE.ArbitrumMainnet,
|
|
137
|
-
assetNamespace,
|
|
138
|
-
assetReference: '0xaf88d065e77c8cc2239327c5edb3a432268e5831',
|
|
139
|
-
});
|
|
140
|
-
const usdcOnBase = toAssetId({
|
|
141
|
-
chainNamespace,
|
|
142
|
-
chainReference: CHAIN_REFERENCE.BaseMainnet,
|
|
143
|
-
assetNamespace,
|
|
144
|
-
assetReference: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913',
|
|
145
|
-
});
|
|
146
|
-
const usdcOnSolana = toAssetId({
|
|
147
|
-
chainNamespace: CHAIN_NAMESPACE.Solana,
|
|
148
|
-
chainReference: CHAIN_REFERENCE.SolanaMainnet,
|
|
149
|
-
assetNamespace: 'token',
|
|
150
|
-
assetReference: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
|
|
151
|
-
});
|
|
152
|
-
expect(coingeckoToAssetIds('usd-coin')).toEqual([
|
|
153
|
-
usdcOnEthereum,
|
|
154
|
-
usdcOnAvalanche,
|
|
155
|
-
usdcOnOptimism,
|
|
156
|
-
usdcOnPolygon,
|
|
157
|
-
usdcOnArbitrum,
|
|
158
|
-
usdcOnBase,
|
|
159
|
-
usdcOnSolana,
|
|
160
|
-
]);
|
|
161
|
-
});
|
|
162
|
-
it('can get AssetIds for bridged USD Coin on EVM Chains', () => {
|
|
163
|
-
const chainNamespace = CHAIN_NAMESPACE.Evm;
|
|
164
|
-
const assetNamespace = 'erc20';
|
|
165
|
-
const usdcOnBscBridged = toAssetId({
|
|
166
|
-
chainNamespace,
|
|
167
|
-
chainReference: CHAIN_REFERENCE.BnbSmartChainMainnet,
|
|
168
|
-
assetNamespace: 'erc20',
|
|
169
|
-
assetReference: '0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d',
|
|
170
|
-
});
|
|
171
|
-
const usdcOnPolygonBridged = toAssetId({
|
|
172
|
-
chainNamespace,
|
|
173
|
-
chainReference: CHAIN_REFERENCE.PolygonMainnet,
|
|
174
|
-
assetNamespace,
|
|
175
|
-
assetReference: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',
|
|
176
|
-
});
|
|
177
|
-
const usdcOnArbitrumNovaBridged = toAssetId({
|
|
178
|
-
chainNamespace,
|
|
179
|
-
chainReference: CHAIN_REFERENCE.ArbitrumNovaMainnet,
|
|
180
|
-
assetNamespace,
|
|
181
|
-
assetReference: '0x750ba8b76187092B0D1E87E28daaf484d1b5273b',
|
|
182
|
-
});
|
|
183
|
-
const usdcOnGnosisBridged = toAssetId({
|
|
184
|
-
chainNamespace,
|
|
185
|
-
chainReference: CHAIN_REFERENCE.GnosisMainnet,
|
|
186
|
-
assetNamespace,
|
|
187
|
-
assetReference: '0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83',
|
|
188
|
-
});
|
|
189
|
-
expect(coingeckoToAssetIds('binance-bridged-usdc-bnb-smart-chain')).toEqual([
|
|
190
|
-
usdcOnBscBridged,
|
|
191
|
-
]);
|
|
192
|
-
expect(coingeckoToAssetIds('bridged-usdc-polygon-pos-bridge')).toEqual([usdcOnPolygonBridged]);
|
|
193
|
-
expect(coingeckoToAssetIds('gnosis-xdai-bridged-usdc-gnosis')).toEqual([usdcOnGnosisBridged]);
|
|
194
|
-
expect(coingeckoToAssetIds('official-arbitrum-bridged-usdc-arbitrum-nova')).toEqual([
|
|
195
|
-
usdcOnArbitrumNovaBridged,
|
|
196
|
-
]);
|
|
197
|
-
});
|
|
198
|
-
});
|
|
199
|
-
describe('assetIdToCoingecko', () => {
|
|
200
|
-
it('can get CoinGecko id for bitcoin AssetId', () => {
|
|
201
|
-
const chainNamespace = CHAIN_NAMESPACE.Utxo;
|
|
202
|
-
const chainReference = CHAIN_REFERENCE.BitcoinMainnet;
|
|
203
|
-
const assetId = toAssetId({
|
|
204
|
-
chainNamespace,
|
|
205
|
-
chainReference,
|
|
206
|
-
assetNamespace: 'slip44',
|
|
207
|
-
assetReference: ASSET_REFERENCE.Bitcoin,
|
|
208
|
-
});
|
|
209
|
-
expect(assetIdToCoingecko(assetId)).toEqual('bitcoin');
|
|
210
|
-
});
|
|
211
|
-
it('can get CoinGecko id for ethereum AssetId', () => {
|
|
212
|
-
const chainNamespace = CHAIN_NAMESPACE.Evm;
|
|
213
|
-
const chainReference = CHAIN_REFERENCE.EthereumMainnet;
|
|
214
|
-
const assetId = toAssetId({
|
|
215
|
-
chainNamespace,
|
|
216
|
-
chainReference,
|
|
217
|
-
assetNamespace: 'slip44',
|
|
218
|
-
assetReference: ASSET_REFERENCE.Ethereum,
|
|
219
|
-
});
|
|
220
|
-
expect(assetIdToCoingecko(assetId)).toEqual('ethereum');
|
|
221
|
-
});
|
|
222
|
-
it('can get CoinGecko id for FOX', () => {
|
|
223
|
-
const chainNamespace = CHAIN_NAMESPACE.Evm;
|
|
224
|
-
const chainReference = CHAIN_REFERENCE.EthereumMainnet;
|
|
225
|
-
const assetNamespace = 'erc20';
|
|
226
|
-
const assetReference = '0xc770eefad204b5180df6a14ee197d99d808ee52d';
|
|
227
|
-
const assetId = toAssetId({ chainNamespace, chainReference, assetNamespace, assetReference });
|
|
228
|
-
expect(assetIdToCoingecko(assetId)).toEqual('shapeshift-fox-token');
|
|
229
|
-
});
|
|
230
|
-
it('can get CoinGecko id for cosmos AssetId', () => {
|
|
231
|
-
const chainNamespace = CHAIN_NAMESPACE.CosmosSdk;
|
|
232
|
-
const chainReference = CHAIN_REFERENCE.CosmosHubMainnet;
|
|
233
|
-
const assetId = toAssetId({
|
|
234
|
-
chainNamespace,
|
|
235
|
-
chainReference,
|
|
236
|
-
assetNamespace: 'slip44',
|
|
237
|
-
assetReference: ASSET_REFERENCE.Cosmos,
|
|
238
|
-
});
|
|
239
|
-
expect(assetIdToCoingecko(assetId)).toEqual('cosmos');
|
|
240
|
-
});
|
|
241
|
-
it('can get CoinGecko id for polygon AssetId', () => {
|
|
242
|
-
const chainNamespace = CHAIN_NAMESPACE.Evm;
|
|
243
|
-
const chainReference = CHAIN_REFERENCE.PolygonMainnet;
|
|
244
|
-
const assetId = toAssetId({
|
|
245
|
-
chainNamespace,
|
|
246
|
-
chainReference,
|
|
247
|
-
assetNamespace: 'slip44',
|
|
248
|
-
assetReference: ASSET_REFERENCE.Polygon,
|
|
249
|
-
});
|
|
250
|
-
expect(assetIdToCoingecko(assetId)).toEqual('matic-network');
|
|
251
|
-
});
|
|
252
|
-
it('can get CoinGecko id for gnosis AssetId', () => {
|
|
253
|
-
const chainNamespace = CHAIN_NAMESPACE.Evm;
|
|
254
|
-
const chainReference = CHAIN_REFERENCE.GnosisMainnet;
|
|
255
|
-
const assetId = toAssetId({
|
|
256
|
-
chainNamespace,
|
|
257
|
-
chainReference,
|
|
258
|
-
assetNamespace: 'slip44',
|
|
259
|
-
assetReference: ASSET_REFERENCE.Gnosis,
|
|
260
|
-
});
|
|
261
|
-
expect(assetIdToCoingecko(assetId)).toEqual('xdai');
|
|
262
|
-
});
|
|
263
|
-
});
|
|
264
|
-
describe('chainIdToCoingeckoAssetPlatform', () => {
|
|
265
|
-
it('can get CoinGecko asset platform from ChainId', () => {
|
|
266
|
-
const chainId = ethChainId;
|
|
267
|
-
expect(chainIdToCoingeckoAssetPlatform(chainId)).toEqual(CoingeckoAssetPlatform.Ethereum);
|
|
268
|
-
});
|
|
269
|
-
it('throws on invalid ChainId', () => {
|
|
270
|
-
const chainId = btcChainId;
|
|
271
|
-
expect(() => chainIdToCoingeckoAssetPlatform(chainId)).toThrow();
|
|
272
|
-
});
|
|
273
|
-
});
|
|
274
|
-
});
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { AssetId } from '../../assetId/assetId.js';
|
|
2
|
-
import type { ChainId } from '../../chainId/chainId.js';
|
|
3
|
-
export type CoingeckoCoin = {
|
|
4
|
-
id: string;
|
|
5
|
-
platforms: Record<string, string>;
|
|
6
|
-
};
|
|
7
|
-
type AssetMap = Record<ChainId, Record<AssetId, string>>;
|
|
8
|
-
export declare const fetchData: (URL: string) => Promise<CoingeckoCoin[]>;
|
|
9
|
-
export declare const parseData: (coins: CoingeckoCoin[]) => AssetMap;
|
|
10
|
-
export declare const writeFiles: (data: AssetMap) => Promise<void>;
|
|
11
|
-
export {};
|
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
import axios from 'axios';
|
|
2
|
-
import fs from 'fs';
|
|
3
|
-
import { toAssetId } from '../../assetId/assetId.js';
|
|
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.js';
|
|
5
|
-
import { bitcoinAssetMap, bitcoinCashAssetMap, cosmosAssetMap, dogecoinAssetMap, litecoinAssetMap, mayachainAssetMap, thorchainAssetMap, } from '../../utils.js';
|
|
6
|
-
import { CoingeckoAssetPlatform } from './index.js';
|
|
7
|
-
export const fetchData = async (URL) => (await axios.get(URL)).data;
|
|
8
|
-
export const parseData = (coins) => {
|
|
9
|
-
const assetMap = coins.reduce((prev, { id, platforms }) => {
|
|
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: 'erc20',
|
|
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],
|
|
143
|
-
});
|
|
144
|
-
prev[solanaChainId][assetId] = id;
|
|
145
|
-
}
|
|
146
|
-
catch {
|
|
147
|
-
// unable to create assetId, skip token
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
return prev;
|
|
151
|
-
}, {
|
|
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' },
|
|
162
|
-
});
|
|
163
|
-
return {
|
|
164
|
-
...assetMap,
|
|
165
|
-
[btcChainId]: bitcoinAssetMap,
|
|
166
|
-
[bchChainId]: bitcoinCashAssetMap,
|
|
167
|
-
[dogeChainId]: dogecoinAssetMap,
|
|
168
|
-
[ltcChainId]: litecoinAssetMap,
|
|
169
|
-
[cosmosChainId]: cosmosAssetMap,
|
|
170
|
-
[thorchainChainId]: thorchainAssetMap,
|
|
171
|
-
[mayachainChainId]: mayachainAssetMap,
|
|
172
|
-
};
|
|
173
|
-
};
|
|
174
|
-
export const writeFiles = async (data) => {
|
|
175
|
-
await Promise.all(Object.entries(data).map(async ([chainId, 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));
|
|
179
|
-
}));
|
|
180
|
-
console.info('Generated CoinGecko AssetId adapter data.');
|
|
181
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|