@shapeshiftoss/caip 8.16.4 → 8.16.5

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 (198) 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 +10 -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_12a765e31ffd4059bada1e25190f6e98/adapter.json +1 -0
  23. package/dist/cjs/adapters/coincap/generated/cosmos_cosmoshub-4/adapter.json +1 -0
  24. package/dist/cjs/adapters/coincap/generated/cosmos_thorchain-1/adapter.json +1 -0
  25. package/dist/cjs/adapters/coincap/generated/eip155_1/adapter.json +1 -0
  26. package/dist/cjs/adapters/coincap/generated/eip155_10/adapter.json +1 -0
  27. package/dist/cjs/adapters/coincap/generated/eip155_137/adapter.json +1 -0
  28. package/dist/cjs/adapters/coincap/generated/eip155_42161/adapter.json +1 -0
  29. package/dist/cjs/adapters/coincap/generated/eip155_43114/adapter.json +1 -0
  30. package/dist/cjs/adapters/coincap/generated/eip155_56/adapter.json +1 -0
  31. package/dist/cjs/adapters/coincap/generated/eip155_8453/adapter.json +1 -0
  32. package/dist/cjs/adapters/coincap/generated/index.d.ts +15 -0
  33. package/dist/cjs/adapters/coincap/generated/index.js +34 -0
  34. package/dist/cjs/adapters/coincap/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +1 -0
  35. package/dist/cjs/adapters/coincap/index.d.ts +4 -0
  36. package/dist/cjs/adapters/coincap/index.js +44 -0
  37. package/dist/cjs/adapters/coincap/index.test.d.ts +1 -0
  38. package/dist/cjs/adapters/coincap/index.test.js +90 -0
  39. package/dist/cjs/adapters/coincap/utils.d.ts +24 -0
  40. package/dist/cjs/adapters/coincap/utils.js +146 -0
  41. package/dist/cjs/adapters/coincap/utils.test.d.ts +4 -0
  42. package/dist/cjs/adapters/coincap/utils.test.js +173 -0
  43. package/dist/cjs/adapters/coingecko/generate.d.ts +1 -0
  44. package/dist/cjs/adapters/coingecko/generate.js +10 -0
  45. package/dist/cjs/adapters/coingecko/generated/bip122_000000000000000000651ef99cb9fcbe/adapter.json +1 -0
  46. package/dist/cjs/adapters/coingecko/generated/bip122_000000000019d6689c085ae165831e93/adapter.json +1 -0
  47. package/dist/cjs/adapters/coingecko/generated/bip122_00000000001a91e3dace36e2be3bf030/adapter.json +1 -0
  48. package/dist/cjs/adapters/coingecko/generated/bip122_12a765e31ffd4059bada1e25190f6e98/adapter.json +1 -0
  49. package/dist/cjs/adapters/coingecko/generated/cosmos_cosmoshub-4/adapter.json +1 -0
  50. package/dist/cjs/adapters/coingecko/generated/cosmos_mayachain-mainnet-v1/adapter.json +1 -0
  51. package/dist/cjs/adapters/coingecko/generated/cosmos_thorchain-1/adapter.json +1 -0
  52. package/dist/cjs/adapters/coingecko/generated/eip155_1/adapter.json +1 -0
  53. package/dist/cjs/adapters/coingecko/generated/eip155_10/adapter.json +1 -0
  54. package/dist/cjs/adapters/coingecko/generated/eip155_100/adapter.json +1 -0
  55. package/dist/cjs/adapters/coingecko/generated/eip155_137/adapter.json +1 -0
  56. package/dist/cjs/adapters/coingecko/generated/eip155_143/adapter.json +1 -0
  57. package/dist/cjs/adapters/coingecko/generated/eip155_42161/adapter.json +1 -0
  58. package/dist/cjs/adapters/coingecko/generated/eip155_42170/adapter.json +1 -0
  59. package/dist/cjs/adapters/coingecko/generated/eip155_43114/adapter.json +1 -0
  60. package/dist/cjs/adapters/coingecko/generated/eip155_56/adapter.json +1 -0
  61. package/dist/cjs/adapters/coingecko/generated/eip155_8453/adapter.json +1 -0
  62. package/dist/cjs/adapters/coingecko/generated/index.d.ts +21 -0
  63. package/dist/cjs/adapters/coingecko/generated/index.js +46 -0
  64. package/dist/cjs/adapters/coingecko/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +1 -0
  65. package/dist/cjs/adapters/coingecko/generated/sui_35834a8a/adapter.json +1 -0
  66. package/dist/cjs/adapters/coingecko/generated/tron_0x2b6653dc/adapter.json +1 -0
  67. package/dist/cjs/adapters/coingecko/index.d.ts +29 -0
  68. package/dist/cjs/adapters/coingecko/index.js +188 -0
  69. package/dist/cjs/adapters/coingecko/index.test.d.ts +1 -0
  70. package/dist/cjs/adapters/coingecko/index.test.js +297 -0
  71. package/dist/cjs/adapters/coingecko/utils.d.ts +11 -0
  72. package/dist/cjs/adapters/coingecko/utils.js +235 -0
  73. package/dist/cjs/adapters/coingecko/utils.test.d.ts +1 -0
  74. package/dist/cjs/adapters/coingecko/utils.test.js +202 -0
  75. package/dist/cjs/adapters/index.d.ts +6 -0
  76. package/dist/cjs/adapters/index.js +22 -0
  77. package/dist/cjs/adapters/mtpelerin/index.d.ts +10 -0
  78. package/dist/cjs/adapters/mtpelerin/index.js +127 -0
  79. package/dist/cjs/adapters/onramper/index.d.ts +6 -0
  80. package/dist/cjs/adapters/onramper/index.js +39 -0
  81. package/dist/cjs/assetId/assetId.d.ts +36 -0
  82. package/dist/cjs/assetId/assetId.js +120 -0
  83. package/dist/cjs/assetId/assetId.test.d.ts +1 -0
  84. package/dist/cjs/assetId/assetId.test.js +324 -0
  85. package/dist/cjs/chainId/chainId.d.ts +20 -0
  86. package/dist/cjs/chainId/chainId.js +25 -0
  87. package/dist/cjs/chainId/chainId.test.d.ts +1 -0
  88. package/dist/cjs/chainId/chainId.test.js +90 -0
  89. package/dist/cjs/constants.d.ts +135 -0
  90. package/dist/cjs/constants.js +192 -0
  91. package/dist/cjs/index.d.ts +7 -0
  92. package/dist/cjs/index.js +36 -0
  93. package/dist/cjs/package.json +1 -0
  94. package/dist/cjs/typeGuards.d.ts +16 -0
  95. package/dist/cjs/typeGuards.js +56 -0
  96. package/dist/cjs/utils.d.ts +33 -0
  97. package/dist/cjs/utils.js +56 -0
  98. package/dist/cjs/utils.test.d.ts +1 -0
  99. package/dist/cjs/utils.test.js +160 -0
  100. package/dist/esm/.tsbuildinfo +1 -0
  101. package/dist/esm/accountId/accountId.d.ts +29 -0
  102. package/dist/esm/accountId/accountId.js +39 -0
  103. package/dist/esm/accountId/accountId.test.d.ts +1 -0
  104. package/dist/esm/accountId/accountId.test.js +107 -0
  105. package/dist/esm/adapters/banxa/index.d.ts +15 -0
  106. package/dist/esm/adapters/banxa/index.js +143 -0
  107. package/dist/esm/adapters/coinbase/generate.d.ts +1 -0
  108. package/dist/esm/adapters/coinbase/generate.js +7 -0
  109. package/dist/esm/adapters/coinbase/generated/adapter.json +153 -0
  110. package/dist/esm/adapters/coinbase/generated/index.d.ts +2 -0
  111. package/dist/esm/adapters/coinbase/generated/index.js +2 -0
  112. package/dist/esm/adapters/coinbase/index.d.ts +3 -0
  113. package/dist/esm/adapters/coinbase/index.js +8 -0
  114. package/dist/esm/adapters/coinbase/utils.d.ts +12 -0
  115. package/dist/esm/adapters/coinbase/utils.js +46 -0
  116. package/dist/esm/adapters/coincap/generate.d.ts +1 -0
  117. package/dist/esm/adapters/coincap/generate.js +8 -0
  118. package/dist/esm/adapters/coincap/generated/bip122_000000000000000000651ef99cb9fcbe/adapter.json +1 -0
  119. package/dist/esm/adapters/coincap/generated/bip122_000000000019d6689c085ae165831e93/adapter.json +1 -0
  120. package/dist/esm/adapters/coincap/generated/bip122_00000000001a91e3dace36e2be3bf030/adapter.json +1 -0
  121. package/dist/esm/adapters/coincap/generated/bip122_12a765e31ffd4059bada1e25190f6e98/adapter.json +1 -0
  122. package/dist/esm/adapters/coincap/generated/cosmos_cosmoshub-4/adapter.json +1 -0
  123. package/dist/esm/adapters/coincap/generated/cosmos_thorchain-1/adapter.json +1 -0
  124. package/dist/esm/adapters/coincap/generated/eip155_1/adapter.json +1 -0
  125. package/dist/esm/adapters/coincap/generated/eip155_10/adapter.json +1 -0
  126. package/dist/esm/adapters/coincap/generated/eip155_137/adapter.json +1 -0
  127. package/dist/esm/adapters/coincap/generated/eip155_42161/adapter.json +1 -0
  128. package/dist/esm/adapters/coincap/generated/eip155_43114/adapter.json +1 -0
  129. package/dist/esm/adapters/coincap/generated/eip155_56/adapter.json +1 -0
  130. package/dist/esm/adapters/coincap/generated/eip155_8453/adapter.json +1 -0
  131. package/dist/esm/adapters/coincap/generated/index.d.ts +15 -0
  132. package/dist/esm/adapters/coincap/generated/index.js +15 -0
  133. package/dist/esm/adapters/coincap/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +1 -0
  134. package/dist/esm/adapters/coincap/index.d.ts +4 -0
  135. package/dist/esm/adapters/coincap/index.js +13 -0
  136. package/dist/esm/adapters/coincap/index.test.d.ts +1 -0
  137. package/dist/esm/adapters/coincap/index.test.js +88 -0
  138. package/dist/esm/adapters/coincap/utils.d.ts +24 -0
  139. package/dist/esm/adapters/coincap/utils.js +135 -0
  140. package/dist/esm/adapters/coincap/utils.test.d.ts +4 -0
  141. package/dist/esm/adapters/coincap/utils.test.js +168 -0
  142. package/dist/esm/adapters/coingecko/generate.d.ts +1 -0
  143. package/dist/esm/adapters/coingecko/generate.js +8 -0
  144. package/dist/esm/adapters/coingecko/generated/bip122_000000000000000000651ef99cb9fcbe/adapter.json +1 -0
  145. package/dist/esm/adapters/coingecko/generated/bip122_000000000019d6689c085ae165831e93/adapter.json +1 -0
  146. package/dist/esm/adapters/coingecko/generated/bip122_00000000001a91e3dace36e2be3bf030/adapter.json +1 -0
  147. package/dist/esm/adapters/coingecko/generated/bip122_12a765e31ffd4059bada1e25190f6e98/adapter.json +1 -0
  148. package/dist/esm/adapters/coingecko/generated/cosmos_cosmoshub-4/adapter.json +1 -0
  149. package/dist/esm/adapters/coingecko/generated/cosmos_mayachain-mainnet-v1/adapter.json +1 -0
  150. package/dist/esm/adapters/coingecko/generated/cosmos_thorchain-1/adapter.json +1 -0
  151. package/dist/esm/adapters/coingecko/generated/eip155_1/adapter.json +1 -0
  152. package/dist/esm/adapters/coingecko/generated/eip155_10/adapter.json +1 -0
  153. package/dist/esm/adapters/coingecko/generated/eip155_100/adapter.json +1 -0
  154. package/dist/esm/adapters/coingecko/generated/eip155_137/adapter.json +1 -0
  155. package/dist/esm/adapters/coingecko/generated/eip155_143/adapter.json +1 -0
  156. package/dist/esm/adapters/coingecko/generated/eip155_42161/adapter.json +1 -0
  157. package/dist/esm/adapters/coingecko/generated/eip155_42170/adapter.json +1 -0
  158. package/dist/esm/adapters/coingecko/generated/eip155_43114/adapter.json +1 -0
  159. package/dist/esm/adapters/coingecko/generated/eip155_56/adapter.json +1 -0
  160. package/dist/esm/adapters/coingecko/generated/eip155_8453/adapter.json +1 -0
  161. package/dist/esm/adapters/coingecko/generated/index.d.ts +21 -0
  162. package/dist/esm/adapters/coingecko/generated/index.js +21 -0
  163. package/dist/esm/adapters/coingecko/generated/solana_5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/adapter.json +1 -0
  164. package/dist/esm/adapters/coingecko/generated/sui_35834a8a/adapter.json +1 -0
  165. package/dist/esm/adapters/coingecko/generated/tron_0x2b6653dc/adapter.json +1 -0
  166. package/dist/esm/adapters/coingecko/index.d.ts +29 -0
  167. package/dist/esm/adapters/coingecko/index.js +152 -0
  168. package/dist/esm/adapters/coingecko/index.test.d.ts +1 -0
  169. package/dist/esm/adapters/coingecko/index.test.js +295 -0
  170. package/dist/esm/adapters/coingecko/utils.d.ts +11 -0
  171. package/dist/esm/adapters/coingecko/utils.js +226 -0
  172. package/dist/esm/adapters/coingecko/utils.test.d.ts +1 -0
  173. package/dist/esm/adapters/coingecko/utils.test.js +197 -0
  174. package/dist/esm/adapters/index.d.ts +6 -0
  175. package/dist/esm/adapters/index.js +6 -0
  176. package/dist/esm/adapters/mtpelerin/index.d.ts +10 -0
  177. package/dist/esm/adapters/mtpelerin/index.js +121 -0
  178. package/dist/esm/adapters/onramper/index.d.ts +6 -0
  179. package/dist/esm/adapters/onramper/index.js +31 -0
  180. package/dist/esm/assetId/assetId.d.ts +36 -0
  181. package/dist/esm/assetId/assetId.js +114 -0
  182. package/dist/esm/assetId/assetId.test.d.ts +1 -0
  183. package/dist/esm/assetId/assetId.test.js +322 -0
  184. package/dist/esm/chainId/chainId.d.ts +20 -0
  185. package/dist/esm/chainId/chainId.js +20 -0
  186. package/dist/esm/chainId/chainId.test.d.ts +1 -0
  187. package/dist/esm/chainId/chainId.test.js +88 -0
  188. package/dist/esm/constants.d.ts +135 -0
  189. package/dist/esm/constants.js +188 -0
  190. package/dist/esm/index.d.ts +7 -0
  191. package/dist/esm/index.js +7 -0
  192. package/dist/esm/typeGuards.d.ts +16 -0
  193. package/dist/esm/typeGuards.js +44 -0
  194. package/dist/esm/utils.d.ts +33 -0
  195. package/dist/esm/utils.js +26 -0
  196. package/dist/esm/utils.test.d.ts +1 -0
  197. package/dist/esm/utils.test.js +158 -0
  198. package/package.json +1 -1
@@ -0,0 +1,143 @@
1
+ import entries from 'lodash/entries';
2
+ import { arbitrumAssetId, arbitrumChainId, avalancheAssetId, avalancheChainId, baseAssetId, baseChainId, bscAssetId, bscChainId, btcAssetId, btcChainId, cosmosAssetId, cosmosChainId, dogeAssetId, dogeChainId, ethAssetId, ethChainId, optimismAssetId, optimismChainId, polygonAssetId, polygonChainId, solanaChainId, solAssetId, thorchainAssetId, thorchainChainId, } from '../../constants.js';
3
+ /**
4
+ * https://docs.google.com/spreadsheets/d/1KU6J1Hl4vxBTIWCwWdrFfSadNltuFheQRoJyPrd0LMQ/edit#gid=631982242
5
+ * source of truth per banxa
6
+ */
7
+ const AssetIdToBanxaTickerMap = {
8
+ [btcAssetId]: 'BTC',
9
+ [dogeAssetId]: 'doge',
10
+ [cosmosAssetId]: 'atom',
11
+ [ethAssetId]: 'eth',
12
+ [avalancheAssetId]: 'avax',
13
+ [bscAssetId]: 'bnb',
14
+ [optimismAssetId]: 'eth',
15
+ [arbitrumAssetId]: 'eth',
16
+ [baseAssetId]: 'eth',
17
+ [polygonAssetId]: 'matic',
18
+ [thorchainAssetId]: 'rune',
19
+ [solAssetId]: 'sol',
20
+ 'eip155:1/erc20:0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9': 'aave',
21
+ 'eip155:1/erc20:0xbb0e17ef65f82ab018d8edd776e8dd940327b28b': 'axs',
22
+ 'eip155:1/erc20:0x4d224452801aced8b2f0aebe155379bb5d594381': 'ape',
23
+ 'eip155:1/erc20:0x0d8775f648430679a709e98d2b0cb6250d2887ef': 'bat',
24
+ 'eip155:1/erc20:0x4fabb145d64652a948d72533023f6e7a623c7c53': 'busd',
25
+ 'eip155:1/erc20:0x3506424f91fd33084466f402d5d97f05f8e3b4af': 'chz',
26
+ 'eip155:1/erc20:0x41e5560054824ea6b0732e656e3ad64e20e94e45': 'cvc',
27
+ 'eip155:1/erc20:0xc00e94cb662c3520282e6f5717214004a7f26888': 'comp',
28
+ 'eip155:1/erc20:0x6b175474e89094c44da98b954eedeac495271d0f': 'dai',
29
+ 'eip155:1/erc20:0xf629cbd94d3791c9250152bd8dfbdf380e2a3b9c': 'enj',
30
+ 'eip155:1/erc20:0x4e15361fd6b4bb609fa63c81a2be19d873717870': 'ftm',
31
+ 'eip155:1/erc20:0x165440036ce972c5f8ebef667086707e48b2623e': 'grt',
32
+ 'eip155:1/erc20:0xf57e7e7c23978c3caec3c3548e3d615c346e79ff': 'imx',
33
+ 'eip155:1/erc20:0x514910771af9ca656af840dff83e8264ecf986ca': 'link',
34
+ 'eip155:1/erc20:0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2': 'mkr',
35
+ 'eip155:1/erc20:0x0f5d2fb29fb7d3cfee444a200298f468908cc942': 'mana',
36
+ 'eip155:1/erc20:0xd26114cd6ee289accf82350c8d8487fedb8a0c07': 'omg',
37
+ 'eip155:1/erc20:0x57ab1ec28d129707052df4df418d58a2d46d5f51': 'susd',
38
+ 'eip155:1/erc20:0x6b3595068778dd592e39a122f4f5a5cf09c90fe2': 'sushi',
39
+ 'eip155:1/erc20:0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f': 'snx',
40
+ 'eip155:1/erc20:0x1f9840a85d5af5bf1d1762f925bdaddc4201f984': 'uni',
41
+ 'eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48': 'usdc',
42
+ 'eip155:1/erc20:0x8e870d67f660d95d5be530380d0ec0bd388289e1': 'usdp',
43
+ 'eip155:1/erc20:0xdac17f958d2ee523a2206206994597c13d831ec7': 'usdt',
44
+ 'eip155:1/erc20:0x2260fac5e5542a773aa44fbcfedf7c193bc2c599': 'wbtc',
45
+ 'eip155:1/erc20:0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e': 'yfi',
46
+ 'eip155:1/erc20:0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0': 'matic',
47
+ 'eip155:10/erc20:0x0b2c639c533813f4aa9d7837caf62653d097ff85': 'usdc',
48
+ 'eip155:56/erc20:0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82': 'cake',
49
+ 'eip155:56/erc20:0xf8a0bf9cf54bb92f17374d9e9a321e6a111a51bd': 'link',
50
+ 'eip155:56/erc20:0x55d398326f99059ff775485246999027b3197955': 'usdt',
51
+ 'eip155:56/erc20:0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d': 'usdc',
52
+ 'eip155:56/erc20:0x2170ed0880ac9a755fd29b2688956bd959f933f8': 'eth',
53
+ 'eip155:56/erc20:0xfb6115445bff7b52feb98650c87f44907e58f802': 'aave',
54
+ 'eip155:56/erc20:0x52ce071bd9b1c4b00a0b92d298c512478cad67e8': 'comp',
55
+ 'eip155:56/erc20:0x7083609fce4d1d8dc0c979aab8c869ea2c873402': 'dot',
56
+ 'eip155:56/erc20:0xcc42724c6683b7e57334c4e856f4c9965ed682bd': 'matic',
57
+ 'eip155:56/erc20:0x1ce0c2827e2ef14d5c4f29a091d735a204794041': 'avax',
58
+ 'eip155:56/erc20:0x947950bcc74888a40ffa2593c5798f11fc9124c4': 'sushi',
59
+ 'eip155:56/erc20:0xbf5140a22578168fd562dccf235e5d43a02ce9b1': 'uni',
60
+ 'eip155:137/erc20:0xc2132d05d31c914a87c6611c10748aeb04b58e8f': 'usdt',
61
+ 'eip155:137/erc20:0x3c499c542cef5e3811e1192ce70d8cc03d5c3359': 'usdc',
62
+ 'eip155:137/erc20:0x8f3cf7ad23cd3cadbd9735aff958023239c6a063': 'dai',
63
+ 'eip155:8453/erc20:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913': 'usdc',
64
+ 'eip155:8453/erc20:0x50c5725949a6f0c72e6c4a641f24049a917db0cb': 'dai',
65
+ 'eip155:42161/erc20:0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9': 'usdt',
66
+ 'eip155:42161/erc20:0xaf88d065e77c8cc2239327c5edb3a432268e5831': 'usdc',
67
+ 'eip155:43114/erc20:0x9702230a8ea53601f5cd2dc00fdbc13d4df4a8c7': 'usdt',
68
+ 'eip155:43114/erc20:0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e': 'usdc',
69
+ 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v': 'usdc',
70
+ 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB': 'usdt',
71
+ };
72
+ /**
73
+ * Banxa sell-supported assets based on their API response
74
+ * https://docs.banxa.com/docs/supported-coins
75
+ */
76
+ const BanxaSellAssetIds = [
77
+ btcAssetId,
78
+ ethAssetId,
79
+ arbitrumAssetId,
80
+ baseAssetId,
81
+ 'eip155:56/erc20:0x2170ed0880ac9a755fd29b2688956bd959f933f8',
82
+ optimismAssetId,
83
+ // USDT (multiple chains)
84
+ 'eip155:56/erc20:0x55d398326f99059ff775485246999027b3197955',
85
+ 'eip155:1/erc20:0xdac17f958d2ee523a2206206994597c13d831ec7',
86
+ 'eip155:137/erc20:0xc2132d05d31c914a87c6611c10748aeb04b58e8f',
87
+ 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB',
88
+ // USDC (multiple chains)
89
+ 'eip155:42161/erc20:0xaf88d065e77c8cc2239327c5edb3a432268e5831',
90
+ 'eip155:43114/erc20:0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e',
91
+ 'eip155:8453/erc20:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913',
92
+ 'eip155:56/erc20:0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d',
93
+ 'eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
94
+ 'eip155:137/erc20:0x3c499c542cef5e3811e1192ce70d8cc03d5c3359',
95
+ 'eip155:10/erc20:0x0b2c639c533813f4aa9d7837caf62653d097ff85',
96
+ 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
97
+ // AVAX
98
+ avalancheAssetId,
99
+ // BNB
100
+ bscAssetId,
101
+ // SOL
102
+ solAssetId,
103
+ ];
104
+ export const getSupportedBanxaAssets = () => entries(AssetIdToBanxaTickerMap).map(([assetId, ticker]) => ({
105
+ assetId,
106
+ ticker,
107
+ }));
108
+ export const getSupportedBanxaSellAssets = () => BanxaSellAssetIds;
109
+ export const assetIdToBanxaTicker = (assetId) => AssetIdToBanxaTickerMap[assetId];
110
+ /**
111
+ * map ChainIds to Banxa blockchain codes (ETH, BTC, COSMOS),
112
+ * since some Banxa assets could be on multiple chains and their default
113
+ * chain won't be exactly the same as ours.
114
+ *
115
+ * https://docs.google.com/spreadsheets/d/1KU6J1Hl4vxBTIWCwWdrFfSadNltuFheQRoJyPrd0LMQ/edit#gid=631982242
116
+ * source of truth per banxa
117
+ */
118
+ const chainIdToBanxaBlockchainCodeMap = {
119
+ [bscChainId]: 'BSC',
120
+ [ethChainId]: 'ETH',
121
+ [btcChainId]: 'BTC',
122
+ [cosmosChainId]: 'COSMOS',
123
+ [dogeChainId]: 'DOGE',
124
+ [avalancheChainId]: 'AVAX-C',
125
+ [optimismChainId]: 'OPTIMISM',
126
+ [polygonChainId]: 'MATIC',
127
+ [arbitrumChainId]: 'ARB',
128
+ [baseChainId]: 'BASE',
129
+ [thorchainChainId]: 'THORCHAIN',
130
+ [solanaChainId]: 'SOL',
131
+ };
132
+ /**
133
+ * Convert a ChainId to a Banxa chain identifier for use in Banxa HTTP URLs
134
+ *
135
+ * @param {ChainId} chainId - a ChainId
136
+ * @returns {string} - a Banxa chain identifier; e.g., 'cosmos'
137
+ */
138
+ export const getBanxaBlockchainFromChainId = (chainId) => {
139
+ const banxaChainId = chainIdToBanxaBlockchainCodeMap[chainId];
140
+ if (!banxaChainId)
141
+ throw new Error(`getBanxaBlockchainFromChainId: ${chainId} is not supported on Banxa`);
142
+ return banxaChainId;
143
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ import { getData, parseData, writeFiles } from './utils.js';
2
+ const main = async () => {
3
+ const coinbaseCurrencies = await getData();
4
+ const output = parseData(coinbaseCurrencies);
5
+ await writeFiles(output);
6
+ };
7
+ main();
@@ -0,0 +1,153 @@
1
+ {
2
+ "eip155:1/erc20:0x8290333cef9e6d528dd5618fb97a76f268f3edd4": "ANKR",
3
+ "eip155:1/erc20:0x33349b282065b0284d756f0577fb39c158f935e6": "MPL",
4
+ "eip155:1/erc20:0x41e5560054824ea6b0732e656e3ad64e20e94e45": "CVC",
5
+ "eip155:1/erc20:0x9992ec3cf6a55b00978cddf2b27bc6882d88d1ec": "POLY",
6
+ "eip155:1/erc20:0x09a3ecafa817268f77be1283176b946c4ff2e608": "MIR",
7
+ "eip155:1/erc20:0xf1f955016ecbcd7321c7266bccfb96c68ea5e49b": "RLY",
8
+ "eip155:1/erc20:0x2260fac5e5542a773aa44fbcfedf7c193bc2c599": "WBTC",
9
+ "eip155:1/erc20:0xdbdb4d16eda451d0503b854cf79d55697f90c8df": "ALCX",
10
+ "eip155:1/erc20:0x5732046a883704404f284ce41ffadd5b007fd668": "BLZ",
11
+ "eip155:1/erc20:0x6b175474e89094c44da98b954eedeac495271d0f": "DAI",
12
+ "eip155:1/erc20:0x7dd9c5cba05e151c895fde1cf355c9a1d5da6429": "GLM",
13
+ "eip155:1/erc20:0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce": "SHIB",
14
+ "eip155:1/erc20:0x408e41876cccdc0f92210600ef50372656052a38": "REN",
15
+ "eip155:1/erc20:0x6fb3e0a217407efff7ca062d46c26e5d60a14d69": "IOTX",
16
+ "eip155:1/erc20:0xdac17f958d2ee523a2206206994597c13d831ec7": "USDT",
17
+ "eip155:1/erc20:0xdd974d5c2e2928dea5f71b9825b8b646686bd200": "KNC",
18
+ "eip155:1/erc20:0x41d5d79431a913c4ae7d69a668ecdfe5ff9dfb68": "INV",
19
+ "eip155:1/erc20:0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2": "MKR",
20
+ "eip155:1/erc20:0xc18360217d8f7ab5e7c516566761ea12ce7f9d72": "ENS",
21
+ "eip155:1/erc20:0xd8912c10681d8b21fd3742244f44658dba12264e": "PLU",
22
+ "eip155:1/erc20:0x3a4f40631a4f906c2bad353ed06de7a5d3fcb430": "PLA",
23
+ "eip155:1/erc20:0x6de037ef9ad2725eb40118bb1702ebb27e4aeb24": "RNDR",
24
+ "eip155:1/erc20:0x55296f69f40ea6d20e478533c15a6b08b654e758": "XYO",
25
+ "eip155:1/erc20:0xdab396ccf3d84cf2d07c4454e10c8a6f5b008d2b": "GFI",
26
+ "eip155:1/erc20:0x4575f41308ec1483f3d399aa9a2826d74da13deb": "OXT",
27
+ "eip155:1/erc20:0xd2877702675e6ceb975b4a1dff9fb7baf4c91ea9": "WLUNA",
28
+ "eip155:1/erc20:0x0954906da0bf32d5479e25f46056d22f08464cab": "INDEX",
29
+ "eip155:1/erc20:0xff20817765cb7f73d4bde2e66e067e58d11095c2": "AMP",
30
+ "eip155:1/erc20:0xaea46a60368a7bd060eec7df8cba43b7ef41ad85": "FET",
31
+ "eip155:1/erc20:0x4fe83213d56308330ec302a8bd641f1d0113a4cc": "NU",
32
+ "eip155:1/erc20:0x7f08962d948c5c59cac284035748be21134ebc2b": "UMA",
33
+ "eip155:1/erc20:0x3d658390460295fb963f54dc0899cfb1c30776df": "COVAL",
34
+ "eip155:1/erc20:0xfc98e825a2264d890f9a1e68ed50e1526abccacd": "MCO2",
35
+ "eip155:1/erc20:0x799ebfabe77a6e34311eeee9825190b9ece32824": "BTRST",
36
+ "eip155:1/erc20:0x0d67f3e4bcbd2d6b7a90150c73bdf9ffc6b6de9b": "GRT",
37
+ "eip155:1/erc20:0x5faa989af96af85384b8a938c2ede4a7378d9875": "GAL",
38
+ "eip155:1/erc20:0x8f8221afbb33998d8584a2b05749ba73c37a938a": "REQ",
39
+ "eip155:1/erc20:0xd26114cd6ee289accf82350c8d8487fedb8a0c07": "OMG",
40
+ "eip155:1/erc20:0x91af0fbb28aba7e31403cb457106ce79397fd4e6": "AERGO",
41
+ "eip155:1/erc20:0x321c2fe4446c7c963dc41dd58879af648838f98d": "CTX",
42
+ "eip155:1/erc20:0xccc8cb5229b0ac8069c51fd58367fd1e622afd97": "GODS",
43
+ "eip155:1/erc20:0x6dea81c8171d0ba574754ef6f8b412f2ed88c54d": "LQTY",
44
+ "eip155:1/erc20:0x9e46a38f5daabe8683e10793b06749eef7d733d1": "NCT",
45
+ "eip155:1/erc20:0x8e870d67f660d95d5be530380d0ec0bd388289e1": "PAX",
46
+ "eip155:1/erc20:0x6b3595068778dd592e39a122f4f5a5cf09c90fe2": "SUSHI",
47
+ "eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": "USDC",
48
+ "eip155:1/erc20:0xec67005c4e498ec7f55e092bd1d35cbc47c91892": "MLN",
49
+ "eip155:1/erc20:0xd291e7a03283640fdc51b121ac401383a46cc623": "RGT",
50
+ "eip155:1/erc20:0x99ea4db9ee77acd40b119bd1dc4e33e1c070b80d": "QSP",
51
+ "eip155:1/erc20:0x090185f2135308bad17527004364ebcc2d37e5f6": "SPELL",
52
+ "eip155:1/erc20:0xf17e65822b568b3903685a7c9f496cf7656cc6c2": "BICO",
53
+ "eip155:1/erc20:0x0d8775f648430679a709e98d2b0cb6250d2887ef": "BAT",
54
+ "eip155:1/erc20:0x037a54aab062628c9bbae1fdb1583c195585fe41": "LCX",
55
+ "eip155:1/erc20:0x3c4b6e6e1ea3d4863700d7f76b36b7f3d3f13e3d": "VGX",
56
+ "eip155:1/erc20:0x514910771af9ca656af840dff83e8264ecf986ca": "LINK",
57
+ "eip155:1/erc20:0x744d70fdbe2ba4cf95131626614a1763df805b9e": "SNT",
58
+ "eip155:1/erc20:0xaa7a9ca87d3694b5755f213b5d04094b8d0f0a6f": "TRAC",
59
+ "eip155:1/erc20:0x4c19596f5aaff459fa38b0f7ed92f11ae6543784": "TRU",
60
+ "eip155:1/erc20:0xed04915c23f00a313a544955524eb7dbd823143d": "ACH",
61
+ "eip155:1/erc20:0x1776e1f26f98b1a5df9cd347953a26dd3cb46671": "NMR",
62
+ "eip155:1/erc20:0x00c83aecc790e8a4453e5dd3b0b4b3680501a7a7": "SKL",
63
+ "eip155:1/erc20:0x03ab458634910aad20ef5f1c8ee96f1d6ac54919": "RAI",
64
+ "eip155:1/erc20:0x32353a6c91143bfd6c7d363b546e62a9a2489a20": "AGLD",
65
+ "eip155:1/erc20:0x5cf04716ba20127f1e2297addcf4b5035000c9eb": "NKN",
66
+ "eip155:1/erc20:0x4a220e6096b25eadb88358cb44068a3248254675": "QNT",
67
+ "eip155:1/erc20:0x88df592f8eb5d7bd38bfef7deb0fbc02cf3778a0": "TRB",
68
+ "eip155:1/erc20:0x85eee30c52b0b379b046fb0f85f4f3dc3009afec": "KEEP",
69
+ "eip155:1/erc20:0x8207c1ffc5b6804f6024322ccf34f29c3541ae26": "OGN",
70
+ "eip155:1/erc20:0xbc396689893d065f41bc2c6ecbee5e0085233447": "PERP",
71
+ "eip155:1/erc20:0x0abdace70d3790235af448c88547603b945604ea": "DNT",
72
+ "eip155:1/erc20:0x111111111117dc0aa78b770fa6a738034120c302": "1INCH",
73
+ "cosmos:cosmoshub-4/slip44:118": "ATOM",
74
+ "eip155:1/erc20:0xa1d0e215a23d7030842fc67ce582a6afa3ccab83": "YFII",
75
+ "eip155:1/erc20:0x15d4c048f83bd7e37d49ea4c83a07267ec4203da": "GALA",
76
+ "eip155:1/erc20:0x31c8eacbffdd875c74b94b077895bd78cf1e64a3": "RAD",
77
+ "eip155:1/erc20:0x6123b0049f904d730db3c36a31167d9d4121fa6b": "RBN",
78
+ "eip155:1/erc20:0x1f9840a85d5af5bf1d1762f925bdaddc4201f984": "UNI",
79
+ "eip155:1/erc20:0x3472a5a71965499acd81997a54bba8d852c6e53d": "BADGER",
80
+ "eip155:1/erc20:0xddb3422497e61e13543bea06989c0789117555c5": "COTI",
81
+ "eip155:1/erc20:0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0": "MATIC",
82
+ "eip155:1/erc20:0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e": "YFI",
83
+ "eip155:1/erc20:0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f": "SNX",
84
+ "eip155:1/erc20:0xba50933c268f567bdc86e1ac131be072c6b0b71a": "ARPA",
85
+ "eip155:1/erc20:0xde30da39c46104798bb5aa3fe8b9e0e1f348163f": "GTC",
86
+ "eip155:1/erc20:0xa0246c9032bc3a600820415ae600c6388619a14d": "FARM",
87
+ "eip155:1/erc20:0xc08512927d12348f6620a698105e1baac6ecd911": "GYEN",
88
+ "eip155:1/erc20:0x814e0908b12a99fecf5bc101bb5d0b8b5cdf7d26": "MDT",
89
+ "eip155:1/erc20:0x70d2b7c19352bb76e4409858ff5746e500f2b67c": "UPI",
90
+ "eip155:1/erc20:0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9": "AAVE",
91
+ "eip155:1/erc20:0x4d224452801aced8b2f0aebe155379bb5d594381": "APE",
92
+ "eip155:1/erc20:0x58b6a8a3302369daec383334672404ee733ab239": "LPT",
93
+ "eip155:1/erc20:0xedb171c18ce90b633db442f2a6f72874093b49ef": "WAMPL",
94
+ "eip155:1/erc20:0xc00e94cb662c3520282e6f5717214004a7f26888": "COMP",
95
+ "eip155:1/erc20:0x226bb599a12c826476e3a771454697ea52e9e220": "PRO",
96
+ "eip155:1/erc20:0xb64ef51c888972c908cfacf59b47c1afbc0ab8ac": "STORJ",
97
+ "eip155:1/erc20:0x464ebe77c293e473b48cfe96ddcf88fcf7bfdac0": "KRL",
98
+ "eip155:1/erc20:0x8daebade922df735c38c80c7ebd708af50815faa": "TBTC",
99
+ "eip155:1/erc20:0xe2f2a5c287993345a840db3b0845fbc70f5935a5": "MUSD",
100
+ "eip155:1/erc20:0xbb0e17ef65f82ab018d8edd776e8dd940327b28b": "AXS",
101
+ "eip155:1/erc20:0x80c62fe4487e1351b47ba49809ebd60ed085bf52": "CLV",
102
+ "eip155:1/erc20:0xac51066d7bec65dc4589368da368b212745d63e8": "ALICE",
103
+ "eip155:1/erc20:0x7420b4b9a0110cdc71fb720908340c03f9bc03ec": "JASMY",
104
+ "eip155:1/erc20:0x83e6f1e41cdd28eaceb20cb649155049fac3d5aa": "POLS",
105
+ "eip155:1/erc20:0x441761326490cacf7af299725b6292597ee822c2": "UNFI",
106
+ "bip122:000000000019d6689c085ae165831e93/slip44:0": "BTC",
107
+ "eip155:1/erc20:0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419": "DIA",
108
+ "eip155:1/erc20:0x626e8036deb333b408be468f951bdb42433cbf18": "AIOZ",
109
+ "eip155:1/erc20:0xd533a949740bb3306d119cc777fa900ba034cd52": "CRV",
110
+ "eip155:1/erc20:0xba11d00c5f74255f56a5e366f4f77f5a186d7f55": "BAND",
111
+ "eip155:1/erc20:0x8c15ef5b4b21951d50e53e4fbda8298ffad25057": "FX",
112
+ "eip155:1/erc20:0x6c28aef8977c9b773996d0e8376d2ee379446f2f": "QUICK",
113
+ "eip155:1/erc20:0x4fabb145d64652a948d72533023f6e7a623c7c53": "BUSD",
114
+ "eip155:1/erc20:0xf57e7e7c23978c3caec3c3548e3d615c346e79ff": "IMX",
115
+ "eip155:1/erc20:0x42476f744292107e34519f9c357927074ea3f75d": "LOOM",
116
+ "eip155:1/erc20:0xc7283b66eb1eb5fb86327f08e1b5816b0720212b": "TRIBE",
117
+ "eip155:1/erc20:0x0b38210ea11411557c13457d4da7dc6ea731b88a": "API3",
118
+ "eip155:1/erc20:0x0d88ed6e74bbfd96b831231638b66c05571e824f": "AVT",
119
+ "eip155:1/erc20:0x0f5d2fb29fb7d3cfee444a200298f468908cc942": "MANA",
120
+ "eip155:1/slip44:60": "ETH",
121
+ "eip155:1/erc20:0xc770eefad204b5180df6a14ee197d99d808ee52d": "FOX",
122
+ "eip155:1/erc20:0x71ab77b7dbb4fa7e017bc15090b2163221420282": "HIGH",
123
+ "eip155:1/erc20:0x1985365e9f78359a9b6ad760e32412f4a445e862": "REP",
124
+ "eip155:1/erc20:0x0763fdccf1ae541a5961815c0872a8c5bc6de4d7": "SUKU",
125
+ "eip155:1/erc20:0x2565ae0385659badcada1031db704442e1b69982": "ASM",
126
+ "eip155:1/erc20:0x607f4c5bb672230e8672085532f7e901544a7375": "RLC",
127
+ "eip155:1/erc20:0x081131434f93063751813c619ecca9c4dc7862a3": "DAR",
128
+ "eip155:1/erc20:0x0391d2021f89dc339f60fff84546ea23e337750f": "BOND",
129
+ "eip155:1/erc20:0x491604c0fdf08347dd1fa4ee062a822a5dd06b5d": "CTSI",
130
+ "eip155:1/erc20:0xc221b7e65ffc80de234bbb6667abdd46593d34f0": "WCFG",
131
+ "eip155:1/erc20:0x3506424f91fd33084466f402d5d97f05f8e3b4af": "CHZ",
132
+ "eip155:1/erc20:0x1f573d6fb3f13d689ff844b4ce37794d79a7ff1c": "BNT",
133
+ "eip155:1/erc20:0x3a880652f47bfaa771908c07dd8673a787daed3a": "DDX",
134
+ "eip155:1/erc20:0xbbc2ae13b23d715c30720f079fcd9b4a74093505": "ERN",
135
+ "eip155:1/erc20:0x69af81e73a73b40adf4f3d4223cd9b1ece623074": "MASK",
136
+ "eip155:1/erc20:0x0f2d719407fdbeff09d87557abb7232601fd9f29": "SYN",
137
+ "eip155:1/erc20:0xa47c8bf37f92abed4a126bda807a7b7498661acd": "UST",
138
+ "eip155:1/erc20:0xba100000625a3754423978a60c9317c58a424e3d": "BAL",
139
+ "eip155:1/erc20:0xa74476443119a942de498590fe1f2454d7d4ac0d": "GNT",
140
+ "eip155:1/erc20:0x0258f474786ddfd37abce6df6bbb1dd5dfc4434a": "ORN",
141
+ "eip155:1/erc20:0xfca59cd816ab1ead66534d82bc21e7515ce441cf": "RARI",
142
+ "eip155:1/erc20:0xe53ec727dbdeb9e2d5456c3be40cff031ab40a55": "SUPER",
143
+ "eip155:1/erc20:0xa9b1eb5908cfc3cdf91f9b8b3a74108598009096": "AUCTION",
144
+ "eip155:1/erc20:0xb705268213d593b8fd88d3fdeff93aff5cbdcfae": "IDEX",
145
+ "eip155:1/erc20:0x595832f8fc6bf59c85c527fec3740a1b7a361269": "POWR",
146
+ "eip155:1/erc20:0xe41d2489571d322189246dafa5ebde1f4699f498": "ZRX",
147
+ "eip155:1/erc20:0xa0b73e1ff0b80914ab6fe0444e65848c4c34450b": "CRO",
148
+ "eip155:1/erc20:0x08389495d7456e1951ddf7c3a1314a4bfb646d8b": "CRPT",
149
+ "eip155:1/erc20:0xf629cbd94d3791c9250152bd8dfbdf380e2a3b9c": "ENJ",
150
+ "eip155:1/erc20:0x77fba179c79de5b7653f68b5039af940ada60ce0": "FORTH",
151
+ "eip155:1/erc20:0xbbbbca6a901c926f240b89eacb641d8aec7aeafd": "LRC",
152
+ "eip155:1/erc20:0x7c84e62859d0715eb77d1b1c4154ecd6abb21bec": "SHPING"
153
+ }
@@ -0,0 +1,2 @@
1
+ import tickerMap from './adapter.json';
2
+ export { tickerMap };
@@ -0,0 +1,2 @@
1
+ import tickerMap from './adapter.json';
2
+ export { tickerMap };
@@ -0,0 +1,3 @@
1
+ import type { AssetId } from '../../index.js';
2
+ export declare const coinbaseTickerToAssetId: (id: string) => AssetId | undefined;
3
+ export declare const assetIdToCoinbaseTicker: (assetId: AssetId) => string | undefined;
@@ -0,0 +1,8 @@
1
+ import invert from 'lodash/invert';
2
+ import toLower from 'lodash/toLower';
3
+ import { tickerMap } from './generated/index.js';
4
+ // As of 2022/06/13 (ETH/BTC/COSMOS assets)
5
+ const assetIdToCoinbaseTickerMap = tickerMap;
6
+ const coinbaseAssetIdToAssetIdMap = invert(assetIdToCoinbaseTickerMap);
7
+ export const coinbaseTickerToAssetId = (id) => coinbaseAssetIdToAssetIdMap[id];
8
+ export const assetIdToCoinbaseTicker = (assetId) => assetIdToCoinbaseTickerMap[toLower(assetId)];
@@ -0,0 +1,12 @@
1
+ import type { AssetId } from '../../index.js';
2
+ type CoinbaseCurrency = {
3
+ id: string;
4
+ details: {
5
+ crypto_address_link: string | null;
6
+ };
7
+ default_network: string;
8
+ };
9
+ export declare function parseData(data: CoinbaseCurrency[]): Record<AssetId, string>;
10
+ export declare function getData(): Promise<CoinbaseCurrency[]>;
11
+ export declare const writeFiles: (data: Record<AssetId, string>) => Promise<void>;
12
+ export {};
@@ -0,0 +1,46 @@
1
+ import axios from 'axios';
2
+ import fs from 'fs';
3
+ import toLower from 'lodash/toLower';
4
+ function coinbaseCurrencyToAssetId(currency) {
5
+ if (currency.id === 'BTC')
6
+ return 'bip122:000000000019d6689c085ae165831e93/slip44:0';
7
+ if (currency.id === 'ATOM')
8
+ return 'cosmos:cosmoshub-4/slip44:118';
9
+ if (currency.id === 'ETH')
10
+ return 'eip155:1/slip44:60';
11
+ if (currency.default_network === 'ethereum') {
12
+ const addressQuery = currency.details.crypto_address_link?.split('token/')[1];
13
+ const address = addressQuery?.split('?a')[0];
14
+ return `eip155:1/erc20:${toLower(address)}`;
15
+ }
16
+ console.info(`Could not create assetId from coinbase asset ${currency.id}`);
17
+ return null;
18
+ }
19
+ export function parseData(data) {
20
+ return data.reduce((acc, current) => {
21
+ const assetId = coinbaseCurrencyToAssetId(current);
22
+ if (!assetId)
23
+ return acc;
24
+ acc[assetId] = current.id;
25
+ return acc;
26
+ }, {});
27
+ }
28
+ export async function getData() {
29
+ try {
30
+ const { data } = await axios.get('https://api.pro.coinbase.com/currencies');
31
+ return data;
32
+ }
33
+ catch (err) {
34
+ console.error('Get supported coins (coinbase-pay) failed');
35
+ return [];
36
+ }
37
+ }
38
+ const writeFile = async (data) => {
39
+ const path = './src/adapters/coinbase/generated/';
40
+ const file = 'adapter.json';
41
+ await fs.promises.writeFile(`${path}${file}`, JSON.stringify(data, null, 2));
42
+ };
43
+ export const writeFiles = async (data) => {
44
+ await writeFile(data);
45
+ console.info('Generated Coinbase AssetId adapter data.');
46
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import { coincapAssetUrl } from './index.js';
2
+ import { fetchData, parseData, writeFiles } from './utils.js';
3
+ const main = async () => {
4
+ const data = await fetchData(coincapAssetUrl);
5
+ const output = parseData(data);
6
+ await writeFiles(output);
7
+ };
8
+ main();
@@ -0,0 +1 @@
1
+ { "bip122:000000000000000000651ef99cb9fcbe/slip44:145": "bitcoin-cash" }
@@ -0,0 +1 @@
1
+ { "bip122:000000000019d6689c085ae165831e93/slip44:0": "bitcoin" }
@@ -0,0 +1 @@
1
+ { "bip122:00000000001a91e3dace36e2be3bf030/slip44:3": "dogecoin" }
@@ -0,0 +1 @@
1
+ { "bip122:12a765e31ffd4059bada1e25190f6e98/slip44:2": "litecoin" }
@@ -0,0 +1 @@
1
+ { "cosmos:cosmoshub-4/slip44:118": "cosmos" }
@@ -0,0 +1 @@
1
+ { "cosmos:thorchain-1/slip44:931": "thorchain" }