@intent-engine/client 0.1.42 → 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.js +3 -3
- 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 +4 -3
- package/dist/src/client.js +8 -4
- 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 +2 -2
- 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,4 +1,4 @@
|
|
|
1
|
-
import { CLAIM_BOARD_DISCRIMINATOR, 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";
|
|
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);
|
|
@@ -84,7 +84,7 @@ export async function cancelClaims(transport, intent, claims) {
|
|
|
84
84
|
const board = await claimBoardAddress(intent);
|
|
85
85
|
const data = await engineData(transport, board, CLAIM_BOARD_DISCRIMINATOR);
|
|
86
86
|
if (data === null) {
|
|
87
|
-
|
|
87
|
+
return { board, stakeTo: null };
|
|
88
88
|
}
|
|
89
89
|
return { board, stakeTo: stakeReceiverOnCancel(getClaimBoardDecoder().decode(data), await chainTime(transport)) };
|
|
90
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,iBAAiB,EACjB,6BAA6B,EAE7B,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EAEd,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAkBhG,MAAM,IAAI,GAAG,kCAA6C,CAAC;AAI3D,KAAK,UAAU,UAAU,CAAC,SAAoB,EAAE,OAAgB,EAAE,aAAgC;IAChG,OAAO,YAAY,CAAC,OAAO,EAAE,MAAM,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,YAAY,CAAC,OAAgB,EAAE,IAAwB,EAAE,aAAgC;IAChG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,6BAA6B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACnH,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,yCAAyC,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"client-claims.js","sourceRoot":"","sources":["../../src/client-claims.ts"],"names":[],"mappings":"AACA,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,6BAA6B,EAE7B,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EAEd,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAkBhG,MAAM,IAAI,GAAG,kCAA6C,CAAC;AAI3D,KAAK,UAAU,UAAU,CAAC,SAAoB,EAAE,OAAgB,EAAE,aAAgC;IAChG,OAAO,YAAY,CAAC,OAAO,EAAE,MAAM,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,YAAY,CAAC,OAAgB,EAAE,IAAwB,EAAE,aAAgC;IAChG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,KAAK,6BAA6B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACnH,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,yCAAyC,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,IAAgB,EAAE,GAAW;IACjE,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,OAAO;QACL,KAAK;QACL,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;QAClD,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;QAChD,WAAW,EAAE,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE;QAC5D,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,QAAQ,EAAE,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI;QAC7I,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE;KAC5E,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,SAAoB,EAAE,KAAc,EAAE,KAAa;IAClF,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,yBAAyB,CAAC,CAAC;IAC3E,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAoB,EAAE,OAA2B;IAClF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,GAAG,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IACrE,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IACpD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,yBAAyB,CAAC,CAAC;QAC3F,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAyB;IAClD,MAAM,OAAO,GAAG,MAAM,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;IAC1C,OAAO,MAAM,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACnJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,SAAoB,EAAE,MAAe,EAAE,IAAoC,EAAE,GAAG,GAAG,gBAAgB;IAChI,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAClF,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAY,CAAC;QACpC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,qBAAqB,CAAC,CAAC;QACvF,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAClD,CAAC;QACD,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAoB,EAAE,MAAe,EAAE,IAAoC;IAC5G,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IAChE,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;IACxD,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAc,CAAC;IACxC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,MAAiB,EAAE,CAAC;AAC/G,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAoB,EAAE,MAAe,EAAE,MAAc;IACtF,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,yBAAyB,CAAC,CAAC;IAC3E,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,qBAAqB,CAAC,oBAAoB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;AACpH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,SAAoB,EAAE,MAAe;IACrE,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,MAAM,cAAc,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAC9F,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -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":"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,eAAe,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG/D,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC;AAEhF,SAAS,QAAQ,CAAC,YAA0C,EAAE,MAAe;IAC3E,OAAO,YAAY;SAChB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;SAC/B,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CACnD,OAAO;SACJ,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAuB,CAAC;SACtD,MAAM,CAAC,CAAC,KAAK,EAAwB,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC;SACrH,OAAO,EAAE;SACT,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,SAAsB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CACtF,CAAC;AACN,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,MAAe,EAAE,EAAE,CAAC,CAAC,WAA8B,EAAW,EAAE,CAC9E,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAE5E,MAAM,UAAU,WAAW,CAAC,EAAE,SAAS,EAAE,IAAI,EAAiB;IAC5D,MAAM,OAAO,GAAG,KAAK,EAAE,MAAe,EAAE,KAAK,GAAG,aAAa,EAA2B,EAAE;QACxF,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvE,OAAO,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAClD,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACpE,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;YACpF,MAAM,QAAQ,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9G,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,eAAe,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9J,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,EAAE,MAAe,EAAwB,EAAE;QAC7D,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAChH,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;YAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAClC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC/D,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YACzF,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;gBAClG,IAAI,KAAK,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;oBAChC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;oBACrD,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;gBAC7H,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,KAAc,EAAE,KAAyB,EAAqB,EAAE;QACtF,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACzC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC;YAC3B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAyB,EAAE;gBACjD,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvD,MAAM,OAAO,GAAG,MAAM,0BAA0B,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;gBACzF,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,MAAM,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC7F,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAChF,CAAC,CAAC,CACH;SACF,CAAC,CAAC;QACH,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC;IACjD,CAAC,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AACvC,CAAC"}
|
|
@@ -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>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createNoopSigner, getAddressDecoder } from "@solana/kit";
|
|
2
|
-
import {
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
3
|
+
import { attestedProofMessage, attestedProofPreimage, buildCommitteeBatch, buildFillAttested, claimBoardAddress, CLAIMS_OPEN, getClaimBoardDecoder, getClaimBoardDiscriminatorBytes, IntentCoreError, stakeReceiverOnRelease, buildFillAttestedCommittee, committeeProofDigest, committeeSigners, decodeParams, IntentStatus, isSaltHex, isSha256Hex, Kind, releaseMemo, signEd25519Instruction, splitFees, verifyCommitteeVote, } from "@intent-engine/core";
|
|
3
4
|
import { chainTime, createdAccount, engineAccount, loadIntent, SYSTEM_PROGRAM_ADDRESS } from "./accounts.js";
|
|
4
5
|
import { loadCommittee } from "./client-committee.js";
|
|
5
6
|
import { EscrowExpired, NotSettleable, PayeeMoved, PayToNotWallet, VoteRejected } from "./client-errors.js";
|
|
@@ -53,7 +54,7 @@ async function planRelease({ transport, mint, config }, target, judgeOf) {
|
|
|
53
54
|
const { tokenProgram } = await mint(held.inputMint);
|
|
54
55
|
const account = (wallet) => tokenAccountIfMissing(transport, payer, wallet, held.inputMint, tokenProgram);
|
|
55
56
|
const amountIn = held.escrowed - held.filled;
|
|
56
|
-
const kindBps =
|
|
57
|
+
const kindBps = held.feeBps;
|
|
57
58
|
const maxFeeBps = kindBps + held.partnerBps;
|
|
58
59
|
const shares = splitFees(amountIn - params.judgeFee, kindBps, held.partnerBps, held.partnerCutBps);
|
|
59
60
|
const feeRecipient = shares.protocol > 0n ? settings.feeRecipient : undefined;
|
|
@@ -90,6 +91,7 @@ async function planRelease({ transport, mint, config }, target, judgeOf) {
|
|
|
90
91
|
inputMint: held.inputMint,
|
|
91
92
|
inputTokenProgram: tokenProgram,
|
|
92
93
|
payee: payee.address,
|
|
94
|
+
capped: held.capped,
|
|
93
95
|
...(feeRecipient === undefined ? {} : { feeRecipient }),
|
|
94
96
|
...(partner === undefined ? {} : { partner }),
|
|
95
97
|
...(paidJudge === undefined ? {} : { judge: paidJudge }),
|
|
@@ -100,14 +102,26 @@ async function planRelease({ transport, mint, config }, target, judgeOf) {
|
|
|
100
102
|
: {},
|
|
101
103
|
};
|
|
102
104
|
}
|
|
103
|
-
function
|
|
104
|
-
|
|
105
|
+
function checkedSalt(deliveredSalt, deliveredSha256) {
|
|
106
|
+
const lowered = deliveredSalt?.toLowerCase();
|
|
107
|
+
if (lowered !== undefined && (deliveredSha256 === undefined || !isSaltHex(lowered))) {
|
|
108
|
+
throw new RangeError("deliveredSalt must be 32 hex digits, given with deliveredSha256");
|
|
109
|
+
}
|
|
110
|
+
return lowered;
|
|
111
|
+
}
|
|
112
|
+
function recorded(payer, deliveredSha256, deliveredSalt) {
|
|
113
|
+
return deliveredSha256 === undefined ? [] : [memoInstruction(payer, releaseMemo(deliveredSha256, checkedSalt(deliveredSalt, deliveredSha256)))];
|
|
105
114
|
}
|
|
115
|
+
export 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";
|
|
106
116
|
export function proofSettlement(context) {
|
|
107
117
|
const settleProof = async (input) => {
|
|
108
|
-
const { judge } = input;
|
|
118
|
+
const { judge, feePayer } = input;
|
|
109
119
|
const deliveredSha256 = checkedSha256(input.deliveredSha256);
|
|
110
|
-
|
|
120
|
+
checkedSalt(input.deliveredSalt, deliveredSha256);
|
|
121
|
+
if (feePayer !== undefined && (deliveredSha256 !== undefined || input.payer !== undefined)) {
|
|
122
|
+
throw new RangeError(FEE_PAYER_ALONE);
|
|
123
|
+
}
|
|
124
|
+
const payer = feePayer ?? input.payer ?? judge;
|
|
111
125
|
const plan = await planRelease(context, { ...input, payer }, async (attestor, intent) => {
|
|
112
126
|
if (attestor !== judge.address) {
|
|
113
127
|
throw new NotSettleable(intent, `names ${attestor} as its judge, not ${judge.address}`);
|
|
@@ -115,11 +129,27 @@ export function proofSettlement(context) {
|
|
|
115
129
|
return { feeOwner: judge.address, judge: judge.address };
|
|
116
130
|
});
|
|
117
131
|
const message = await attestedProofMessage(judge.address, plan.proof);
|
|
118
|
-
const settle = await buildFillAttested({ ...plan.fill, ...plan.claims, solver: judge });
|
|
119
|
-
|
|
132
|
+
const settle = await buildFillAttested({ ...plan.fill, ...plan.claims, solver: feePayer ?? judge });
|
|
133
|
+
if (feePayer !== undefined) {
|
|
134
|
+
return context.send([...plan.setup, await signEd25519Instruction(judge, message), settle], feePayer);
|
|
135
|
+
}
|
|
136
|
+
return context.send([...plan.setup, await signEd25519Instruction(judge, message), settle, ...recorded(judge, deliveredSha256, input.deliveredSalt)], payer);
|
|
120
137
|
};
|
|
121
138
|
return settleProof;
|
|
122
139
|
}
|
|
140
|
+
export const committeeJudged = (attestor) => `names committee ${attestor} as its judge, so its members sign committee votes, not this release`;
|
|
141
|
+
export function proofBallotOf(context) {
|
|
142
|
+
return async (input) => {
|
|
143
|
+
const plan = await planRelease(context, { ...input, payer: createNoopSigner(input.payTo) }, async (attestor, intent) => {
|
|
144
|
+
if ((await loadCommittee(context.transport, attestor)) !== null) {
|
|
145
|
+
throw new NotSettleable(intent, committeeJudged(attestor));
|
|
146
|
+
}
|
|
147
|
+
return { feeOwner: attestor, judge: attestor };
|
|
148
|
+
});
|
|
149
|
+
const digest = new Uint8Array(createHash("sha256").update(await attestedProofPreimage(plan.proof)).digest());
|
|
150
|
+
return { intent: plan.intent, attestor: plan.judge, payee: plan.proof.payee, digest, message: await attestedProofMessage(plan.judge, plan.proof) };
|
|
151
|
+
};
|
|
152
|
+
}
|
|
123
153
|
export function committeeSettlement(context) {
|
|
124
154
|
const planned = async (target) => {
|
|
125
155
|
const plan = await planRelease(context, target, async (attestor, intent) => {
|
|
@@ -137,10 +167,11 @@ export function committeeSettlement(context) {
|
|
|
137
167
|
};
|
|
138
168
|
const prepareCommitteeRelease = async (input) => {
|
|
139
169
|
const deliveredSha256 = checkedSha256(input.deliveredSha256);
|
|
170
|
+
checkedSalt(input.deliveredSalt, deliveredSha256);
|
|
140
171
|
const payer = input.payer ?? input.solver;
|
|
141
172
|
const { plan, committee, digest } = await planned({ ...input, payer });
|
|
142
173
|
for (const vote of input.votes) {
|
|
143
|
-
if (!(await verifyCommitteeVote(vote, digest))) {
|
|
174
|
+
if (!(await verifyCommitteeVote(vote, digest, committee.members))) {
|
|
144
175
|
throw new VoteRejected(vote.member, plan.intent);
|
|
145
176
|
}
|
|
146
177
|
}
|
|
@@ -165,7 +196,7 @@ export function committeeSettlement(context) {
|
|
|
165
196
|
signers: committeeSigners(committee, mask),
|
|
166
197
|
payer,
|
|
167
198
|
setup: plan.setup,
|
|
168
|
-
instructions: [instruction, settle, ...recorded(input.solver, deliveredSha256)],
|
|
199
|
+
instructions: [instruction, settle, ...recorded(input.solver, deliveredSha256, input.deliveredSalt)],
|
|
169
200
|
};
|
|
170
201
|
};
|
|
171
202
|
const settleCommittee = async (input) => {
|