@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
package/dist/src/accounts.d.ts
CHANGED
|
@@ -33,21 +33,32 @@ export type NonceWindow = {
|
|
|
33
33
|
};
|
|
34
34
|
export declare function loadUser(transport: Transport, owner: Address): Promise<NonceWindow | null>;
|
|
35
35
|
export declare function tokenProgramOf(transport: Transport, mint: Address): Promise<Address>;
|
|
36
|
+
export declare const MINT_FREEZE_TAG_OFFSET = 46;
|
|
37
|
+
export declare const MINT_FREEZE_AUTHORITY_OFFSET = 50;
|
|
36
38
|
export declare const MINT_BASE_SIZE = 82;
|
|
37
39
|
export declare const TOKEN_PROGRAMS: Address[];
|
|
38
40
|
export declare const SCALING_EXTENSIONS: number[];
|
|
39
41
|
export declare const EXTENSIONS_OFFSET = 166;
|
|
40
42
|
export declare function scalesDisplay(data: Uint8Array): boolean;
|
|
41
|
-
export declare function
|
|
43
|
+
export declare function freezeAuthorityOf(data: Uint8Array): Address | null;
|
|
44
|
+
export type MintView = {
|
|
42
45
|
tokenProgram: Address;
|
|
43
46
|
decimals: number;
|
|
44
47
|
scaled: boolean;
|
|
45
|
-
|
|
48
|
+
freezeAuthority: Address | null;
|
|
49
|
+
};
|
|
50
|
+
export declare function mintOf(transport: Transport, mint: Address): Promise<MintView>;
|
|
46
51
|
export declare const EXTENDED_TYPE_OFFSET = 165;
|
|
47
52
|
export declare const EXTENDED_MINT_TYPE = 1;
|
|
48
53
|
export declare const CLOCK_SYSVAR: Address;
|
|
49
54
|
export declare function tokenAmountOf(data: Uint8Array | null): bigint | null;
|
|
50
55
|
export declare function chainTime(transport: Transport): Promise<bigint>;
|
|
51
56
|
export declare function clockTime(view: AccountView | null): bigint;
|
|
57
|
+
export type RentSysvar = {
|
|
58
|
+
perByteYear: bigint;
|
|
59
|
+
threshold: number;
|
|
60
|
+
};
|
|
61
|
+
export declare function rentSysvar(transport: Transport): Promise<RentSysvar>;
|
|
62
|
+
export declare const rentExemptFor: (rent: RentSysvar, dataLength: number) => bigint;
|
|
52
63
|
export declare function rentExemptMinimum(transport: Transport, dataLength: number): Promise<bigint>;
|
|
53
64
|
export declare function clusterDomain(transport: Transport): Promise<Uint8Array>;
|
package/dist/src/accounts.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getBase58Encoder } from "@solana/kit";
|
|
2
|
-
import { decodeMintCapData, findConfigPda, findIntentPda, findMintCapAddress, findUserStatePda, getConfigDecoder, getConfigDiscriminatorBytes, getIntentDecoder, getIntentDiscriminatorBytes, getUserStateDecoder, INTENT_ENGINE_PROGRAM_ADDRESS, isMintCapData, TOKEN_2022_PROGRAM_ADDRESS, TOKEN_PROGRAM_ADDRESS, } from "@intent-engine/core";
|
|
1
|
+
import { getAddressDecoder, getBase58Encoder } from "@solana/kit";
|
|
2
|
+
import { checkAccountVersion, decodeMintCapData, findConfigPda, findIntentPda, findMintCapAddress, findUserStatePda, getConfigDecoder, getConfigDiscriminatorBytes, getIntentDecoder, getIntentDiscriminatorBytes, getUserStateDecoder, INTENT_ENGINE_PROGRAM_ADDRESS, isMintCapData, TOKEN_2022_PROGRAM_ADDRESS, TOKEN_PROGRAM_ADDRESS, } from "@intent-engine/core";
|
|
3
3
|
export const SYSTEM_PROGRAM_ADDRESS = "11111111111111111111111111111111";
|
|
4
4
|
export function createdView(view) {
|
|
5
5
|
return view === null || (view.owner === SYSTEM_PROGRAM_ADDRESS && view.data.length === 0) ? null : view;
|
|
@@ -24,7 +24,7 @@ export async function engineAccount(transport, address, discriminator, what) {
|
|
|
24
24
|
if (view.owner !== INTENT_ENGINE_PROGRAM_ADDRESS || !head.every((b, i) => b === discriminator[i])) {
|
|
25
25
|
throw new Error(`${address} is not an engine ${what}`);
|
|
26
26
|
}
|
|
27
|
-
return view.data;
|
|
27
|
+
return checkAccountVersion(view.data);
|
|
28
28
|
}
|
|
29
29
|
export async function loadIntent(transport, owner, nonce) {
|
|
30
30
|
const [address] = await findIntentPda({ owner, nonce });
|
|
@@ -67,7 +67,7 @@ export async function loadUser(transport, owner) {
|
|
|
67
67
|
if (view.owner !== INTENT_ENGINE_PROGRAM_ADDRESS) {
|
|
68
68
|
throw new Error(`${address} is not an engine user account`);
|
|
69
69
|
}
|
|
70
|
-
return getUserStateDecoder().decode(view.data);
|
|
70
|
+
return getUserStateDecoder().decode(checkAccountVersion(view.data));
|
|
71
71
|
}
|
|
72
72
|
export async function tokenProgramOf(transport, mint) {
|
|
73
73
|
const view = await createdAccount(transport, mint);
|
|
@@ -77,6 +77,8 @@ export async function tokenProgramOf(transport, mint) {
|
|
|
77
77
|
return view.owner;
|
|
78
78
|
}
|
|
79
79
|
const MINT_DECIMALS_OFFSET = 44;
|
|
80
|
+
export const MINT_FREEZE_TAG_OFFSET = 46;
|
|
81
|
+
export const MINT_FREEZE_AUTHORITY_OFFSET = 50;
|
|
80
82
|
export const MINT_BASE_SIZE = 82;
|
|
81
83
|
export const TOKEN_PROGRAMS = [TOKEN_PROGRAM_ADDRESS, TOKEN_2022_PROGRAM_ADDRESS];
|
|
82
84
|
export const SCALING_EXTENSIONS = [10, 25];
|
|
@@ -90,6 +92,13 @@ export function scalesDisplay(data) {
|
|
|
90
92
|
}
|
|
91
93
|
return false;
|
|
92
94
|
}
|
|
95
|
+
export function freezeAuthorityOf(data) {
|
|
96
|
+
if (data.length < MINT_BASE_SIZE) {
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
const tag = new DataView(data.buffer, data.byteOffset, data.byteLength).getUint32(MINT_FREEZE_TAG_OFFSET, true);
|
|
100
|
+
return tag === 1 ? getAddressDecoder().decode(data.subarray(MINT_FREEZE_AUTHORITY_OFFSET, MINT_BASE_SIZE)) : null;
|
|
101
|
+
}
|
|
93
102
|
export async function mintOf(transport, mint) {
|
|
94
103
|
const view = await transport.getAccount(mint);
|
|
95
104
|
if (view === null) {
|
|
@@ -98,7 +107,12 @@ export async function mintOf(transport, mint) {
|
|
|
98
107
|
if (!TOKEN_PROGRAMS.includes(view.owner) || !isMintData(view.data)) {
|
|
99
108
|
throw new NotAMint(mint);
|
|
100
109
|
}
|
|
101
|
-
return {
|
|
110
|
+
return {
|
|
111
|
+
tokenProgram: view.owner,
|
|
112
|
+
decimals: view.data[MINT_DECIMALS_OFFSET],
|
|
113
|
+
scaled: scalesDisplay(view.data),
|
|
114
|
+
freezeAuthority: freezeAuthorityOf(view.data),
|
|
115
|
+
};
|
|
102
116
|
}
|
|
103
117
|
export const EXTENDED_TYPE_OFFSET = 165;
|
|
104
118
|
export const EXTENDED_MINT_TYPE = 1;
|
|
@@ -126,14 +140,17 @@ export function clockTime(view) {
|
|
|
126
140
|
const RENT_SYSVAR = "SysvarRent111111111111111111111111111111111";
|
|
127
141
|
const ACCOUNT_STORAGE_OVERHEAD = 128n;
|
|
128
142
|
const RENT_THRESHOLD_OFFSET = 8;
|
|
129
|
-
export async function
|
|
143
|
+
export async function rentSysvar(transport) {
|
|
130
144
|
const view = await transport.getAccount(RENT_SYSVAR);
|
|
131
145
|
if (view === null) {
|
|
132
146
|
throw new Error("the rent sysvar is missing");
|
|
133
147
|
}
|
|
134
148
|
const rent = new DataView(view.data.buffer, view.data.byteOffset);
|
|
135
|
-
|
|
136
|
-
|
|
149
|
+
return { perByteYear: rent.getBigUint64(0, true), threshold: rent.getFloat64(RENT_THRESHOLD_OFFSET, true) };
|
|
150
|
+
}
|
|
151
|
+
export const rentExemptFor = (rent, dataLength) => BigInt(Math.floor(Number(rent.perByteYear * (ACCOUNT_STORAGE_OVERHEAD + BigInt(dataLength))) * rent.threshold));
|
|
152
|
+
export async function rentExemptMinimum(transport, dataLength) {
|
|
153
|
+
return rentExemptFor(await rentSysvar(transport), dataLength);
|
|
137
154
|
}
|
|
138
155
|
export async function clusterDomain(transport) {
|
|
139
156
|
return Uint8Array.from(getBase58Encoder().encode(await transport.genesisHash()));
|
package/dist/src/accounts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Address } from "@solana/kit";
|
|
2
|
-
import { type ProfileView } from "@intent-engine/core";
|
|
2
|
+
import { type LineHandover, type ProfileView } from "@intent-engine/core";
|
|
3
3
|
import type { Transport } from "./transport.js";
|
|
4
4
|
export type ClaimsView = {
|
|
5
5
|
board: Address;
|
|
@@ -14,14 +14,34 @@ export type ClaimsView = {
|
|
|
14
14
|
worker: Address;
|
|
15
15
|
until: bigint;
|
|
16
16
|
} | null;
|
|
17
|
+
line: {
|
|
18
|
+
head: number;
|
|
19
|
+
tail: number;
|
|
20
|
+
waiting: number;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
export type LineEntry = {
|
|
24
|
+
seq: number;
|
|
25
|
+
entry: Address;
|
|
26
|
+
worker: Address | null;
|
|
27
|
+
secs: number | null;
|
|
17
28
|
};
|
|
18
29
|
export type JobClaim = {
|
|
19
30
|
claimedBy: Address | null;
|
|
20
31
|
claimEnds: bigint | null;
|
|
32
|
+
waiting: number;
|
|
21
33
|
};
|
|
22
34
|
export declare function loadClaims(transport: Transport, owner: Address, nonce: bigint): Promise<ClaimsView | null>;
|
|
23
35
|
export declare function loadClaimsOf(transport: Transport, intents: readonly Address[]): Promise<(ClaimsView | null)[]>;
|
|
24
36
|
export declare function jobClaimOf(claims: ClaimsView | null): JobClaim;
|
|
37
|
+
export declare function loadLine(transport: Transport, intent: Address, line: {
|
|
38
|
+
head: number;
|
|
39
|
+
tail: number;
|
|
40
|
+
}, max?: number): Promise<LineEntry[]>;
|
|
41
|
+
export declare function lineHandover(transport: Transport, intent: Address, line: {
|
|
42
|
+
head: number;
|
|
43
|
+
tail: number;
|
|
44
|
+
}): Promise<LineHandover>;
|
|
25
45
|
export declare function cancelClaims(transport: Transport, intent: Address, claims: number): Promise<{
|
|
26
46
|
board: Address;
|
|
27
47
|
stakeTo: Address | null;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CLAIM_BOARD_DISCRIMINATOR, claimBoardAddress, CLAIMS_OPEN, claimSlot, findIntentPda, getClaimBoardDecoder, INTENT_ENGINE_PROGRAM_ADDRESS, PROFILE_DISCRIMINATOR, profileAddress, profileView, stakeReceiverOnCancel, } from "@intent-engine/core";
|
|
1
|
+
import { CLAIM_BOARD_DISCRIMINATOR, checkAccountVersion, claimBoardAddress, CLAIMS_OPEN, claimSlot, findIntentPda, getClaimBoardDecoder, getStandbyDecoder, INTENT_ENGINE_PROGRAM_ADDRESS, lineLength, lineSeqs, MAX_LINE_ENTRIES, PROFILE_DISCRIMINATOR, profileAddress, profileView, STANDBY_DISCRIMINATOR, stakeReceiverOnCancel, standbyAddress, } from "@intent-engine/core";
|
|
2
2
|
import { chainTime, CLOCK_SYSVAR, clockTime, createdAccount, createdView } from "./accounts.js";
|
|
3
3
|
const NONE = "11111111111111111111111111111111";
|
|
4
4
|
async function engineData(transport, address, discriminator) {
|
|
@@ -11,7 +11,7 @@ function engineDataOf(address, view, discriminator) {
|
|
|
11
11
|
if (view.owner !== INTENT_ENGINE_PROGRAM_ADDRESS || !Array.from(discriminator).every((b, i) => view.data[i] === b)) {
|
|
12
12
|
throw new Error(`${address} is not the engine account it should be`);
|
|
13
13
|
}
|
|
14
|
-
return view.data;
|
|
14
|
+
return checkAccountVersion(view.data);
|
|
15
15
|
}
|
|
16
16
|
function claimsViewOf(board, data, now) {
|
|
17
17
|
const stored = getClaimBoardDecoder().decode(data);
|
|
@@ -26,6 +26,7 @@ function claimsViewOf(board, data, now) {
|
|
|
26
26
|
maxSecs: stored.maxSecs,
|
|
27
27
|
owner: stored.owner,
|
|
28
28
|
cooldown: slot.state === "free" && stored.droppedBy !== NONE && now < stored.until ? { worker: stored.droppedBy, until: stored.until } : null,
|
|
29
|
+
line: { head: stored.head, tail: stored.tail, waiting: lineLength(stored) },
|
|
29
30
|
};
|
|
30
31
|
}
|
|
31
32
|
export async function loadClaims(transport, owner, nonce) {
|
|
@@ -47,7 +48,34 @@ export async function loadClaimsOf(transport, intents) {
|
|
|
47
48
|
});
|
|
48
49
|
}
|
|
49
50
|
export function jobClaimOf(claims) {
|
|
50
|
-
|
|
51
|
+
const waiting = claims?.line.waiting ?? 0;
|
|
52
|
+
return claims?.state === "held" ? { claimedBy: claims.worker, claimEnds: claims.until, waiting } : { claimedBy: null, claimEnds: null, waiting };
|
|
53
|
+
}
|
|
54
|
+
export async function loadLine(transport, intent, line, max = MAX_LINE_ENTRIES) {
|
|
55
|
+
const seqs = lineSeqs(line, max);
|
|
56
|
+
if (seqs.length === 0) {
|
|
57
|
+
return [];
|
|
58
|
+
}
|
|
59
|
+
const entries = await Promise.all(seqs.map((seq) => standbyAddress(intent, seq)));
|
|
60
|
+
const views = await transport.getAccounts(entries);
|
|
61
|
+
return seqs.map((seq, i) => {
|
|
62
|
+
const entry = entries[i];
|
|
63
|
+
const data = engineDataOf(entry, createdView(views[i] ?? null), STANDBY_DISCRIMINATOR);
|
|
64
|
+
if (data === null) {
|
|
65
|
+
return { seq, entry, worker: null, secs: null };
|
|
66
|
+
}
|
|
67
|
+
const stored = getStandbyDecoder().decode(data);
|
|
68
|
+
return { seq, entry, worker: stored.worker, secs: stored.secs };
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
export async function lineHandover(transport, intent, line) {
|
|
72
|
+
const entries = await loadLine(transport, intent, line);
|
|
73
|
+
const live = entries.findIndex(({ worker }) => worker !== null);
|
|
74
|
+
if (live < 0) {
|
|
75
|
+
return { entries: entries.map(({ entry }) => entry) };
|
|
76
|
+
}
|
|
77
|
+
const next = entries[live];
|
|
78
|
+
return { entries: entries.slice(0, live + 1).map(({ entry }) => entry), nextWorker: next.worker };
|
|
51
79
|
}
|
|
52
80
|
export async function cancelClaims(transport, intent, claims) {
|
|
53
81
|
if (claims !== CLAIMS_OPEN) {
|
|
@@ -56,7 +84,7 @@ export async function cancelClaims(transport, intent, claims) {
|
|
|
56
84
|
const board = await claimBoardAddress(intent);
|
|
57
85
|
const data = await engineData(transport, board, CLAIM_BOARD_DISCRIMINATOR);
|
|
58
86
|
if (data === null) {
|
|
59
|
-
|
|
87
|
+
return { board, stakeTo: null };
|
|
60
88
|
}
|
|
61
89
|
return { board, stakeTo: stakeReceiverOnCancel(getClaimBoardDecoder().decode(data), await chainTime(transport)) };
|
|
62
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-claims.js","sourceRoot":"","sources":["../../src/client-claims.ts"],"names":[],"mappings":"AACA,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,6BAA6B,
|
|
1
|
+
{"version":3,"file":"client-claims.js","sourceRoot":"","sources":["../../src/client-claims.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { Address } from "@solana/kit";
|
|
2
|
+
import { type Config, type IntentParams } from "@intent-engine/core";
|
|
2
3
|
import type { ClientContext, CommitteeView, CreateCommitteeInput, CreatedCommittee } from "./client-types.js";
|
|
3
4
|
import type { Transport } from "./transport.js";
|
|
4
5
|
export declare function loadCommittee(transport: Transport, address: Address): Promise<CommitteeView | null>;
|
|
6
|
+
export declare function escrowCommittee(transport: Transport, config: Pick<Config, "floorMints" | "floorAmounts">, inputMint: Address, params: IntentParams): Promise<{
|
|
7
|
+
committee?: Address;
|
|
8
|
+
}>;
|
|
5
9
|
export declare function committeeSends({ transport, send }: ClientContext): {
|
|
6
10
|
createCommittee: (input: CreateCommitteeInput) => Promise<CreatedCommittee>;
|
|
7
11
|
committee: (address: Address) => Promise<CommitteeView | null>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { buildCreateCommittee, COMMITTEE_DISCRIMINATOR, committeeOf, getCommitteeDecoder, INTENT_ENGINE_PROGRAM_ADDRESS, } from "@intent-engine/core";
|
|
1
|
+
import { buildCreateCommittee, checkAccountVersion, COMMITTEE_DISCRIMINATOR, committeeFloorOf, committeeOf, countsAsCommittee, getCommitteeDecoder, INTENT_ENGINE_PROGRAM_ADDRESS, Kind, needsCommittee, } from "@intent-engine/core";
|
|
2
2
|
import { createdAccount } from "./accounts.js";
|
|
3
|
+
import { CommitteeNeeded } from "./client-errors.js";
|
|
3
4
|
export async function loadCommittee(transport, address) {
|
|
4
5
|
const view = await createdAccount(transport, address);
|
|
5
6
|
if (view === null ||
|
|
@@ -7,7 +8,7 @@ export async function loadCommittee(transport, address) {
|
|
|
7
8
|
!COMMITTEE_DISCRIMINATOR.every((b, i) => view.data[i] === b)) {
|
|
8
9
|
return null;
|
|
9
10
|
}
|
|
10
|
-
const stored = getCommitteeDecoder().decode(view.data);
|
|
11
|
+
const stored = getCommitteeDecoder().decode(checkAccountVersion(view.data));
|
|
11
12
|
const members = stored.members.slice(0, stored.count);
|
|
12
13
|
const terms = { members, threshold: stored.threshold, feeWallet: stored.feeWallet };
|
|
13
14
|
const derived = await committeeOf(terms);
|
|
@@ -16,6 +17,17 @@ export async function loadCommittee(transport, address) {
|
|
|
16
17
|
}
|
|
17
18
|
return { ...terms, address, id: derived.id, createdAt: stored.createdAt };
|
|
18
19
|
}
|
|
20
|
+
export async function escrowCommittee(transport, config, inputMint, params) {
|
|
21
|
+
if (params.kind !== Kind.AttestedResult) {
|
|
22
|
+
return {};
|
|
23
|
+
}
|
|
24
|
+
const found = await loadCommittee(transport, params.attestor);
|
|
25
|
+
const floor = committeeFloorOf(config, inputMint);
|
|
26
|
+
if (needsCommittee(floor, params.amountIn) && !countsAsCommittee(found)) {
|
|
27
|
+
throw new CommitteeNeeded(params.attestor, params.amountIn, floor);
|
|
28
|
+
}
|
|
29
|
+
return found === null ? {} : { committee: found.address };
|
|
30
|
+
}
|
|
19
31
|
export function committeeSends({ transport, send }) {
|
|
20
32
|
const createCommittee = async (input) => {
|
|
21
33
|
const { committee, instruction } = await buildCreateCommittee({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-committee.js","sourceRoot":"","sources":["../../src/client-committee.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,WAAW,
|
|
1
|
+
{"version":3,"file":"client-committee.js","sourceRoot":"","sources":["../../src/client-committee.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,3 +31,9 @@ export declare class VoteRejected extends Error {
|
|
|
31
31
|
readonly intent: Address;
|
|
32
32
|
constructor(member: Address, intent: Address);
|
|
33
33
|
}
|
|
34
|
+
export declare class CommitteeNeeded extends Error {
|
|
35
|
+
readonly attestor: Address;
|
|
36
|
+
readonly escrow: bigint;
|
|
37
|
+
readonly floor: bigint;
|
|
38
|
+
constructor(attestor: Address, escrow: bigint, floor: bigint);
|
|
39
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FLOOR_THRESHOLD } from "@intent-engine/core";
|
|
1
2
|
export class NoFreeNonce extends Error {
|
|
2
3
|
owner;
|
|
3
4
|
constructor(owner) {
|
|
@@ -62,4 +63,16 @@ export class VoteRejected extends Error {
|
|
|
62
63
|
this.intent = intent;
|
|
63
64
|
}
|
|
64
65
|
}
|
|
66
|
+
export class CommitteeNeeded extends Error {
|
|
67
|
+
attestor;
|
|
68
|
+
escrow;
|
|
69
|
+
floor;
|
|
70
|
+
constructor(attestor, escrow, floor) {
|
|
71
|
+
super(`this escrow of ${escrow} raw units reaches the committee floor of ${floor} the engine sets for its token, and the attestor ${attestor} is not a committee of at least ${FLOOR_THRESHOLD} judges; name such a committee as attestor, or escrow less`);
|
|
72
|
+
this.name = "CommitteeNeeded";
|
|
73
|
+
this.attestor = attestor;
|
|
74
|
+
this.escrow = escrow;
|
|
75
|
+
this.floor = floor;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
65
78
|
//# sourceMappingURL=client-errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-errors.js","sourceRoot":"","sources":["../../src/client-errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client-errors.js","sourceRoot":"","sources":["../../src/client-errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { buildCancelIntent, buildCloseIntent, buildCreateIntent, buildExpireIntent, buildFillIntent, decodeParams, escrowAmount,
|
|
1
|
+
import { buildCancelIntent, buildCloseIntent, buildCreateIntent, buildExpireIntent, buildFillIntent, decodeParams, escrowAmount, findAssociatedTokenAddress, findIntentPda, IntentStatus, Kind, NATIVE_MINT, nextFreeNonce, remainingOf, requiredOut, specMemo, splitFees, TOKEN_PROGRAM_ADDRESS, } from "@intent-engine/core";
|
|
2
2
|
import { getCloseAccountInstruction } from "@solana-program/token";
|
|
3
3
|
import { chainTime, createdAccount, loadIntent, loadUser, mintCapOf } from "./accounts.js";
|
|
4
4
|
import { NoFreeNonce, NotFillable } from "./client-errors.js";
|
|
5
5
|
import { DEFAULT_EXPIRES_IN, EXPIRES_IN_RANGE, MAX_EXPIRES_IN, MIN_EXPIRES_IN, SPEC_URL_NEEDS_PROOF, } from "./client-types.js";
|
|
6
6
|
import { cancelClaims } from "./client-claims.js";
|
|
7
|
+
import { escrowCommittee } from "./client-committee.js";
|
|
7
8
|
import { memoInstruction, PLAIN_HTTP_ON_PUBLIC, plainHttpOnPublic } from "./jobs.js";
|
|
8
9
|
import { initUserIfMissing, tokenAccountIfMissing, wrapIfShort } from "./setup.js";
|
|
9
10
|
export function nonceAfter(owner, user) {
|
|
@@ -37,6 +38,7 @@ export function intentSends({ transport, send, mint, config }) {
|
|
|
37
38
|
loadUser(transport, owner),
|
|
38
39
|
mintCapOf(transport, inputMint),
|
|
39
40
|
]);
|
|
41
|
+
const judged = await escrowCommittee(transport, settings, inputMint, params);
|
|
40
42
|
const nonce = input.nonce ?? nonceAfter(owner, user);
|
|
41
43
|
const expiresAt = input.expiresAt ?? (await chainTime(transport)) + (input.expiresIn ?? DEFAULT_EXPIRES_IN);
|
|
42
44
|
const recipient = input.receiver ?? owner;
|
|
@@ -56,6 +58,7 @@ export function intentSends({ transport, send, mint, config }) {
|
|
|
56
58
|
outputTokenProgram: buy.tokenProgram,
|
|
57
59
|
...(recipient === owner ? {} : { receiver: receiver.address, receiverAuthority: recipient }),
|
|
58
60
|
...(mintCap === undefined ? {} : { mintCap }),
|
|
61
|
+
...judged,
|
|
59
62
|
});
|
|
60
63
|
const register = await initUserIfMissing(user, signer);
|
|
61
64
|
const signature = await send([...register, ...receiver.create, ...wrap.instructions, create, ...published], signer);
|
|
@@ -68,7 +71,7 @@ export function intentSends({ transport, send, mint, config }) {
|
|
|
68
71
|
const refund = await tokenAccountIfMissing(transport, signer, signer.address, intent.inputMint, tokenProgram);
|
|
69
72
|
const [address] = await findIntentPda({ owner: signer.address, nonce });
|
|
70
73
|
const claims = await cancelClaims(transport, address, intent.claims);
|
|
71
|
-
const cancel = await buildCancelIntent({ owner: signer, nonce, inputMint: intent.inputMint, tokenProgram, ...(claims === undefined ? {} : { claims }) });
|
|
74
|
+
const cancel = await buildCancelIntent({ owner: signer, nonce, inputMint: intent.inputMint, tokenProgram, capped: intent.capped, ...(claims === undefined ? {} : { claims }) });
|
|
72
75
|
return send([...refund.create, cancel], signer);
|
|
73
76
|
};
|
|
74
77
|
const unwrap = async (signer) => {
|
|
@@ -91,7 +94,7 @@ export function intentSends({ transport, send, mint, config }) {
|
|
|
91
94
|
const [sell, buy] = await Promise.all([mint(held.inputMint), mint(held.outputMint)]);
|
|
92
95
|
const amountIn = input.amountIn ?? remainingOf(held);
|
|
93
96
|
const amountOut = input.amountOut ?? requiredOut(params, amountIn, await chainTime(transport));
|
|
94
|
-
const kindBps =
|
|
97
|
+
const kindBps = held.feeBps;
|
|
95
98
|
const shares = splitFees(amountIn, kindBps, held.partnerBps, held.partnerCutBps);
|
|
96
99
|
const feeRecipient = shares.protocol > 0n ? settings.feeRecipient : undefined;
|
|
97
100
|
const partner = shares.partner > 0n ? held.partner : undefined;
|
|
@@ -120,6 +123,7 @@ export function intentSends({ transport, send, mint, config }) {
|
|
|
120
123
|
amountIn,
|
|
121
124
|
amountOut,
|
|
122
125
|
maxFeeBps: kindBps + held.partnerBps,
|
|
126
|
+
capped: held.capped,
|
|
123
127
|
});
|
|
124
128
|
const setup = [solverInput, solverOutput, ...payouts].flatMap(({ create }) => create);
|
|
125
129
|
const wrap = input.route === undefined ? (await wrapIfShort(transport, solver, held.outputMint, buy.tokenProgram, amountOut)).instructions : [];
|
|
@@ -128,7 +132,7 @@ export function intentSends({ transport, send, mint, config }) {
|
|
|
128
132
|
const settling = async (cranker, owner, nonce) => {
|
|
129
133
|
const { intent } = await loadIntent(transport, owner, nonce);
|
|
130
134
|
const { tokenProgram } = await mint(intent.inputMint);
|
|
131
|
-
return { ref: { cranker, owner, nonce, inputMint: intent.inputMint, tokenProgram }, rentPayer: intent.rentPayer };
|
|
135
|
+
return { ref: { cranker, owner, nonce, inputMint: intent.inputMint, tokenProgram, capped: intent.capped }, rentPayer: intent.rentPayer };
|
|
132
136
|
};
|
|
133
137
|
const expire = async (cranker, owner, nonce) => {
|
|
134
138
|
const { ref } = await settling(cranker, owner, nonce);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-intents.js","sourceRoot":"","sources":["../../src/client-intents.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"client-intents.js","sourceRoot":"","sources":["../../src/client-intents.ts"],"names":[],"mappings":"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"}
|
package/dist/src/client-reads.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { decodeEvent, findAssociatedTokenAddress, tokenName } from "@intent-engine/core";
|
|
2
2
|
import { createdAccount, tokenAmountOf } from "./accounts.js";
|
|
3
3
|
import { HISTORY_LIMIT } from "./client-types.js";
|
|
4
|
-
import { createdAtOf,
|
|
4
|
+
import { createdAtOf, recordedRelease, scan } from "./jobs.js";
|
|
5
5
|
const FILL_EVENTS = new Set(["IntentFilled", "FillEnded"]);
|
|
6
6
|
function eventsIn(transactions, intent) {
|
|
7
7
|
return transactions
|
|
@@ -21,8 +21,8 @@ export function clientReads({ transport, mint }) {
|
|
|
21
21
|
return event;
|
|
22
22
|
}
|
|
23
23
|
const release = transactions.find(({ signature }) => signature === event.signature);
|
|
24
|
-
const recorded = release === undefined ? null :
|
|
25
|
-
return recorded === null ? event : { ...event, deliveredSha256: recorded };
|
|
24
|
+
const recorded = release === undefined ? null : recordedRelease(transactions, release, event.fields.attestor);
|
|
25
|
+
return recorded === null ? event : { ...event, deliveredSha256: recorded.sha256, ...(recorded.salt === undefined ? {} : { deliveredSalt: recorded.salt }) };
|
|
26
26
|
});
|
|
27
27
|
};
|
|
28
28
|
const fillOf = async (intent) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-reads.js","sourceRoot":"","sources":["../../src/client-reads.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAoB,0BAA0B,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAgD,aAAa,EAAwC,MAAM,mBAAmB,CAAC;AACtI,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"client-reads.js","sourceRoot":"","sources":["../../src/client-reads.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { type Address } from "@solana/kit";
|
|
2
|
+
import type { BallotInput, ClientContext, CommitteeBallot, CommitteeRelease, ProofBallot, SettleCommitteeInput, SettleProofInput } from "./client-types.js";
|
|
3
|
+
export declare const FEE_PAYER_ALONE = "feePayer signs and pays the release alone, so it takes no payer and no deliveredSha256: only a memo the judge signs records the delivered work";
|
|
2
4
|
export declare function proofSettlement(context: ClientContext): (input: SettleProofInput) => Promise<import("@solana/kit").Signature>;
|
|
5
|
+
export declare const committeeJudged: (attestor: Address) => string;
|
|
6
|
+
export declare function proofBallotOf(context: ClientContext): (input: BallotInput) => Promise<ProofBallot>;
|
|
3
7
|
export declare function committeeSettlement(context: ClientContext): {
|
|
4
8
|
committeeBallot: (input: BallotInput) => Promise<CommitteeBallot>;
|
|
5
9
|
prepareCommitteeRelease: (input: SettleCommitteeInput) => Promise<CommitteeRelease>;
|