@shapeshiftoss/caip 6.15.0 → 7.0.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.
@@ -4,7 +4,7 @@ exports.fromCAIP10 = exports.toCAIP10 = exports.fromAccountId = exports.toAccoun
4
4
  const chainId_1 = require("../chainId/chainId");
5
5
  const constants_1 = require("../constants");
6
6
  const typeGuards_1 = require("../typeGuards");
7
- const toAccountId = ({ chainId: maybeChainId, chainNamespace: maybeChainNamespace, chainReference: maybeChainReference, account }) => {
7
+ const toAccountId = ({ chainId: maybeChainId, chainNamespace: maybeChainNamespace, chainReference: maybeChainReference, account, }) => {
8
8
  if (!account)
9
9
  throw new Error(`toAccountId: account is required`);
10
10
  const chainId = maybeChainId !== null && maybeChainId !== void 0 ? maybeChainId : (0, chainId_1.toChainId)({ chainNamespace: maybeChainNamespace, chainReference: maybeChainReference });
@@ -41,7 +41,7 @@ const AssetIdToBanxaTickerMap = {
41
41
  'eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48': 'usdc',
42
42
  'eip155:1/erc20:0x8e870d67f660d95d5be530380d0ec0bd388289e1': 'usdp',
43
43
  'eip155:1/erc20:0xdac17f958d2ee523a2206206994597c13d831ec7': 'usdt',
44
- 'eip155:1/erc20:0x2260fac5e5542a773aa44fbcfedf7c193bc2c599': 'wbtc'
44
+ 'eip155:1/erc20:0x2260fac5e5542a773aa44fbcfedf7c193bc2c599': 'wbtc',
45
45
  };
46
46
  const invert = (data) => Object.entries(data).reduce((acc, [k, v]) => ((acc[v] = k), acc), {});
47
47
  const banxaTickerToAssetIdMap = invert(AssetIdToBanxaTickerMap);
@@ -51,7 +51,7 @@ const assetIdToBanxaTicker = (assetId) => AssetIdToBanxaTickerMap[(0, toLower_1.
51
51
  exports.assetIdToBanxaTicker = assetIdToBanxaTicker;
52
52
  const getSupportedBanxaAssets = () => (0, entries_1.default)(AssetIdToBanxaTickerMap).map(([assetId, ticker]) => ({
53
53
  assetId,
54
- ticker
54
+ ticker,
55
55
  }));
56
56
  exports.getSupportedBanxaAssets = getSupportedBanxaAssets;
57
57
  /**
@@ -66,7 +66,7 @@ const chainIdToBanxaBlockchainCodeMap = {
66
66
  [constants_1.ethChainId]: 'ETH',
67
67
  [constants_1.btcChainId]: 'BTC',
68
68
  [constants_1.cosmosChainId]: 'COSMOS',
69
- [constants_1.avalancheChainId]: 'AVAX-C' // note - the AVAX-C chain is not the same as the AVAX "ticker" on the banxa side
69
+ [constants_1.avalancheChainId]: 'AVAX-C', // note - the AVAX-C chain is not the same as the AVAX "ticker" on the banxa side
70
70
  };
71
71
  /**
72
72
  * Convert a banxa asset identifier to a Banxa chain identifier for use in Banxa HTTP URLs
@@ -32,7 +32,7 @@ const adapters = __importStar(require("./generated"));
32
32
  exports.coincapUrl = 'https://api.coincap.io/v2/assets?limit=2000';
33
33
  const generatedAssetIdToCoinCapMap = Object.values(adapters).reduce((acc, cur) => ({
34
34
  ...acc,
35
- ...cur
35
+ ...cur,
36
36
  }));
37
37
  const invert = (data) => Object.entries(data).reduce((acc, [k, v]) => ((acc[v] = k), acc), {});
38
38
  const generatedCoinCapToAssetIdMap = invert(generatedAssetIdToCoinCapMap);
@@ -45,6 +45,6 @@ const parseData = (d) => ({
45
45
  [constants_1.dogeChainId]: utils_1.dogecoinAssetMap,
46
46
  [constants_1.ltcChainId]: utils_1.litecoinAssetMap,
47
47
  [constants_1.cosmosChainId]: utils_1.cosmosAssetMap,
48
- [constants_1.osmosisChainId]: utils_1.osmosisAssetMap
48
+ [constants_1.osmosisChainId]: utils_1.osmosisAssetMap,
49
49
  });
50
50
  exports.parseData = parseData;
@@ -47,7 +47,7 @@ exports.coingeckoUrl = 'https://api.coingecko.com/api/v3/coins/list?include_plat
47
47
  const assetIdToCoinGeckoIdMapByChain = Object.values(adapters);
48
48
  const generatedAssetIdToCoingeckoMap = assetIdToCoinGeckoIdMapByChain.reduce((acc, cur) => ({
49
49
  ...acc,
50
- ...cur
50
+ ...cur,
51
51
  }));
52
52
  const generatedCoingeckoToAssetIdsMap = (0, invertBy_1.default)(generatedAssetIdToCoingeckoMap);
53
53
  const coingeckoToAssetIds = (id) => generatedCoingeckoToAssetIdsMap[id];
@@ -77,7 +77,7 @@ const chainIdToCoingeckoAssetPlatform = (chainId) => {
77
77
  throw new Error(`chainNamespace ${chainNamespace}, chainReference ${chainReference} not supported.`);
78
78
  }
79
79
  // No valid asset platform: https://api.coingecko.com/api/v3/asset_platforms
80
- case constants_1.CHAIN_NAMESPACE.Bitcoin:
80
+ case constants_1.CHAIN_NAMESPACE.Utxo:
81
81
  default:
82
82
  throw new Error(`chainNamespace ${chainNamespace} not supported.`);
83
83
  }
@@ -19,7 +19,7 @@ const parseData = (coins) => {
19
19
  chainNamespace: constants_1.CHAIN_NAMESPACE.Ethereum,
20
20
  chainReference: constants_1.CHAIN_REFERENCE.EthereumMainnet,
21
21
  assetNamespace: 'erc20',
22
- assetReference: platforms.ethereum
22
+ assetReference: platforms.ethereum,
23
23
  });
24
24
  prev[constants_1.ethChainId][assetId] = id;
25
25
  }
@@ -33,7 +33,7 @@ const parseData = (coins) => {
33
33
  chainNamespace: constants_1.CHAIN_NAMESPACE.Ethereum,
34
34
  chainReference: constants_1.CHAIN_REFERENCE.AvalancheCChain,
35
35
  assetNamespace: 'erc20',
36
- assetReference: platforms.avalanche
36
+ assetReference: platforms.avalanche,
37
37
  });
38
38
  prev[constants_1.avalancheChainId][assetId] = id;
39
39
  }
@@ -44,7 +44,7 @@ const parseData = (coins) => {
44
44
  return prev;
45
45
  }, {
46
46
  [constants_1.ethChainId]: { [constants_1.ethAssetId]: 'ethereum' },
47
- [constants_1.avalancheChainId]: { [constants_1.avalancheAssetId]: 'avalanche-2' }
47
+ [constants_1.avalancheChainId]: { [constants_1.avalancheAssetId]: 'avalanche-2' },
48
48
  });
49
49
  return {
50
50
  ...assetMap,
@@ -53,7 +53,7 @@ const parseData = (coins) => {
53
53
  [constants_1.dogeChainId]: utils_1.dogecoinAssetMap,
54
54
  [constants_1.ltcChainId]: utils_1.litecoinAssetMap,
55
55
  [constants_1.cosmosChainId]: utils_1.cosmosAssetMap,
56
- [constants_1.osmosisChainId]: utils_1.osmosisAssetMap
56
+ [constants_1.osmosisChainId]: utils_1.osmosisAssetMap,
57
57
  };
58
58
  };
59
59
  exports.parseData = parseData;
@@ -29,7 +29,7 @@ const assetIdToGemAssetIdMap = {
29
29
  'eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48': 'usd-coin',
30
30
  'eip155:1/erc20:0x2260fac5e5542a773aa44fbcfedf7c193bc2c599': 'wrapped-bitcoin',
31
31
  'eip155:1/erc20:0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2': 'weth',
32
- 'eip155:1/erc20:0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e': 'yearn-finance'
32
+ 'eip155:1/erc20:0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e': 'yearn-finance',
33
33
  };
34
34
  const invert = (data) => Object.entries(data).reduce((acc, [k, v]) => ((acc[v] = k), acc), {});
35
35
  const gemAssetIdToAssetIdMap = invert(assetIdToGemAssetIdMap);
@@ -7,3 +7,4 @@ export * from './banxa';
7
7
  export * from './coinbase';
8
8
  export * from './junopay';
9
9
  export * from './thortrading';
10
+ export * from './mtpelerin';
@@ -23,3 +23,4 @@ __exportStar(require("./banxa"), exports);
23
23
  __exportStar(require("./coinbase"), exports);
24
24
  __exportStar(require("./junopay"), exports);
25
25
  __exportStar(require("./thortrading"), exports);
26
+ __exportStar(require("./mtpelerin"), exports);
@@ -38,7 +38,7 @@ const assetIdToJunoPayTickerMap = {
38
38
  'eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48': 'usdc',
39
39
  'eip155:1/erc20:0x8e870d67f660d95d5be530380d0ec0bd388289e1': 'usdp',
40
40
  'eip155:1/erc20:0xdac17f958d2ee523a2206206994597c13d831ec7': 'usdt',
41
- 'eip155:1/erc20:0x2260fac5e5542a773aa44fbcfedf7c193bc2c599': 'wbtc'
41
+ 'eip155:1/erc20:0x2260fac5e5542a773aa44fbcfedf7c193bc2c599': 'wbtc',
42
42
  };
43
43
  const junoPayTickerToAssetIdMap = (0, invert_1.default)(assetIdToJunoPayTickerMap);
44
44
  const junoPayTickerToAssetId = (id) => junoPayTickerToAssetIdMap[id];
@@ -47,6 +47,6 @@ const assetIdToJunoPayTicker = (assetId) => assetIdToJunoPayTickerMap[(0, toLowe
47
47
  exports.assetIdToJunoPayTicker = assetIdToJunoPayTicker;
48
48
  const getSupportedJunoPayAssets = () => (0, entries_1.default)(assetIdToJunoPayTickerMap).map(([assetId, ticker]) => ({
49
49
  assetId,
50
- ticker
50
+ ticker,
51
51
  }));
52
52
  exports.getSupportedJunoPayAssets = getSupportedJunoPayAssets;
@@ -0,0 +1,72 @@
1
+ import { AssetId } from '../../assetId/assetId';
2
+ /**
3
+ * The following is the list of assets that Mt Pelerin supports
4
+ * but they're **not supported** (yet?) in ShapeShift
5
+ * {
6
+ '[xdai_mainnet]/0x0000000000000000000000000000000000000000': 'XDAI',
7
+ '[xdai_mainnet]/0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83': 'USDC',
8
+ '[xdai_mainnet]/0x4ECaBa5870353805a9F068101A40E0f32ed605C6': 'USDT',
9
+ '[xdai_mainnet]/0x8e5bBbb09Ed1ebdE8674Cda39A0c169401db4252': 'WBTC',
10
+ '[xdai_mainnet]/0x6A023CCd1ff6F2045C3309768eAd9E68F978f6e1': 'WETH',
11
+ '[xdai_mainnet]/0x9fB1d52596c44603198fB0aee434fac3a679f702': 'jEUR',
12
+ '[xdai_mainnet]/0x2d5563da42b06FbBF9c67b7DC073cF6A7842239e': 'jCHF',
13
+ '[bsc_mainnet]/0x0000000000000000000000000000000000000000': 'BNB',
14
+ '[bsc_mainnet]/0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d': 'USDC',
15
+ '[bsc_mainnet]/0x55d398326f99059fF775485246999027B3197955': 'USDT',
16
+ '[bsc_mainnet]/0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c': 'BTCB',
17
+ '[bsc_mainnet]/0x2170ed0880ac9a755fd29b2688956bd959f933f8': 'WETH',
18
+ '[bsc_mainnet]/0xe9e7cea3dedca5984780bafc599bd69add087d56': 'BUSD',
19
+ '[bsc_mainnet]/0x23b8683Ff98F9E4781552DFE6f12Aa32814924e8': 'jEUR',
20
+ '[bsc_mainnet]/0x7c869b5A294b1314E985283d01C702B62224a05f': 'jCHF',
21
+ '[bsc_mainnet]/0x048E9b1ddF9EBbb224812372280e94Ccac443f9e': 'jGBP',
22
+ '[bsc_mainnet]/0x6B8b9AE0627a7622c593A1696859ca753c61A670': 'jZAR',
23
+ '[matic_mainnet]/0x0000000000000000000000000000000000000000': 'MATIC',
24
+ '[matic_mainnet]/0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174': 'USDC',
25
+ '[matic_mainnet]/0xc2132D05D31c914a87C6611C10748AEb04B58e8F': 'USDT',
26
+ '[matic_mainnet]/0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6': 'WBTC',
27
+ '[matic_mainnet]/0x4e3Decbb3645551B8A19f0eA1678079FCB33fB4c': 'jEUR',
28
+ '[matic_mainnet]/0xbD1463F02f61676d53fd183C2B19282BFF93D099': 'jCHF',
29
+ '[matic_mainnet]/0x767058F11800FBA6A682E73A6e79ec5eB74Fac8c': 'jGBP',
30
+ '[matic_mainnet]/0x8ca194A3b22077359b5732DE53373D4afC11DeE3': 'jCAD',
31
+ '[matic_mainnet]/0xa926db7a4CC0cb1736D5ac60495ca8Eb7214B503': 'jSGD',
32
+ '[matic_mainnet]/0x197E5d6CcfF265AC3E303a34Db360ee1429f5d1A': 'jSEK',
33
+ '[matic_mainnet]/0xCB7F1Ef7246D1497b985f7FC45A1A31F04346133': 'jAUD',
34
+ '[matic_mainnet]/0x8343091F2499FD4b6174A46D067A920a3b851FF9': 'jJPY',
35
+ '[matic_mainnet]/0x7ceb23fd6bc0add59e62ac25578270cff1b9f619': 'WETH',
36
+ '[matic_mainnet]/0xE111178A87A3BFf0c8d18DECBa5798827539Ae99': 'EURS',
37
+ '[matic_mainnet]/0x7BDF330f423Ea880FF95fC41A280fD5eCFD3D09f': 'EURT',
38
+ '[matic_mainnet]/0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4': 'agEUR',
39
+ '[matic_mainnet]/0x45c32fA6DF82ead1e2EF74d17b76547EDdFaFF89': 'FRAX',
40
+ '[matic_mainnet]/0xa3Fa99A148fA48D14Ed51d610c367C61876997F1': 'MAI',
41
+ '[matic_mainnet]/0xE6469Ba6D2fD6130788E0eA9C0a0515900563b59': 'UST',
42
+ '[tezos_mainnet]/0x0000000000000000000000000000000000000000': 'XTZ',
43
+ '[tezos_mainnet]/KT1JBNFcB5tiycHNdYGYCtR3kk6JaJysUCi8': 'EURL',
44
+ '[arbitrum_mainnet]/0x0000000000000000000000000000000000000000': 'ETH',
45
+ '[arbitrum_mainnet]/0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8': 'USDC',
46
+ '[optimism_mainnet]/0x0000000000000000000000000000000000000000': 'ETH',
47
+ '[optimism_mainnet]/0x7F5c764cBc14f9669B88837ca1490cCa17c31607': 'USDC',
48
+ '[avalanche_mainnet]/0x9fB1d52596c44603198fB0aee434fac3a679f702': 'jEUR',
49
+ '[avalanche_mainnet]/0x2d5563da42b06FbBF9c67b7DC073cF6A7842239e': 'jCHF',
50
+ '[avalanche_mainnet]/0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b': 'MAI',
51
+ '[avalanche_mainnet]/0xb599c3590F42f8F995ECfa0f85D2980B76862fc1': 'UST',
52
+ '[fantom_mainnet]/0x0000000000000000000000000000000000000000': 'FTM',
53
+ '[fantom_mainnet]/0x04068DA6C83AFCFA0e13ba15A6696662335D5B75': 'USDC',
54
+ '[fantom_mainnet]/0xdc301622e621166BD8E82f2cA0A26c13Ad0BE355': 'FRAX',
55
+ '[fantom_mainnet]/0xfB98B335551a418cD0737375a2ea0ded62Ea213b': 'MAI',
56
+ '[fantom_mainnet]/0x846e4D51d7E2043C1a87E0Ab7490B93FB940357b': 'UST',
57
+ '[rsk_mainnet]/0x0000000000000000000000000000000000000000': 'RBTC',
58
+ '[rsk_mainnet]/0x2d919f19d4892381d58edebeca66d5642cef1a1f': 'RDOC',
59
+ '[rsk_mainnet]/0xef213441a85df4d7acbdae0cf78004e1e486bb96': 'USDT',
60
+ '[rsk_mainnet]/0x2acc95758f8b5f583470ba265eb685a8f45fc9d5': 'RIF',
61
+ '[ethChainId]/0x89d71DfbDD6ebeCd0dfe27D55189F903169d2991': 'THDX'
62
+ * }
63
+ */
64
+ export declare const mtPelerinSymbolToAssetIds: (id: string) => AssetId[];
65
+ export declare const assetIdToMtPelerinSymbol: (assetId: AssetId) => string | undefined;
66
+ /**
67
+ * Convert a mtPelerin asset identifier to a MtPelerin chain identifier for use in MtPelerin HTTP URLs
68
+ *
69
+ * @param {string} assetId - an assetId string referencing a specific asset; e.g., ethAssetId
70
+ * @returns {string} - a MtPelerin network identifier; e.g., 'mainnet'
71
+ */
72
+ export declare const getMtPelerinNetFromAssetId: (assetId: AssetId) => string | undefined;
@@ -0,0 +1,125 @@
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],
11
+ BTC: [constants_1.btcAssetId],
12
+ DAI: ['eip155:1/erc20:0x6b175474e89094c44da98b954eedeac495271d0f'],
13
+ USDT: ['eip155:1/erc20:0xdac17f958d2ee523a2206206994597c13d831ec7'],
14
+ USDC: [
15
+ 'eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
16
+ 'eip155:43114/erc20:0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e',
17
+ ],
18
+ jEUR: ['eip155:1/erc20:0x0f17bc9a994b87b5225cfb6a2cd4d667adb4f20b'],
19
+ jCHF: ['eip155:1/erc20:0x53dfea0a8cc2a2a2e425e1c174bc162999723ea0'],
20
+ jGBP: ['eip155:1/erc20:0x7409856cae628f5d578b285b45669b36e7005283'],
21
+ WBTC: ['eip155:1/erc20:0x2260fac5e5542a773aa44fbcfedf7c193bc2c599'],
22
+ AVAX: [constants_1.avalancheAssetId],
23
+ EURS: ['eip155:1/erc20:0xdb25f211ab05b1c97d595516f45794528a807ad8'],
24
+ EURT: ['eip155:1/erc20:0xc581b735a1688071a1746c968e0798d642ede491'],
25
+ agEUR: ['eip155:1/erc20:0x1a7e4e63778b4f12a199c062f3efdd288afcbce8'],
26
+ FRAX: [
27
+ 'eip155:1/erc20:0x853d955acef822db058eb8505911ed77f175b99e',
28
+ 'eip155:43114/erc20:0xd24c2ad096400b6fbcd2ad8b24e7acbc21a1da64',
29
+ ],
30
+ UST: ['eip155:1/erc20:0xa693b19d2931d498c5b318df961919bb4aee87a5'],
31
+ };
32
+ /**
33
+ * The following is the list of assets that Mt Pelerin supports
34
+ * but they're **not supported** (yet?) in ShapeShift
35
+ * {
36
+ '[xdai_mainnet]/0x0000000000000000000000000000000000000000': 'XDAI',
37
+ '[xdai_mainnet]/0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83': 'USDC',
38
+ '[xdai_mainnet]/0x4ECaBa5870353805a9F068101A40E0f32ed605C6': 'USDT',
39
+ '[xdai_mainnet]/0x8e5bBbb09Ed1ebdE8674Cda39A0c169401db4252': 'WBTC',
40
+ '[xdai_mainnet]/0x6A023CCd1ff6F2045C3309768eAd9E68F978f6e1': 'WETH',
41
+ '[xdai_mainnet]/0x9fB1d52596c44603198fB0aee434fac3a679f702': 'jEUR',
42
+ '[xdai_mainnet]/0x2d5563da42b06FbBF9c67b7DC073cF6A7842239e': 'jCHF',
43
+ '[bsc_mainnet]/0x0000000000000000000000000000000000000000': 'BNB',
44
+ '[bsc_mainnet]/0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d': 'USDC',
45
+ '[bsc_mainnet]/0x55d398326f99059fF775485246999027B3197955': 'USDT',
46
+ '[bsc_mainnet]/0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c': 'BTCB',
47
+ '[bsc_mainnet]/0x2170ed0880ac9a755fd29b2688956bd959f933f8': 'WETH',
48
+ '[bsc_mainnet]/0xe9e7cea3dedca5984780bafc599bd69add087d56': 'BUSD',
49
+ '[bsc_mainnet]/0x23b8683Ff98F9E4781552DFE6f12Aa32814924e8': 'jEUR',
50
+ '[bsc_mainnet]/0x7c869b5A294b1314E985283d01C702B62224a05f': 'jCHF',
51
+ '[bsc_mainnet]/0x048E9b1ddF9EBbb224812372280e94Ccac443f9e': 'jGBP',
52
+ '[bsc_mainnet]/0x6B8b9AE0627a7622c593A1696859ca753c61A670': 'jZAR',
53
+ '[matic_mainnet]/0x0000000000000000000000000000000000000000': 'MATIC',
54
+ '[matic_mainnet]/0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174': 'USDC',
55
+ '[matic_mainnet]/0xc2132D05D31c914a87C6611C10748AEb04B58e8F': 'USDT',
56
+ '[matic_mainnet]/0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6': 'WBTC',
57
+ '[matic_mainnet]/0x4e3Decbb3645551B8A19f0eA1678079FCB33fB4c': 'jEUR',
58
+ '[matic_mainnet]/0xbD1463F02f61676d53fd183C2B19282BFF93D099': 'jCHF',
59
+ '[matic_mainnet]/0x767058F11800FBA6A682E73A6e79ec5eB74Fac8c': 'jGBP',
60
+ '[matic_mainnet]/0x8ca194A3b22077359b5732DE53373D4afC11DeE3': 'jCAD',
61
+ '[matic_mainnet]/0xa926db7a4CC0cb1736D5ac60495ca8Eb7214B503': 'jSGD',
62
+ '[matic_mainnet]/0x197E5d6CcfF265AC3E303a34Db360ee1429f5d1A': 'jSEK',
63
+ '[matic_mainnet]/0xCB7F1Ef7246D1497b985f7FC45A1A31F04346133': 'jAUD',
64
+ '[matic_mainnet]/0x8343091F2499FD4b6174A46D067A920a3b851FF9': 'jJPY',
65
+ '[matic_mainnet]/0x7ceb23fd6bc0add59e62ac25578270cff1b9f619': 'WETH',
66
+ '[matic_mainnet]/0xE111178A87A3BFf0c8d18DECBa5798827539Ae99': 'EURS',
67
+ '[matic_mainnet]/0x7BDF330f423Ea880FF95fC41A280fD5eCFD3D09f': 'EURT',
68
+ '[matic_mainnet]/0xE0B52e49357Fd4DAf2c15e02058DCE6BC0057db4': 'agEUR',
69
+ '[matic_mainnet]/0x45c32fA6DF82ead1e2EF74d17b76547EDdFaFF89': 'FRAX',
70
+ '[matic_mainnet]/0xa3Fa99A148fA48D14Ed51d610c367C61876997F1': 'MAI',
71
+ '[matic_mainnet]/0xE6469Ba6D2fD6130788E0eA9C0a0515900563b59': 'UST',
72
+ '[tezos_mainnet]/0x0000000000000000000000000000000000000000': 'XTZ',
73
+ '[tezos_mainnet]/KT1JBNFcB5tiycHNdYGYCtR3kk6JaJysUCi8': 'EURL',
74
+ '[arbitrum_mainnet]/0x0000000000000000000000000000000000000000': 'ETH',
75
+ '[arbitrum_mainnet]/0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8': 'USDC',
76
+ '[optimism_mainnet]/0x0000000000000000000000000000000000000000': 'ETH',
77
+ '[optimism_mainnet]/0x7F5c764cBc14f9669B88837ca1490cCa17c31607': 'USDC',
78
+ '[avalanche_mainnet]/0x9fB1d52596c44603198fB0aee434fac3a679f702': 'jEUR',
79
+ '[avalanche_mainnet]/0x2d5563da42b06FbBF9c67b7DC073cF6A7842239e': 'jCHF',
80
+ '[avalanche_mainnet]/0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b': 'MAI',
81
+ '[avalanche_mainnet]/0xb599c3590F42f8F995ECfa0f85D2980B76862fc1': 'UST',
82
+ '[fantom_mainnet]/0x0000000000000000000000000000000000000000': 'FTM',
83
+ '[fantom_mainnet]/0x04068DA6C83AFCFA0e13ba15A6696662335D5B75': 'USDC',
84
+ '[fantom_mainnet]/0xdc301622e621166BD8E82f2cA0A26c13Ad0BE355': 'FRAX',
85
+ '[fantom_mainnet]/0xfB98B335551a418cD0737375a2ea0ded62Ea213b': 'MAI',
86
+ '[fantom_mainnet]/0x846e4D51d7E2043C1a87E0Ab7490B93FB940357b': 'UST',
87
+ '[rsk_mainnet]/0x0000000000000000000000000000000000000000': 'RBTC',
88
+ '[rsk_mainnet]/0x2d919f19d4892381d58edebeca66d5642cef1a1f': 'RDOC',
89
+ '[rsk_mainnet]/0xef213441a85df4d7acbdae0cf78004e1e486bb96': 'USDT',
90
+ '[rsk_mainnet]/0x2acc95758f8b5f583470ba265eb685a8f45fc9d5': 'RIF',
91
+ '[ethChainId]/0x89d71DfbDD6ebeCd0dfe27D55189F903169d2991': 'THDX'
92
+ * }
93
+ */
94
+ const mtPelerinSymbolToAssetIds = (id) => MtPelerinSymbolToAssetIds[id];
95
+ exports.mtPelerinSymbolToAssetIds = mtPelerinSymbolToAssetIds;
96
+ const assetIdToMtPelerinSymbol = (assetId) => {
97
+ return Object.entries(MtPelerinSymbolToAssetIds)
98
+ .filter(([, assetIds]) => assetIds.includes(assetId))
99
+ .map(([key]) => key)[0];
100
+ };
101
+ exports.assetIdToMtPelerinSymbol = assetIdToMtPelerinSymbol;
102
+ /**
103
+ * map ChainIds to MtPelerin network,
104
+ * since some MtPelerin assets could be on multiple chains and their default
105
+ * chain won't be exactly the same as ours.
106
+ *
107
+ * https://developers.mtPelerin.com/integration-guides/options -> "net"
108
+ * source of truth per MtPelerin
109
+ */
110
+ const chainIdToMtPelerinNetworkCodeMap = {
111
+ [constants_1.ethChainId]: 'mainnet',
112
+ [constants_1.btcChainId]: 'bitcoin_mainnet',
113
+ [constants_1.avalancheChainId]: 'avalanche_mainnet', // this is actually the C-Chain
114
+ };
115
+ /**
116
+ * Convert a mtPelerin asset identifier to a MtPelerin chain identifier for use in MtPelerin HTTP URLs
117
+ *
118
+ * @param {string} assetId - an assetId string referencing a specific asset; e.g., ethAssetId
119
+ * @returns {string} - a MtPelerin network identifier; e.g., 'mainnet'
120
+ */
121
+ const getMtPelerinNetFromAssetId = (assetId) => {
122
+ const { chainId } = (0, assetId_1.fromAssetId)(assetId);
123
+ return chainIdToMtPelerinNetworkCodeMap[chainId];
124
+ };
125
+ exports.getMtPelerinNetFromAssetId = getMtPelerinNetFromAssetId;
@@ -28,7 +28,7 @@ const adapters = __importStar(require("./generated"));
28
28
  exports.osmosisUrl = 'https://api-osmosis.imperator.co/tokens/v2/all';
29
29
  const generatedAssetIdToOsmosisMap = Object.values(adapters).reduce((acc, cur) => ({
30
30
  ...acc,
31
- ...cur
31
+ ...cur,
32
32
  }));
33
33
  const invert = (data) => Object.entries(data).reduce((acc, [k, v]) => ((acc[v] = k), acc), {});
34
34
  const generatedOsmosisToAssetIdMap = invert(generatedAssetIdToOsmosisMap);
@@ -46,10 +46,10 @@ exports.parseOsmosisData = parseOsmosisData;
46
46
  const parseData = (d) => {
47
47
  const osmosisMainnet = (0, chainId_1.toChainId)({
48
48
  chainNamespace: constants_1.CHAIN_NAMESPACE.Cosmos,
49
- chainReference: constants_1.CHAIN_REFERENCE.OsmosisMainnet
49
+ chainReference: constants_1.CHAIN_REFERENCE.OsmosisMainnet,
50
50
  });
51
51
  return {
52
- [osmosisMainnet]: (0, exports.parseOsmosisData)(d)
52
+ [osmosisMainnet]: (0, exports.parseOsmosisData)(d),
53
53
  };
54
54
  };
55
55
  exports.parseData = parseData;
@@ -32,7 +32,7 @@ const thorPoolIdAssetIdSymbolMap = {
32
32
  'LTC.LTC': constants_1.ltcAssetId,
33
33
  'DOGE.DOGE': constants_1.dogeAssetId,
34
34
  'GAIA.ATOM': constants_1.cosmosAssetId,
35
- 'BCH.BCH': constants_1.bchAssetId
35
+ 'BCH.BCH': constants_1.bchAssetId,
36
36
  };
37
37
  const invert = (data) => Object.entries(data).reduce((acc, [k, v]) => ((acc[v] = k), acc), {});
38
38
  const assetIdToPoolAssetIdMap = invert(thorPoolIdAssetIdSymbolMap);
@@ -31,7 +31,7 @@ const toLower_1 = __importDefault(require("lodash/toLower"));
31
31
  const adapters = __importStar(require("./generated"));
32
32
  const generatedAssedIdToYearnMap = Object.values(adapters).reduce((acc, cur) => ({
33
33
  ...acc,
34
- ...cur
34
+ ...cur,
35
35
  }));
36
36
  const invert = (data) => Object.entries(data).reduce((acc, [k, v]) => ((acc[v] = k), acc), {});
37
37
  const generatedYearnToAssetIdMap = invert(generatedAssedIdToYearnMap);
@@ -28,7 +28,7 @@ const fetchData = async () => {
28
28
  yearnSdk.vaults.get(),
29
29
  yearnSdk.ironBank.tokens(),
30
30
  yearnSdk.tokens.supported(),
31
- yearnSdk.vaults.tokens()
31
+ yearnSdk.vaults.tokens(),
32
32
  ]);
33
33
  const tokens = [...vaults, ...ironBankTokens, ...zapperTokens, ...underlyingVaultTokens];
34
34
  return (0, uniqBy_1.default)(tokens, 'address');
@@ -46,7 +46,7 @@ const parseEthData = (data) => {
46
46
  chainNamespace,
47
47
  chainReference,
48
48
  assetNamespace,
49
- assetReference
49
+ assetReference,
50
50
  });
51
51
  acc[assetId] = id;
52
52
  return acc;
@@ -56,7 +56,7 @@ exports.parseEthData = parseEthData;
56
56
  const parseData = (d) => {
57
57
  const ethMainnet = (0, chainId_1.toChainId)({
58
58
  chainNamespace: constants_1.CHAIN_NAMESPACE.Ethereum,
59
- chainReference: constants_1.CHAIN_REFERENCE.EthereumMainnet
59
+ chainReference: constants_1.CHAIN_REFERENCE.EthereumMainnet,
60
60
  });
61
61
  return { [ethMainnet]: (0, exports.parseEthData)(d) };
62
62
  };
@@ -32,17 +32,17 @@ const toAssetId = (args) => {
32
32
  return {
33
33
  chainId: args.chainId,
34
34
  chainNamespace: fromChainIdResult.chainNamespace,
35
- chainReference: fromChainIdResult.chainReference
35
+ chainReference: fromChainIdResult.chainReference,
36
36
  };
37
37
  }
38
38
  else
39
39
  return {
40
40
  chainId: (0, chainId_1.toChainId)({
41
41
  chainNamespace: args.chainNamespace,
42
- chainReference: args.chainReference
42
+ chainReference: args.chainReference,
43
43
  }),
44
44
  chainNamespace: args.chainNamespace,
45
- chainReference: args.chainReference
45
+ chainReference: args.chainReference,
46
46
  };
47
47
  })();
48
48
  const isContractAddress = Array('erc20', 'erc721').includes(assetNamespace);
@@ -18,7 +18,7 @@ export declare const cosmosChainId: ChainId;
18
18
  export declare const osmosisChainId: ChainId;
19
19
  export declare const CHAIN_NAMESPACE: {
20
20
  readonly Ethereum: "eip155";
21
- readonly Bitcoin: "bip122";
21
+ readonly Utxo: "bip122";
22
22
  readonly Cosmos: "cosmos";
23
23
  };
24
24
  declare type ValidChainMap = {
package/dist/constants.js CHANGED
@@ -19,8 +19,8 @@ exports.cosmosChainId = 'cosmos:cosmoshub-4';
19
19
  exports.osmosisChainId = 'cosmos:osmosis-1';
20
20
  exports.CHAIN_NAMESPACE = {
21
21
  Ethereum: 'eip155',
22
- Bitcoin: 'bip122',
23
- Cosmos: 'cosmos'
22
+ Utxo: 'bip122',
23
+ Cosmos: 'cosmos',
24
24
  };
25
25
  exports.CHAIN_REFERENCE = {
26
26
  EthereumMainnet: '1',
@@ -38,33 +38,33 @@ exports.CHAIN_REFERENCE = {
38
38
  CosmosHubVega: 'vega-testnet',
39
39
  OsmosisMainnet: 'osmosis-1',
40
40
  OsmosisTestnet: 'osmo-testnet-1',
41
- AvalancheCChain: '43114' // https://docs.avax.network/apis/avalanchego/apis/c-chain
41
+ AvalancheCChain: '43114', // https://docs.avax.network/apis/avalanchego/apis/c-chain
42
42
  };
43
43
  exports.VALID_CHAIN_IDS = Object.freeze({
44
- [exports.CHAIN_NAMESPACE.Bitcoin]: [
44
+ [exports.CHAIN_NAMESPACE.Utxo]: [
45
45
  exports.CHAIN_REFERENCE.BitcoinMainnet,
46
46
  exports.CHAIN_REFERENCE.BitcoinTestnet,
47
47
  exports.CHAIN_REFERENCE.BitcoinCashMainnet,
48
48
  exports.CHAIN_REFERENCE.DogecoinMainnet,
49
- exports.CHAIN_REFERENCE.LitecoinMainnet
49
+ exports.CHAIN_REFERENCE.LitecoinMainnet,
50
50
  ],
51
51
  [exports.CHAIN_NAMESPACE.Ethereum]: [
52
52
  exports.CHAIN_REFERENCE.EthereumMainnet,
53
53
  exports.CHAIN_REFERENCE.EthereumRopsten,
54
54
  exports.CHAIN_REFERENCE.EthereumRinkeby,
55
- exports.CHAIN_REFERENCE.AvalancheCChain
55
+ exports.CHAIN_REFERENCE.AvalancheCChain,
56
56
  ],
57
57
  [exports.CHAIN_NAMESPACE.Cosmos]: [
58
58
  exports.CHAIN_REFERENCE.CosmosHubMainnet,
59
59
  exports.CHAIN_REFERENCE.CosmosHubVega,
60
60
  exports.CHAIN_REFERENCE.OsmosisMainnet,
61
- exports.CHAIN_REFERENCE.OsmosisTestnet
62
- ]
61
+ exports.CHAIN_REFERENCE.OsmosisTestnet,
62
+ ],
63
63
  });
64
64
  exports.VALID_ASSET_NAMESPACE = Object.freeze({
65
- [exports.CHAIN_NAMESPACE.Bitcoin]: ['slip44'],
65
+ [exports.CHAIN_NAMESPACE.Utxo]: ['slip44'],
66
66
  [exports.CHAIN_NAMESPACE.Ethereum]: ['slip44', 'erc20', 'erc721'],
67
- [exports.CHAIN_NAMESPACE.Cosmos]: ['cw20', 'cw721', 'ibc', 'native', 'slip44']
67
+ [exports.CHAIN_NAMESPACE.Cosmos]: ['cw20', 'cw721', 'ibc', 'native', 'slip44'],
68
68
  });
69
69
  exports.ASSET_NAMESPACE_STRINGS = [
70
70
  'cw20',
@@ -73,7 +73,7 @@ exports.ASSET_NAMESPACE_STRINGS = [
73
73
  'erc721',
74
74
  'slip44',
75
75
  'native',
76
- 'ibc'
76
+ 'ibc',
77
77
  ];
78
78
  exports.ASSET_REFERENCE = {
79
79
  Bitcoin: '0',
@@ -83,5 +83,5 @@ exports.ASSET_REFERENCE = {
83
83
  Cosmos: '118',
84
84
  Osmosis: '118',
85
85
  BitcoinCash: '145',
86
- AvalancheC: '9000'
86
+ AvalancheC: '9000',
87
87
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shapeshiftoss/caip",
3
- "version": "6.15.0",
3
+ "version": "7.0.0",
4
4
  "description": "CAIP Implementation",
5
5
  "homepage": "",
6
6
  "license": "MIT",