jaspervault_cli 1.1.1 → 1.1.2
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/config/chains.json +1 -3
- package/dist/src/commands/order.js +175 -42
- package/dist/src/commands/order.js.map +1 -1
- package/dist/src/mcp/tools.js +22 -5
- package/dist/src/mcp/tools.js.map +1 -1
- package/dist/src/services/chain-config.d.ts +4 -3
- package/dist/src/services/chain-config.js +13 -5
- package/dist/src/services/chain-config.js.map +1 -1
- package/dist/src/services/perps-order.d.ts +48 -0
- package/dist/src/services/perps-order.js +66 -0
- package/dist/src/services/perps-order.js.map +1 -0
- package/dist/src/templates/skill-content/SKILL.core.md +16 -23
- package/dist/src/templates/skill-content/references/trading.md +64 -33
- package/docs/USER_GUIDE.md +20 -6
- package/package.json +1 -1
- package/dist/src/commands/connect.d.ts +0 -26
- package/dist/src/commands/connect.js +0 -93
- package/dist/src/commands/connect.js.map +0 -1
- package/dist/src/commands/init.d.ts +0 -4
- package/dist/src/commands/init.js +0 -114
- package/dist/src/commands/init.js.map +0 -1
- package/dist/src/commands/skill.d.ts +0 -4
- package/dist/src/commands/skill.js +0 -117
- package/dist/src/commands/skill.js.map +0 -1
package/config/chains.json
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
"base_uat": {
|
|
4
4
|
"name": "Base UAT",
|
|
5
5
|
"chainId": 8453,
|
|
6
|
-
"rpcUrl": "https://base-mainnet.g.alchemy.com/v2/igHoSYAWMvPX86unqNbyZ",
|
|
7
6
|
"contracts": {
|
|
8
7
|
"diamond": "0xB571399F2824424D4c15496406Ea7ACBc1a276AB",
|
|
9
8
|
"vaultFactory": "0x54d365E5E31472108e6AE5bdF89d85912d1A428E",
|
|
@@ -45,7 +44,7 @@
|
|
|
45
44
|
"JBTC": { "long": "0xfe7fe5D5de9a8B0BcF39D8676d0C92065a3ca20f", "short": "0x7c7900E40652A9C2225cf6d1E96c38606407e5B0" }
|
|
46
45
|
},
|
|
47
46
|
"defaultLeverage": 50,
|
|
48
|
-
"quoteCenterUrl": "https://
|
|
47
|
+
"quoteCenterUrl": "https://quotecenterv2.jaspervault.io",
|
|
49
48
|
"subgraphUrl": "https://subgraph.jaspervault.io"
|
|
50
49
|
}
|
|
51
50
|
},
|
|
@@ -99,6 +98,5 @@
|
|
|
99
98
|
}
|
|
100
99
|
}
|
|
101
100
|
},
|
|
102
|
-
"defaultBaseRpc": "https://base-mainnet.g.alchemy.com/v2/igHoSYAWMvPX86unqNbyZ",
|
|
103
101
|
"defaultJaspervaultRpc": "https://enterprise.onerpc.com/apikey/42b59vURnC9pSN2XWPunWiYWTeUOU6Mh/jasper_mainnet"
|
|
104
102
|
}
|
|
@@ -7,10 +7,49 @@ import { getNetworkConfig, getTokenConfig, getWriterAddress } from '../services/
|
|
|
7
7
|
import { SubgraphClient } from '../services/subgraph-client.js';
|
|
8
8
|
import { loadDelegationKey } from '../services/key-manager.js';
|
|
9
9
|
import { loadVaultProfile, getPositionAccountFromProfile } from '../services/vault-profile.js';
|
|
10
|
-
import {
|
|
11
|
-
import { fetchCurrentPrice, calculateQuantity } from '../services/price-service.js';
|
|
10
|
+
import { fetchOptionWriterIndices, signPerpsOptionCreate, } from '../services/order-signer.js';
|
|
12
11
|
import { fetchOptionQuote } from '../services/quote-center.js';
|
|
13
12
|
import { parsePpoOptions } from '../utils/ppo.js';
|
|
13
|
+
import { submitPerpsOrder } from '../services/perps-order.js';
|
|
14
|
+
/**
|
|
15
|
+
* Reverse-map a token address to its symbol by scanning the network token map.
|
|
16
|
+
* The Subgraph returns `underlyingAsset` as an address, but `submitPerpsOrder`
|
|
17
|
+
* needs a symbol. Mirrors the address-match loop in orders.ts `formatOrder`.
|
|
18
|
+
*/
|
|
19
|
+
function resolveSymbolFromAddress(net, address) {
|
|
20
|
+
if (!net.tokens)
|
|
21
|
+
return null;
|
|
22
|
+
const target = address.toLowerCase();
|
|
23
|
+
for (const [symbol, tok] of Object.entries(net.tokens)) {
|
|
24
|
+
if (tok.address.toLowerCase() === target) {
|
|
25
|
+
return symbol;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Derive leverage from a Subgraph position. Mirrors the fallback chain in
|
|
32
|
+
* orders.ts `formatOrder`: explicit `leverage`, else `productType / 1e12`,
|
|
33
|
+
* else the network default.
|
|
34
|
+
*/
|
|
35
|
+
function deriveLeverage(order, net) {
|
|
36
|
+
if (order.leverage) {
|
|
37
|
+
const n = parseInt(order.leverage, 10);
|
|
38
|
+
if (Number.isFinite(n) && n > 0)
|
|
39
|
+
return n;
|
|
40
|
+
}
|
|
41
|
+
if (order.productType) {
|
|
42
|
+
try {
|
|
43
|
+
const n = Number(BigInt(order.productType) / 10n ** 12n);
|
|
44
|
+
if (Number.isFinite(n) && n > 0)
|
|
45
|
+
return n;
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// fall through to default
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return net.defaultLeverage ?? 50;
|
|
52
|
+
}
|
|
14
53
|
export function registerOrderCommand(program) {
|
|
15
54
|
const order = program
|
|
16
55
|
.command('order')
|
|
@@ -49,55 +88,31 @@ export function registerOrderCommand(program) {
|
|
|
49
88
|
const leverage = opts.leverage
|
|
50
89
|
? parseInt(opts.leverage, 10)
|
|
51
90
|
: (net.defaultLeverage ?? 50);
|
|
52
|
-
const marginInput = parseFloat(opts.margin);
|
|
53
|
-
const notionalAmount = marginInput * leverage;
|
|
54
|
-
const actualMargin = marginInput.toFixed(6);
|
|
55
91
|
const { limitType, ppoSettings } = parsePpoOptions(opts);
|
|
56
92
|
const positionAccount = opts.positionAccount ?? getPositionAccountFromProfile(profile, side) ?? undefined;
|
|
57
|
-
|
|
93
|
+
if (!positionAccount) {
|
|
94
|
+
exitWithError(`positionAccount required for ${side}. Run "jv enable" or pass --position-account.`, EXIT_CODES.CONFIG_ERROR);
|
|
95
|
+
}
|
|
96
|
+
const result = await submitPerpsOrder({
|
|
58
97
|
side,
|
|
59
98
|
symbol: opts.symbol,
|
|
60
99
|
leverage,
|
|
61
|
-
|
|
62
|
-
marginAccount: opts.marginAccount ?? profile.marginAccount,
|
|
63
|
-
positionAccount,
|
|
100
|
+
margin: opts.margin,
|
|
64
101
|
limitPrice: opts.limitPrice,
|
|
65
102
|
network: opts.network,
|
|
66
103
|
ttlSeconds: parseInt(opts.ttl, 10),
|
|
67
104
|
limitType,
|
|
68
|
-
};
|
|
69
|
-
const provider = new JsonRpcProvider(net.rpcUrl);
|
|
70
|
-
const optionModuleV2 = net.contracts.optionModuleV2 ?? net.contracts.diamond;
|
|
71
|
-
if (!positionAccount) {
|
|
72
|
-
exitWithError(`positionAccount required for ${side}. Run "jv enable" or pass --position-account.`, EXIT_CODES.CONFIG_ERROR);
|
|
73
|
-
}
|
|
74
|
-
const signData = await buildSignData(intent, profile, opts.network);
|
|
75
|
-
const writerIndices = await fetchWriterIndices(signData.writer, signData.orderType, signData.underlyingAsset, provider, optionModuleV2);
|
|
76
|
-
const marginDecimals = net.marginAsset?.decimals ?? 6;
|
|
77
|
-
const currentPrice = await fetchCurrentPrice(opts.symbol, opts.network);
|
|
78
|
-
const quantity = calculateQuantity(signData.marginAmount, currentPrice, marginDecimals);
|
|
79
|
-
const priceUsd = Number(ethers.formatUnits(currentPrice, 18));
|
|
80
|
-
const estimatedSize = notionalAmount / priceUsd;
|
|
81
|
-
console.error(`Estimated: ~${estimatedSize.toFixed(6)} ${opts.symbol} @ $${priceUsd.toLocaleString()} (~$${notionalAmount.toLocaleString()} JUSDC total, ${leverage}x)`);
|
|
82
|
-
const delegationWallet = new Wallet(delegation.delegationPrivateKey);
|
|
83
|
-
const signature = await signSignData(signData, delegationWallet);
|
|
84
|
-
const managedOrder = buildManagedOrder(signData, writerIndices, positionAccount, quantity);
|
|
85
|
-
const body = {
|
|
86
|
-
signData,
|
|
87
|
-
signature,
|
|
88
|
-
managedOrder,
|
|
89
105
|
ppoSettings,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
if (
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
exitWithError(sseResult.error ?? `Job ${sseResult.status}`, EXIT_CODES.BUSINESS_ERROR);
|
|
106
|
+
marginAccount: opts.marginAccount ?? profile.marginAccount,
|
|
107
|
+
positionAccount: positionAccount,
|
|
108
|
+
}, profile, delegation.delegationPrivateKey);
|
|
109
|
+
const notionalAmount = parseFloat(opts.margin) * leverage;
|
|
110
|
+
console.error(`Estimated: ~${result.estimatedSize.toFixed(6)} ${opts.symbol} @ $${result.priceUsd.toLocaleString()} (~$${notionalAmount.toLocaleString()} JUSDC total, ${leverage}x)`);
|
|
111
|
+
printJson(result.apiResponse, opts.pretty);
|
|
112
|
+
if (result.sseResult) {
|
|
113
|
+
printJson(result.sseResult, opts.pretty);
|
|
114
|
+
if (result.sseResult.status !== 'completed') {
|
|
115
|
+
exitWithError(result.sseResult.error ?? `Job ${result.sseResult.status}`, EXIT_CODES.BUSINESS_ERROR);
|
|
101
116
|
}
|
|
102
117
|
}
|
|
103
118
|
});
|
|
@@ -144,7 +159,6 @@ export function registerOrderCommand(program) {
|
|
|
144
159
|
ppoCategory: opts.ppoCategory,
|
|
145
160
|
ppoTier: opts.ppoTier,
|
|
146
161
|
});
|
|
147
|
-
const ttlSeconds = parseInt(opts.ttl, 10);
|
|
148
162
|
const writerSide = positionSide.toLowerCase();
|
|
149
163
|
const tokenConfig = getTokenConfig(opts.network, opts.symbol);
|
|
150
164
|
const writerAddress = getWriterAddress(opts.network, opts.symbol, writerSide);
|
|
@@ -197,5 +211,124 @@ export function registerOrderCommand(program) {
|
|
|
197
211
|
}
|
|
198
212
|
}
|
|
199
213
|
});
|
|
214
|
+
order
|
|
215
|
+
.command('close')
|
|
216
|
+
.description('Close perpetual position(s) by submitting a reverse-side order with the same margin')
|
|
217
|
+
.option('--order-id <id>', 'Close a specific position by order ID')
|
|
218
|
+
.option('--all', 'Close all active positions')
|
|
219
|
+
.option('--network <name>', 'Network name', 'jaspervault')
|
|
220
|
+
.option('--ttl <seconds>', 'Order TTL in seconds', '3600')
|
|
221
|
+
.option('--pretty', 'Pretty-print JSON output')
|
|
222
|
+
.action(async (opts) => {
|
|
223
|
+
// Exactly one of --order-id / --all is required.
|
|
224
|
+
if ((!opts.orderId && !opts.all) || (opts.orderId && opts.all)) {
|
|
225
|
+
exitWithError('Specify exactly one of --order-id or --all', EXIT_CODES.CONFIG_ERROR);
|
|
226
|
+
}
|
|
227
|
+
const delegation = loadDelegationKey();
|
|
228
|
+
if (!delegation) {
|
|
229
|
+
exitWithError('Delegation key not found. Run "jv enable" first or set JV_DELEGATION_KEY.', EXIT_CODES.CONFIG_ERROR);
|
|
230
|
+
}
|
|
231
|
+
const profile = loadVaultProfile(opts.network);
|
|
232
|
+
if (!profile) {
|
|
233
|
+
exitWithError(`No vault profile for network ${opts.network}. Run "jv enable --network ${opts.network}" first.`, EXIT_CODES.CONFIG_ERROR);
|
|
234
|
+
}
|
|
235
|
+
const net = getNetworkConfig(opts.network);
|
|
236
|
+
const subgraphUrl = process.env.JV_SUBGRAPH_URL ?? net.subgraphUrl;
|
|
237
|
+
if (!subgraphUrl) {
|
|
238
|
+
exitWithError(`No subgraphUrl configured for network ${opts.network}. Set JV_SUBGRAPH_URL.`, EXIT_CODES.CONFIG_ERROR);
|
|
239
|
+
}
|
|
240
|
+
const subgraphClient = new SubgraphClient(subgraphUrl);
|
|
241
|
+
// Resolve the set of positions to close.
|
|
242
|
+
let positions;
|
|
243
|
+
if (opts.orderId) {
|
|
244
|
+
const order = await subgraphClient.queryOrderById(opts.orderId);
|
|
245
|
+
if (!order) {
|
|
246
|
+
exitWithError(`Order ${opts.orderId} not found in Subgraph.`, EXIT_CODES.BUSINESS_ERROR);
|
|
247
|
+
}
|
|
248
|
+
if (!order.isActive) {
|
|
249
|
+
exitWithError(`Order ${opts.orderId} is not active (already closed?).`, EXIT_CODES.BUSINESS_ERROR);
|
|
250
|
+
}
|
|
251
|
+
positions = [order];
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
positions = await subgraphClient.queryOrders({ recipient: profile.marginAccount ?? '', isActive: true }, 1000, 0);
|
|
255
|
+
}
|
|
256
|
+
if (positions.length === 0) {
|
|
257
|
+
printJson({ closed: [], failed: [], message: 'No active positions to close.' }, opts.pretty);
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
const marginDecimals = net.marginAsset?.decimals ?? 6;
|
|
261
|
+
const ttlSeconds = parseInt(opts.ttl, 10);
|
|
262
|
+
// Close orders carry no PPO — parsePpoOptions({}) yields a disabled-PPO
|
|
263
|
+
// object identical to a no-`--ppo` create.
|
|
264
|
+
const { ppoSettings } = parsePpoOptions({});
|
|
265
|
+
const closed = [];
|
|
266
|
+
const failed = [];
|
|
267
|
+
// Sequential: serializing avoids nonce collisions on the delegation wallet.
|
|
268
|
+
for (const position of positions) {
|
|
269
|
+
const symbol = resolveSymbolFromAddress(net, position.underlyingAsset);
|
|
270
|
+
if (!symbol) {
|
|
271
|
+
failed.push({
|
|
272
|
+
orderId: position.id,
|
|
273
|
+
error: `Cannot resolve symbol for underlyingAsset ${position.underlyingAsset}. ` +
|
|
274
|
+
`Supported tokens: ${Object.keys(net.tokens ?? {}).join(', ')}`,
|
|
275
|
+
});
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
if (!position.marginDeposited || position.marginDeposited === '0') {
|
|
279
|
+
failed.push({
|
|
280
|
+
orderId: position.id,
|
|
281
|
+
error: 'Position has no marginDeposited; cannot derive close margin.',
|
|
282
|
+
});
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
285
|
+
const closeSide = position.positionSide === 'LONG' ? 'short' : 'long';
|
|
286
|
+
const margin = ethers.formatUnits(position.marginDeposited, marginDecimals);
|
|
287
|
+
const leverage = deriveLeverage(position, net);
|
|
288
|
+
const positionAccount = getPositionAccountFromProfile(profile, closeSide);
|
|
289
|
+
if (!positionAccount) {
|
|
290
|
+
failed.push({
|
|
291
|
+
orderId: position.id,
|
|
292
|
+
error: `No positionAccount for ${closeSide} side in vault profile.`,
|
|
293
|
+
});
|
|
294
|
+
continue;
|
|
295
|
+
}
|
|
296
|
+
console.error(`Closing #${position.id}: ${position.positionSide} ${symbol} margin=${margin} ` +
|
|
297
|
+
`→ ${closeSide} reverse order`);
|
|
298
|
+
try {
|
|
299
|
+
const result = await submitPerpsOrder({
|
|
300
|
+
side: closeSide,
|
|
301
|
+
symbol,
|
|
302
|
+
leverage,
|
|
303
|
+
margin,
|
|
304
|
+
limitPrice: undefined,
|
|
305
|
+
network: opts.network,
|
|
306
|
+
ttlSeconds,
|
|
307
|
+
limitType: 0,
|
|
308
|
+
ppoSettings,
|
|
309
|
+
marginAccount: profile.marginAccount,
|
|
310
|
+
positionAccount,
|
|
311
|
+
}, profile, delegation.delegationPrivateKey);
|
|
312
|
+
const status = result.sseResult?.status ?? 'submitted';
|
|
313
|
+
if (result.sseResult && result.sseResult.status !== 'completed') {
|
|
314
|
+
failed.push({
|
|
315
|
+
orderId: position.id,
|
|
316
|
+
closeSide,
|
|
317
|
+
error: result.sseResult.error ?? `Job ${result.sseResult.status}`,
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
closed.push({ orderId: position.id, closeSide, symbol, margin, status });
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
catch (err) {
|
|
325
|
+
failed.push({ orderId: position.id, error: err.message });
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
printJson({ closed, failed }, opts.pretty);
|
|
329
|
+
if (failed.length > 0) {
|
|
330
|
+
exitWithError(`${failed.length} of ${positions.length} position(s) failed to close.`, EXIT_CODES.BUSINESS_ERROR);
|
|
331
|
+
}
|
|
332
|
+
});
|
|
200
333
|
}
|
|
201
334
|
//# sourceMappingURL=order.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../src/commands/order.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../src/commands/order.ts"],"names":[],"mappings":"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"}
|
package/dist/src/mcp/tools.js
CHANGED
|
@@ -2,11 +2,10 @@ export const TOOLS = [
|
|
|
2
2
|
// ── Trading ──
|
|
3
3
|
{
|
|
4
4
|
name: 'create_order',
|
|
5
|
-
description: '
|
|
6
|
-
'
|
|
7
|
-
'
|
|
8
|
-
'
|
|
9
|
-
'NEVER close without querying the position first. ' +
|
|
5
|
+
description: 'Open a market or limit position. For market orders, omit limit_price. ' +
|
|
6
|
+
'To fully close a position, use close_position instead. ' +
|
|
7
|
+
'To PARTIALLY reduce a position, call create_order with the OPPOSITE side and a ' +
|
|
8
|
+
'smaller margin than the position (query it first with list_orders). ' +
|
|
10
9
|
'Returns jobId (market) or limitOrderId (limit).',
|
|
11
10
|
inputSchema: {
|
|
12
11
|
type: 'object',
|
|
@@ -26,6 +25,24 @@ export const TOOLS = [
|
|
|
26
25
|
},
|
|
27
26
|
cliCommand: ['order', 'create'],
|
|
28
27
|
},
|
|
28
|
+
{
|
|
29
|
+
name: 'close_position',
|
|
30
|
+
description: 'Fully close perpetual position(s). Pass order_id to close one position, or ' +
|
|
31
|
+
'all=true to close every active position. The command derives side, margin, ' +
|
|
32
|
+
'symbol, and leverage from on-chain data — no need to call list_orders first. ' +
|
|
33
|
+
'Closing works by submitting a reverse-side order with the same margin. ' +
|
|
34
|
+
'For a PARTIAL close, use create_order instead.',
|
|
35
|
+
inputSchema: {
|
|
36
|
+
type: 'object',
|
|
37
|
+
properties: {
|
|
38
|
+
order_id: { type: 'string', description: 'Order ID of the position to close' },
|
|
39
|
+
all: { type: 'boolean', description: 'Close every active position' },
|
|
40
|
+
ttl: { type: 'number', description: 'Order TTL in seconds (default: 3600)' },
|
|
41
|
+
},
|
|
42
|
+
required: [],
|
|
43
|
+
},
|
|
44
|
+
cliCommand: ['order', 'close'],
|
|
45
|
+
},
|
|
29
46
|
{
|
|
30
47
|
name: 'protect_order',
|
|
31
48
|
description: 'Add PPO hedge option protection to an existing position without changing position size.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/mcp/tools.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,KAAK,GAAc;IAC9B,gBAAgB;IAChB;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export interface NetworkContracts {
|
|
|
8
8
|
export interface NetworkConfig {
|
|
9
9
|
name: string;
|
|
10
10
|
chainId: number;
|
|
11
|
-
rpcUrl
|
|
11
|
+
rpcUrl?: string;
|
|
12
12
|
contracts: NetworkContracts;
|
|
13
13
|
tokens?: Record<string, NetworkTokenConfig>;
|
|
14
14
|
marginAsset?: MarginAssetConfig;
|
|
@@ -30,8 +30,8 @@ export interface WarpTokenConfig {
|
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
|
-
* Get network configuration
|
|
34
|
-
*
|
|
33
|
+
* Get network configuration. Base RPC URL must come from BASE_HTTP_RPC_URL env var
|
|
34
|
+
* (single source of truth for all services). JV_JASPERVAULT_RPC_URL overrides Jasper.
|
|
35
35
|
*/
|
|
36
36
|
export declare function getNetworkConfig(network: string): NetworkConfig;
|
|
37
37
|
/**
|
|
@@ -49,6 +49,7 @@ export declare function getWriterAddress(network: string, symbol: string, side:
|
|
|
49
49
|
export declare function getWarpConfig(token: string): WarpTokenConfig;
|
|
50
50
|
/**
|
|
51
51
|
* Get Base chain RPC URL for deposit (source chain).
|
|
52
|
+
* Single source of truth: BASE_HTTP_RPC_URL env var.
|
|
52
53
|
*/
|
|
53
54
|
export declare function getBaseRpcUrl(): string;
|
|
54
55
|
/**
|
|
@@ -27,8 +27,8 @@ function loadConfig() {
|
|
|
27
27
|
return cachedConfig;
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
|
-
* Get network configuration
|
|
31
|
-
*
|
|
30
|
+
* Get network configuration. Base RPC URL must come from BASE_HTTP_RPC_URL env var
|
|
31
|
+
* (single source of truth for all services). JV_JASPERVAULT_RPC_URL overrides Jasper.
|
|
32
32
|
*/
|
|
33
33
|
export function getNetworkConfig(network) {
|
|
34
34
|
const config = loadConfig();
|
|
@@ -37,8 +37,11 @@ export function getNetworkConfig(network) {
|
|
|
37
37
|
throw new Error(`Unknown network: ${network}. Supported: ${Object.keys(config.networks).join(', ')}`);
|
|
38
38
|
}
|
|
39
39
|
let rpcUrl = net.rpcUrl;
|
|
40
|
-
if (network === 'base_uat'
|
|
41
|
-
rpcUrl = process.env.
|
|
40
|
+
if (network === 'base_uat') {
|
|
41
|
+
rpcUrl = process.env.BASE_HTTP_RPC_URL;
|
|
42
|
+
if (!rpcUrl) {
|
|
43
|
+
throw new Error('BASE_HTTP_RPC_URL env var is required for base_uat network.');
|
|
44
|
+
}
|
|
42
45
|
}
|
|
43
46
|
if (network === 'jaspervault' && process.env.JV_JASPERVAULT_RPC_URL) {
|
|
44
47
|
rpcUrl = process.env.JV_JASPERVAULT_RPC_URL;
|
|
@@ -83,9 +86,14 @@ export function getWarpConfig(token) {
|
|
|
83
86
|
}
|
|
84
87
|
/**
|
|
85
88
|
* Get Base chain RPC URL for deposit (source chain).
|
|
89
|
+
* Single source of truth: BASE_HTTP_RPC_URL env var.
|
|
86
90
|
*/
|
|
87
91
|
export function getBaseRpcUrl() {
|
|
88
|
-
|
|
92
|
+
const url = process.env.BASE_HTTP_RPC_URL;
|
|
93
|
+
if (!url) {
|
|
94
|
+
throw new Error('BASE_HTTP_RPC_URL env var is required.');
|
|
95
|
+
}
|
|
96
|
+
return url;
|
|
89
97
|
}
|
|
90
98
|
/**
|
|
91
99
|
* Get JasperVault chain RPC URL for deposit (destination chain, vault address computation).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-config.js","sourceRoot":"","sources":["../../../src/services/chain-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,mEAAmE;AACnE,MAAM,aAAa,GAAG,GAAW,EAAE;IACjC,2DAA2D;IAC3D,+DAA+D;IAC/D,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC;QACpD,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC;KAC3D,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,IAAI,KAAK,CACb,iCAAiC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,CACrF,CAAC;AACJ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"chain-config.js","sourceRoot":"","sources":["../../../src/services/chain-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { MarketOrderResponse, LimitOrderResponse, PPOSettings, SSEWatchResult, VaultProfile } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parameters for submitting a perps order. This is the common shape shared by
|
|
4
|
+
* `jv order create` (user-supplied) and `jv order close` (derived from an
|
|
5
|
+
* existing position). Keeping a single submit path means there is exactly one
|
|
6
|
+
* place that builds calldata, signs, and posts to the Manager API.
|
|
7
|
+
*/
|
|
8
|
+
export interface SubmitPerpsOrderParams {
|
|
9
|
+
side: 'long' | 'short';
|
|
10
|
+
symbol: string;
|
|
11
|
+
leverage: number;
|
|
12
|
+
/** Human-readable USDC margin, e.g. "1" or "100.5". */
|
|
13
|
+
margin: string;
|
|
14
|
+
/** Omit for a market order; set for a limit order. */
|
|
15
|
+
limitPrice?: string;
|
|
16
|
+
network: string;
|
|
17
|
+
ttlSeconds: number;
|
|
18
|
+
/** 0 = Normal (no PPO), 1 = PPO. */
|
|
19
|
+
limitType: number;
|
|
20
|
+
ppoSettings: PPOSettings;
|
|
21
|
+
/**
|
|
22
|
+
* Margin (collateral) vault. Optional: `buildSignData` falls back to
|
|
23
|
+
* `profile.marginAccount` and throws if neither is present.
|
|
24
|
+
*/
|
|
25
|
+
marginAccount?: string;
|
|
26
|
+
positionAccount: string;
|
|
27
|
+
}
|
|
28
|
+
export interface SubmitPerpsOrderResult {
|
|
29
|
+
/** Raw Manager API response. */
|
|
30
|
+
apiResponse: MarketOrderResponse | LimitOrderResponse;
|
|
31
|
+
/** Job stream result — present only for market orders that returned a jobId. */
|
|
32
|
+
sseResult?: SSEWatchResult;
|
|
33
|
+
/** Estimated position size in the underlying asset (informational). */
|
|
34
|
+
estimatedSize: number;
|
|
35
|
+
/** Spot price (USD) used for the size estimate. */
|
|
36
|
+
priceUsd: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Build, sign, and submit a single perps order.
|
|
40
|
+
*
|
|
41
|
+
* This is the canonical submit path. Both `jv order create` and `jv order
|
|
42
|
+
* close` call it — `close` simply derives `side`/`margin`/`leverage` from an
|
|
43
|
+
* existing Subgraph position instead of CLI flags.
|
|
44
|
+
*
|
|
45
|
+
* The function does NOT print, exit, or handle SSE-failure exit codes — the
|
|
46
|
+
* caller owns presentation and process exit semantics.
|
|
47
|
+
*/
|
|
48
|
+
export declare function submitPerpsOrder(params: SubmitPerpsOrderParams, profile: VaultProfile, delegationPrivateKey: string): Promise<SubmitPerpsOrderResult>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { ethers, Wallet, JsonRpcProvider } from 'ethers';
|
|
2
|
+
import { ApiClient } from '../client.js';
|
|
3
|
+
import { ENDPOINTS } from '../utils/endpoints.js';
|
|
4
|
+
import { loadConfig } from '../utils/config.js';
|
|
5
|
+
import { getNetworkConfig } from './chain-config.js';
|
|
6
|
+
import { buildSignData, signSignData, fetchWriterIndices, buildManagedOrder, } from './order-signer.js';
|
|
7
|
+
import { fetchCurrentPrice, calculateQuantity } from './price-service.js';
|
|
8
|
+
/**
|
|
9
|
+
* Build, sign, and submit a single perps order.
|
|
10
|
+
*
|
|
11
|
+
* This is the canonical submit path. Both `jv order create` and `jv order
|
|
12
|
+
* close` call it — `close` simply derives `side`/`margin`/`leverage` from an
|
|
13
|
+
* existing Subgraph position instead of CLI flags.
|
|
14
|
+
*
|
|
15
|
+
* The function does NOT print, exit, or handle SSE-failure exit codes — the
|
|
16
|
+
* caller owns presentation and process exit semantics.
|
|
17
|
+
*/
|
|
18
|
+
export async function submitPerpsOrder(params, profile, delegationPrivateKey) {
|
|
19
|
+
const net = getNetworkConfig(params.network);
|
|
20
|
+
// marginAmount is normalized to 6 decimal places of precision, matching the
|
|
21
|
+
// behavior of `jv order create` before this function was extracted.
|
|
22
|
+
const actualMargin = parseFloat(params.margin).toFixed(6);
|
|
23
|
+
const notionalAmount = parseFloat(actualMargin) * params.leverage;
|
|
24
|
+
const intent = {
|
|
25
|
+
side: params.side,
|
|
26
|
+
symbol: params.symbol,
|
|
27
|
+
leverage: params.leverage,
|
|
28
|
+
marginAmount: actualMargin,
|
|
29
|
+
marginAccount: params.marginAccount,
|
|
30
|
+
positionAccount: params.positionAccount,
|
|
31
|
+
limitPrice: params.limitPrice,
|
|
32
|
+
network: params.network,
|
|
33
|
+
ttlSeconds: params.ttlSeconds,
|
|
34
|
+
limitType: params.limitType,
|
|
35
|
+
};
|
|
36
|
+
const provider = new JsonRpcProvider(net.rpcUrl);
|
|
37
|
+
const optionModuleV2 = net.contracts.optionModuleV2 ?? net.contracts.diamond;
|
|
38
|
+
const signData = await buildSignData(intent, profile, params.network);
|
|
39
|
+
const writerIndices = await fetchWriterIndices(signData.writer, signData.orderType, signData.underlyingAsset, provider, optionModuleV2);
|
|
40
|
+
const marginDecimals = net.marginAsset?.decimals ?? 6;
|
|
41
|
+
const currentPrice = await fetchCurrentPrice(params.symbol, params.network);
|
|
42
|
+
const quantity = calculateQuantity(signData.marginAmount, currentPrice, marginDecimals);
|
|
43
|
+
const priceUsd = Number(ethers.formatUnits(currentPrice, 18));
|
|
44
|
+
const estimatedSize = priceUsd > 0 ? notionalAmount / priceUsd : 0;
|
|
45
|
+
const delegationWallet = new Wallet(delegationPrivateKey);
|
|
46
|
+
const signature = await signSignData(signData, delegationWallet);
|
|
47
|
+
const managedOrder = buildManagedOrder(signData, writerIndices, params.positionAccount, quantity);
|
|
48
|
+
const body = {
|
|
49
|
+
signData,
|
|
50
|
+
signature,
|
|
51
|
+
managedOrder,
|
|
52
|
+
ppoSettings: params.ppoSettings,
|
|
53
|
+
};
|
|
54
|
+
const config = loadConfig();
|
|
55
|
+
const client = new ApiClient(config);
|
|
56
|
+
const res = await client.post(ENDPOINTS.ORDER_CREATE, body);
|
|
57
|
+
const apiResponse = res.data;
|
|
58
|
+
let sseResult;
|
|
59
|
+
if (apiResponse.orderType === 'market' &&
|
|
60
|
+
'jobId' in apiResponse &&
|
|
61
|
+
apiResponse.jobId) {
|
|
62
|
+
sseResult = await client.watchJobStream(apiResponse.jobId, 60);
|
|
63
|
+
}
|
|
64
|
+
return { apiResponse, sseResult, estimatedSize, priceUsd };
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=perps-order.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perps-order.js","sourceRoot":"","sources":["../../../src/services/perps-order.ts"],"names":[],"mappings":"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"}
|