@shapeshiftoss/caip 8.16.0 → 8.16.2
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/dist/cjs/.tsbuildinfo +1 -0
- package/dist/cjs/accountId/accountId.js +44 -0
- package/dist/cjs/accountId/accountId.test.js +109 -0
- package/dist/{adapters → cjs/adapters}/banxa/index.d.ts +1 -0
- package/dist/cjs/adapters/banxa/index.js +153 -0
- package/dist/cjs/adapters/coinbase/generate.js +9 -0
- package/dist/cjs/adapters/coinbase/generated/index.js +8 -0
- package/dist/cjs/adapters/coinbase/index.js +16 -0
- package/dist/cjs/adapters/coinbase/utils.js +55 -0
- package/dist/cjs/adapters/coincap/generate.js +10 -0
- package/dist/cjs/adapters/coincap/generated/eip155_1/adapter.json +1 -0
- package/dist/cjs/adapters/coincap/generated/eip155_10/adapter.json +1 -0
- package/dist/cjs/adapters/coincap/generated/eip155_137/adapter.json +1 -0
- package/dist/cjs/adapters/coincap/generated/eip155_42161/adapter.json +1 -0
- package/dist/cjs/adapters/coincap/generated/eip155_43114/adapter.json +1 -0
- package/dist/cjs/adapters/coincap/generated/eip155_56/adapter.json +1 -0
- package/dist/cjs/adapters/coincap/generated/eip155_8453/adapter.json +1 -0
- package/dist/{adapters → cjs/adapters}/coincap/generated/index.d.ts +11 -4
- package/dist/cjs/adapters/coincap/generated/index.js +34 -0
- package/dist/cjs/adapters/coincap/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +1 -0
- package/dist/{adapters → cjs/adapters}/coincap/index.d.ts +1 -1
- package/dist/cjs/adapters/coincap/index.js +44 -0
- package/dist/cjs/adapters/coincap/index.test.js +90 -0
- package/dist/{adapters → cjs/adapters}/coincap/utils.d.ts +3 -1
- package/dist/cjs/adapters/coincap/utils.js +146 -0
- package/dist/cjs/adapters/coincap/utils.test.js +173 -0
- package/dist/cjs/adapters/coingecko/generate.js +10 -0
- package/dist/cjs/adapters/coingecko/generated/eip155_1/adapter.json +1 -0
- package/dist/cjs/adapters/coingecko/generated/eip155_10/adapter.json +1 -0
- package/dist/cjs/adapters/coingecko/generated/eip155_100/adapter.json +1 -0
- package/dist/cjs/adapters/coingecko/generated/eip155_137/adapter.json +1 -0
- package/dist/cjs/adapters/coingecko/generated/eip155_42161/adapter.json +1 -0
- package/dist/cjs/adapters/coingecko/generated/eip155_43114/adapter.json +1 -0
- package/dist/cjs/adapters/coingecko/generated/eip155_56/adapter.json +1 -0
- package/dist/cjs/adapters/coingecko/generated/eip155_8453/adapter.json +1 -0
- package/dist/cjs/adapters/coingecko/generated/index.js +40 -0
- package/dist/cjs/adapters/coingecko/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +1 -0
- package/dist/cjs/adapters/coingecko/index.js +163 -0
- package/dist/cjs/adapters/coingecko/index.test.js +276 -0
- package/dist/cjs/adapters/coingecko/utils.js +190 -0
- package/dist/cjs/adapters/coingecko/utils.test.js +193 -0
- package/dist/cjs/adapters/index.js +22 -0
- package/dist/cjs/adapters/mtpelerin/index.js +127 -0
- package/dist/{adapters → cjs/adapters}/onramper/index.d.ts +1 -2
- package/dist/cjs/adapters/onramper/index.js +39 -0
- package/dist/cjs/assetId/assetId.js +126 -0
- package/dist/cjs/assetId/assetId.test.js +324 -0
- package/dist/cjs/chainId/chainId.js +25 -0
- package/dist/cjs/chainId/chainId.test.js +90 -0
- package/dist/{constants.d.ts → cjs/constants.d.ts} +1 -1
- package/dist/cjs/constants.js +173 -0
- package/dist/cjs/index.js +36 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/typeGuards.js +56 -0
- package/dist/{utils.d.ts → cjs/utils.d.ts} +1 -1
- package/dist/cjs/utils.js +56 -0
- package/dist/cjs/utils.test.js +160 -0
- package/dist/esm/.tsbuildinfo +1 -0
- package/dist/esm/accountId/accountId.d.ts +29 -0
- package/dist/{accountId → esm/accountId}/accountId.js +3 -3
- package/dist/esm/accountId/accountId.test.d.ts +1 -0
- package/dist/{accountId → esm/accountId}/accountId.test.js +3 -3
- package/dist/esm/adapters/banxa/index.d.ts +15 -0
- package/dist/{adapters → esm/adapters}/banxa/index.js +36 -2
- package/dist/esm/adapters/coinbase/generate.d.ts +1 -0
- package/dist/{adapters → esm/adapters}/coinbase/generate.js +1 -1
- package/dist/esm/adapters/coinbase/generated/adapter.json +153 -0
- package/dist/esm/adapters/coinbase/generated/index.js +2 -0
- package/dist/esm/adapters/coinbase/index.d.ts +3 -0
- package/dist/{adapters → esm/adapters}/coinbase/index.js +1 -1
- package/dist/esm/adapters/coinbase/utils.d.ts +12 -0
- package/dist/esm/adapters/coincap/generate.d.ts +1 -0
- package/dist/{adapters → esm/adapters}/coincap/generate.js +2 -2
- package/dist/esm/adapters/coincap/generated/bip122_000000000000000000651ef99cb9fcbe/adapter.json +1 -0
- package/dist/esm/adapters/coincap/generated/bip122_000000000019d6689c085ae165831e93/adapter.json +1 -0
- package/dist/esm/adapters/coincap/generated/bip122_00000000001a91e3dace36e2be3bf030/adapter.json +1 -0
- package/dist/esm/adapters/coincap/generated/bip122_12a765e31ffd4059bada1e25190f6e98/adapter.json +1 -0
- package/dist/esm/adapters/coincap/generated/cosmos_cosmoshub-4/adapter.json +1 -0
- package/dist/esm/adapters/coincap/generated/cosmos_thorchain-1/adapter.json +1 -0
- package/dist/esm/adapters/coincap/generated/eip155_1/adapter.json +1 -0
- package/dist/esm/adapters/coincap/generated/eip155_10/adapter.json +1 -0
- package/dist/esm/adapters/coincap/generated/eip155_137/adapter.json +1 -0
- package/dist/esm/adapters/coincap/generated/eip155_42161/adapter.json +1 -0
- package/dist/esm/adapters/coincap/generated/eip155_43114/adapter.json +1 -0
- package/dist/esm/adapters/coincap/generated/eip155_56/adapter.json +1 -0
- package/dist/esm/adapters/coincap/generated/eip155_8453/adapter.json +1 -0
- package/dist/esm/adapters/coincap/generated/index.d.ts +15 -0
- package/dist/{adapters → esm/adapters}/coincap/generated/index.js +11 -4
- package/dist/esm/adapters/coincap/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +1 -0
- package/dist/esm/adapters/coincap/index.d.ts +4 -0
- package/dist/{adapters → esm/adapters}/coincap/index.js +4 -4
- package/dist/esm/adapters/coincap/index.test.d.ts +1 -0
- package/dist/{adapters → esm/adapters}/coincap/index.test.js +9 -13
- package/dist/esm/adapters/coincap/utils.d.ts +24 -0
- package/dist/esm/adapters/coincap/utils.js +135 -0
- package/dist/esm/adapters/coincap/utils.test.d.ts +4 -0
- package/dist/{adapters → esm/adapters}/coincap/utils.test.js +7 -2
- package/dist/esm/adapters/coingecko/generate.d.ts +1 -0
- package/dist/{adapters → esm/adapters}/coingecko/generate.js +2 -2
- package/dist/esm/adapters/coingecko/generated/bip122_000000000000000000651ef99cb9fcbe/adapter.json +1 -0
- package/dist/esm/adapters/coingecko/generated/bip122_000000000019d6689c085ae165831e93/adapter.json +1 -0
- package/dist/esm/adapters/coingecko/generated/bip122_00000000001a91e3dace36e2be3bf030/adapter.json +1 -0
- package/dist/esm/adapters/coingecko/generated/bip122_12a765e31ffd4059bada1e25190f6e98/adapter.json +1 -0
- package/dist/esm/adapters/coingecko/generated/cosmos_cosmoshub-4/adapter.json +1 -0
- package/dist/esm/adapters/coingecko/generated/cosmos_mayachain-mainnet-v1/adapter.json +1 -0
- package/dist/esm/adapters/coingecko/generated/cosmos_thorchain-1/adapter.json +1 -0
- package/dist/esm/adapters/coingecko/generated/eip155_1/adapter.json +1 -0
- package/dist/esm/adapters/coingecko/generated/eip155_10/adapter.json +1 -0
- package/dist/esm/adapters/coingecko/generated/eip155_100/adapter.json +1 -0
- package/dist/esm/adapters/coingecko/generated/eip155_137/adapter.json +1 -0
- package/dist/esm/adapters/coingecko/generated/eip155_42161/adapter.json +1 -0
- package/dist/esm/adapters/coingecko/generated/eip155_42170/adapter.json +1 -0
- package/dist/esm/adapters/coingecko/generated/eip155_43114/adapter.json +1 -0
- package/dist/esm/adapters/coingecko/generated/eip155_56/adapter.json +1 -0
- package/dist/esm/adapters/coingecko/generated/eip155_8453/adapter.json +1 -0
- package/dist/esm/adapters/coingecko/generated/index.js +18 -0
- package/dist/esm/adapters/coingecko/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +1 -0
- package/dist/esm/adapters/coingecko/index.d.ts +26 -0
- package/dist/{adapters → esm/adapters}/coingecko/index.js +5 -5
- package/dist/esm/adapters/coingecko/index.test.d.ts +1 -0
- package/dist/{adapters → esm/adapters}/coingecko/index.test.js +3 -3
- package/dist/esm/adapters/coingecko/utils.d.ts +11 -0
- package/dist/{adapters → esm/adapters}/coingecko/utils.js +4 -4
- package/dist/esm/adapters/coingecko/utils.test.d.ts +1 -0
- package/dist/{adapters → esm/adapters}/coingecko/utils.test.js +2 -2
- package/dist/esm/adapters/index.d.ts +6 -0
- package/dist/esm/adapters/index.js +6 -0
- package/dist/esm/adapters/mtpelerin/index.d.ts +10 -0
- package/dist/{adapters → esm/adapters}/mtpelerin/index.js +24 -39
- package/dist/esm/adapters/onramper/index.d.ts +6 -0
- package/dist/esm/adapters/onramper/index.js +31 -0
- package/dist/esm/assetId/assetId.d.ts +36 -0
- package/dist/{assetId → esm/assetId}/assetId.js +3 -3
- package/dist/esm/assetId/assetId.test.d.ts +1 -0
- package/dist/{assetId → esm/assetId}/assetId.test.js +3 -17
- package/dist/esm/chainId/chainId.d.ts +20 -0
- package/dist/{chainId → esm/chainId}/chainId.js +1 -1
- package/dist/esm/chainId/chainId.test.d.ts +1 -0
- package/dist/{chainId → esm/chainId}/chainId.test.js +3 -3
- package/dist/esm/constants.d.ts +121 -0
- package/dist/{constants.js → esm/constants.js} +2 -2
- package/dist/esm/index.d.ts +7 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/typeGuards.d.ts +16 -0
- package/dist/{typeGuards.js → esm/typeGuards.js} +3 -3
- package/dist/esm/utils.d.ts +33 -0
- package/dist/{utils.js → esm/utils.js} +13 -16
- package/dist/esm/utils.test.d.ts +1 -0
- package/dist/{utils.test.js → esm/utils.test.js} +17 -21
- package/package.json +19 -7
- package/CHANGELOG.md +0 -726
- package/dist/adapters/coincap/generated/eip155_1/adapter.json +0 -1
- package/dist/adapters/coincap/utils.js +0 -40
- package/dist/adapters/coingecko/generated/eip155_1/adapter.json +0 -1
- package/dist/adapters/coingecko/generated/eip155_10/adapter.json +0 -1
- package/dist/adapters/coingecko/generated/eip155_100/adapter.json +0 -1
- package/dist/adapters/coingecko/generated/eip155_137/adapter.json +0 -1
- package/dist/adapters/coingecko/generated/eip155_42161/adapter.json +0 -1
- package/dist/adapters/coingecko/generated/eip155_43114/adapter.json +0 -1
- package/dist/adapters/coingecko/generated/eip155_56/adapter.json +0 -1
- package/dist/adapters/coingecko/generated/eip155_8453/adapter.json +0 -1
- package/dist/adapters/coingecko/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +0 -1
- package/dist/adapters/index.js +0 -6
- package/dist/adapters/onramper/index.js +0 -1496
- package/dist/index.js +0 -7
- /package/dist/{accountId → cjs/accountId}/accountId.d.ts +0 -0
- /package/dist/{accountId → cjs/accountId}/accountId.test.d.ts +0 -0
- /package/dist/{adapters → cjs/adapters}/coinbase/generate.d.ts +0 -0
- /package/dist/{adapters → cjs/adapters}/coinbase/generated/adapter.json +0 -0
- /package/dist/{adapters → cjs/adapters}/coinbase/generated/index.d.ts +0 -0
- /package/dist/{adapters → cjs/adapters}/coinbase/index.d.ts +0 -0
- /package/dist/{adapters → cjs/adapters}/coinbase/utils.d.ts +0 -0
- /package/dist/{adapters → cjs/adapters}/coincap/generate.d.ts +0 -0
- /package/dist/{adapters → cjs/adapters}/coincap/generated/bip122_000000000000000000651ef99cb9fcbe/adapter.json +0 -0
- /package/dist/{adapters → cjs/adapters}/coincap/generated/bip122_000000000019d6689c085ae165831e93/adapter.json +0 -0
- /package/dist/{adapters → cjs/adapters}/coincap/generated/bip122_00000000001a91e3dace36e2be3bf030/adapter.json +0 -0
- /package/dist/{adapters → cjs/adapters}/coincap/generated/bip122_12a765e31ffd4059bada1e25190f6e98/adapter.json +0 -0
- /package/dist/{adapters → cjs/adapters}/coincap/generated/cosmos_cosmoshub-4/adapter.json +0 -0
- /package/dist/{adapters → cjs/adapters}/coincap/generated/cosmos_thorchain-1/adapter.json +0 -0
- /package/dist/{adapters → cjs/adapters}/coincap/index.test.d.ts +0 -0
- /package/dist/{adapters → cjs/adapters}/coincap/utils.test.d.ts +0 -0
- /package/dist/{adapters → cjs/adapters}/coingecko/generate.d.ts +0 -0
- /package/dist/{adapters → cjs/adapters}/coingecko/generated/bip122_000000000000000000651ef99cb9fcbe/adapter.json +0 -0
- /package/dist/{adapters → cjs/adapters}/coingecko/generated/bip122_000000000019d6689c085ae165831e93/adapter.json +0 -0
- /package/dist/{adapters → cjs/adapters}/coingecko/generated/bip122_00000000001a91e3dace36e2be3bf030/adapter.json +0 -0
- /package/dist/{adapters → cjs/adapters}/coingecko/generated/bip122_12a765e31ffd4059bada1e25190f6e98/adapter.json +0 -0
- /package/dist/{adapters → cjs/adapters}/coingecko/generated/cosmos_cosmoshub-4/adapter.json +0 -0
- /package/dist/{adapters → cjs/adapters}/coingecko/generated/cosmos_mayachain-mainnet-v1/adapter.json +0 -0
- /package/dist/{adapters → cjs/adapters}/coingecko/generated/cosmos_thorchain-1/adapter.json +0 -0
- /package/dist/{adapters → cjs/adapters}/coingecko/generated/eip155_42170/adapter.json +0 -0
- /package/dist/{adapters → cjs/adapters}/coingecko/generated/index.d.ts +0 -0
- /package/dist/{adapters → cjs/adapters}/coingecko/index.d.ts +0 -0
- /package/dist/{adapters → cjs/adapters}/coingecko/index.test.d.ts +0 -0
- /package/dist/{adapters → cjs/adapters}/coingecko/utils.d.ts +0 -0
- /package/dist/{adapters → cjs/adapters}/coingecko/utils.test.d.ts +0 -0
- /package/dist/{adapters → cjs/adapters}/index.d.ts +0 -0
- /package/dist/{adapters → cjs/adapters}/mtpelerin/index.d.ts +0 -0
- /package/dist/{assetId → cjs/assetId}/assetId.d.ts +0 -0
- /package/dist/{assetId → cjs/assetId}/assetId.test.d.ts +0 -0
- /package/dist/{chainId → cjs/chainId}/chainId.d.ts +0 -0
- /package/dist/{chainId → cjs/chainId}/chainId.test.d.ts +0 -0
- /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
- /package/dist/{typeGuards.d.ts → cjs/typeGuards.d.ts} +0 -0
- /package/dist/{utils.test.d.ts → cjs/utils.test.d.ts} +0 -0
- /package/dist/{adapters/coinbase/generated/index.js → esm/adapters/coinbase/generated/index.d.ts} +0 -0
- /package/dist/{adapters → esm/adapters}/coinbase/utils.js +0 -0
- /package/dist/{adapters/coingecko/generated/index.js → esm/adapters/coingecko/generated/index.d.ts} +0 -0
|
@@ -0,0 +1,26 @@
|
|
|
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,9 +1,9 @@
|
|
|
1
1
|
import invertBy from 'lodash/invertBy';
|
|
2
|
-
import { fromAssetId } from '../../assetId/assetId';
|
|
3
|
-
import { fromChainId, toChainId } from '../../chainId/chainId';
|
|
4
|
-
import { arbitrumChainId, arbitrumNovaChainId, avalancheChainId, baseChainId, bscChainId, CHAIN_NAMESPACE, CHAIN_REFERENCE, cosmosChainId, ethChainId, gnosisChainId, mayachainChainId, optimismChainId, polygonChainId, solanaChainId, thorchainChainId, } from '../../constants';
|
|
5
|
-
import * as adapters from './generated';
|
|
6
|
-
export { fetchData as fetchCoingeckoData, parseData as parseCoingeckoData } from './utils';
|
|
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
7
|
// https://api.coingecko.com/api/v3/asset_platforms
|
|
8
8
|
export var CoingeckoAssetPlatform;
|
|
9
9
|
(function (CoingeckoAssetPlatform) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { toAssetId } from '../../assetId/assetId';
|
|
3
|
-
import { ASSET_REFERENCE, btcChainId, CHAIN_NAMESPACE, CHAIN_REFERENCE, ethChainId, foxOnArbitrumOneAssetId, } from '../../constants';
|
|
4
|
-
import { assetIdToCoingecko, chainIdToCoingeckoAssetPlatform, CoingeckoAssetPlatform, coingeckoToAssetIds, } from '.';
|
|
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
5
|
describe('adapters:coingecko', () => {
|
|
6
6
|
describe('coingeckoToAssetIds', () => {
|
|
7
7
|
it('can get AssetIds for bitcoin', () => {
|
|
@@ -0,0 +1,11 @@
|
|
|
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,9 +1,9 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import fs from 'fs';
|
|
3
|
-
import { toAssetId } from '../../assetId/assetId';
|
|
4
|
-
import { arbitrumAssetId, arbitrumChainId, arbitrumNovaAssetId, arbitrumNovaChainId, avalancheAssetId, avalancheChainId, baseAssetId, baseChainId, bchChainId, bscAssetId, bscChainId, btcChainId, CHAIN_NAMESPACE, CHAIN_REFERENCE, cosmosChainId, dogeChainId, ethAssetId, ethChainId, gnosisAssetId, gnosisChainId, ltcChainId, mayachainChainId, optimismAssetId, optimismChainId, polygonAssetId, polygonChainId, solanaChainId, solAssetId, thorchainChainId, } from '../../constants';
|
|
5
|
-
import { bitcoinAssetMap, bitcoinCashAssetMap, cosmosAssetMap, dogecoinAssetMap, litecoinAssetMap, mayachainAssetMap, thorchainAssetMap, } from '../../utils';
|
|
6
|
-
import { CoingeckoAssetPlatform } from '.';
|
|
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
7
|
export const fetchData = async (URL) => (await axios.get(URL)).data;
|
|
8
8
|
export const parseData = (coins) => {
|
|
9
9
|
const assetMap = coins.reduce((prev, { id, platforms }) => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import realFs from 'fs';
|
|
2
2
|
import { describe, expect, it, vi } from 'vitest';
|
|
3
|
-
import { bitcoinAssetMap, cosmosAssetMap } from '../../utils';
|
|
4
|
-
import { parseData, writeFiles } from './utils';
|
|
3
|
+
import { bitcoinAssetMap, cosmosAssetMap } from '../../utils.js';
|
|
4
|
+
import { parseData, writeFiles } from './utils.js';
|
|
5
5
|
const makeEthMockCoingeckoResponse = () => ({
|
|
6
6
|
id: 'ethereum',
|
|
7
7
|
symbol: 'eth',
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { AssetId } from '../../assetId/assetId.js';
|
|
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,11 +1,11 @@
|
|
|
1
|
-
import { fromAssetId } from '../../assetId/assetId';
|
|
2
|
-
import { arbitrumAssetId, arbitrumChainId, avalancheAssetId, avalancheChainId, baseAssetId, baseChainId, bscAssetId, bscChainId, btcAssetId, btcChainId, ethAssetId, ethChainId, gnosisAssetId, gnosisChainId, optimismAssetId, optimismChainId, polygonAssetId, polygonChainId, } from '../../constants';
|
|
1
|
+
import { fromAssetId } from '../../assetId/assetId.js';
|
|
2
|
+
import { arbitrumAssetId, arbitrumChainId, avalancheAssetId, avalancheChainId, baseAssetId, baseChainId, bscAssetId, bscChainId, btcAssetId, btcChainId, ethAssetId, ethChainId, gnosisAssetId, gnosisChainId, optimismAssetId, optimismChainId, polygonAssetId, polygonChainId, } from '../../constants.js';
|
|
3
3
|
/**
|
|
4
4
|
* provided from https://api.mtPelerin.com/currencies/tokens
|
|
5
5
|
*/
|
|
6
6
|
const MtPelerinSymbolToAssetIds = {
|
|
7
7
|
ETH: [ethAssetId, optimismAssetId, arbitrumAssetId, baseAssetId],
|
|
8
|
-
|
|
8
|
+
POL: [polygonAssetId],
|
|
9
9
|
XDAI: [gnosisAssetId],
|
|
10
10
|
BTC: [btcAssetId],
|
|
11
11
|
BNB: [bscAssetId],
|
|
@@ -34,22 +34,6 @@ const MtPelerinSymbolToAssetIds = {
|
|
|
34
34
|
'eip155:42161/erc20:0xff970a61a04b1ca14834a43f5de4533ebddb5cc8',
|
|
35
35
|
'eip155:43114/erc20:0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664',
|
|
36
36
|
],
|
|
37
|
-
jEUR: [
|
|
38
|
-
'eip155:1/erc20:0x0f17bc9a994b87b5225cfb6a2cd4d667adb4f20b',
|
|
39
|
-
'eip155:56/bep20:0x23b8683ff98f9e4781552dfe6f12aa32814924e8',
|
|
40
|
-
'eip155:100/erc20:0x9fb1d52596c44603198fb0aee434fac3a679f702',
|
|
41
|
-
'eip155:137/erc20:0x4e3decbb3645551b8a19f0ea1678079fcb33fb4c',
|
|
42
|
-
],
|
|
43
|
-
jCHF: [
|
|
44
|
-
'eip155:1/erc20:0x53dfea0a8cc2a2a2e425e1c174bc162999723ea0',
|
|
45
|
-
'eip155:56/bep20:0x7c869b5a294b1314e985283d01c702b62224a05f',
|
|
46
|
-
'eip155:100/erc20:0x2d5563da42b06fbbf9c67b7dc073cf6a7842239e',
|
|
47
|
-
'eip155:137/erc20:0xbd1463f02f61676d53fd183c2b19282bff93d099',
|
|
48
|
-
],
|
|
49
|
-
jGBP: [
|
|
50
|
-
'eip155:1/erc20:0x7409856cae628f5d578b285b45669b36e7005283',
|
|
51
|
-
'eip155:137/erc20:0x767058f11800fba6a682e73a6e79ec5eb74fac8c',
|
|
52
|
-
],
|
|
53
37
|
WBTC: [
|
|
54
38
|
'eip155:1/erc20:0x2260fac5e5542a773aa44fbcfedf7c193bc2c599',
|
|
55
39
|
'eip155:10/erc20:0x68f180fcce6836688e9084f035309e29bf0a2095',
|
|
@@ -58,46 +42,47 @@ const MtPelerinSymbolToAssetIds = {
|
|
|
58
42
|
'eip155:42161/erc20:0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f',
|
|
59
43
|
],
|
|
60
44
|
AVAX: [avalancheAssetId],
|
|
45
|
+
'BTC.b': ['eip155:43114/erc20:0x152b9d0fdc40c096757f570a51e494bd4b943e50'],
|
|
46
|
+
cbBTC: [
|
|
47
|
+
'eip155:1/erc20:0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf',
|
|
48
|
+
'eip155:8453/erc20:0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf',
|
|
49
|
+
],
|
|
50
|
+
EURA: [
|
|
51
|
+
'eip155:42161/erc20:0xfa5ed56a203466cbbc2430a43c66b9d8723528e7',
|
|
52
|
+
'eip155:137/erc20:0xe0b52e49357fd4daf2c15e02058dce6bc0057db4',
|
|
53
|
+
],
|
|
54
|
+
EURC: [
|
|
55
|
+
'eip155:1/erc20:0x1abaea1f7c830bd89acc67ec4af516284b1bc33c',
|
|
56
|
+
'eip155:8453/erc20:0x60a3e35cc302bfa44cb288bc5a4f316fdb1adb42',
|
|
57
|
+
'eip155:43114/erc20:0xc891eb4cbdeff6e073e859e987815ed1505c2acd',
|
|
58
|
+
],
|
|
61
59
|
EURS: [
|
|
62
60
|
'eip155:1/erc20:0xdb25f211ab05b1c97d595516f45794528a807ad8',
|
|
63
61
|
'eip155:137/erc20:0xe111178a87a3bff0c8d18decba5798827539ae99',
|
|
64
62
|
],
|
|
65
|
-
EURT: ['eip155:1/erc20:0xc581b735a1688071a1746c968e0798d642ede491'],
|
|
66
|
-
agEUR: [
|
|
67
|
-
'eip155:1/erc20:0x1a7e4e63778b4f12a199c062f3efdd288afcbce8',
|
|
68
|
-
'eip155:137/erc20:0xe0b52e49357fd4daf2c15e02058dce6bc0057db4',
|
|
69
|
-
],
|
|
70
63
|
FRAX: [
|
|
71
64
|
'eip155:1/erc20:0x853d955acef822db058eb8505911ed77f175b99e',
|
|
72
65
|
'eip155:137/erc20:0x45c32fa6df82ead1e2ef74d17b76547eddfaff89',
|
|
73
66
|
'eip155:43114/erc20:0xd24c2ad096400b6fbcd2ad8b24e7acbc21a1da64',
|
|
74
67
|
],
|
|
75
|
-
|
|
76
|
-
EUROC: ['eip155:1/erc20:0x1abaea1f7c830bd89acc67ec4af516284b1bc33c'],
|
|
68
|
+
GHO: ['eip155:1/erc20:0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f'],
|
|
77
69
|
LUSD: [
|
|
78
70
|
'eip155:1/erc20:0x5f98805a4e8be255a32880fdec7f6728c6568ba0',
|
|
79
71
|
'eip155:10/erc20:0xc40f949f8a4e094d1b49a23ea9241d289b7b2819',
|
|
80
72
|
],
|
|
81
|
-
|
|
73
|
+
PAXG: ['eip155:1/erc20:0x45804880de22913dafe09f4980848ece6ecbaf78'],
|
|
82
74
|
WETH: [
|
|
83
75
|
'eip155:56/bep20:0x2170ed0880ac9a755fd29b2688956bd959f933f8',
|
|
84
76
|
'eip155:100/erc20:0x6a023ccd1ff6f2045c3309768ead9e68f978f6e1',
|
|
85
77
|
'eip155:137/erc20:0x7ceb23fd6bc0add59e62ac25578270cff1b9f619',
|
|
86
78
|
],
|
|
87
79
|
BTCB: ['eip155:56/bep20:0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c'],
|
|
88
|
-
BUSD: ['eip155:56/bep20:0xe9e7cea3dedca5984780bafc599bd69add087d56'],
|
|
89
|
-
MAI: [
|
|
90
|
-
'eip155:137/erc20:0xa3fa99a148fa48d14ed51d610c367c61876997f1',
|
|
91
|
-
'eip155:43114/erc20:0x5c49b268c9841aff1cc3b0a418ff5c3442ee3f3b',
|
|
92
|
-
],
|
|
93
|
-
EURC: ['eip155:43114/erc20:0xc891eb4cbdeff6e073e859e987815ed1505c2acd'],
|
|
94
|
-
EUROe: [
|
|
95
|
-
'eip155:1/erc20:0x820802fa8a99901f52e39acd21177b0be6ee2974',
|
|
96
|
-
'eip155:137/erc20:0x820802fa8a99901f52e39acd21177b0be6ee2974',
|
|
97
|
-
'eip155:42161/erc20:0xcf985aba4647a432e60efceeb8054bbd64244305',
|
|
98
|
-
'eip155:43114/erc20:0x820802fa8a99901f52e39acd21177b0be6ee2974',
|
|
99
|
-
],
|
|
100
80
|
crvUSD: ['eip155:1/erc20:0xf939e0a03fb07f59a73314e73794be0e57ac1b4e'],
|
|
81
|
+
XAUt: ['eip155:1/erc20:0x68749665ff8d2d112fa859aa293f07a622782f38'],
|
|
82
|
+
ZCHF: [
|
|
83
|
+
'eip155:1/erc20:0xb58e61c3098d85632df34eecfb899a1ed80921cb',
|
|
84
|
+
'eip155:100/erc20:0xd4dd9e2f021bb459d5a5f6c24c12fe09c5d45553',
|
|
85
|
+
],
|
|
101
86
|
};
|
|
102
87
|
export const mtPelerinSymbolToAssetIds = (id) => MtPelerinSymbolToAssetIds[id];
|
|
103
88
|
export const assetIdToMtPelerinSymbol = (assetId) => {
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AssetId } from '../../assetId/assetId.js';
|
|
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 {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import entries from 'lodash/entries';
|
|
2
|
+
import { arbitrumAssetId, avalancheAssetId, baseAssetId, bchAssetId, bscAssetId, btcAssetId, cosmosAssetId, dogeAssetId, ethAssetId, gnosisAssetId, ltcAssetId, optimismAssetId, polygonAssetId, solAssetId, thorchainAssetId, } from '../../constants.js';
|
|
3
|
+
// Native assets only - tokens are fetched dynamically
|
|
4
|
+
export const NativeAssetIdToOnRamperIdMap = {
|
|
5
|
+
[bscAssetId]: ['bnb_bsc'],
|
|
6
|
+
[dogeAssetId]: ['doge_dogecoin'],
|
|
7
|
+
[ethAssetId]: ['eth'],
|
|
8
|
+
[arbitrumAssetId]: ['eth_arbitrum'],
|
|
9
|
+
[optimismAssetId]: ['eth_optimism'],
|
|
10
|
+
[baseAssetId]: ['eth_base'],
|
|
11
|
+
[ltcAssetId]: ['ltc_litecoin'],
|
|
12
|
+
[polygonAssetId]: ['matic_polygon'],
|
|
13
|
+
[thorchainAssetId]: ['rune_thorchain'],
|
|
14
|
+
[avalancheAssetId]: ['avax_avaxc'],
|
|
15
|
+
[btcAssetId]: ['btc'],
|
|
16
|
+
[bchAssetId]: ['bch_bitcoincash'],
|
|
17
|
+
[cosmosAssetId]: ['atom_cosmos'],
|
|
18
|
+
[gnosisAssetId]: ['xdai_gnosis'],
|
|
19
|
+
[solAssetId]: ['sol'],
|
|
20
|
+
};
|
|
21
|
+
// explodes and inverts the assetId => tokenId[] map by creating a 1to1 token => assetId mapping
|
|
22
|
+
const invertMap = () => {
|
|
23
|
+
const invertedMap = {};
|
|
24
|
+
entries(NativeAssetIdToOnRamperIdMap).flatMap(([assetId, idList]) => idList.forEach(id => {
|
|
25
|
+
invertedMap[id] = assetId;
|
|
26
|
+
}));
|
|
27
|
+
return invertedMap;
|
|
28
|
+
};
|
|
29
|
+
const OnRamperIdToAssetIdMap = invertMap();
|
|
30
|
+
export const onRamperTokenIdToAssetId = (tokenId) => OnRamperIdToAssetIdMap[tokenId];
|
|
31
|
+
export const assetIdToOnRamperTokenList = (assetId) => NativeAssetIdToOnRamperIdMap[assetId];
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ChainId, ChainNamespace, ChainReference } from '../chainId/chainId.js';
|
|
2
|
+
import type { ASSET_NAMESPACE, ASSET_REFERENCE } from '../constants.js';
|
|
3
|
+
import type { Nominal } from '../utils.js';
|
|
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,7 +1,7 @@
|
|
|
1
1
|
// https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-19.md
|
|
2
|
-
import { fromChainId, toChainId } from '../chainId/chainId';
|
|
3
|
-
import { VALID_ASSET_NAMESPACE } from '../constants';
|
|
4
|
-
import { assertIsAssetNamespace, assertIsChainNamespace, assertIsChainReference, assertValidChainPartsPair, isAssetIdParts, isAssetNamespace, } from '../typeGuards';
|
|
2
|
+
import { fromChainId, toChainId } from '../chainId/chainId.js';
|
|
3
|
+
import { VALID_ASSET_NAMESPACE } from '../constants.js';
|
|
4
|
+
import { assertIsAssetNamespace, assertIsChainNamespace, assertIsChainReference, assertValidChainPartsPair, isAssetIdParts, isAssetNamespace, } from '../typeGuards.js';
|
|
5
5
|
/**
|
|
6
6
|
* validate that a value is a string slip44 value
|
|
7
7
|
* @see https://github.com/satoshilabs/slips/blob/master/slip-0044.md
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { omit } from 'lodash';
|
|
2
2
|
import { describe, expect, it } from 'vitest';
|
|
3
|
-
import { toChainId } from '../chainId/chainId';
|
|
4
|
-
import { ASSET_REFERENCE, CHAIN_NAMESPACE, CHAIN_REFERENCE } from '../constants';
|
|
5
|
-
import { fromAssetId, fromCAIP19, toAssetId, toCAIP19 } from './assetId';
|
|
3
|
+
import { toChainId } from '../chainId/chainId.js';
|
|
4
|
+
import { ASSET_REFERENCE, CHAIN_NAMESPACE, CHAIN_REFERENCE } from '../constants.js';
|
|
5
|
+
import { fromAssetId, fromCAIP19, toAssetId, toCAIP19 } from './assetId.js';
|
|
6
6
|
describe('assetId', () => {
|
|
7
7
|
it('should have matching CAIP19 aliases', () => {
|
|
8
8
|
expect(toAssetId).toEqual(toCAIP19);
|
|
@@ -76,20 +76,6 @@ describe('assetId', () => {
|
|
|
76
76
|
expect(toAssetId(omit(assetIdArgSuperset, 'chainId'))).toEqual(expected);
|
|
77
77
|
expect(toAssetId(omit(assetIdArgSuperset, ['chainNamespace', 'chainReference']))).toEqual(expected);
|
|
78
78
|
});
|
|
79
|
-
it('can make an IBC AssetId on CosmosHub', () => {
|
|
80
|
-
const chainNamespace = CHAIN_NAMESPACE.CosmosSdk;
|
|
81
|
-
const chainReference = CHAIN_REFERENCE.CosmosHubMainnet;
|
|
82
|
-
const assetIdArgSuperset = {
|
|
83
|
-
chainNamespace,
|
|
84
|
-
chainReference,
|
|
85
|
-
assetNamespace: 'ibc',
|
|
86
|
-
assetReference: '14F9BC3E44B8A9C1BE1FB08980FAB87034C9905EF17CF2F5008FC085218811CC',
|
|
87
|
-
chainId: toChainId({ chainNamespace, chainReference }),
|
|
88
|
-
};
|
|
89
|
-
const expected = 'cosmos:cosmoshub-4/ibc:14F9BC3E44B8A9C1BE1FB08980FAB87034C9905EF17CF2F5008FC085218811CC';
|
|
90
|
-
expect(toAssetId(omit(assetIdArgSuperset, 'chainId'))).toEqual(expected);
|
|
91
|
-
expect(toAssetId(omit(assetIdArgSuperset, ['chainNamespace', 'chainReference']))).toEqual(expected);
|
|
92
|
-
});
|
|
93
79
|
it('throws with invalid Cosmos network', () => {
|
|
94
80
|
const chainNamespace = CHAIN_NAMESPACE.CosmosSdk;
|
|
95
81
|
const chainReference = CHAIN_REFERENCE.BitcoinMainnet;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { CHAIN_NAMESPACE, CHAIN_REFERENCE } from '../constants.js';
|
|
2
|
+
import type { Nominal } from '../utils.js';
|
|
3
|
+
export type ChainId = Nominal<string, 'ChainId'>;
|
|
4
|
+
export type ChainNamespace = (typeof CHAIN_NAMESPACE)[keyof typeof CHAIN_NAMESPACE];
|
|
5
|
+
export type ChainReference = (typeof CHAIN_REFERENCE)[keyof typeof CHAIN_REFERENCE];
|
|
6
|
+
type ToChainIdArgs = {
|
|
7
|
+
chainNamespace: ChainNamespace;
|
|
8
|
+
chainReference: ChainReference;
|
|
9
|
+
};
|
|
10
|
+
export declare const toChainId: (args: ToChainIdArgs) => ChainId;
|
|
11
|
+
export declare const fromChainId: (chainId: ChainId) => {
|
|
12
|
+
chainNamespace: ChainNamespace;
|
|
13
|
+
chainReference: ChainReference;
|
|
14
|
+
};
|
|
15
|
+
export declare const toCAIP2: (args: ToChainIdArgs) => ChainId;
|
|
16
|
+
export declare const fromCAIP2: (chainId: ChainId) => {
|
|
17
|
+
chainNamespace: ChainNamespace;
|
|
18
|
+
chainReference: ChainReference;
|
|
19
|
+
};
|
|
20
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-2.md
|
|
2
|
-
import { assertIsChainId } from '../typeGuards';
|
|
2
|
+
import { assertIsChainId } from '../typeGuards.js';
|
|
3
3
|
export const toChainId = (args) => {
|
|
4
4
|
const { chainNamespace, chainReference } = args;
|
|
5
5
|
const maybeChainId = `${chainNamespace}:${chainReference}`;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { CHAIN_NAMESPACE, CHAIN_REFERENCE } from '../constants';
|
|
3
|
-
import { assertIsChainId, isChainId } from '../typeGuards';
|
|
4
|
-
import { fromCAIP2, fromChainId, toCAIP2, toChainId } from './chainId';
|
|
2
|
+
import { CHAIN_NAMESPACE, CHAIN_REFERENCE } from '../constants.js';
|
|
3
|
+
import { assertIsChainId, isChainId } from '../typeGuards.js';
|
|
4
|
+
import { fromCAIP2, fromChainId, toCAIP2, toChainId } from './chainId.js';
|
|
5
5
|
describe('chainId', () => {
|
|
6
6
|
it('should have matching CAIP2 aliases', () => {
|
|
7
7
|
expect(toChainId).toEqual(toCAIP2);
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import type { AssetId, AssetNamespace } from './assetId/assetId.js';
|
|
2
|
+
import type { ChainId, ChainNamespace, ChainReference } from './chainId/chainId.js';
|
|
3
|
+
export declare const btcAssetId: AssetId;
|
|
4
|
+
export declare const bchAssetId: AssetId;
|
|
5
|
+
export declare const dogeAssetId: AssetId;
|
|
6
|
+
export declare const ltcAssetId: AssetId;
|
|
7
|
+
export declare const ethAssetId: AssetId;
|
|
8
|
+
export declare const avalancheAssetId: AssetId;
|
|
9
|
+
export declare const optimismAssetId: AssetId;
|
|
10
|
+
export declare const bscAssetId: AssetId;
|
|
11
|
+
export declare const polygonAssetId: AssetId;
|
|
12
|
+
export declare const gnosisAssetId: AssetId;
|
|
13
|
+
export declare const arbitrumAssetId: AssetId;
|
|
14
|
+
export declare const arbitrumNovaAssetId: AssetId;
|
|
15
|
+
export declare const baseAssetId: AssetId;
|
|
16
|
+
export declare const solAssetId: AssetId;
|
|
17
|
+
export declare const wrappedSolAssetId: AssetId;
|
|
18
|
+
export declare const uniV2EthFoxArbitrumAssetId: AssetId;
|
|
19
|
+
export declare const foxatarAssetId: AssetId;
|
|
20
|
+
export declare const foxyAssetId: AssetId;
|
|
21
|
+
export declare const foxOnGnosisAssetId: AssetId;
|
|
22
|
+
export declare const foxOnArbitrumOneAssetId: AssetId;
|
|
23
|
+
export declare const foxAssetId: AssetId;
|
|
24
|
+
export declare const foxOnOptimismAssetId: AssetId;
|
|
25
|
+
export declare const foxOnPolygonAssetId: AssetId;
|
|
26
|
+
export declare const usdtAssetId: AssetId;
|
|
27
|
+
export declare const usdcAssetId: AssetId;
|
|
28
|
+
export declare const usdcOnArbitrumOneAssetId: AssetId;
|
|
29
|
+
export declare const usdcOnSolanaAssetId: AssetId;
|
|
30
|
+
export declare const flipAssetId: AssetId;
|
|
31
|
+
export declare const foxWifHatAssetId: AssetId;
|
|
32
|
+
export declare const cosmosAssetId: AssetId;
|
|
33
|
+
export declare const thorchainAssetId: AssetId;
|
|
34
|
+
export declare const tcyAssetId: AssetId;
|
|
35
|
+
export declare const rujiAssetId: AssetId;
|
|
36
|
+
export declare const mayachainAssetId: AssetId;
|
|
37
|
+
export declare const binanceAssetId: AssetId;
|
|
38
|
+
export declare const btcChainId: ChainId;
|
|
39
|
+
export declare const bchChainId: ChainId;
|
|
40
|
+
export declare const dogeChainId: ChainId;
|
|
41
|
+
export declare const ltcChainId: ChainId;
|
|
42
|
+
export declare const ethChainId: ChainId;
|
|
43
|
+
export declare const avalancheChainId: ChainId;
|
|
44
|
+
export declare const optimismChainId: ChainId;
|
|
45
|
+
export declare const bscChainId: ChainId;
|
|
46
|
+
export declare const polygonChainId: ChainId;
|
|
47
|
+
export declare const gnosisChainId: ChainId;
|
|
48
|
+
export declare const arbitrumChainId: ChainId;
|
|
49
|
+
export declare const arbitrumNovaChainId: ChainId;
|
|
50
|
+
export declare const baseChainId: ChainId;
|
|
51
|
+
export declare const cosmosChainId: ChainId;
|
|
52
|
+
export declare const thorchainChainId: ChainId;
|
|
53
|
+
export declare const mayachainChainId: ChainId;
|
|
54
|
+
export declare const binanceChainId: ChainId;
|
|
55
|
+
export declare const solanaChainId: ChainId;
|
|
56
|
+
export declare const CHAIN_NAMESPACE: {
|
|
57
|
+
readonly Evm: "eip155";
|
|
58
|
+
readonly Utxo: "bip122";
|
|
59
|
+
readonly CosmosSdk: "cosmos";
|
|
60
|
+
readonly Solana: "solana";
|
|
61
|
+
};
|
|
62
|
+
type ValidChainMap = {
|
|
63
|
+
[k in ChainNamespace]: ChainReference[];
|
|
64
|
+
};
|
|
65
|
+
export declare const CHAIN_REFERENCE: {
|
|
66
|
+
readonly EthereumMainnet: "1";
|
|
67
|
+
readonly BitcoinMainnet: "000000000019d6689c085ae165831e93";
|
|
68
|
+
readonly BitcoinCashMainnet: "000000000000000000651ef99cb9fcbe";
|
|
69
|
+
readonly DogecoinMainnet: "00000000001a91e3dace36e2be3bf030";
|
|
70
|
+
readonly LitecoinMainnet: "12a765e31ffd4059bada1e25190f6e98";
|
|
71
|
+
readonly CosmosHubMainnet: "cosmoshub-4";
|
|
72
|
+
readonly ThorchainMainnet: "thorchain-1";
|
|
73
|
+
readonly MayachainMainnet: "mayachain-mainnet-v1";
|
|
74
|
+
readonly BinanceMainnet: "binance-chain-tigris";
|
|
75
|
+
readonly AvalancheCChain: "43114";
|
|
76
|
+
readonly OptimismMainnet: "10";
|
|
77
|
+
readonly BnbSmartChainMainnet: "56";
|
|
78
|
+
readonly PolygonMainnet: "137";
|
|
79
|
+
readonly GnosisMainnet: "100";
|
|
80
|
+
readonly ArbitrumMainnet: "42161";
|
|
81
|
+
readonly ArbitrumNovaMainnet: "42170";
|
|
82
|
+
readonly BaseMainnet: "8453";
|
|
83
|
+
readonly SolanaMainnet: "5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp";
|
|
84
|
+
};
|
|
85
|
+
export declare const ASSET_NAMESPACE: {
|
|
86
|
+
readonly erc20: "erc20";
|
|
87
|
+
readonly erc721: "erc721";
|
|
88
|
+
readonly erc1155: "erc1155";
|
|
89
|
+
readonly bep20: "bep20";
|
|
90
|
+
readonly bep721: "bep721";
|
|
91
|
+
readonly bep1155: "bep1155";
|
|
92
|
+
readonly slip44: "slip44";
|
|
93
|
+
readonly splToken: "token";
|
|
94
|
+
};
|
|
95
|
+
export declare const ASSET_REFERENCE: {
|
|
96
|
+
readonly Bitcoin: "0";
|
|
97
|
+
readonly BitcoinCash: "145";
|
|
98
|
+
readonly Litecoin: "2";
|
|
99
|
+
readonly Dogecoin: "3";
|
|
100
|
+
readonly Cosmos: "118";
|
|
101
|
+
readonly Thorchain: "931";
|
|
102
|
+
readonly Mayachain: "931";
|
|
103
|
+
readonly Binance: "714";
|
|
104
|
+
readonly Ethereum: "60";
|
|
105
|
+
readonly AvalancheC: "60";
|
|
106
|
+
readonly Optimism: "60";
|
|
107
|
+
readonly BnbSmartChain: "60";
|
|
108
|
+
readonly Polygon: "60";
|
|
109
|
+
readonly Gnosis: "60";
|
|
110
|
+
readonly Arbitrum: "60";
|
|
111
|
+
readonly ArbitrumNova: "60";
|
|
112
|
+
readonly Base: "60";
|
|
113
|
+
readonly Solana: "501";
|
|
114
|
+
};
|
|
115
|
+
export declare const VALID_CHAIN_IDS: ValidChainMap;
|
|
116
|
+
type ValidAssetNamespace = {
|
|
117
|
+
[k in ChainNamespace]: AssetNamespace[];
|
|
118
|
+
};
|
|
119
|
+
export declare const VALID_ASSET_NAMESPACE: ValidAssetNamespace;
|
|
120
|
+
export declare const FEE_ASSET_IDS: AssetId[];
|
|
121
|
+
export {};
|
|
@@ -30,6 +30,7 @@ export const foxWifHatAssetId = 'eip155:8453/erc20:0xd14acd73ade7f3c652f05365115
|
|
|
30
30
|
export const cosmosAssetId = 'cosmos:cosmoshub-4/slip44:118';
|
|
31
31
|
export const thorchainAssetId = 'cosmos:thorchain-1/slip44:931';
|
|
32
32
|
export const tcyAssetId = 'cosmos:thorchain-1/slip44:tcy';
|
|
33
|
+
export const rujiAssetId = 'cosmos:thorchain-1/slip44:ruji';
|
|
33
34
|
export const mayachainAssetId = 'cosmos:mayachain-mainnet-v1/slip44:931';
|
|
34
35
|
export const binanceAssetId = 'cosmos:binance-chain-tigris/slip44:714';
|
|
35
36
|
export const btcChainId = 'bip122:000000000019d6689c085ae165831e93';
|
|
@@ -84,7 +85,6 @@ export const ASSET_NAMESPACE = {
|
|
|
84
85
|
bep721: 'bep721',
|
|
85
86
|
bep1155: 'bep1155',
|
|
86
87
|
slip44: 'slip44',
|
|
87
|
-
ibc: 'ibc',
|
|
88
88
|
splToken: 'token',
|
|
89
89
|
};
|
|
90
90
|
export const ASSET_REFERENCE = {
|
|
@@ -144,7 +144,7 @@ export const VALID_ASSET_NAMESPACE = Object.freeze({
|
|
|
144
144
|
ASSET_NAMESPACE.bep721,
|
|
145
145
|
ASSET_NAMESPACE.bep1155,
|
|
146
146
|
],
|
|
147
|
-
[CHAIN_NAMESPACE.CosmosSdk]: [ASSET_NAMESPACE.
|
|
147
|
+
[CHAIN_NAMESPACE.CosmosSdk]: [ASSET_NAMESPACE.slip44],
|
|
148
148
|
[CHAIN_NAMESPACE.Solana]: [ASSET_NAMESPACE.splToken, ASSET_NAMESPACE.slip44],
|
|
149
149
|
});
|
|
150
150
|
// We should prob change this once we add more chains
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * as adapters from './adapters/index.js';
|
|
2
|
+
export * from './chainId/chainId.js';
|
|
3
|
+
export * from './accountId/accountId.js';
|
|
4
|
+
export * from './assetId/assetId.js';
|
|
5
|
+
export * from './utils.js';
|
|
6
|
+
export * from './constants.js';
|
|
7
|
+
export * from './typeGuards.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * as adapters from './adapters/index.js';
|
|
2
|
+
export * from './chainId/chainId.js';
|
|
3
|
+
export * from './accountId/accountId.js';
|
|
4
|
+
export * from './assetId/assetId.js';
|
|
5
|
+
export * from './utils.js';
|
|
6
|
+
export * from './constants.js';
|
|
7
|
+
export * from './typeGuards.js';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AssetId, AssetNamespace, AssetReference } from './assetId/assetId.js';
|
|
2
|
+
import type { ChainId, ChainNamespace, ChainReference } from './chainId/chainId.js';
|
|
3
|
+
export declare const isChainNamespace: (maybeChainNamespace: ChainNamespace | string) => maybeChainNamespace is ChainNamespace;
|
|
4
|
+
export declare const isChainReference: (maybeChainReference: ChainReference | string) => maybeChainReference is ChainReference;
|
|
5
|
+
export declare const isAssetNamespace: (maybeAssetNamespace: AssetNamespace | string) => maybeAssetNamespace is AssetNamespace;
|
|
6
|
+
export declare const isAssetReference: (maybeAssetReference: AssetReference | string) => maybeAssetReference is AssetReference;
|
|
7
|
+
export declare const isAssetId: (maybeAssetId: AssetId | string) => maybeAssetId is AssetId;
|
|
8
|
+
export declare const isAssetIdParts: (maybeChainNamespace: string, maybeChainReference: string, maybeAssetNamespace: string) => boolean;
|
|
9
|
+
export declare const isChainId: (maybeChainId: ChainId | string) => maybeChainId is ChainId;
|
|
10
|
+
export declare const isChainIdParts: (chainNamespace: string, chainReference: string) => boolean;
|
|
11
|
+
export declare const assertIsChainId: (value: ChainId | string | undefined) => asserts value is ChainId;
|
|
12
|
+
export declare const assertIsChainNamespace: (value: ChainNamespace | string | undefined) => asserts value is ChainNamespace;
|
|
13
|
+
export declare const assertIsChainReference: (value: ChainReference | string | undefined) => asserts value is ChainReference;
|
|
14
|
+
export declare const assertIsAssetNamespace: (value: AssetNamespace | string | undefined) => asserts value is AssetNamespace;
|
|
15
|
+
export declare const assertIsAssetReference: (value: AssetReference | string | undefined) => asserts value is AssetReference;
|
|
16
|
+
export declare const assertValidChainPartsPair: (chainNamespace: ChainNamespace, chainReference: ChainReference) => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { fromChainId } from './chainId/chainId';
|
|
2
|
-
import { ASSET_NAMESPACE, ASSET_REFERENCE, CHAIN_NAMESPACE, CHAIN_REFERENCE, VALID_CHAIN_IDS, } from './constants';
|
|
3
|
-
import { isValidChainPartsPair } from './utils';
|
|
1
|
+
import { fromChainId } from './chainId/chainId.js';
|
|
2
|
+
import { ASSET_NAMESPACE, ASSET_REFERENCE, CHAIN_NAMESPACE, CHAIN_REFERENCE, VALID_CHAIN_IDS, } from './constants.js';
|
|
3
|
+
import { isValidChainPartsPair } from './utils.js';
|
|
4
4
|
export const isChainNamespace = (maybeChainNamespace) => Object.values(CHAIN_NAMESPACE).includes(maybeChainNamespace);
|
|
5
5
|
export const isChainReference = (maybeChainReference) => Object.values(CHAIN_REFERENCE).includes(maybeChainReference);
|
|
6
6
|
export const isAssetNamespace = (maybeAssetNamespace) => Object.values(ASSET_NAMESPACE).includes(maybeAssetNamespace);
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { AccountId } from './accountId/accountId.js';
|
|
2
|
+
import type { AssetId } from './assetId/assetId.js';
|
|
3
|
+
import type { ChainId, ChainNamespace, ChainReference } from './chainId/chainId.js';
|
|
4
|
+
export declare const accountIdToChainId: (accountId: AccountId) => ChainId;
|
|
5
|
+
export declare const accountIdToSpecifier: (accountId: AccountId) => string;
|
|
6
|
+
export declare const isValidChainPartsPair: (chainNamespace: ChainNamespace, chainReference: ChainReference) => boolean;
|
|
7
|
+
export declare const generateAssetIdFromCosmosSdkDenom: (denom: string) => AssetId;
|
|
8
|
+
export declare const bitcoinAssetMap: {
|
|
9
|
+
[x: string]: string;
|
|
10
|
+
};
|
|
11
|
+
export declare const bitcoinCashAssetMap: {
|
|
12
|
+
[x: string]: string;
|
|
13
|
+
};
|
|
14
|
+
export declare const dogecoinAssetMap: {
|
|
15
|
+
[x: string]: string;
|
|
16
|
+
};
|
|
17
|
+
export declare const litecoinAssetMap: {
|
|
18
|
+
[x: string]: string;
|
|
19
|
+
};
|
|
20
|
+
export declare const cosmosAssetMap: {
|
|
21
|
+
[x: string]: string;
|
|
22
|
+
};
|
|
23
|
+
export declare const thorchainAssetMap: {
|
|
24
|
+
[x: string]: string;
|
|
25
|
+
};
|
|
26
|
+
export declare const mayachainAssetMap: {
|
|
27
|
+
[x: string]: string;
|
|
28
|
+
};
|
|
29
|
+
interface Flavoring<FlavorT> {
|
|
30
|
+
_type?: FlavorT;
|
|
31
|
+
}
|
|
32
|
+
export type Nominal<T, FlavorT> = T & Flavoring<FlavorT>;
|
|
33
|
+
export {};
|