@dfm-fi/agent 0.2.706 → 0.2.715
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/dist/create-flow.d.ts +25 -0
- package/dist/create-flow.d.ts.map +1 -1
- package/dist/create-flow.js +59 -19
- package/dist/create-flow.js.map +1 -1
- package/dist/create-flow.metadata.test.d.ts +2 -0
- package/dist/create-flow.metadata.test.d.ts.map +1 -0
- package/dist/create-flow.metadata.test.js +100 -0
- package/dist/create-flow.metadata.test.js.map +1 -0
- package/dist/manager-flow.d.ts +12 -2
- package/dist/manager-flow.d.ts.map +1 -1
- package/dist/manager-flow.js +48 -5
- package/dist/manager-flow.js.map +1 -1
- package/dist/manager-flow.reconfigure.test.d.ts +2 -0
- package/dist/manager-flow.reconfigure.test.d.ts.map +1 -0
- package/dist/manager-flow.reconfigure.test.js +153 -0
- package/dist/manager-flow.reconfigure.test.js.map +1 -0
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +8 -2
- package/dist/mcp-server.js.map +1 -1
- package/dist/zap-v2-flow.d.ts +13 -0
- package/dist/zap-v2-flow.d.ts.map +1 -1
- package/dist/zap-v2-flow.js +71 -18
- package/dist/zap-v2-flow.js.map +1 -1
- package/dist/zap-v2-flow.pending.test.d.ts +2 -0
- package/dist/zap-v2-flow.pending.test.d.ts.map +1 -0
- package/dist/zap-v2-flow.pending.test.js +119 -0
- package/dist/zap-v2-flow.pending.test.js.map +1 -0
- package/package.json +1 -1
package/dist/create-flow.d.ts
CHANGED
|
@@ -23,6 +23,8 @@
|
|
|
23
23
|
import type { AgentConfig } from './config.js';
|
|
24
24
|
import type { DfmApiClient } from './api-client.js';
|
|
25
25
|
import type { CreateAssetInput } from './types.js';
|
|
26
|
+
import { signBase64Transaction } from './signing.js';
|
|
27
|
+
import { submitSignedTx, submitViaBackendConfirmed } from './submit.js';
|
|
26
28
|
export interface LaunchVaultParams {
|
|
27
29
|
name: string;
|
|
28
30
|
symbol: string;
|
|
@@ -44,8 +46,31 @@ export interface LaunchVaultResult {
|
|
|
44
46
|
confirmError?: string;
|
|
45
47
|
/** board #47: tx sig of the share-mint Metaplex metadata attach (undefined if it was skipped/failed — non-fatal). */
|
|
46
48
|
metadataSignature?: string;
|
|
49
|
+
/** board #47: the reason the metadata attach failed (surfaced, not swallowed) so the operator can retry. */
|
|
50
|
+
metadataError?: string;
|
|
47
51
|
message: string;
|
|
48
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* #47 — attach Metaplex name/symbol/uri to a vault's share mint so explorers/
|
|
55
|
+
* wallets show the DTF instead of "SPL Token". Uses the SAME dual submit path as
|
|
56
|
+
* the create tx (backend-confirmed when no client RPC, else direct).
|
|
57
|
+
*
|
|
58
|
+
* 🐛 THE BUG this fixes: the prior inline version called `submitSignedTx` directly,
|
|
59
|
+
* which THROWS when `config.rpcUrl` is unset — but the MCP's DEFAULT is backend
|
|
60
|
+
* mode (no RPC) — and the throw was swallowed, so EVERY agent-launched vault's
|
|
61
|
+
* share token shipped with no name/ticker. Now it backend-submits via the
|
|
62
|
+
* `preparedTxId`, retries transient failures, and SURFACES the error. Idempotent
|
|
63
|
+
* (a re-attach reverts "already in use" = already attached). Non-fatal to launch.
|
|
64
|
+
* `_deps` injects sign/submit for tests; real defaults → production unchanged.
|
|
65
|
+
*/
|
|
66
|
+
export declare function attachShareMintMetadata(config: AgentConfig, api: DfmApiClient, vaultAddress: string, _deps?: {
|
|
67
|
+
signBase64Transaction?: typeof signBase64Transaction;
|
|
68
|
+
submitViaBackendConfirmed?: typeof submitViaBackendConfirmed;
|
|
69
|
+
submitSignedTx?: typeof submitSignedTx;
|
|
70
|
+
}): Promise<{
|
|
71
|
+
signature?: string;
|
|
72
|
+
error?: string;
|
|
73
|
+
}>;
|
|
49
74
|
/**
|
|
50
75
|
* Validate the basket client-side BEFORE hitting the network — fast, clear
|
|
51
76
|
* failures the agent can fix without a round-trip. (The API re-validates
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-flow.d.ts","sourceRoot":"","sources":["../src/create-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"create-flow.d.ts","sourceRoot":"","sources":["../src/create-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qHAAqH;IACrH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4GAA4G;IAC5G,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,YAAY,EACjB,YAAY,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE;IACN,qBAAqB,CAAC,EAAE,OAAO,qBAAqB,CAAC;IACrD,yBAAyB,CAAC,EAAE,OAAO,yBAAyB,CAAC;IAC7D,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;CACxC,GACA,OAAO,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA0CjD;AAID;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAsBpE;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAoG5B"}
|
package/dist/create-flow.js
CHANGED
|
@@ -1,5 +1,54 @@
|
|
|
1
1
|
import { signBase64Transaction } from './signing.js';
|
|
2
2
|
import { submitSignedTx, submitViaBackendConfirmed } from './submit.js';
|
|
3
|
+
/**
|
|
4
|
+
* #47 — attach Metaplex name/symbol/uri to a vault's share mint so explorers/
|
|
5
|
+
* wallets show the DTF instead of "SPL Token". Uses the SAME dual submit path as
|
|
6
|
+
* the create tx (backend-confirmed when no client RPC, else direct).
|
|
7
|
+
*
|
|
8
|
+
* 🐛 THE BUG this fixes: the prior inline version called `submitSignedTx` directly,
|
|
9
|
+
* which THROWS when `config.rpcUrl` is unset — but the MCP's DEFAULT is backend
|
|
10
|
+
* mode (no RPC) — and the throw was swallowed, so EVERY agent-launched vault's
|
|
11
|
+
* share token shipped with no name/ticker. Now it backend-submits via the
|
|
12
|
+
* `preparedTxId`, retries transient failures, and SURFACES the error. Idempotent
|
|
13
|
+
* (a re-attach reverts "already in use" = already attached). Non-fatal to launch.
|
|
14
|
+
* `_deps` injects sign/submit for tests; real defaults → production unchanged.
|
|
15
|
+
*/
|
|
16
|
+
export async function attachShareMintMetadata(config, api, vaultAddress, _deps) {
|
|
17
|
+
const sign = _deps?.signBase64Transaction ?? signBase64Transaction;
|
|
18
|
+
const backendSubmit = _deps?.submitViaBackendConfirmed ?? submitViaBackendConfirmed;
|
|
19
|
+
const directSubmit = _deps?.submitSignedTx ?? submitSignedTx;
|
|
20
|
+
let signature;
|
|
21
|
+
let error;
|
|
22
|
+
for (let attempt = 1; attempt <= 3 && !signature; attempt++) {
|
|
23
|
+
try {
|
|
24
|
+
const metaPrepared = await api.prepareCreateVaultMetadata(vaultAddress);
|
|
25
|
+
const metaSigned = sign(config, metaPrepared.transaction);
|
|
26
|
+
if (!config.rpcUrl) {
|
|
27
|
+
if (!metaPrepared.preparedTxId) {
|
|
28
|
+
throw new Error('No preparedTxId on metadata/prepare — cannot backend-submit (set HELIUS_RPC_URL for direct submit).');
|
|
29
|
+
}
|
|
30
|
+
const { signature: sig, confirmed } = await backendSubmit({ api, preparedTxId: metaPrepared.preparedTxId }, metaSigned);
|
|
31
|
+
if (!confirmed)
|
|
32
|
+
throw new Error(`metadata tx ${sig} broadcast but did not confirm`);
|
|
33
|
+
signature = sig;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
signature = await directSubmit(config, metaSigned, metaPrepared.blockhash, metaPrepared.lastValidBlockHeight);
|
|
37
|
+
}
|
|
38
|
+
error = undefined;
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
error = e.message;
|
|
42
|
+
// Idempotent: a re-attach onto an existing metadata account reverts "already
|
|
43
|
+
// in use" — treat that as already-attached (clear the error, stop).
|
|
44
|
+
if (/already in use|already initialized|0x0\b|custom program error: 0x0/i.test(error)) {
|
|
45
|
+
error = undefined;
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return { signature, error };
|
|
51
|
+
}
|
|
3
52
|
const MAX_ASSETS = 15; // mainnet basket cap (zap-v2 OPEN tx ceiling)
|
|
4
53
|
/**
|
|
5
54
|
* Validate the basket client-side BEFORE hitting the network — fast, clear
|
|
@@ -92,23 +141,11 @@ export async function runLaunchVault(config, api, params) {
|
|
|
92
141
|
`or it will need a chain reconcile.`,
|
|
93
142
|
};
|
|
94
143
|
}
|
|
95
|
-
// 5. METADATA (board #47) — attach Metaplex name/symbol/uri to the share mint
|
|
96
|
-
//
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
// operator can re-run POST /vaults/:address/metadata/prepare later.
|
|
101
|
-
let metadataSignature;
|
|
102
|
-
try {
|
|
103
|
-
const metaPrepared = await api.prepareCreateVaultMetadata(prepared.vaultAddress);
|
|
104
|
-
const metaSigned = signBase64Transaction(config, metaPrepared.transaction);
|
|
105
|
-
metadataSignature = await submitSignedTx(config, metaSigned, metaPrepared.blockhash, metaPrepared.lastValidBlockHeight);
|
|
106
|
-
}
|
|
107
|
-
catch (e) {
|
|
108
|
-
// Swallow: metadata is cosmetic, the launch already succeeded.
|
|
109
|
-
metadataSignature = undefined;
|
|
110
|
-
void e;
|
|
111
|
-
}
|
|
144
|
+
// 5. METADATA (board #47) — attach Metaplex name/symbol/uri to the share mint
|
|
145
|
+
// (the dual-submit fix lives in attachShareMintMetadata; non-fatal + surfaced).
|
|
146
|
+
const meta = await attachShareMintMetadata(config, api, prepared.vaultAddress);
|
|
147
|
+
const metadataSignature = meta.signature;
|
|
148
|
+
const metadataError = meta.error;
|
|
112
149
|
return {
|
|
113
150
|
ok: true,
|
|
114
151
|
vault: prepared.vaultAddress,
|
|
@@ -116,11 +153,14 @@ export async function runLaunchVault(config, api, params) {
|
|
|
116
153
|
vaultMint: prepared.vaultMint,
|
|
117
154
|
vaultIndex: prepared.vaultIndex,
|
|
118
155
|
metadataSignature,
|
|
156
|
+
metadataError,
|
|
119
157
|
message: `Vault "${params.name}" (${params.symbol}) launched: ${prepared.vaultAddress} ` +
|
|
120
158
|
`(index ${prepared.vaultIndex}). Recorded. ` +
|
|
121
159
|
(metadataSignature
|
|
122
|
-
? `Share-mint metadata attached (#47). `
|
|
123
|
-
:
|
|
160
|
+
? `Share-mint metadata attached (#47, tx ${metadataSignature.slice(0, 16)}…). `
|
|
161
|
+
: `⚠️ Share-mint metadata NOT attached${metadataError ? ` (${metadataError})` : ''} — ` +
|
|
162
|
+
`the share token will show no name/ticker. Retry by calling launch_vault's metadata step ` +
|
|
163
|
+
`again or POST /vaults/${prepared.vaultAddress}/metadata/prepare. `) +
|
|
124
164
|
`Fund the first deposit ≥ ~$12 to clear the $10 floor.`,
|
|
125
165
|
};
|
|
126
166
|
}
|
package/dist/create-flow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-flow.js","sourceRoot":"","sources":["../src/create-flow.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"create-flow.js","sourceRoot":"","sources":["../src/create-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-flow.metadata.test.d.ts","sourceRoot":"","sources":["../src/create-flow.metadata.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #47 regression (runnable: `npx tsx agent/src/create-flow.metadata.test.ts`).
|
|
3
|
+
*
|
|
4
|
+
* THE BUG: a vault launched via the MCP shipped with NO share-mint metadata
|
|
5
|
+
* ("SPL Token", no name/ticker). Root cause: the metadata attach called
|
|
6
|
+
* `submitSignedTx` directly, which THROWS when `config.rpcUrl` is unset — and the
|
|
7
|
+
* MCP's DEFAULT is backend-broadcast mode (no RPC) — and the throw was swallowed.
|
|
8
|
+
* So in backend mode the metadata tx could NEVER be submitted.
|
|
9
|
+
*
|
|
10
|
+
* This locks the fix: with no client RPC, `attachShareMintMetadata` must submit via
|
|
11
|
+
* the BACKEND path (the `preparedTxId`), NOT `submitSignedTx`; it must surface a
|
|
12
|
+
* missing-preparedTxId as an error (not silently lose it); and an "already in use"
|
|
13
|
+
* revert is idempotent (treated as already-attached, no error). sign/submit are
|
|
14
|
+
* injected so no real keypair/RPC is needed.
|
|
15
|
+
*/
|
|
16
|
+
import { attachShareMintMetadata } from './create-flow.js';
|
|
17
|
+
let failures = 0;
|
|
18
|
+
function assert(cond, msg) {
|
|
19
|
+
if (!cond) {
|
|
20
|
+
console.error(` ✗ ${msg}`);
|
|
21
|
+
failures++;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
console.log(` ✓ ${msg}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const VAULT = 'Vau1t1111111111111111111111111111111111111';
|
|
28
|
+
const sign = (_c, t) => t; // no real keypair
|
|
29
|
+
async function caseBackendPath() {
|
|
30
|
+
console.log('case: no client RPC → backend-submit via preparedTxId (NOT submitSignedTx)');
|
|
31
|
+
let directCalled = 0;
|
|
32
|
+
let backendCalled = 0;
|
|
33
|
+
const api = {
|
|
34
|
+
prepareCreateVaultMetadata: async () => ({
|
|
35
|
+
transaction: 'BASE64TX',
|
|
36
|
+
blockhash: 'bh',
|
|
37
|
+
lastValidBlockHeight: 1,
|
|
38
|
+
preparedTxId: 'pid-123',
|
|
39
|
+
}),
|
|
40
|
+
};
|
|
41
|
+
const res = await attachShareMintMetadata({ rpcUrl: undefined }, api, VAULT, {
|
|
42
|
+
signBase64Transaction: sign,
|
|
43
|
+
submitViaBackendConfirmed: (async (opts) => {
|
|
44
|
+
backendCalled++;
|
|
45
|
+
assert(opts.preparedTxId === 'pid-123', 'backend got the preparedTxId');
|
|
46
|
+
return { signature: 'metaSig', confirmed: true };
|
|
47
|
+
}),
|
|
48
|
+
submitSignedTx: (async () => {
|
|
49
|
+
directCalled++;
|
|
50
|
+
throw new Error('submitSignedTx must NOT be called in backend mode (the old bug)');
|
|
51
|
+
}),
|
|
52
|
+
});
|
|
53
|
+
assert(res.signature === 'metaSig', `returns the metadata signature (got '${res.signature}')`);
|
|
54
|
+
assert(res.error === undefined, 'no error');
|
|
55
|
+
assert(backendCalled === 1, 'backend submit called once');
|
|
56
|
+
assert(directCalled === 0, 'submitSignedTx was NOT called');
|
|
57
|
+
}
|
|
58
|
+
async function caseNoPreparedTxId() {
|
|
59
|
+
console.log('case: no RPC + no preparedTxId → surfaced error, not a silent loss');
|
|
60
|
+
const api = {
|
|
61
|
+
prepareCreateVaultMetadata: async () => ({
|
|
62
|
+
transaction: 'BASE64TX',
|
|
63
|
+
blockhash: 'bh',
|
|
64
|
+
lastValidBlockHeight: 1,
|
|
65
|
+
// preparedTxId missing
|
|
66
|
+
}),
|
|
67
|
+
};
|
|
68
|
+
const res = await attachShareMintMetadata({ rpcUrl: undefined }, api, VAULT, { signBase64Transaction: sign });
|
|
69
|
+
assert(res.signature === undefined, 'no signature');
|
|
70
|
+
assert(!!res.error && /preparedTxId/i.test(res.error), `error mentions preparedTxId (got '${res.error}')`);
|
|
71
|
+
}
|
|
72
|
+
async function caseIdempotent() {
|
|
73
|
+
console.log('case: "already in use" revert → treated as already-attached (no error)');
|
|
74
|
+
const api = {
|
|
75
|
+
prepareCreateVaultMetadata: async () => ({
|
|
76
|
+
transaction: 'BASE64TX',
|
|
77
|
+
blockhash: 'bh',
|
|
78
|
+
lastValidBlockHeight: 1,
|
|
79
|
+
preparedTxId: 'pid-123',
|
|
80
|
+
}),
|
|
81
|
+
};
|
|
82
|
+
const res = await attachShareMintMetadata({ rpcUrl: undefined }, api, VAULT, {
|
|
83
|
+
signBase64Transaction: sign,
|
|
84
|
+
submitViaBackendConfirmed: (async () => {
|
|
85
|
+
throw new Error('Allocate: account Address already in use');
|
|
86
|
+
}),
|
|
87
|
+
});
|
|
88
|
+
assert(res.error === undefined, `idempotent revert cleared the error (got '${res.error}')`);
|
|
89
|
+
}
|
|
90
|
+
(async () => {
|
|
91
|
+
await caseBackendPath();
|
|
92
|
+
await caseNoPreparedTxId();
|
|
93
|
+
await caseIdempotent();
|
|
94
|
+
if (failures > 0) {
|
|
95
|
+
console.error(`\n#47 regression FAILED (${failures} assertion(s))`);
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
console.log('\n#47 regression PASSED');
|
|
99
|
+
})();
|
|
100
|
+
//# sourceMappingURL=create-flow.metadata.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-flow.metadata.test.js","sourceRoot":"","sources":["../src/create-flow.metadata.test.ts"],"names":[],"mappings":"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"}
|
package/dist/manager-flow.d.ts
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
*/
|
|
21
21
|
import type { AgentConfig } from './config.js';
|
|
22
22
|
import type { DfmApiClient } from './api-client.js';
|
|
23
|
-
import type { CreateAssetInput, ReconfigureTargetInput } from './types.js';
|
|
23
|
+
import type { CreateAssetInput, ConvergeLegTx, ReconfigureTargetInput } from './types.js';
|
|
24
24
|
export interface UpdateAssetsResult {
|
|
25
25
|
ok: boolean;
|
|
26
26
|
vault: string;
|
|
@@ -127,5 +127,15 @@ export declare function runRebalanceToTargets(config: AgentConfig, api: DfmApiCl
|
|
|
127
127
|
* passes (`VaultAssetsNotDecommissioned`/`MintNotInBasket` avoided). A config
|
|
128
128
|
* change ALWAYS converges — never config-only.
|
|
129
129
|
*/
|
|
130
|
-
export declare function runReconfigure(config: AgentConfig, api: DfmApiClient, vault: string, targets: ReconfigureTargetInput[], maxSlippageBps?: number
|
|
130
|
+
export declare function runReconfigure(config: AgentConfig, api: DfmApiClient, vault: string, targets: ReconfigureTargetInput[], maxSlippageBps?: number, _deps?: {
|
|
131
|
+
submitConvergeLegs?: typeof submitConvergeLegs;
|
|
132
|
+
runUpdateVaultAssets?: typeof runUpdateVaultAssets;
|
|
133
|
+
}): Promise<ReconfigureResult>;
|
|
134
|
+
/**
|
|
135
|
+
* Sign + submit a list of pre-prepared converge legs (each its OWN blockhash)
|
|
136
|
+
* IN ORDER, sleeping the 5s on-chain rebalance cooldown between legs. Each leg is
|
|
137
|
+
* an admin-signed `execute_rebalance` (on-chain velocity-ceiling + min_out guarded, oracle-free).
|
|
138
|
+
*/
|
|
139
|
+
declare function submitConvergeLegs(config: AgentConfig, api: DfmApiClient, legs: ConvergeLegTx[], preparedTxIds?: string[]): Promise<string[]>;
|
|
140
|
+
export {};
|
|
131
141
|
//# sourceMappingURL=manager-flow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager-flow.d.ts","sourceRoot":"","sources":["../src/manager-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"manager-flow.d.ts","sourceRoot":"","sources":["../src/manager-flow.ts"],"names":[],"mappings":"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"}
|
package/dist/manager-flow.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { signBase64Transaction } from './signing.js';
|
|
2
|
-
import { submitSignedTx } from './submit.js';
|
|
2
|
+
import { submitSignedTx, BlockhashExpiredError } from './submit.js';
|
|
3
3
|
/** On-chain rebalance cooldown (5s) — keep a small margin so back-to-back legs
|
|
4
4
|
* never trip `HARD_MIN_REBALANCE_INTERVAL_SECS`. */
|
|
5
5
|
const REBALANCE_COOLDOWN_MS = 6_000;
|
|
@@ -168,12 +168,55 @@ export async function runRebalanceToTargets(config, api, vault, maxSlippageBps)
|
|
|
168
168
|
* passes (`VaultAssetsNotDecommissioned`/`MintNotInBasket` avoided). A config
|
|
169
169
|
* change ALWAYS converges — never config-only.
|
|
170
170
|
*/
|
|
171
|
-
export async function runReconfigure(config, api, vault, targets, maxSlippageBps
|
|
171
|
+
export async function runReconfigure(config, api, vault, targets, maxSlippageBps,
|
|
172
|
+
// TEST SEAM (production-unaffected): the two sub-steps that touch the real
|
|
173
|
+
// signing/RPC stack are injectable so the resumable-drain control flow can be
|
|
174
|
+
// unit-tested without a wallet or a validator. Both default to the real
|
|
175
|
+
// functions, so every production caller is byte-identical.
|
|
176
|
+
_deps) {
|
|
177
|
+
const submitLegs = _deps?.submitConvergeLegs ?? submitConvergeLegs;
|
|
178
|
+
const updateAssets = _deps?.runUpdateVaultAssets ?? runUpdateVaultAssets;
|
|
172
179
|
// Client-side guard mirrors the API + contract (Σ bps == 10000, ≤15, no dupes).
|
|
173
180
|
validateManagerBasket(targets.map((t) => ({ mint: t.mint, symbol: t.symbol, mintBps: t.allocationBps })));
|
|
174
181
|
const prepared = await api.prepareReconfigure(vault, targets, maxSlippageBps);
|
|
175
|
-
// (1) Drain the removed assets to ~0
|
|
176
|
-
|
|
182
|
+
// (1) Drain the removed assets to ~0, RESILIENT to mid-sequence blockhash expiry
|
|
183
|
+
// (#57 repro 3). The drain legs are pre-prepared with blockhashes from the
|
|
184
|
+
// same instant, but submit sequentially over ~50s+, so late legs could expire
|
|
185
|
+
// ("Blockhash not found") leaving a PARTIAL drain. That partial state is
|
|
186
|
+
// CONSISTENT + RESUMABLE — `update_vault_assets` (step 2) hasn't run, so the
|
|
187
|
+
// config is still the OLD basket — and `prepareReconfigure` is IDEMPOTENT
|
|
188
|
+
// (it recomputes drains from CURRENT holdings, skipping already-drained ~0
|
|
189
|
+
// legs). So on a transient expiry we re-prepare the REMAINING drains afresh
|
|
190
|
+
// and continue, instead of throwing a half-done reconfigure. A non-transient
|
|
191
|
+
// error (a real revert) is NOT retried — it surfaces the resumable guidance.
|
|
192
|
+
const drainSignatures = [];
|
|
193
|
+
let drainTxs = prepared.drainTxs;
|
|
194
|
+
let drainTxIds = prepared.preparedTxIds;
|
|
195
|
+
const MAX_DRAIN_ROUNDS = 4;
|
|
196
|
+
for (let round = 1; drainTxs.length > 0; round++) {
|
|
197
|
+
try {
|
|
198
|
+
const sigs = await submitLegs(config, api, drainTxs, drainTxIds);
|
|
199
|
+
drainSignatures.push(...sigs);
|
|
200
|
+
break; // all remaining drains landed
|
|
201
|
+
}
|
|
202
|
+
catch (e) {
|
|
203
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
204
|
+
const transient = e instanceof BlockhashExpiredError ||
|
|
205
|
+
/blockhash.*not found|block height exceeded|was not confirmed|expired/i.test(msg);
|
|
206
|
+
if (!transient || round >= MAX_DRAIN_ROUNDS) {
|
|
207
|
+
throw new Error(`${msg}\nReconfigure drain did not finish — but the basket CONFIG was NOT changed ` +
|
|
208
|
+
`(update_vault_assets runs only AFTER all drains), so holdings are consistent and this ` +
|
|
209
|
+
`is RESUMABLE: call reconfigure again (same targets) to drain the remainder, then it ` +
|
|
210
|
+
`proceeds. No rollback needed; no value left the basket.`);
|
|
211
|
+
}
|
|
212
|
+
// Transient expiry mid-sequence — re-prepare the REMAINING drains (fresh
|
|
213
|
+
// blockhashes) from current holdings and retry. Already-drained legs are ~0
|
|
214
|
+
// now, so the recomputed plan skips them.
|
|
215
|
+
const reprepared = await api.prepareReconfigure(vault, targets, maxSlippageBps);
|
|
216
|
+
drainTxs = reprepared.drainTxs;
|
|
217
|
+
drainTxIds = reprepared.preparedTxIds;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
177
220
|
// (2) Full-replace the basket targets. After the drains confirm, the removed
|
|
178
221
|
// mints hold ~0 so update_vault_assets accepts dropping them. Reuse the
|
|
179
222
|
// existing assets-prepare → sign → submit → confirm path.
|
|
@@ -182,7 +225,7 @@ export async function runReconfigure(config, api, vault, targets, maxSlippageBps
|
|
|
182
225
|
symbol: t.symbol,
|
|
183
226
|
mintBps: t.allocationBps,
|
|
184
227
|
}));
|
|
185
|
-
const updateRes = await
|
|
228
|
+
const updateRes = await updateAssets(config, api, vault, newAssets);
|
|
186
229
|
return {
|
|
187
230
|
ok: true,
|
|
188
231
|
vault,
|
package/dist/manager-flow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager-flow.js","sourceRoot":"","sources":["../src/manager-flow.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"manager-flow.js","sourceRoot":"","sources":["../src/manager-flow.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpE;qDACqD;AACrD,MAAM,qBAAqB,GAAG,KAAK,CAAC;AACpC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAE1E,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC,qDAAqD;AAuD5E;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA0B;IAC9D,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,cAAc,MAAM,CAAC,MAAM,gCAAgC,UAAU,GAAG,CACzE,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1D,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,yDAAyD,GAAG,IAAI;YAC9D,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAClE,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,+EAA+E;QAC/E,+EAA+E;QAC/E,iFAAiF;QACjF,kFAAkF;QAClF,iDAAiD;QACjD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC;YACxE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,wBAAwB,CAAC,CAAC,OAAO,sBAAsB,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAmB,EACnB,GAAiB,EACjB,KAAa,EACb,MAA0B;IAE1B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,MAAM,cAAc,CACpC,MAAM,EACN,MAAM,EACN,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,oBAAoB,EAC7B,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAC7C,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO;YACL,EAAE,EAAE,IAAI,EAAE,6DAA6D;YACvE,KAAK;YACL,SAAS;YACT,YAAY,EAAG,CAAW,CAAC,OAAO;YAClC,OAAO,EACL,gCAAgC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,yBAAyB;gBAC/E,WAAY,CAAW,CAAC,OAAO,+CAA+C;gBAC9E,4CAA4C;SAC/C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK;QACL,SAAS;QACT,OAAO,EACL,SAAS,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,0BAA0B,MAAM,CAAC,MAAM,YAAY;YAC7E,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI;KAClG,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAmB,EACnB,GAAiB,EACjB,KAAa,EACb,QAAgB;IAEhB,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,MAAM,cAAc,CACpC,MAAM,EACN,MAAM,EACN,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,oBAAoB,EAC7B,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAC7C,CAAC;IACF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK;QACL,SAAS;QACT,QAAQ;QACR,OAAO,EACL,qCAAqC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI;YACtF,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,2DAA2D;YACxF,4DAA4D;KAC/D,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAmB,EACnB,GAAiB,EACjB,KAAa;IAEb,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,MAAM,cAAc,CACpC,MAAM,EACN,MAAM,EACN,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,oBAAoB,EAC7B,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAC7C,CAAC;IACF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK;QACL,SAAS;QACT,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;QAC3C,OAAO,EACL,gCAAgC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM;YACtF,kCAAkC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG;YACpH,iDAAiD;KACpD,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAmB,EACnB,GAAiB,EACjB,KAAa,EACb,cAAuB;IAEvB,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,yBAAyB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAE5E,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO;YACL,EAAE,EAAE,IAAI;YACR,KAAK;YACL,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,EAAE;YACR,OAAO,EACL,SAAS,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,4DAA4D;gBACtF,sBAAsB;SACzB,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAEhG,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK;QACL,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;QAC9B,UAAU;QACV,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;SACzB,CAAC,CAAC;QACH,OAAO,EACL,mBAAmB,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,qCAAqC;YACzE,GAAG,UAAU,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,UAAU;YACtD,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YACtG,0EAA0E;KAC7E,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAmB,EACnB,GAAiB,EACjB,KAAa,EACb,OAAiC,EACjC,cAAuB;AACvB,2EAA2E;AAC3E,8EAA8E;AAC9E,wEAAwE;AACxE,2DAA2D;AAC3D,KAGC;IAED,MAAM,UAAU,GAAG,KAAK,EAAE,kBAAkB,IAAI,kBAAkB,CAAC;IACnE,MAAM,YAAY,GAAG,KAAK,EAAE,oBAAoB,IAAI,oBAAoB,CAAC;IAEzE,gFAAgF;IAChF,qBAAqB,CACnB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CACnF,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAE9E,iFAAiF;IACjF,+EAA+E;IAC/E,kFAAkF;IAClF,6EAA6E;IAC7E,iFAAiF;IACjF,8EAA8E;IAC9E,+EAA+E;IAC/E,gFAAgF;IAChF,iFAAiF;IACjF,iFAAiF;IACjF,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,IAAI,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACjC,IAAI,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC;IACxC,MAAM,gBAAgB,GAAG,CAAC,CAAC;IAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YACjE,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9B,MAAM,CAAC,8BAA8B;QACvC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,MAAM,SAAS,GACb,CAAC,YAAY,qBAAqB;gBAClC,uEAAuE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpF,IAAI,CAAC,SAAS,IAAI,KAAK,IAAI,gBAAgB,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CACb,GAAG,GAAG,6EAA6E;oBACjF,wFAAwF;oBACxF,sFAAsF;oBACtF,yDAAyD,CAC5D,CAAC;YACJ,CAAC;YACD,yEAAyE;YACzE,4EAA4E;YAC5E,0CAA0C;YAC1C,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;YAChF,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;YAC/B,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC;QACxC,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,wEAAwE;IACxE,0DAA0D;IAC1D,MAAM,SAAS,GAAuB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,OAAO,EAAE,CAAC,CAAC,aAAa;KACzB,CAAC,CAAC,CAAC;IACJ,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAEpE,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK;QACL,eAAe;QACf,IAAI,EAAE;YACJ,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC3B,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;YACjC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;SACtC;QACD,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,OAAO,EACL,sBAAsB,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,WAAW;YAChG,eAAe,eAAe,CAAC,MAAM,6BAA6B,OAAO,CAAC,MAAM,gBAAgB;YAChG,cAAc,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,kDAAkD;YAChG,sFAAsF;KACzF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,kBAAkB,CAC/B,MAAmB,EACnB,GAAiB,EACjB,IAAqB,EACrB,aAAwB;IAExB,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QAC9D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,cAAc,CAC9B,MAAM,EACN,MAAM,EACN,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,oBAAoB,EACxB,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAC1C,CAAC;YACF,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,MAAM,GACV,IAAI,CAAC,MAAM,GAAG,CAAC;gBACb,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK;gBAC9F,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,YAAY,KAAK;gBAAE,CAAC,CAAC,OAAO,GAAG,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;YACvD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager-flow.reconfigure.test.d.ts","sourceRoot":"","sources":["../src/manager-flow.reconfigure.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #57 reconfigure-drain resilience regression
|
|
3
|
+
* (runnable: `npx tsx agent/src/manager-flow.reconfigure.test.ts`).
|
|
4
|
+
*
|
|
5
|
+
* The agent package has no jest runner — this is a self-contained assertion
|
|
6
|
+
* script (exit 1 on failure), same pattern as `zap-v2-flow.pending.test.ts`.
|
|
7
|
+
*
|
|
8
|
+
* Locks the #57 (commit f99b870) `runReconfigure` drain control flow that shipped
|
|
9
|
+
* WITHOUT a named regression test. The fix makes the removed-asset DRAIN phase
|
|
10
|
+
* resilient to a mid-sequence blockhash expiry:
|
|
11
|
+
*
|
|
12
|
+
* CASE A (TRANSIENT → re-prep): a `BlockhashExpiredError` from `submitConvergeLegs`
|
|
13
|
+
* mid-sequence is RECOVERABLE — `update_vault_assets` (the basket drop) has NOT
|
|
14
|
+
* run yet, so holdings are consistent and `prepareReconfigure` is idempotent.
|
|
15
|
+
* The driver re-calls `prepareReconfigure` for the REMAINING drains (≤4 rounds)
|
|
16
|
+
* and continues. `update_vault_assets` runs exactly ONCE, only AFTER all drains.
|
|
17
|
+
*
|
|
18
|
+
* CASE B (NON-TRANSIENT → NO retry): a real revert (e.g. `0x1793`) is NOT retried
|
|
19
|
+
* — `prepareReconfigure` is called exactly ONCE (no double-drain), `runReconfigure`
|
|
20
|
+
* rejects, and the error message contains "RESUMABLE" guidance.
|
|
21
|
+
*
|
|
22
|
+
* To drive `submitConvergeLegs`'s outcome without the real signing/RPC stack, the
|
|
23
|
+
* test uses the minimal `_deps` seam added to `runReconfigure` (injectable
|
|
24
|
+
* `submitConvergeLegs` + `runUpdateVaultAssets`, both defaulting to the real fns so
|
|
25
|
+
* production is byte-identical).
|
|
26
|
+
*/
|
|
27
|
+
import { runReconfigure } from './manager-flow.js';
|
|
28
|
+
import { BlockhashExpiredError } from './submit.js';
|
|
29
|
+
const VAULT = 'Vau1t1111111111111111111111111111111111111';
|
|
30
|
+
// Two real-ish mints; allocations must sum to 10000 (validateManagerBasket).
|
|
31
|
+
const MINT_KEEP = 'So11111111111111111111111111111111111111112';
|
|
32
|
+
const MINT_ADD = 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v';
|
|
33
|
+
const TARGETS = [
|
|
34
|
+
{ mint: MINT_KEEP, symbol: 'SOL', allocationBps: 6000 },
|
|
35
|
+
{ mint: MINT_ADD, symbol: 'USDC', allocationBps: 4000 },
|
|
36
|
+
];
|
|
37
|
+
function drainLeg(i) {
|
|
38
|
+
return {
|
|
39
|
+
kind: 'drain',
|
|
40
|
+
inputMint: `Drain${i}1111111111111111111111111111111111111`.slice(0, 43),
|
|
41
|
+
outputMint: MINT_ADD,
|
|
42
|
+
amountIn: '1000000',
|
|
43
|
+
minOut: '0',
|
|
44
|
+
valueUsdc: 1,
|
|
45
|
+
slippageBps: 300,
|
|
46
|
+
transaction: 'AA==',
|
|
47
|
+
blockhash: '11111111111111111111111111111111',
|
|
48
|
+
lastValidBlockHeight: 1,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function reconfigureResponse(drainTxs) {
|
|
52
|
+
return {
|
|
53
|
+
vaultAddress: VAULT,
|
|
54
|
+
gavUsdc: 100,
|
|
55
|
+
plan: {
|
|
56
|
+
diff: { reweight: [], add: [MINT_ADD], remove: ['DriX'], isCompositionChange: true },
|
|
57
|
+
steps: [],
|
|
58
|
+
reweight: [],
|
|
59
|
+
maxSlippageBps: 300,
|
|
60
|
+
gavUsdc: 100,
|
|
61
|
+
},
|
|
62
|
+
drainTxs,
|
|
63
|
+
transactions: drainTxs.map((d) => d.transaction),
|
|
64
|
+
preparedTxIds: drainTxs.map((_, i) => `prep-${i}`),
|
|
65
|
+
note: '',
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
let failures = 0;
|
|
69
|
+
function assert(cond, msg) {
|
|
70
|
+
if (!cond) {
|
|
71
|
+
console.error(` ✗ ${msg}`);
|
|
72
|
+
failures++;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
console.log(` ✓ ${msg}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
async function caseTransient() {
|
|
79
|
+
console.log('case A: TRANSIENT blockhash expiry mid-drain → re-prep remaining + continue');
|
|
80
|
+
let prepareCalls = 0;
|
|
81
|
+
// Round 1: two drain legs. Round 2 (after the transient): one remaining leg.
|
|
82
|
+
const api = {
|
|
83
|
+
prepareReconfigure: async () => {
|
|
84
|
+
prepareCalls++;
|
|
85
|
+
return prepareCalls === 1
|
|
86
|
+
? reconfigureResponse([drainLeg(1), drainLeg(2)])
|
|
87
|
+
: reconfigureResponse([drainLeg(2)]); // one leg left
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
let submitCalls = 0;
|
|
91
|
+
let updateCalls = 0;
|
|
92
|
+
const submitConvergeLegs = async (_c, _a, legs) => {
|
|
93
|
+
submitCalls++;
|
|
94
|
+
if (submitCalls === 1) {
|
|
95
|
+
// First call: expire mid-sequence (a transient, recoverable failure).
|
|
96
|
+
throw new BlockhashExpiredError('Blockhash not found / window expired');
|
|
97
|
+
}
|
|
98
|
+
// Second call (round 2): the remaining drains land.
|
|
99
|
+
return legs.map((_, i) => `drainSig-${submitCalls}-${i}`);
|
|
100
|
+
};
|
|
101
|
+
const runUpdateVaultAssets = async () => {
|
|
102
|
+
updateCalls++;
|
|
103
|
+
return { ok: true, vault: VAULT, signature: 'updateSig111', message: 'updated' };
|
|
104
|
+
};
|
|
105
|
+
const res = await runReconfigure({}, api, VAULT, TARGETS, 300, { submitConvergeLegs: submitConvergeLegs, runUpdateVaultAssets: runUpdateVaultAssets });
|
|
106
|
+
assert(prepareCalls === 2, `prepareReconfigure called 2× (re-prepped remaining drains) — got ${prepareCalls}`);
|
|
107
|
+
assert(submitCalls === 2, `submitConvergeLegs called 2× (retry after transient) — got ${submitCalls}`);
|
|
108
|
+
assert(updateCalls === 1, `update_vault_assets ran exactly 1× — got ${updateCalls}`);
|
|
109
|
+
assert(res.ok === true, `result.ok === true — got ${res.ok}`);
|
|
110
|
+
// The basket drop ran AFTER the drains completed (1 update, both drain rounds done).
|
|
111
|
+
assert(res.drainSignatures.length === 1, `drain signatures from the successful round — got ${res.drainSignatures.length}`);
|
|
112
|
+
}
|
|
113
|
+
async function caseNonTransient() {
|
|
114
|
+
console.log('case B: NON-TRANSIENT revert mid-drain → NO retry, reject with RESUMABLE guidance');
|
|
115
|
+
let prepareCalls = 0;
|
|
116
|
+
const api = {
|
|
117
|
+
prepareReconfigure: async () => {
|
|
118
|
+
prepareCalls++;
|
|
119
|
+
return reconfigureResponse([drainLeg(1), drainLeg(2)]);
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
let updateCalls = 0;
|
|
123
|
+
const submitConvergeLegs = async () => {
|
|
124
|
+
// A real on-chain revert — NOT transient. Must NOT be retried.
|
|
125
|
+
throw new Error('custom program error: 0x1793');
|
|
126
|
+
};
|
|
127
|
+
const runUpdateVaultAssets = async () => {
|
|
128
|
+
updateCalls++;
|
|
129
|
+
throw new Error('update_vault_assets MUST NOT run after a failed drain');
|
|
130
|
+
};
|
|
131
|
+
let caught;
|
|
132
|
+
try {
|
|
133
|
+
await runReconfigure({}, api, VAULT, TARGETS, 300, { submitConvergeLegs: submitConvergeLegs, runUpdateVaultAssets: runUpdateVaultAssets });
|
|
134
|
+
}
|
|
135
|
+
catch (e) {
|
|
136
|
+
caught = e;
|
|
137
|
+
}
|
|
138
|
+
assert(caught !== undefined, 'runReconfigure rejected (did not silently succeed)');
|
|
139
|
+
assert(prepareCalls === 1, `prepareReconfigure called exactly 1× (NO retry → no double-drain) — got ${prepareCalls}`);
|
|
140
|
+
assert(updateCalls === 0, `update_vault_assets did NOT run (basket config unchanged) — got ${updateCalls}`);
|
|
141
|
+
assert(!!caught && /RESUMABLE/.test(caught.message), `error message carries "RESUMABLE" guidance — got: ${caught?.message?.slice(0, 60)}…`);
|
|
142
|
+
assert(!!caught && /0x1793/.test(caught.message), 'error message preserves the original on-chain revert');
|
|
143
|
+
}
|
|
144
|
+
(async () => {
|
|
145
|
+
await caseTransient();
|
|
146
|
+
await caseNonTransient();
|
|
147
|
+
if (failures > 0) {
|
|
148
|
+
console.error(`\n#57 reconfigure-drain regression FAILED (${failures} assertion(s))`);
|
|
149
|
+
process.exit(1);
|
|
150
|
+
}
|
|
151
|
+
console.log('\n#57 reconfigure-drain regression PASSED');
|
|
152
|
+
})();
|
|
153
|
+
//# sourceMappingURL=manager-flow.reconfigure.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager-flow.reconfigure.test.js","sourceRoot":"","sources":["../src/manager-flow.reconfigure.test.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp-server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AA2uBA;;;;GAIG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAMjD"}
|
package/dist/mcp-server.js
CHANGED
|
@@ -360,7 +360,10 @@ server.registerTool('deposit', {
|
|
|
360
360
|
usdcAmount: rawAmount6dp,
|
|
361
361
|
slippageBps: z.number().int().min(10).max(1000).optional(),
|
|
362
362
|
expirySecs: z.number().int().min(60).max(1800).optional(),
|
|
363
|
-
|
|
363
|
+
// #61 — max raised 600→1800s; a multi-asset zap with a slow/retrying leg
|
|
364
|
+
// can take many minutes. On timeout the tool returns `settlement:"pending"`
|
|
365
|
+
// (NOT an error) — call deposit again (same args) to resume polling.
|
|
366
|
+
pollTimeoutSecs: z.number().int().min(30).max(1800).optional(),
|
|
364
367
|
},
|
|
365
368
|
annotations: { title: 'DFM zap-in deposit', readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true },
|
|
366
369
|
},
|
|
@@ -396,7 +399,10 @@ server.registerTool('redeem', {
|
|
|
396
399
|
shares: rawShares6dp,
|
|
397
400
|
slippageBps: z.number().int().min(10).max(1000).optional(),
|
|
398
401
|
expirySecs: z.number().int().min(60).max(1800).optional(),
|
|
399
|
-
|
|
402
|
+
// #61 — max raised 600→1800s; a 10-asset redeem with a slow leg (e.g.
|
|
403
|
+
// ORCA→USDC) can self-heal over many minutes. On timeout the tool returns
|
|
404
|
+
// `settlement:"pending"` (NOT an error) — call redeem again to resume.
|
|
405
|
+
pollTimeoutSecs: z.number().int().min(30).max(1800).optional(),
|
|
400
406
|
},
|
|
401
407
|
annotations: { title: 'DFM zap-out redeem', readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true },
|
|
402
408
|
},
|
package/dist/mcp-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
package/dist/zap-v2-flow.d.ts
CHANGED
|
@@ -40,11 +40,24 @@ export interface ZapFlowResult {
|
|
|
40
40
|
vault: string;
|
|
41
41
|
/** 'deposit' | 'redeem' */
|
|
42
42
|
kind: 'deposit' | 'redeem';
|
|
43
|
+
/**
|
|
44
|
+
* #61 — 'complete' = escrow closed/settled (shares minted / USDC paid).
|
|
45
|
+
* 'pending' = the poll window elapsed but the escrow is STILL OPEN and
|
|
46
|
+
* self-healing (the backend orchestrator keeps cranking) — this is NOT a
|
|
47
|
+
* failure; call the same tool again (same args) to RESUME polling to close.
|
|
48
|
+
*/
|
|
49
|
+
settlement: 'complete' | 'pending';
|
|
43
50
|
openSignatures: string[];
|
|
44
51
|
closeSignatures: string[];
|
|
45
52
|
escrowPda: string;
|
|
46
53
|
/** Final escrow status snapshot just before close (for diagnostics). */
|
|
47
54
|
finalStatus?: ZapV2Status | null;
|
|
55
|
+
/** Present only when settlement==='pending' — progress + why it's pending. */
|
|
56
|
+
pending?: {
|
|
57
|
+
reason: 'timeout' | 'expired' | 'gone';
|
|
58
|
+
legsFilled: number;
|
|
59
|
+
legsTotal: number;
|
|
60
|
+
};
|
|
48
61
|
message: string;
|
|
49
62
|
}
|
|
50
63
|
interface PollOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zap-v2-flow.d.ts","sourceRoot":"","sources":["../src/zap-v2-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAwB,MAAM,YAAY,CAAC;AAQpE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,WAAW;IACnB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"zap-v2-flow.d.ts","sourceRoot":"","sources":["../src/zap-v2-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAwB,MAAM,YAAY,CAAC;AAQpE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B;;;;;OAKG;IACH,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;IACnC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,8EAA8E;IAC9E,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5F,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,WAAW;IACnB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;CACtB;AA0ND;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;CAAE,GAChF,OAAO,CAAC,aAAa,CAAC,CAwExB;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;CAAE,GAChF,OAAO,CAAC,aAAa,CAAC,CAuDxB"}
|
package/dist/zap-v2-flow.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { signBase64Transaction } from './signing.js';
|
|
2
2
|
import { submitSignedTxsSequential, BlockhashExpiredError, BroadcastUnconfirmedError, } from './submit.js';
|
|
3
|
-
|
|
3
|
+
// #61 — default poll window. Was 180s; a 10-asset redeem with a slow/retrying
|
|
4
|
+
// leg (e.g. ORCA→USDC) can take many minutes to self-heal, so a hard error at
|
|
5
|
+
// 180/300s misreported a still-settling redeem as failed. Raised to 600s, and on
|
|
6
|
+
// timeout we now return `pending` (resume-able) instead of throwing.
|
|
7
|
+
const DEFAULT_POLL = { timeoutSecs: 600, intervalSecs: 4 };
|
|
4
8
|
async function sleep(secs) {
|
|
5
9
|
await new Promise((r) => setTimeout(r, secs * 1000));
|
|
6
10
|
}
|
|
@@ -100,32 +104,69 @@ async function closeWithRetry(config, api, prepareClose, confirmClosed, attempts
|
|
|
100
104
|
`or inspect with zap_status.`);
|
|
101
105
|
}
|
|
102
106
|
/**
|
|
103
|
-
* Poll `zap-v2/status` until the escrow is `readyToClose`, it expires,
|
|
104
|
-
*
|
|
105
|
-
*
|
|
107
|
+
* Poll `zap-v2/status` until the escrow is `readyToClose`, it expires, it
|
|
108
|
+
* disappears (settled/cancelled), or we time out. #61: returns a structured
|
|
109
|
+
* {@link PollResult} — it NO LONGER throws on timeout/expiry, so the caller can
|
|
110
|
+
* surface a resume-able `pending` instead of a misleading hard error (a redeem
|
|
111
|
+
* that out-runs the poll window is still self-healing, not failed).
|
|
106
112
|
*/
|
|
107
113
|
async function pollUntilReady(api, vault, user, poll) {
|
|
108
114
|
const deadline = Date.now() + poll.timeoutSecs * 1000;
|
|
109
115
|
let last = null;
|
|
116
|
+
let sawOpen = false; // have we observed the escrow OPEN at least once this poll?
|
|
110
117
|
while (Date.now() < deadline) {
|
|
111
118
|
last = await api.getZapV2Status(vault, user);
|
|
112
119
|
if (!last) {
|
|
113
|
-
|
|
120
|
+
// A null read is ambiguous: (a) the escrow SETTLED + closed (the backend
|
|
121
|
+
// keeper finished it — the #61 success case), OR (b) a freshly-opened escrow
|
|
122
|
+
// hasn't propagated to this RPC node yet (create→use race, failure-class ⑥).
|
|
123
|
+
// Only conclude 'gone/settled' once we've ACTUALLY seen it open this poll;
|
|
124
|
+
// otherwise it's still propagating — keep waiting (falls through to 'timeout'
|
|
125
|
+
// if it truly never appears). This stops a just-opened deposit from being
|
|
126
|
+
// mis-reported as "settled automatically" while the funds sit in escrow.
|
|
127
|
+
if (sawOpen)
|
|
128
|
+
return { ready: false, reason: 'gone', status: null };
|
|
129
|
+
await sleep(poll.intervalSecs);
|
|
130
|
+
continue;
|
|
114
131
|
}
|
|
132
|
+
sawOpen = true;
|
|
115
133
|
if (last.readyToClose)
|
|
116
|
-
return last;
|
|
117
|
-
if (last.isExpired)
|
|
118
|
-
|
|
119
|
-
`Use zap_v2_cancel to recover the held funds, or zap_v2_update_envelope to ` +
|
|
120
|
-
`loosen floors and retry.`);
|
|
121
|
-
}
|
|
134
|
+
return { ready: true, status: last };
|
|
135
|
+
if (last.isExpired)
|
|
136
|
+
return { ready: false, reason: 'expired', status: last };
|
|
122
137
|
await sleep(poll.intervalSecs);
|
|
123
138
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
139
|
+
return { ready: false, reason: 'timeout', status: last };
|
|
140
|
+
}
|
|
141
|
+
/** Build the non-fatal `pending` ZapFlowResult (#61) — escrow still open / self-healing. */
|
|
142
|
+
function pendingResult(kind, vault, escrowPda, openSignatures, pr) {
|
|
143
|
+
const legsFilled = pr.status?.legsFilled ?? 0;
|
|
144
|
+
const legsTotal = pr.status?.legsTotal ?? 0;
|
|
145
|
+
const verb = kind === 'redeem' ? 'redeem' : 'deposit';
|
|
146
|
+
const why = pr.reason === 'gone'
|
|
147
|
+
? `The escrow is no longer open — most likely it SETTLED (the backend keeper closed it ` +
|
|
148
|
+
`after cranking the legs) or was cancelled. Verify with get_portfolio / your balances ` +
|
|
149
|
+
`before assuming completion.`
|
|
150
|
+
: pr.reason === 'expired'
|
|
151
|
+
? `The escrow passed its expiry with ${legsFilled}/${legsTotal} legs filled. The backend ` +
|
|
152
|
+
`stall-recovery may STILL settle it automatically (it loosens floors + extends expiry) — ` +
|
|
153
|
+
`call ${verb} again (same args) to resume polling. If it stays stuck, use ` +
|
|
154
|
+
`zap_v2_update_envelope (loosen floors) or zap_v2_cancel (recover holdings).`
|
|
155
|
+
: `Still cranking: ${legsFilled}/${legsTotal} legs filled. The escrow is OPEN and ` +
|
|
156
|
+
`self-healing — this is NOT a failure. Call ${verb} again (same args) to RESUME polling ` +
|
|
157
|
+
`to completion (consider a larger pollTimeoutSecs), or inspect with zap_status.`;
|
|
158
|
+
return {
|
|
159
|
+
ok: true,
|
|
160
|
+
vault,
|
|
161
|
+
kind,
|
|
162
|
+
settlement: 'pending',
|
|
163
|
+
openSignatures,
|
|
164
|
+
closeSignatures: [],
|
|
165
|
+
escrowPda,
|
|
166
|
+
finalStatus: pr.status ?? null,
|
|
167
|
+
pending: { reason: pr.reason, legsFilled, legsTotal },
|
|
168
|
+
message: `${verb.toUpperCase()} PENDING (not failed). ${why}`,
|
|
169
|
+
};
|
|
129
170
|
}
|
|
130
171
|
/**
|
|
131
172
|
* Drive a full DEPOSIT (USDC → basket → shares). `usdcAmountRaw` is 6-dp raw
|
|
@@ -168,7 +209,12 @@ export async function runDeposit(config, api, user, vault, usdcAmountRaw, opts)
|
|
|
168
209
|
escrowPda = open.escrowPda;
|
|
169
210
|
}
|
|
170
211
|
// 2. POLL — wait for the backend orchestrator to crank every USDC→asset leg.
|
|
171
|
-
|
|
212
|
+
// #61: on timeout/expiry/auto-settle, return a resume-able `pending` rather
|
|
213
|
+
// than throwing — the escrow keeps self-healing.
|
|
214
|
+
const pr = await pollUntilReady(api, vault, user, poll);
|
|
215
|
+
if (!pr.ready)
|
|
216
|
+
return pendingResult('deposit', vault, escrowPda, openSignatures, pr);
|
|
217
|
+
const ready = pr.status;
|
|
172
218
|
// 3. CLOSE — mint_in_kind_v2, forward shares, close escrow. Retries on
|
|
173
219
|
// blockhash expiry (escrow stays READY between attempts).
|
|
174
220
|
const closeSignatures = await closeWithRetry(config, api, () => api.prepareZapInCloseV2(vault), async () => !(await api.getZapV2Status(vault, user)));
|
|
@@ -176,6 +222,7 @@ export async function runDeposit(config, api, user, vault, usdcAmountRaw, opts)
|
|
|
176
222
|
ok: true,
|
|
177
223
|
vault,
|
|
178
224
|
kind: 'deposit',
|
|
225
|
+
settlement: 'complete',
|
|
179
226
|
openSignatures,
|
|
180
227
|
closeSignatures,
|
|
181
228
|
escrowPda,
|
|
@@ -217,7 +264,12 @@ export async function runRedeem(config, api, user, vault, sharesRaw, opts) {
|
|
|
217
264
|
escrowPda = open.escrowPda;
|
|
218
265
|
}
|
|
219
266
|
// 2. POLL — wait for the orchestrator to crank every asset→USDC leg.
|
|
220
|
-
|
|
267
|
+
// #61: a slow/retrying leg (e.g. ORCA→USDC) can self-heal over many minutes;
|
|
268
|
+
// on timeout/expiry/auto-settle return a resume-able `pending`, not an error.
|
|
269
|
+
const pr = await pollUntilReady(api, vault, user, poll);
|
|
270
|
+
if (!pr.ready)
|
|
271
|
+
return pendingResult('redeem', vault, escrowPda, openSignatures, pr);
|
|
272
|
+
const ready = pr.status;
|
|
221
273
|
// 3. CLOSE — apply exit fee, pay net USDC, close escrow. Retries on blockhash
|
|
222
274
|
// expiry (escrow stays READY between attempts).
|
|
223
275
|
const closeSignatures = await closeWithRetry(config, api, () => api.prepareZapOutCloseV2(vault), async () => !(await api.getZapV2Status(vault, user)));
|
|
@@ -225,6 +277,7 @@ export async function runRedeem(config, api, user, vault, sharesRaw, opts) {
|
|
|
225
277
|
ok: true,
|
|
226
278
|
vault,
|
|
227
279
|
kind: 'redeem',
|
|
280
|
+
settlement: 'complete',
|
|
228
281
|
openSignatures,
|
|
229
282
|
closeSignatures,
|
|
230
283
|
escrowPda,
|
package/dist/zap-v2-flow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zap-v2-flow.js","sourceRoot":"","sources":["../src/zap-v2-flow.ts"],"names":[],"mappings":"AAqCA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"zap-v2-flow.js","sourceRoot":"","sources":["../src/zap-v2-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zap-v2-flow.pending.test.d.ts","sourceRoot":"","sources":["../src/zap-v2-flow.pending.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #61 regression (runnable: `npx tsx agent/src/zap-v2-flow.pending.test.ts`).
|
|
3
|
+
*
|
|
4
|
+
* The agent package has no jest runner — this is a self-contained assertion
|
|
5
|
+
* script (exit 1 on failure) covering the #61 contract: when the poll window
|
|
6
|
+
* elapses with the escrow STILL OPEN (or it auto-settled / disappeared), the
|
|
7
|
+
* redeem flow must return `settlement:"pending"` (ok:true) WITHOUT calling the
|
|
8
|
+
* close builder — NOT throw a hard error. On the OLD code `pollUntilReady` threw,
|
|
9
|
+
* so `runRedeem` rejected and `prepareZapOutCloseV2` was never reached either;
|
|
10
|
+
* here we assert the NEW resume-able contract: a resolved pending result + no
|
|
11
|
+
* close attempt.
|
|
12
|
+
*/
|
|
13
|
+
import { runRedeem } from './zap-v2-flow.js';
|
|
14
|
+
const VAULT = 'Vau1t1111111111111111111111111111111111111';
|
|
15
|
+
const USER = 'User1111111111111111111111111111111111111111';
|
|
16
|
+
const ESCROW = 'Escrow11111111111111111111111111111111111111';
|
|
17
|
+
function openRedeemStatus() {
|
|
18
|
+
return {
|
|
19
|
+
escrowPda: ESCROW,
|
|
20
|
+
vault: VAULT,
|
|
21
|
+
user: USER,
|
|
22
|
+
mode: 1, // redeem
|
|
23
|
+
state: 4, // PARTIAL_OUT
|
|
24
|
+
nAssets: 10,
|
|
25
|
+
assetMints: [],
|
|
26
|
+
filledMask: 0x1ff, // 9/10
|
|
27
|
+
legProgress: [],
|
|
28
|
+
legsFilled: 9,
|
|
29
|
+
legsTotal: 10,
|
|
30
|
+
readyToClose: false, // never ready within the window
|
|
31
|
+
legFailures: [],
|
|
32
|
+
openedAt: 0,
|
|
33
|
+
expiresAt: 9_999_999_999,
|
|
34
|
+
isExpired: false,
|
|
35
|
+
slippageBps: 300,
|
|
36
|
+
plannedAmountIn: [],
|
|
37
|
+
minOuts: [],
|
|
38
|
+
actualOuts: [],
|
|
39
|
+
inputAmount: '0',
|
|
40
|
+
sharesIn: '1000000',
|
|
41
|
+
minSharesOut: '0',
|
|
42
|
+
minUsdcOut: '0',
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
let failures = 0;
|
|
46
|
+
function assert(cond, msg) {
|
|
47
|
+
if (!cond) {
|
|
48
|
+
console.error(` ✗ ${msg}`);
|
|
49
|
+
failures++;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
console.log(` ✓ ${msg}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async function caseTimeout() {
|
|
56
|
+
console.log('case: poll TIMEOUT with escrow still open → pending (no close)');
|
|
57
|
+
let closeCalled = 0;
|
|
58
|
+
const mockApi = {
|
|
59
|
+
getZapV2Status: async () => openRedeemStatus(),
|
|
60
|
+
prepareZapOutCloseV2: async () => {
|
|
61
|
+
closeCalled++;
|
|
62
|
+
return { transactions: [], blockhash: '', lastValidBlockHeight: 0, escrowPda: ESCROW };
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
const res = await runRedeem({}, // config — unused on the pending path
|
|
66
|
+
mockApi, USER, VAULT, '1000000', { poll: { timeoutSecs: 0.3, intervalSecs: 0.1 } });
|
|
67
|
+
assert(res.ok === true, 'result.ok === true (not an error)');
|
|
68
|
+
assert(res.settlement === 'pending', `settlement === 'pending' (got '${res.settlement}')`);
|
|
69
|
+
assert(res.closeSignatures.length === 0, 'no close signatures');
|
|
70
|
+
assert(closeCalled === 0, 'prepareZapOutCloseV2 was NOT called');
|
|
71
|
+
assert(res.pending?.reason === 'timeout', `pending.reason === 'timeout' (got '${res.pending?.reason}')`);
|
|
72
|
+
assert(res.pending?.legsFilled === 9 && res.pending?.legsTotal === 10, 'pending carries 9/10 legs');
|
|
73
|
+
}
|
|
74
|
+
async function caseGone() {
|
|
75
|
+
console.log('case: escrow GONE during poll (auto-settled) → pending/gone (no throw)');
|
|
76
|
+
let calls = 0;
|
|
77
|
+
const mockApi = {
|
|
78
|
+
// resume guard (call 0) + first poll (call 1) see the escrow OPEN, then it
|
|
79
|
+
// disappears (call 2+) = a genuine mid-poll settle. The guard requires having
|
|
80
|
+
// seen it open before concluding 'gone' (so a not-yet-propagated fresh escrow
|
|
81
|
+
// isn't mis-reported) — realistic settle must show it open first.
|
|
82
|
+
getZapV2Status: async () => (calls++ < 2 ? openRedeemStatus() : null),
|
|
83
|
+
prepareZapOutCloseV2: async () => {
|
|
84
|
+
throw new Error('close must not be called on gone');
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
const res = await runRedeem({}, mockApi, USER, VAULT, '1000000', { poll: { timeoutSecs: 5, intervalSecs: 0.1 } });
|
|
88
|
+
assert(res.ok === true, 'result.ok === true');
|
|
89
|
+
assert(res.settlement === 'pending', `settlement === 'pending' (got '${res.settlement}')`);
|
|
90
|
+
assert(res.pending?.reason === 'gone', `pending.reason === 'gone' (got '${res.pending?.reason}')`);
|
|
91
|
+
}
|
|
92
|
+
async function caseFreshNullNotGone() {
|
|
93
|
+
console.log('case: null reads WITHOUT ever seeing the escrow open → timeout, NOT gone (race ⑥ guard)');
|
|
94
|
+
let calls = 0;
|
|
95
|
+
const mockApi = {
|
|
96
|
+
// resume guard (call 0) sees it open; every poll read after is null BEFORE the
|
|
97
|
+
// poll loop ever observes it open itself (propagation blip / not-yet-visible).
|
|
98
|
+
// The fix must NOT declare 'gone' here — it keeps waiting → 'timeout'. The OLD
|
|
99
|
+
// code returned 'gone' on the first null, mis-reporting a live escrow as settled.
|
|
100
|
+
getZapV2Status: async () => (calls++ === 0 ? openRedeemStatus() : null),
|
|
101
|
+
prepareZapOutCloseV2: async () => {
|
|
102
|
+
throw new Error('close must not be called');
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
const res = await runRedeem({}, mockApi, USER, VAULT, '1000000', { poll: { timeoutSecs: 0.3, intervalSecs: 0.1 } });
|
|
106
|
+
assert(res.settlement === 'pending', `settlement === 'pending' (got '${res.settlement}')`);
|
|
107
|
+
assert(res.pending?.reason === 'timeout', `reason === 'timeout' not 'gone' (got '${res.pending?.reason}')`);
|
|
108
|
+
}
|
|
109
|
+
(async () => {
|
|
110
|
+
await caseTimeout();
|
|
111
|
+
await caseGone();
|
|
112
|
+
await caseFreshNullNotGone();
|
|
113
|
+
if (failures > 0) {
|
|
114
|
+
console.error(`\n#61 regression FAILED (${failures} assertion(s))`);
|
|
115
|
+
process.exit(1);
|
|
116
|
+
}
|
|
117
|
+
console.log('\n#61 regression PASSED');
|
|
118
|
+
})();
|
|
119
|
+
//# sourceMappingURL=zap-v2-flow.pending.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zap-v2-flow.pending.test.js","sourceRoot":"","sources":["../src/zap-v2-flow.pending.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED