@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.
- package/.env.example +37 -0
- package/CHANGELOG.md +19 -0
- package/README.md +199 -0
- package/bin/alf +4 -0
- package/cli/README.md +198 -0
- package/cli/TEST_MANUAL.md +577 -0
- package/cli/commands/account.ts +545 -0
- package/cli/commands/funding.ts +481 -0
- package/cli/commands/liquidation.ts +523 -0
- package/cli/commands/market.ts +590 -0
- package/cli/commands/orders.ts +395 -0
- package/cli/commands/position.ts +1085 -0
- package/cli/commands/shared/positionUtils.ts +239 -0
- package/cli/commands/trading.ts +483 -0
- package/cli/commands/utils.ts +281 -0
- package/cli/commands/vault.ts +522 -0
- package/cli/index.ts +169 -0
- package/cli/interactive.ts +530 -0
- package/cli/utils/client.ts +457 -0
- package/cli/utils/config.ts +226 -0
- package/cli/utils/display.ts +258 -0
- package/cli/utils/index.ts +10 -0
- package/cli/utils/prompts.ts +364 -0
- package/config.example.json +23 -0
- package/dist/AlphaFuturesClient.d.ts +36 -0
- package/dist/AlphaFuturesClient.d.ts.map +1 -0
- package/dist/AlphaFuturesClient.js +116 -0
- package/dist/AlphaFuturesClient.js.map +1 -0
- package/dist/abi/Alpha.json +5987 -0
- package/dist/abi/abis.d.ts +319 -0
- package/dist/abi/abis.d.ts.map +1 -0
- package/dist/abi/abis.js +128 -0
- package/dist/abi/abis.js.map +1 -0
- package/dist/abi/index.d.ts +11 -0
- package/dist/abi/index.d.ts.map +1 -0
- package/dist/abi/index.js +15 -0
- package/dist/abi/index.js.map +1 -0
- package/dist/config/contracts.config.d.ts +70 -0
- package/dist/config/contracts.config.d.ts.map +1 -0
- package/dist/config/contracts.config.js +137 -0
- package/dist/config/contracts.config.js.map +1 -0
- package/dist/config/environments/alpha.config.d.ts +17 -0
- package/dist/config/environments/alpha.config.d.ts.map +1 -0
- package/dist/config/environments/alpha.config.js +140 -0
- package/dist/config/environments/alpha.config.js.map +1 -0
- package/dist/config/environments/beta.config.d.ts +16 -0
- package/dist/config/environments/beta.config.d.ts.map +1 -0
- package/dist/config/environments/beta.config.js +131 -0
- package/dist/config/environments/beta.config.js.map +1 -0
- package/dist/config/environments/dev.config.d.ts +13 -0
- package/dist/config/environments/dev.config.d.ts.map +1 -0
- package/dist/config/environments/dev.config.js +123 -0
- package/dist/config/environments/dev.config.js.map +1 -0
- package/dist/config/environments/index.d.ts +48 -0
- package/dist/config/environments/index.d.ts.map +1 -0
- package/dist/config/environments/index.js +81 -0
- package/dist/config/environments/index.js.map +1 -0
- package/dist/config/environments/localhost.config.d.ts +16 -0
- package/dist/config/environments/localhost.config.d.ts.map +1 -0
- package/dist/config/environments/localhost.config.js +152 -0
- package/dist/config/environments/localhost.config.js.map +1 -0
- package/dist/config/environments/prod.config.d.ts +20 -0
- package/dist/config/environments/prod.config.d.ts.map +1 -0
- package/dist/config/environments/prod.config.js +143 -0
- package/dist/config/environments/prod.config.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +41 -0
- package/dist/config/index.js.map +1 -0
- package/dist/constants/assets.d.ts +76 -0
- package/dist/constants/assets.d.ts.map +1 -0
- package/dist/constants/assets.js +277 -0
- package/dist/constants/assets.js.map +1 -0
- package/dist/constants/contracts.d.ts +41 -0
- package/dist/constants/contracts.d.ts.map +1 -0
- package/dist/constants/contracts.js +57 -0
- package/dist/constants/contracts.js.map +1 -0
- package/dist/constants/index.d.ts +36 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +75 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/networks.d.ts +32 -0
- package/dist/constants/networks.d.ts.map +1 -0
- package/dist/constants/networks.js +174 -0
- package/dist/constants/networks.js.map +1 -0
- package/dist/contracts/index.d.ts +5 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +21 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/viem/AlphaViem.d.ts +518 -0
- package/dist/contracts/viem/AlphaViem.d.ts.map +1 -0
- package/dist/contracts/viem/AlphaViem.js +1287 -0
- package/dist/contracts/viem/AlphaViem.js.map +1 -0
- package/dist/contracts/viem/PriceOracleViem.d.ts +71 -0
- package/dist/contracts/viem/PriceOracleViem.d.ts.map +1 -0
- package/dist/contracts/viem/PriceOracleViem.js +212 -0
- package/dist/contracts/viem/PriceOracleViem.js.map +1 -0
- package/dist/contracts/viem/index.d.ts +9 -0
- package/dist/contracts/viem/index.d.ts.map +1 -0
- package/dist/contracts/viem/index.js +17 -0
- package/dist/contracts/viem/index.js.map +1 -0
- package/dist/errors/index.d.ts +44 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +83 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +60 -0
- package/dist/index.js.map +1 -0
- package/dist/types/alpha.d.ts +299 -0
- package/dist/types/alpha.d.ts.map +1 -0
- package/dist/types/alpha.js +6 -0
- package/dist/types/alpha.js.map +1 -0
- package/dist/types/client.d.ts +24 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/client.js +13 -0
- package/dist/types/client.js.map +1 -0
- package/dist/types/contracts.d.ts +48 -0
- package/dist/types/contracts.d.ts.map +1 -0
- package/dist/types/contracts.js +6 -0
- package/dist/types/contracts.js.map +1 -0
- package/dist/types/funding.d.ts +27 -0
- package/dist/types/funding.d.ts.map +1 -0
- package/dist/types/funding.js +6 -0
- package/dist/types/funding.js.map +1 -0
- package/dist/types/index.d.ts +92 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +47 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/liquidation.d.ts +20 -0
- package/dist/types/liquidation.d.ts.map +1 -0
- package/dist/types/liquidation.js +6 -0
- package/dist/types/liquidation.js.map +1 -0
- package/dist/types/margin.d.ts +29 -0
- package/dist/types/margin.d.ts.map +1 -0
- package/dist/types/margin.js +6 -0
- package/dist/types/margin.js.map +1 -0
- package/dist/types/oracle.d.ts +21 -0
- package/dist/types/oracle.d.ts.map +1 -0
- package/dist/types/oracle.js +6 -0
- package/dist/types/oracle.js.map +1 -0
- package/dist/types/positions.d.ts +43 -0
- package/dist/types/positions.d.ts.map +1 -0
- package/dist/types/positions.js +13 -0
- package/dist/types/positions.js.map +1 -0
- package/dist/utils/calculations.d.ts +84 -0
- package/dist/utils/calculations.d.ts.map +1 -0
- package/dist/utils/calculations.js +155 -0
- package/dist/utils/calculations.js.map +1 -0
- package/dist/utils/errors.d.ts +24 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +129 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/events.d.ts +40 -0
- package/dist/utils/events.d.ts.map +1 -0
- package/dist/utils/events.js +73 -0
- package/dist/utils/events.js.map +1 -0
- package/dist/utils/format.d.ts +40 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +86 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/index.d.ts +10 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +26 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/network.d.ts +52 -0
- package/dist/utils/network.d.ts.map +1 -0
- package/dist/utils/network.js +192 -0
- package/dist/utils/network.js.map +1 -0
- package/dist/utils/positionCalculations.d.ts +145 -0
- package/dist/utils/positionCalculations.d.ts.map +1 -0
- package/dist/utils/positionCalculations.js +278 -0
- package/dist/utils/positionCalculations.js.map +1 -0
- package/dist/utils/validation.d.ts +28 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +68 -0
- package/dist/utils/validation.js.map +1 -0
- package/docs/README.md +40 -0
- package/docs/api/API.md +831 -0
- package/docs/guides/GETTING_STARTED.md +316 -0
- package/docs/guides/TRADING_GUIDE.md +677 -0
- package/docs/integration/INTEGRATION_GUIDE.md +1679 -0
- package/docs/integration/VIEM_INTEGRATION.md +294 -0
- package/docs/reference/CLI_QUICK_REFERENCE.md +197 -0
- package/docs/reference/TROUBLESHOOTING.md +922 -0
- package/package.json +113 -0
- package/src/AlphaFuturesClient.ts +158 -0
- package/src/abi/.gitkeep +1 -0
- package/src/abi/Alpha.json +5987 -0
- package/src/abi/README.md +99 -0
- package/src/abi/abis.ts +131 -0
- package/src/abi/index.ts +13 -0
- package/src/config/contracts.config.ts +186 -0
- package/src/config/environments/alpha.config.ts +139 -0
- package/src/config/environments/beta.config.ts +130 -0
- package/src/config/environments/dev.config.ts +122 -0
- package/src/config/environments/index.ts +87 -0
- package/src/config/environments/localhost.config.ts +153 -0
- package/src/config/environments/prod.config.ts +142 -0
- package/src/config/index.ts +29 -0
- package/src/constants/assets.ts +299 -0
- package/src/constants/contracts.ts +64 -0
- package/src/constants/index.ts +69 -0
- package/src/constants/networks.ts +182 -0
- package/src/contracts/index.ts +5 -0
- package/src/contracts/viem/AlphaViem.ts +1615 -0
- package/src/contracts/viem/PriceOracleViem.ts +272 -0
- package/src/contracts/viem/index.ts +11 -0
- package/src/errors/index.ts +87 -0
- package/src/index.ts +59 -0
- package/src/types/VIEM_TYPES_README.md +70 -0
- package/src/types/alpha.ts +358 -0
- package/src/types/client.ts +27 -0
- package/src/types/contracts.ts +74 -0
- package/src/types/funding.ts +31 -0
- package/src/types/index.ts +108 -0
- package/src/types/liquidation.ts +23 -0
- package/src/types/margin.ts +34 -0
- package/src/types/oracle.ts +24 -0
- package/src/types/positions.ts +48 -0
- package/src/utils/calculations.ts +175 -0
- package/src/utils/errors.ts +147 -0
- package/src/utils/events.ts +98 -0
- package/src/utils/format.ts +84 -0
- package/src/utils/index.ts +10 -0
- package/src/utils/network.ts +212 -0
- package/src/utils/positionCalculations.ts +317 -0
- 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"}
|