@shapeshiftoss/caip 6.8.0 → 6.9.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/README.md
CHANGED
|
@@ -134,9 +134,9 @@ and commit the generated `adapter.json` files.
|
|
|
134
134
|
### Usage
|
|
135
135
|
|
|
136
136
|
```ts
|
|
137
|
-
console.log(
|
|
137
|
+
console.log(coingeckoToAssetIds('shapeshift-fox-token'))
|
|
138
138
|
|
|
139
|
-
eip155:1/erc20:0xc770eefad204b5180df6a14ee197d99d808ee52d
|
|
139
|
+
[eip155:1/erc20:0xc770eefad204b5180df6a14ee197d99d808ee52d]
|
|
140
140
|
|
|
141
141
|
console.log(assetIdToCoingecko('bip122:000000000019d6689c085ae165831e93/slip44:0'))
|
|
142
142
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AssetId } from '../../assetId/assetId';
|
|
1
2
|
import { ChainId } from '../../chainId/chainId';
|
|
2
3
|
export declare enum CoingeckoAssetPlatform {
|
|
3
4
|
Ethereum = "ethereum",
|
|
@@ -5,14 +6,16 @@ export declare enum CoingeckoAssetPlatform {
|
|
|
5
6
|
Osmosis = "osmosis",
|
|
6
7
|
Avalanche = "avalanche"
|
|
7
8
|
}
|
|
9
|
+
declare type CoinGeckoId = string;
|
|
8
10
|
export declare const coingeckoBaseUrl = "https://api.coingecko.com/api/v3";
|
|
9
11
|
export declare const coingeckoProBaseUrl = "https://pro-api.coingecko.com/api/v3";
|
|
10
12
|
export declare const coingeckoUrl = "https://api.coingecko.com/api/v3/coins/list?include_platform=true";
|
|
11
|
-
export declare const
|
|
12
|
-
export declare const assetIdToCoingecko: (assetId:
|
|
13
|
+
export declare const coingeckoToAssetIds: (id: CoinGeckoId) => AssetId[];
|
|
14
|
+
export declare const assetIdToCoingecko: (assetId: AssetId) => CoinGeckoId | undefined;
|
|
13
15
|
export declare const chainIdToCoingeckoAssetPlatform: (chainId: ChainId) => string;
|
|
14
16
|
export declare const makeCoingeckoUrlParts: (apiKey?: string | undefined) => {
|
|
15
17
|
baseUrl: string;
|
|
16
18
|
maybeApiKeyQueryParam: string;
|
|
17
19
|
};
|
|
18
|
-
export declare const makeCoingeckoAssetUrl: (assetId:
|
|
20
|
+
export declare const makeCoingeckoAssetUrl: (assetId: AssetId, apiKey?: string | undefined) => string | undefined;
|
|
21
|
+
export {};
|
|
@@ -26,7 +26,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.makeCoingeckoAssetUrl = exports.makeCoingeckoUrlParts = exports.chainIdToCoingeckoAssetPlatform = exports.assetIdToCoingecko = exports.
|
|
29
|
+
exports.makeCoingeckoAssetUrl = exports.makeCoingeckoUrlParts = exports.chainIdToCoingeckoAssetPlatform = exports.assetIdToCoingecko = exports.coingeckoToAssetIds = exports.coingeckoUrl = exports.coingeckoProBaseUrl = exports.coingeckoBaseUrl = exports.CoingeckoAssetPlatform = void 0;
|
|
30
|
+
const invertBy_1 = __importDefault(require("lodash/invertBy"));
|
|
30
31
|
const toLower_1 = __importDefault(require("lodash/toLower"));
|
|
31
32
|
const assetId_1 = require("../../assetId/assetId");
|
|
32
33
|
const chainId_1 = require("../../chainId/chainId");
|
|
@@ -43,14 +44,14 @@ var CoingeckoAssetPlatform;
|
|
|
43
44
|
exports.coingeckoBaseUrl = 'https://api.coingecko.com/api/v3';
|
|
44
45
|
exports.coingeckoProBaseUrl = 'https://pro-api.coingecko.com/api/v3';
|
|
45
46
|
exports.coingeckoUrl = 'https://api.coingecko.com/api/v3/coins/list?include_platform=true';
|
|
46
|
-
const
|
|
47
|
+
const assetIdToCoinGeckoIdMapByChain = Object.values(adapters);
|
|
48
|
+
const generatedAssetIdToCoingeckoMap = assetIdToCoinGeckoIdMapByChain.reduce((acc, cur) => ({
|
|
47
49
|
...acc,
|
|
48
50
|
...cur
|
|
49
51
|
}));
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
exports.coingeckoToAssetId = coingeckoToAssetId;
|
|
52
|
+
const generatedCoingeckoToAssetIdsMap = (0, invertBy_1.default)(generatedAssetIdToCoingeckoMap);
|
|
53
|
+
const coingeckoToAssetIds = (id) => generatedCoingeckoToAssetIdsMap[id];
|
|
54
|
+
exports.coingeckoToAssetIds = coingeckoToAssetIds;
|
|
54
55
|
const assetIdToCoingecko = (assetId) => generatedAssetIdToCoingeckoMap[(0, toLower_1.default)(assetId)];
|
|
55
56
|
exports.assetIdToCoingecko = assetIdToCoingecko;
|
|
56
57
|
// https://www.coingecko.com/en/api/documentation - See asset_platforms
|
|
@@ -7,7 +7,7 @@ export declare type CoingeckoCoin = {
|
|
|
7
7
|
platforms: Record<string, string>;
|
|
8
8
|
};
|
|
9
9
|
declare type AssetMap = Record<ChainId, Record<AssetId, string>>;
|
|
10
|
-
export declare const writeFiles: (data: AssetMap) => Promise<void>;
|
|
11
10
|
export declare const fetchData: (URL: string) => Promise<CoingeckoCoin[]>;
|
|
12
11
|
export declare const parseData: (coins: CoingeckoCoin[]) => AssetMap;
|
|
12
|
+
export declare const writeFiles: (data: AssetMap) => Promise<void>;
|
|
13
13
|
export {};
|
|
@@ -3,20 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.writeFiles = exports.parseData = exports.fetchData = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
const fs_1 = __importDefault(require("fs"));
|
|
9
9
|
const assetId_1 = require("../../assetId/assetId");
|
|
10
10
|
const constants_1 = require("../../constants");
|
|
11
11
|
const utils_1 = require("../../utils");
|
|
12
|
-
const writeFiles = async (data) => {
|
|
13
|
-
await Promise.all(Object.entries(data).map(async ([chainId, assets]) => {
|
|
14
|
-
const path = `./src/adapters/coingecko/generated/${chainId}/adapter.json`.replace(':', '_');
|
|
15
|
-
await fs_1.default.promises.writeFile(path, JSON.stringify(assets));
|
|
16
|
-
}));
|
|
17
|
-
console.info('Generated CoinGecko AssetId adapter data.');
|
|
18
|
-
};
|
|
19
|
-
exports.writeFiles = writeFiles;
|
|
20
12
|
const fetchData = async (URL) => (await axios_1.default.get(URL)).data;
|
|
21
13
|
exports.fetchData = fetchData;
|
|
22
14
|
const parseData = (coins) => {
|
|
@@ -64,3 +56,11 @@ const parseData = (coins) => {
|
|
|
64
56
|
};
|
|
65
57
|
};
|
|
66
58
|
exports.parseData = parseData;
|
|
59
|
+
const writeFiles = async (data) => {
|
|
60
|
+
await Promise.all(Object.entries(data).map(async ([chainId, assets]) => {
|
|
61
|
+
const path = `./src/adapters/coingecko/generated/${chainId}/adapter.json`.replace(':', '_');
|
|
62
|
+
await fs_1.default.promises.writeFile(path, JSON.stringify(assets));
|
|
63
|
+
}));
|
|
64
|
+
console.info('Generated CoinGecko AssetId adapter data.');
|
|
65
|
+
};
|
|
66
|
+
exports.writeFiles = writeFiles;
|