@intent-engine/client 0.1.41 → 0.1.43
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 +13 -2
- package/dist/src/accounts.js +25 -8
- package/dist/src/accounts.js.map +1 -1
- package/dist/src/client-claims.d.ts +21 -1
- package/dist/src/client-claims.js +32 -4
- package/dist/src/client-claims.js.map +1 -1
- package/dist/src/client-committee.d.ts +4 -0
- package/dist/src/client-committee.js +14 -2
- package/dist/src/client-committee.js.map +1 -1
- package/dist/src/client-errors.d.ts +6 -0
- package/dist/src/client-errors.js +13 -0
- package/dist/src/client-errors.js.map +1 -1
- package/dist/src/client-intents.js +8 -4
- package/dist/src/client-intents.js.map +1 -1
- package/dist/src/client-reads.js +3 -3
- package/dist/src/client-reads.js.map +1 -1
- package/dist/src/client-settle.d.ts +5 -1
- package/dist/src/client-settle.js +41 -10
- package/dist/src/client-settle.js.map +1 -1
- package/dist/src/client-types.d.ts +18 -4
- package/dist/src/client-types.js.map +1 -1
- package/dist/src/client.d.ts +5 -4
- package/dist/src/client.js +9 -5
- package/dist/src/client.js.map +1 -1
- package/dist/src/confirm-release.d.ts +6 -2
- package/dist/src/confirm-release.js +19 -4
- package/dist/src/confirm-release.js.map +1 -1
- package/dist/src/delivery-openings.d.ts +84 -0
- package/dist/src/delivery-openings.js +162 -0
- package/dist/src/delivery-openings.js.map +1 -0
- package/dist/src/funding.js +16 -12
- package/dist/src/funding.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/job-deliveries.d.ts +49 -5
- package/dist/src/job-deliveries.js +128 -21
- package/dist/src/job-deliveries.js.map +1 -1
- package/dist/src/job-memos.d.ts +5 -2
- package/dist/src/job-memos.js +16 -12
- package/dist/src/job-memos.js.map +1 -1
- package/dist/src/job-origins.d.ts +2 -2
- package/dist/src/job-origins.js +2 -2
- package/dist/src/job-origins.js.map +1 -1
- package/dist/src/job-pay.js +2 -2
- package/dist/src/job-pay.js.map +1 -1
- package/dist/src/job-proofs.js +3 -3
- package/dist/src/job-proofs.js.map +1 -1
- package/dist/src/job-scan.d.ts +6 -1
- package/dist/src/job-scan.js +13 -0
- package/dist/src/job-scan.js.map +1 -1
- package/dist/src/job-specs.d.ts +1 -0
- package/dist/src/job-specs.js +1 -0
- package/dist/src/job-specs.js.map +1 -1
- package/dist/src/jobs.d.ts +3 -2
- package/dist/src/jobs.js +3 -2
- package/dist/src/jobs.js.map +1 -1
- package/dist/src/ledger.d.ts +11 -4
- package/dist/src/ledger.js +46 -2
- package/dist/src/ledger.js.map +1 -1
- package/dist/src/release-reads.d.ts +8 -1
- package/dist/src/release-reads.js +34 -1
- package/dist/src/release-reads.js.map +1 -1
- package/dist/src/reputation.d.ts +16 -0
- package/dist/src/reputation.js +110 -36
- package/dist/src/reputation.js.map +1 -1
- package/dist/src/rpc-shapes.d.ts +7 -0
- package/dist/src/rpc-transport.js +14 -3
- package/dist/src/rpc-transport.js.map +1 -1
- package/dist/src/simple-work.d.ts +1 -1
- package/dist/src/simple-work.js +3 -3
- package/dist/src/simple-work.js.map +1 -1
- package/dist/src/svm.js +3 -1
- package/dist/src/svm.js.map +1 -1
- package/dist/src/transaction-keys.d.ts +5 -1
- package/dist/src/transaction-keys.js +67 -13
- package/dist/src/transaction-keys.js.map +1 -1
- package/dist/src/trust.d.ts +1 -0
- package/dist/src/trust.js +43 -28
- package/dist/src/trust.js.map +1 -1
- package/dist/src/unopened.d.ts +53 -0
- package/dist/src/unopened.js +169 -0
- package/dist/src/unopened.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { AccountVersionError, decodeEvent, deliveryKeyOf, encryptionKeyText, keyFingerprint, parseEncryptionKey, profileAddress, sealedFingerprints, x25519PublicOf, } from "@intent-engine/core";
|
|
2
|
+
import { loadProfile } from "./client-claims.js";
|
|
3
|
+
import { loadCommittee } from "./client-committee.js";
|
|
4
|
+
import { creationSlotOf, openProofEscrows } from "./job-proofs.js";
|
|
5
|
+
import { ConfirmMismatch } from "./confirm-release.js";
|
|
6
|
+
import { earlier, openersOf } from "./job-deliveries.js";
|
|
7
|
+
import { scan } from "./job-scan.js";
|
|
8
|
+
export class ProfileHistoryIncomplete extends Error {
|
|
9
|
+
judge;
|
|
10
|
+
constructor(judge) {
|
|
11
|
+
super(`the history of ${judge}'s profile could not be read back far enough to know which encryption key it named when the escrow was made or the work was announced, so which key an honest worker sealed to is unknown; nothing was paid. Use an RPC node that keeps the full ledger`);
|
|
12
|
+
this.name = "ProfileHistoryIncomplete";
|
|
13
|
+
this.judge = judge;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export const NOT_VERSION_3 = "its sealed url is not a version-3 sealed delivery";
|
|
17
|
+
export const OTHER_RECIPIENTS = "it is not sealed to this escrow's recipients";
|
|
18
|
+
export const NOT_PUBLISHED_KEY = "its key for this judge is not the key the judge's profile named when it landed";
|
|
19
|
+
export const DOES_NOT_OPEN = "it is sealed to this judge's key but does not open with it";
|
|
20
|
+
const ordered = (a, b) => (earlier(a, b) ? -1 : earlier(b, a) ? 1 : 0);
|
|
21
|
+
const hex = (bytes) => Array.from(bytes, (b) => b.toString(16).padStart(2, "0")).join("");
|
|
22
|
+
export const unopenedBefore = (deliveries, first) => deliveries.filter((delivery) => delivery.url === "" && (first === null || (delivery.intent === first.intent && earlier(delivery, first)))).sort(ordered);
|
|
23
|
+
export const GIVE_KEY_FILE = "give the encryption key file of that key";
|
|
24
|
+
export const missingKey = ({ delivery, key }, give = GIVE_KEY_FILE) => `the announcement ${delivery.signature} by ${delivery.worker} for intent ${delivery.intent} came before the work being paid and is sealed to ${key.kind === "wallet" ? `the key derived from the judge's wallet, ${key.key}` : `the encryption key ${key.key} the judge's profile named when it landed`}, which none of the keys given opens; ${key.kind === "wallet" ? "give the wallet's key file" : give}; nothing was paid`;
|
|
25
|
+
export const WARN_NO_JUDGE_KEY = "this judge cannot use a Ledger for announced work";
|
|
26
|
+
export const noKeyAtCreation = (judge, intent) => `${judge} signs on a Ledger, which cannot open work sealed to the key derived from its wallet, and its profile named no encryption key when escrow ${intent} was made, so work sealed to that key could stall it; the escrow is refused. A hirer should name a judge whose profile publishes an encryption key before the escrow is made; nothing was run or paid`;
|
|
27
|
+
export class NoKeyAtCreation extends Error {
|
|
28
|
+
intent;
|
|
29
|
+
constructor(judge, intent) {
|
|
30
|
+
super(noKeyAtCreation(judge, intent));
|
|
31
|
+
this.name = "NoKeyAtCreation";
|
|
32
|
+
this.intent = intent;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export const keepsKey = (wallet, escrows) => `${wallet} signs on a Ledger and judges the open escrows ${escrows.join(", ")}; without an encryption key it could not open their announcements, so it keeps one: rotate with a new --encryption-key instead, or wait until they close; nothing was sent`;
|
|
36
|
+
export const skippedNote = ({ delivery, reason }) => `skipped the announcement ${delivery.signature} by ${delivery.worker}: ${reason}`;
|
|
37
|
+
function keyEvents(transaction, wallet) {
|
|
38
|
+
if (transaction.failed) {
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
41
|
+
return transaction.emitted.flatMap((data) => {
|
|
42
|
+
const event = decodeEvent(data);
|
|
43
|
+
const fields = event?.fields;
|
|
44
|
+
if (fields?.wallet !== wallet) {
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
47
|
+
if (event?.name === "ProfileClosed") {
|
|
48
|
+
return [{ slot: transaction.slot, key: null }];
|
|
49
|
+
}
|
|
50
|
+
const key = event?.name === "ProfileSet" && fields.encryptionKey !== undefined ? Uint8Array.from(fields.encryptionKey) : null;
|
|
51
|
+
return event?.name === "ProfileSet" ? [{ slot: transaction.slot, key: key?.some((b) => b !== 0) === true ? key : null }] : [];
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
async function historyOf(transport, wallet, bound) {
|
|
55
|
+
let seen = false;
|
|
56
|
+
const read = await scan(transport, await profileAddress(wallet), {
|
|
57
|
+
until: (transaction) => {
|
|
58
|
+
const events = keyEvents(transaction, wallet);
|
|
59
|
+
seen ||= events.length > 0;
|
|
60
|
+
return events.some(({ slot }) => slot <= bound);
|
|
61
|
+
},
|
|
62
|
+
covered: async () => {
|
|
63
|
+
const first = await transport.firstAvailableSlot?.call(transport);
|
|
64
|
+
return first !== undefined && (seen ? first === 0n : first <= bound);
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
if (!read.complete) {
|
|
68
|
+
throw new ProfileHistoryIncomplete(wallet);
|
|
69
|
+
}
|
|
70
|
+
const events = read.transactions.flatMap((transaction) => keyEvents(transaction, wallet)).sort((a, b) => (a.slot < b.slot ? -1 : a.slot > b.slot ? 1 : 0));
|
|
71
|
+
if (events.length > 0) {
|
|
72
|
+
return { events, before: null };
|
|
73
|
+
}
|
|
74
|
+
return { events, before: await currentKey(transport, wallet) };
|
|
75
|
+
}
|
|
76
|
+
async function currentKey(transport, wallet) {
|
|
77
|
+
const profile = await loadProfile(transport, wallet).catch((error) => {
|
|
78
|
+
if (error instanceof AccountVersionError) {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
throw error;
|
|
82
|
+
});
|
|
83
|
+
const key = profile?.encryptionKey ?? null;
|
|
84
|
+
return key === null ? null : parseEncryptionKey(key);
|
|
85
|
+
}
|
|
86
|
+
const keyAt = (history, slot) => {
|
|
87
|
+
const latest = history.events.filter((event) => event.slot <= slot).at(-1);
|
|
88
|
+
return latest === undefined ? history.before : latest.key;
|
|
89
|
+
};
|
|
90
|
+
const historyText = (history) => [...history.events.map(({ slot, key }) => `${slot}:${key === null ? "none" : hex(key)}`), `before:${history.before === null ? "none" : hex(history.before)}`].join(",");
|
|
91
|
+
async function responsible(key, kind, held) {
|
|
92
|
+
const fingerprint = await keyFingerprint(key);
|
|
93
|
+
return { key: encryptionKeyText(key), fingerprint, kind, held: held.includes(fingerprint) };
|
|
94
|
+
}
|
|
95
|
+
export async function unopenedOf(transport, input) {
|
|
96
|
+
const hidden = unopenedBefore(input.deliveries, input.first);
|
|
97
|
+
const [earliest] = hidden;
|
|
98
|
+
if (earliest === undefined) {
|
|
99
|
+
return { missing: null, skipped: [] };
|
|
100
|
+
}
|
|
101
|
+
const history = await historyOf(transport, input.judge, earliest.slot);
|
|
102
|
+
if (input.confirm !== undefined) {
|
|
103
|
+
const second = await historyOf(input.confirm, input.judge, earliest.slot);
|
|
104
|
+
if (historyText(second) !== historyText(history)) {
|
|
105
|
+
throw new ConfirmMismatch("profile history", historyText(history), historyText(second));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
const held = await Promise.all(openersOf(input.openers).map(async (opener) => keyFingerprint((await deliveryKeyOf(opener)).publicKey)));
|
|
109
|
+
const slot = input.recipients.indexOf(input.judge);
|
|
110
|
+
const skipped = [];
|
|
111
|
+
for (const delivery of hidden) {
|
|
112
|
+
const sealedTo = sealedFingerprints(delivery.sealed);
|
|
113
|
+
if (sealedTo === null) {
|
|
114
|
+
skipped.push({ delivery, reason: NOT_VERSION_3 });
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
if (slot < 0 || sealedTo.length !== input.recipients.length) {
|
|
118
|
+
skipped.push({ delivery, reason: OTHER_RECIPIENTS });
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
const published = keyAt(history, delivery.slot);
|
|
122
|
+
const key = await responsible(published ?? x25519PublicOf(input.judge), published === null ? "wallet" : "profile", held);
|
|
123
|
+
if (sealedTo[slot] !== key.fingerprint) {
|
|
124
|
+
skipped.push({ delivery, reason: NOT_PUBLISHED_KEY });
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
if (key.held) {
|
|
128
|
+
skipped.push({ delivery, reason: DOES_NOT_OPEN });
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
return { missing: { delivery, key }, skipped: [] };
|
|
132
|
+
}
|
|
133
|
+
return { missing: null, skipped };
|
|
134
|
+
}
|
|
135
|
+
export async function deviceJudgeReady(transport, judge, intent) {
|
|
136
|
+
const slot = await creationSlotOf(transport, intent);
|
|
137
|
+
if (slot === null) {
|
|
138
|
+
throw new ProfileHistoryIncomplete(judge);
|
|
139
|
+
}
|
|
140
|
+
if (keyAt(await historyOf(transport, judge, slot), slot) === null) {
|
|
141
|
+
throw new NoKeyAtCreation(judge, intent);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
export async function escrowsJudgedBy(transport, wallet) {
|
|
145
|
+
const open = await openProofEscrows(transport, undefined, Number.POSITIVE_INFINITY);
|
|
146
|
+
const committees = new Map();
|
|
147
|
+
const judged = [];
|
|
148
|
+
for (const { address, params } of open) {
|
|
149
|
+
if (params.attestor === wallet) {
|
|
150
|
+
judged.push(address);
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
let members = committees.get(params.attestor);
|
|
154
|
+
if (members === undefined) {
|
|
155
|
+
members = (await loadCommittee(transport, params.attestor))?.members ?? [];
|
|
156
|
+
committees.set(params.attestor, members);
|
|
157
|
+
}
|
|
158
|
+
if (members.includes(wallet)) {
|
|
159
|
+
judged.push(address);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return judged;
|
|
163
|
+
}
|
|
164
|
+
export async function keylessJudges(transport, attestor) {
|
|
165
|
+
const members = (await loadCommittee(transport, attestor))?.members ?? [attestor];
|
|
166
|
+
const keys = await Promise.all(members.map(async (member) => (await currentKey(transport, member).catch(() => null)) !== null));
|
|
167
|
+
return members.filter((_, at) => keys[at] !== true);
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=unopened.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unopened.js","sourceRoot":"","sources":["../../src/unopened.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intent-engine/client",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.43",
|
|
4
4
|
"description": "Runtime client for the intent engine on Solana: transport, confirmation, account readers and intent notifications",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"@solana-program/system": "0.14.1",
|
|
39
39
|
"@solana-program/token": "0.16.1",
|
|
40
40
|
"@solana/kit": "8.4.0",
|
|
41
|
-
"@intent-engine/core": "0.1.
|
|
41
|
+
"@intent-engine/core": "0.1.43"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"@ledgerhq/hw-app-solana": "7.12.0",
|
|
@@ -62,6 +62,7 @@
|
|
|
62
62
|
"@types/node": "26.6.4",
|
|
63
63
|
"litesvm": "1.5.0",
|
|
64
64
|
"typescript": "7.0.2",
|
|
65
|
+
"vite": "8.3.3",
|
|
65
66
|
"vitest": "5.0.3"
|
|
66
67
|
},
|
|
67
68
|
"scripts": {
|