@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 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const fs_1 = __importDefault(require("fs"));
|
|
7
|
-
const vitest_1 = require("vitest");
|
|
8
|
-
const utils_1 = require("../../utils");
|
|
9
|
-
const utils_2 = require("./utils");
|
|
10
|
-
const makeEthMockCoingeckoResponse = () => ({
|
|
11
|
-
id: 'ethereum',
|
|
12
|
-
symbol: 'eth',
|
|
13
|
-
platforms: {},
|
|
14
|
-
});
|
|
15
|
-
const makeWethMockCoingeckoResponse = () => ({
|
|
16
|
-
id: 'weth',
|
|
17
|
-
symbol: 'weth',
|
|
18
|
-
name: 'WETH',
|
|
19
|
-
platforms: {
|
|
20
|
-
ethereum: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
|
|
21
|
-
'optimistic-ethereum': '0x4200000000000000000000000000000000000006',
|
|
22
|
-
avalanche: '0x49d5c2bdffac6ce2bfdb6640f4f80f226bc10bab',
|
|
23
|
-
'binance-smart-chain': '0x2170ed0880ac9a755fd29b2688956bd959f933f8',
|
|
24
|
-
'polygon-pos': '0x7ceb23fd6bc0add59e62ac25578270cff1b9f619',
|
|
25
|
-
xdai: '0x6a023ccd1ff6f2045c3309768ead9e68f978f6e1',
|
|
26
|
-
'arbitrum-one': '0x82af49447d8a07e3bd95bd0d56f35241523fbab1',
|
|
27
|
-
'arbitrum-nova': '0x722e8bdd2ce80a4422e880164f2079488e115365',
|
|
28
|
-
base: '0x4200000000000000000000000000000000000006',
|
|
29
|
-
},
|
|
30
|
-
});
|
|
31
|
-
const makeAvalancheMockCoingeckoResponse = () => ({
|
|
32
|
-
id: 'avalanche-2',
|
|
33
|
-
symbol: 'avax',
|
|
34
|
-
platforms: {},
|
|
35
|
-
});
|
|
36
|
-
const makeFoxMockCoingeckoResponse = () => ({
|
|
37
|
-
id: 'shapeshift-fox-token',
|
|
38
|
-
symbol: 'fox',
|
|
39
|
-
platforms: {
|
|
40
|
-
ethereum: '0xc770eefad204b5180df6a14ee197d99d808ee52d',
|
|
41
|
-
},
|
|
42
|
-
});
|
|
43
|
-
const makeBtcMockCoingeckoResponse = () => ({
|
|
44
|
-
id: 'bitcoin',
|
|
45
|
-
symbol: 'btc',
|
|
46
|
-
platforms: {},
|
|
47
|
-
});
|
|
48
|
-
const makeCosmosMockCoingeckoResponse = () => ({
|
|
49
|
-
id: 'cosmos',
|
|
50
|
-
symbol: 'atom',
|
|
51
|
-
platforms: {},
|
|
52
|
-
});
|
|
53
|
-
const makePolygonMockCoingeckoResponse = () => ({
|
|
54
|
-
id: 'polygon-pos',
|
|
55
|
-
symbol: 'matic',
|
|
56
|
-
platforms: {},
|
|
57
|
-
});
|
|
58
|
-
const makeGnosisMockCoingeckoResponse = () => ({
|
|
59
|
-
id: 'gnosis',
|
|
60
|
-
symbol: 'xDai',
|
|
61
|
-
platforms: {},
|
|
62
|
-
});
|
|
63
|
-
const makeThorchainMockCoingeckoResponse = () => ({
|
|
64
|
-
id: 'thorchain',
|
|
65
|
-
symbol: 'rune',
|
|
66
|
-
platforms: {
|
|
67
|
-
thorchain: '',
|
|
68
|
-
},
|
|
69
|
-
});
|
|
70
|
-
vitest_1.vi.mock('fs', () => ({
|
|
71
|
-
default: {
|
|
72
|
-
promises: {
|
|
73
|
-
writeFile: vitest_1.vi.fn(() => undefined),
|
|
74
|
-
mkdir: vitest_1.vi.fn(() => undefined),
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
}));
|
|
78
|
-
(0, vitest_1.describe)('adapters:coingecko:utils', () => {
|
|
79
|
-
(0, vitest_1.describe)('makeData', () => {
|
|
80
|
-
(0, vitest_1.it)('can make btc data', () => {
|
|
81
|
-
const result = utils_1.bitcoinAssetMap;
|
|
82
|
-
const expected = { 'bip122:000000000019d6689c085ae165831e93/slip44:0': 'bitcoin' };
|
|
83
|
-
(0, vitest_1.expect)(result).toEqual(expected);
|
|
84
|
-
});
|
|
85
|
-
(0, vitest_1.it)('can make cosmos data', () => {
|
|
86
|
-
const result = utils_1.cosmosAssetMap;
|
|
87
|
-
const expected = { 'cosmos:cosmoshub-4/slip44:118': 'cosmos' };
|
|
88
|
-
(0, vitest_1.expect)(result).toEqual(expected);
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
(0, vitest_1.describe)('parseData', () => {
|
|
92
|
-
(0, vitest_1.it)('can parse all data', () => {
|
|
93
|
-
const result = (0, utils_2.parseData)([
|
|
94
|
-
makeEthMockCoingeckoResponse(),
|
|
95
|
-
makeWethMockCoingeckoResponse(),
|
|
96
|
-
makeFoxMockCoingeckoResponse(),
|
|
97
|
-
makeBtcMockCoingeckoResponse(),
|
|
98
|
-
makeCosmosMockCoingeckoResponse(),
|
|
99
|
-
makeThorchainMockCoingeckoResponse(),
|
|
100
|
-
makeAvalancheMockCoingeckoResponse(),
|
|
101
|
-
makePolygonMockCoingeckoResponse(),
|
|
102
|
-
makeGnosisMockCoingeckoResponse(),
|
|
103
|
-
]);
|
|
104
|
-
const expected = {
|
|
105
|
-
'bip122:000000000019d6689c085ae165831e93': {
|
|
106
|
-
'bip122:000000000019d6689c085ae165831e93/slip44:0': 'bitcoin',
|
|
107
|
-
},
|
|
108
|
-
'bip122:000000000000000000651ef99cb9fcbe': {
|
|
109
|
-
'bip122:000000000000000000651ef99cb9fcbe/slip44:145': 'bitcoin-cash',
|
|
110
|
-
},
|
|
111
|
-
'bip122:00000000001a91e3dace36e2be3bf030': {
|
|
112
|
-
'bip122:00000000001a91e3dace36e2be3bf030/slip44:3': 'dogecoin',
|
|
113
|
-
},
|
|
114
|
-
'bip122:12a765e31ffd4059bada1e25190f6e98': {
|
|
115
|
-
'bip122:12a765e31ffd4059bada1e25190f6e98/slip44:2': 'litecoin',
|
|
116
|
-
},
|
|
117
|
-
'cosmos:cosmoshub-4': {
|
|
118
|
-
'cosmos:cosmoshub-4/slip44:118': 'cosmos',
|
|
119
|
-
},
|
|
120
|
-
'cosmos:thorchain-1': {
|
|
121
|
-
'cosmos:thorchain-1/slip44:931': 'thorchain',
|
|
122
|
-
},
|
|
123
|
-
'cosmos:mayachain-mainnet-v1': {
|
|
124
|
-
'cosmos:mayachain-mainnet-v1/slip44:931': 'cacao',
|
|
125
|
-
},
|
|
126
|
-
'eip155:1': {
|
|
127
|
-
'eip155:1/slip44:60': 'ethereum',
|
|
128
|
-
'eip155:1/erc20:0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2': 'weth',
|
|
129
|
-
'eip155:1/erc20:0xc770eefad204b5180df6a14ee197d99d808ee52d': 'shapeshift-fox-token',
|
|
130
|
-
},
|
|
131
|
-
'eip155:43114': {
|
|
132
|
-
'eip155:43114/slip44:60': 'avalanche-2',
|
|
133
|
-
'eip155:43114/erc20:0x49d5c2bdffac6ce2bfdb6640f4f80f226bc10bab': 'weth',
|
|
134
|
-
},
|
|
135
|
-
'eip155:56': {
|
|
136
|
-
'eip155:56/slip44:60': 'binancecoin',
|
|
137
|
-
'eip155:56/erc20:0x2170ed0880ac9a755fd29b2688956bd959f933f8': 'weth',
|
|
138
|
-
},
|
|
139
|
-
'eip155:10': {
|
|
140
|
-
'eip155:10/slip44:60': 'ethereum',
|
|
141
|
-
'eip155:10/erc20:0x4200000000000000000000000000000000000006': 'weth',
|
|
142
|
-
},
|
|
143
|
-
'eip155:137': {
|
|
144
|
-
'eip155:137/slip44:60': 'matic-network',
|
|
145
|
-
'eip155:137/erc20:0x7ceb23fd6bc0add59e62ac25578270cff1b9f619': 'weth',
|
|
146
|
-
},
|
|
147
|
-
'eip155:100': {
|
|
148
|
-
'eip155:100/slip44:60': 'xdai',
|
|
149
|
-
'eip155:100/erc20:0x6a023ccd1ff6f2045c3309768ead9e68f978f6e1': 'weth',
|
|
150
|
-
},
|
|
151
|
-
'eip155:42161': {
|
|
152
|
-
'eip155:42161/slip44:60': 'ethereum',
|
|
153
|
-
'eip155:42161/erc20:0x82af49447d8a07e3bd95bd0d56f35241523fbab1': 'weth',
|
|
154
|
-
},
|
|
155
|
-
'eip155:42170': {
|
|
156
|
-
'eip155:42170/slip44:60': 'ethereum',
|
|
157
|
-
'eip155:42170/erc20:0x722e8bdd2ce80a4422e880164f2079488e115365': 'weth',
|
|
158
|
-
},
|
|
159
|
-
'eip155:8453': {
|
|
160
|
-
'eip155:8453/slip44:60': 'ethereum',
|
|
161
|
-
'eip155:8453/erc20:0x4200000000000000000000000000000000000006': 'weth',
|
|
162
|
-
},
|
|
163
|
-
'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp': {
|
|
164
|
-
'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501': 'solana',
|
|
165
|
-
},
|
|
166
|
-
};
|
|
167
|
-
(0, vitest_1.expect)(result).toEqual(expected);
|
|
168
|
-
});
|
|
169
|
-
});
|
|
170
|
-
(0, vitest_1.describe)('writeFiles', () => {
|
|
171
|
-
(0, vitest_1.it)('can writeFiles', async () => {
|
|
172
|
-
const data = {
|
|
173
|
-
foo: {
|
|
174
|
-
assetIdAbc: 'bitcorn',
|
|
175
|
-
assetIdDef: 'efferium',
|
|
176
|
-
},
|
|
177
|
-
bar: {
|
|
178
|
-
assetIdGhi: 'fox',
|
|
179
|
-
assetIdJkl: 'shib',
|
|
180
|
-
},
|
|
181
|
-
};
|
|
182
|
-
const fooAssetIds = JSON.stringify(data.foo);
|
|
183
|
-
const barAssetIds = JSON.stringify(data.bar);
|
|
184
|
-
console.info = vitest_1.vi.fn();
|
|
185
|
-
await (0, utils_2.writeFiles)(data);
|
|
186
|
-
(0, vitest_1.expect)(fs_1.default.promises.mkdir).toHaveBeenNthCalledWith(1, './src/adapters/coingecko/generated/foo', { recursive: true });
|
|
187
|
-
(0, vitest_1.expect)(fs_1.default.promises.writeFile).toHaveBeenNthCalledWith(1, './src/adapters/coingecko/generated/foo/adapter.json', fooAssetIds);
|
|
188
|
-
(0, vitest_1.expect)(fs_1.default.promises.mkdir).toHaveBeenNthCalledWith(2, './src/adapters/coingecko/generated/bar', { recursive: true });
|
|
189
|
-
(0, vitest_1.expect)(fs_1.default.promises.writeFile).toHaveBeenNthCalledWith(2, './src/adapters/coingecko/generated/bar/adapter.json', barAssetIds);
|
|
190
|
-
(0, vitest_1.expect)(console.info).toBeCalledWith('Generated CoinGecko AssetId adapter data.');
|
|
191
|
-
});
|
|
192
|
-
});
|
|
193
|
-
});
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./coingecko"), exports);
|
|
18
|
-
__exportStar(require("./coincap"), exports);
|
|
19
|
-
__exportStar(require("./banxa"), exports);
|
|
20
|
-
__exportStar(require("./coinbase"), exports);
|
|
21
|
-
__exportStar(require("./mtpelerin"), exports);
|
|
22
|
-
__exportStar(require("./onramper"), exports);
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { AssetId } from '../../assetId/assetId';
|
|
2
|
-
export declare const mtPelerinSymbolToAssetIds: (id: string) => AssetId[];
|
|
3
|
-
export declare const assetIdToMtPelerinSymbol: (assetId: AssetId) => string | undefined;
|
|
4
|
-
/**
|
|
5
|
-
* Convert a mtPelerin asset identifier to a MtPelerin chain identifier for use in MtPelerin HTTP URLs
|
|
6
|
-
*
|
|
7
|
-
* @param {string} assetId - an assetId string referencing a specific asset; e.g., ethAssetId
|
|
8
|
-
* @returns {string} - a MtPelerin network identifier; e.g., 'mainnet'
|
|
9
|
-
*/
|
|
10
|
-
export declare const getMtPelerinNetFromAssetId: (assetId: AssetId) => string | undefined;
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getMtPelerinNetFromAssetId = exports.assetIdToMtPelerinSymbol = exports.mtPelerinSymbolToAssetIds = void 0;
|
|
4
|
-
const assetId_1 = require("../../assetId/assetId");
|
|
5
|
-
const constants_1 = require("../../constants");
|
|
6
|
-
/**
|
|
7
|
-
* provided from https://api.mtPelerin.com/currencies/tokens
|
|
8
|
-
*/
|
|
9
|
-
const MtPelerinSymbolToAssetIds = {
|
|
10
|
-
ETH: [constants_1.ethAssetId, constants_1.optimismAssetId, constants_1.arbitrumAssetId, constants_1.baseAssetId],
|
|
11
|
-
POL: [constants_1.polygonAssetId],
|
|
12
|
-
XDAI: [constants_1.gnosisAssetId],
|
|
13
|
-
BTC: [constants_1.btcAssetId],
|
|
14
|
-
BNB: [constants_1.bscAssetId],
|
|
15
|
-
DAI: ['eip155:1/erc20:0x6b175474e89094c44da98b954eedeac495271d0f'],
|
|
16
|
-
USDT: [
|
|
17
|
-
'eip155:1/erc20:0xdac17f958d2ee523a2206206994597c13d831ec7',
|
|
18
|
-
'eip155:10/erc20:0x94b008aa00579c1307b0ef2c499ad98a8ce58e58',
|
|
19
|
-
'eip155:56/erc20:0x55d398326f99059ff775485246999027b3197955',
|
|
20
|
-
'eip155:100/erc20:0x4ecaba5870353805a9f068101a40e0f32ed605c6',
|
|
21
|
-
'eip155:137/erc20:0xc2132d05d31c914a87c6611c10748aeb04b58e8f',
|
|
22
|
-
'eip155:42161/erc20:0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9',
|
|
23
|
-
],
|
|
24
|
-
USDC: [
|
|
25
|
-
'eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
|
|
26
|
-
'eip155:10/erc20:0x0b2c639c533813f4aa9d7837caf62653d097ff85',
|
|
27
|
-
'eip155:56/erc20:0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d',
|
|
28
|
-
'eip155:137/erc20:0x3c499c542cef5e3811e1192ce70d8cc03d5c3359',
|
|
29
|
-
'eip155:100/erc20:0xddafbb505ad214d7b80b1f830fccc89b60fb7a83',
|
|
30
|
-
'eip155:42161/erc20:0xaf88d065e77c8cc2239327c5edb3a432268e5831',
|
|
31
|
-
'eip155:43114/erc20:0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e',
|
|
32
|
-
'eip155:8453/erc20:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913',
|
|
33
|
-
],
|
|
34
|
-
'USDC.e': [
|
|
35
|
-
'eip155:10/erc20:0x7f5c764cbc14f9669b88837ca1490cca17c31607',
|
|
36
|
-
'eip155:137/erc20:0x2791bca1f2de4661ed88a30c99a7a9449aa84174',
|
|
37
|
-
'eip155:42161/erc20:0xff970a61a04b1ca14834a43f5de4533ebddb5cc8',
|
|
38
|
-
'eip155:43114/erc20:0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664',
|
|
39
|
-
],
|
|
40
|
-
WBTC: [
|
|
41
|
-
'eip155:1/erc20:0x2260fac5e5542a773aa44fbcfedf7c193bc2c599',
|
|
42
|
-
'eip155:10/erc20:0x68f180fcce6836688e9084f035309e29bf0a2095',
|
|
43
|
-
'eip155:100/erc20:0x8e5bbbb09ed1ebde8674cda39a0c169401db4252',
|
|
44
|
-
'eip155:137/erc20:0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6',
|
|
45
|
-
'eip155:42161/erc20:0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f',
|
|
46
|
-
],
|
|
47
|
-
AVAX: [constants_1.avalancheAssetId],
|
|
48
|
-
'BTC.b': ['eip155:43114/erc20:0x152b9d0fdc40c096757f570a51e494bd4b943e50'],
|
|
49
|
-
cbBTC: [
|
|
50
|
-
'eip155:1/erc20:0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf',
|
|
51
|
-
'eip155:8453/erc20:0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf',
|
|
52
|
-
],
|
|
53
|
-
EURA: [
|
|
54
|
-
'eip155:42161/erc20:0xfa5ed56a203466cbbc2430a43c66b9d8723528e7',
|
|
55
|
-
'eip155:137/erc20:0xe0b52e49357fd4daf2c15e02058dce6bc0057db4',
|
|
56
|
-
],
|
|
57
|
-
EURC: [
|
|
58
|
-
'eip155:1/erc20:0x1abaea1f7c830bd89acc67ec4af516284b1bc33c',
|
|
59
|
-
'eip155:8453/erc20:0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42',
|
|
60
|
-
'eip155:43114/erc20:0xc891eb4cbdeff6e073e859e987815ed1505c2acd',
|
|
61
|
-
],
|
|
62
|
-
EURS: [
|
|
63
|
-
'eip155:1/erc20:0xdb25f211ab05b1c97d595516f45794528a807ad8',
|
|
64
|
-
'eip155:137/erc20:0xe111178a87a3bff0c8d18decba5798827539ae99',
|
|
65
|
-
],
|
|
66
|
-
FRAX: [
|
|
67
|
-
'eip155:1/erc20:0x853d955acef822db058eb8505911ed77f175b99e',
|
|
68
|
-
'eip155:137/erc20:0x45c32fa6df82ead1e2ef74d17b76547eddfaff89',
|
|
69
|
-
'eip155:43114/erc20:0xd24c2ad096400b6fbcd2ad8b24e7acbc21a1da64',
|
|
70
|
-
],
|
|
71
|
-
GHO: ['eip155:1/erc20:0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f'],
|
|
72
|
-
LUSD: [
|
|
73
|
-
'eip155:1/erc20:0x5f98805a4e8be255a32880fdec7f6728c6568ba0',
|
|
74
|
-
'eip155:10/erc20:0xc40f949f8a4e094d1b49a23ea9241d289b7b2819',
|
|
75
|
-
],
|
|
76
|
-
PAXG: ['eip155:1/erc20:0x45804880de22913dafe09f4980848ece6ecbaf78'],
|
|
77
|
-
WETH: [
|
|
78
|
-
'eip155:56/erc20:0x2170ed0880ac9a755fd29b2688956bd959f933f8',
|
|
79
|
-
'eip155:100/erc20:0x6a023ccd1ff6f2045c3309768ead9e68f978f6e1',
|
|
80
|
-
'eip155:137/erc20:0x7ceb23fd6bc0add59e62ac25578270cff1b9f619',
|
|
81
|
-
],
|
|
82
|
-
BTCB: ['eip155:56/erc20:0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c'],
|
|
83
|
-
crvUSD: ['eip155:1/erc20:0xf939e0a03fb07f59a73314e73794be0e57ac1b4e'],
|
|
84
|
-
XAUt: ['eip155:1/erc20:0x68749665ff8d2d112fa859aa293f07a622782f38'],
|
|
85
|
-
ZCHF: [
|
|
86
|
-
'eip155:1/erc20:0xb58e61c3098d85632df34eecfb899a1ed80921cb',
|
|
87
|
-
'eip155:100/erc20:0xd4dd9e2f021bb459d5a5f6c24c12fe09c5d45553',
|
|
88
|
-
],
|
|
89
|
-
};
|
|
90
|
-
const mtPelerinSymbolToAssetIds = (id) => MtPelerinSymbolToAssetIds[id];
|
|
91
|
-
exports.mtPelerinSymbolToAssetIds = mtPelerinSymbolToAssetIds;
|
|
92
|
-
const assetIdToMtPelerinSymbol = (assetId) => {
|
|
93
|
-
return Object.entries(MtPelerinSymbolToAssetIds)
|
|
94
|
-
.filter(([, assetIds]) => assetIds.includes(assetId))
|
|
95
|
-
.map(([key]) => key)[0];
|
|
96
|
-
};
|
|
97
|
-
exports.assetIdToMtPelerinSymbol = assetIdToMtPelerinSymbol;
|
|
98
|
-
/**
|
|
99
|
-
* map ChainIds to MtPelerin network,
|
|
100
|
-
* since some MtPelerin assets could be on multiple chains and their default
|
|
101
|
-
* chain won't be exactly the same as ours.
|
|
102
|
-
*
|
|
103
|
-
* https://developers.mtPelerin.com/integration-guides/options -> "net"
|
|
104
|
-
* source of truth per MtPelerin
|
|
105
|
-
*/
|
|
106
|
-
const chainIdToMtPelerinNetworkCodeMap = {
|
|
107
|
-
[constants_1.ethChainId]: 'mainnet',
|
|
108
|
-
[constants_1.btcChainId]: 'bitcoin_mainnet',
|
|
109
|
-
[constants_1.avalancheChainId]: 'avalanche_mainnet',
|
|
110
|
-
[constants_1.optimismChainId]: 'optimism_mainnet',
|
|
111
|
-
[constants_1.polygonChainId]: 'matic_mainnet',
|
|
112
|
-
[constants_1.gnosisChainId]: 'xdai_mainnet',
|
|
113
|
-
[constants_1.bscChainId]: 'bsc_mainnet',
|
|
114
|
-
[constants_1.arbitrumChainId]: 'arbitrum_mainnet',
|
|
115
|
-
[constants_1.baseChainId]: 'base_mainnet',
|
|
116
|
-
};
|
|
117
|
-
/**
|
|
118
|
-
* Convert a mtPelerin asset identifier to a MtPelerin chain identifier for use in MtPelerin HTTP URLs
|
|
119
|
-
*
|
|
120
|
-
* @param {string} assetId - an assetId string referencing a specific asset; e.g., ethAssetId
|
|
121
|
-
* @returns {string} - a MtPelerin network identifier; e.g., 'mainnet'
|
|
122
|
-
*/
|
|
123
|
-
const getMtPelerinNetFromAssetId = (assetId) => {
|
|
124
|
-
const { chainId } = (0, assetId_1.fromAssetId)(assetId);
|
|
125
|
-
return chainIdToMtPelerinNetworkCodeMap[chainId];
|
|
126
|
-
};
|
|
127
|
-
exports.getMtPelerinNetFromAssetId = getMtPelerinNetFromAssetId;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { AssetId } from '../../assetId/assetId';
|
|
2
|
-
type OnRamperTokenId = string;
|
|
3
|
-
export declare const NativeAssetIdToOnRamperIdMap: Record<AssetId, OnRamperTokenId[]>;
|
|
4
|
-
export declare const onRamperTokenIdToAssetId: (tokenId: OnRamperTokenId) => AssetId | undefined;
|
|
5
|
-
export declare const assetIdToOnRamperTokenList: (assetId: AssetId) => OnRamperTokenId[] | undefined;
|
|
6
|
-
export {};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.assetIdToOnRamperTokenList = exports.onRamperTokenIdToAssetId = exports.NativeAssetIdToOnRamperIdMap = void 0;
|
|
7
|
-
const entries_1 = __importDefault(require("lodash/entries"));
|
|
8
|
-
const constants_1 = require("../../constants");
|
|
9
|
-
// Native assets only - tokens are fetched dynamically
|
|
10
|
-
exports.NativeAssetIdToOnRamperIdMap = {
|
|
11
|
-
[constants_1.bscAssetId]: ['bnb_bsc'],
|
|
12
|
-
[constants_1.dogeAssetId]: ['doge_dogecoin'],
|
|
13
|
-
[constants_1.ethAssetId]: ['eth'],
|
|
14
|
-
[constants_1.arbitrumAssetId]: ['eth_arbitrum'],
|
|
15
|
-
[constants_1.optimismAssetId]: ['eth_optimism'],
|
|
16
|
-
[constants_1.baseAssetId]: ['eth_base'],
|
|
17
|
-
[constants_1.ltcAssetId]: ['ltc_litecoin'],
|
|
18
|
-
[constants_1.polygonAssetId]: ['matic_polygon'],
|
|
19
|
-
[constants_1.thorchainAssetId]: ['rune_thorchain'],
|
|
20
|
-
[constants_1.avalancheAssetId]: ['avax_avaxc'],
|
|
21
|
-
[constants_1.btcAssetId]: ['btc'],
|
|
22
|
-
[constants_1.bchAssetId]: ['bch_bitcoincash'],
|
|
23
|
-
[constants_1.cosmosAssetId]: ['atom_cosmos'],
|
|
24
|
-
[constants_1.gnosisAssetId]: ['xdai_gnosis'],
|
|
25
|
-
[constants_1.solAssetId]: ['sol'],
|
|
26
|
-
};
|
|
27
|
-
// explodes and inverts the assetId => tokenId[] map by creating a 1to1 token => assetId mapping
|
|
28
|
-
const invertMap = () => {
|
|
29
|
-
const invertedMap = {};
|
|
30
|
-
(0, entries_1.default)(exports.NativeAssetIdToOnRamperIdMap).flatMap(([assetId, idList]) => idList.forEach(id => {
|
|
31
|
-
invertedMap[id] = assetId;
|
|
32
|
-
}));
|
|
33
|
-
return invertedMap;
|
|
34
|
-
};
|
|
35
|
-
const OnRamperIdToAssetIdMap = invertMap();
|
|
36
|
-
const onRamperTokenIdToAssetId = (tokenId) => OnRamperIdToAssetIdMap[tokenId];
|
|
37
|
-
exports.onRamperTokenIdToAssetId = onRamperTokenIdToAssetId;
|
|
38
|
-
const assetIdToOnRamperTokenList = (assetId) => exports.NativeAssetIdToOnRamperIdMap[assetId];
|
|
39
|
-
exports.assetIdToOnRamperTokenList = assetIdToOnRamperTokenList;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type { ChainId, ChainNamespace, ChainReference } from '../chainId/chainId';
|
|
2
|
-
import type { ASSET_NAMESPACE, ASSET_REFERENCE } from '../constants';
|
|
3
|
-
import type { Nominal } from '../utils';
|
|
4
|
-
export type AssetId = Nominal<string, 'AssetId'>;
|
|
5
|
-
export type AssetNamespace = (typeof ASSET_NAMESPACE)[keyof typeof ASSET_NAMESPACE];
|
|
6
|
-
export type AssetReference = (typeof ASSET_REFERENCE)[keyof typeof ASSET_REFERENCE];
|
|
7
|
-
type ToAssetIdWithChainId = {
|
|
8
|
-
chainNamespace?: never;
|
|
9
|
-
chainReference?: never;
|
|
10
|
-
chainId: ChainId;
|
|
11
|
-
assetNamespace: AssetNamespace;
|
|
12
|
-
assetReference: AssetReference | string;
|
|
13
|
-
};
|
|
14
|
-
type ToAssetIdWithChainIdParts = {
|
|
15
|
-
chainNamespace: ChainNamespace;
|
|
16
|
-
chainReference: ChainReference;
|
|
17
|
-
chainId?: never;
|
|
18
|
-
assetNamespace: AssetNamespace;
|
|
19
|
-
assetReference: AssetReference | string;
|
|
20
|
-
};
|
|
21
|
-
export type ToAssetIdArgs = ToAssetIdWithChainId | ToAssetIdWithChainIdParts;
|
|
22
|
-
type ToAssetId = (args: ToAssetIdArgs) => AssetId;
|
|
23
|
-
export declare const toAssetId: ToAssetId;
|
|
24
|
-
type FromAssetIdReturn = {
|
|
25
|
-
chainNamespace: ChainNamespace;
|
|
26
|
-
chainReference: ChainReference;
|
|
27
|
-
chainId: ChainId;
|
|
28
|
-
assetNamespace: AssetNamespace;
|
|
29
|
-
assetReference: AssetReference;
|
|
30
|
-
};
|
|
31
|
-
export type FromAssetId = (assetId: AssetId) => FromAssetIdReturn;
|
|
32
|
-
export declare const fromAssetId: FromAssetId;
|
|
33
|
-
export declare const isNft: (assetId: AssetId) => boolean;
|
|
34
|
-
export declare const toCAIP19: ToAssetId;
|
|
35
|
-
export declare const fromCAIP19: FromAssetId;
|
|
36
|
-
export {};
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-19.md
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.fromCAIP19 = exports.toCAIP19 = exports.isNft = exports.fromAssetId = exports.toAssetId = void 0;
|
|
5
|
-
const chainId_1 = require("../chainId/chainId");
|
|
6
|
-
const constants_1 = require("../constants");
|
|
7
|
-
const typeGuards_1 = require("../typeGuards");
|
|
8
|
-
/**
|
|
9
|
-
* validate that a value is a string slip44 value
|
|
10
|
-
* @see https://github.com/satoshilabs/slips/blob/master/slip-0044.md
|
|
11
|
-
* @param {string} value - possible slip44 value
|
|
12
|
-
*/
|
|
13
|
-
const isValidSlip44 = (value) => {
|
|
14
|
-
// TCY is a weird AssetId, its asset ref part is not a number
|
|
15
|
-
if (value === 'tcy')
|
|
16
|
-
return true;
|
|
17
|
-
const n = Number(value);
|
|
18
|
-
// slip44 has a max value of an unsigned 32-bit integer
|
|
19
|
-
return !isNaN(n) && n >= 0 && n < 4294967296;
|
|
20
|
-
};
|
|
21
|
-
const isToAssetIdWithChainIdArgs = (args) => !!args.chainId;
|
|
22
|
-
const toAssetId = (args) => {
|
|
23
|
-
const { assetNamespace, assetReference } = args;
|
|
24
|
-
(0, typeGuards_1.assertIsAssetNamespace)(assetNamespace);
|
|
25
|
-
if (!assetReference)
|
|
26
|
-
throw new Error('toAssetId: No assetReference provided');
|
|
27
|
-
const { chainId, chainNamespace, chainReference } = (() => {
|
|
28
|
-
if (isToAssetIdWithChainIdArgs(args)) {
|
|
29
|
-
const fromChainIdResult = (0, chainId_1.fromChainId)(args.chainId);
|
|
30
|
-
return {
|
|
31
|
-
chainId: args.chainId,
|
|
32
|
-
chainNamespace: fromChainIdResult.chainNamespace,
|
|
33
|
-
chainReference: fromChainIdResult.chainReference,
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
else
|
|
37
|
-
return {
|
|
38
|
-
chainId: (0, chainId_1.toChainId)({
|
|
39
|
-
chainNamespace: args.chainNamespace,
|
|
40
|
-
chainReference: args.chainReference,
|
|
41
|
-
}),
|
|
42
|
-
chainNamespace: args.chainNamespace,
|
|
43
|
-
chainReference: args.chainReference,
|
|
44
|
-
};
|
|
45
|
-
})();
|
|
46
|
-
(0, typeGuards_1.assertIsChainNamespace)(chainNamespace);
|
|
47
|
-
(0, typeGuards_1.assertIsChainReference)(chainReference);
|
|
48
|
-
(0, typeGuards_1.assertValidChainPartsPair)(chainNamespace, chainReference);
|
|
49
|
-
if (!constants_1.VALID_ASSET_NAMESPACE[chainNamespace].includes(assetNamespace) ||
|
|
50
|
-
!(0, typeGuards_1.isAssetNamespace)(assetNamespace))
|
|
51
|
-
throw new Error(`toAssetId: AssetNamespace ${assetNamespace} not supported for Chain Namespace ${chainNamespace}`);
|
|
52
|
-
if (assetNamespace === 'slip44' && !isValidSlip44(String(assetReference))) {
|
|
53
|
-
throw new Error(`Invalid reference for namespace slip44`);
|
|
54
|
-
}
|
|
55
|
-
const assetReferenceNormalized = (() => {
|
|
56
|
-
const assertContractAddress = (address) => {
|
|
57
|
-
if (!address.startsWith('0x'))
|
|
58
|
-
throw new Error(`toAssetId: assetReference must start with 0x: ${assetReference}`);
|
|
59
|
-
if (address.length !== 42)
|
|
60
|
-
throw new Error(`toAssetId: assetReference length must be 42, length: ${assetReference.length}, ${assetReference}`);
|
|
61
|
-
};
|
|
62
|
-
switch (assetNamespace) {
|
|
63
|
-
case 'erc20':
|
|
64
|
-
assertContractAddress(assetReference);
|
|
65
|
-
return assetReference.toLowerCase();
|
|
66
|
-
case 'erc721':
|
|
67
|
-
case 'erc1155':
|
|
68
|
-
// caip-22 (https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-22.md)
|
|
69
|
-
// caip-29 (https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-29.md)
|
|
70
|
-
const [address] = assetReference.split('/');
|
|
71
|
-
assertContractAddress(address);
|
|
72
|
-
return assetReference.toLowerCase();
|
|
73
|
-
default:
|
|
74
|
-
return assetReference;
|
|
75
|
-
}
|
|
76
|
-
})();
|
|
77
|
-
return `${chainId}/${assetNamespace}:${assetReferenceNormalized}`;
|
|
78
|
-
};
|
|
79
|
-
exports.toAssetId = toAssetId;
|
|
80
|
-
// NOTE: perf critical - benchmark any changes
|
|
81
|
-
const fromAssetId = (assetId) => {
|
|
82
|
-
const slashIdx = assetId.indexOf('/');
|
|
83
|
-
const chainId = assetId.substring(0, slashIdx);
|
|
84
|
-
const assetParts = assetId.substring(slashIdx + 1);
|
|
85
|
-
const { chainNamespace, chainReference } = (0, chainId_1.fromChainId)(chainId);
|
|
86
|
-
const idx = assetParts.indexOf(':');
|
|
87
|
-
const assetNamespace = assetParts.substring(0, idx);
|
|
88
|
-
const assetReference = assetParts.substring(idx + 1);
|
|
89
|
-
if (!(0, typeGuards_1.isAssetIdParts)(chainNamespace, chainReference, assetNamespace))
|
|
90
|
-
throw new Error(`fromAssetId: invalid AssetId: ${assetId}`);
|
|
91
|
-
const assetReferenceNormalized = (() => {
|
|
92
|
-
switch (assetNamespace) {
|
|
93
|
-
case 'erc20':
|
|
94
|
-
case 'erc721':
|
|
95
|
-
case 'erc1155':
|
|
96
|
-
return assetReference.toLowerCase();
|
|
97
|
-
default:
|
|
98
|
-
return assetReference;
|
|
99
|
-
}
|
|
100
|
-
})();
|
|
101
|
-
return {
|
|
102
|
-
chainId,
|
|
103
|
-
chainNamespace: chainNamespace,
|
|
104
|
-
chainReference: chainReference,
|
|
105
|
-
assetNamespace: assetNamespace,
|
|
106
|
-
assetReference: assetReferenceNormalized,
|
|
107
|
-
};
|
|
108
|
-
};
|
|
109
|
-
exports.fromAssetId = fromAssetId;
|
|
110
|
-
// NOTE: perf critical - benchmark any changes
|
|
111
|
-
const isNft = (assetId) => {
|
|
112
|
-
const slashIdx = assetId.indexOf('/');
|
|
113
|
-
const assetParts = assetId.substring(slashIdx + 1);
|
|
114
|
-
const idx = assetParts.indexOf(':');
|
|
115
|
-
const assetNamespace = assetParts.substring(0, idx);
|
|
116
|
-
return ['erc721', 'erc1155'].includes(assetNamespace);
|
|
117
|
-
};
|
|
118
|
-
exports.isNft = isNft;
|
|
119
|
-
exports.toCAIP19 = exports.toAssetId;
|
|
120
|
-
exports.fromCAIP19 = exports.fromAssetId;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|