@intent-engine/cli 0.1.42 → 0.1.44
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/accounts.d.ts +4 -2
- package/dist/src/accounts.js +5 -4
- package/dist/src/accounts.js.map +1 -1
- package/dist/src/add-to.d.ts +2 -0
- package/dist/src/add-to.js +9 -3
- package/dist/src/add-to.js.map +1 -1
- package/dist/src/admin-commands.d.ts +22 -1
- package/dist/src/admin-commands.js +44 -12
- package/dist/src/admin-commands.js.map +1 -1
- package/dist/src/agent/actions.d.ts +1 -0
- package/dist/src/agent/actions.js +15 -1
- package/dist/src/agent/actions.js.map +1 -1
- package/dist/src/agent/budget.d.ts +5 -5
- package/dist/src/agent/budget.js +26 -6
- package/dist/src/agent/budget.js.map +1 -1
- package/dist/src/agent/claims.d.ts +2 -1
- package/dist/src/agent/claims.js +1 -1
- package/dist/src/agent/claims.js.map +1 -1
- package/dist/src/agent/create.d.ts +16 -7
- package/dist/src/agent/create.js +25 -3
- package/dist/src/agent/create.js.map +1 -1
- package/dist/src/agent/jobs.js +8 -3
- package/dist/src/agent/jobs.js.map +1 -1
- package/dist/src/agent/mandate-agent.js +3 -2
- package/dist/src/agent/mandate-agent.js.map +1 -1
- package/dist/src/agent/mandate-revoke.js +1 -1
- package/dist/src/agent/mandate-revoke.js.map +1 -1
- package/dist/src/agent/owner.js +4 -2
- package/dist/src/agent/owner.js.map +1 -1
- package/dist/src/agent/prepare.d.ts +1 -1
- package/dist/src/agent/prepare.js +9 -2
- package/dist/src/agent/prepare.js.map +1 -1
- package/dist/src/agent/problems.d.ts +18 -0
- package/dist/src/agent/problems.js +39 -15
- package/dist/src/agent/problems.js.map +1 -1
- package/dist/src/agent/profile.d.ts +1 -0
- package/dist/src/agent/profile.js +30 -5
- package/dist/src/agent/profile.js.map +1 -1
- package/dist/src/agent/read.js +3 -4
- package/dist/src/agent/read.js.map +1 -1
- package/dist/src/agent/reputation.js +16 -7
- package/dist/src/agent/reputation.js.map +1 -1
- package/dist/src/agent/sales.js +17 -23
- package/dist/src/agent/sales.js.map +1 -1
- package/dist/src/agent/settle.js +1 -0
- package/dist/src/agent/settle.js.map +1 -1
- package/dist/src/agent/signed-prepare.js +3 -2
- package/dist/src/agent/signed-prepare.js.map +1 -1
- package/dist/src/agent/signed-relay.d.ts +1 -1
- package/dist/src/agent/signed-relay.js +2 -1
- package/dist/src/agent/signed-relay.js.map +1 -1
- package/dist/src/agent/signed-submit.js +7 -5
- package/dist/src/agent/signed-submit.js.map +1 -1
- package/dist/src/agent/signed-terms.d.ts +1 -5
- package/dist/src/agent/spec.js +16 -4
- package/dist/src/agent/spec.js.map +1 -1
- package/dist/src/agent/wallet/account.js +2 -1
- package/dist/src/agent/wallet/account.js.map +1 -1
- package/dist/src/agent/wallet/attest.d.ts +2 -0
- package/dist/src/agent/wallet/attest.js +46 -24
- package/dist/src/agent/wallet/attest.js.map +1 -1
- package/dist/src/agent/wallet/committee.js +29 -17
- package/dist/src/agent/wallet/committee.js.map +1 -1
- package/dist/src/agent/wallet/delivery.d.ts +4 -1
- package/dist/src/agent/wallet/delivery.js +80 -23
- package/dist/src/agent/wallet/delivery.js.map +1 -1
- package/dist/src/agent/wallet/escrow.d.ts +1 -0
- package/dist/src/agent/wallet/escrow.js +81 -18
- package/dist/src/agent/wallet/escrow.js.map +1 -1
- package/dist/src/agent/wallet/fills.js +4 -3
- package/dist/src/agent/wallet/fills.js.map +1 -1
- package/dist/src/agent/wallet/guard.d.ts +32 -0
- package/dist/src/agent/wallet/guard.js +131 -9
- package/dist/src/agent/wallet/guard.js.map +1 -1
- package/dist/src/agent/wallet/history.js +2 -2
- package/dist/src/agent/wallet/history.js.map +1 -1
- package/dist/src/agent/wallet/offer.d.ts +18 -0
- package/dist/src/agent/wallet/offer.js +2 -1
- package/dist/src/agent/wallet/offer.js.map +1 -1
- package/dist/src/agent/wallet/openings.d.ts +37 -0
- package/dist/src/agent/wallet/openings.js +73 -0
- package/dist/src/agent/wallet/openings.js.map +1 -0
- package/dist/src/agent/wallet/receipt.d.ts +6 -0
- package/dist/src/agent/wallet/receipt.js +21 -3
- package/dist/src/agent/wallet/receipt.js.map +1 -1
- package/dist/src/agent/wallet/record.d.ts +3 -2
- package/dist/src/agent/wallet/record.js +16 -10
- package/dist/src/agent/wallet/record.js.map +1 -1
- package/dist/src/agent/wallet/split.d.ts +1 -0
- package/dist/src/agent/wallet/split.js +84 -57
- package/dist/src/agent/wallet/split.js.map +1 -1
- package/dist/src/agent/wallet/trade.js +2 -1
- package/dist/src/agent/wallet/trade.js.map +1 -1
- package/dist/src/agent/wallet/unwrap.js +2 -1
- package/dist/src/agent/wallet/unwrap.js.map +1 -1
- package/dist/src/agent/work-claims.js +3 -2
- package/dist/src/agent/work-claims.js.map +1 -1
- package/dist/src/arg-admin.d.ts +1 -1
- package/dist/src/arg-admin.js +4 -0
- package/dist/src/arg-admin.js.map +1 -1
- package/dist/src/arg-options.d.ts +70 -2
- package/dist/src/arg-options.js +36 -10
- package/dist/src/arg-options.js.map +1 -1
- package/dist/src/arg-solve.d.ts +6 -0
- package/dist/src/arg-solve.js +46 -1
- package/dist/src/arg-solve.js.map +1 -1
- package/dist/src/arg-usage.d.ts +2 -2
- package/dist/src/arg-usage.js +40 -36
- package/dist/src/arg-usage.js.map +1 -1
- package/dist/src/arg-values.d.ts +20 -1
- package/dist/src/arg-values.js +72 -2
- package/dist/src/arg-values.js.map +1 -1
- package/dist/src/args.d.ts +4 -1
- package/dist/src/args.js +39 -9
- package/dist/src/args.js.map +1 -1
- package/dist/src/claim-commands.js +24 -4
- package/dist/src/claim-commands.js.map +1 -1
- package/dist/src/clusters.d.ts +1 -0
- package/dist/src/clusters.js +1 -0
- package/dist/src/clusters.js.map +1 -1
- package/dist/src/command-types.d.ts +49 -1
- package/dist/src/commands.js +37 -8
- package/dist/src/commands.js.map +1 -1
- package/dist/src/committee-commands.d.ts +13 -2
- package/dist/src/committee-commands.js +58 -11
- package/dist/src/committee-commands.js.map +1 -1
- package/dist/src/crank.d.ts +3 -3
- package/dist/src/crank.js +11 -9
- package/dist/src/crank.js.map +1 -1
- package/dist/src/float-commands.d.ts +17 -0
- package/dist/src/float-commands.js +94 -0
- package/dist/src/float-commands.js.map +1 -0
- package/dist/src/flow-commands.js +2 -2
- package/dist/src/flow-commands.js.map +1 -1
- package/dist/src/flows.d.ts +2 -2
- package/dist/src/flows.js +8 -2
- package/dist/src/flows.js.map +1 -1
- package/dist/src/job-args.js +16 -3
- package/dist/src/job-args.js.map +1 -1
- package/dist/src/job-commands.js +39 -10
- package/dist/src/job-commands.js.map +1 -1
- package/dist/src/job-filters.d.ts +15 -3
- package/dist/src/job-filters.js +31 -6
- package/dist/src/job-filters.js.map +1 -1
- package/dist/src/judge-digest.d.ts +7 -0
- package/dist/src/judge-digest.js +27 -0
- package/dist/src/judge-digest.js.map +1 -0
- package/dist/src/judge-watch.js +16 -6
- package/dist/src/judge-watch.js.map +1 -1
- package/dist/src/judge.d.ts +18 -1
- package/dist/src/judge.js +87 -17
- package/dist/src/judge.js.map +1 -1
- package/dist/src/ledger-keys.d.ts +4 -1
- package/dist/src/ledger-keys.js +21 -5
- package/dist/src/ledger-keys.js.map +1 -1
- package/dist/src/legacy-commands.d.ts +8 -0
- package/dist/src/legacy-commands.js +94 -0
- package/dist/src/legacy-commands.js.map +1 -0
- package/dist/src/main.d.ts +3 -0
- package/dist/src/main.js +5 -0
- package/dist/src/main.js.map +1 -1
- package/dist/src/migrate-commands.d.ts +10 -0
- package/dist/src/migrate-commands.js +127 -0
- package/dist/src/migrate-commands.js.map +1 -0
- package/dist/src/monitor-args.d.ts +2 -0
- package/dist/src/monitor-args.js +9 -2
- package/dist/src/monitor-args.js.map +1 -1
- package/dist/src/monitor-fills.d.ts +2 -2
- package/dist/src/monitor-fills.js +9 -5
- package/dist/src/monitor-fills.js.map +1 -1
- package/dist/src/monitor-limits.d.ts +25 -0
- package/dist/src/monitor-limits.js +58 -0
- package/dist/src/monitor-limits.js.map +1 -0
- package/dist/src/monitor.d.ts +10 -1
- package/dist/src/monitor.js +81 -31
- package/dist/src/monitor.js.map +1 -1
- package/dist/src/release-simulation.d.ts +3 -2
- package/dist/src/release-simulation.js +1 -0
- package/dist/src/release-simulation.js.map +1 -1
- package/dist/src/sealed-commands.d.ts +6 -0
- package/dist/src/sealed-commands.js +19 -1
- package/dist/src/sealed-commands.js.map +1 -1
- package/dist/src/solve-commands.d.ts +3 -1
- package/dist/src/solve-commands.js +31 -4
- package/dist/src/solve-commands.js.map +1 -1
- package/dist/src/trust-args.d.ts +4 -2
- package/dist/src/trust-args.js +24 -7
- package/dist/src/trust-args.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/wallet.d.ts +8 -2
- package/dist/src/wallet.js +44 -7
- package/dist/src/wallet.js.map +1 -1
- package/package.json +5 -4
package/dist/src/job-args.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TOKEN_AMOUNT_PATTERN } from "@intent-engine/core";
|
|
2
|
-
import { confirmUrlOf, key, memoUrlOf, noSub, parseBounded, required, sha256Of, u64, UsageError } from "./arg-values.js";
|
|
2
|
+
import { confirmUrlOf, encryptionKeypairOf, feePayerOf, key, memoUrlOf, noSub, parseBounded, required, sha256Of, u64, UsageError } from "./arg-values.js";
|
|
3
3
|
import { JUDGE_TIMEOUT, MAX_JUDGE_TIMEOUT, maxPagesOf, releaseOption, runOf } from "./command-builders.js";
|
|
4
4
|
import { sandboxOf } from "./sandbox.js";
|
|
5
5
|
export const JUDGE_WATCH_INTERVAL = 30;
|
|
@@ -33,6 +33,16 @@ function minPayOf(values) {
|
|
|
33
33
|
return text;
|
|
34
34
|
}
|
|
35
35
|
export function jobArgsOf(verb, sub, remote, values) {
|
|
36
|
+
if (verb === "judge" && sub === "digest") {
|
|
37
|
+
return {
|
|
38
|
+
name: "judge-digest",
|
|
39
|
+
...remote,
|
|
40
|
+
owner: key(values, "owner"),
|
|
41
|
+
nonce: u64(values, "nonce"),
|
|
42
|
+
payTo: key(values, "pay-to"),
|
|
43
|
+
result: values.result === undefined ? undefined : u64(values, "result"),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
36
46
|
noSub(sub);
|
|
37
47
|
switch (verb) {
|
|
38
48
|
case "jobs":
|
|
@@ -77,10 +87,11 @@ export function jobArgsOf(verb, sub, remote, values) {
|
|
|
77
87
|
case "judge": {
|
|
78
88
|
const sandbox = sandboxOf(values);
|
|
79
89
|
const watch = watchOf(values);
|
|
90
|
+
const keypair = required(values, "keypair");
|
|
80
91
|
return {
|
|
81
92
|
name: "judge",
|
|
82
93
|
...remote,
|
|
83
|
-
keypair
|
|
94
|
+
keypair,
|
|
84
95
|
yes: values.yes === true,
|
|
85
96
|
owner: key(values, "owner"),
|
|
86
97
|
nonce: u64(values, "nonce"),
|
|
@@ -95,7 +106,9 @@ export function jobArgsOf(verb, sub, remote, values) {
|
|
|
95
106
|
maxPages: maxPagesOf(values),
|
|
96
107
|
check: values.check,
|
|
97
108
|
sandbox,
|
|
98
|
-
...
|
|
109
|
+
...feePayerOf(values, keypair),
|
|
110
|
+
...encryptionKeypairOf(values),
|
|
111
|
+
...confirmUrlOf(values, remote.url),
|
|
99
112
|
};
|
|
100
113
|
}
|
|
101
114
|
}
|
package/dist/src/job-args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-args.js","sourceRoot":"","sources":["../../src/job-args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"job-args.js","sourceRoot":"","sources":["../../src/job-args.ts"],"names":[],"mappings":"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"}
|
package/dist/src/job-commands.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { getAddressDecoder } from "@solana/kit";
|
|
2
2
|
import { findIntentPda, formatAmount } from "@intent-engine/core";
|
|
3
|
-
import { createClient, deliveryInstructions, deliveryRecord, loadConfig, mintOf, } from "@intent-engine/client";
|
|
3
|
+
import { createClient, deliveryInstructions, deliveryRecord, isLedgerPath, loadConfig, mintOf, publishedSalts, recordedStanding, releaseStandingAt, } from "@intent-engine/client";
|
|
4
4
|
import { escrowReceipt, recordingOf } from "./agent/wallet.js";
|
|
5
|
-
import { ANNOUNCE_FIRST } from "./agent/wallet/delivery.js";
|
|
5
|
+
import { ANNOUNCE_FIRST, sealedForLine } from "./agent/wallet/delivery.js";
|
|
6
6
|
import { previewed } from "./admin-commands.js";
|
|
7
7
|
import { artifactSha256 } from "./artifact.js";
|
|
8
|
-
import { pricedJobs } from "./job-filters.js";
|
|
8
|
+
import { freezeFields, pricedJobs } from "./job-filters.js";
|
|
9
9
|
import { transactionSigner } from "./ledger-keys.js";
|
|
10
|
+
import { loadEncryptionKeys } from "./sealed-commands.js";
|
|
10
11
|
export const NOT_RELEASED = "no release of this escrow is among its recent transactions; show intent says whether it is still open, and --release with the release's signature reads a release directly";
|
|
11
12
|
const TOKEN_ACCOUNT_HEAD = 64;
|
|
12
13
|
async function receiptOf(transport, url, intent, wanted) {
|
|
@@ -18,6 +19,10 @@ async function receiptOf(transport, url, intent, wanted) {
|
|
|
18
19
|
return { intent, released: false, next: NOT_RELEASED };
|
|
19
20
|
}
|
|
20
21
|
const recorded = release.deliveredSha256;
|
|
22
|
+
const salt = release.deliveredSalt;
|
|
23
|
+
const standing = recorded === undefined || salt === undefined
|
|
24
|
+
? undefined
|
|
25
|
+
: await releaseStandingAt(transport, intent, release.signature, { createdAt: created?.blockTime ?? null, from: created?.slot ?? null });
|
|
21
26
|
const common = {
|
|
22
27
|
intent,
|
|
23
28
|
released: true,
|
|
@@ -26,6 +31,8 @@ async function receiptOf(transport, url, intent, wanted) {
|
|
|
26
31
|
signature: release.signature,
|
|
27
32
|
...(recorded === undefined ? {} : { delivered_sha256: recorded }),
|
|
28
33
|
...(wanted === undefined ? {} : { matches: wanted === recorded }),
|
|
34
|
+
...(salt === undefined ? {} : { delivered_salt: salt }),
|
|
35
|
+
...(standing === undefined || standing === null ? {} : { valid: standing.valid, ...(standing.refutedBy === null ? {} : { refuted_by: standing.refutedBy }) }),
|
|
29
36
|
};
|
|
30
37
|
const paid = async (net) => formatAmount(net, mint === undefined ? undefined : (await mintOf(transport, mint)).decimals);
|
|
31
38
|
if (release.name === "IntentSplit") {
|
|
@@ -42,32 +49,39 @@ async function receiptOf(transport, url, intent, wanted) {
|
|
|
42
49
|
paid: await paid(release.fields.net),
|
|
43
50
|
};
|
|
44
51
|
}
|
|
52
|
+
function saltOf(delivery, openings) {
|
|
53
|
+
const [salt] = publishedSalts(delivery, openings);
|
|
54
|
+
return salt === undefined ? {} : { opened_salt: salt };
|
|
55
|
+
}
|
|
45
56
|
export async function jobCommand(command, runtime, transport) {
|
|
46
57
|
switch (command.name) {
|
|
47
58
|
case "jobs":
|
|
48
59
|
return {
|
|
49
|
-
jobs: (await pricedJobs(transport, command, (await loadConfig(transport)).config)).map(({ netPay, payable, claimedBy, claimEnds, waiting, ...job }) => ({
|
|
60
|
+
jobs: (await pricedJobs(transport, command, (await loadConfig(transport)).config)).map(({ netPay, payable, claimedBy, claimEnds, waiting, freezeAuthority, ...job }) => ({
|
|
50
61
|
...job,
|
|
51
62
|
net_pay: netPay,
|
|
52
63
|
payable,
|
|
53
64
|
claimed_by: claimedBy,
|
|
54
65
|
claim_ends: claimEnds,
|
|
55
66
|
waiting,
|
|
67
|
+
...freezeFields(freezeAuthority, job.owner),
|
|
56
68
|
})),
|
|
57
69
|
};
|
|
58
70
|
case "deliver": {
|
|
59
71
|
const worker = await transactionSigner(runtime, command.keypair);
|
|
60
72
|
const { intent, workUrl } = command;
|
|
61
73
|
const sha256 = "sha256" in command ? command.sha256 : await artifactSha256(command.artifact);
|
|
62
|
-
const { attestor, instructions, commitment, sealedTo } = await deliveryInstructions(transport, { worker, intent, sha256, url: workUrl });
|
|
74
|
+
const { attestor, instructions, commitment, check, sealedTo, sealedFor } = await deliveryInstructions(transport, { worker, intent, sha256, url: workUrl });
|
|
63
75
|
const shown = {
|
|
64
76
|
intent,
|
|
65
77
|
attestor,
|
|
66
78
|
commitment,
|
|
79
|
+
check,
|
|
67
80
|
summary: [
|
|
68
|
-
`Announces: the work with sha256 ${sha256}, for the proof escrow ${intent}, as the commitment ${commitment}, which binds it to ${worker.address}`,
|
|
69
|
-
`Seals: the url ${workUrl}, so only ${sealedTo.length === 1 ? `the judge ${attestor}` : `the ${sealedTo.length} committee members`} can read it`,
|
|
81
|
+
`Announces: the work with sha256 ${sha256}, for the proof escrow ${intent}, as the commitment ${commitment}, which binds it to ${worker.address} and a salt only its key derives`,
|
|
82
|
+
`Seals: the salt and the url ${workUrl}, so only ${sealedTo.length === 1 ? `the judge ${attestor}` : `the ${sealedTo.length} committee members`} can read it`,
|
|
70
83
|
`Notifies: its judge ${attestor}, with a transfer of 0 lamports from ${worker.address}, which signs and pays the fee`,
|
|
84
|
+
...sealedFor.map(sealedForLine),
|
|
71
85
|
],
|
|
72
86
|
warnings: [ANNOUNCE_FIRST],
|
|
73
87
|
};
|
|
@@ -82,17 +96,32 @@ export async function jobCommand(command, runtime, transport) {
|
|
|
82
96
|
}
|
|
83
97
|
case "record-delivery": {
|
|
84
98
|
const judge = await runtime.loadSigner(command.keypair);
|
|
85
|
-
const
|
|
99
|
+
const keypair = isLedgerPath(command.keypair) ? undefined : await runtime.loadKeypair(command.keypair);
|
|
100
|
+
const recording = await recordingOf(transport, judge, command.owner, command.nonce, command.sha256, command.release, keypair);
|
|
86
101
|
const { intent, release, sha256, memo, summary, instructions } = recording;
|
|
87
102
|
return previewed(transport, instructions, judge, { intent, release, sha256, memo, summary }, command.yes);
|
|
88
103
|
}
|
|
89
104
|
case "deliveries": {
|
|
90
|
-
const
|
|
105
|
+
const own = command.judgeKeypair === undefined ? [] : [await runtime.loadKeypair(command.judgeKeypair)];
|
|
106
|
+
const sealed = await loadEncryptionKeys(runtime, command.encryptionKeypairs);
|
|
107
|
+
const keypair = [...own, ...sealed];
|
|
91
108
|
const record = await deliveryRecord(transport, command.attestor, command.intent, command.maxPages, keypair);
|
|
109
|
+
const release = await recordedStanding(transport, command.intent, record);
|
|
92
110
|
return {
|
|
93
111
|
intent: command.intent,
|
|
94
112
|
complete: record.complete,
|
|
95
|
-
deliveries: record.deliveries.map((
|
|
113
|
+
deliveries: record.deliveries.map((delivery) => ({
|
|
114
|
+
worker: delivery.worker,
|
|
115
|
+
commitment: delivery.commitment,
|
|
116
|
+
check: delivery.check,
|
|
117
|
+
signature: delivery.signature,
|
|
118
|
+
slot: delivery.slot,
|
|
119
|
+
...(delivery.url === "" ? {} : { url: delivery.url }),
|
|
120
|
+
...saltOf(delivery, record.openings),
|
|
121
|
+
})),
|
|
122
|
+
...(release === null
|
|
123
|
+
? {}
|
|
124
|
+
: { release: { signature: release.signature, sha256: release.sha256, valid: release.valid, ...(release.refutedBy === null ? {} : { refuted_by: release.refutedBy }) } }),
|
|
96
125
|
};
|
|
97
126
|
}
|
|
98
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-commands.js","sourceRoot":"","sources":["../../src/job-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EACL,YAAY,EACZ,oBAAoB,
|
|
1
|
+
{"version":3,"file":"job-commands.js","sourceRoot":"","sources":["../../src/job-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Address } from "@solana/kit";
|
|
2
|
-
import { type Job, type JobClaim, type JobPay, type PayTerms, type Transport } from "@intent-engine/client";
|
|
2
|
+
import { type Job, type JobClaim, type JobPay, type MintView, type PayTerms, type Transport } from "@intent-engine/client";
|
|
3
3
|
export type JobsWanted = {
|
|
4
4
|
attestor?: Address | undefined;
|
|
5
5
|
mint?: Address | undefined;
|
|
@@ -8,6 +8,18 @@ export type JobsWanted = {
|
|
|
8
8
|
};
|
|
9
9
|
export declare function leastUnits(tokens: string, decimals: number): bigint;
|
|
10
10
|
export type DecimalsOf = (mint: Address) => Promise<number>;
|
|
11
|
-
export
|
|
11
|
+
export type MintsOf = (mint: Address) => Promise<MintView>;
|
|
12
|
+
export declare function mintsOnce(transport: Transport): MintsOf;
|
|
13
|
+
export declare function decimalsOnce(transport: Transport, mintsOf?: MintsOf): DecimalsOf;
|
|
14
|
+
export declare function freezeAuthorityRead(read: Promise<MintView>): Promise<Address | null>;
|
|
15
|
+
export declare const freezeWarning: (authority: Address, owner: Address) => string;
|
|
16
|
+
export type FreezeFields = {
|
|
17
|
+
freeze_authority: Address | null;
|
|
18
|
+
freeze_warning?: string;
|
|
19
|
+
};
|
|
20
|
+
export declare const freezeFields: (authority: Address | null, owner: Address) => FreezeFields;
|
|
12
21
|
export declare function jobsWanted(transport: Transport, { attestor, mint, minPay, unclaimed }: JobsWanted, decimalsOf?: DecimalsOf): Promise<Job[]>;
|
|
13
|
-
export
|
|
22
|
+
export type PricedJob = Job & JobPay & JobClaim & {
|
|
23
|
+
freezeAuthority: Address | null;
|
|
24
|
+
};
|
|
25
|
+
export declare function pricedJobs(transport: Transport, wanted: JobsWanted, terms: PayTerms): Promise<PricedJob[]>;
|
package/dist/src/job-filters.js
CHANGED
|
@@ -5,15 +5,30 @@ export function leastUnits(tokens, decimals) {
|
|
|
5
5
|
const finer = /[1-9]/.test(fraction.slice(decimals)) ? 1n : 0n;
|
|
6
6
|
return BigInt(whole === "" ? "0" : whole) * 10n ** BigInt(decimals) + BigInt(kept === "" ? "0" : kept) + finer;
|
|
7
7
|
}
|
|
8
|
-
const latestFirst = (a, b) => (a.expiresAt === b.expiresAt ? 0 :
|
|
9
|
-
export function
|
|
8
|
+
const latestFirst = (a, b) => (a.expiresAt === b.expiresAt ? 0 : Number(b.expiresAt - a.expiresAt));
|
|
9
|
+
export function mintsOnce(transport) {
|
|
10
10
|
const seen = new Map();
|
|
11
11
|
return (mint) => {
|
|
12
|
-
const known = seen.get(mint) ?? mintOf(transport, mint)
|
|
12
|
+
const known = seen.get(mint) ?? mintOf(transport, mint);
|
|
13
13
|
seen.set(mint, known);
|
|
14
14
|
return known;
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
+
export function decimalsOnce(transport, mintsOf = mintsOnce(transport)) {
|
|
18
|
+
return async (mint) => (await mintsOf(mint)).decimals;
|
|
19
|
+
}
|
|
20
|
+
export async function freezeAuthorityRead(read) {
|
|
21
|
+
try {
|
|
22
|
+
return (await read).freezeAuthority;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export const freezeWarning = (authority, owner) => authority === owner
|
|
29
|
+
? `the escrow's owner ${owner} holds the freeze authority of this job's token and can freeze the payment`
|
|
30
|
+
: `${authority} holds the freeze authority of this job's token and can freeze the payment`;
|
|
31
|
+
export const freezeFields = (authority, owner) => authority === null ? { freeze_authority: null } : { freeze_authority: authority, freeze_warning: freezeWarning(authority, owner) };
|
|
17
32
|
export async function jobsWanted(transport, { attestor, mint, minPay, unclaimed }, decimalsOf = decimalsOnce(transport)) {
|
|
18
33
|
if (minPay === undefined) {
|
|
19
34
|
return jobsOf(transport, { attestor, mint, unclaimed });
|
|
@@ -24,9 +39,19 @@ export async function jobsWanted(transport, { attestor, mint, minPay, unclaimed
|
|
|
24
39
|
return lists.flat().sort(latestFirst).slice(0, JOBS_LIMIT);
|
|
25
40
|
}
|
|
26
41
|
export async function pricedJobs(transport, wanted, terms) {
|
|
27
|
-
const
|
|
42
|
+
const mintsOf = mintsOnce(transport);
|
|
43
|
+
const decimalsOf = decimalsOnce(transport, mintsOf);
|
|
28
44
|
const jobs = await jobsWanted(transport, wanted, decimalsOf);
|
|
29
|
-
const [pays, claims] = await Promise.all([
|
|
30
|
-
|
|
45
|
+
const [pays, claims, freezes] = await Promise.all([
|
|
46
|
+
jobPays(transport, jobs, terms, decimalsOf),
|
|
47
|
+
loadClaimsOf(transport, jobs.map(({ intent }) => intent)),
|
|
48
|
+
Promise.all(jobs.map(({ inputMint }) => freezeAuthorityRead(mintsOf(inputMint)))),
|
|
49
|
+
]);
|
|
50
|
+
return jobs.map((job, i) => ({
|
|
51
|
+
...job,
|
|
52
|
+
...(pays[i] ?? { netPay: "0", payable: false }),
|
|
53
|
+
...jobClaimOf(claims[i] ?? null),
|
|
54
|
+
freezeAuthority: freezes[i] ?? null,
|
|
55
|
+
}));
|
|
31
56
|
}
|
|
32
57
|
//# sourceMappingURL=job-filters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-filters.js","sourceRoot":"","sources":["../../src/job-filters.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,UAAU,EAEV,OAAO,EACP,UAAU,EACV,MAAM,EACN,YAAY,EACZ,MAAM,
|
|
1
|
+
{"version":3,"file":"job-filters.js","sourceRoot":"","sources":["../../src/job-filters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type Transport } from "@intent-engine/client";
|
|
2
|
+
import type { Command } from "./command-types.js";
|
|
3
|
+
export type JudgeDigestCommand = Extract<Command, {
|
|
4
|
+
name: "judge-digest";
|
|
5
|
+
}>;
|
|
6
|
+
export declare const DIGEST_NEXT = "the Ledger shows this digest when it signs the release; compare the two before pressing approve, and reject on any difference";
|
|
7
|
+
export declare function judgeDigest(command: JudgeDigestCommand, transport: Transport): Promise<object>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { decodeParams, Kind } from "@intent-engine/core";
|
|
2
|
+
import { createClient, loadIntent } from "@intent-engine/client";
|
|
3
|
+
import { JudgeRefused } from "./judge-errors.js";
|
|
4
|
+
export const DIGEST_NEXT = "the Ledger shows this digest when it signs the release; compare the two before pressing approve, and reject on any difference";
|
|
5
|
+
const hex = (bytes) => Buffer.from(bytes).toString("hex");
|
|
6
|
+
export async function judgeDigest(command, transport) {
|
|
7
|
+
const { address, intent } = await loadIntent(transport, command.owner, command.nonce);
|
|
8
|
+
const params = decodeParams(intent.kind, Uint8Array.from(intent.params));
|
|
9
|
+
if (params.kind !== Kind.AttestedResult || params.specHash.every((b) => b === 0)) {
|
|
10
|
+
throw new JudgeRefused(`intent ${address} is not a proof escrow: an AttestedResult intent that commits a spec hash`);
|
|
11
|
+
}
|
|
12
|
+
const result = command.result ?? params.minResult;
|
|
13
|
+
if (result < params.minResult || result > params.maxResult) {
|
|
14
|
+
throw new JudgeRefused(`--result ${result} lies outside the results intent ${address} accepts, ${params.minResult} to ${params.maxResult}`);
|
|
15
|
+
}
|
|
16
|
+
const ballot = await createClient({ url: command.url, transport }).proofBallot({ owner: command.owner, nonce: command.nonce, payTo: command.payTo, result });
|
|
17
|
+
return {
|
|
18
|
+
intent: ballot.intent,
|
|
19
|
+
judge: ballot.attestor,
|
|
20
|
+
pay_to: command.payTo,
|
|
21
|
+
payee: ballot.payee,
|
|
22
|
+
result,
|
|
23
|
+
digest: hex(ballot.digest),
|
|
24
|
+
next: DIGEST_NEXT,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=judge-digest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"judge-digest.js","sourceRoot":"","sources":["../../src/judge-digest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAkB,MAAM,uBAAuB,CAAC;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIjD,MAAM,CAAC,MAAM,WAAW,GACtB,+HAA+H,CAAC;AAElI,MAAM,GAAG,GAAG,CAAC,KAAiB,EAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAE9E,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B,EAAE,SAAoB;IACjF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACjF,MAAM,IAAI,YAAY,CAAC,UAAU,OAAO,2EAA2E,CAAC,CAAC;IACvH,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC;IAClD,IAAI,MAAM,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC3D,MAAM,IAAI,YAAY,CAAC,YAAY,MAAM,oCAAoC,OAAO,aAAa,MAAM,CAAC,SAAS,OAAO,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAC9I,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7J,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,QAAQ;QACtB,MAAM,EAAE,OAAO,CAAC,KAAK;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM;QACN,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;QAC1B,IAAI,EAAE,WAAW;KAClB,CAAC;AACJ,CAAC"}
|
package/dist/src/judge-watch.js
CHANGED
|
@@ -2,14 +2,15 @@ import { createHash } from "node:crypto";
|
|
|
2
2
|
import { readFile } from "node:fs/promises";
|
|
3
3
|
import { resolve } from "node:path";
|
|
4
4
|
import { getIntentDecoder, INTENT_ENGINE_PROGRAM_ADDRESS, IntentStatus } from "@intent-engine/core";
|
|
5
|
-
import { chainTime, deliveryRecord } from "@intent-engine/client";
|
|
5
|
+
import { chainTime, deliveryRecord, deviceJudgeReady, isDevice, unopenedOf } from "@intent-engine/client";
|
|
6
6
|
import { removeCopy } from "./artifact.js";
|
|
7
7
|
import { holdSignals } from "./check-process.js";
|
|
8
8
|
import { DeliveryUnfit, fetchDelivery } from "./delivery-fetch.js";
|
|
9
9
|
import { JudgeInterrupted, JudgeRefused } from "./judge-errors.js";
|
|
10
|
-
import { escrowFor, judge, pagesRead } from "./judge.js";
|
|
10
|
+
import { escrowFor, historyRefused, judge, judgeOpeners, pagesRead, unopenedRefusal } from "./judge.js";
|
|
11
|
+
import { messageSigner } from "./ledger-keys.js";
|
|
11
12
|
export const SEALED_ELSEWHERE = "is sealed to other wallets than this judge, so its url cannot be read";
|
|
12
|
-
const earlier = (a, b) => (a.slot < b.slot ? -1 : a.slot > b.slot ? 1 :
|
|
13
|
+
const earlier = (a, b) => (a.slot < b.slot ? -1 : a.slot > b.slot ? 1 : Buffer.compare(Buffer.from(a.signature), Buffer.from(b.signature)));
|
|
13
14
|
function unjudged(deliveries, seen) {
|
|
14
15
|
return deliveries.filter(({ signature }) => !seen.has(signature)).sort(earlier);
|
|
15
16
|
}
|
|
@@ -59,9 +60,13 @@ async function judgeDelivery(command, runtime, transport, delivery, interrupted,
|
|
|
59
60
|
}
|
|
60
61
|
}
|
|
61
62
|
export async function watchJudge(command, interval, runtime, transport, out) {
|
|
62
|
-
const signer = await runtime
|
|
63
|
-
const keypair = await runtime
|
|
64
|
-
const { address, attestor, specHash } = await escrowFor(transport, signer.address, command.owner, command.nonce);
|
|
63
|
+
const signer = await messageSigner(runtime, command.keypair);
|
|
64
|
+
const keypair = await judgeOpeners(runtime, command, isDevice(signer));
|
|
65
|
+
const { address, attestor, committee, specHash } = await escrowFor(transport, signer.address, command.owner, command.nonce);
|
|
66
|
+
const confirm = command.confirmUrl === undefined ? undefined : runtime.transport(command.confirmUrl);
|
|
67
|
+
if (isDevice(signer)) {
|
|
68
|
+
await deviceJudgeReady(transport, signer.address, address).catch(historyRefused);
|
|
69
|
+
}
|
|
65
70
|
const specSha256 = createHash("sha256").update(await readFile(resolve(command.spec))).digest("hex");
|
|
66
71
|
if (specSha256 !== specHash) {
|
|
67
72
|
throw new JudgeRefused(`--spec ${command.spec} has sha256 ${specSha256}, but intent ${address} commits ${specHash}`);
|
|
@@ -88,6 +93,11 @@ export async function watchJudge(command, interval, runtime, transport, out) {
|
|
|
88
93
|
if (!record.complete) {
|
|
89
94
|
throw new JudgeRefused(`the delivery record of intent ${address} is incomplete because the judge's history is too long to read in full or the RPC node cannot serve all of it; nothing was run or paid. ${pagesRead(record.pages)}`);
|
|
90
95
|
}
|
|
96
|
+
const recipients = committee?.members ?? [attestor];
|
|
97
|
+
const { missing } = await unopenedOf(transport, { judge: signer.address, recipients, deliveries: record.deliveries, first: null, openers: keypair, confirm }).catch(historyRefused);
|
|
98
|
+
if (missing !== null) {
|
|
99
|
+
throw new JudgeRefused(unopenedRefusal(missing, command.keypair, isDevice(signer)));
|
|
100
|
+
}
|
|
91
101
|
const fresh = unjudged(record.deliveries, seen);
|
|
92
102
|
for (const first of fresh) {
|
|
93
103
|
if (signals.caught() !== undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"judge-watch.js","sourceRoot":"","sources":["../../src/judge-watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAE,SAAS,EAAiB,cAAc,EAAkB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"judge-watch.js","sourceRoot":"","sources":["../../src/judge-watch.ts"],"names":[],"mappings":"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"}
|
package/dist/src/judge.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type Address, type Signature } from "@solana/kit";
|
|
2
|
-
import { type
|
|
2
|
+
import { type DeliveryOpener } from "@intent-engine/core";
|
|
3
|
+
import { type CommitteeView, type Transport, type MissingKey } from "@intent-engine/client";
|
|
3
4
|
import type { Command } from "./args.js";
|
|
4
5
|
import { type VoteFile } from "./committee-commands.js";
|
|
5
6
|
import type { Runtime } from "./commands.js";
|
|
@@ -36,12 +37,28 @@ export type Verdict = {
|
|
|
36
37
|
payTo: Address;
|
|
37
38
|
signature: Signature | null;
|
|
38
39
|
simulated?: SimulatedRelease;
|
|
40
|
+
digest?: string;
|
|
41
|
+
feePayer?: Address;
|
|
39
42
|
committee?: Address;
|
|
40
43
|
vote?: VoteFile;
|
|
44
|
+
openings?: {
|
|
45
|
+
memo: string;
|
|
46
|
+
signature: Signature | null;
|
|
47
|
+
error?: string;
|
|
48
|
+
}[];
|
|
49
|
+
skipped?: string[];
|
|
41
50
|
next?: string;
|
|
42
51
|
cleanup?: string;
|
|
43
52
|
};
|
|
44
53
|
export declare const pagesRead: (pages: number) => string;
|
|
54
|
+
export declare const sealedOnDevice: (path: string, intent: Address) => string;
|
|
55
|
+
export declare const DEVICE_VOTE_PREVIEW = "nothing was signed; with --yes the Ledger signs only this member's vote, one message that lists every member's key and this digest: compare it with committee vote's preview on another machine before pressing approve";
|
|
56
|
+
export declare const historyRefused: (error: unknown) => never;
|
|
57
|
+
export declare const GIVE_KEY_FLAG = "pass the encryption key file of that key with --encryption-keypair";
|
|
58
|
+
export declare const unopenedRefusal: (missing: MissingKey, path: string, device: boolean) => string;
|
|
59
|
+
export declare function judgeOpeners(runtime: Runtime, command: JudgeCommand, device: boolean): Promise<DeliveryOpener[]>;
|
|
60
|
+
export declare const DEVICE_PREVIEW = "nothing was sent; with --yes the Ledger signs only the release message and shows this digest: compare it with judge digest run on another machine before pressing approve, and reject on any difference";
|
|
61
|
+
export declare const FEE_PAYER_IS_JUDGE = "--fee-payer is the judge's own key; name another key file to sign and pay the release";
|
|
45
62
|
export declare const resultOutside: (result: bigint, intent: Address, min: bigint, max: bigint) => string;
|
|
46
63
|
export declare function escrowFor(transport: Transport, judge: Address, owner: Address, nonce: bigint): Promise<{
|
|
47
64
|
address: Address<string>;
|