jaspervault_cli 1.0.26 → 1.0.28
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/README.md +25 -24
- package/dist/bin/jv.js +6 -2
- package/dist/bin/jv.js.map +1 -1
- package/dist/src/client.js +28 -1
- package/dist/src/client.js.map +1 -1
- package/dist/src/commands/deposit.js +129 -125
- package/dist/src/commands/deposit.js.map +1 -1
- package/dist/src/commands/install.d.ts +2 -0
- package/dist/src/commands/install.js +184 -0
- package/dist/src/commands/install.js.map +1 -0
- package/dist/src/commands/limit-order.js +7 -0
- package/dist/src/commands/limit-order.js.map +1 -1
- package/dist/src/commands/mcp.d.ts +2 -0
- package/dist/src/commands/mcp.js +10 -0
- package/dist/src/commands/mcp.js.map +1 -0
- package/dist/src/commands/sl.js +12 -2
- package/dist/src/commands/sl.js.map +1 -1
- package/dist/src/commands/tp.js +12 -2
- package/dist/src/commands/tp.js.map +1 -1
- package/dist/src/commands/vault.js +111 -87
- package/dist/src/commands/vault.js.map +1 -1
- package/dist/src/commands/withdraw.d.ts +2 -0
- package/dist/src/commands/withdraw.js +114 -0
- package/dist/src/commands/withdraw.js.map +1 -0
- package/dist/src/mcp/executor.d.ts +23 -0
- package/dist/src/mcp/executor.js +75 -0
- package/dist/src/mcp/executor.js.map +1 -0
- package/dist/src/mcp/index.d.ts +1 -0
- package/dist/src/mcp/index.js +58 -0
- package/dist/src/mcp/index.js.map +1 -0
- package/dist/src/mcp/installer.d.ts +9 -0
- package/dist/src/mcp/installer.js +66 -0
- package/dist/src/mcp/installer.js.map +1 -0
- package/dist/src/mcp/tools.d.ts +15 -0
- package/dist/src/mcp/tools.js +250 -0
- package/dist/src/mcp/tools.js.map +1 -0
- package/dist/src/services/order-signer.js +1 -1
- package/dist/src/services/order-signer.js.map +1 -1
- package/dist/src/services/session-poller.d.ts +12 -0
- package/dist/src/services/session-poller.js +57 -0
- package/dist/src/services/session-poller.js.map +1 -0
- package/dist/src/templates/skill-body.d.ts +3 -1
- package/dist/src/templates/skill-body.js +30 -497
- package/dist/src/templates/skill-body.js.map +1 -1
- package/dist/src/templates/skill-content/SKILL.core.md +51 -0
- package/dist/src/templates/skill-content/frontmatter/claude.md +4 -0
- package/dist/src/templates/skill-content/frontmatter/cursor.md +0 -0
- package/dist/src/templates/skill-content/frontmatter/openclaw.md +11 -0
- package/dist/src/templates/skill-content/references/onboarding.md +124 -0
- package/dist/src/templates/skill-content/references/queries.md +294 -0
- package/dist/src/templates/skill-content/references/trading.md +274 -0
- package/dist/src/templates/skill-content/scripts/check-init.sh +4 -0
- package/dist/src/types.d.ts +13 -6
- package/dist/src/utils/config.d.ts +1 -1
- package/dist/src/utils/config.js +1 -1
- package/dist/src/utils/config.js.map +1 -1
- package/dist/src/utils/endpoints.d.ts +3 -0
- package/dist/src/utils/endpoints.js +5 -0
- package/dist/src/utils/endpoints.js.map +1 -1
- package/package.json +4 -6
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Trade perpetuals on JasperVault through AI conversation. Install this CLI and co
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
## Quick Start
|
|
7
|
+
## Quick Start
|
|
8
8
|
|
|
9
9
|
### 1. Install the CLI
|
|
10
10
|
|
|
@@ -18,26 +18,26 @@ Verify:
|
|
|
18
18
|
jv --version
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
### 2. Install JasperVault
|
|
21
|
+
### 2. Install JasperVault to Your AI Platform
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
jv
|
|
24
|
+
jv install --ai openclaw
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
This installs the trading skill to `~/.openclaw/skills/jasper-vault-cli/SKILL.md
|
|
27
|
+
This installs the trading skill/MCP configuration for your chosen platform. For OpenClaw it writes to `~/.openclaw/skills/jasper-vault-cli/SKILL.md`; for Cursor and Claude Code it configures the MCP server.
|
|
28
28
|
|
|
29
|
-
>
|
|
29
|
+
> To overwrite an existing installation, add `--force`:
|
|
30
30
|
> ```bash
|
|
31
|
-
> jv
|
|
31
|
+
> jv install --ai openclaw --force
|
|
32
32
|
> ```
|
|
33
33
|
|
|
34
|
-
### 3.
|
|
34
|
+
### 3. Set Up Your Wallet (One-Time)
|
|
35
35
|
|
|
36
|
-
In
|
|
36
|
+
In your AI assistant, say:
|
|
37
37
|
|
|
38
38
|
> **"I want to start trading"**
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
The assistant will call `jv vault setup`, which opens a hosted web page in your browser. Connect your wallet there and confirm the delegation signature. Done — no private key export required.
|
|
41
41
|
|
|
42
42
|
Or run it manually in the terminal:
|
|
43
43
|
|
|
@@ -47,7 +47,7 @@ jv vault setup --network jaspervault --pretty
|
|
|
47
47
|
|
|
48
48
|
### 4. Start Trading
|
|
49
49
|
|
|
50
|
-
Just talk to
|
|
50
|
+
Just talk to your AI assistant. Examples:
|
|
51
51
|
|
|
52
52
|
- "Go long JBTC with 100 JUSDC, 50x leverage"
|
|
53
53
|
- "Set take-profit for order 99 at 105000"
|
|
@@ -55,19 +55,23 @@ Just talk to OpenClaw. Examples:
|
|
|
55
55
|
|
|
56
56
|
---
|
|
57
57
|
|
|
58
|
-
## Install
|
|
58
|
+
## Multi-Platform Install
|
|
59
59
|
|
|
60
60
|
```bash
|
|
61
|
-
jv
|
|
62
|
-
jv
|
|
63
|
-
jv
|
|
64
|
-
jv
|
|
65
|
-
jv
|
|
61
|
+
jv install --ai openclaw # OpenClaw
|
|
62
|
+
jv install --ai cursor # Cursor (current project)
|
|
63
|
+
jv install --ai cursor --global # Cursor (user-level)
|
|
64
|
+
jv install --ai claude # Claude Code (current project)
|
|
65
|
+
jv install --ai claude --global # Claude Code (user-level)
|
|
66
|
+
jv install # All platforms (global)
|
|
66
67
|
```
|
|
67
68
|
|
|
68
69
|
Options:
|
|
70
|
+
- `--ai <platform>` — Target a specific platform (`openclaw`, `cursor`, `claude`)
|
|
69
71
|
- `--global` — Install to user home instead of current project (cursor/claude only)
|
|
70
|
-
- `--force` — Overwrite existing
|
|
72
|
+
- `--force` — Overwrite existing installation without prompting
|
|
73
|
+
|
|
74
|
+
When `--ai` is omitted, `jv install` installs to all supported platforms at the global level.
|
|
71
75
|
|
|
72
76
|
---
|
|
73
77
|
|
|
@@ -84,10 +88,7 @@ All configuration is done via environment variables. For most users, **no config
|
|
|
84
88
|
| `JV_BASE_RPC_URL` | No | Base chain RPC URL override (for deposit) | built-in |
|
|
85
89
|
| `JV_JASPERVAULT_RPC_URL` | No | JasperVault chain RPC URL override | built-in |
|
|
86
90
|
| `JV_SUBGRAPH_URL` | No | Subgraph endpoint override | built-in per network |
|
|
87
|
-
| `
|
|
88
|
-
| `PRIVATE_KEY` | No* | EOA wallet private key; when set, `deposit` and `vault init` execute directly without WalletConnect | — |
|
|
89
|
-
|
|
90
|
-
\* Not required when using the WalletConnect flow (`vault setup`, `deposit`).
|
|
91
|
+
| `PRIVATE_KEY` | No | EOA wallet private key; for CI/automation only — enables direct signing without the browser flow | — |
|
|
91
92
|
|
|
92
93
|
### Connecting to a Different Environment
|
|
93
94
|
|
|
@@ -107,7 +108,7 @@ After the first successful `jv vault init` or `jv vault setup`, the delegation w
|
|
|
107
108
|
|
|
108
109
|
## Funding Your Account (Optional)
|
|
109
110
|
|
|
110
|
-
To deposit tokens from Base to JasperVault, tell
|
|
111
|
+
To deposit tokens from Base to JasperVault, tell your AI assistant:
|
|
111
112
|
|
|
112
113
|
> **"Deposit 100 JUSDC into my vault"**
|
|
113
114
|
|
|
@@ -118,8 +119,8 @@ jv deposit --token jusdc --amount 100 --pretty
|
|
|
118
119
|
```
|
|
119
120
|
|
|
120
121
|
The CLI auto-detects how to sign:
|
|
121
|
-
- **`PRIVATE_KEY` set** → signs and sends the transaction directly
|
|
122
|
-
- **No `PRIVATE_KEY`** →
|
|
122
|
+
- **`PRIVATE_KEY` set** → signs and sends the transaction directly (CI/automation)
|
|
123
|
+
- **No `PRIVATE_KEY`** → opens a hosted web page in your browser to approve the transaction
|
|
123
124
|
|
|
124
125
|
---
|
|
125
126
|
|
package/dist/bin/jv.js
CHANGED
|
@@ -11,8 +11,10 @@ import { registerTpCommand } from '../src/commands/tp.js';
|
|
|
11
11
|
import { registerSlCommand } from '../src/commands/sl.js';
|
|
12
12
|
import { registerVaultCommand } from '../src/commands/vault.js';
|
|
13
13
|
import { registerDepositCommand } from '../src/commands/deposit.js';
|
|
14
|
-
import {
|
|
14
|
+
import { registerWithdrawCommand } from '../src/commands/withdraw.js';
|
|
15
|
+
import { registerInstallCommand } from '../src/commands/install.js';
|
|
15
16
|
import { registerPriceCommand } from '../src/commands/price.js';
|
|
17
|
+
import { registerMcpCommand } from '../src/commands/mcp.js';
|
|
16
18
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
17
19
|
const { version } = JSON.parse(readFileSync(join(__dirname, '../../package.json'), 'utf-8'));
|
|
18
20
|
const program = new Command();
|
|
@@ -28,7 +30,9 @@ registerLimitOrderCommand(program);
|
|
|
28
30
|
registerOrdersCommand(program);
|
|
29
31
|
registerVaultCommand(program);
|
|
30
32
|
registerDepositCommand(program);
|
|
31
|
-
|
|
33
|
+
registerWithdrawCommand(program);
|
|
34
|
+
registerInstallCommand(program);
|
|
32
35
|
registerPriceCommand(program);
|
|
36
|
+
registerMcpCommand(program);
|
|
33
37
|
program.parse();
|
|
34
38
|
//# sourceMappingURL=jv.js.map
|
package/dist/bin/jv.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jv.js","sourceRoot":"","sources":["../../bin/jv.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"jv.js","sourceRoot":"","sources":["../../bin/jv.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CACtC,CAAC;AAEzB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,6DAA6D,CAAC;KAC1E,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3B,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACnC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAE5B,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/src/client.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { ENDPOINTS } from './utils/endpoints.js';
|
|
2
2
|
import { EXIT_CODES, printError } from './utils/output.js';
|
|
3
|
+
function extractTxHash(msg) {
|
|
4
|
+
if (!msg)
|
|
5
|
+
return undefined;
|
|
6
|
+
const match = msg.match(/TxHash:\s*(0x[0-9a-fA-F]+)/);
|
|
7
|
+
return match?.[1];
|
|
8
|
+
}
|
|
3
9
|
export class ApiClient {
|
|
4
10
|
baseUrl;
|
|
5
11
|
timeout;
|
|
@@ -50,7 +56,28 @@ export class ApiClient {
|
|
|
50
56
|
return { jobId, status: 'failed', error: `HTTP ${response.status}` };
|
|
51
57
|
}
|
|
52
58
|
const body = await response.json();
|
|
53
|
-
|
|
59
|
+
let data = (body.data ?? body);
|
|
60
|
+
// Unwrap double-envelope from marketplace proxy:
|
|
61
|
+
// { code: 0, data: { code, msg, data: actual } }
|
|
62
|
+
if (data && typeof data === 'object' && 'code' in data && 'data' in data) {
|
|
63
|
+
if (data.code !== 0) {
|
|
64
|
+
return {
|
|
65
|
+
jobId,
|
|
66
|
+
status: 'failed',
|
|
67
|
+
error: data.msg ?? 'Job execution failed',
|
|
68
|
+
transactionHash: extractTxHash(data.msg),
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
data = (data.data ?? data);
|
|
72
|
+
}
|
|
73
|
+
// Backend may return code !== 0 at the outer level
|
|
74
|
+
if (body.code !== undefined && body.code !== 0) {
|
|
75
|
+
return {
|
|
76
|
+
jobId,
|
|
77
|
+
status: 'failed',
|
|
78
|
+
error: body.msg ?? 'Job execution failed',
|
|
79
|
+
};
|
|
80
|
+
}
|
|
54
81
|
return {
|
|
55
82
|
jobId,
|
|
56
83
|
status: 'completed',
|
package/dist/src/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { Contract, Interface, JsonRpcProvider, MaxUint256, Wallet, parseUnits, zeroPadValue, } from 'ethers';
|
|
2
2
|
import { printJson, exitWithError, EXIT_CODES } from '../utils/output.js';
|
|
3
3
|
import { getWarpConfig, getBaseRpcUrl, getJaspervaultRpcUrl, getNetworkConfig, } from '../services/chain-config.js';
|
|
4
|
-
import {
|
|
4
|
+
import { loadConfig } from '../utils/config.js';
|
|
5
|
+
import { ENDPOINTS } from '../utils/endpoints.js';
|
|
6
|
+
import { ApiClient } from '../client.js';
|
|
7
|
+
import { loadVaultProfile } from '../services/vault-profile.js';
|
|
8
|
+
import { pollSession } from '../services/session-poller.js';
|
|
5
9
|
const ERC20_ABI = [
|
|
6
10
|
'function balanceOf(address account) external view returns (uint256)',
|
|
7
11
|
'function allowance(address owner, address spender) external view returns (uint256)',
|
|
@@ -115,98 +119,36 @@ export async function pollForDepositArrival(jaspervaultProvider, destWarpRouterA
|
|
|
115
119
|
}
|
|
116
120
|
return { arrived: false };
|
|
117
121
|
}
|
|
118
|
-
/**
|
|
119
|
-
* Send a transaction via WalletConnect and wait for on-chain confirmation.
|
|
120
|
-
*/
|
|
121
|
-
async function sendWcTransaction(client, session, walletAddress, to, data, baseProvider, phase, heartbeatMsg) {
|
|
122
|
-
const heartbeat = startHeartbeat(phase, heartbeatMsg);
|
|
123
|
-
let txHash;
|
|
124
|
-
try {
|
|
125
|
-
txHash = (await client.request({
|
|
126
|
-
topic: session.topic,
|
|
127
|
-
chainId: `eip155:${BASE_CHAIN_ID}`,
|
|
128
|
-
request: {
|
|
129
|
-
method: 'eth_sendTransaction',
|
|
130
|
-
params: [{
|
|
131
|
-
from: walletAddress,
|
|
132
|
-
to,
|
|
133
|
-
data,
|
|
134
|
-
value: '0x0',
|
|
135
|
-
}],
|
|
136
|
-
},
|
|
137
|
-
}));
|
|
138
|
-
}
|
|
139
|
-
catch (err) {
|
|
140
|
-
heartbeat.stop();
|
|
141
|
-
throw new Error(`Transaction rejected or failed: ${err.message}`);
|
|
142
|
-
}
|
|
143
|
-
heartbeat.stop();
|
|
144
|
-
await baseProvider.waitForTransaction(txHash, 1);
|
|
145
|
-
return txHash;
|
|
146
|
-
}
|
|
147
122
|
export function registerDepositCommand(program) {
|
|
148
123
|
program
|
|
149
124
|
.command('deposit')
|
|
150
|
-
.description('Deposit tokens from Base to JasperVault (
|
|
125
|
+
.description('Deposit tokens from Base to JasperVault (PRIVATE_KEY for direct signing, otherwise hosted web page)')
|
|
151
126
|
.requiredOption('--token <symbol>', 'Token: jbtc | jusdc | cbbtc | usdc')
|
|
152
127
|
.requiredOption('--amount <value>', 'Amount in human-readable units, e.g. "1000" for JUSDC')
|
|
153
128
|
.option('--network <name>', 'Network for vault address computation', 'jaspervault')
|
|
154
129
|
.option('--vault-index <n>', 'Vault index for computing recipient', '1')
|
|
155
|
-
.option('--timeout <seconds>', '
|
|
130
|
+
.option('--timeout <seconds>', 'Polling timeout in seconds', '900')
|
|
156
131
|
.option('--no-wait', 'Skip polling for arrival on JasperVault')
|
|
157
132
|
.option('--pretty', 'Pretty-print JSON output')
|
|
158
133
|
.action(async (opts) => {
|
|
159
134
|
const privateKey = process.env.PRIVATE_KEY;
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
const
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
printJson({
|
|
176
|
-
status: 'awaiting_connection',
|
|
177
|
-
qrCodeUrl,
|
|
178
|
-
uri,
|
|
179
|
-
message: 'Scan QR code or paste URI in wallet to connect',
|
|
180
|
-
}, opts.pretty);
|
|
181
|
-
},
|
|
182
|
-
});
|
|
135
|
+
if (privateKey) {
|
|
136
|
+
// ── PRIVATE_KEY mode: sign and send directly ──
|
|
137
|
+
const walletAddress = new Wallet(privateKey).address;
|
|
138
|
+
const warpConfig = getWarpConfig(opts.token);
|
|
139
|
+
const baseRpc = getBaseRpcUrl();
|
|
140
|
+
const jaspervaultRpc = getJaspervaultRpcUrl();
|
|
141
|
+
const net = getNetworkConfig(opts.network);
|
|
142
|
+
const baseProvider = new JsonRpcProvider(baseRpc);
|
|
143
|
+
const jaspervaultProvider = new JsonRpcProvider(jaspervaultRpc);
|
|
144
|
+
const vaultIndex = parseInt(opts.vaultIndex, 10);
|
|
145
|
+
const recipient = await computeVaultAddress(jaspervaultProvider, net.contracts.vaultFactory, walletAddress, vaultIndex);
|
|
146
|
+
const amountWei = parseUnits(opts.amount, warpConfig.decimals);
|
|
147
|
+
const { hasEnough, needsApprove } = await checkDepositBalances(baseProvider, walletAddress, warpConfig, amountWei);
|
|
148
|
+
if (!hasEnough) {
|
|
149
|
+
exitWithError(`Insufficient balance. Required: ${opts.amount} ${warpConfig.symbol}`, EXIT_CODES.BUSINESS_ERROR);
|
|
183
150
|
}
|
|
184
|
-
|
|
185
|
-
printJson({ success: false, message: err.message }, opts.pretty);
|
|
186
|
-
process.exit(EXIT_CODES.BUSINESS_ERROR);
|
|
187
|
-
}
|
|
188
|
-
wcClient = wcResult.client;
|
|
189
|
-
wcSession = wcResult.session;
|
|
190
|
-
walletAddress = wcResult.walletAddress;
|
|
191
|
-
}
|
|
192
|
-
const warpConfig = getWarpConfig(opts.token);
|
|
193
|
-
const baseRpc = getBaseRpcUrl();
|
|
194
|
-
const jaspervaultRpc = getJaspervaultRpcUrl();
|
|
195
|
-
const net = getNetworkConfig(opts.network);
|
|
196
|
-
const baseProvider = new JsonRpcProvider(baseRpc);
|
|
197
|
-
const jaspervaultProvider = new JsonRpcProvider(jaspervaultRpc);
|
|
198
|
-
// Step 2: compute vault address + check balance
|
|
199
|
-
const vaultIndex = parseInt(opts.vaultIndex, 10);
|
|
200
|
-
const recipient = await computeVaultAddress(jaspervaultProvider, net.contracts.vaultFactory, walletAddress, vaultIndex);
|
|
201
|
-
const amountWei = parseUnits(opts.amount, warpConfig.decimals);
|
|
202
|
-
const { hasEnough, needsApprove } = await checkDepositBalances(baseProvider, walletAddress, warpConfig, amountWei);
|
|
203
|
-
if (!hasEnough) {
|
|
204
|
-
exitWithError(`Insufficient balance. Required: ${opts.amount} ${warpConfig.symbol}`, EXIT_CODES.BUSINESS_ERROR);
|
|
205
|
-
}
|
|
206
|
-
let transferTxHash;
|
|
207
|
-
const transferStartTime = Date.now();
|
|
208
|
-
if (mode === 'pk') {
|
|
209
|
-
// Step 3 & 4 (PK): sign and send directly
|
|
151
|
+
const transferStartTime = Date.now();
|
|
210
152
|
const wallet = new Wallet(privateKey, baseProvider);
|
|
211
153
|
const underlyingToken = new Contract(warpConfig.base.underlyingToken, ERC20_ABI, wallet);
|
|
212
154
|
const warpRouter = new Contract(warpConfig.base.warpRouter, HYP_ERC20_ABI, wallet);
|
|
@@ -217,57 +159,119 @@ export function registerDepositCommand(program) {
|
|
|
217
159
|
const recipientBytes32 = zeroPadValue(recipient, 32);
|
|
218
160
|
const tx = await warpRouter.transferRemote(warpConfig.jaspervault.domain, recipientBytes32, amountWei, { value: 0n });
|
|
219
161
|
const receipt = await tx.wait(1);
|
|
220
|
-
transferTxHash = receipt.hash;
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
162
|
+
const transferTxHash = receipt.hash;
|
|
163
|
+
const baseChainConfirmTimeMs = Date.now() - transferStartTime;
|
|
164
|
+
const result = {
|
|
165
|
+
success: true,
|
|
166
|
+
message: 'Deposit transaction confirmed on Base',
|
|
167
|
+
transactionHash: transferTxHash,
|
|
168
|
+
recipient,
|
|
169
|
+
token: warpConfig.symbol,
|
|
170
|
+
amount: opts.amount,
|
|
171
|
+
baseChainConfirmTimeMs,
|
|
172
|
+
};
|
|
173
|
+
if (opts.wait) {
|
|
174
|
+
let initialBalance = 0n;
|
|
175
|
+
try {
|
|
176
|
+
const destWarpRouter = new Contract(warpConfig.jaspervault.warpRouter, ERC20_ABI, jaspervaultProvider);
|
|
177
|
+
initialBalance = await destWarpRouter.balanceOf(recipient);
|
|
178
|
+
}
|
|
179
|
+
catch {
|
|
180
|
+
// ignore
|
|
181
|
+
}
|
|
182
|
+
const { arrived, arrivalTimeMs } = await pollForDepositArrival(jaspervaultProvider, warpConfig.jaspervault.warpRouter, recipient, initialBalance, POLL_TIMEOUT_MS);
|
|
183
|
+
result.arrived = arrived;
|
|
184
|
+
result.arrivalTimeMs = arrivalTimeMs;
|
|
185
|
+
if (!arrived) {
|
|
186
|
+
result.message =
|
|
187
|
+
'Deposit confirmed on Base; tokens may still be in transit to JasperVault';
|
|
188
|
+
}
|
|
227
189
|
}
|
|
228
|
-
|
|
229
|
-
|
|
190
|
+
printJson(result, opts.pretty);
|
|
191
|
+
return;
|
|
230
192
|
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
193
|
+
// ── Hosted web page mode (no PRIVATE_KEY) ──
|
|
194
|
+
const profile = loadVaultProfile(opts.network) ?? loadVaultProfile();
|
|
195
|
+
if (!profile) {
|
|
196
|
+
exitWithError('Vault profile not found. Run "jv vault setup" first.', EXIT_CODES.CONFIG_ERROR);
|
|
197
|
+
}
|
|
198
|
+
const warpConfig = getWarpConfig(opts.token);
|
|
199
|
+
const net = getNetworkConfig(opts.network);
|
|
200
|
+
const jaspervaultRpc = getJaspervaultRpcUrl();
|
|
201
|
+
const jaspervaultProvider = new JsonRpcProvider(jaspervaultRpc);
|
|
202
|
+
const vaultIndex = parseInt(opts.vaultIndex, 10);
|
|
203
|
+
const recipient = await computeVaultAddress(jaspervaultProvider, net.contracts.vaultFactory, profile.eoa, vaultIndex);
|
|
204
|
+
const config = loadConfig();
|
|
205
|
+
const apiClient = new ApiClient(config);
|
|
206
|
+
const sessionBody = {
|
|
207
|
+
type: 'deposit',
|
|
208
|
+
network: opts.network,
|
|
209
|
+
chainId: net.chainId,
|
|
238
210
|
token: warpConfig.symbol,
|
|
239
211
|
amount: opts.amount,
|
|
240
|
-
|
|
212
|
+
recipient,
|
|
213
|
+
warpConfig: {
|
|
214
|
+
symbol: warpConfig.symbol,
|
|
215
|
+
decimals: warpConfig.decimals,
|
|
216
|
+
base: warpConfig.base,
|
|
217
|
+
jaspervault: warpConfig.jaspervault,
|
|
218
|
+
},
|
|
241
219
|
};
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
const destWarpRouter = new Contract(warpConfig.jaspervault.warpRouter, ERC20_ABI, jaspervaultProvider);
|
|
246
|
-
initialBalance = await destWarpRouter.balanceOf(recipient);
|
|
247
|
-
}
|
|
248
|
-
catch {
|
|
249
|
-
// ignore
|
|
250
|
-
}
|
|
251
|
-
const { arrived, arrivalTimeMs } = await pollForDepositArrival(jaspervaultProvider, warpConfig.jaspervault.warpRouter, recipient, initialBalance, POLL_TIMEOUT_MS);
|
|
252
|
-
result.arrived = arrived;
|
|
253
|
-
result.arrivalTimeMs = arrivalTimeMs;
|
|
254
|
-
if (!arrived) {
|
|
255
|
-
result.message =
|
|
256
|
-
'Deposit confirmed on Base; tokens may still be in transit to JasperVault';
|
|
257
|
-
}
|
|
220
|
+
let sessionRes;
|
|
221
|
+
try {
|
|
222
|
+
sessionRes = await apiClient.post(ENDPOINTS.CLI_SESSION_CREATE, sessionBody);
|
|
258
223
|
}
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
224
|
+
catch (err) {
|
|
225
|
+
exitWithError(`Failed to create deposit session: ${err.message}`, EXIT_CODES.HTTP_ERROR);
|
|
226
|
+
}
|
|
227
|
+
const { sessionId, url, expiresAt } = sessionRes.data;
|
|
228
|
+
printJson({
|
|
229
|
+
status: 'session_created',
|
|
230
|
+
sessionId,
|
|
231
|
+
url,
|
|
232
|
+
expiresAt,
|
|
233
|
+
message: `Open this URL to deposit ${opts.amount} ${warpConfig.symbol}`,
|
|
234
|
+
token: warpConfig.symbol,
|
|
235
|
+
amount: opts.amount,
|
|
236
|
+
recipient,
|
|
237
|
+
}, opts.pretty);
|
|
238
|
+
const timeoutMs = parseInt(opts.timeout, 10) * 1000 || 900_000;
|
|
239
|
+
const result = await pollSession(apiClient, sessionId, { timeoutMs });
|
|
240
|
+
if (result.status === 'completed' && result.result) {
|
|
241
|
+
const depositResult = {
|
|
242
|
+
success: true,
|
|
243
|
+
message: 'Deposit transaction confirmed on Base',
|
|
244
|
+
transactionHash: result.result.txHash,
|
|
245
|
+
recipient,
|
|
246
|
+
token: warpConfig.symbol,
|
|
247
|
+
amount: opts.amount,
|
|
248
|
+
};
|
|
249
|
+
if (opts.wait) {
|
|
250
|
+
let initialBalance = 0n;
|
|
251
|
+
try {
|
|
252
|
+
const destWarpRouter = new Contract(warpConfig.jaspervault.warpRouter, ERC20_ABI, jaspervaultProvider);
|
|
253
|
+
initialBalance = await destWarpRouter.balanceOf(recipient);
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
// ignore
|
|
257
|
+
}
|
|
258
|
+
const { arrived, arrivalTimeMs } = await pollForDepositArrival(jaspervaultProvider, warpConfig.jaspervault.warpRouter, recipient, initialBalance, POLL_TIMEOUT_MS);
|
|
259
|
+
depositResult.arrived = arrived;
|
|
260
|
+
depositResult.arrivalTimeMs = arrivalTimeMs;
|
|
261
|
+
if (!arrived) {
|
|
262
|
+
depositResult.message =
|
|
263
|
+
'Deposit confirmed on Base; tokens may still be in transit to JasperVault';
|
|
264
|
+
}
|
|
270
265
|
}
|
|
266
|
+
printJson(depositResult, opts.pretty);
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
printJson({
|
|
270
|
+
success: false,
|
|
271
|
+
message: `Deposit session ${result.status}`,
|
|
272
|
+
error: result.result?.errorMessage || 'Session did not complete',
|
|
273
|
+
}, opts.pretty);
|
|
274
|
+
process.exit(EXIT_CODES.BUSINESS_ERROR);
|
|
271
275
|
}
|
|
272
276
|
});
|
|
273
277
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deposit.js","sourceRoot":"","sources":["../../../src/commands/deposit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deposit.js","sourceRoot":"","sources":["../../../src/commands/deposit.ts"],"names":[],"mappings":"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"}
|