@shapeshiftoss/utils 1.0.3-alpha.1 → 1.0.3

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 (136) hide show
  1. package/package.json +6 -3
  2. package/dist/cjs/.tsbuildinfo +0 -1
  3. package/dist/cjs/assertUnreachable.d.ts +0 -1
  4. package/dist/cjs/assertUnreachable.js +0 -7
  5. package/dist/cjs/assetData/assetData.test.d.ts +0 -1
  6. package/dist/cjs/assetData/assetData.test.js +0 -136
  7. package/dist/cjs/assetData/baseAssets.d.ts +0 -21
  8. package/dist/cjs/assetData/baseAssets.js +0 -319
  9. package/dist/cjs/assetData/constants.d.ts +0 -1
  10. package/dist/cjs/assetData/constants.js +0 -13
  11. package/dist/cjs/assetData/decodeAssetData.d.ts +0 -7
  12. package/dist/cjs/assetData/decodeAssetData.js +0 -106
  13. package/dist/cjs/assetData/decodeRelatedAssetIndex.d.ts +0 -3
  14. package/dist/cjs/assetData/decodeRelatedAssetIndex.js +0 -14
  15. package/dist/cjs/assetData/encodeAssetData.d.ts +0 -4
  16. package/dist/cjs/assetData/encodeAssetData.js +0 -72
  17. package/dist/cjs/assetData/encodeRelatedAssetIndex.d.ts +0 -3
  18. package/dist/cjs/assetData/encodeRelatedAssetIndex.js +0 -20
  19. package/dist/cjs/assetData/getBaseAsset.d.ts +0 -3
  20. package/dist/cjs/assetData/getBaseAsset.js +0 -48
  21. package/dist/cjs/assetData/index.d.ts +0 -7
  22. package/dist/cjs/assetData/index.js +0 -23
  23. package/dist/cjs/assetData/relatedAssetIndex.test.d.ts +0 -1
  24. package/dist/cjs/assetData/relatedAssetIndex.test.js +0 -32
  25. package/dist/cjs/assetData/types.d.ts +0 -28
  26. package/dist/cjs/assetData/types.js +0 -2
  27. package/dist/cjs/baseUnits/baseUnits.d.ts +0 -5
  28. package/dist/cjs/baseUnits/baseUnits.js +0 -32
  29. package/dist/cjs/baseUnits/baseUnits.test.d.ts +0 -1
  30. package/dist/cjs/baseUnits/baseUnits.test.js +0 -32
  31. package/dist/cjs/basisPoints.d.ts +0 -23
  32. package/dist/cjs/basisPoints.js +0 -48
  33. package/dist/cjs/bignumber/bignumber.d.ts +0 -11
  34. package/dist/cjs/bignumber/bignumber.js +0 -27
  35. package/dist/cjs/bignumber/bignumber.test.d.ts +0 -1
  36. package/dist/cjs/bignumber/bignumber.test.js +0 -52
  37. package/dist/cjs/chainIdToFeeAsset.d.ts +0 -3
  38. package/dist/cjs/chainIdToFeeAsset.js +0 -9
  39. package/dist/cjs/chainIdToFeeAssetId.d.ts +0 -2
  40. package/dist/cjs/chainIdToFeeAssetId.js +0 -48
  41. package/dist/cjs/createThrottle.d.ts +0 -9
  42. package/dist/cjs/createThrottle.js +0 -36
  43. package/dist/cjs/getAssetNamespaceFromChainId.d.ts +0 -3
  44. package/dist/cjs/getAssetNamespaceFromChainId.js +0 -33
  45. package/dist/cjs/getChainShortName.d.ts +0 -2
  46. package/dist/cjs/getChainShortName.js +0 -47
  47. package/dist/cjs/getNativeFeeAssetReference.d.ts +0 -2
  48. package/dist/cjs/getNativeFeeAssetReference.js +0 -67
  49. package/dist/cjs/historyTimeframe.d.ts +0 -6
  50. package/dist/cjs/historyTimeframe.js +0 -36
  51. package/dist/cjs/index.d.ts +0 -24
  52. package/dist/cjs/index.js +0 -58
  53. package/dist/cjs/makeAsset/makeAsset.d.ts +0 -10
  54. package/dist/cjs/makeAsset/makeAsset.js +0 -45
  55. package/dist/cjs/makeAsset/makeAsset.test.d.ts +0 -1
  56. package/dist/cjs/makeAsset/makeAsset.test.js +0 -47
  57. package/dist/cjs/package.json +0 -1
  58. package/dist/cjs/promises.d.ts +0 -4
  59. package/dist/cjs/promises.js +0 -9
  60. package/dist/cjs/sha256.d.ts +0 -1
  61. package/dist/cjs/sha256.js +0 -9
  62. package/dist/cjs/timeout.d.ts +0 -7
  63. package/dist/cjs/timeout.js +0 -34
  64. package/dist/cjs/treasury.d.ts +0 -16
  65. package/dist/cjs/treasury.js +0 -34
  66. package/dist/cjs/unfreeze.d.ts +0 -4
  67. package/dist/cjs/unfreeze.js +0 -10
  68. package/dist/cjs/utxo.d.ts +0 -2
  69. package/dist/cjs/utxo.js +0 -6
  70. package/dist/esm/.tsbuildinfo +0 -1
  71. package/dist/esm/assertUnreachable.d.ts +0 -1
  72. package/dist/esm/assertUnreachable.js +0 -3
  73. package/dist/esm/assetData/assetData.test.d.ts +0 -1
  74. package/dist/esm/assetData/assetData.test.js +0 -134
  75. package/dist/esm/assetData/baseAssets.d.ts +0 -21
  76. package/dist/esm/assetData/baseAssets.js +0 -293
  77. package/dist/esm/assetData/constants.d.ts +0 -1
  78. package/dist/esm/assetData/constants.js +0 -10
  79. package/dist/esm/assetData/decodeAssetData.d.ts +0 -7
  80. package/dist/esm/assetData/decodeAssetData.js +0 -102
  81. package/dist/esm/assetData/decodeRelatedAssetIndex.d.ts +0 -3
  82. package/dist/esm/assetData/decodeRelatedAssetIndex.js +0 -10
  83. package/dist/esm/assetData/encodeAssetData.d.ts +0 -4
  84. package/dist/esm/assetData/encodeAssetData.js +0 -68
  85. package/dist/esm/assetData/encodeRelatedAssetIndex.d.ts +0 -3
  86. package/dist/esm/assetData/encodeRelatedAssetIndex.js +0 -16
  87. package/dist/esm/assetData/getBaseAsset.d.ts +0 -3
  88. package/dist/esm/assetData/getBaseAsset.js +0 -44
  89. package/dist/esm/assetData/index.d.ts +0 -7
  90. package/dist/esm/assetData/index.js +0 -7
  91. package/dist/esm/assetData/relatedAssetIndex.test.d.ts +0 -1
  92. package/dist/esm/assetData/relatedAssetIndex.test.js +0 -30
  93. package/dist/esm/assetData/types.d.ts +0 -28
  94. package/dist/esm/assetData/types.js +0 -1
  95. package/dist/esm/baseUnits/baseUnits.d.ts +0 -5
  96. package/dist/esm/baseUnits/baseUnits.js +0 -23
  97. package/dist/esm/baseUnits/baseUnits.test.d.ts +0 -1
  98. package/dist/esm/baseUnits/baseUnits.test.js +0 -30
  99. package/dist/esm/basisPoints.d.ts +0 -23
  100. package/dist/esm/basisPoints.js +0 -39
  101. package/dist/esm/bignumber/bignumber.d.ts +0 -11
  102. package/dist/esm/bignumber/bignumber.js +0 -16
  103. package/dist/esm/bignumber/bignumber.test.d.ts +0 -1
  104. package/dist/esm/bignumber/bignumber.test.js +0 -50
  105. package/dist/esm/chainIdToFeeAsset.d.ts +0 -3
  106. package/dist/esm/chainIdToFeeAsset.js +0 -5
  107. package/dist/esm/chainIdToFeeAssetId.d.ts +0 -2
  108. package/dist/esm/chainIdToFeeAssetId.js +0 -44
  109. package/dist/esm/createThrottle.d.ts +0 -9
  110. package/dist/esm/createThrottle.js +0 -32
  111. package/dist/esm/getAssetNamespaceFromChainId.d.ts +0 -3
  112. package/dist/esm/getAssetNamespaceFromChainId.js +0 -29
  113. package/dist/esm/getChainShortName.d.ts +0 -2
  114. package/dist/esm/getChainShortName.js +0 -43
  115. package/dist/esm/getNativeFeeAssetReference.d.ts +0 -2
  116. package/dist/esm/getNativeFeeAssetReference.js +0 -63
  117. package/dist/esm/historyTimeframe.d.ts +0 -6
  118. package/dist/esm/historyTimeframe.js +0 -29
  119. package/dist/esm/index.d.ts +0 -24
  120. package/dist/esm/index.js +0 -37
  121. package/dist/esm/makeAsset/makeAsset.d.ts +0 -10
  122. package/dist/esm/makeAsset/makeAsset.js +0 -41
  123. package/dist/esm/makeAsset/makeAsset.test.d.ts +0 -1
  124. package/dist/esm/makeAsset/makeAsset.test.js +0 -45
  125. package/dist/esm/promises.d.ts +0 -4
  126. package/dist/esm/promises.js +0 -3
  127. package/dist/esm/sha256.d.ts +0 -1
  128. package/dist/esm/sha256.js +0 -2
  129. package/dist/esm/timeout.d.ts +0 -7
  130. package/dist/esm/timeout.js +0 -28
  131. package/dist/esm/treasury.d.ts +0 -16
  132. package/dist/esm/treasury.js +0 -30
  133. package/dist/esm/unfreeze.d.ts +0 -4
  134. package/dist/esm/unfreeze.js +0 -6
  135. package/dist/esm/utxo.d.ts +0 -2
  136. package/dist/esm/utxo.js +0 -2
@@ -1,293 +0,0 @@
1
- import * as caip from '@shapeshiftoss/caip';
2
- const mayaTokenAssetId = 'cosmos:mayachain-mainnet-v1/slip44:maya';
3
- export const ethereum = Object.freeze({
4
- assetId: caip.ethAssetId,
5
- chainId: caip.ethChainId,
6
- symbol: 'ETH',
7
- name: 'Ethereum',
8
- networkName: 'Ethereum',
9
- precision: 18,
10
- color: '#5C6BC0',
11
- icon: 'https://rawcdn.githack.com/trustwallet/assets/32e51d582a890b3dd3135fe3ee7c20c2fd699a6d/blockchains/ethereum/info/logo.png',
12
- explorer: 'https://etherscan.io',
13
- explorerAddressLink: 'https://etherscan.io/address/',
14
- explorerTxLink: 'https://etherscan.io/tx/',
15
- relatedAssetKey: 'eip155:1/slip44:60',
16
- });
17
- export const bitcoin = Object.freeze({
18
- assetId: caip.btcAssetId,
19
- chainId: caip.btcChainId,
20
- symbol: 'BTC',
21
- name: 'Bitcoin',
22
- networkName: 'Bitcoin',
23
- precision: 8,
24
- color: '#FF9800',
25
- icon: 'https://rawcdn.githack.com/trustwallet/assets/b7a5f12d893fcf58e0eb1dd64478f076857b720b/blockchains/bitcoin/info/logo.png',
26
- explorer: 'https://live.blockcypher.com',
27
- explorerAddressLink: 'https://live.blockcypher.com/btc/address/',
28
- explorerTxLink: 'https://live.blockcypher.com/btc/tx/',
29
- relatedAssetKey: null,
30
- });
31
- export const bitcoincash = Object.freeze({
32
- assetId: caip.bchAssetId,
33
- chainId: caip.bchChainId,
34
- symbol: 'BCH',
35
- name: 'Bitcoin Cash',
36
- networkName: 'Bitcoin Cash',
37
- precision: 8,
38
- color: '#8BC34A',
39
- icon: 'https://rawcdn.githack.com/trustwallet/assets/b7a5f12d893fcf58e0eb1dd64478f076857b720b/blockchains/bitcoincash/info/logo.png',
40
- explorer: 'https://blockchair.com',
41
- explorerAddressLink: 'https://blockchair.com/bitcoin-cash/address/',
42
- explorerTxLink: 'https://blockchair.com/bitcoin-cash/transaction/',
43
- relatedAssetKey: null,
44
- });
45
- export const dogecoin = Object.freeze({
46
- assetId: caip.dogeAssetId,
47
- chainId: caip.dogeChainId,
48
- symbol: 'DOGE',
49
- name: 'Dogecoin',
50
- networkName: 'Dogecoin',
51
- precision: 8,
52
- color: '#FFC107',
53
- icon: 'https://assets.coingecko.com/coins/images/5/large/dogecoin.png?1696501409',
54
- explorer: 'https://live.blockcypher.com',
55
- explorerAddressLink: 'https://live.blockcypher.com/doge/address/',
56
- explorerTxLink: 'https://live.blockcypher.com/doge/tx/',
57
- relatedAssetKey: null,
58
- });
59
- export const litecoin = Object.freeze({
60
- assetId: caip.ltcAssetId,
61
- chainId: caip.ltcChainId,
62
- symbol: 'LTC',
63
- name: 'Litecoin',
64
- networkName: 'Litecoin',
65
- precision: 8,
66
- color: '#B8B8B8',
67
- icon: 'https://rawcdn.githack.com/trustwallet/assets/32e51d582a890b3dd3135fe3ee7c20c2fd699a6d/blockchains/litecoin/info/logo.png',
68
- explorer: 'https://live.blockcypher.com',
69
- explorerAddressLink: 'https://live.blockcypher.com/ltc/address/',
70
- explorerTxLink: 'https://live.blockcypher.com/ltc/tx/',
71
- relatedAssetKey: null,
72
- });
73
- export const atom = Object.freeze({
74
- assetId: caip.cosmosAssetId,
75
- chainId: caip.cosmosChainId,
76
- symbol: 'ATOM',
77
- name: 'Cosmos',
78
- networkName: 'Cosmos',
79
- precision: 6,
80
- color: '#303F9F',
81
- icon: 'https://rawcdn.githack.com/trustwallet/assets/b7a5f12d893fcf58e0eb1dd64478f076857b720b/blockchains/cosmos/info/logo.png',
82
- explorer: 'https://www.mintscan.io/cosmos',
83
- explorerAddressLink: 'https://www.mintscan.io/cosmos/account/',
84
- explorerTxLink: 'https://www.mintscan.io/cosmos/txs/',
85
- relatedAssetKey: null,
86
- });
87
- export const avax = Object.freeze({
88
- assetId: caip.avalancheAssetId,
89
- chainId: caip.avalancheChainId,
90
- name: 'Avalanche',
91
- networkName: 'Avalanche C-Chain',
92
- symbol: 'AVAX',
93
- precision: 18,
94
- color: '#FFFFFF',
95
- icon: 'https://rawcdn.githack.com/trustwallet/assets/b7a5f12d893fcf58e0eb1dd64478f076857b720b/blockchains/avalanchec/info/logo.png',
96
- explorer: 'https://snowtrace.dev',
97
- explorerAddressLink: 'https://snowtrace.dev/address/',
98
- explorerTxLink: 'https://snowtrace.dev/tx/',
99
- relatedAssetKey: null,
100
- });
101
- export const thorchain = Object.freeze({
102
- assetId: caip.thorchainAssetId,
103
- chainId: caip.thorchainChainId,
104
- name: 'THORChain',
105
- networkName: 'THORChain',
106
- symbol: 'RUNE',
107
- precision: 8,
108
- color: '#33FF99',
109
- icon: 'https://rawcdn.githack.com/trustwallet/assets/32e51d582a890b3dd3135fe3ee7c20c2fd699a6d/blockchains/thorchain/info/logo.png',
110
- explorer: 'https://viewblock.io/thorchain',
111
- explorerAddressLink: 'https://viewblock.io/thorchain/address/',
112
- explorerTxLink: 'https://viewblock.io/thorchain/tx/',
113
- relatedAssetKey: null,
114
- });
115
- export const tcy = Object.freeze({
116
- assetId: caip.tcyAssetId,
117
- chainId: caip.thorchainChainId,
118
- name: 'TCY',
119
- networkName: 'THORChain',
120
- symbol: 'TCY',
121
- precision: 8,
122
- color: '#33FF99',
123
- icon: 'https://raw.githubusercontent.com/shapeshift/web/develop/src/assets/tcy-icon.png',
124
- explorer: 'https://viewblock.io/thorchain',
125
- explorerAddressLink: 'https://viewblock.io/thorchain/address/',
126
- explorerTxLink: 'https://viewblock.io/thorchain/tx/',
127
- relatedAssetKey: null,
128
- });
129
- export const ruji = Object.freeze({
130
- assetId: caip.rujiAssetId,
131
- chainId: caip.thorchainChainId,
132
- name: 'Rujira',
133
- networkName: 'THORChain',
134
- symbol: 'RUJI',
135
- precision: 8,
136
- color: '#D800D8',
137
- icon: 'https://raw.githubusercontent.com/shapeshift/web/develop/src/assets/ruji-icon.png',
138
- explorer: 'https://viewblock.io/thorchain',
139
- explorerAddressLink: 'https://viewblock.io/thorchain/address/',
140
- explorerTxLink: 'https://viewblock.io/thorchain/tx/',
141
- relatedAssetKey: null,
142
- });
143
- export const maya = Object.freeze({
144
- assetId: mayaTokenAssetId,
145
- chainId: caip.mayachainChainId,
146
- name: 'MAYA',
147
- networkName: 'MAYAChain',
148
- symbol: 'MAYA',
149
- precision: 4,
150
- color: '#00FFA0',
151
- icon: 'https://raw.githubusercontent.com/shapeshift/web/develop/src/assets/maya.png',
152
- explorer: 'https://mayascan.org',
153
- explorerAddressLink: 'https://mayascan.org/address/',
154
- explorerTxLink: 'https://mayascan.org/tx/',
155
- relatedAssetKey: null,
156
- });
157
- export const mayachain = Object.freeze({
158
- assetId: caip.mayachainAssetId,
159
- chainId: caip.mayachainChainId,
160
- name: 'MAYAChain',
161
- networkName: 'MAYAChain',
162
- symbol: 'CACAO',
163
- precision: 10,
164
- color: '#63FDD9',
165
- icon: 'https://raw.githubusercontent.com/shapeshift/web/develop/src/assets/cacao.png',
166
- networkIcon: 'https://raw.githubusercontent.com/shapeshift/web/develop/src/assets/mayachain.png',
167
- explorer: 'https://mayascan.org',
168
- explorerAddressLink: 'https://mayascan.org/address/',
169
- explorerTxLink: 'https://mayascan.org/tx/',
170
- relatedAssetKey: null,
171
- });
172
- export const optimism = Object.freeze({
173
- assetId: caip.optimismAssetId,
174
- chainId: caip.optimismChainId,
175
- name: 'Ethereum',
176
- networkName: 'Optimism',
177
- symbol: 'ETH',
178
- precision: 18,
179
- color: '#5C6BC0',
180
- networkColor: '#FC0424',
181
- icon: 'https://rawcdn.githack.com/trustwallet/assets/32e51d582a890b3dd3135fe3ee7c20c2fd699a6d/blockchains/ethereum/info/logo.png',
182
- networkIcon: 'https://assets.coingecko.com/coins/images/25244/large/Optimism.png?1660904599',
183
- explorer: 'https://optimistic.etherscan.io',
184
- explorerAddressLink: 'https://optimistic.etherscan.io/address/',
185
- explorerTxLink: 'https://optimistic.etherscan.io/tx/',
186
- relatedAssetKey: 'eip155:1/slip44:60',
187
- });
188
- export const bnbsmartchain = Object.freeze({
189
- assetId: caip.bscAssetId,
190
- chainId: caip.bscChainId,
191
- name: 'BNB',
192
- networkName: 'BNB Smart Chain',
193
- symbol: 'BNB',
194
- precision: 18,
195
- color: '#F0B90B',
196
- icon: 'https://rawcdn.githack.com/trustwallet/assets/b7a5f12d893fcf58e0eb1dd64478f076857b720b/blockchains/binance/info/logo.png',
197
- explorer: 'https://bscscan.com',
198
- explorerAddressLink: 'https://bscscan.com/address/',
199
- explorerTxLink: 'https://bscscan.com/tx/',
200
- relatedAssetKey: null,
201
- });
202
- export const polygon = Object.freeze({
203
- assetId: caip.polygonAssetId,
204
- chainId: caip.polygonChainId,
205
- name: 'Polygon Ecosystem Token',
206
- networkName: 'Polygon',
207
- symbol: 'POL',
208
- precision: 18,
209
- color: '#8f00ff',
210
- icon: 'https://rawcdn.githack.com/trustwallet/assets/b7a5f12d893fcf58e0eb1dd64478f076857b720b/blockchains/polygon/info/logo.png',
211
- explorer: 'https://polygonscan.com/',
212
- explorerAddressLink: 'https://polygonscan.com/address/',
213
- explorerTxLink: 'https://polygonscan.com/tx/',
214
- relatedAssetKey: null,
215
- });
216
- export const gnosis = Object.freeze({
217
- assetId: caip.gnosisAssetId,
218
- chainId: caip.gnosisChainId,
219
- name: 'xDAI',
220
- networkName: 'Gnosis',
221
- symbol: 'xDAI',
222
- precision: 18,
223
- color: '#33765c',
224
- icon: 'https://assets.coingecko.com/coins/images/11062/large/Identity-Primary-DarkBG.png?1638372986',
225
- networkIcon: 'https://assets.coingecko.com/asset_platforms/images/11062/large/Aatar_green_white.png?1643204471',
226
- explorer: 'https://gnosis.blockscout.com/',
227
- explorerAddressLink: 'https://gnosis.blockscout.com/address/',
228
- explorerTxLink: 'https://gnosis.blockscout.com/tx/',
229
- relatedAssetKey: null,
230
- });
231
- export const arbitrum = Object.freeze({
232
- assetId: caip.arbitrumAssetId,
233
- chainId: caip.arbitrumChainId,
234
- name: 'Ethereum',
235
- networkName: 'Arbitrum One',
236
- symbol: 'ETH',
237
- precision: 18,
238
- color: '#5C6BC0',
239
- networkColor: '#213147',
240
- icon: 'https://rawcdn.githack.com/trustwallet/assets/32e51d582a890b3dd3135fe3ee7c20c2fd699a6d/blockchains/ethereum/info/logo.png',
241
- networkIcon: 'https://raw.githubusercontent.com/trustwallet/assets/b7a5f12d893fcf58e0eb1dd64478f076857b720b/blockchains/arbitrum/info/logo.png',
242
- explorer: 'https://arbiscan.io',
243
- explorerAddressLink: 'https://arbiscan.io/address/',
244
- explorerTxLink: 'https://arbiscan.io/tx/',
245
- relatedAssetKey: 'eip155:1/slip44:60',
246
- });
247
- export const arbitrumNova = Object.freeze({
248
- assetId: caip.arbitrumNovaAssetId,
249
- chainId: caip.arbitrumNovaChainId,
250
- name: 'Ethereum',
251
- networkName: 'Arbitrum Nova',
252
- symbol: 'ETH',
253
- precision: 18,
254
- color: '#5C6BC0',
255
- networkColor: '#E67408',
256
- icon: 'https://rawcdn.githack.com/trustwallet/assets/32e51d582a890b3dd3135fe3ee7c20c2fd699a6d/blockchains/ethereum/info/logo.png',
257
- networkIcon: 'https://assets.coingecko.com/asset_platforms/images/93/large/AN_logomark.png?1695026131',
258
- explorer: 'https://nova.arbiscan.io',
259
- explorerAddressLink: 'https://nova.arbiscan.io/address/',
260
- explorerTxLink: 'https://nova.arbiscan.io/tx/',
261
- relatedAssetKey: 'eip155:1/slip44:60',
262
- });
263
- export const base = Object.freeze({
264
- assetId: caip.baseAssetId,
265
- chainId: caip.baseChainId,
266
- name: 'Ethereum',
267
- networkName: 'Base',
268
- symbol: 'ETH',
269
- precision: 18,
270
- color: '#5C6BC0',
271
- networkColor: '#0052FF',
272
- icon: 'https://rawcdn.githack.com/trustwallet/assets/32e51d582a890b3dd3135fe3ee7c20c2fd699a6d/blockchains/ethereum/info/logo.png',
273
- networkIcon: 'https://rawcdn.githack.com/base-org/brand-kit/8984fe6e08be3058fd7cf5cd0b201f8b92b5a70e/logo/symbol/Base_Symbol_Blue.png',
274
- explorer: 'https://basescan.org',
275
- explorerAddressLink: 'https://basescan.org/address/',
276
- explorerTxLink: 'https://basescan.org/tx/',
277
- relatedAssetKey: 'eip155:1/slip44:60',
278
- });
279
- export const solana = Object.freeze({
280
- assetId: caip.solAssetId,
281
- chainId: caip.solanaChainId,
282
- name: 'Solana',
283
- networkName: 'Solana',
284
- symbol: 'SOL',
285
- precision: 9,
286
- color: '#9971d8',
287
- networkColor: '#9971d8',
288
- icon: 'https://rawcdn.githack.com/trustwallet/assets/426526def2f327476e868ecb902c515ab17518af/blockchains/solana/info/logo.png',
289
- explorer: 'https://explorer.solana.com',
290
- explorerAddressLink: 'https://explorer.solana.com/address/',
291
- explorerTxLink: 'https://explorer.solana.com/tx/',
292
- relatedAssetKey: null,
293
- });
@@ -1 +0,0 @@
1
- export declare const FIELDS: readonly ["assetIdx", "name", "precision", "color", "icon", "symbol", "relatedAssetKey", "isPool"];
@@ -1,10 +0,0 @@
1
- export const FIELDS = [
2
- 'assetIdx',
3
- 'name',
4
- 'precision',
5
- 'color',
6
- 'icon',
7
- 'symbol',
8
- 'relatedAssetKey',
9
- 'isPool',
10
- ];
@@ -1,7 +0,0 @@
1
- import type { AssetId } from '@shapeshiftoss/caip';
2
- import type { Asset } from '@shapeshiftoss/types';
3
- import type { EncodedAssetData } from './types.js';
4
- export declare const decodeAssetData: (encodedAssetData: EncodedAssetData, shouldAddNetworkName?: boolean) => {
5
- assetData: Record<AssetId, Asset>;
6
- sortedAssetIds: AssetId[];
7
- };
@@ -1,102 +0,0 @@
1
- import { fromAssetId } from '@shapeshiftoss/caip';
2
- import { pick } from 'lodash';
3
- import { assertUnreachable } from '../assertUnreachable.js';
4
- import { FIELDS } from './constants.js';
5
- import { getBaseAsset } from './getBaseAsset.js';
6
- const decodeAssetId = (encodedAssetId, assetIdPrefixes) => {
7
- // Performance sensitive. `lastIndexOf` + `substring` faster than `split`
8
- const colonIndex = encodedAssetId.lastIndexOf(':');
9
- const prefixIdx = Number(encodedAssetId.substring(0, colonIndex));
10
- const assetReference = encodedAssetId.substring(colonIndex + 1);
11
- // Performance sensitive. String concatenation faster than template literal
12
- return assetIdPrefixes[prefixIdx] + ':' + assetReference;
13
- };
14
- export const decodeAssetData = (encodedAssetData, shouldAddNetworkName = false) => {
15
- const { assetIdPrefixes, encodedAssetIds, encodedAssets } = encodedAssetData;
16
- const sortedAssetIds = encodedAssetIds.map(encodedAssetId => decodeAssetId(encodedAssetId, assetIdPrefixes));
17
- const assetData = encodedAssets.reduce((acc, encodedAsset, idx) => {
18
- const assetId = sortedAssetIds[idx];
19
- const { chainId } = fromAssetId(assetId);
20
- const baseAsset = getBaseAsset(chainId);
21
- // Initialize with default values for the chain
22
- const asset = Object.assign({
23
- assetId,
24
- chainId,
25
- symbol: '',
26
- name: '',
27
- precision: 0,
28
- color: '',
29
- icon: undefined,
30
- explorer: '',
31
- explorerAddressLink: '',
32
- explorerTxLink: '',
33
- relatedAssetKey: null,
34
- }, pick(baseAsset, ['explorer', 'explorerAddressLink', 'explorerTxLink']));
35
- if (assetId === baseAsset?.assetId) {
36
- asset.networkName = baseAsset.networkName;
37
- asset.networkIcon = baseAsset.networkIcon;
38
- asset.networkColor = baseAsset.networkColor;
39
- }
40
- // Apply each field's decoded value to the asset
41
- FIELDS.forEach((field, fieldIdx) => {
42
- const value = encodedAsset[fieldIdx];
43
- switch (field) {
44
- case 'icon': {
45
- const iconOrIcons = value;
46
- if (iconOrIcons.length === 1) {
47
- asset.icon = iconOrIcons[0];
48
- }
49
- else if (iconOrIcons.length > 1) {
50
- asset.icons = iconOrIcons;
51
- }
52
- break;
53
- }
54
- case 'relatedAssetKey': {
55
- const assetIdx = value;
56
- const relatedAssetId = assetIdx === null ? null : sortedAssetIds[assetIdx];
57
- // if (relatedAssetId === undefined) throw Error()
58
- if (relatedAssetId &&
59
- relatedAssetId !== asset.assetId &&
60
- baseAsset.networkName &&
61
- shouldAddNetworkName) {
62
- asset.name = `${asset.name} on ${baseAsset.networkName}`;
63
- }
64
- asset.relatedAssetKey = relatedAssetId;
65
- asset.isPrimary = relatedAssetId === null || relatedAssetId === asset.assetId;
66
- asset.isChainSpecific = relatedAssetId === null;
67
- break;
68
- }
69
- case 'name':
70
- asset.name = value;
71
- break;
72
- case 'precision':
73
- asset.precision = value;
74
- break;
75
- case 'color':
76
- asset.color = value;
77
- break;
78
- case 'symbol':
79
- asset.symbol = value;
80
- break;
81
- case 'isPool': {
82
- const isPool = value;
83
- if (isPool) {
84
- asset.isPool = true;
85
- }
86
- break;
87
- }
88
- case 'assetIdx':
89
- // Skip assetIdx as we already have assetId
90
- break;
91
- default:
92
- assertUnreachable(field);
93
- }
94
- });
95
- acc[assetId] = asset;
96
- return acc;
97
- }, {});
98
- return {
99
- assetData,
100
- sortedAssetIds,
101
- };
102
- };
@@ -1,3 +0,0 @@
1
- import type { AssetId } from '@shapeshiftoss/caip';
2
- import type { EncodedRelatedAssetIndex } from './types.js';
3
- export declare const decodeRelatedAssetIndex: (encodedRelatedAssetIndex: EncodedRelatedAssetIndex, sortedAssetIds: AssetId[]) => Record<AssetId, AssetId[]>;
@@ -1,10 +0,0 @@
1
- export const decodeRelatedAssetIndex = (encodedRelatedAssetIndex, sortedAssetIds) => {
2
- const result = {};
3
- for (let assetIdx = 0; assetIdx < sortedAssetIds.length; assetIdx++) {
4
- const assetId = sortedAssetIds[assetIdx];
5
- if (!encodedRelatedAssetIndex[assetIdx])
6
- continue;
7
- result[assetId] = encodedRelatedAssetIndex[assetIdx].map(innerAssetIdx => sortedAssetIds[innerAssetIdx]);
8
- }
9
- return result;
10
- };
@@ -1,4 +0,0 @@
1
- import type { AssetId } from '@shapeshiftoss/caip';
2
- import type { AssetsById } from '@shapeshiftoss/types';
3
- import type { EncodedAssetData } from './types.js';
4
- export declare const encodeAssetData: (sortedAssetIds: AssetId[], assetsById: AssetsById) => EncodedAssetData;
@@ -1,68 +0,0 @@
1
- import { assertUnreachable } from '../assertUnreachable.js';
2
- import { FIELDS } from './constants.js';
3
- const encodeAssetIds = (sortedAssetIds) => {
4
- const assetIdPrefixes = [];
5
- const encodedAssetIds = [];
6
- for (const assetId of sortedAssetIds) {
7
- // `indexOf` + `substring` faster than `split`
8
- const colonIndex = assetId.lastIndexOf(':');
9
- const prefix = assetId.substring(0, colonIndex);
10
- const assetReference = assetId.substring(colonIndex + 1);
11
- const prefixIdx = (() => {
12
- const prefixIdx = assetIdPrefixes.indexOf(prefix);
13
- if (prefixIdx !== -1) {
14
- return prefixIdx;
15
- }
16
- else {
17
- assetIdPrefixes.push(prefix);
18
- return assetIdPrefixes.length - 1;
19
- }
20
- })();
21
- encodedAssetIds.push(`${prefixIdx}:${assetReference}`);
22
- }
23
- return {
24
- assetIdPrefixes,
25
- encodedAssetIds,
26
- };
27
- };
28
- const encodeField = (field, assetIdToAssetIdx, asset) => {
29
- switch (field) {
30
- case 'assetIdx':
31
- return assetIdToAssetIdx[asset.assetId];
32
- case 'name':
33
- return asset.name;
34
- case 'precision':
35
- return asset.precision;
36
- case 'color':
37
- return asset.color;
38
- case 'icon':
39
- return (asset.icon ? [asset.icon] : asset.icons ?? []);
40
- case 'symbol':
41
- return asset.symbol;
42
- case 'relatedAssetKey':
43
- return (!asset.relatedAssetKey ? null : assetIdToAssetIdx[asset.relatedAssetKey]);
44
- case 'isPool':
45
- return (asset.isPool ? 1 : 0);
46
- default:
47
- return assertUnreachable(field);
48
- }
49
- };
50
- export const encodeAssetData = (sortedAssetIds, assetsById) => {
51
- const { assetIdPrefixes, encodedAssetIds } = encodeAssetIds(sortedAssetIds);
52
- const assetIdToAssetIdx = sortedAssetIds.reduce((acc, val, idx) => {
53
- acc[val] = idx;
54
- return acc;
55
- }, {});
56
- const encodedAssets = [];
57
- for (let i = 0; i < encodedAssetIds.length; i++) {
58
- const assetId = sortedAssetIds[i];
59
- const asset = assetsById[assetId];
60
- const record = FIELDS.map(field => encodeField(field, assetIdToAssetIdx, asset));
61
- encodedAssets.push(record);
62
- }
63
- return {
64
- assetIdPrefixes,
65
- encodedAssetIds,
66
- encodedAssets,
67
- };
68
- };
@@ -1,3 +0,0 @@
1
- import type { AssetId } from '@shapeshiftoss/caip';
2
- import type { EncodedRelatedAssetIndex } from './types.js';
3
- export declare const encodeRelatedAssetIndex: (relatedAssetIndex: Record<AssetId, AssetId[]>, sortedAssetIds: AssetId[]) => EncodedRelatedAssetIndex;
@@ -1,16 +0,0 @@
1
- export const encodeRelatedAssetIndex = (relatedAssetIndex, sortedAssetIds) => {
2
- const assetIdToAssetIdx = sortedAssetIds.reduce((acc, val, idx) => {
3
- acc[val] = idx;
4
- return acc;
5
- }, {});
6
- const result = {};
7
- for (const [assetId, relatedAssets] of Object.entries(relatedAssetIndex)) {
8
- if (!relatedAssets.length)
9
- continue;
10
- const assetIdx = assetIdToAssetIdx[assetId];
11
- result[assetIdx] = relatedAssets.map(assetId => {
12
- return assetIdToAssetIdx[assetId];
13
- });
14
- }
15
- return result;
16
- };
@@ -1,3 +0,0 @@
1
- import type { ChainId } from '@shapeshiftoss/caip';
2
- import type { Asset } from '@shapeshiftoss/types';
3
- export declare const getBaseAsset: (chainId: ChainId) => Readonly<Asset>;
@@ -1,44 +0,0 @@
1
- import { KnownChainIds } from '@shapeshiftoss/types';
2
- import { assertUnreachable } from '../assertUnreachable.js';
3
- import { arbitrum, arbitrumNova, atom, avax, base, bitcoin, bitcoincash, bnbsmartchain, dogecoin, ethereum, gnosis, litecoin, mayachain, optimism, polygon, solana, thorchain, } from './baseAssets.js';
4
- export const getBaseAsset = (chainId) => {
5
- const knownChainId = chainId;
6
- switch (knownChainId) {
7
- case KnownChainIds.EthereumMainnet:
8
- return ethereum;
9
- case KnownChainIds.AvalancheMainnet:
10
- return avax;
11
- case KnownChainIds.OptimismMainnet:
12
- return optimism;
13
- case KnownChainIds.BnbSmartChainMainnet:
14
- return bnbsmartchain;
15
- case KnownChainIds.PolygonMainnet:
16
- return polygon;
17
- case KnownChainIds.GnosisMainnet:
18
- return gnosis;
19
- case KnownChainIds.ArbitrumMainnet:
20
- return arbitrum;
21
- case KnownChainIds.ArbitrumNovaMainnet:
22
- return arbitrumNova;
23
- case KnownChainIds.BaseMainnet:
24
- return base;
25
- case KnownChainIds.SolanaMainnet:
26
- return solana;
27
- case KnownChainIds.BitcoinMainnet:
28
- return bitcoin;
29
- case KnownChainIds.BitcoinCashMainnet:
30
- return bitcoincash;
31
- case KnownChainIds.DogecoinMainnet:
32
- return dogecoin;
33
- case KnownChainIds.LitecoinMainnet:
34
- return litecoin;
35
- case KnownChainIds.CosmosMainnet:
36
- return atom;
37
- case KnownChainIds.ThorchainMainnet:
38
- return thorchain;
39
- case KnownChainIds.MayachainMainnet:
40
- return mayachain;
41
- default:
42
- return assertUnreachable(knownChainId);
43
- }
44
- };
@@ -1,7 +0,0 @@
1
- export * from './encodeAssetData.js';
2
- export * from './decodeAssetData.js';
3
- export * from './baseAssets.js';
4
- export * from './getBaseAsset.js';
5
- export * from './encodeRelatedAssetIndex.js';
6
- export * from './decodeRelatedAssetIndex.js';
7
- export * from './types.js';
@@ -1,7 +0,0 @@
1
- export * from './encodeAssetData.js';
2
- export * from './decodeAssetData.js';
3
- export * from './baseAssets.js';
4
- export * from './getBaseAsset.js';
5
- export * from './encodeRelatedAssetIndex.js';
6
- export * from './decodeRelatedAssetIndex.js';
7
- export * from './types.js';
@@ -1 +0,0 @@
1
- export {};
@@ -1,30 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { decodeRelatedAssetIndex } from './decodeRelatedAssetIndex.js';
3
- import { encodeRelatedAssetIndex } from './encodeRelatedAssetIndex.js';
4
- // Order of these is deliberately shuffled to test sorting is preserved
5
- const mockSortedAssetIds = [
6
- 'eip155:1/erc20:0xeeecd285f60e802ecb6d8d8d37790c887f9a4b33',
7
- 'eip155:1/erc20:0xeeee2a2e650697d2a8e8bc990c2f3d04203be06f',
8
- 'eip155:1/erc20:0xeed3ae7b0f8b5b9bb8c035a9941382b1822671cd',
9
- 'eip155:1/erc20:0xf073bac22dab7faf4a3dd6c6189a70d54110525c',
10
- 'eip155:1/erc20:0xeee0fe52299f2de8e2ed5111cd521ab67dcf0faf',
11
- 'eip155:1/erc20:0xeeda34a377dd0ca676b9511ee1324974fa8d980d',
12
- 'bip122:000000000019d6689c085ae165831e93/slip44:0', // BTC
13
- ];
14
- const mockRelatedAssetIndex = {
15
- 'eip155:1/erc20:0xeeee2a2e650697d2a8e8bc990c2f3d04203be06f': [
16
- 'eip155:1/erc20:0xeeee2a2e650697d2a8e8bc990c2f3d04203be06f',
17
- 'eip155:1/erc20:0xf073bac22dab7faf4a3dd6c6189a70d54110525c',
18
- ],
19
- 'eip155:1/erc20:0xf073bac22dab7faf4a3dd6c6189a70d54110525c': [
20
- 'eip155:1/erc20:0xeeee2a2e650697d2a8e8bc990c2f3d04203be06f',
21
- 'eip155:1/erc20:0xf073bac22dab7faf4a3dd6c6189a70d54110525c',
22
- ],
23
- };
24
- describe('relatedAssetIndex', () => {
25
- it('can encode and decode related asset index as a complete round trip', () => {
26
- const encodedRelatedAssetIndex = encodeRelatedAssetIndex(mockRelatedAssetIndex, mockSortedAssetIds);
27
- const decodedRelatedAssetIndex = decodeRelatedAssetIndex(encodedRelatedAssetIndex, mockSortedAssetIds);
28
- expect(decodedRelatedAssetIndex).toEqual(mockRelatedAssetIndex);
29
- });
30
- });
@@ -1,28 +0,0 @@
1
- import type { FIELDS } from './constants.js';
2
- export type Field = (typeof FIELDS)[number];
3
- export type FieldToType = {
4
- assetIdx: number;
5
- name: string;
6
- precision: number;
7
- color: string;
8
- icon: string[];
9
- symbol: string;
10
- relatedAssetKey: number | null;
11
- isPool: 0 | 1;
12
- };
13
- export type EncodedAsset = [
14
- FieldToType['assetIdx'],
15
- FieldToType['name'],
16
- FieldToType['precision'],
17
- FieldToType['color'],
18
- FieldToType['icon'],
19
- FieldToType['symbol'],
20
- FieldToType['relatedAssetKey'],
21
- FieldToType['isPool']
22
- ];
23
- export type EncodedAssetData = {
24
- assetIdPrefixes: string[];
25
- encodedAssetIds: string[];
26
- encodedAssets: EncodedAsset[];
27
- };
28
- export type EncodedRelatedAssetIndex = Record<number, number[]>;
@@ -1 +0,0 @@
1
- export {};