@shapeshiftoss/caip 8.16.4 → 8.16.6

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.
Files changed (212) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -0
  2. package/dist/cjs/accountId/accountId.d.ts +29 -0
  3. package/dist/cjs/accountId/accountId.js +44 -0
  4. package/dist/cjs/accountId/accountId.test.d.ts +1 -0
  5. package/dist/cjs/accountId/accountId.test.js +109 -0
  6. package/dist/cjs/adapters/banxa/index.d.ts +15 -0
  7. package/dist/cjs/adapters/banxa/index.js +153 -0
  8. package/dist/cjs/adapters/coinbase/generate.d.ts +1 -0
  9. package/dist/cjs/adapters/coinbase/generate.js +9 -0
  10. package/dist/cjs/adapters/coinbase/generated/adapter.json +153 -0
  11. package/dist/cjs/adapters/coinbase/generated/index.d.ts +2 -0
  12. package/dist/cjs/adapters/coinbase/generated/index.js +8 -0
  13. package/dist/cjs/adapters/coinbase/index.d.ts +3 -0
  14. package/dist/cjs/adapters/coinbase/index.js +16 -0
  15. package/dist/cjs/adapters/coinbase/utils.d.ts +12 -0
  16. package/dist/cjs/adapters/coinbase/utils.js +55 -0
  17. package/dist/cjs/adapters/coincap/generate.d.ts +1 -0
  18. package/dist/cjs/adapters/coincap/generate.js +16 -0
  19. package/dist/cjs/adapters/coincap/generated/bip122_000000000000000000651ef99cb9fcbe/adapter.json +1 -0
  20. package/dist/cjs/adapters/coincap/generated/bip122_000000000019d6689c085ae165831e93/adapter.json +1 -0
  21. package/dist/cjs/adapters/coincap/generated/bip122_00000000001a91e3dace36e2be3bf030/adapter.json +1 -0
  22. package/dist/cjs/adapters/coincap/generated/bip122_00040fe8ec8471911baa1db1266ea15d/adapter.json +1 -0
  23. package/dist/cjs/adapters/coincap/generated/bip122_12a765e31ffd4059bada1e25190f6e98/adapter.json +1 -0
  24. package/dist/cjs/adapters/coincap/generated/cosmos_cosmoshub-4/adapter.json +1 -0
  25. package/dist/cjs/adapters/coincap/generated/cosmos_thorchain-1/adapter.json +1 -0
  26. package/dist/cjs/adapters/coincap/generated/eip155_1/adapter.json +1 -0
  27. package/dist/cjs/adapters/coincap/generated/eip155_10/adapter.json +1 -0
  28. package/dist/cjs/adapters/coincap/generated/eip155_137/adapter.json +1 -0
  29. package/dist/cjs/adapters/coincap/generated/eip155_42161/adapter.json +1 -0
  30. package/dist/cjs/adapters/coincap/generated/eip155_43114/adapter.json +1 -0
  31. package/dist/cjs/adapters/coincap/generated/eip155_56/adapter.json +1 -0
  32. package/dist/cjs/adapters/coincap/generated/eip155_8453/adapter.json +1 -0
  33. package/dist/cjs/adapters/coincap/generated/index.d.ts +16 -0
  34. package/dist/cjs/adapters/coincap/generated/index.js +36 -0
  35. package/dist/cjs/adapters/coincap/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +1 -0
  36. package/dist/cjs/adapters/coincap/index.d.ts +5 -0
  37. package/dist/cjs/adapters/coincap/index.js +48 -0
  38. package/dist/cjs/adapters/coincap/index.test.d.ts +1 -0
  39. package/dist/cjs/adapters/coincap/index.test.js +90 -0
  40. package/dist/cjs/adapters/coincap/utils.d.ts +24 -0
  41. package/dist/cjs/adapters/coincap/utils.js +147 -0
  42. package/dist/cjs/adapters/coincap/utils.test.d.ts +4 -0
  43. package/dist/cjs/adapters/coincap/utils.test.js +176 -0
  44. package/dist/cjs/adapters/coingecko/generate.d.ts +1 -0
  45. package/dist/cjs/adapters/coingecko/generate.js +10 -0
  46. package/dist/cjs/adapters/coingecko/generated/bip122_000000000000000000651ef99cb9fcbe/adapter.json +1 -0
  47. package/dist/cjs/adapters/coingecko/generated/bip122_000000000019d6689c085ae165831e93/adapter.json +1 -0
  48. package/dist/cjs/adapters/coingecko/generated/bip122_00000000001a91e3dace36e2be3bf030/adapter.json +1 -0
  49. package/dist/cjs/adapters/coingecko/generated/bip122_00040fe8ec8471911baa1db1266ea15d/adapter.json +1 -0
  50. package/dist/cjs/adapters/coingecko/generated/bip122_12a765e31ffd4059bada1e25190f6e98/adapter.json +1 -0
  51. package/dist/cjs/adapters/coingecko/generated/cosmos_cosmoshub-4/adapter.json +1 -0
  52. package/dist/cjs/adapters/coingecko/generated/cosmos_mayachain-mainnet-v1/adapter.json +1 -0
  53. package/dist/cjs/adapters/coingecko/generated/cosmos_thorchain-1/adapter.json +1 -0
  54. package/dist/cjs/adapters/coingecko/generated/eip155_1/adapter.json +1 -0
  55. package/dist/cjs/adapters/coingecko/generated/eip155_10/adapter.json +1 -0
  56. package/dist/cjs/adapters/coingecko/generated/eip155_100/adapter.json +1 -0
  57. package/dist/cjs/adapters/coingecko/generated/eip155_137/adapter.json +1 -0
  58. package/dist/cjs/adapters/coingecko/generated/eip155_143/adapter.json +1 -0
  59. package/dist/cjs/adapters/coingecko/generated/eip155_42161/adapter.json +1 -0
  60. package/dist/cjs/adapters/coingecko/generated/eip155_42170/adapter.json +1 -0
  61. package/dist/cjs/adapters/coingecko/generated/eip155_43114/adapter.json +1 -0
  62. package/dist/cjs/adapters/coingecko/generated/eip155_56/adapter.json +1 -0
  63. package/dist/cjs/adapters/coingecko/generated/eip155_747474/adapter.json +1 -0
  64. package/dist/cjs/adapters/coingecko/generated/eip155_8453/adapter.json +1 -0
  65. package/dist/cjs/adapters/coingecko/generated/eip155_9745/adapter.json +1 -0
  66. package/dist/cjs/adapters/coingecko/generated/eip155_999/adapter.json +1 -0
  67. package/dist/cjs/adapters/coingecko/generated/index.d.ts +27 -0
  68. package/dist/cjs/adapters/coingecko/generated/index.js +58 -0
  69. package/dist/cjs/adapters/coingecko/generated/near_mainnet/adapter.json +1 -0
  70. package/dist/cjs/adapters/coingecko/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +1 -0
  71. package/dist/cjs/adapters/coingecko/generated/starknet_SN_MAIN/adapter.json +1 -0
  72. package/dist/cjs/adapters/coingecko/generated/sui_35834a8a/adapter.json +1 -0
  73. package/dist/cjs/adapters/coingecko/generated/tron_0x2b6653dc/adapter.json +1 -0
  74. package/dist/cjs/adapters/coingecko/index.d.ts +34 -0
  75. package/dist/cjs/adapters/coingecko/index.js +223 -0
  76. package/dist/cjs/adapters/coingecko/index.test.d.ts +1 -0
  77. package/dist/cjs/adapters/coingecko/index.test.js +318 -0
  78. package/dist/cjs/adapters/coingecko/utils.d.ts +11 -0
  79. package/dist/cjs/adapters/coingecko/utils.js +311 -0
  80. package/dist/cjs/adapters/coingecko/utils.test.d.ts +1 -0
  81. package/dist/cjs/adapters/coingecko/utils.test.js +220 -0
  82. package/dist/cjs/adapters/index.d.ts +6 -0
  83. package/dist/cjs/adapters/index.js +22 -0
  84. package/dist/cjs/adapters/mtpelerin/index.d.ts +10 -0
  85. package/dist/cjs/adapters/mtpelerin/index.js +127 -0
  86. package/dist/cjs/adapters/onramper/index.d.ts +6 -0
  87. package/dist/cjs/adapters/onramper/index.js +39 -0
  88. package/dist/cjs/assetId/assetId.d.ts +36 -0
  89. package/dist/cjs/assetId/assetId.js +120 -0
  90. package/dist/cjs/assetId/assetId.test.d.ts +1 -0
  91. package/dist/cjs/assetId/assetId.test.js +324 -0
  92. package/dist/cjs/chainId/chainId.d.ts +20 -0
  93. package/dist/cjs/chainId/chainId.js +25 -0
  94. package/dist/cjs/chainId/chainId.test.d.ts +1 -0
  95. package/dist/cjs/chainId/chainId.test.js +90 -0
  96. package/dist/cjs/constants.d.ts +163 -0
  97. package/dist/cjs/constants.js +231 -0
  98. package/dist/cjs/index.d.ts +7 -0
  99. package/dist/cjs/index.js +36 -0
  100. package/dist/cjs/package.json +1 -0
  101. package/dist/cjs/typeGuards.d.ts +16 -0
  102. package/dist/cjs/typeGuards.js +56 -0
  103. package/dist/cjs/utils.d.ts +36 -0
  104. package/dist/cjs/utils.js +57 -0
  105. package/dist/cjs/utils.test.d.ts +1 -0
  106. package/dist/cjs/utils.test.js +160 -0
  107. package/dist/esm/.tsbuildinfo +1 -0
  108. package/dist/esm/accountId/accountId.d.ts +29 -0
  109. package/dist/esm/accountId/accountId.js +39 -0
  110. package/dist/esm/accountId/accountId.test.d.ts +1 -0
  111. package/dist/esm/accountId/accountId.test.js +107 -0
  112. package/dist/esm/adapters/banxa/index.d.ts +15 -0
  113. package/dist/esm/adapters/banxa/index.js +143 -0
  114. package/dist/esm/adapters/coinbase/generate.d.ts +1 -0
  115. package/dist/esm/adapters/coinbase/generate.js +7 -0
  116. package/dist/esm/adapters/coinbase/generated/adapter.json +153 -0
  117. package/dist/esm/adapters/coinbase/generated/index.d.ts +2 -0
  118. package/dist/esm/adapters/coinbase/generated/index.js +2 -0
  119. package/dist/esm/adapters/coinbase/index.d.ts +3 -0
  120. package/dist/esm/adapters/coinbase/index.js +8 -0
  121. package/dist/esm/adapters/coinbase/utils.d.ts +12 -0
  122. package/dist/esm/adapters/coinbase/utils.js +46 -0
  123. package/dist/esm/adapters/coincap/generate.d.ts +1 -0
  124. package/dist/esm/adapters/coincap/generate.js +11 -0
  125. package/dist/esm/adapters/coincap/generated/bip122_000000000000000000651ef99cb9fcbe/adapter.json +1 -0
  126. package/dist/esm/adapters/coincap/generated/bip122_000000000019d6689c085ae165831e93/adapter.json +1 -0
  127. package/dist/esm/adapters/coincap/generated/bip122_00000000001a91e3dace36e2be3bf030/adapter.json +1 -0
  128. package/dist/esm/adapters/coincap/generated/bip122_00040fe8ec8471911baa1db1266ea15d/adapter.json +1 -0
  129. package/dist/esm/adapters/coincap/generated/bip122_12a765e31ffd4059bada1e25190f6e98/adapter.json +1 -0
  130. package/dist/esm/adapters/coincap/generated/cosmos_cosmoshub-4/adapter.json +1 -0
  131. package/dist/esm/adapters/coincap/generated/cosmos_thorchain-1/adapter.json +1 -0
  132. package/dist/esm/adapters/coincap/generated/eip155_1/adapter.json +1 -0
  133. package/dist/esm/adapters/coincap/generated/eip155_10/adapter.json +1 -0
  134. package/dist/esm/adapters/coincap/generated/eip155_137/adapter.json +1 -0
  135. package/dist/esm/adapters/coincap/generated/eip155_42161/adapter.json +1 -0
  136. package/dist/esm/adapters/coincap/generated/eip155_43114/adapter.json +1 -0
  137. package/dist/esm/adapters/coincap/generated/eip155_56/adapter.json +1 -0
  138. package/dist/esm/adapters/coincap/generated/eip155_8453/adapter.json +1 -0
  139. package/dist/esm/adapters/coincap/generated/index.d.ts +16 -0
  140. package/dist/esm/adapters/coincap/generated/index.js +16 -0
  141. package/dist/esm/adapters/coincap/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +1 -0
  142. package/dist/esm/adapters/coincap/index.d.ts +5 -0
  143. package/dist/esm/adapters/coincap/index.js +16 -0
  144. package/dist/esm/adapters/coincap/index.test.d.ts +1 -0
  145. package/dist/esm/adapters/coincap/index.test.js +88 -0
  146. package/dist/esm/adapters/coincap/utils.d.ts +24 -0
  147. package/dist/esm/adapters/coincap/utils.js +136 -0
  148. package/dist/esm/adapters/coincap/utils.test.d.ts +4 -0
  149. package/dist/esm/adapters/coincap/utils.test.js +171 -0
  150. package/dist/esm/adapters/coingecko/generate.d.ts +1 -0
  151. package/dist/esm/adapters/coingecko/generate.js +8 -0
  152. package/dist/esm/adapters/coingecko/generated/bip122_000000000000000000651ef99cb9fcbe/adapter.json +1 -0
  153. package/dist/esm/adapters/coingecko/generated/bip122_000000000019d6689c085ae165831e93/adapter.json +1 -0
  154. package/dist/esm/adapters/coingecko/generated/bip122_00000000001a91e3dace36e2be3bf030/adapter.json +1 -0
  155. package/dist/esm/adapters/coingecko/generated/bip122_00040fe8ec8471911baa1db1266ea15d/adapter.json +1 -0
  156. package/dist/esm/adapters/coingecko/generated/bip122_12a765e31ffd4059bada1e25190f6e98/adapter.json +1 -0
  157. package/dist/esm/adapters/coingecko/generated/cosmos_cosmoshub-4/adapter.json +1 -0
  158. package/dist/esm/adapters/coingecko/generated/cosmos_mayachain-mainnet-v1/adapter.json +1 -0
  159. package/dist/esm/adapters/coingecko/generated/cosmos_thorchain-1/adapter.json +1 -0
  160. package/dist/esm/adapters/coingecko/generated/eip155_1/adapter.json +1 -0
  161. package/dist/esm/adapters/coingecko/generated/eip155_10/adapter.json +1 -0
  162. package/dist/esm/adapters/coingecko/generated/eip155_100/adapter.json +1 -0
  163. package/dist/esm/adapters/coingecko/generated/eip155_137/adapter.json +1 -0
  164. package/dist/esm/adapters/coingecko/generated/eip155_143/adapter.json +1 -0
  165. package/dist/esm/adapters/coingecko/generated/eip155_42161/adapter.json +1 -0
  166. package/dist/esm/adapters/coingecko/generated/eip155_42170/adapter.json +1 -0
  167. package/dist/esm/adapters/coingecko/generated/eip155_43114/adapter.json +1 -0
  168. package/dist/esm/adapters/coingecko/generated/eip155_56/adapter.json +1 -0
  169. package/dist/esm/adapters/coingecko/generated/eip155_747474/adapter.json +1 -0
  170. package/dist/esm/adapters/coingecko/generated/eip155_8453/adapter.json +1 -0
  171. package/dist/esm/adapters/coingecko/generated/eip155_9745/adapter.json +1 -0
  172. package/dist/esm/adapters/coingecko/generated/eip155_999/adapter.json +1 -0
  173. package/dist/esm/adapters/coingecko/generated/index.d.ts +27 -0
  174. package/dist/esm/adapters/coingecko/generated/index.js +27 -0
  175. package/dist/esm/adapters/coingecko/generated/near_mainnet/adapter.json +1 -0
  176. package/dist/esm/adapters/coingecko/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +1 -0
  177. package/dist/esm/adapters/coingecko/generated/starknet_SN_MAIN/adapter.json +1 -0
  178. package/dist/esm/adapters/coingecko/generated/sui_35834a8a/adapter.json +1 -0
  179. package/dist/esm/adapters/coingecko/generated/tron_0x2b6653dc/adapter.json +1 -0
  180. package/dist/esm/adapters/coingecko/index.d.ts +34 -0
  181. package/dist/esm/adapters/coingecko/index.js +187 -0
  182. package/dist/esm/adapters/coingecko/index.test.d.ts +1 -0
  183. package/dist/esm/adapters/coingecko/index.test.js +316 -0
  184. package/dist/esm/adapters/coingecko/utils.d.ts +11 -0
  185. package/dist/esm/adapters/coingecko/utils.js +302 -0
  186. package/dist/esm/adapters/coingecko/utils.test.d.ts +1 -0
  187. package/dist/esm/adapters/coingecko/utils.test.js +215 -0
  188. package/dist/esm/adapters/index.d.ts +6 -0
  189. package/dist/esm/adapters/index.js +6 -0
  190. package/dist/esm/adapters/mtpelerin/index.d.ts +10 -0
  191. package/dist/esm/adapters/mtpelerin/index.js +121 -0
  192. package/dist/esm/adapters/onramper/index.d.ts +6 -0
  193. package/dist/esm/adapters/onramper/index.js +31 -0
  194. package/dist/esm/assetId/assetId.d.ts +36 -0
  195. package/dist/esm/assetId/assetId.js +114 -0
  196. package/dist/esm/assetId/assetId.test.d.ts +1 -0
  197. package/dist/esm/assetId/assetId.test.js +322 -0
  198. package/dist/esm/chainId/chainId.d.ts +20 -0
  199. package/dist/esm/chainId/chainId.js +20 -0
  200. package/dist/esm/chainId/chainId.test.d.ts +1 -0
  201. package/dist/esm/chainId/chainId.test.js +88 -0
  202. package/dist/esm/constants.d.ts +163 -0
  203. package/dist/esm/constants.js +227 -0
  204. package/dist/esm/index.d.ts +7 -0
  205. package/dist/esm/index.js +7 -0
  206. package/dist/esm/typeGuards.d.ts +16 -0
  207. package/dist/esm/typeGuards.js +44 -0
  208. package/dist/esm/utils.d.ts +36 -0
  209. package/dist/esm/utils.js +27 -0
  210. package/dist/esm/utils.test.d.ts +1 -0
  211. package/dist/esm/utils.test.js +158 -0
  212. package/package.json +1 -1
@@ -0,0 +1,302 @@
1
+ import axios from 'axios';
2
+ import fs from 'fs';
3
+ import { toAssetId } from '../../assetId/assetId.js';
4
+ import { arbitrumAssetId, arbitrumChainId, arbitrumNovaAssetId, arbitrumNovaChainId, ASSET_NAMESPACE, avalancheAssetId, avalancheChainId, baseAssetId, baseChainId, bchChainId, bscAssetId, bscChainId, btcChainId, CHAIN_NAMESPACE, CHAIN_REFERENCE, cosmosChainId, dogeChainId, ethAssetId, ethChainId, gnosisAssetId, gnosisChainId, hyperEvmAssetId, hyperEvmChainId, katanaAssetId, katanaChainId, ltcChainId, mayachainChainId, monadAssetId, monadChainId, nearAssetId, nearChainId, optimismAssetId, optimismChainId, plasmaAssetId, plasmaChainId, polygonAssetId, polygonChainId, solanaChainId, solAssetId, starknetAssetId, starknetChainId, suiAssetId, suiChainId, thorchainChainId, tronAssetId, tronChainId, zecChainId, } from '../../constants.js';
5
+ import { bitcoinAssetMap, bitcoinCashAssetMap, cosmosAssetMap, dogecoinAssetMap, litecoinAssetMap, mayachainAssetMap, thorchainAssetMap, zcashAssetMap, } from '../../utils.js';
6
+ import { CoingeckoAssetPlatform } from './index.js';
7
+ export const fetchData = async (URL) => (await axios.get(URL)).data;
8
+ export const parseData = (coins) => {
9
+ const assetMap = coins.reduce((prev, { id, platforms }) => {
10
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Ethereum)) {
11
+ try {
12
+ const assetId = toAssetId({
13
+ chainNamespace: CHAIN_NAMESPACE.Evm,
14
+ chainReference: CHAIN_REFERENCE.EthereumMainnet,
15
+ assetNamespace: 'erc20',
16
+ assetReference: platforms[CoingeckoAssetPlatform.Ethereum],
17
+ });
18
+ prev[ethChainId][assetId] = id;
19
+ }
20
+ catch {
21
+ // unable to create assetId, skip token
22
+ }
23
+ }
24
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Avalanche)) {
25
+ try {
26
+ const assetId = toAssetId({
27
+ chainNamespace: CHAIN_NAMESPACE.Evm,
28
+ chainReference: CHAIN_REFERENCE.AvalancheCChain,
29
+ assetNamespace: 'erc20',
30
+ assetReference: platforms[CoingeckoAssetPlatform.Avalanche],
31
+ });
32
+ prev[avalancheChainId][assetId] = id;
33
+ }
34
+ catch {
35
+ // unable to create assetId, skip token
36
+ }
37
+ }
38
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Optimism)) {
39
+ try {
40
+ const assetId = toAssetId({
41
+ chainNamespace: CHAIN_NAMESPACE.Evm,
42
+ chainReference: CHAIN_REFERENCE.OptimismMainnet,
43
+ assetNamespace: 'erc20',
44
+ assetReference: platforms[CoingeckoAssetPlatform.Optimism],
45
+ });
46
+ prev[optimismChainId][assetId] = id;
47
+ }
48
+ catch {
49
+ // unable to create assetId, skip token
50
+ }
51
+ }
52
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.BnbSmartChain)) {
53
+ try {
54
+ const assetId = toAssetId({
55
+ chainNamespace: CHAIN_NAMESPACE.Evm,
56
+ chainReference: CHAIN_REFERENCE.BnbSmartChainMainnet,
57
+ assetNamespace: 'erc20',
58
+ assetReference: platforms[CoingeckoAssetPlatform.BnbSmartChain],
59
+ });
60
+ prev[bscChainId][assetId] = id;
61
+ }
62
+ catch {
63
+ // unable to create assetId, skip token
64
+ }
65
+ }
66
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Polygon)) {
67
+ try {
68
+ const assetId = toAssetId({
69
+ chainNamespace: CHAIN_NAMESPACE.Evm,
70
+ chainReference: CHAIN_REFERENCE.PolygonMainnet,
71
+ assetNamespace: 'erc20',
72
+ assetReference: platforms[CoingeckoAssetPlatform.Polygon],
73
+ });
74
+ prev[polygonChainId][assetId] = id;
75
+ }
76
+ catch (err) {
77
+ // unable to create assetId, skip token
78
+ }
79
+ }
80
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Gnosis)) {
81
+ try {
82
+ const assetId = toAssetId({
83
+ chainNamespace: CHAIN_NAMESPACE.Evm,
84
+ chainReference: CHAIN_REFERENCE.GnosisMainnet,
85
+ assetNamespace: 'erc20',
86
+ assetReference: platforms[CoingeckoAssetPlatform.Gnosis],
87
+ });
88
+ prev[gnosisChainId][assetId] = id;
89
+ }
90
+ catch (err) {
91
+ // unable to create assetId, skip token
92
+ }
93
+ }
94
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Arbitrum)) {
95
+ try {
96
+ const assetId = toAssetId({
97
+ chainNamespace: CHAIN_NAMESPACE.Evm,
98
+ chainReference: CHAIN_REFERENCE.ArbitrumMainnet,
99
+ assetNamespace: 'erc20',
100
+ assetReference: platforms[CoingeckoAssetPlatform.Arbitrum],
101
+ });
102
+ prev[arbitrumChainId][assetId] = id;
103
+ }
104
+ catch (err) {
105
+ // unable to create assetId, skip token
106
+ }
107
+ }
108
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.ArbitrumNova)) {
109
+ try {
110
+ const assetId = toAssetId({
111
+ chainNamespace: CHAIN_NAMESPACE.Evm,
112
+ chainReference: CHAIN_REFERENCE.ArbitrumNovaMainnet,
113
+ assetNamespace: 'erc20',
114
+ assetReference: platforms[CoingeckoAssetPlatform.ArbitrumNova],
115
+ });
116
+ prev[arbitrumNovaChainId][assetId] = id;
117
+ }
118
+ catch (err) {
119
+ // unable to create assetId, skip token
120
+ }
121
+ }
122
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Base)) {
123
+ try {
124
+ const assetId = toAssetId({
125
+ chainNamespace: CHAIN_NAMESPACE.Evm,
126
+ chainReference: CHAIN_REFERENCE.BaseMainnet,
127
+ assetNamespace: 'erc20',
128
+ assetReference: platforms[CoingeckoAssetPlatform.Base],
129
+ });
130
+ prev[baseChainId][assetId] = id;
131
+ }
132
+ catch {
133
+ // unable to create assetId, skip token
134
+ }
135
+ }
136
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.HyperEvm)) {
137
+ try {
138
+ const assetId = toAssetId({
139
+ chainNamespace: CHAIN_NAMESPACE.Evm,
140
+ chainReference: CHAIN_REFERENCE.HyperEvmMainnet,
141
+ assetNamespace: 'erc20',
142
+ assetReference: platforms[CoingeckoAssetPlatform.HyperEvm],
143
+ });
144
+ prev[hyperEvmChainId][assetId] = id;
145
+ }
146
+ catch {
147
+ // unable to create assetId, skip token
148
+ }
149
+ }
150
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Solana)) {
151
+ try {
152
+ const assetId = toAssetId({
153
+ chainNamespace: CHAIN_NAMESPACE.Solana,
154
+ chainReference: CHAIN_REFERENCE.SolanaMainnet,
155
+ assetNamespace: 'token',
156
+ assetReference: platforms[CoingeckoAssetPlatform.Solana],
157
+ });
158
+ prev[solanaChainId][assetId] = id;
159
+ }
160
+ catch {
161
+ // unable to create assetId, skip token
162
+ }
163
+ }
164
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Tron)) {
165
+ try {
166
+ const assetId = toAssetId({
167
+ chainNamespace: CHAIN_NAMESPACE.Tron,
168
+ chainReference: CHAIN_REFERENCE.TronMainnet,
169
+ assetNamespace: 'trc20',
170
+ assetReference: platforms[CoingeckoAssetPlatform.Tron],
171
+ });
172
+ prev[tronChainId][assetId] = id;
173
+ }
174
+ catch {
175
+ // unable to create assetId, skip token
176
+ }
177
+ }
178
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Sui)) {
179
+ try {
180
+ const assetId = toAssetId({
181
+ chainNamespace: CHAIN_NAMESPACE.Sui,
182
+ chainReference: CHAIN_REFERENCE.SuiMainnet,
183
+ assetNamespace: ASSET_NAMESPACE.suiCoin,
184
+ assetReference: platforms[CoingeckoAssetPlatform.Sui],
185
+ });
186
+ prev[suiChainId][assetId] = id;
187
+ }
188
+ catch {
189
+ // unable to create assetId, skip token
190
+ }
191
+ }
192
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Monad)) {
193
+ try {
194
+ const assetId = toAssetId({
195
+ chainNamespace: CHAIN_NAMESPACE.Evm,
196
+ chainReference: CHAIN_REFERENCE.MonadMainnet,
197
+ assetNamespace: 'erc20',
198
+ assetReference: platforms[CoingeckoAssetPlatform.Monad],
199
+ });
200
+ prev[monadChainId][assetId] = id;
201
+ }
202
+ catch {
203
+ // unable to create assetId, skip token
204
+ }
205
+ }
206
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Plasma)) {
207
+ try {
208
+ const assetId = toAssetId({
209
+ chainNamespace: CHAIN_NAMESPACE.Evm,
210
+ chainReference: CHAIN_REFERENCE.PlasmaMainnet,
211
+ assetNamespace: 'erc20',
212
+ assetReference: platforms[CoingeckoAssetPlatform.Plasma],
213
+ });
214
+ prev[plasmaChainId][assetId] = id;
215
+ }
216
+ catch {
217
+ // unable to create assetId, skip token
218
+ }
219
+ }
220
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Katana)) {
221
+ try {
222
+ const assetId = toAssetId({
223
+ chainNamespace: CHAIN_NAMESPACE.Evm,
224
+ chainReference: CHAIN_REFERENCE.KatanaMainnet,
225
+ assetNamespace: 'erc20',
226
+ assetReference: platforms[CoingeckoAssetPlatform.Katana],
227
+ });
228
+ prev[katanaChainId][assetId] = id;
229
+ }
230
+ catch {
231
+ // unable to create assetId, skip token
232
+ }
233
+ }
234
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Starknet)) {
235
+ try {
236
+ const assetId = toAssetId({
237
+ chainNamespace: CHAIN_NAMESPACE.Starknet,
238
+ chainReference: CHAIN_REFERENCE.StarknetMainnet,
239
+ assetNamespace: ASSET_NAMESPACE.starknetToken,
240
+ assetReference: platforms[CoingeckoAssetPlatform.Starknet],
241
+ });
242
+ prev[starknetChainId][assetId] = id;
243
+ }
244
+ catch {
245
+ // unable to create assetId, skip token
246
+ }
247
+ }
248
+ if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Near)) {
249
+ try {
250
+ const assetId = toAssetId({
251
+ chainNamespace: CHAIN_NAMESPACE.Near,
252
+ chainReference: CHAIN_REFERENCE.NearMainnet,
253
+ assetNamespace: ASSET_NAMESPACE.nep141,
254
+ assetReference: platforms[CoingeckoAssetPlatform.Near],
255
+ });
256
+ prev[nearChainId][assetId] = id;
257
+ }
258
+ catch {
259
+ // unable to create assetId, skip token
260
+ }
261
+ }
262
+ return prev;
263
+ }, {
264
+ [ethChainId]: { [ethAssetId]: 'ethereum' },
265
+ [avalancheChainId]: { [avalancheAssetId]: 'avalanche-2' },
266
+ [optimismChainId]: { [optimismAssetId]: 'ethereum' },
267
+ [bscChainId]: { [bscAssetId]: 'binancecoin' },
268
+ [polygonChainId]: { [polygonAssetId]: 'polygon-ecosystem-token' },
269
+ [gnosisChainId]: { [gnosisAssetId]: 'xdai' },
270
+ [arbitrumChainId]: { [arbitrumAssetId]: 'ethereum' },
271
+ [arbitrumNovaChainId]: { [arbitrumNovaAssetId]: 'ethereum' },
272
+ [baseChainId]: { [baseAssetId]: 'ethereum' },
273
+ [hyperEvmChainId]: { [hyperEvmAssetId]: 'hyperliquid' },
274
+ [monadChainId]: { [monadAssetId]: 'monad' },
275
+ [plasmaChainId]: { [plasmaAssetId]: 'plasma' },
276
+ [katanaChainId]: { [katanaAssetId]: 'katana' },
277
+ [solanaChainId]: { [solAssetId]: 'solana' },
278
+ [starknetChainId]: { [starknetAssetId]: 'starknet' },
279
+ [tronChainId]: { [tronAssetId]: 'tron' },
280
+ [suiChainId]: { [suiAssetId]: 'sui' },
281
+ [nearChainId]: { [nearAssetId]: 'near' },
282
+ });
283
+ return {
284
+ ...assetMap,
285
+ [btcChainId]: bitcoinAssetMap,
286
+ [bchChainId]: bitcoinCashAssetMap,
287
+ [dogeChainId]: dogecoinAssetMap,
288
+ [ltcChainId]: litecoinAssetMap,
289
+ [zecChainId]: zcashAssetMap,
290
+ [cosmosChainId]: cosmosAssetMap,
291
+ [thorchainChainId]: thorchainAssetMap,
292
+ [mayachainChainId]: mayachainAssetMap,
293
+ };
294
+ };
295
+ export const writeFiles = async (data) => {
296
+ await Promise.all(Object.entries(data).map(async ([chainId, assets]) => {
297
+ const dirPath = `./src/adapters/coingecko/generated/${chainId}`.replace(':', '_');
298
+ await fs.promises.mkdir(dirPath, { recursive: true });
299
+ await fs.promises.writeFile(`${dirPath}/adapter.json`, JSON.stringify(assets));
300
+ }));
301
+ console.info('Generated CoinGecko AssetId adapter data.');
302
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,215 @@
1
+ import realFs from 'fs';
2
+ import { describe, expect, it, vi } from 'vitest';
3
+ import { bitcoinAssetMap, cosmosAssetMap } from '../../utils.js';
4
+ import { parseData, writeFiles } from './utils.js';
5
+ const makeEthMockCoingeckoResponse = () => ({
6
+ id: 'ethereum',
7
+ symbol: 'eth',
8
+ platforms: {},
9
+ });
10
+ const makeWethMockCoingeckoResponse = () => ({
11
+ id: 'weth',
12
+ symbol: 'weth',
13
+ name: 'WETH',
14
+ platforms: {
15
+ ethereum: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
16
+ 'optimistic-ethereum': '0x4200000000000000000000000000000000000006',
17
+ avalanche: '0x49d5c2bdffac6ce2bfdb6640f4f80f226bc10bab',
18
+ 'binance-smart-chain': '0x2170ed0880ac9a755fd29b2688956bd959f933f8',
19
+ 'polygon-pos': '0x7ceb23fd6bc0add59e62ac25578270cff1b9f619',
20
+ xdai: '0x6a023ccd1ff6f2045c3309768ead9e68f978f6e1',
21
+ 'arbitrum-one': '0x82af49447d8a07e3bd95bd0d56f35241523fbab1',
22
+ 'arbitrum-nova': '0x722e8bdd2ce80a4422e880164f2079488e115365',
23
+ base: '0x4200000000000000000000000000000000000006',
24
+ },
25
+ });
26
+ const makeAvalancheMockCoingeckoResponse = () => ({
27
+ id: 'avalanche-2',
28
+ symbol: 'avax',
29
+ platforms: {},
30
+ });
31
+ const makeFoxMockCoingeckoResponse = () => ({
32
+ id: 'shapeshift-fox-token',
33
+ symbol: 'fox',
34
+ platforms: {
35
+ ethereum: '0xc770eefad204b5180df6a14ee197d99d808ee52d',
36
+ },
37
+ });
38
+ const makeBtcMockCoingeckoResponse = () => ({
39
+ id: 'bitcoin',
40
+ symbol: 'btc',
41
+ platforms: {},
42
+ });
43
+ const makeCosmosMockCoingeckoResponse = () => ({
44
+ id: 'cosmos',
45
+ symbol: 'atom',
46
+ platforms: {},
47
+ });
48
+ const makePolygonMockCoingeckoResponse = () => ({
49
+ id: 'polygon-pos',
50
+ symbol: 'matic',
51
+ platforms: {},
52
+ });
53
+ const makeGnosisMockCoingeckoResponse = () => ({
54
+ id: 'gnosis',
55
+ symbol: 'xDai',
56
+ platforms: {},
57
+ });
58
+ const makeThorchainMockCoingeckoResponse = () => ({
59
+ id: 'thorchain',
60
+ symbol: 'rune',
61
+ platforms: {
62
+ thorchain: '',
63
+ },
64
+ });
65
+ vi.mock('fs', () => ({
66
+ default: {
67
+ promises: {
68
+ writeFile: vi.fn(() => undefined),
69
+ mkdir: vi.fn(() => undefined),
70
+ },
71
+ },
72
+ }));
73
+ describe('adapters:coingecko:utils', () => {
74
+ describe('makeData', () => {
75
+ it('can make btc data', () => {
76
+ const result = bitcoinAssetMap;
77
+ const expected = { 'bip122:000000000019d6689c085ae165831e93/slip44:0': 'bitcoin' };
78
+ expect(result).toEqual(expected);
79
+ });
80
+ it('can make cosmos data', () => {
81
+ const result = cosmosAssetMap;
82
+ const expected = { 'cosmos:cosmoshub-4/slip44:118': 'cosmos' };
83
+ expect(result).toEqual(expected);
84
+ });
85
+ });
86
+ describe('parseData', () => {
87
+ it('can parse all data', () => {
88
+ const result = parseData([
89
+ makeEthMockCoingeckoResponse(),
90
+ makeWethMockCoingeckoResponse(),
91
+ makeFoxMockCoingeckoResponse(),
92
+ makeBtcMockCoingeckoResponse(),
93
+ makeCosmosMockCoingeckoResponse(),
94
+ makeThorchainMockCoingeckoResponse(),
95
+ makeAvalancheMockCoingeckoResponse(),
96
+ makePolygonMockCoingeckoResponse(),
97
+ makeGnosisMockCoingeckoResponse(),
98
+ ]);
99
+ const expected = {
100
+ 'bip122:000000000019d6689c085ae165831e93': {
101
+ 'bip122:000000000019d6689c085ae165831e93/slip44:0': 'bitcoin',
102
+ },
103
+ 'bip122:000000000000000000651ef99cb9fcbe': {
104
+ 'bip122:000000000000000000651ef99cb9fcbe/slip44:145': 'bitcoin-cash',
105
+ },
106
+ 'bip122:00000000001a91e3dace36e2be3bf030': {
107
+ 'bip122:00000000001a91e3dace36e2be3bf030/slip44:3': 'dogecoin',
108
+ },
109
+ 'bip122:12a765e31ffd4059bada1e25190f6e98': {
110
+ 'bip122:12a765e31ffd4059bada1e25190f6e98/slip44:2': 'litecoin',
111
+ },
112
+ 'bip122:00040fe8ec8471911baa1db1266ea15d': {
113
+ 'bip122:00040fe8ec8471911baa1db1266ea15d/slip44:133': 'zcash',
114
+ },
115
+ 'cosmos:cosmoshub-4': {
116
+ 'cosmos:cosmoshub-4/slip44:118': 'cosmos',
117
+ },
118
+ 'cosmos:thorchain-1': {
119
+ 'cosmos:thorchain-1/slip44:931': 'thorchain',
120
+ },
121
+ 'cosmos:mayachain-mainnet-v1': {
122
+ 'cosmos:mayachain-mainnet-v1/slip44:931': 'cacao',
123
+ },
124
+ 'eip155:1': {
125
+ 'eip155:1/slip44:60': 'ethereum',
126
+ 'eip155:1/erc20:0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2': 'weth',
127
+ 'eip155:1/erc20:0xc770eefad204b5180df6a14ee197d99d808ee52d': 'shapeshift-fox-token',
128
+ },
129
+ 'eip155:43114': {
130
+ 'eip155:43114/slip44:60': 'avalanche-2',
131
+ 'eip155:43114/erc20:0x49d5c2bdffac6ce2bfdb6640f4f80f226bc10bab': 'weth',
132
+ },
133
+ 'eip155:56': {
134
+ 'eip155:56/slip44:60': 'binancecoin',
135
+ 'eip155:56/erc20:0x2170ed0880ac9a755fd29b2688956bd959f933f8': 'weth',
136
+ },
137
+ 'eip155:10': {
138
+ 'eip155:10/slip44:60': 'ethereum',
139
+ 'eip155:10/erc20:0x4200000000000000000000000000000000000006': 'weth',
140
+ },
141
+ 'eip155:137': {
142
+ 'eip155:137/slip44:60': 'polygon-ecosystem-token',
143
+ 'eip155:137/erc20:0x7ceb23fd6bc0add59e62ac25578270cff1b9f619': 'weth',
144
+ },
145
+ 'eip155:100': {
146
+ 'eip155:100/slip44:60': 'xdai',
147
+ 'eip155:100/erc20:0x6a023ccd1ff6f2045c3309768ead9e68f978f6e1': 'weth',
148
+ },
149
+ 'eip155:42161': {
150
+ 'eip155:42161/slip44:60': 'ethereum',
151
+ 'eip155:42161/erc20:0x82af49447d8a07e3bd95bd0d56f35241523fbab1': 'weth',
152
+ },
153
+ 'eip155:42170': {
154
+ 'eip155:42170/slip44:60': 'ethereum',
155
+ 'eip155:42170/erc20:0x722e8bdd2ce80a4422e880164f2079488e115365': 'weth',
156
+ },
157
+ 'eip155:8453': {
158
+ 'eip155:8453/slip44:60': 'ethereum',
159
+ 'eip155:8453/erc20:0x4200000000000000000000000000000000000006': 'weth',
160
+ },
161
+ 'eip155:143': {
162
+ 'eip155:143/slip44:60': 'monad',
163
+ },
164
+ 'eip155:999': {
165
+ 'eip155:999/slip44:60': 'hyperliquid',
166
+ },
167
+ 'eip155:9745': {
168
+ 'eip155:9745/slip44:60': 'plasma',
169
+ },
170
+ 'eip155:747474': {
171
+ 'eip155:747474/slip44:60': 'katana',
172
+ },
173
+ 'near:mainnet': {
174
+ 'near:mainnet/slip44:397': 'near',
175
+ },
176
+ 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp': {
177
+ 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501': 'solana',
178
+ },
179
+ 'sui:35834a8a': {
180
+ 'sui:35834a8a/slip44:784': 'sui',
181
+ },
182
+ 'tron:0x2b6653dc': {
183
+ 'tron:0x2b6653dc/slip44:195': 'tron',
184
+ },
185
+ 'starknet:SN_MAIN': {
186
+ 'starknet:SN_MAIN/slip44:9004': 'starknet',
187
+ },
188
+ };
189
+ expect(result).toEqual(expected);
190
+ });
191
+ });
192
+ describe('writeFiles', () => {
193
+ it('can writeFiles', async () => {
194
+ const data = {
195
+ foo: {
196
+ assetIdAbc: 'bitcorn',
197
+ assetIdDef: 'efferium',
198
+ },
199
+ bar: {
200
+ assetIdGhi: 'fox',
201
+ assetIdJkl: 'shib',
202
+ },
203
+ };
204
+ const fooAssetIds = JSON.stringify(data.foo);
205
+ const barAssetIds = JSON.stringify(data.bar);
206
+ console.info = vi.fn();
207
+ await writeFiles(data);
208
+ expect(realFs.promises.mkdir).toHaveBeenNthCalledWith(1, './src/adapters/coingecko/generated/foo', { recursive: true });
209
+ expect(realFs.promises.writeFile).toHaveBeenNthCalledWith(1, './src/adapters/coingecko/generated/foo/adapter.json', fooAssetIds);
210
+ expect(realFs.promises.mkdir).toHaveBeenNthCalledWith(2, './src/adapters/coingecko/generated/bar', { recursive: true });
211
+ expect(realFs.promises.writeFile).toHaveBeenNthCalledWith(2, './src/adapters/coingecko/generated/bar/adapter.json', barAssetIds);
212
+ expect(console.info).toBeCalledWith('Generated CoinGecko AssetId adapter data.');
213
+ });
214
+ });
215
+ });
@@ -0,0 +1,6 @@
1
+ export * from './coingecko/index.js';
2
+ export * from './coincap/index.js';
3
+ export * from './banxa/index.js';
4
+ export * from './coinbase/index.js';
5
+ export * from './mtpelerin/index.js';
6
+ export * from './onramper/index.js';
@@ -0,0 +1,6 @@
1
+ export * from './coingecko/index.js';
2
+ export * from './coincap/index.js';
3
+ export * from './banxa/index.js';
4
+ export * from './coinbase/index.js';
5
+ export * from './mtpelerin/index.js';
6
+ export * from './onramper/index.js';
@@ -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;
@@ -0,0 +1,121 @@
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
+ /**
4
+ * provided from https://api.mtPelerin.com/currencies/tokens
5
+ */
6
+ const MtPelerinSymbolToAssetIds = {
7
+ ETH: [ethAssetId, optimismAssetId, arbitrumAssetId, baseAssetId],
8
+ POL: [polygonAssetId],
9
+ XDAI: [gnosisAssetId],
10
+ BTC: [btcAssetId],
11
+ BNB: [bscAssetId],
12
+ DAI: ['eip155:1/erc20:0x6b175474e89094c44da98b954eedeac495271d0f'],
13
+ USDT: [
14
+ 'eip155:1/erc20:0xdac17f958d2ee523a2206206994597c13d831ec7',
15
+ 'eip155:10/erc20:0x94b008aa00579c1307b0ef2c499ad98a8ce58e58',
16
+ 'eip155:56/erc20:0x55d398326f99059ff775485246999027b3197955',
17
+ 'eip155:100/erc20:0x4ecaba5870353805a9f068101a40e0f32ed605c6',
18
+ 'eip155:137/erc20:0xc2132d05d31c914a87c6611c10748aeb04b58e8f',
19
+ 'eip155:42161/erc20:0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9',
20
+ ],
21
+ USDC: [
22
+ 'eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
23
+ 'eip155:10/erc20:0x0b2c639c533813f4aa9d7837caf62653d097ff85',
24
+ 'eip155:56/erc20:0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d',
25
+ 'eip155:137/erc20:0x3c499c542cef5e3811e1192ce70d8cc03d5c3359',
26
+ 'eip155:100/erc20:0xddafbb505ad214d7b80b1f830fccc89b60fb7a83',
27
+ 'eip155:42161/erc20:0xaf88d065e77c8cc2239327c5edb3a432268e5831',
28
+ 'eip155:43114/erc20:0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e',
29
+ 'eip155:8453/erc20:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913',
30
+ ],
31
+ 'USDC.e': [
32
+ 'eip155:10/erc20:0x7f5c764cbc14f9669b88837ca1490cca17c31607',
33
+ 'eip155:137/erc20:0x2791bca1f2de4661ed88a30c99a7a9449aa84174',
34
+ 'eip155:42161/erc20:0xff970a61a04b1ca14834a43f5de4533ebddb5cc8',
35
+ 'eip155:43114/erc20:0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664',
36
+ ],
37
+ WBTC: [
38
+ 'eip155:1/erc20:0x2260fac5e5542a773aa44fbcfedf7c193bc2c599',
39
+ 'eip155:10/erc20:0x68f180fcce6836688e9084f035309e29bf0a2095',
40
+ 'eip155:100/erc20:0x8e5bbbb09ed1ebde8674cda39a0c169401db4252',
41
+ 'eip155:137/erc20:0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6',
42
+ 'eip155:42161/erc20:0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f',
43
+ ],
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
+ ],
59
+ EURS: [
60
+ 'eip155:1/erc20:0xdb25f211ab05b1c97d595516f45794528a807ad8',
61
+ 'eip155:137/erc20:0xe111178a87a3bff0c8d18decba5798827539ae99',
62
+ ],
63
+ FRAX: [
64
+ 'eip155:1/erc20:0x853d955acef822db058eb8505911ed77f175b99e',
65
+ 'eip155:137/erc20:0x45c32fa6df82ead1e2ef74d17b76547eddfaff89',
66
+ 'eip155:43114/erc20:0xd24c2ad096400b6fbcd2ad8b24e7acbc21a1da64',
67
+ ],
68
+ GHO: ['eip155:1/erc20:0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f'],
69
+ LUSD: [
70
+ 'eip155:1/erc20:0x5f98805a4e8be255a32880fdec7f6728c6568ba0',
71
+ 'eip155:10/erc20:0xc40f949f8a4e094d1b49a23ea9241d289b7b2819',
72
+ ],
73
+ PAXG: ['eip155:1/erc20:0x45804880de22913dafe09f4980848ece6ecbaf78'],
74
+ WETH: [
75
+ 'eip155:56/erc20:0x2170ed0880ac9a755fd29b2688956bd959f933f8',
76
+ 'eip155:100/erc20:0x6a023ccd1ff6f2045c3309768ead9e68f978f6e1',
77
+ 'eip155:137/erc20:0x7ceb23fd6bc0add59e62ac25578270cff1b9f619',
78
+ ],
79
+ BTCB: ['eip155:56/erc20:0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c'],
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
+ ],
86
+ };
87
+ export const mtPelerinSymbolToAssetIds = (id) => MtPelerinSymbolToAssetIds[id];
88
+ export const assetIdToMtPelerinSymbol = (assetId) => {
89
+ return Object.entries(MtPelerinSymbolToAssetIds)
90
+ .filter(([, assetIds]) => assetIds.includes(assetId))
91
+ .map(([key]) => key)[0];
92
+ };
93
+ /**
94
+ * map ChainIds to MtPelerin network,
95
+ * since some MtPelerin assets could be on multiple chains and their default
96
+ * chain won't be exactly the same as ours.
97
+ *
98
+ * https://developers.mtPelerin.com/integration-guides/options -> "net"
99
+ * source of truth per MtPelerin
100
+ */
101
+ const chainIdToMtPelerinNetworkCodeMap = {
102
+ [ethChainId]: 'mainnet',
103
+ [btcChainId]: 'bitcoin_mainnet',
104
+ [avalancheChainId]: 'avalanche_mainnet',
105
+ [optimismChainId]: 'optimism_mainnet',
106
+ [polygonChainId]: 'matic_mainnet',
107
+ [gnosisChainId]: 'xdai_mainnet',
108
+ [bscChainId]: 'bsc_mainnet',
109
+ [arbitrumChainId]: 'arbitrum_mainnet',
110
+ [baseChainId]: 'base_mainnet',
111
+ };
112
+ /**
113
+ * Convert a mtPelerin asset identifier to a MtPelerin chain identifier for use in MtPelerin HTTP URLs
114
+ *
115
+ * @param {string} assetId - an assetId string referencing a specific asset; e.g., ethAssetId
116
+ * @returns {string} - a MtPelerin network identifier; e.g., 'mainnet'
117
+ */
118
+ export const getMtPelerinNetFromAssetId = (assetId) => {
119
+ const { chainId } = fromAssetId(assetId);
120
+ return chainIdToMtPelerinNetworkCodeMap[chainId];
121
+ };
@@ -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 {};