@intent-engine/cli 0.1.45 → 0.1.47
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/src/agent/create.d.ts +84 -15
- package/dist/src/agent/create.js +108 -105
- package/dist/src/agent/create.js.map +1 -1
- package/dist/src/agent/jobs.d.ts +1 -0
- package/dist/src/agent/jobs.js +5 -2
- package/dist/src/agent/jobs.js.map +1 -1
- package/dist/src/agent/mcp.d.ts +2 -0
- package/dist/src/agent/mcp.js +3 -1
- package/dist/src/agent/mcp.js.map +1 -1
- package/dist/src/agent/problems.d.ts +2 -0
- package/dist/src/agent/problems.js +2 -0
- package/dist/src/agent/problems.js.map +1 -1
- package/dist/src/agent/wallet/attest.d.ts +6 -0
- package/dist/src/agent/wallet/attest.js +23 -6
- package/dist/src/agent/wallet/attest.js.map +1 -1
- package/dist/src/agent/wallet/committee.js +5 -2
- package/dist/src/agent/wallet/committee.js.map +1 -1
- package/dist/src/agent/wallet/delivery.d.ts +5 -0
- package/dist/src/agent/wallet/delivery.js +64 -24
- package/dist/src/agent/wallet/delivery.js.map +1 -1
- package/dist/src/agent/wallet/escrow.d.ts +5 -0
- package/dist/src/agent/wallet/escrow.js +62 -12
- package/dist/src/agent/wallet/escrow.js.map +1 -1
- package/dist/src/agent/wallet/history-work.d.ts +46 -0
- package/dist/src/agent/wallet/history-work.js +145 -0
- package/dist/src/agent/wallet/history-work.js.map +1 -0
- package/dist/src/agent/wallet/history.js +30 -12
- package/dist/src/agent/wallet/history.js.map +1 -1
- package/dist/src/agent/wallet/offer.d.ts +2 -0
- package/dist/src/agent/wallet/offer.js +2 -2
- package/dist/src/agent/wallet/offer.js.map +1 -1
- package/dist/src/agent/wallet/receipt.d.ts +4 -1
- package/dist/src/agent/wallet/receipt.js +50 -17
- package/dist/src/agent/wallet/receipt.js.map +1 -1
- package/dist/src/agent/wallet/releases.d.ts +4 -0
- package/dist/src/agent/wallet/releases.js +11 -0
- package/dist/src/agent/wallet/releases.js.map +1 -1
- package/dist/src/agent/wallet/split.js +5 -2
- package/dist/src/agent/wallet/split.js.map +1 -1
- package/dist/src/agent/wallet/wait.d.ts +1 -0
- package/dist/src/agent/wallet/wait.js +22 -2
- package/dist/src/agent/wallet/wait.js.map +1 -1
- package/dist/src/flows.js +2 -2
- package/dist/src/flows.js.map +1 -1
- package/dist/src/job-commands.js +1 -1
- package/dist/src/job-commands.js.map +1 -1
- package/dist/src/job-filters.d.ts +1 -0
- package/dist/src/job-filters.js +12 -1
- package/dist/src/job-filters.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/package.json +4 -4
|
@@ -3,11 +3,16 @@ export declare const ESCROW_EXPIRES_IN = 86400;
|
|
|
3
3
|
export declare const NO_SPEC_HASH: string;
|
|
4
4
|
export declare const JOB_LIVE: string;
|
|
5
5
|
export declare const SPEC_MUST = "the spec must say what to deliver, in what form, and how it is checked";
|
|
6
|
+
export declare const SPEC_NO_ANSWER = "the earliest announcer is paid, so for work anyone could compute keep the answer and its sha256 out of the spec, or another wallet can build it and announce first; for such work give claim_stake and claim_secs to open claims, which reserve the job for one worker";
|
|
7
|
+
export declare const CLAIMS_TOGETHER = "give claim_stake and claim_secs together, or neither";
|
|
8
|
+
export declare const CLAIMS_NEED_SPEC = "claims need spec_hash, since only a proof escrow takes claims";
|
|
9
|
+
export declare const claimsLine: (secs: number, stake: string, every: boolean) => string;
|
|
6
10
|
export declare const recordAccountWhy: (mint: Address) => string;
|
|
7
11
|
export declare const explainedSetup: (summary: readonly string[], mint: Address) => string[];
|
|
8
12
|
export declare const RECORD_MINT_NEEDED = "selling SOL on this RPC needs record_mint: any other token's mint, which only labels the escrow";
|
|
9
13
|
export declare const walletEscrow: import("../actions.js").AnyAction;
|
|
10
14
|
export declare const MAX_PIECES = 12;
|
|
15
|
+
export declare const PIECE_ONE = "Piece 1 only";
|
|
11
16
|
export declare const piecesPartlySent: (sent: number, total: number, problem: string) => string;
|
|
12
17
|
export declare const piecesMayHaveLanded: (sent: number, total: number, problem: string) => string;
|
|
13
18
|
export declare const pieceUnsettled: (index: number, name: string) => string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { feeBpsFor, formatAmount, isMemoUrl, Kind, MEMO_URL_RULE, NATIVE_MINT, splitFees } from "@intent-engine/core";
|
|
2
|
-
import { chainTime, loadConfig, mintOf, plainHttpOnPublic } from "@intent-engine/client";
|
|
1
|
+
import { buildOpenClaims, feeBpsFor, formatAmount, isMemoUrl, Kind, MAX_CLAIM_SECS, MAX_CLAIM_STAKE, MEMO_URL_RULE, NATIVE_MINT, splitFees } from "@intent-engine/core";
|
|
2
|
+
import { chainTime, loadConfig, mintOf, plainHttpOnPublic, WARN_NO_JUDGE_KEY } from "@intent-engine/client";
|
|
3
3
|
import { TOKEN_NAMES, tokenNamed } from "../../tokens.js";
|
|
4
4
|
import { define } from "../actions.js";
|
|
5
5
|
import { escrowJudge, MAX_EXPIRES_IN, MIN_EXPIRES_IN, neverSettles, SPEC_URL_PLAIN } from "../create.js";
|
|
@@ -23,6 +23,31 @@ export const ESCROW_EXPIRES_IN = 86_400;
|
|
|
23
23
|
export const NO_SPEC_HASH = `no spec_hash, so workers cannot find this escrow with ${tool("find_jobs")}; give spec_hash and spec_url to list it`;
|
|
24
24
|
export const JOB_LIVE = `job live; ${tool("wallet_check_delivery")} to watch for work, then ${tool("wallet_attest")} its earliest announcer`;
|
|
25
25
|
export const SPEC_MUST = "the spec must say what to deliver, in what form, and how it is checked";
|
|
26
|
+
export const SPEC_NO_ANSWER = "the earliest announcer is paid, so for work anyone could compute keep the answer and its sha256 out of the spec, or another wallet can build it and announce first; for such work give claim_stake and claim_secs to open claims, which reserve the job for one worker";
|
|
27
|
+
export const CLAIMS_TOGETHER = "give claim_stake and claim_secs together, or neither";
|
|
28
|
+
export const CLAIMS_NEED_SPEC = "claims need spec_hash, since only a proof escrow takes claims";
|
|
29
|
+
const claimInputs = {
|
|
30
|
+
claim_stake: optional(text("whole SOL a worker stakes to claim the job, such as 0.01; with claim_secs it opens claims, so one worker at a time can be paid; needs spec_hash")),
|
|
31
|
+
claim_secs: optional(integer(1, MAX_CLAIM_SECS, "the longest a worker may hold the job by claiming it, in seconds; with claim_stake")),
|
|
32
|
+
};
|
|
33
|
+
export const claimsLine = (secs, stake, every) => `Opens: claims on ${every ? "every piece" : "the escrow"}; a worker can hold the job for up to ${secs} seconds by staking ${stake} SOL, and this wallet pays the claims board's rent`;
|
|
34
|
+
function claimTerms(input, every) {
|
|
35
|
+
if (input.claim_stake === undefined && input.claim_secs === undefined) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
if (input.claim_stake === undefined || input.claim_secs === undefined) {
|
|
39
|
+
throw new InvalidInput([{ path: input.claim_stake === undefined ? "claim_stake" : "claim_secs", message: CLAIMS_TOGETHER }]);
|
|
40
|
+
}
|
|
41
|
+
const stake = raw(input.claim_stake, 9, "claim_stake");
|
|
42
|
+
if (stake > MAX_CLAIM_STAKE) {
|
|
43
|
+
throw new InvalidInput([{ path: "claim_stake", message: `must be at most ${formatAmount(MAX_CLAIM_STAKE, 9)}` }]);
|
|
44
|
+
}
|
|
45
|
+
const maxSecs = input.claim_secs;
|
|
46
|
+
return {
|
|
47
|
+
line: claimsLine(maxSecs, formatAmount(stake, 9), every),
|
|
48
|
+
after: async (owner, intent) => [await buildOpenClaims({ owner, intent, maxSecs, stake })],
|
|
49
|
+
};
|
|
50
|
+
}
|
|
26
51
|
export const recordAccountWhy = (mint) => `Why: the program needs a token account for the recorded output ${mint} even though an escrow pays nothing into it; later escrows that record the same token reuse it`;
|
|
27
52
|
const createsRecordAccount = (mint) => `Setup: creates your token account for ${mint} (you pay its rent)`;
|
|
28
53
|
export const explainedSetup = (summary, mint) => summary.flatMap((line) => (line === createsRecordAccount(mint) ? [line, recordAccountWhy(mint)] : [line]));
|
|
@@ -52,11 +77,12 @@ export const walletEscrow = define({
|
|
|
52
77
|
attestor: account("the wallet whose signature alone releases the escrow, such as this wallet's own address to judge the work yourself, or a committee's address; at or above the token's committee floor it must be a committee of 2 or more"),
|
|
53
78
|
min_result: optional(amount("least result the attestor may attest, a plain count not whole tokens; default 1")),
|
|
54
79
|
max_result: optional(amount("greatest result the attestor may attest, a plain count not whole tokens; default min_result")),
|
|
55
|
-
spec_hash: optional(hex32(`64 hex: the sha256 of the acceptance spec the attestor must verify; ${SPEC_MUST}. Setting it binds the release to a signature over that exact spec, so the attestor cannot sign a generic result`)),
|
|
80
|
+
spec_hash: optional(hex32(`64 hex: the sha256 of the acceptance spec the attestor must verify; ${SPEC_MUST}. Setting it binds the release to a signature over that exact spec, so the attestor cannot sign a generic result; never put the answer or its sha256 in the spec of work others could compute`)),
|
|
56
81
|
spec_url: optional(text(`where the acceptance spec is published, ${MEMO_URL_RULE}; needs spec_hash. Recorded in a memo this wallet signs with the escrow`)),
|
|
57
82
|
judge_fee: optional(text("whole tokens of sell paid to the attestor out of the escrow when it settles, such as 0.001; needs spec_hash and must be below amount")),
|
|
58
83
|
expires_in: optional(integer(MIN_EXPIRES_IN, MAX_EXPIRES_IN, `least seconds the escrow stays open once sent; default ${ESCROW_EXPIRES_IN}`)),
|
|
59
84
|
record_mint: optional(text("a token the escrow records as its output, other than sell; only a label. Default SOL, or TEST when selling SOL on devnet")),
|
|
85
|
+
...claimInputs,
|
|
60
86
|
send: optional(flag("true signs and sends; leave out to preview")),
|
|
61
87
|
}),
|
|
62
88
|
output: offerOutput,
|
|
@@ -75,10 +101,14 @@ export const walletEscrow = define({
|
|
|
75
101
|
if (input.spec_url !== undefined && specHash === undefined) {
|
|
76
102
|
throw new InvalidInput([{ path: "spec_url", message: "needs spec_hash" }]);
|
|
77
103
|
}
|
|
104
|
+
const claims = claimTerms(input, false);
|
|
105
|
+
if (claims !== undefined && specHash === undefined) {
|
|
106
|
+
throw new InvalidInput([{ path: "claim_stake", message: CLAIMS_NEED_SPEC }]);
|
|
107
|
+
}
|
|
78
108
|
const preflight = input.spec_url !== undefined && specHash !== undefined && input.send !== true ? await specPreflight(ctx, input.spec_url, specHash) : undefined;
|
|
79
109
|
let settled;
|
|
80
110
|
const buy = recordedMint(sold, wallet.url, input.record_mint);
|
|
81
|
-
const escrowed = (await offered(ctx, call, { sell: sold, buy, send: input.send }, (token, _, now) => {
|
|
111
|
+
const escrowed = (await offered(ctx, call, { sell: sold, buy, send: input.send, after: claims?.after }, (token, _, now) => {
|
|
82
112
|
const amountIn = raw(input.amount, token.decimals, "amount");
|
|
83
113
|
const judgeFee = input.judge_fee === undefined ? 0n : raw(input.judge_fee, token.decimals, "judge_fee");
|
|
84
114
|
settled = { amount: amountIn, judgeFee, decimals: token.decimals };
|
|
@@ -96,8 +126,18 @@ export const walletEscrow = define({
|
|
|
96
126
|
...(input.spec_url === undefined ? {} : { spec_url: input.spec_url }),
|
|
97
127
|
};
|
|
98
128
|
}, JOB_LIVE));
|
|
99
|
-
const summary = [
|
|
100
|
-
|
|
129
|
+
const summary = [
|
|
130
|
+
...explainedSetup(escrowed["summary"] ?? [], buy),
|
|
131
|
+
...(claims === undefined ? [] : [claims.line]),
|
|
132
|
+
...(settled === undefined ? [] : [await feeLine(ctx, settled)]),
|
|
133
|
+
];
|
|
134
|
+
const signer = await signerOf(ctx);
|
|
135
|
+
const ownKey = input.attestor === signer.address && signer.device === undefined;
|
|
136
|
+
const warnings = [
|
|
137
|
+
...(escrowed["warnings"] ?? []).filter((line) => !(ownKey && line.startsWith(WARN_NO_JUDGE_KEY))),
|
|
138
|
+
...(preflight === undefined ? [] : [preflight]),
|
|
139
|
+
...(specHash === undefined ? [NO_SPEC_HASH] : input.send === true ? [] : [SPEC_NO_ANSWER]),
|
|
140
|
+
];
|
|
101
141
|
return { ...escrowed, summary, warnings };
|
|
102
142
|
},
|
|
103
143
|
});
|
|
@@ -107,6 +147,7 @@ async function feeLine(ctx, settled) {
|
|
|
107
147
|
return `Payee receives: ${formatAmount(net, settled.decimals)}, after the ${bps / 100}% protocol fee at today's config`;
|
|
108
148
|
}
|
|
109
149
|
export const MAX_PIECES = 12;
|
|
150
|
+
export const PIECE_ONE = "Piece 1 only";
|
|
110
151
|
export const piecesPartlySent = (sent, total, problem) => `${sent} of ${total} pieces were escrowed; the next failed with ${problem}. To finish, escrow only the ${total - sent} remaining pieces; do not repeat this call`;
|
|
111
152
|
export const piecesMayHaveLanded = (sent, total, problem) => `${sent} of ${total} pieces were escrowed and the next may have landed too (${problem}); check ${tool("wallet_intents")} before escrowing any again, and do not repeat this call`;
|
|
112
153
|
export const pieceUnsettled = (index, name) => `nothing was escrowed: piece ${index} (${name}) cannot be paid; `;
|
|
@@ -149,6 +190,7 @@ export const walletEscrowPlan = define({
|
|
|
149
190
|
}), MAX_PIECES, "the pieces, in order", 2),
|
|
150
191
|
expires_in: optional(integer(MIN_EXPIRES_IN, MAX_EXPIRES_IN, `least seconds each escrow stays open once sent; default ${ESCROW_EXPIRES_IN}`)),
|
|
151
192
|
record_mint: optional(text("a token the escrows record as their output, other than sell; only a label. Default SOL, or TEST when selling SOL on devnet")),
|
|
193
|
+
...claimInputs,
|
|
152
194
|
send: optional(flag("true signs and sends every piece; leave out to preview")),
|
|
153
195
|
}),
|
|
154
196
|
output: object({
|
|
@@ -163,14 +205,16 @@ export const walletEscrowPlan = define({
|
|
|
163
205
|
signature: optional(text()),
|
|
164
206
|
}), MAX_PIECES),
|
|
165
207
|
total: text("whole tokens escrowed across all pieces"),
|
|
166
|
-
summary: list(text(),
|
|
208
|
+
summary: list(text(), 32, `the plan, then lines marked ${PIECE_ONE} that describe the first piece alone`),
|
|
167
209
|
warnings: list(text(), 16),
|
|
168
210
|
sent: flag(),
|
|
169
211
|
next: optional(text()),
|
|
170
212
|
}),
|
|
171
213
|
run: async (ctx, input, call) => {
|
|
172
214
|
const wallet = access(ctx);
|
|
173
|
-
|
|
215
|
+
const signer = await signerOf(ctx);
|
|
216
|
+
oneAtATime(signer);
|
|
217
|
+
const claims = claimTerms(input, true);
|
|
174
218
|
const sold = mintNamed(input.sell, wallet.url, "sell");
|
|
175
219
|
const buy = recordedMint(sold, wallet.url, input.record_mint);
|
|
176
220
|
const [token, now, { config }] = await Promise.all([mintOf(ctx.transport, sold), chainTime(ctx.transport), loadConfig(ctx.transport)]);
|
|
@@ -183,6 +227,10 @@ export const walletEscrowPlan = define({
|
|
|
183
227
|
...(await checkedSpec(ctx, input, piece, i)),
|
|
184
228
|
});
|
|
185
229
|
}
|
|
230
|
+
const unproven = planned.findIndex((piece) => piece.specHash === undefined);
|
|
231
|
+
if (claims !== undefined && unproven >= 0) {
|
|
232
|
+
throw new InvalidInput([{ path: `pieces.${unproven}.spec_hash`, message: CLAIMS_NEED_SPEC }]);
|
|
233
|
+
}
|
|
186
234
|
for (const [i, piece] of planned.entries()) {
|
|
187
235
|
const order = { kind: Kind.AttestedResult, amountIn: piece.amountIn, minResult: 1n, maxResult: 1n, attestor: piece.attestor, specHash: specBytes(piece.specHash), judgeFee: 0n };
|
|
188
236
|
const unsettled = neverSettles(order, config, 0, token.decimals);
|
|
@@ -227,15 +275,17 @@ export const walletEscrowPlan = define({
|
|
|
227
275
|
return found === undefined ? [] : [`Piece ${i + 1} (${piece.name}): ${found}`];
|
|
228
276
|
}));
|
|
229
277
|
const [head, ...rest] = planned;
|
|
230
|
-
const first = (await offered(ctx, call, { sell: sold, buy, send: input.send }, terms(head)));
|
|
278
|
+
const first = (await offered(ctx, call, { sell: sold, buy, send: input.send, after: claims?.after }, terms(head)));
|
|
279
|
+
const ownKey = head.attestor === signer.address && signer.device === undefined;
|
|
231
280
|
const shown = {
|
|
232
281
|
total: formatAmount(total, token.decimals),
|
|
233
282
|
summary: [
|
|
234
283
|
`Plan: ${planned.length} pieces, ${formatAmount(total, token.decimals)} of ${name} in all, each escrowed now and released on its own`,
|
|
235
284
|
...planned.map((piece, i) => `Piece ${i + 1}: ${piece.name}, ${formatAmount(piece.amountIn, token.decimals)} of ${name}, released by ${piece.attestor}${piece.specHash === undefined ? "" : ` against spec ${piece.specHash}`}`),
|
|
236
|
-
...
|
|
285
|
+
...(claims === undefined ? [] : [claims.line]),
|
|
286
|
+
...explainedSetup(first["summary"], buy).map((line) => `${PIECE_ONE}: ${line}`),
|
|
237
287
|
],
|
|
238
|
-
warnings: [...first["warnings"], ...unlisted, ...preflights.flat()],
|
|
288
|
+
warnings: [...first["warnings"].filter((line) => !(ownKey && line.startsWith(WARN_NO_JUDGE_KEY))), ...unlisted, ...preflights.flat()],
|
|
239
289
|
};
|
|
240
290
|
if (input.send !== true) {
|
|
241
291
|
return { pieces: planned.map(listed), ...shown, sent: false, next: first["next"] };
|
|
@@ -243,7 +293,7 @@ export const walletEscrowPlan = define({
|
|
|
243
293
|
const pieces = [{ ...listed(head), intent: first["intent"], nonce: first["nonce"], signature: first["signature"] }];
|
|
244
294
|
for (const piece of rest) {
|
|
245
295
|
try {
|
|
246
|
-
const made = (await offered(ctx, call, { sell: sold, buy, send: true }, terms(piece)));
|
|
296
|
+
const made = (await offered(ctx, call, { sell: sold, buy, send: true, after: claims?.after }, terms(piece)));
|
|
247
297
|
pieces.push({ ...listed(piece), intent: made["intent"], nonce: made["nonce"], signature: made["signature"] });
|
|
248
298
|
}
|
|
249
299
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escrow.js","sourceRoot":"","sources":["../../../../src/agent/wallet/escrow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"escrow.js","sourceRoot":"","sources":["../../../../src/agent/wallet/escrow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { Address } from "@solana/kit";
|
|
2
|
+
import { type EngineTransaction, type Transport } from "@intent-engine/client";
|
|
3
|
+
export declare const OWN_TRANSACTIONS = 250;
|
|
4
|
+
export declare const STAKE_OUTCOMES: readonly ["held", "returned", "forfeited", "unknown"];
|
|
5
|
+
export declare const workItem: import("../schema.js").Schema<{
|
|
6
|
+
intent: Address;
|
|
7
|
+
signature: string;
|
|
8
|
+
at: bigint | null;
|
|
9
|
+
paid: boolean;
|
|
10
|
+
amount: string | null;
|
|
11
|
+
token: string | null;
|
|
12
|
+
release: string | null;
|
|
13
|
+
} & {}>;
|
|
14
|
+
export declare const claimItem: import("../schema.js").Schema<{
|
|
15
|
+
intent: Address;
|
|
16
|
+
action: "claimed" | "dropped";
|
|
17
|
+
stake: string;
|
|
18
|
+
stake_outcome: "forfeited" | "held" | "returned" | "unknown";
|
|
19
|
+
signature: string;
|
|
20
|
+
at: bigint | null;
|
|
21
|
+
} & {}>;
|
|
22
|
+
type Tokens = (mint: Address, raw: bigint) => Promise<string>;
|
|
23
|
+
export declare function workOf(transport: Transport, wallet: Address, transactions: readonly EngineTransaction[], limit: number, tokens: Tokens): Promise<{
|
|
24
|
+
work: {
|
|
25
|
+
intent: Address;
|
|
26
|
+
signature: import("@solana/kit").Signature;
|
|
27
|
+
at: bigint | null;
|
|
28
|
+
paid: boolean;
|
|
29
|
+
amount: string | null;
|
|
30
|
+
token: "SOL" | "TEST" | Address | null;
|
|
31
|
+
release: string | null;
|
|
32
|
+
}[];
|
|
33
|
+
more: boolean;
|
|
34
|
+
}>;
|
|
35
|
+
export declare function claimsOf(transport: Transport, wallet: Address, transactions: readonly EngineTransaction[], limit: number): Promise<{
|
|
36
|
+
claims: {
|
|
37
|
+
intent: Address;
|
|
38
|
+
action: "claimed" | "dropped";
|
|
39
|
+
stake: string;
|
|
40
|
+
stake_outcome: "forfeited" | "held" | "returned" | "unknown";
|
|
41
|
+
signature: string;
|
|
42
|
+
at: bigint | null;
|
|
43
|
+
}[];
|
|
44
|
+
more: boolean;
|
|
45
|
+
}>;
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { decodeEvent, formatAmount, tokenName } from "@intent-engine/core";
|
|
2
|
+
import { deliveriesIn, earlier, loadClaimsOf, opensWith, recordedRelease, releaseShareOf, } from "@intent-engine/client";
|
|
3
|
+
import { account, choice, flag, nullable, object, text, time } from "../schema.js";
|
|
4
|
+
import { createdMint, heldMint, releaseLookup, releasedMint } from "./releases.js";
|
|
5
|
+
export const OWN_TRANSACTIONS = 250;
|
|
6
|
+
const ESCROW_EVENTS = 20;
|
|
7
|
+
const STAKE_TO_WORKER = 0;
|
|
8
|
+
const SOL_DECIMALS = 9;
|
|
9
|
+
export const STAKE_OUTCOMES = ["held", "returned", "forfeited", "unknown"];
|
|
10
|
+
const CLAIM_ACTIONS = ["claimed", "dropped"];
|
|
11
|
+
const landedAt = (what) => nullable(time(`unix seconds ${what} landed, when the cluster reports it`));
|
|
12
|
+
export const workItem = object({
|
|
13
|
+
intent: account("the escrow the work was announced to"),
|
|
14
|
+
signature: text("the announcement's transaction"),
|
|
15
|
+
at: landedAt("the announcement"),
|
|
16
|
+
paid: flag("whether a release of the escrow paid this wallet for this announcement"),
|
|
17
|
+
amount: nullable(text("whole tokens the release paid this wallet")),
|
|
18
|
+
token: nullable(text("SOL, TEST or the mint the release paid")),
|
|
19
|
+
release: nullable(text("the release's transaction")),
|
|
20
|
+
});
|
|
21
|
+
export const claimItem = object({
|
|
22
|
+
intent: account("the escrow whose claim this wallet took or dropped"),
|
|
23
|
+
action: choice(CLAIM_ACTIONS, "claimed: this wallet took the claim; dropped: it gave the claim up"),
|
|
24
|
+
stake: text("whole SOL the claim staked, or that dropping returned"),
|
|
25
|
+
stake_outcome: choice(STAKE_OUTCOMES, "held: the stake still sits on the claim; returned: it went back to this wallet; forfeited: it went to the escrow's owner; unknown: what became of it was not found"),
|
|
26
|
+
signature: text("the transaction that took or dropped the claim"),
|
|
27
|
+
at: landedAt("the claim or drop"),
|
|
28
|
+
});
|
|
29
|
+
const newestFirst = (items) => [...items].sort((a, b) => (a.slot === b.slot ? 0 : a.slot < b.slot ? 1 : -1));
|
|
30
|
+
function eventsIn(transactions) {
|
|
31
|
+
return transactions
|
|
32
|
+
.filter(({ failed }) => !failed)
|
|
33
|
+
.flatMap(({ signature, slot, blockTime, emitted }) => emitted.map((data) => decodeEvent(data)).flatMap((event) => (event === null ? [] : [{ ...event, signature, slot, blockTime }])));
|
|
34
|
+
}
|
|
35
|
+
async function paidFor(transport, delivery, wallet, lookup, tokens) {
|
|
36
|
+
const { release, transactions } = lookup;
|
|
37
|
+
if (release === null || !earlier(delivery, release.tx)) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
const event = release.event;
|
|
41
|
+
if (event.name !== "IntentAttested" && event.name !== "IntentSplit") {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
const recorded = recordedRelease(transactions, release.tx, event.fields.attestor);
|
|
45
|
+
if (recorded?.salt !== undefined && !opensWith(delivery, recorded.salt, recorded.sha256)) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
const share = await releaseShareOf(transport, { event, transaction: release.tx }, delivery.intent, wallet);
|
|
49
|
+
if (share === null) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
const payee = event.name === "IntentAttested" ? event.fields.payee : undefined;
|
|
53
|
+
const mint = releasedMint(release.tx, delivery.intent, payee) ?? createdMint(transactions, delivery.intent) ?? (await heldMint(transport, delivery.intent));
|
|
54
|
+
return {
|
|
55
|
+
amount: mint === undefined ? null : await tokens(mint, share),
|
|
56
|
+
token: mint === undefined ? null : (tokenName(mint) ?? mint),
|
|
57
|
+
release: release.tx.signature,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
export async function workOf(transport, wallet, transactions, limit, tokens) {
|
|
61
|
+
const announced = newestFirst(deliveriesIn(transactions).filter(({ worker }) => worker === wallet));
|
|
62
|
+
const lookups = new Map();
|
|
63
|
+
const work = [];
|
|
64
|
+
for (const delivery of announced.slice(0, limit)) {
|
|
65
|
+
const { intent } = delivery;
|
|
66
|
+
const lookup = lookups.get(intent) ?? releaseLookup(transport, intent);
|
|
67
|
+
lookups.set(intent, lookup);
|
|
68
|
+
const paid = await paidFor(transport, delivery, wallet, await lookup, tokens);
|
|
69
|
+
work.push({
|
|
70
|
+
intent,
|
|
71
|
+
signature: delivery.signature,
|
|
72
|
+
at: delivery.blockTime,
|
|
73
|
+
paid: paid !== null,
|
|
74
|
+
amount: paid?.amount ?? null,
|
|
75
|
+
token: paid?.token ?? null,
|
|
76
|
+
release: paid?.release ?? null,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return { work, more: announced.length > limit };
|
|
80
|
+
}
|
|
81
|
+
function claimsIn(transactions, wallet) {
|
|
82
|
+
return eventsIn(transactions).flatMap((event) => {
|
|
83
|
+
const { signature, slot, blockTime } = event;
|
|
84
|
+
if (event.name === "JobClaimed" && event.fields.worker === wallet) {
|
|
85
|
+
return [{ intent: event.fields.intent, action: "claimed", stake: event.fields.stake, signature, slot, blockTime }];
|
|
86
|
+
}
|
|
87
|
+
if (event.name === "ClaimDropped" && event.fields.worker === wallet) {
|
|
88
|
+
return [{ intent: event.fields.intent, action: "dropped", stake: event.fields.refunded, signature, slot, blockTime }];
|
|
89
|
+
}
|
|
90
|
+
return [];
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
function stakeEndsIn(transactions, wallet, intent) {
|
|
94
|
+
return eventsIn(transactions).flatMap((event) => {
|
|
95
|
+
const { signature, slot, blockTime } = event;
|
|
96
|
+
if (event.name === "ClaimDropped" && event.fields.worker === wallet && event.fields.intent === intent) {
|
|
97
|
+
return [{ outcome: "returned", signature, slot, blockTime }];
|
|
98
|
+
}
|
|
99
|
+
if (event.name === "StakeMoved" && event.fields.worker === wallet && event.fields.intent === intent) {
|
|
100
|
+
return [{ outcome: event.fields.role === STAKE_TO_WORKER ? "returned" : "forfeited", signature, slot, blockTime }];
|
|
101
|
+
}
|
|
102
|
+
return [];
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
const endAfter = (claim, ends) => ends.filter((end) => earlier(claim, end)).reduce((first, end) => (first === undefined || earlier(end, first) ? end : first), undefined);
|
|
106
|
+
async function heldBy(transport, wallet, intents) {
|
|
107
|
+
try {
|
|
108
|
+
const views = await loadClaimsOf(transport, intents);
|
|
109
|
+
return new Set(intents.filter((_, at) => views[at]?.worker === wallet));
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return new Set();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
export async function claimsOf(transport, wallet, transactions, limit) {
|
|
116
|
+
const found = newestFirst(claimsIn(transactions, wallet));
|
|
117
|
+
const shown = found.slice(0, limit);
|
|
118
|
+
const histories = new Map();
|
|
119
|
+
const outcomes = [];
|
|
120
|
+
for (const claim of shown) {
|
|
121
|
+
if (claim.action === "dropped") {
|
|
122
|
+
outcomes.push("returned");
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
let end = endAfter(claim, stakeEndsIn(transactions, wallet, claim.intent));
|
|
126
|
+
if (end === undefined) {
|
|
127
|
+
const history = histories.get(claim.intent) ?? (await transport.engineTransactions(ESCROW_EVENTS, claim.intent));
|
|
128
|
+
histories.set(claim.intent, history);
|
|
129
|
+
end = endAfter(claim, stakeEndsIn(history, wallet, claim.intent));
|
|
130
|
+
}
|
|
131
|
+
outcomes.push(end?.outcome ?? "unknown");
|
|
132
|
+
}
|
|
133
|
+
const open = [...new Set(shown.filter((claim, at) => claim.action === "claimed" && outcomes[at] === "unknown").map(({ intent }) => intent))];
|
|
134
|
+
const held = open.length === 0 ? new Set() : await heldBy(transport, wallet, open);
|
|
135
|
+
const claims = shown.map((claim, at) => ({
|
|
136
|
+
intent: claim.intent,
|
|
137
|
+
action: claim.action,
|
|
138
|
+
stake: formatAmount(claim.stake, SOL_DECIMALS),
|
|
139
|
+
stake_outcome: outcomes[at] === "unknown" && held.has(claim.intent) ? "held" : (outcomes[at] ?? "unknown"),
|
|
140
|
+
signature: claim.signature,
|
|
141
|
+
at: claim.blockTime,
|
|
142
|
+
}));
|
|
143
|
+
return { claims, more: found.length > limit };
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=history-work.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history-work.js","sourceRoot":"","sources":["../../../../src/agent/wallet/history-work.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { findIntentPda, formatAmount, kindName, tokenName } from "@intent-engine/core";
|
|
2
|
-
import { createClient, mintOf } from "@intent-engine/client";
|
|
2
|
+
import { createClient, mintOf, ownHistory, paidWalletsOf, transactionAt } from "@intent-engine/client";
|
|
3
3
|
import { define } from "../actions.js";
|
|
4
4
|
import { tool } from "../names.js";
|
|
5
5
|
import { account, amount, choice, flag, integer, list, nullable, object, optional, text, time } from "../schema.js";
|
|
6
6
|
import { signerOf } from "./guard.js";
|
|
7
|
+
import { claimItem, claimsOf, OWN_TRANSACTIONS, workItem, workOf } from "./history-work.js";
|
|
7
8
|
export const HISTORY_DEFAULT = 10;
|
|
8
9
|
export const HISTORY_MAX = 25;
|
|
9
10
|
const EVENTS_PER_INTENT = 20;
|
|
@@ -17,28 +18,39 @@ const ENDINGS = {
|
|
|
17
18
|
IntentCancelled: "cancelled",
|
|
18
19
|
IntentExpired: "expired",
|
|
19
20
|
};
|
|
21
|
+
async function paidWalletOf(transport, ending, intent) {
|
|
22
|
+
const { signature, slot, blockTime } = ending;
|
|
23
|
+
const transaction = (await transactionAt(transport, signature, intent)) ?? { signature, slot, blockTime, failed: false, emitted: [] };
|
|
24
|
+
return (await paidWalletsOf(transport, { event: ending, transaction }, intent))?.[0] ?? null;
|
|
25
|
+
}
|
|
20
26
|
export const walletHistory = define({
|
|
21
27
|
name: tool("wallet_history"),
|
|
22
28
|
title: "Show the wallet's history",
|
|
23
|
-
description: `Shows the user what this wallet did, newest first:
|
|
29
|
+
description: `Shows the user what this wallet did, newest first, read from the chain: orders (intents) it created and how each ended, closed ones included; work it announced with ${tool("wallet_deliver")} and whether a release paid it; claims it took or dropped and the stake's outcome. It leaves out transfers, releases it judged, fills of others' orders, and standby lines.`,
|
|
24
30
|
effect: "read",
|
|
25
|
-
input: object({
|
|
31
|
+
input: object({
|
|
32
|
+
limit: optional(integer(1, HISTORY_MAX, `how many of the newest intents, and of the newest announcements and claims, to show; default ${HISTORY_DEFAULT}`)),
|
|
33
|
+
}),
|
|
26
34
|
output: object({
|
|
27
|
-
wallet: account(),
|
|
35
|
+
wallet: account("this server's wallet, whose history this is"),
|
|
28
36
|
activity: list(object({
|
|
29
|
-
nonce: amount(),
|
|
30
|
-
intent: account(),
|
|
31
|
-
kind: text(),
|
|
32
|
-
outcome: choice(OUTCOMES),
|
|
37
|
+
nonce: amount("the intent's nonce, its number among this wallet's intents"),
|
|
38
|
+
intent: account("the intent's address"),
|
|
39
|
+
kind: text("the kind of intent, such as AttestedResult for an escrow or SwapExactIn for a swap"),
|
|
40
|
+
outcome: choice(OUTCOMES, "how it ended: open, filled, released, cancelled, expired, or unknown when its history was not found"),
|
|
33
41
|
sold: text("whole tokens the intent escrowed"),
|
|
34
42
|
sell_token: text("SOL, TEST or the mint"),
|
|
35
43
|
received: nullable(text("whole tokens delivered by the fill")),
|
|
36
44
|
receive_token: text("SOL, TEST or the mint"),
|
|
37
|
-
paid_to: nullable(account("the wallet a release paid")),
|
|
45
|
+
paid_to: nullable(account("the wallet a release paid: the owner of payee")),
|
|
46
|
+
payee: nullable(account("the token account a release paid into, owned by paid_to; for SOL it holds wrapped SOL")),
|
|
38
47
|
signature: nullable(text("the transaction that ended it")),
|
|
39
48
|
at: nullable(time("unix seconds of the last event, when the cluster reports it")),
|
|
40
|
-
}), HISTORY_MAX),
|
|
49
|
+
}), HISTORY_MAX, "the intents this wallet created, newest first"),
|
|
41
50
|
more: flag("true when older intents exist beyond limit"),
|
|
51
|
+
work: list(workItem, HISTORY_MAX, `the work this wallet announced with ${tool("wallet_deliver")}, newest first`),
|
|
52
|
+
claims: list(claimItem, HISTORY_MAX, "the claims this wallet took or dropped, newest first"),
|
|
53
|
+
more_work: flag(`true when older announcements or claims exist beyond limit, or this wallet has transactions older than the newest ${OWN_TRANSACTIONS} read`),
|
|
42
54
|
}),
|
|
43
55
|
run: async (ctx, input) => {
|
|
44
56
|
const wallet = (await signerOf(ctx)).address;
|
|
@@ -67,6 +79,7 @@ export const walletHistory = define({
|
|
|
67
79
|
const outcome = ending === undefined ? ((await ctx.transport.getAccount(intent)) === null ? "unknown" : "open") : (ENDINGS[ending.name] ?? "unknown");
|
|
68
80
|
const ended = fields(ending);
|
|
69
81
|
const delivered = outcome === "filled" ? ended["delivered"] : undefined;
|
|
82
|
+
const attested = ending?.name === "IntentAttested" ? ending : undefined;
|
|
70
83
|
activity.push({
|
|
71
84
|
nonce,
|
|
72
85
|
intent,
|
|
@@ -76,12 +89,17 @@ export const walletHistory = define({
|
|
|
76
89
|
sell_token: tokenName(inputMint) ?? inputMint,
|
|
77
90
|
received: delivered === undefined ? null : await tokens(outputMint, delivered),
|
|
78
91
|
receive_token: tokenName(outputMint) ?? outputMint,
|
|
79
|
-
paid_to:
|
|
92
|
+
paid_to: attested === undefined ? null : await paidWalletOf(ctx.transport, attested, intent),
|
|
93
|
+
payee: attested === undefined ? null : attested.fields.payee,
|
|
80
94
|
signature: ending?.signature ?? null,
|
|
81
95
|
at: (ending ?? events[0])?.blockTime ?? null,
|
|
82
96
|
});
|
|
83
97
|
}
|
|
84
|
-
|
|
98
|
+
const own = await ownHistory(ctx.transport, wallet, OWN_TRANSACTIONS);
|
|
99
|
+
const count = Number(limit);
|
|
100
|
+
const { work, more: moreWork } = await workOf(ctx.transport, wallet, own.transactions, count, tokens);
|
|
101
|
+
const { claims, more: moreClaims } = await claimsOf(ctx.transport, wallet, own.transactions, count);
|
|
102
|
+
return { wallet, activity, more: oldest > 0n, work, claims, more_work: moreWork || moreClaims || !own.complete };
|
|
85
103
|
},
|
|
86
104
|
});
|
|
87
105
|
//# sourceMappingURL=history.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../../../src/agent/wallet/history.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,YAAY,EAAqB,MAAM,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../../../src/agent/wallet/history.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import type { Address } from "@solana/kit";
|
|
|
2
2
|
import { mintOf } from "@intent-engine/client";
|
|
3
3
|
import type { AgentContext } from "../actions.js";
|
|
4
4
|
import type { Call } from "../claims.js";
|
|
5
|
+
import { type AfterCreate } from "../create.js";
|
|
5
6
|
import { type Schema } from "../schema.js";
|
|
6
7
|
import { orderSchema } from "../shapes.js";
|
|
7
8
|
export declare const offerFields: {
|
|
@@ -47,6 +48,7 @@ export declare function offered(ctx: AgentContext, call: Call, input: {
|
|
|
47
48
|
buy: string;
|
|
48
49
|
pay_to?: Address | undefined;
|
|
49
50
|
send?: boolean | undefined;
|
|
51
|
+
after?: AfterCreate | undefined;
|
|
50
52
|
}, terms: (sold: Token, bought: Token, now: bigint, inputMint: Address, outputMint: Address) => Promise<Terms> | Terms, done?: string): Promise<{
|
|
51
53
|
sent: boolean;
|
|
52
54
|
next: string;
|