@shapeshiftoss/caip 6.13.0 → 6.15.1

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 });
@@ -7,10 +7,16 @@ exports.getBanxaBlockchainFromBanxaAssetTicker = exports.getSupportedBanxaAssets
7
7
  const entries_1 = __importDefault(require("lodash/entries"));
8
8
  const toLower_1 = __importDefault(require("lodash/toLower"));
9
9
  const assetId_1 = require("../../assetId/assetId");
10
+ const constants_1 = require("../../constants");
11
+ /**
12
+ * https://docs.google.com/spreadsheets/d/1KU6J1Hl4vxBTIWCwWdrFfSadNltuFheQRoJyPrd0LMQ/edit#gid=631982242
13
+ * source of truth per banxa
14
+ */
10
15
  const AssetIdToBanxaTickerMap = {
11
- 'bip122:000000000019d6689c085ae165831e93/slip44:0': 'btc',
12
- 'cosmos:cosmoshub-4/slip44:118': 'atom',
13
- 'eip155:1/slip44:60': 'eth',
16
+ [constants_1.btcAssetId]: 'btc',
17
+ [constants_1.cosmosAssetId]: 'atom',
18
+ [constants_1.ethAssetId]: 'eth',
19
+ [constants_1.avalancheAssetId]: 'avax',
14
20
  'eip155:1/erc20:0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9': 'aave',
15
21
  'eip155:1/erc20:0xbb0e17ef65f82ab018d8edd776e8dd940327b28b': 'axs',
16
22
  'eip155:1/erc20:0x4d224452801aced8b2f0aebe155379bb5d594381': 'ape',
@@ -35,7 +41,7 @@ const AssetIdToBanxaTickerMap = {
35
41
  'eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48': 'usdc',
36
42
  'eip155:1/erc20:0x8e870d67f660d95d5be530380d0ec0bd388289e1': 'usdp',
37
43
  'eip155:1/erc20:0xdac17f958d2ee523a2206206994597c13d831ec7': 'usdt',
38
- 'eip155:1/erc20:0x2260fac5e5542a773aa44fbcfedf7c193bc2c599': 'wbtc'
44
+ 'eip155:1/erc20:0x2260fac5e5542a773aa44fbcfedf7c193bc2c599': 'wbtc',
39
45
  };
40
46
  const invert = (data) => Object.entries(data).reduce((acc, [k, v]) => ((acc[v] = k), acc), {});
41
47
  const banxaTickerToAssetIdMap = invert(AssetIdToBanxaTickerMap);
@@ -45,18 +51,22 @@ const assetIdToBanxaTicker = (assetId) => AssetIdToBanxaTickerMap[(0, toLower_1.
45
51
  exports.assetIdToBanxaTicker = assetIdToBanxaTicker;
46
52
  const getSupportedBanxaAssets = () => (0, entries_1.default)(AssetIdToBanxaTickerMap).map(([assetId, ticker]) => ({
47
53
  assetId,
48
- ticker
54
+ ticker,
49
55
  }));
50
56
  exports.getSupportedBanxaAssets = getSupportedBanxaAssets;
51
57
  /**
52
58
  * map ChainIds to Banxa blockchain codes (ETH, BTC, COSMOS),
53
59
  * since some Banxa assets could be on multiple chains and their default
54
60
  * chain won't be exactly the same as ours.
61
+ *
62
+ * https://docs.google.com/spreadsheets/d/1KU6J1Hl4vxBTIWCwWdrFfSadNltuFheQRoJyPrd0LMQ/edit#gid=631982242
63
+ * source of truth per banxa
55
64
  */
56
65
  const chainIdToBanxaBlockchainCodeMap = {
57
- 'eip155:1': 'ETH',
58
- 'bip122:000000000019d6689c085ae165831e93': 'BTC',
59
- 'cosmos:cosmoshub-4': 'COSMOS'
66
+ [constants_1.ethChainId]: 'ETH',
67
+ [constants_1.btcChainId]: 'BTC',
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
60
70
  };
61
71
  /**
62
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];
@@ -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);
@@ -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;
@@ -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);
package/dist/constants.js CHANGED
@@ -20,7 +20,7 @@ exports.osmosisChainId = 'cosmos:osmosis-1';
20
20
  exports.CHAIN_NAMESPACE = {
21
21
  Ethereum: 'eip155',
22
22
  Bitcoin: 'bip122',
23
- Cosmos: 'cosmos'
23
+ Cosmos: 'cosmos',
24
24
  };
25
25
  exports.CHAIN_REFERENCE = {
26
26
  EthereumMainnet: '1',
@@ -38,7 +38,7 @@ 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
44
  [exports.CHAIN_NAMESPACE.Bitcoin]: [
@@ -46,25 +46,25 @@ exports.VALID_CHAIN_IDS = Object.freeze({
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
65
  [exports.CHAIN_NAMESPACE.Bitcoin]: ['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.13.0",
3
+ "version": "6.15.1",
4
4
  "description": "CAIP Implementation",
5
5
  "homepage": "",
6
6
  "license": "MIT",