lighter-ts-sdk 1.0.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/LICENSE +21 -0
- package/README.md +440 -0
- package/dist/api/account-api.d.ts +89 -0
- package/dist/api/account-api.d.ts.map +1 -0
- package/dist/api/account-api.js +61 -0
- package/dist/api/account-api.js.map +1 -0
- package/dist/api/api-client.d.ts +23 -0
- package/dist/api/api-client.d.ts.map +1 -0
- package/dist/api/api-client.js +129 -0
- package/dist/api/api-client.js.map +1 -0
- package/dist/api/block-api.d.ts +24 -0
- package/dist/api/block-api.d.ts.map +1 -0
- package/dist/api/block-api.js +22 -0
- package/dist/api/block-api.js.map +1 -0
- package/dist/api/candlestick-api.d.ts +27 -0
- package/dist/api/candlestick-api.d.ts.map +1 -0
- package/dist/api/candlestick-api.js +18 -0
- package/dist/api/candlestick-api.js.map +1 -0
- package/dist/api/order-api.d.ts +76 -0
- package/dist/api/order-api.d.ts.map +1 -0
- package/dist/api/order-api.js +102 -0
- package/dist/api/order-api.js.map +1 -0
- package/dist/api/root-api.d.ts +8 -0
- package/dist/api/root-api.d.ts.map +1 -0
- package/dist/api/root-api.js +14 -0
- package/dist/api/root-api.js.map +1 -0
- package/dist/api/transaction-api.d.ts +58 -0
- package/dist/api/transaction-api.d.ts.map +1 -0
- package/dist/api/transaction-api.js +141 -0
- package/dist/api/transaction-api.js.map +1 -0
- package/dist/api/ws-client.d.ts +21 -0
- package/dist/api/ws-client.d.ts.map +1 -0
- package/dist/api/ws-client.js +139 -0
- package/dist/api/ws-client.js.map +1 -0
- package/dist/index.d.ts +62 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +99 -0
- package/dist/index.js.map +1 -0
- package/dist/signer/signer-client.d.ts +79 -0
- package/dist/signer/signer-client.d.ts.map +1 -0
- package/dist/signer/signer-client.js +213 -0
- package/dist/signer/signer-client.js.map +1 -0
- package/dist/signer/wasm-signer-client.d.ts +129 -0
- package/dist/signer/wasm-signer-client.d.ts.map +1 -0
- package/dist/signer/wasm-signer-client.js +607 -0
- package/dist/signer/wasm-signer-client.js.map +1 -0
- package/dist/types/index.d.ts +130 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/api-key-utils.d.ts +7 -0
- package/dist/utils/api-key-utils.d.ts.map +1 -0
- package/dist/utils/api-key-utils.js +31 -0
- package/dist/utils/api-key-utils.js.map +1 -0
- package/dist/utils/configuration.d.ts +19 -0
- package/dist/utils/configuration.d.ts.map +1 -0
- package/dist/utils/configuration.js +55 -0
- package/dist/utils/configuration.js.map +1 -0
- package/dist/utils/exceptions.d.ts +33 -0
- package/dist/utils/exceptions.d.ts.map +1 -0
- package/dist/utils/exceptions.js +76 -0
- package/dist/utils/exceptions.js.map +1 -0
- package/dist/utils/node-wasm-signer.d.ts +126 -0
- package/dist/utils/node-wasm-signer.d.ts.map +1 -0
- package/dist/utils/node-wasm-signer.js +286 -0
- package/dist/utils/node-wasm-signer.js.map +1 -0
- package/dist/utils/signer-server.d.ts +18 -0
- package/dist/utils/signer-server.d.ts.map +1 -0
- package/dist/utils/signer-server.js +79 -0
- package/dist/utils/signer-server.js.map +1 -0
- package/dist/utils/signer.d.ts +15 -0
- package/dist/utils/signer.d.ts.map +1 -0
- package/dist/utils/signer.js +68 -0
- package/dist/utils/signer.js.map +1 -0
- package/dist/utils/wasm-signer.d.ts +130 -0
- package/dist/utils/wasm-signer.d.ts.map +1 -0
- package/dist/utils/wasm-signer.js +178 -0
- package/dist/utils/wasm-signer.js.map +1 -0
- package/docs/API.md +195 -0
- package/docs/AccountApi.md +220 -0
- package/docs/GettingStarted.md +261 -0
- package/docs/OrderApi.md +199 -0
- package/docs/SignerClient.md +326 -0
- package/docs/TransactionApi.md +312 -0
- package/docs/WsClient.md +275 -0
- package/docs/types/Account.md +67 -0
- package/docs/types/ApiKeyPair.md +33 -0
- package/docs/types/CreateOrderParams.md +47 -0
- package/docs/types/MarketOrderParams.md +36 -0
- package/docs/types/SignerConfig.md +40 -0
- package/docs/types/WasmSignerConfig.md +30 -0
- package/examples/README.md +171 -0
- package/examples/account_info.ts +12 -0
- package/examples/create_cancel_order.ts +74 -0
- package/examples/create_market_order.ts +42 -0
- package/examples/create_market_order_max_slippage.ts +43 -0
- package/examples/create_sl_tp.ts +61 -0
- package/examples/create_with_multiple_keys.ts +58 -0
- package/examples/get_info.ts +58 -0
- package/examples/send_tx_batch.ts +87 -0
- package/examples/system_setup.ts +96 -0
- package/examples/transfer_update_leverage.ts +53 -0
- package/examples/ws.ts +24 -0
- package/examples/ws_async.ts +39 -0
- package/examples/ws_send_batch_tx.ts +113 -0
- package/examples/ws_send_tx.ts +94 -0
- package/package.json +71 -0
- package/wasm/lighter-signer.wasm +0 -0
- package/wasm/wasm_exec.js +402 -0
- package/wasm/wasm_exec_nodejs.js +402 -0
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SignerClient = void 0;
|
|
4
|
+
const api_client_1 = require("../api/api-client");
|
|
5
|
+
const transaction_api_1 = require("../api/transaction-api");
|
|
6
|
+
const signer_server_1 = require("../utils/signer-server");
|
|
7
|
+
class SignerClient {
|
|
8
|
+
constructor(config) {
|
|
9
|
+
this.config = config;
|
|
10
|
+
this.apiClient = new api_client_1.ApiClient({ host: config.url });
|
|
11
|
+
this.transactionApi = new transaction_api_1.TransactionApi(this.apiClient);
|
|
12
|
+
// Use signer server if URL is provided, otherwise fall back to local signer
|
|
13
|
+
if (config.signerServerUrl) {
|
|
14
|
+
this.wallet = (0, signer_server_1.createSignerServerClient)({ url: config.signerServerUrl });
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
throw new Error('Signer server URL is required. Please provide signerServerUrl in config.');
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
checkClient() {
|
|
21
|
+
// Basic validation
|
|
22
|
+
if (!this.config.privateKey) {
|
|
23
|
+
return 'Private key is required';
|
|
24
|
+
}
|
|
25
|
+
if (this.config.accountIndex < 0) {
|
|
26
|
+
return 'Account index must be non-negative';
|
|
27
|
+
}
|
|
28
|
+
if (this.config.apiKeyIndex < 0) {
|
|
29
|
+
return 'API key index must be non-negative';
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
async createOrder(params) {
|
|
34
|
+
try {
|
|
35
|
+
// Get next nonce
|
|
36
|
+
const nextNonce = await this.transactionApi.getNextNonce(this.config.accountIndex, this.config.apiKeyIndex);
|
|
37
|
+
// Create order transaction structure - using correct field names from dashboard
|
|
38
|
+
const orderTx = {
|
|
39
|
+
AccountIndex: this.config.accountIndex,
|
|
40
|
+
ApiKeyIndex: this.config.apiKeyIndex,
|
|
41
|
+
MarketIndex: params.marketIndex,
|
|
42
|
+
ClientOrderIndex: params.clientOrderIndex,
|
|
43
|
+
BaseAmount: params.baseAmount,
|
|
44
|
+
Price: params.price,
|
|
45
|
+
IsAsk: params.isAsk ? 1 : 0,
|
|
46
|
+
Type: params.orderType,
|
|
47
|
+
TimeInForce: params.timeInForce,
|
|
48
|
+
ReduceOnly: params.reduceOnly ? 1 : 0,
|
|
49
|
+
TriggerPrice: params.triggerPrice,
|
|
50
|
+
Nonce: nextNonce.nonce
|
|
51
|
+
};
|
|
52
|
+
// Handle order expiry - use real timestamp for GTT orders (milliseconds)
|
|
53
|
+
const orderExpiry = params.orderExpiry ?? SignerClient.DEFAULT_28_DAY_ORDER_EXPIRY;
|
|
54
|
+
if (orderExpiry !== SignerClient.DEFAULT_28_DAY_ORDER_EXPIRY) {
|
|
55
|
+
orderTx.OrderExpiry = orderExpiry;
|
|
56
|
+
orderTx.ExpiredAt = orderExpiry;
|
|
57
|
+
}
|
|
58
|
+
console.log('Order transaction structure:', JSON.stringify(orderTx, null, 2));
|
|
59
|
+
// Sign the transaction
|
|
60
|
+
const signature = await this.signTransaction(orderTx);
|
|
61
|
+
// Create the final transaction info with signature
|
|
62
|
+
const txInfo = {
|
|
63
|
+
...orderTx,
|
|
64
|
+
Sig: signature,
|
|
65
|
+
};
|
|
66
|
+
// Send transaction using the correct API
|
|
67
|
+
const txHash = await this.transactionApi.sendTx(SignerClient.TX_TYPE_CREATE_ORDER, JSON.stringify(txInfo));
|
|
68
|
+
return [orderTx, txHash.hash, null];
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
return [null, '', error instanceof Error ? error.message : 'Unknown error'];
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
async createMarketOrder(params) {
|
|
75
|
+
try {
|
|
76
|
+
// Get next nonce
|
|
77
|
+
const nextNonce = await this.transactionApi.getNextNonce(this.config.accountIndex, this.config.apiKeyIndex);
|
|
78
|
+
// Create market order transaction structure
|
|
79
|
+
const orderTx = {
|
|
80
|
+
AccountIndex: this.config.accountIndex,
|
|
81
|
+
OrderBookIndex: params.marketIndex,
|
|
82
|
+
ClientOrderIndex: params.clientOrderIndex,
|
|
83
|
+
BaseAmount: params.baseAmount,
|
|
84
|
+
Price: params.avgExecutionPrice,
|
|
85
|
+
IsAsk: params.isAsk ? 1 : 0,
|
|
86
|
+
OrderType: SignerClient.ORDER_TYPE_MARKET,
|
|
87
|
+
TimeInForce: SignerClient.ORDER_TIME_IN_FORCE_IMMEDIATE_OR_CANCEL,
|
|
88
|
+
ReduceOnly: 0,
|
|
89
|
+
TriggerPrice: 0,
|
|
90
|
+
Nonce: nextNonce.nonce,
|
|
91
|
+
OrderExpiry: 1000000,
|
|
92
|
+
};
|
|
93
|
+
// Sign the transaction
|
|
94
|
+
const signature = await this.signTransaction(orderTx);
|
|
95
|
+
// Create the final transaction info with signature
|
|
96
|
+
const txInfo = {
|
|
97
|
+
...orderTx,
|
|
98
|
+
Sig: signature,
|
|
99
|
+
};
|
|
100
|
+
// Send transaction using the correct API
|
|
101
|
+
const txHash = await this.transactionApi.sendTx(SignerClient.TX_TYPE_CREATE_ORDER, JSON.stringify(txInfo));
|
|
102
|
+
return txHash;
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
throw error;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async cancelOrder(params) {
|
|
109
|
+
try {
|
|
110
|
+
// Get next nonce
|
|
111
|
+
const nextNonce = await this.transactionApi.getNextNonce(this.config.accountIndex, this.config.apiKeyIndex);
|
|
112
|
+
// Create cancel order transaction structure - using correct field names
|
|
113
|
+
const cancelTx = {
|
|
114
|
+
AccountIndex: this.config.accountIndex,
|
|
115
|
+
ApiKeyIndex: this.config.apiKeyIndex,
|
|
116
|
+
MarketIndex: params.marketIndex,
|
|
117
|
+
OrderIndex: params.orderIndex,
|
|
118
|
+
Nonce: nextNonce.nonce,
|
|
119
|
+
};
|
|
120
|
+
// Sign the transaction
|
|
121
|
+
const signature = await this.signTransaction(cancelTx);
|
|
122
|
+
// Create the final transaction info with signature
|
|
123
|
+
const txInfo = {
|
|
124
|
+
...cancelTx,
|
|
125
|
+
Sig: signature,
|
|
126
|
+
};
|
|
127
|
+
// Send transaction using the correct API
|
|
128
|
+
const txHash = await this.transactionApi.sendTx(SignerClient.TX_TYPE_CANCEL_ORDER, JSON.stringify(txInfo));
|
|
129
|
+
return [cancelTx, txHash.hash, null];
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
return [null, '', error instanceof Error ? error.message : 'Unknown error'];
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
async changeApiKey(params) {
|
|
136
|
+
try {
|
|
137
|
+
// Get next nonce
|
|
138
|
+
const nextNonce = await this.transactionApi.getNextNonce(this.config.accountIndex, this.config.apiKeyIndex);
|
|
139
|
+
// Create change API key transaction
|
|
140
|
+
const changeTx = {
|
|
141
|
+
eth_private_key: params.ethPrivateKey,
|
|
142
|
+
new_pubkey: params.newPubkey,
|
|
143
|
+
nonce: nextNonce.nonce,
|
|
144
|
+
};
|
|
145
|
+
// Sign the transaction
|
|
146
|
+
const signature = await this.signTransaction(changeTx);
|
|
147
|
+
// Send transaction
|
|
148
|
+
const txHash = await this.transactionApi.sendTransaction({
|
|
149
|
+
account_index: this.config.accountIndex,
|
|
150
|
+
api_key_index: this.config.apiKeyIndex,
|
|
151
|
+
transaction: signature,
|
|
152
|
+
});
|
|
153
|
+
return [txHash, null];
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
return [null, error instanceof Error ? error.message : 'Unknown error'];
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
async createAuthTokenWithExpiry(expiry) {
|
|
160
|
+
try {
|
|
161
|
+
const timestamp = Math.floor(Date.now() / 1000);
|
|
162
|
+
const message = `${this.config.accountIndex}:${this.config.apiKeyIndex}:${timestamp + expiry}`;
|
|
163
|
+
// Sign the message using the signer server
|
|
164
|
+
const signature = await this.wallet.signTransaction(this.config.privateKey, { message });
|
|
165
|
+
return [signature, null];
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
return ['', error instanceof Error ? error.message : 'Unknown error'];
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
async signTransaction(transaction) {
|
|
172
|
+
// Use the signer server to sign the transaction
|
|
173
|
+
return await this.wallet.signTransaction(this.config.privateKey, transaction);
|
|
174
|
+
}
|
|
175
|
+
async close() {
|
|
176
|
+
await this.apiClient.close();
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
exports.SignerClient = SignerClient;
|
|
180
|
+
// Constants from Python SDK
|
|
181
|
+
SignerClient.ORDER_TYPE_LIMIT = 0;
|
|
182
|
+
SignerClient.ORDER_TYPE_MARKET = 1;
|
|
183
|
+
SignerClient.ORDER_TIME_IN_FORCE_GOOD_TILL_TIME = 1;
|
|
184
|
+
SignerClient.ORDER_TIME_IN_FORCE_IMMEDIATE_OR_CANCEL = 0;
|
|
185
|
+
SignerClient.ORDER_TIME_IN_FORCE_FILL_OR_KILL = 2;
|
|
186
|
+
//static readonly DEFAULT_10_MIN_AUTH_EXPIRY = 600;
|
|
187
|
+
SignerClient.USDC_TICKER_SCALE = 1e6;
|
|
188
|
+
//tx type constants
|
|
189
|
+
SignerClient.TX_TYPE_CHANGE_PUB_KEY = 8;
|
|
190
|
+
SignerClient.TX_TYPE_CREATE_SUB_ACCOUNT = 9;
|
|
191
|
+
SignerClient.TX_TYPE_CREATE_PUBLIC_POOL = 10;
|
|
192
|
+
SignerClient.TX_TYPE_UPDATE_PUBLIC_POOL = 11;
|
|
193
|
+
SignerClient.TX_TYPE_TRANSFER = 12;
|
|
194
|
+
SignerClient.TX_TYPE_WITHDRAW = 13;
|
|
195
|
+
SignerClient.TX_TYPE_CREATE_ORDER = 14;
|
|
196
|
+
SignerClient.TX_TYPE_CANCEL_ORDER = 15;
|
|
197
|
+
SignerClient.TX_TYPE_CANCEL_ALL_ORDERS = 16;
|
|
198
|
+
SignerClient.TX_TYPE_MODIFY_ORDER = 17;
|
|
199
|
+
SignerClient.TX_TYPE_MINT_SHARES = 18;
|
|
200
|
+
SignerClient.TX_TYPE_BURN_SHARES = 19;
|
|
201
|
+
SignerClient.ORDER_TYPE_STOP_LOSS = 2;
|
|
202
|
+
SignerClient.ORDER_TYPE_STOP_LOSS_LIMIT = 3;
|
|
203
|
+
SignerClient.ORDER_TYPE_TAKE_PROFIT = 4;
|
|
204
|
+
SignerClient.ORDER_TYPE_TAKE_PROFIT_LIMIT = 5;
|
|
205
|
+
SignerClient.ORDER_TYPE_TWAP = 6;
|
|
206
|
+
// static readonly ORDER_TIME_IN_FORCE_IMMEDIATE_OR_CANCEL = 0
|
|
207
|
+
SignerClient.ORDER_TIME_IN_FORCE_POST_ONLY = 2;
|
|
208
|
+
SignerClient.NIL_TRIGGER_PRICE = 0;
|
|
209
|
+
SignerClient.DEFAULT_28_DAY_ORDER_EXPIRY = -1;
|
|
210
|
+
SignerClient.DEFAULT_IOC_EXPIRY = 0;
|
|
211
|
+
SignerClient.DEFAULT_10_MIN_AUTH_EXPIRY = -1;
|
|
212
|
+
SignerClient.MINUTE = 60;
|
|
213
|
+
//# sourceMappingURL=signer-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signer-client.js","sourceRoot":"","sources":["../../src/signer/signer-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
export interface SignerConfig {
|
|
2
|
+
url: string;
|
|
3
|
+
privateKey: string;
|
|
4
|
+
accountIndex: number;
|
|
5
|
+
apiKeyIndex: number;
|
|
6
|
+
signerServerUrl?: string;
|
|
7
|
+
wasmConfig?: {
|
|
8
|
+
wasmPath: string;
|
|
9
|
+
wasmExecPath?: string;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export interface CreateOrderParams {
|
|
13
|
+
marketIndex: number;
|
|
14
|
+
clientOrderIndex: number;
|
|
15
|
+
baseAmount: number;
|
|
16
|
+
price: number;
|
|
17
|
+
isAsk: boolean;
|
|
18
|
+
orderType: number;
|
|
19
|
+
timeInForce: number;
|
|
20
|
+
reduceOnly: boolean;
|
|
21
|
+
triggerPrice: number;
|
|
22
|
+
orderExpiry?: number;
|
|
23
|
+
}
|
|
24
|
+
export interface CreateMarketOrderParams {
|
|
25
|
+
marketIndex: number;
|
|
26
|
+
clientOrderIndex: number;
|
|
27
|
+
baseAmount: number;
|
|
28
|
+
avgExecutionPrice: number;
|
|
29
|
+
isAsk: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface CancelOrderParams {
|
|
32
|
+
marketIndex: number;
|
|
33
|
+
orderIndex: number;
|
|
34
|
+
}
|
|
35
|
+
export interface ChangeApiKeyParams {
|
|
36
|
+
ethPrivateKey: string;
|
|
37
|
+
newPubkey: string;
|
|
38
|
+
}
|
|
39
|
+
export declare class SignerClient {
|
|
40
|
+
private config;
|
|
41
|
+
private apiClient;
|
|
42
|
+
private transactionApi;
|
|
43
|
+
private wallet;
|
|
44
|
+
private signerType;
|
|
45
|
+
private clientCreated;
|
|
46
|
+
static readonly ORDER_TYPE_LIMIT = 0;
|
|
47
|
+
static readonly ORDER_TYPE_MARKET = 1;
|
|
48
|
+
static readonly ORDER_TIME_IN_FORCE_GOOD_TILL_TIME = 1;
|
|
49
|
+
static readonly ORDER_TIME_IN_FORCE_IMMEDIATE_OR_CANCEL = 0;
|
|
50
|
+
static readonly ORDER_TIME_IN_FORCE_FILL_OR_KILL = 2;
|
|
51
|
+
static readonly USDC_TICKER_SCALE = 1000000;
|
|
52
|
+
static readonly TX_TYPE_CHANGE_PUB_KEY = 8;
|
|
53
|
+
static readonly TX_TYPE_CREATE_SUB_ACCOUNT = 9;
|
|
54
|
+
static readonly TX_TYPE_CREATE_PUBLIC_POOL = 10;
|
|
55
|
+
static readonly TX_TYPE_UPDATE_PUBLIC_POOL = 11;
|
|
56
|
+
static readonly TX_TYPE_TRANSFER = 12;
|
|
57
|
+
static readonly TX_TYPE_WITHDRAW = 13;
|
|
58
|
+
static readonly TX_TYPE_CREATE_ORDER = 14;
|
|
59
|
+
static readonly TX_TYPE_CANCEL_ORDER = 15;
|
|
60
|
+
static readonly TX_TYPE_CANCEL_ALL_ORDERS = 16;
|
|
61
|
+
static readonly TX_TYPE_MODIFY_ORDER = 17;
|
|
62
|
+
static readonly TX_TYPE_MINT_SHARES = 18;
|
|
63
|
+
static readonly TX_TYPE_BURN_SHARES = 19;
|
|
64
|
+
static readonly TX_TYPE_UPDATE_LEVERAGE = 20;
|
|
65
|
+
static readonly ORDER_TYPE_STOP_LOSS = 2;
|
|
66
|
+
static readonly ORDER_TYPE_STOP_LOSS_LIMIT = 3;
|
|
67
|
+
static readonly ORDER_TYPE_TAKE_PROFIT = 4;
|
|
68
|
+
static readonly ORDER_TYPE_TAKE_PROFIT_LIMIT = 5;
|
|
69
|
+
static readonly ORDER_TYPE_TWAP = 6;
|
|
70
|
+
static readonly ORDER_TIME_IN_FORCE_POST_ONLY = 2;
|
|
71
|
+
static readonly CANCEL_ALL_TIF_IMMEDIATE = 0;
|
|
72
|
+
static readonly CANCEL_ALL_TIF_SCHEDULED = 1;
|
|
73
|
+
static readonly CANCEL_ALL_TIF_ABORT = 2;
|
|
74
|
+
static readonly NIL_TRIGGER_PRICE = 0;
|
|
75
|
+
static readonly DEFAULT_28_DAY_ORDER_EXPIRY = -1;
|
|
76
|
+
static readonly DEFAULT_IOC_EXPIRY = 0;
|
|
77
|
+
static readonly DEFAULT_10_MIN_AUTH_EXPIRY = -1;
|
|
78
|
+
static readonly MINUTE = 60;
|
|
79
|
+
static readonly CROSS_MARGIN_MODE = 0;
|
|
80
|
+
static readonly ISOLATED_MARGIN_MODE = 1;
|
|
81
|
+
constructor(config: SignerConfig);
|
|
82
|
+
/**
|
|
83
|
+
* Initialize the signer (required for WASM signers)
|
|
84
|
+
*/
|
|
85
|
+
initialize(): Promise<void>;
|
|
86
|
+
ensureWasmClient(): Promise<void>;
|
|
87
|
+
checkClient(): string | null;
|
|
88
|
+
createOrder(params: CreateOrderParams): Promise<[any, string, string | null]>;
|
|
89
|
+
createMarketOrder(params: CreateMarketOrderParams): Promise<[any, string, string | null]>;
|
|
90
|
+
cancelOrder(params: CancelOrderParams): Promise<[any, string, string | null]>;
|
|
91
|
+
changeApiKey(params: ChangeApiKeyParams): Promise<[any, string, string | null]>;
|
|
92
|
+
createAuthTokenWithExpiry(expirySeconds?: number): Promise<string>;
|
|
93
|
+
/**
|
|
94
|
+
* Generate a new API key pair using WASM signer
|
|
95
|
+
*/
|
|
96
|
+
generateAPIKey(seed?: string): Promise<{
|
|
97
|
+
privateKey: string;
|
|
98
|
+
publicKey: string;
|
|
99
|
+
} | null>;
|
|
100
|
+
/**
|
|
101
|
+
* Withdraw USDC from account
|
|
102
|
+
*/
|
|
103
|
+
withdraw(usdcAmount: number, nonce?: number): Promise<[any, string, string | null]>;
|
|
104
|
+
/**
|
|
105
|
+
* Create a sub account
|
|
106
|
+
*/
|
|
107
|
+
createSubAccount(nonce?: number): Promise<[any, string | null]>;
|
|
108
|
+
/**
|
|
109
|
+
* Cancel all orders
|
|
110
|
+
*/
|
|
111
|
+
cancelAllOrders(timeInForce: number, time: number, nonce?: number): Promise<[any, string | null]>;
|
|
112
|
+
/**
|
|
113
|
+
* Modify an existing order
|
|
114
|
+
*/
|
|
115
|
+
modifyOrder(marketIndex: number, orderIndex: number, baseAmount: number, price: number, triggerPrice: number, nonce?: number): Promise<[any, string, string | null]>;
|
|
116
|
+
/**
|
|
117
|
+
* Transfer USDC to another account
|
|
118
|
+
*/
|
|
119
|
+
transfer(toAccountIndex: number, usdcAmount: number, nonce?: number): Promise<[any, string, string | null]>;
|
|
120
|
+
/**
|
|
121
|
+
* Update leverage for a market
|
|
122
|
+
*/
|
|
123
|
+
updateLeverage(marketIndex: number, marginMode: number, initialMarginFraction: number, nonce?: number): Promise<[any, string, string | null]>;
|
|
124
|
+
/**
|
|
125
|
+
* Close the API client connection
|
|
126
|
+
*/
|
|
127
|
+
close(): Promise<void>;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=wasm-signer-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm-signer-client.d.ts","sourceRoot":"","sources":["../../src/signer/wasm-signer-client.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,MAAM,CAA+D;IAC7E,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,aAAa,CAAkB;IAGvC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,KAAK;IACrC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,KAAK;IACtC,MAAM,CAAC,QAAQ,CAAC,kCAAkC,KAAK;IACvD,MAAM,CAAC,QAAQ,CAAC,uCAAuC,KAAK;IAC5D,MAAM,CAAC,QAAQ,CAAC,gCAAgC,KAAK;IACrD,MAAM,CAAC,QAAQ,CAAC,iBAAiB,WAAM;IAGvC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,KAAI;IAC1C,MAAM,CAAC,QAAQ,CAAC,0BAA0B,KAAI;IAC9C,MAAM,CAAC,QAAQ,CAAC,0BAA0B,MAAK;IAC/C,MAAM,CAAC,QAAQ,CAAC,0BAA0B,MAAK;IAC/C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,MAAK;IACrC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,MAAK;IACrC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,MAAK;IACzC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,MAAK;IACzC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,MAAK;IAC9C,MAAM,CAAC,QAAQ,CAAC,oBAAoB,MAAK;IACzC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,MAAK;IACxC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,MAAK;IACxC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,MAAK;IAE5C,MAAM,CAAC,QAAQ,CAAC,oBAAoB,KAAI;IACxC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,KAAI;IAC9C,MAAM,CAAC,QAAQ,CAAC,sBAAsB,KAAI;IAC1C,MAAM,CAAC,QAAQ,CAAC,4BAA4B,KAAI;IAChD,MAAM,CAAC,QAAQ,CAAC,eAAe,KAAI;IAEnC,MAAM,CAAC,QAAQ,CAAC,6BAA6B,KAAI;IAEjD,MAAM,CAAC,QAAQ,CAAC,wBAAwB,KAAI;IAC5C,MAAM,CAAC,QAAQ,CAAC,wBAAwB,KAAI;IAC5C,MAAM,CAAC,QAAQ,CAAC,oBAAoB,KAAI;IAExC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,KAAI;IACrC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,MAAK;IAChD,MAAM,CAAC,QAAQ,CAAC,kBAAkB,KAAI;IACtC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,MAAK;IAC/C,MAAM,CAAC,QAAQ,CAAC,MAAM,MAAK;IAE3B,MAAM,CAAC,QAAQ,CAAC,iBAAiB,KAAI;IACrC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,KAAI;gBAE5B,MAAM,EAAE,YAAY;IAuBhC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAqDvC,WAAW,IAAI,MAAM,GAAG,IAAI;IActB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IA0E7E,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAgEzF,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IA2C7E,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IA+B/E,yBAAyB,CAAC,aAAa,GAAE,MAAgD,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBjH;;OAEG;IACG,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAa9F;;OAEG;IACG,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAgC7F;;OAEG;IACG,gBAAgB,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IA6BzE;;OAEG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IA+C3G;;OAEG;IACG,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAkCxC;;OAEG;IACG,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAmDrH;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAiDvJ;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
|