@dfm-fi/agent 0.2.528 → 0.2.532

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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=timelock-smoke.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timelock-smoke.d.ts","sourceRoot":"","sources":["../../src/examples/timelock-smoke.ts"],"names":[],"mappings":""}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * TIMELOCK SMOKE — proves the v.530 core redeploy end-to-end with the 6VCH test
3
+ * wallet against the LIVE mainnet API:
4
+ *
5
+ * 1. launch_vault (fresh vault on the NEW factory — rebalancer auto-inits)
6
+ * 2. deposit ~$11 (zap-v2 via the NEW dtf-zapper)
7
+ * 3. wait ~12s
8
+ * 4. update_vault_assets (flip the weights) → MUST succeed (no 0x179e
9
+ * ConfigTimelocked) → proves the on-chain config timelock is now 10s, not 24h.
10
+ *
11
+ * ⚠️ REAL FUNDS on mainnet. Requires DFM_AGENT_WRITE_ENABLED=true + HELIUS_RPC_URL
12
+ * + a funded, allowlisted keypair (6VCH needs ~0.15 SOL + ~$12 USDC).
13
+ *
14
+ * DFM_API_URL=https://n2-api.dfm.finance \
15
+ * HELIUS_RPC_URL=… \
16
+ * DFM_AGENT_KEYPAIR_PATH=$HOME/.config/dfm/test-6vch.json \
17
+ * DFM_AGENT_WRITE_ENABLED=true \
18
+ * npx tsx src/examples/timelock-smoke.ts
19
+ */
20
+ import { loadConfig } from '../config.js';
21
+ import { SiwsSession } from '../session.js';
22
+ import { DfmApiClient } from '../api-client.js';
23
+ import { runLaunchVault } from '../create-flow.js';
24
+ import { runDeposit } from '../zap-v2-flow.js';
25
+ import { runUpdateVaultAssets } from '../manager-flow.js';
26
+ // Registered + Pyth-mapped mints with fresh sponsored feeds + Jupiter liquidity.
27
+ const ETH = '7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs';
28
+ const JUP = 'JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN';
29
+ const BASKET = {
30
+ name: 'Timelock Smoke',
31
+ symbol: 'TLSMOKE',
32
+ dtfType: 'index',
33
+ category: 255,
34
+ managementFeeBps: 0,
35
+ exitFeeBps: 100,
36
+ assets: [
37
+ { mint: ETH, symbol: 'ETH', mintBps: 5000 },
38
+ { mint: JUP, symbol: 'JUP', mintBps: 5000 },
39
+ ],
40
+ };
41
+ const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
42
+ async function main() {
43
+ const config = loadConfig();
44
+ const session = new SiwsSession(config);
45
+ const api = new DfmApiClient(config, session);
46
+ const depositRaw = process.env.DEPOSIT_USDC_RAW ?? '11000000'; // $11
47
+ console.log(`API: ${config.apiUrl} (${config.cluster})`);
48
+ console.log(`Write: ${config.writeEnabled ? 'ENABLED (real funds)' : 'OFF (dry-run)'}`);
49
+ if (!config.writeEnabled) {
50
+ console.error('Refusing: set DFM_AGENT_WRITE_ENABLED=true to run the funded smoke.');
51
+ process.exit(1);
52
+ }
53
+ if (!config.rpcUrl) {
54
+ console.error('Refusing: write ON but no RPC. Set HELIUS_RPC_URL.');
55
+ process.exit(1);
56
+ }
57
+ const wallet = session.walletAddress;
58
+ console.log(`Wallet: ${wallet}`);
59
+ const gate = await api.getAccessStatus(wallet);
60
+ console.log(`Access: enabled=${gate.enabled} allowed=${gate.allowed}`);
61
+ // 1. LAUNCH (new factory; create bundles initialize_rebalancer).
62
+ console.log('\n→ 1/4 LAUNCH…');
63
+ const launch = await runLaunchVault(config, api, BASKET);
64
+ console.log(JSON.stringify(launch, null, 2));
65
+ if (!launch.ok) {
66
+ console.error('Launch failed — stopping.');
67
+ process.exit(1);
68
+ }
69
+ const vault = launch.vault;
70
+ // 2. DEPOSIT (zap-v2 via the new zapper).
71
+ console.log(`\n→ 2/4 DEPOSIT ${depositRaw} raw USDC into ${vault}…`);
72
+ const dep = await runDeposit(config, api, wallet, vault, depositRaw);
73
+ console.log(JSON.stringify(dep, null, 2));
74
+ // 3. WAIT past the 10s closed-test config timelock.
75
+ console.log('\n→ 3/4 waiting 12s for the 10s config timelock to clear…');
76
+ const t0 = Date.now();
77
+ await sleep(12_000);
78
+ console.log(` waited ${((Date.now() - t0) / 1000).toFixed(0)}s`);
79
+ // 4. WEIGHT CHANGE — the timelock proof. Flip 50/50 → 60/40.
80
+ console.log('\n→ 4/4 update_vault_assets (flip weights 60/40) — must NOT revert 0x179e…');
81
+ const upd = await runUpdateVaultAssets(config, api, vault, [
82
+ { mint: ETH, symbol: 'ETH', mintBps: 6000 },
83
+ { mint: JUP, symbol: 'JUP', mintBps: 4000 },
84
+ ]);
85
+ console.log(JSON.stringify(upd, null, 2));
86
+ console.log(upd.ok
87
+ ? `\n✅ TIMELOCK FIX PROVEN — weights changed ~12s after create (no ConfigTimelocked). Vault ${vault}.`
88
+ : '\n✗ weight change did not complete — see message above.');
89
+ }
90
+ main().catch((e) => { console.error('SMOKE FAILED:', e?.message ?? e); process.exit(1); });
91
+ //# sourceMappingURL=timelock-smoke.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timelock-smoke.js","sourceRoot":"","sources":["../../src/examples/timelock-smoke.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dfm-fi/agent",
3
- "version": "0.2.528",
3
+ "version": "0.2.532",
4
4
  "description": "DFM v2 MCP server — drive the full DTF launch → deposit → redeem (+ manage) lifecycle from an AI agent against the live API.",
5
5
  "type": "module",
6
6
  "bin": {