@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,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Alpha Futures Client
|
|
4
|
+
* Main client class that provides access to all protocol contracts
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.AlphaFuturesClient = void 0;
|
|
8
|
+
const PriceOracleViem_1 = require("./contracts/viem/PriceOracleViem");
|
|
9
|
+
const AlphaViem_1 = require("./contracts/viem/AlphaViem");
|
|
10
|
+
const environments_1 = require("./config/environments");
|
|
11
|
+
const viem_1 = require("viem");
|
|
12
|
+
const accounts_1 = require("viem/accounts");
|
|
13
|
+
class AlphaFuturesClient {
|
|
14
|
+
constructor(environment, config = {}) {
|
|
15
|
+
this.environment = environment;
|
|
16
|
+
const envConfig = (0, environments_1.getEnvironmentConfig)(environment);
|
|
17
|
+
const rpcUrl = config.rpcUrl || envConfig.rpcUrl || 'http://localhost:8545';
|
|
18
|
+
// Multicall3 is deployed at the standard address on Bittensor EVM
|
|
19
|
+
const MULTICALL3_ADDRESS = '0xcA11bde05977b3631167028862bE2a173976CA11';
|
|
20
|
+
// Only configure multicall3 for non-localhost environments
|
|
21
|
+
// Anvil/localhost doesn't have multicall3 deployed by default
|
|
22
|
+
const isLocalhost = environment === 'localhost';
|
|
23
|
+
const chain = {
|
|
24
|
+
id: envConfig.chainId,
|
|
25
|
+
name: envConfig.name,
|
|
26
|
+
network: envConfig.name.toLowerCase().replace(/\s+/g, '-'),
|
|
27
|
+
nativeCurrency: { name: 'TAO', symbol: 'TAO', decimals: 18 },
|
|
28
|
+
rpcUrls: {
|
|
29
|
+
default: { http: [rpcUrl] },
|
|
30
|
+
public: { http: [rpcUrl] },
|
|
31
|
+
},
|
|
32
|
+
...(isLocalhost
|
|
33
|
+
? {}
|
|
34
|
+
: {
|
|
35
|
+
contracts: {
|
|
36
|
+
multicall3: {
|
|
37
|
+
address: MULTICALL3_ADDRESS,
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
}),
|
|
41
|
+
};
|
|
42
|
+
// Create public client with caching disabled for fresh blockchain data
|
|
43
|
+
// Multicall enabled only for non-localhost: batches eth_call requests into single multicall3 call
|
|
44
|
+
// This improves performance and guarantees all reads are from the same block
|
|
45
|
+
this.publicClient = (0, viem_1.createPublicClient)({
|
|
46
|
+
chain,
|
|
47
|
+
transport: (0, viem_1.http)(rpcUrl, {
|
|
48
|
+
// Disable Next.js/Vercel fetch caching - critical for fresh blockchain data
|
|
49
|
+
fetchOptions: { cache: 'no-store' },
|
|
50
|
+
}),
|
|
51
|
+
cacheTime: 0, // Disable viem's internal caching
|
|
52
|
+
...(isLocalhost
|
|
53
|
+
? {}
|
|
54
|
+
: {
|
|
55
|
+
batch: {
|
|
56
|
+
multicall: {
|
|
57
|
+
wait: 10, // Batch requests within 10ms window
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
}),
|
|
61
|
+
});
|
|
62
|
+
// Use provided wallet client or create one from private key
|
|
63
|
+
if (config.walletClient) {
|
|
64
|
+
this.walletClient = config.walletClient;
|
|
65
|
+
}
|
|
66
|
+
else if (config.privateKey) {
|
|
67
|
+
const account = (0, accounts_1.privateKeyToAccount)(config.privateKey);
|
|
68
|
+
this.walletClient = (0, viem_1.createWalletClient)({
|
|
69
|
+
account,
|
|
70
|
+
chain,
|
|
71
|
+
transport: (0, viem_1.http)(rpcUrl, { fetchOptions: { cache: 'no-store' } }),
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
// Initialize Alpha contract
|
|
75
|
+
this.alphaContract = new AlphaViem_1.AlphaViem(envConfig.contracts.alpha, this.publicClient, this.walletClient, envConfig.contracts.collateralToken);
|
|
76
|
+
// Initialize Oracle contract
|
|
77
|
+
this.oracleContract = new PriceOracleViem_1.PriceOracleViem(envConfig.contracts.priceOracle, this.publicClient, this.walletClient);
|
|
78
|
+
this.oracle = this.oracleContract;
|
|
79
|
+
}
|
|
80
|
+
getAlpha() {
|
|
81
|
+
return this.alphaContract;
|
|
82
|
+
}
|
|
83
|
+
getPublicClient() {
|
|
84
|
+
return this.publicClient;
|
|
85
|
+
}
|
|
86
|
+
getWalletClient() {
|
|
87
|
+
return this.walletClient;
|
|
88
|
+
}
|
|
89
|
+
getEnvironment() {
|
|
90
|
+
return this.environment;
|
|
91
|
+
}
|
|
92
|
+
get isInitialized() {
|
|
93
|
+
return !!this.alphaContract;
|
|
94
|
+
}
|
|
95
|
+
get isConnected() {
|
|
96
|
+
return !!this.walletClient;
|
|
97
|
+
}
|
|
98
|
+
async getSignerAddress() {
|
|
99
|
+
return this.walletClient?.account?.address;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Get the collateral token address (TAO/USDC) for the current environment
|
|
103
|
+
* @returns The collateral token contract address
|
|
104
|
+
*/
|
|
105
|
+
getCollateralTokenAddress() {
|
|
106
|
+
if (!this.environment)
|
|
107
|
+
return undefined;
|
|
108
|
+
const envConfig = (0, environments_1.getEnvironmentConfig)(this.environment);
|
|
109
|
+
return envConfig.contracts.collateralToken;
|
|
110
|
+
}
|
|
111
|
+
static forEnvironment(environment, config = {}) {
|
|
112
|
+
return new AlphaFuturesClient(environment, config);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.AlphaFuturesClient = AlphaFuturesClient;
|
|
116
|
+
//# sourceMappingURL=AlphaFuturesClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AlphaFuturesClient.js","sourceRoot":"","sources":["../src/AlphaFuturesClient.ts"],"names":[],"mappings":"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"}
|