@megatao/sdk 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/.env.example +37 -0
  2. package/CHANGELOG.md +19 -0
  3. package/README.md +199 -0
  4. package/bin/alf +4 -0
  5. package/cli/README.md +198 -0
  6. package/cli/TEST_MANUAL.md +577 -0
  7. package/cli/commands/account.ts +545 -0
  8. package/cli/commands/funding.ts +481 -0
  9. package/cli/commands/liquidation.ts +523 -0
  10. package/cli/commands/market.ts +590 -0
  11. package/cli/commands/orders.ts +395 -0
  12. package/cli/commands/position.ts +1085 -0
  13. package/cli/commands/shared/positionUtils.ts +239 -0
  14. package/cli/commands/trading.ts +483 -0
  15. package/cli/commands/utils.ts +281 -0
  16. package/cli/commands/vault.ts +522 -0
  17. package/cli/index.ts +169 -0
  18. package/cli/interactive.ts +530 -0
  19. package/cli/utils/client.ts +457 -0
  20. package/cli/utils/config.ts +226 -0
  21. package/cli/utils/display.ts +258 -0
  22. package/cli/utils/index.ts +10 -0
  23. package/cli/utils/prompts.ts +364 -0
  24. package/config.example.json +23 -0
  25. package/dist/AlphaFuturesClient.d.ts +36 -0
  26. package/dist/AlphaFuturesClient.d.ts.map +1 -0
  27. package/dist/AlphaFuturesClient.js +116 -0
  28. package/dist/AlphaFuturesClient.js.map +1 -0
  29. package/dist/abi/Alpha.json +5987 -0
  30. package/dist/abi/abis.d.ts +319 -0
  31. package/dist/abi/abis.d.ts.map +1 -0
  32. package/dist/abi/abis.js +128 -0
  33. package/dist/abi/abis.js.map +1 -0
  34. package/dist/abi/index.d.ts +11 -0
  35. package/dist/abi/index.d.ts.map +1 -0
  36. package/dist/abi/index.js +15 -0
  37. package/dist/abi/index.js.map +1 -0
  38. package/dist/config/contracts.config.d.ts +70 -0
  39. package/dist/config/contracts.config.d.ts.map +1 -0
  40. package/dist/config/contracts.config.js +137 -0
  41. package/dist/config/contracts.config.js.map +1 -0
  42. package/dist/config/environments/alpha.config.d.ts +17 -0
  43. package/dist/config/environments/alpha.config.d.ts.map +1 -0
  44. package/dist/config/environments/alpha.config.js +140 -0
  45. package/dist/config/environments/alpha.config.js.map +1 -0
  46. package/dist/config/environments/beta.config.d.ts +16 -0
  47. package/dist/config/environments/beta.config.d.ts.map +1 -0
  48. package/dist/config/environments/beta.config.js +131 -0
  49. package/dist/config/environments/beta.config.js.map +1 -0
  50. package/dist/config/environments/dev.config.d.ts +13 -0
  51. package/dist/config/environments/dev.config.d.ts.map +1 -0
  52. package/dist/config/environments/dev.config.js +123 -0
  53. package/dist/config/environments/dev.config.js.map +1 -0
  54. package/dist/config/environments/index.d.ts +48 -0
  55. package/dist/config/environments/index.d.ts.map +1 -0
  56. package/dist/config/environments/index.js +81 -0
  57. package/dist/config/environments/index.js.map +1 -0
  58. package/dist/config/environments/localhost.config.d.ts +16 -0
  59. package/dist/config/environments/localhost.config.d.ts.map +1 -0
  60. package/dist/config/environments/localhost.config.js +152 -0
  61. package/dist/config/environments/localhost.config.js.map +1 -0
  62. package/dist/config/environments/prod.config.d.ts +20 -0
  63. package/dist/config/environments/prod.config.d.ts.map +1 -0
  64. package/dist/config/environments/prod.config.js +143 -0
  65. package/dist/config/environments/prod.config.js.map +1 -0
  66. package/dist/config/index.d.ts +7 -0
  67. package/dist/config/index.d.ts.map +1 -0
  68. package/dist/config/index.js +41 -0
  69. package/dist/config/index.js.map +1 -0
  70. package/dist/constants/assets.d.ts +76 -0
  71. package/dist/constants/assets.d.ts.map +1 -0
  72. package/dist/constants/assets.js +277 -0
  73. package/dist/constants/assets.js.map +1 -0
  74. package/dist/constants/contracts.d.ts +41 -0
  75. package/dist/constants/contracts.d.ts.map +1 -0
  76. package/dist/constants/contracts.js +57 -0
  77. package/dist/constants/contracts.js.map +1 -0
  78. package/dist/constants/index.d.ts +36 -0
  79. package/dist/constants/index.d.ts.map +1 -0
  80. package/dist/constants/index.js +75 -0
  81. package/dist/constants/index.js.map +1 -0
  82. package/dist/constants/networks.d.ts +32 -0
  83. package/dist/constants/networks.d.ts.map +1 -0
  84. package/dist/constants/networks.js +174 -0
  85. package/dist/constants/networks.js.map +1 -0
  86. package/dist/contracts/index.d.ts +5 -0
  87. package/dist/contracts/index.d.ts.map +1 -0
  88. package/dist/contracts/index.js +21 -0
  89. package/dist/contracts/index.js.map +1 -0
  90. package/dist/contracts/viem/AlphaViem.d.ts +518 -0
  91. package/dist/contracts/viem/AlphaViem.d.ts.map +1 -0
  92. package/dist/contracts/viem/AlphaViem.js +1287 -0
  93. package/dist/contracts/viem/AlphaViem.js.map +1 -0
  94. package/dist/contracts/viem/PriceOracleViem.d.ts +71 -0
  95. package/dist/contracts/viem/PriceOracleViem.d.ts.map +1 -0
  96. package/dist/contracts/viem/PriceOracleViem.js +212 -0
  97. package/dist/contracts/viem/PriceOracleViem.js.map +1 -0
  98. package/dist/contracts/viem/index.d.ts +9 -0
  99. package/dist/contracts/viem/index.d.ts.map +1 -0
  100. package/dist/contracts/viem/index.js +17 -0
  101. package/dist/contracts/viem/index.js.map +1 -0
  102. package/dist/errors/index.d.ts +44 -0
  103. package/dist/errors/index.d.ts.map +1 -0
  104. package/dist/errors/index.js +83 -0
  105. package/dist/errors/index.js.map +1 -0
  106. package/dist/index.d.ts +19 -0
  107. package/dist/index.d.ts.map +1 -0
  108. package/dist/index.js +60 -0
  109. package/dist/index.js.map +1 -0
  110. package/dist/types/alpha.d.ts +299 -0
  111. package/dist/types/alpha.d.ts.map +1 -0
  112. package/dist/types/alpha.js +6 -0
  113. package/dist/types/alpha.js.map +1 -0
  114. package/dist/types/client.d.ts +24 -0
  115. package/dist/types/client.d.ts.map +1 -0
  116. package/dist/types/client.js +13 -0
  117. package/dist/types/client.js.map +1 -0
  118. package/dist/types/contracts.d.ts +48 -0
  119. package/dist/types/contracts.d.ts.map +1 -0
  120. package/dist/types/contracts.js +6 -0
  121. package/dist/types/contracts.js.map +1 -0
  122. package/dist/types/funding.d.ts +27 -0
  123. package/dist/types/funding.d.ts.map +1 -0
  124. package/dist/types/funding.js +6 -0
  125. package/dist/types/funding.js.map +1 -0
  126. package/dist/types/index.d.ts +92 -0
  127. package/dist/types/index.d.ts.map +1 -0
  128. package/dist/types/index.js +47 -0
  129. package/dist/types/index.js.map +1 -0
  130. package/dist/types/liquidation.d.ts +20 -0
  131. package/dist/types/liquidation.d.ts.map +1 -0
  132. package/dist/types/liquidation.js +6 -0
  133. package/dist/types/liquidation.js.map +1 -0
  134. package/dist/types/margin.d.ts +29 -0
  135. package/dist/types/margin.d.ts.map +1 -0
  136. package/dist/types/margin.js +6 -0
  137. package/dist/types/margin.js.map +1 -0
  138. package/dist/types/oracle.d.ts +21 -0
  139. package/dist/types/oracle.d.ts.map +1 -0
  140. package/dist/types/oracle.js +6 -0
  141. package/dist/types/oracle.js.map +1 -0
  142. package/dist/types/positions.d.ts +43 -0
  143. package/dist/types/positions.d.ts.map +1 -0
  144. package/dist/types/positions.js +13 -0
  145. package/dist/types/positions.js.map +1 -0
  146. package/dist/utils/calculations.d.ts +84 -0
  147. package/dist/utils/calculations.d.ts.map +1 -0
  148. package/dist/utils/calculations.js +155 -0
  149. package/dist/utils/calculations.js.map +1 -0
  150. package/dist/utils/errors.d.ts +24 -0
  151. package/dist/utils/errors.d.ts.map +1 -0
  152. package/dist/utils/errors.js +129 -0
  153. package/dist/utils/errors.js.map +1 -0
  154. package/dist/utils/events.d.ts +40 -0
  155. package/dist/utils/events.d.ts.map +1 -0
  156. package/dist/utils/events.js +73 -0
  157. package/dist/utils/events.js.map +1 -0
  158. package/dist/utils/format.d.ts +40 -0
  159. package/dist/utils/format.d.ts.map +1 -0
  160. package/dist/utils/format.js +86 -0
  161. package/dist/utils/format.js.map +1 -0
  162. package/dist/utils/index.d.ts +10 -0
  163. package/dist/utils/index.d.ts.map +1 -0
  164. package/dist/utils/index.js +26 -0
  165. package/dist/utils/index.js.map +1 -0
  166. package/dist/utils/network.d.ts +52 -0
  167. package/dist/utils/network.d.ts.map +1 -0
  168. package/dist/utils/network.js +192 -0
  169. package/dist/utils/network.js.map +1 -0
  170. package/dist/utils/positionCalculations.d.ts +145 -0
  171. package/dist/utils/positionCalculations.d.ts.map +1 -0
  172. package/dist/utils/positionCalculations.js +278 -0
  173. package/dist/utils/positionCalculations.js.map +1 -0
  174. package/dist/utils/validation.d.ts +28 -0
  175. package/dist/utils/validation.d.ts.map +1 -0
  176. package/dist/utils/validation.js +68 -0
  177. package/dist/utils/validation.js.map +1 -0
  178. package/docs/README.md +40 -0
  179. package/docs/api/API.md +831 -0
  180. package/docs/guides/GETTING_STARTED.md +316 -0
  181. package/docs/guides/TRADING_GUIDE.md +677 -0
  182. package/docs/integration/INTEGRATION_GUIDE.md +1679 -0
  183. package/docs/integration/VIEM_INTEGRATION.md +294 -0
  184. package/docs/reference/CLI_QUICK_REFERENCE.md +197 -0
  185. package/docs/reference/TROUBLESHOOTING.md +922 -0
  186. package/package.json +113 -0
  187. package/src/AlphaFuturesClient.ts +158 -0
  188. package/src/abi/.gitkeep +1 -0
  189. package/src/abi/Alpha.json +5987 -0
  190. package/src/abi/README.md +99 -0
  191. package/src/abi/abis.ts +131 -0
  192. package/src/abi/index.ts +13 -0
  193. package/src/config/contracts.config.ts +186 -0
  194. package/src/config/environments/alpha.config.ts +139 -0
  195. package/src/config/environments/beta.config.ts +130 -0
  196. package/src/config/environments/dev.config.ts +122 -0
  197. package/src/config/environments/index.ts +87 -0
  198. package/src/config/environments/localhost.config.ts +153 -0
  199. package/src/config/environments/prod.config.ts +142 -0
  200. package/src/config/index.ts +29 -0
  201. package/src/constants/assets.ts +299 -0
  202. package/src/constants/contracts.ts +64 -0
  203. package/src/constants/index.ts +69 -0
  204. package/src/constants/networks.ts +182 -0
  205. package/src/contracts/index.ts +5 -0
  206. package/src/contracts/viem/AlphaViem.ts +1615 -0
  207. package/src/contracts/viem/PriceOracleViem.ts +272 -0
  208. package/src/contracts/viem/index.ts +11 -0
  209. package/src/errors/index.ts +87 -0
  210. package/src/index.ts +59 -0
  211. package/src/types/VIEM_TYPES_README.md +70 -0
  212. package/src/types/alpha.ts +358 -0
  213. package/src/types/client.ts +27 -0
  214. package/src/types/contracts.ts +74 -0
  215. package/src/types/funding.ts +31 -0
  216. package/src/types/index.ts +108 -0
  217. package/src/types/liquidation.ts +23 -0
  218. package/src/types/margin.ts +34 -0
  219. package/src/types/oracle.ts +24 -0
  220. package/src/types/positions.ts +48 -0
  221. package/src/utils/calculations.ts +175 -0
  222. package/src/utils/errors.ts +147 -0
  223. package/src/utils/events.ts +98 -0
  224. package/src/utils/format.ts +84 -0
  225. package/src/utils/index.ts +10 -0
  226. package/src/utils/network.ts +212 -0
  227. package/src/utils/positionCalculations.ts +317 -0
  228. package/src/utils/validation.ts +76 -0
@@ -0,0 +1,277 @@
1
+ "use strict";
2
+ /**
3
+ * Asset mappings and constants for Alpha Futures
4
+ * Includes both legacy assets and new subnet markets
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ASSET_DECIMALS = exports.ASSET_NAMES = exports.ASSET_ADDRESSES = exports.SUBNET_MARKETS = void 0;
8
+ exports.getAssetAddress = getAssetAddress;
9
+ exports.getAssetSymbol = getAssetSymbol;
10
+ exports.isAssetSupported = isAssetSupported;
11
+ exports.getAssetDecimals = getAssetDecimals;
12
+ exports.getSubnetMarket = getSubnetMarket;
13
+ exports.getAvailableSubnetMarkets = getAvailableSubnetMarkets;
14
+ exports.isSubnetMarket = isSubnetMarket;
15
+ exports.getSubnetMarketById = getSubnetMarketById;
16
+ exports.getSupportedAssets = getSupportedAssets;
17
+ exports.getSupportedSubnetMarkets = getSupportedSubnetMarkets;
18
+ /**
19
+ * Bittensor subnet markets available for Alpha Futures trading
20
+ * Top 12 subnets by emission (as of 2025)
21
+ */
22
+ exports.SUBNET_MARKETS = {
23
+ CHUTES: {
24
+ subnetId: 64,
25
+ name: 'Chutes',
26
+ marketAddress: '0x0000000000000000000000000000000000000040',
27
+ symbol: 'CHUTES',
28
+ displayName: 'Chutes (SN64)',
29
+ decimals: 18,
30
+ hasOraclePrice: true,
31
+ },
32
+ LIUM: {
33
+ subnetId: 51,
34
+ name: 'lium.io',
35
+ marketAddress: '0x0000000000000000000000000000000000000033',
36
+ symbol: 'LIUM',
37
+ displayName: 'lium.io (SN51)',
38
+ decimals: 18,
39
+ hasOraclePrice: true,
40
+ },
41
+ RIDGES: {
42
+ subnetId: 62,
43
+ name: 'Ridges',
44
+ marketAddress: '0x000000000000000000000000000000000000003e',
45
+ symbol: 'RIDGES',
46
+ displayName: 'Ridges (SN62)',
47
+ decimals: 18,
48
+ hasOraclePrice: true,
49
+ },
50
+ TARGON: {
51
+ subnetId: 4,
52
+ name: 'Targon',
53
+ marketAddress: '0x0000000000000000000000000000000000000004',
54
+ symbol: 'TARGON',
55
+ displayName: 'Targon (SN4)',
56
+ decimals: 18,
57
+ hasOraclePrice: true,
58
+ },
59
+ VANTA: {
60
+ subnetId: 8,
61
+ name: 'Vanta',
62
+ marketAddress: '0x0000000000000000000000000000000000000008',
63
+ symbol: 'VANTA',
64
+ displayName: 'Vanta (SN8)',
65
+ decimals: 18,
66
+ hasOraclePrice: true,
67
+ },
68
+ AFFINE: {
69
+ subnetId: 120,
70
+ name: 'Affine',
71
+ marketAddress: '0x0000000000000000000000000000000000000078',
72
+ symbol: 'AFFINE',
73
+ displayName: 'Affine (SN120)',
74
+ decimals: 18,
75
+ hasOraclePrice: true,
76
+ },
77
+ TEMPLAR: {
78
+ subnetId: 3,
79
+ name: 'templar',
80
+ marketAddress: '0x0000000000000000000000000000000000000003',
81
+ symbol: 'TEMPLAR',
82
+ displayName: 'templar (SN3)',
83
+ decimals: 18,
84
+ hasOraclePrice: true,
85
+ },
86
+ SCORE: {
87
+ subnetId: 44,
88
+ name: 'Score',
89
+ marketAddress: '0x000000000000000000000000000000000000002c',
90
+ symbol: 'SCORE',
91
+ displayName: 'Score (SN44)',
92
+ decimals: 18,
93
+ hasOraclePrice: true,
94
+ },
95
+ IOTA: {
96
+ subnetId: 9,
97
+ name: 'iota',
98
+ marketAddress: '0x0000000000000000000000000000000000000009',
99
+ symbol: 'IOTA',
100
+ displayName: 'iota (SN9)',
101
+ decimals: 18,
102
+ hasOraclePrice: true,
103
+ },
104
+ GRADIENTS: {
105
+ subnetId: 56,
106
+ name: 'Gradients',
107
+ marketAddress: '0x0000000000000000000000000000000000000038',
108
+ symbol: 'GRADIENTS',
109
+ displayName: 'Gradients (SN56)',
110
+ decimals: 18,
111
+ hasOraclePrice: true,
112
+ },
113
+ HIPPIUS: {
114
+ subnetId: 75,
115
+ name: 'Hippius',
116
+ marketAddress: '0x000000000000000000000000000000000000004b',
117
+ symbol: 'HIPPIUS',
118
+ displayName: 'Hippius (SN75)',
119
+ decimals: 18,
120
+ hasOraclePrice: true,
121
+ },
122
+ BITMIND: {
123
+ subnetId: 34,
124
+ name: 'BitMind',
125
+ marketAddress: '0x0000000000000000000000000000000000000022',
126
+ symbol: 'BITMIND',
127
+ displayName: 'BitMind (SN34)',
128
+ decimals: 18,
129
+ hasOraclePrice: true,
130
+ },
131
+ MTSOS: {
132
+ subnetId: 65534,
133
+ name: 'MTSOS',
134
+ marketAddress: '0x000000000000000000000000000000000000FFFE',
135
+ symbol: 'MTSOS',
136
+ displayName: 'MegaTAO Sum-of-Subnets Index',
137
+ decimals: 18,
138
+ hasOraclePrice: true,
139
+ },
140
+ };
141
+ /**
142
+ * Legacy asset addresses (maintained for backward compatibility)
143
+ */
144
+ exports.ASSET_ADDRESSES = {
145
+ // Legacy assets
146
+ ALPHA: '0x0000000000000000000000000000000000000001',
147
+ TAO: '0x0000000000000000000000000000000000000002',
148
+ // Subnet market addresses
149
+ CHUTES: exports.SUBNET_MARKETS.CHUTES.marketAddress,
150
+ LIUM: exports.SUBNET_MARKETS.LIUM.marketAddress,
151
+ RIDGES: exports.SUBNET_MARKETS.RIDGES.marketAddress,
152
+ TARGON: exports.SUBNET_MARKETS.TARGON.marketAddress,
153
+ VANTA: exports.SUBNET_MARKETS.VANTA.marketAddress,
154
+ AFFINE: exports.SUBNET_MARKETS.AFFINE.marketAddress,
155
+ TEMPLAR: exports.SUBNET_MARKETS.TEMPLAR.marketAddress,
156
+ SCORE: exports.SUBNET_MARKETS.SCORE.marketAddress,
157
+ IOTA: exports.SUBNET_MARKETS.IOTA.marketAddress,
158
+ GRADIENTS: exports.SUBNET_MARKETS.GRADIENTS.marketAddress,
159
+ HIPPIUS: exports.SUBNET_MARKETS.HIPPIUS.marketAddress,
160
+ BITMIND: exports.SUBNET_MARKETS.BITMIND.marketAddress,
161
+ MTSOS: exports.SUBNET_MARKETS.MTSOS.marketAddress,
162
+ };
163
+ exports.ASSET_NAMES = {
164
+ '0x0000000000000000000000000000000000000001': 'ALPHA',
165
+ '0x0000000000000000000000000000000000000002': 'TAO',
166
+ // Subnet market names
167
+ [exports.SUBNET_MARKETS.CHUTES.marketAddress]: 'CHUTES',
168
+ [exports.SUBNET_MARKETS.LIUM.marketAddress]: 'LIUM',
169
+ [exports.SUBNET_MARKETS.RIDGES.marketAddress]: 'RIDGES',
170
+ [exports.SUBNET_MARKETS.TARGON.marketAddress]: 'TARGON',
171
+ [exports.SUBNET_MARKETS.VANTA.marketAddress]: 'VANTA',
172
+ [exports.SUBNET_MARKETS.AFFINE.marketAddress]: 'AFFINE',
173
+ [exports.SUBNET_MARKETS.TEMPLAR.marketAddress]: 'TEMPLAR',
174
+ [exports.SUBNET_MARKETS.SCORE.marketAddress]: 'SCORE',
175
+ [exports.SUBNET_MARKETS.IOTA.marketAddress]: 'IOTA',
176
+ [exports.SUBNET_MARKETS.GRADIENTS.marketAddress]: 'GRADIENTS',
177
+ [exports.SUBNET_MARKETS.HIPPIUS.marketAddress]: 'HIPPIUS',
178
+ [exports.SUBNET_MARKETS.BITMIND.marketAddress]: 'BITMIND',
179
+ [exports.SUBNET_MARKETS.MTSOS.marketAddress]: 'MTSOS',
180
+ };
181
+ exports.ASSET_DECIMALS = {
182
+ // Legacy assets
183
+ ALPHA: 18,
184
+ TAO: 18,
185
+ // Subnet markets (all use 18 decimals)
186
+ CHUTES: 18,
187
+ LIUM: 18,
188
+ RIDGES: 18,
189
+ TARGON: 18,
190
+ VANTA: 18,
191
+ AFFINE: 18,
192
+ TEMPLAR: 18,
193
+ SCORE: 18,
194
+ IOTA: 18,
195
+ GRADIENTS: 18,
196
+ HIPPIUS: 18,
197
+ BITMIND: 18,
198
+ MTSOS: 18,
199
+ };
200
+ /**
201
+ * Convert asset symbol to address
202
+ */
203
+ function getAssetAddress(symbol) {
204
+ const address = exports.ASSET_ADDRESSES[symbol.toUpperCase()];
205
+ if (!address) {
206
+ throw new Error(`Unknown asset symbol: ${symbol}`);
207
+ }
208
+ return address;
209
+ }
210
+ /**
211
+ * Convert asset address to symbol
212
+ */
213
+ function getAssetSymbol(address) {
214
+ const symbol = exports.ASSET_NAMES[address];
215
+ if (!symbol) {
216
+ throw new Error(`Unknown asset address: ${address}`);
217
+ }
218
+ return symbol;
219
+ }
220
+ /**
221
+ * Check if asset is supported
222
+ */
223
+ function isAssetSupported(symbolOrAddress) {
224
+ const symbol = symbolOrAddress.toUpperCase();
225
+ return symbol in exports.ASSET_ADDRESSES || symbolOrAddress in exports.ASSET_NAMES;
226
+ }
227
+ /**
228
+ * Get asset decimals
229
+ */
230
+ function getAssetDecimals(symbol) {
231
+ const decimals = exports.ASSET_DECIMALS[symbol.toUpperCase()];
232
+ if (decimals === undefined) {
233
+ throw new Error(`Unknown asset symbol: ${symbol}`);
234
+ }
235
+ return decimals;
236
+ }
237
+ /**
238
+ * Get subnet market by symbol
239
+ */
240
+ function getSubnetMarket(symbol) {
241
+ const market = exports.SUBNET_MARKETS[symbol.toUpperCase()];
242
+ if (!market) {
243
+ throw new Error(`Unknown subnet market symbol: ${symbol}`);
244
+ }
245
+ return market;
246
+ }
247
+ /**
248
+ * Get all available subnet markets
249
+ */
250
+ function getAvailableSubnetMarkets() {
251
+ return Object.values(exports.SUBNET_MARKETS);
252
+ }
253
+ /**
254
+ * Check if symbol is a subnet market
255
+ */
256
+ function isSubnetMarket(symbol) {
257
+ return symbol.toUpperCase() in exports.SUBNET_MARKETS;
258
+ }
259
+ /**
260
+ * Get subnet market by subnet ID
261
+ */
262
+ function getSubnetMarketById(subnetId) {
263
+ return Object.values(exports.SUBNET_MARKETS).find((market) => market.subnetId === subnetId);
264
+ }
265
+ /**
266
+ * List all supported assets (legacy + subnet markets)
267
+ */
268
+ function getSupportedAssets() {
269
+ return Object.keys(exports.ASSET_ADDRESSES);
270
+ }
271
+ /**
272
+ * List only subnet market symbols
273
+ */
274
+ function getSupportedSubnetMarkets() {
275
+ return Object.keys(exports.SUBNET_MARKETS);
276
+ }
277
+ //# sourceMappingURL=assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/constants/assets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Contract-related constants
3
+ */
4
+ export declare const CONTRACT_METHODS: {
5
+ readonly DEPOSIT: "deposit";
6
+ readonly WITHDRAW: "withdraw";
7
+ readonly GET_BALANCE: "getBalance";
8
+ readonly GET_AVAILABLE_BALANCE: "getAvailableBalance";
9
+ readonly OPEN_MARKET_POSITION: "openMarketPosition";
10
+ readonly CLOSE_POSITION: "closePosition";
11
+ readonly GET_POSITION: "getPosition";
12
+ readonly GET_USER_POSITIONS: "getUserPositions";
13
+ readonly UPDATE_FUNDING_RATE: "updateFundingRate";
14
+ readonly GET_CURRENT_FUNDING_RATE: "getCurrentFundingRate";
15
+ readonly GET_FUNDING_INDEX: "getFundingIndex";
16
+ readonly LIQUIDATE_POSITION: "liquidatePosition";
17
+ readonly IS_LIQUIDATABLE: "isLiquidatable";
18
+ readonly GET_LIQUIDATION_PRICE: "getLiquidationPrice";
19
+ readonly GET_PRICE: "getPrice";
20
+ readonly UPDATE_PRICE: "updatePrice";
21
+ };
22
+ export declare const CONTRACT_EVENTS: {
23
+ readonly DEPOSIT_EVENT: "Deposited";
24
+ readonly WITHDRAW_EVENT: "Withdrawn";
25
+ readonly POSITION_OPENED: "PositionOpened";
26
+ readonly POSITION_CLOSED: "PositionClosed";
27
+ readonly POSITION_UPDATED: "PositionUpdated";
28
+ readonly FUNDING_RATE_UPDATED: "FundingRateUpdated";
29
+ readonly FUNDING_PAID: "FundingPaid";
30
+ readonly POSITION_LIQUIDATED: "PositionLiquidated";
31
+ readonly PRICE_UPDATED: "PriceUpdated";
32
+ };
33
+ export declare const GAS_LIMITS: {
34
+ readonly DEPOSIT: 100000n;
35
+ readonly WITHDRAW: 150000n;
36
+ readonly OPEN_POSITION: 300000n;
37
+ readonly CLOSE_POSITION: 250000n;
38
+ readonly LIQUIDATE: 300000n;
39
+ readonly UPDATE_FUNDING: 200000n;
40
+ };
41
+ //# sourceMappingURL=contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/constants/contracts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;CA0BnB,CAAC;AAGX,eAAO,MAAM,eAAe;;;;;;;;;;CAmBlB,CAAC;AAGX,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAC"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ /**
3
+ * Contract-related constants
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.GAS_LIMITS = exports.CONTRACT_EVENTS = exports.CONTRACT_METHODS = void 0;
7
+ // Contract method signatures
8
+ exports.CONTRACT_METHODS = {
9
+ // MarginAccount
10
+ DEPOSIT: 'deposit',
11
+ WITHDRAW: 'withdraw',
12
+ GET_BALANCE: 'getBalance',
13
+ GET_AVAILABLE_BALANCE: 'getAvailableBalance',
14
+ // Position Management
15
+ OPEN_MARKET_POSITION: 'openMarketPosition',
16
+ CLOSE_POSITION: 'closePosition',
17
+ GET_POSITION: 'getPosition',
18
+ GET_USER_POSITIONS: 'getUserPositions',
19
+ // FundingRate
20
+ UPDATE_FUNDING_RATE: 'updateFundingRate',
21
+ GET_CURRENT_FUNDING_RATE: 'getCurrentFundingRate',
22
+ GET_FUNDING_INDEX: 'getFundingIndex',
23
+ // LiquidationEngine
24
+ LIQUIDATE_POSITION: 'liquidatePosition',
25
+ IS_LIQUIDATABLE: 'isLiquidatable',
26
+ GET_LIQUIDATION_PRICE: 'getLiquidationPrice',
27
+ // PriceOracle
28
+ GET_PRICE: 'getPrice',
29
+ UPDATE_PRICE: 'updatePrice',
30
+ };
31
+ // Contract events
32
+ exports.CONTRACT_EVENTS = {
33
+ // MarginAccount events
34
+ DEPOSIT_EVENT: 'Deposited',
35
+ WITHDRAW_EVENT: 'Withdrawn',
36
+ // PositionManager events
37
+ POSITION_OPENED: 'PositionOpened',
38
+ POSITION_CLOSED: 'PositionClosed',
39
+ POSITION_UPDATED: 'PositionUpdated',
40
+ // FundingRate events
41
+ FUNDING_RATE_UPDATED: 'FundingRateUpdated',
42
+ FUNDING_PAID: 'FundingPaid',
43
+ // LiquidationEngine events
44
+ POSITION_LIQUIDATED: 'PositionLiquidated',
45
+ // PriceOracle events
46
+ PRICE_UPDATED: 'PriceUpdated',
47
+ };
48
+ // Gas limits
49
+ exports.GAS_LIMITS = {
50
+ DEPOSIT: 100000n,
51
+ WITHDRAW: 150000n,
52
+ OPEN_POSITION: 300000n,
53
+ CLOSE_POSITION: 250000n,
54
+ LIQUIDATE: 300000n,
55
+ UPDATE_FUNDING: 200000n,
56
+ };
57
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/constants/contracts.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,6BAA6B;AAChB,QAAA,gBAAgB,GAAG;IAC9B,gBAAgB;IAChB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,YAAY;IACzB,qBAAqB,EAAE,qBAAqB;IAE5C,sBAAsB;IACtB,oBAAoB,EAAE,oBAAoB;IAC1C,cAAc,EAAE,eAAe;IAC/B,YAAY,EAAE,aAAa;IAC3B,kBAAkB,EAAE,kBAAkB;IAEtC,cAAc;IACd,mBAAmB,EAAE,mBAAmB;IACxC,wBAAwB,EAAE,uBAAuB;IACjD,iBAAiB,EAAE,iBAAiB;IAEpC,oBAAoB;IACpB,kBAAkB,EAAE,mBAAmB;IACvC,eAAe,EAAE,gBAAgB;IACjC,qBAAqB,EAAE,qBAAqB;IAE5C,cAAc;IACd,SAAS,EAAE,UAAU;IACrB,YAAY,EAAE,aAAa;CACnB,CAAC;AAEX,kBAAkB;AACL,QAAA,eAAe,GAAG;IAC7B,uBAAuB;IACvB,aAAa,EAAE,WAAW;IAC1B,cAAc,EAAE,WAAW;IAE3B,yBAAyB;IACzB,eAAe,EAAE,gBAAgB;IACjC,eAAe,EAAE,gBAAgB;IACjC,gBAAgB,EAAE,iBAAiB;IAEnC,qBAAqB;IACrB,oBAAoB,EAAE,oBAAoB;IAC1C,YAAY,EAAE,aAAa;IAE3B,2BAA2B;IAC3B,mBAAmB,EAAE,oBAAoB;IAEzC,qBAAqB;IACrB,aAAa,EAAE,cAAc;CACrB,CAAC;AAEX,aAAa;AACA,QAAA,UAAU,GAAG;IACxB,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,OAAO;IACjB,aAAa,EAAE,OAAO;IACtB,cAAc,EAAE,OAAO;IACvB,SAAS,EAAE,OAAO;IAClB,cAAc,EAAE,OAAO;CACf,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Constants used throughout the Alpha Futures SDK
3
+ */
4
+ export * from './networks';
5
+ export * from './contracts';
6
+ export { SUBNET_MARKETS, ASSET_ADDRESSES, ASSET_NAMES, ASSET_DECIMALS, getAssetAddress, getAssetSymbol, isAssetSupported, getAssetDecimals, getSubnetMarket, getAvailableSubnetMarkets, isSubnetMarket, getSupportedAssets, getSupportedSubnetMarkets, type SubnetMarketAsset, } from './assets';
7
+ export declare const PRECISION: bigint;
8
+ export declare const BASIS_POINTS = 10000n;
9
+ export declare const PERCENTAGE_PRECISION = 100n;
10
+ export declare const INITIAL_MARGIN_RATIO = 3333n;
11
+ export declare const MAINTENANCE_MARGIN_RATIO = 2000n;
12
+ export declare const LIQUIDATION_BONUS = 500n;
13
+ export declare const FUNDING_INTERVAL: bigint;
14
+ export declare const MAX_FUNDING_RATE = 10n;
15
+ export declare const SKEW_SCALE: bigint;
16
+ export declare const TRADING_FEE = 10n;
17
+ export declare const INSURANCE_FUND_RATIO = 2000n;
18
+ export declare const MIN_POSITION_SIZE: bigint;
19
+ export declare const MAX_LEVERAGE = 3n;
20
+ export declare const PRICE_STALENESS_THRESHOLD = 3600n;
21
+ export declare const PRICE_DEVIATION_THRESHOLD = 2000n;
22
+ export declare const PRICE_MOVEMENT_THRESHOLD = 2000n;
23
+ export declare const CIRCUIT_BREAKER_COOLDOWN = 3600n;
24
+ export declare const ERRORS: {
25
+ readonly INSUFFICIENT_MARGIN: "Insufficient margin for position";
26
+ readonly POSITION_NOT_FOUND: "Position not found";
27
+ readonly INVALID_LEVERAGE: "Invalid leverage";
28
+ readonly PRICE_STALE: "Price data is stale";
29
+ readonly CIRCUIT_BREAKER_ACTIVE: "Circuit breaker is active";
30
+ readonly UNAUTHORIZED: "Unauthorized";
31
+ readonly INVALID_ASSET: "Invalid asset";
32
+ readonly POSITION_NOT_LIQUIDATABLE: "Position is not liquidatable";
33
+ readonly INSUFFICIENT_BALANCE: "Insufficient balance";
34
+ readonly BELOW_MIN_POSITION_SIZE: "Position size below minimum";
35
+ };
36
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAG5B,OAAO,EACL,cAAc,EACd,eAAe,EACf,WAAW,EACX,cAAc,EACd,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,yBAAyB,EACzB,cAAc,EACd,kBAAkB,EAClB,yBAAyB,EACzB,KAAK,iBAAiB,GACvB,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,SAAS,QAAa,CAAC;AACpC,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAGzC,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAC1C,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAGtC,eAAO,MAAM,gBAAgB,QAAiB,CAAC;AAC/C,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,UAAU,QAAuB,CAAC;AAG/C,eAAO,MAAM,WAAW,MAAM,CAAC;AAC/B,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAG1C,eAAO,MAAM,iBAAiB,QAAkB,CAAC;AACjD,eAAO,MAAM,YAAY,KAAK,CAAC;AAG/B,eAAO,MAAM,yBAAyB,QAAQ,CAAC;AAC/C,eAAO,MAAM,yBAAyB,QAAQ,CAAC;AAG/C,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAG9C,eAAO,MAAM,MAAM;;;;;;;;;;;CAWT,CAAC"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ /**
3
+ * Constants used throughout the Alpha Futures SDK
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.ERRORS = exports.CIRCUIT_BREAKER_COOLDOWN = exports.PRICE_MOVEMENT_THRESHOLD = exports.PRICE_DEVIATION_THRESHOLD = exports.PRICE_STALENESS_THRESHOLD = exports.MAX_LEVERAGE = exports.MIN_POSITION_SIZE = exports.INSURANCE_FUND_RATIO = exports.TRADING_FEE = exports.SKEW_SCALE = exports.MAX_FUNDING_RATE = exports.FUNDING_INTERVAL = exports.LIQUIDATION_BONUS = exports.MAINTENANCE_MARGIN_RATIO = exports.INITIAL_MARGIN_RATIO = exports.PERCENTAGE_PRECISION = exports.BASIS_POINTS = exports.PRECISION = exports.getSupportedSubnetMarkets = exports.getSupportedAssets = exports.isSubnetMarket = exports.getAvailableSubnetMarkets = exports.getSubnetMarket = exports.getAssetDecimals = exports.isAssetSupported = exports.getAssetSymbol = exports.getAssetAddress = exports.ASSET_DECIMALS = exports.ASSET_NAMES = exports.ASSET_ADDRESSES = exports.SUBNET_MARKETS = void 0;
21
+ __exportStar(require("./networks"), exports);
22
+ __exportStar(require("./contracts"), exports);
23
+ // Export assets with explicit re-exports to avoid naming conflicts
24
+ var assets_1 = require("./assets");
25
+ Object.defineProperty(exports, "SUBNET_MARKETS", { enumerable: true, get: function () { return assets_1.SUBNET_MARKETS; } });
26
+ Object.defineProperty(exports, "ASSET_ADDRESSES", { enumerable: true, get: function () { return assets_1.ASSET_ADDRESSES; } });
27
+ Object.defineProperty(exports, "ASSET_NAMES", { enumerable: true, get: function () { return assets_1.ASSET_NAMES; } });
28
+ Object.defineProperty(exports, "ASSET_DECIMALS", { enumerable: true, get: function () { return assets_1.ASSET_DECIMALS; } });
29
+ Object.defineProperty(exports, "getAssetAddress", { enumerable: true, get: function () { return assets_1.getAssetAddress; } });
30
+ Object.defineProperty(exports, "getAssetSymbol", { enumerable: true, get: function () { return assets_1.getAssetSymbol; } });
31
+ Object.defineProperty(exports, "isAssetSupported", { enumerable: true, get: function () { return assets_1.isAssetSupported; } });
32
+ Object.defineProperty(exports, "getAssetDecimals", { enumerable: true, get: function () { return assets_1.getAssetDecimals; } });
33
+ Object.defineProperty(exports, "getSubnetMarket", { enumerable: true, get: function () { return assets_1.getSubnetMarket; } });
34
+ Object.defineProperty(exports, "getAvailableSubnetMarkets", { enumerable: true, get: function () { return assets_1.getAvailableSubnetMarkets; } });
35
+ Object.defineProperty(exports, "isSubnetMarket", { enumerable: true, get: function () { return assets_1.isSubnetMarket; } });
36
+ Object.defineProperty(exports, "getSupportedAssets", { enumerable: true, get: function () { return assets_1.getSupportedAssets; } });
37
+ Object.defineProperty(exports, "getSupportedSubnetMarkets", { enumerable: true, get: function () { return assets_1.getSupportedSubnetMarkets; } });
38
+ // Common constants
39
+ exports.PRECISION = 10n ** 18n; // 18 decimals precision
40
+ exports.BASIS_POINTS = 10000n; // 100% = 10000 basis points
41
+ exports.PERCENTAGE_PRECISION = 100n; // 100%
42
+ // Margin constants
43
+ exports.INITIAL_MARGIN_RATIO = 3333n; // 33.33% in basis points (3x leverage)
44
+ exports.MAINTENANCE_MARGIN_RATIO = 2000n; // 20% in basis points
45
+ exports.LIQUIDATION_BONUS = 500n; // 5% in basis points
46
+ // Funding rate constants
47
+ exports.FUNDING_INTERVAL = 8n * 60n * 60n; // 8 hours in seconds
48
+ exports.MAX_FUNDING_RATE = 10n; // 0.1% in basis points
49
+ exports.SKEW_SCALE = 1000000n * exports.PRECISION; // $1M skew scale
50
+ // Fee constants
51
+ exports.TRADING_FEE = 10n; // 0.1% in basis points
52
+ exports.INSURANCE_FUND_RATIO = 2000n; // 20% of fees go to insurance fund
53
+ // Position constants
54
+ exports.MIN_POSITION_SIZE = 10n * exports.PRECISION; // Minimum $10 position
55
+ exports.MAX_LEVERAGE = 3n; // Maximum 3x leverage
56
+ // Oracle constants
57
+ exports.PRICE_STALENESS_THRESHOLD = 3600n; // 1 hour in seconds
58
+ exports.PRICE_DEVIATION_THRESHOLD = 2000n; // 20% max price deviation
59
+ // Circuit breaker constants
60
+ exports.PRICE_MOVEMENT_THRESHOLD = 2000n; // 20% price movement triggers circuit breaker
61
+ exports.CIRCUIT_BREAKER_COOLDOWN = 3600n; // 1 hour cooldown
62
+ // Error messages
63
+ exports.ERRORS = {
64
+ INSUFFICIENT_MARGIN: 'Insufficient margin for position',
65
+ POSITION_NOT_FOUND: 'Position not found',
66
+ INVALID_LEVERAGE: 'Invalid leverage',
67
+ PRICE_STALE: 'Price data is stale',
68
+ CIRCUIT_BREAKER_ACTIVE: 'Circuit breaker is active',
69
+ UNAUTHORIZED: 'Unauthorized',
70
+ INVALID_ASSET: 'Invalid asset',
71
+ POSITION_NOT_LIQUIDATABLE: 'Position is not liquidatable',
72
+ INSUFFICIENT_BALANCE: 'Insufficient balance',
73
+ BELOW_MIN_POSITION_SIZE: 'Position size below minimum',
74
+ };
75
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;AAEH,6CAA2B;AAC3B,8CAA4B;AAE5B,mEAAmE;AACnE,mCAekB;AAdhB,wGAAA,cAAc,OAAA;AACd,yGAAA,eAAe,OAAA;AACf,qGAAA,WAAW,OAAA;AACX,wGAAA,cAAc,OAAA;AACd,yGAAA,eAAe,OAAA;AACf,wGAAA,cAAc,OAAA;AACd,0GAAA,gBAAgB,OAAA;AAChB,0GAAA,gBAAgB,OAAA;AAChB,yGAAA,eAAe,OAAA;AACf,mHAAA,yBAAyB,OAAA;AACzB,wGAAA,cAAc,OAAA;AACd,4GAAA,kBAAkB,OAAA;AAClB,mHAAA,yBAAyB,OAAA;AAI3B,mBAAmB;AACN,QAAA,SAAS,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,wBAAwB;AAChD,QAAA,YAAY,GAAG,MAAM,CAAC,CAAC,4BAA4B;AACnD,QAAA,oBAAoB,GAAG,IAAI,CAAC,CAAC,OAAO;AAEjD,mBAAmB;AACN,QAAA,oBAAoB,GAAG,KAAK,CAAC,CAAC,uCAAuC;AACrE,QAAA,wBAAwB,GAAG,KAAK,CAAC,CAAC,sBAAsB;AACxD,QAAA,iBAAiB,GAAG,IAAI,CAAC,CAAC,qBAAqB;AAE5D,yBAAyB;AACZ,QAAA,gBAAgB,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,qBAAqB;AACxD,QAAA,gBAAgB,GAAG,GAAG,CAAC,CAAC,uBAAuB;AAC/C,QAAA,UAAU,GAAG,QAAQ,GAAG,iBAAS,CAAC,CAAC,iBAAiB;AAEjE,gBAAgB;AACH,QAAA,WAAW,GAAG,GAAG,CAAC,CAAC,uBAAuB;AAC1C,QAAA,oBAAoB,GAAG,KAAK,CAAC,CAAC,mCAAmC;AAE9E,qBAAqB;AACR,QAAA,iBAAiB,GAAG,GAAG,GAAG,iBAAS,CAAC,CAAC,uBAAuB;AAC5D,QAAA,YAAY,GAAG,EAAE,CAAC,CAAC,sBAAsB;AAEtD,mBAAmB;AACN,QAAA,yBAAyB,GAAG,KAAK,CAAC,CAAC,oBAAoB;AACvD,QAAA,yBAAyB,GAAG,KAAK,CAAC,CAAC,0BAA0B;AAE1E,4BAA4B;AACf,QAAA,wBAAwB,GAAG,KAAK,CAAC,CAAC,8CAA8C;AAChF,QAAA,wBAAwB,GAAG,KAAK,CAAC,CAAC,kBAAkB;AAEjE,iBAAiB;AACJ,QAAA,MAAM,GAAG;IACpB,mBAAmB,EAAE,kCAAkC;IACvD,kBAAkB,EAAE,oBAAoB;IACxC,gBAAgB,EAAE,kBAAkB;IACpC,WAAW,EAAE,qBAAqB;IAClC,sBAAsB,EAAE,2BAA2B;IACnD,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,yBAAyB,EAAE,8BAA8B;IACzD,oBAAoB,EAAE,sBAAsB;IAC5C,uBAAuB,EAAE,6BAA6B;CAC9C,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Network configurations for Alpha Futures
3
+ */
4
+ import { NetworkConfig, SubnetMarket } from '../types';
5
+ export declare const NETWORK_CONFIGS: Record<string, NetworkConfig>;
6
+ export declare const DEFAULT_NETWORK = "localhost";
7
+ export declare function getNetworkByChainId(chainId: number): NetworkConfig | undefined;
8
+ export declare function isValidNetwork(network: string): boolean;
9
+ export declare function getCurrentNetwork(network?: string): NetworkConfig;
10
+ export declare function getSupportedNetworks(): string[];
11
+ export declare function getNetworkName(chainId: number): string | undefined;
12
+ /**
13
+ * Get subnet markets for a specific network
14
+ */
15
+ export declare function getNetworkSubnetMarkets(network: string): SubnetMarket[];
16
+ /**
17
+ * Get subnet market by symbol from a specific network
18
+ */
19
+ export declare function getSubnetMarketBySymbol(network: string, symbol: string): SubnetMarket | undefined;
20
+ /**
21
+ * Get subnet market by ID from a specific network
22
+ */
23
+ export declare function getSubnetMarketById(network: string, subnetId: number): SubnetMarket | undefined;
24
+ /**
25
+ * Check if a network supports subnet markets
26
+ */
27
+ export declare function networkHasSubnetMarkets(network: string): boolean;
28
+ /**
29
+ * Get all networks that support subnet markets
30
+ */
31
+ export declare function getSubnetMarketNetworks(): string[];
32
+ //# sourceMappingURL=networks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networks.d.ts","sourceRoot":"","sources":["../../src/constants/networks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGvD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAuGzD,CAAC;AAGF,eAAO,MAAM,eAAe,cAAc,CAAC;AAG3C,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAE9E;AAGD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAGD,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAMjE;AAGD,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAE/C;AAGD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGlE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAGvE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAGjG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAG/F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAElD"}