@intent-engine/cli 0.0.0-stage → 0.1.1

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.
Files changed (102) hide show
  1. package/LICENSE +202 -0
  2. package/dist/src/accounts.d.ts +112 -0
  3. package/dist/src/accounts.js +162 -0
  4. package/dist/src/accounts.js.map +1 -0
  5. package/dist/src/agent/actions.d.ts +45 -0
  6. package/dist/src/agent/actions.js +43 -0
  7. package/dist/src/agent/actions.js.map +1 -0
  8. package/dist/src/agent/budget.d.ts +22 -0
  9. package/dist/src/agent/budget.js +31 -0
  10. package/dist/src/agent/budget.js.map +1 -0
  11. package/dist/src/agent/claims.d.ts +15 -0
  12. package/dist/src/agent/claims.js +47 -0
  13. package/dist/src/agent/claims.js.map +1 -0
  14. package/dist/src/agent/create.d.ts +56 -0
  15. package/dist/src/agent/create.js +119 -0
  16. package/dist/src/agent/create.js.map +1 -0
  17. package/dist/src/agent/mandate.d.ts +30 -0
  18. package/dist/src/agent/mandate.js +480 -0
  19. package/dist/src/agent/mandate.js.map +1 -0
  20. package/dist/src/agent/mcp.d.ts +17 -0
  21. package/dist/src/agent/mcp.js +53 -0
  22. package/dist/src/agent/mcp.js.map +1 -0
  23. package/dist/src/agent/names.d.ts +1 -0
  24. package/dist/src/agent/names.js +3 -0
  25. package/dist/src/agent/names.js.map +1 -0
  26. package/dist/src/agent/owner.d.ts +40 -0
  27. package/dist/src/agent/owner.js +123 -0
  28. package/dist/src/agent/owner.js.map +1 -0
  29. package/dist/src/agent/prepare.d.ts +14 -0
  30. package/dist/src/agent/prepare.js +32 -0
  31. package/dist/src/agent/prepare.js.map +1 -0
  32. package/dist/src/agent/problems.d.ts +120 -0
  33. package/dist/src/agent/problems.js +189 -0
  34. package/dist/src/agent/problems.js.map +1 -0
  35. package/dist/src/agent/read.d.ts +13 -0
  36. package/dist/src/agent/read.js +210 -0
  37. package/dist/src/agent/read.js.map +1 -0
  38. package/dist/src/agent/registry.d.ts +2 -0
  39. package/dist/src/agent/registry.js +24 -0
  40. package/dist/src/agent/registry.js.map +1 -0
  41. package/dist/src/agent/relay.d.ts +20 -0
  42. package/dist/src/agent/relay.js +43 -0
  43. package/dist/src/agent/relay.js.map +1 -0
  44. package/dist/src/agent/schema.d.ts +68 -0
  45. package/dist/src/agent/schema.js +210 -0
  46. package/dist/src/agent/schema.js.map +1 -0
  47. package/dist/src/agent/settle.d.ts +5 -0
  48. package/dist/src/agent/settle.js +145 -0
  49. package/dist/src/agent/settle.js.map +1 -0
  50. package/dist/src/agent/shapes.d.ts +165 -0
  51. package/dist/src/agent/shapes.js +163 -0
  52. package/dist/src/agent/shapes.js.map +1 -0
  53. package/dist/src/agent/signed.d.ts +21 -0
  54. package/dist/src/agent/signed.js +363 -0
  55. package/dist/src/agent/signed.js.map +1 -0
  56. package/dist/src/agent/wallet.d.ts +18 -0
  57. package/dist/src/agent/wallet.js +186 -0
  58. package/dist/src/agent/wallet.js.map +1 -0
  59. package/dist/src/args.d.ts +491 -0
  60. package/dist/src/args.js +1124 -0
  61. package/dist/src/args.js.map +1 -0
  62. package/dist/src/bin.d.ts +2 -0
  63. package/dist/src/bin.js +4 -0
  64. package/dist/src/bin.js.map +1 -0
  65. package/dist/src/commands.d.ts +51 -0
  66. package/dist/src/commands.js +451 -0
  67. package/dist/src/commands.js.map +1 -0
  68. package/dist/src/compute.d.ts +19 -0
  69. package/dist/src/compute.js +81 -0
  70. package/dist/src/compute.js.map +1 -0
  71. package/dist/src/crank.d.ts +39 -0
  72. package/dist/src/crank.js +171 -0
  73. package/dist/src/crank.js.map +1 -0
  74. package/dist/src/events.d.ts +8 -0
  75. package/dist/src/events.js +43 -0
  76. package/dist/src/events.js.map +1 -0
  77. package/dist/src/flows.d.ts +23 -0
  78. package/dist/src/flows.js +128 -0
  79. package/dist/src/flows.js.map +1 -0
  80. package/dist/src/main.d.ts +32 -0
  81. package/dist/src/main.js +99 -0
  82. package/dist/src/main.js.map +1 -0
  83. package/dist/src/render.d.ts +5 -0
  84. package/dist/src/render.js +46 -0
  85. package/dist/src/render.js.map +1 -0
  86. package/dist/src/tokens.d.ts +11 -0
  87. package/dist/src/tokens.js +20 -0
  88. package/dist/src/tokens.js.map +1 -0
  89. package/dist/src/transport.d.ts +155 -0
  90. package/dist/src/transport.js +173 -0
  91. package/dist/src/transport.js.map +1 -0
  92. package/dist/src/treasury.d.ts +27 -0
  93. package/dist/src/treasury.js +85 -0
  94. package/dist/src/treasury.js.map +1 -0
  95. package/dist/src/version.d.ts +1 -0
  96. package/dist/src/version.js +2 -0
  97. package/dist/src/version.js.map +1 -0
  98. package/dist/src/wallet.d.ts +30 -0
  99. package/dist/src/wallet.js +109 -0
  100. package/dist/src/wallet.js.map +1 -0
  101. package/package.json +37 -3
  102. package/README.md +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { type Address, type Instruction } from "@solana/kit";
2
+ import { headroom, UNIT_HEADROOM_DIVISOR, UNIT_HEADROOM_FLOOR } from "@intent-engine/solver";
3
+ import type { Transport } from "./transport.js";
4
+ export { headroom, UNIT_HEADROOM_DIVISOR, UNIT_HEADROOM_FLOOR };
5
+ export type Priority = bigint | "auto";
6
+ export declare const AUTO_PERCENTILE = 75n;
7
+ export declare const AUTO_PRICE_CAP = 10000000n;
8
+ export declare const MAX_PRIORITY_PRICE = 100000000n;
9
+ export declare const MICRO_LAMPORTS_PER_LAMPORT = 1000000n;
10
+ export declare const DEFAULT_UNITS_PER_INSTRUCTION = 200000n;
11
+ export declare const SET_UNIT_LIMIT = 2;
12
+ export declare const SET_UNIT_PRICE = 3;
13
+ export declare function priorityLamports(instructions: readonly Instruction[]): bigint;
14
+ export declare function percentile(fees: readonly bigint[], rank: bigint): bigint;
15
+ export declare function writableAccounts(instructions: readonly Instruction[]): Address[];
16
+ export declare function priceOf(transport: Transport, priority: Priority, instructions: readonly Instruction[]): Promise<bigint>;
17
+ export declare function unitsOf(transport: Transport, instructions: readonly Instruction[], feePayer: Address): Promise<bigint | null>;
18
+ export declare function budgeted(transport: Transport, priority: Priority, instructions: readonly Instruction[], feePayer: Address): Promise<Instruction[]>;
19
+ export declare function withPriority(inner: Transport, priority: Priority): Transport;
@@ -0,0 +1,81 @@
1
+ import { appendTransactionMessageInstructions, createTransactionMessage, getBase64EncodedWireTransaction, isWritableRole, partiallySignTransactionMessageWithSigners, pipe, setTransactionMessageFeePayer, setTransactionMessageLifetimeUsingBlockhash, } from "@solana/kit";
2
+ import { COMPUTE_BUDGET_ADDRESS, computeUnitLimit, computeUnitPrice, headroom, MAX_COMPUTE_UNITS, UNIT_HEADROOM_DIVISOR, UNIT_HEADROOM_FLOOR, } from "@intent-engine/solver";
3
+ export { headroom, UNIT_HEADROOM_DIVISOR, UNIT_HEADROOM_FLOOR };
4
+ export const AUTO_PERCENTILE = 75n;
5
+ export const AUTO_PRICE_CAP = 10000000n;
6
+ export const MAX_PRIORITY_PRICE = 100000000n;
7
+ export const MICRO_LAMPORTS_PER_LAMPORT = 1000000n;
8
+ export const DEFAULT_UNITS_PER_INSTRUCTION = 200000n;
9
+ export const SET_UNIT_LIMIT = 2;
10
+ export const SET_UNIT_PRICE = 3;
11
+ export function priorityLamports(instructions) {
12
+ let limit = null;
13
+ let price = 0n;
14
+ let others = 0n;
15
+ for (const ix of instructions) {
16
+ const data = ix.data;
17
+ if (ix.programAddress !== COMPUTE_BUDGET_ADDRESS || data === undefined) {
18
+ others++;
19
+ continue;
20
+ }
21
+ const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
22
+ if (data[0] === SET_UNIT_LIMIT && data.length === 5) {
23
+ limit = BigInt(view.getUint32(1, true));
24
+ }
25
+ else if (data[0] === SET_UNIT_PRICE && data.length === 9) {
26
+ price = view.getBigUint64(1, true);
27
+ }
28
+ }
29
+ const units = limit ?? BigInt(Math.min(Number(others * DEFAULT_UNITS_PER_INSTRUCTION), MAX_COMPUTE_UNITS));
30
+ return (price * units + MICRO_LAMPORTS_PER_LAMPORT - 1n) / MICRO_LAMPORTS_PER_LAMPORT;
31
+ }
32
+ export function percentile(fees, rank) {
33
+ const sorted = [...fees].sort((a, b) => Number(a - b));
34
+ if (sorted.length === 0) {
35
+ return 0n;
36
+ }
37
+ const at = (BigInt(sorted.length - 1) * rank) / 100n;
38
+ return sorted[Number(at)] ?? 0n;
39
+ }
40
+ export function writableAccounts(instructions) {
41
+ const seen = new Set();
42
+ for (const ix of instructions) {
43
+ for (const meta of ix.accounts ?? []) {
44
+ if (isWritableRole(meta.role)) {
45
+ seen.add(meta.address);
46
+ }
47
+ }
48
+ }
49
+ return [...seen];
50
+ }
51
+ export async function priceOf(transport, priority, instructions) {
52
+ if (priority !== "auto") {
53
+ return priority;
54
+ }
55
+ const suggested = percentile(await transport.recentFees(writableAccounts(instructions)), AUTO_PERCENTILE);
56
+ return suggested < AUTO_PRICE_CAP ? suggested : AUTO_PRICE_CAP;
57
+ }
58
+ export async function unitsOf(transport, instructions, feePayer) {
59
+ const latest = await transport.latestBlockhash();
60
+ const message = pipe(createTransactionMessage({ version: 0 }), (m) => setTransactionMessageFeePayer(feePayer, m), (m) => setTransactionMessageLifetimeUsingBlockhash(latest, m), (m) => appendTransactionMessageInstructions(instructions, m));
61
+ const simulation = await transport.simulate(getBase64EncodedWireTransaction(await partiallySignTransactionMessageWithSigners(message)));
62
+ return simulation.err === null ? simulation.unitsConsumed : null;
63
+ }
64
+ export async function budgeted(transport, priority, instructions, feePayer) {
65
+ if (instructions.some((ix) => ix.programAddress === COMPUTE_BUDGET_ADDRESS)) {
66
+ return [...instructions];
67
+ }
68
+ const price = await priceOf(transport, priority, instructions);
69
+ const head = price > 0n ? [computeUnitPrice(price)] : [];
70
+ const consumed = await unitsOf(transport, [computeUnitLimit(MAX_COMPUTE_UNITS), ...head, ...instructions], feePayer);
71
+ return [computeUnitLimit(consumed === null ? MAX_COMPUTE_UNITS : headroom(consumed)), ...head, ...instructions];
72
+ }
73
+ export function withPriority(inner, priority) {
74
+ const budget = (instructions, feePayer) => budgeted(inner, priority, instructions, feePayer);
75
+ return {
76
+ ...inner,
77
+ budget,
78
+ send: async (instructions, payer) => inner.send(await budget(instructions, payer.address), payer),
79
+ };
80
+ }
81
+ //# sourceMappingURL=compute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compute.js","sourceRoot":"","sources":["../../src/compute.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { type Address, type Instruction, type TransactionSigner } from "@solana/kit";
2
+ import { type Intent } from "@intent-engine/core";
3
+ import type { AccountView, Transport } from "./transport.js";
4
+ export declare function vaultBalance(transport: Transport, intent: Address): Promise<bigint>;
5
+ export declare const UNFUNDED = "the owner's canonical token account is missing or cannot take a refund; pass --fund-accounts to pay for one that can";
6
+ export declare const TOKEN_ACCOUNT_BYTES = 165;
7
+ export declare const IMMUTABLE_OWNER = 7;
8
+ export declare function refundable(view: AccountView | null, owner: Address, mint: Address, tokenProgram: Address, engine: Address): boolean;
9
+ export declare class UnfundedAccount extends Error {
10
+ constructor(message?: string);
11
+ }
12
+ export type Funding = "never" | "covered" | "always";
13
+ export declare const FUNDING_RENT: bigint;
14
+ export declare const costlyFunding: (bounty: bigint) => string;
15
+ export declare class CostlyFunding extends UnfundedAccount {
16
+ constructor(bounty: bigint);
17
+ }
18
+ export declare const SEED_PART = 16;
19
+ export declare const refundSeed: (owner: Address, mint: Address) => string;
20
+ export declare function refundTarget(transport: Transport, payer: TransactionSigner, owner: Address, mint: Address, tokenProgram: Address, fund: Funding, bounty: bigint): Promise<{
21
+ prep: Instruction[];
22
+ refundTo: Address;
23
+ }>;
24
+ export declare function expiring(transport: Transport, cranker: TransactionSigner, address: Address, intent: Intent, fund: Funding, andClose: boolean): Promise<Instruction<string, readonly (import("@solana/kit").AccountLookupMeta<string, string> | import("@solana/kit").AccountMeta<string>)[]>[]>;
25
+ export declare function closing(transport: Transport, payer: TransactionSigner, address: Address, intent: Intent, fund: Funding): Promise<Instruction<string, readonly (import("@solana/kit").AccountLookupMeta<string, string> | import("@solana/kit").AccountMeta<string>)[]>[]>;
26
+ export type CrankAction = {
27
+ intent: Address;
28
+ action: "expire" | "close";
29
+ signature?: string;
30
+ error?: string;
31
+ skipped?: string;
32
+ };
33
+ export declare function crankAction(intent: Intent, now: bigint, cranker?: Address): "expire" | "close" | undefined;
34
+ export declare function crank(transport: Transport, cranker: TransactionSigner, dryRun: boolean, fund: boolean): Promise<{
35
+ now: bigint;
36
+ dryRun: boolean;
37
+ untouched: number;
38
+ actions: CrankAction[];
39
+ }>;
@@ -0,0 +1,171 @@
1
+ import { createAddressWithSeed, isSome } from "@solana/kit";
2
+ import { getCreateAccountWithSeedInstruction } from "@solana-program/system";
3
+ import { AccountState, getCreateAssociatedTokenIdempotentInstructionAsync, getInitializeAccount3Instruction, getTokenDecoder, } from "@solana-program/token";
4
+ import { buildCloseIntent, buildExpireIntent, findAssociatedTokenAddress, findDelegatePda, findVaultPda, getIntentDecoder, INTENT_VERSION, } from "@intent-engine/core";
5
+ import { chainTime, createdAccount, EXTENSIONS_OFFSET, STATUS, tokenProgramOf } from "./accounts.js";
6
+ import { rentFor } from "./agent/budget.js";
7
+ export async function vaultBalance(transport, intent) {
8
+ const [vault] = await findVaultPda({ intent });
9
+ const view = await createdAccount(transport, vault);
10
+ return view === null ? 0n : getTokenDecoder().decode(view.data).amount;
11
+ }
12
+ async function vaultHolds(transport, intent) {
13
+ return (await vaultBalance(transport, intent)) > 0n;
14
+ }
15
+ export const UNFUNDED = "the owner's canonical token account is missing or cannot take a refund; pass --fund-accounts to pay for one that can";
16
+ export const TOKEN_ACCOUNT_BYTES = 165;
17
+ export const IMMUTABLE_OWNER = 7;
18
+ function onlyImmutableOwner(data) {
19
+ const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
20
+ for (let at = EXTENSIONS_OFFSET; at + 4 <= data.length; at += 4 + view.getUint16(at + 2, true)) {
21
+ if (view.getUint16(at, true) !== IMMUTABLE_OWNER) {
22
+ return false;
23
+ }
24
+ }
25
+ return true;
26
+ }
27
+ export function refundable(view, owner, mint, tokenProgram, engine) {
28
+ if (view === null || view.owner !== tokenProgram || view.data.length < TOKEN_ACCOUNT_BYTES) {
29
+ return false;
30
+ }
31
+ const token = getTokenDecoder().decode(view.data);
32
+ return (token.mint === mint &&
33
+ token.owner === owner &&
34
+ token.state === AccountState.Initialized &&
35
+ (!isSome(token.delegate) || token.delegate.value === engine) &&
36
+ (!isSome(token.closeAuthority) || token.closeAuthority.value === owner) &&
37
+ onlyImmutableOwner(view.data));
38
+ }
39
+ export class UnfundedAccount extends Error {
40
+ constructor(message = UNFUNDED) {
41
+ super(message);
42
+ this.name = "UnfundedAccount";
43
+ }
44
+ }
45
+ export const FUNDING_RENT = rentFor(TOKEN_ACCOUNT_BYTES);
46
+ export const costlyFunding = (bounty) => `recreating the owner's token account costs ${FUNDING_RENT} lamports of rent, more than this intent's ${bounty} lamport bounty; settle it with expire or close to pay that knowingly`;
47
+ export class CostlyFunding extends UnfundedAccount {
48
+ constructor(bounty) {
49
+ super(costlyFunding(bounty));
50
+ this.name = "CostlyFunding";
51
+ }
52
+ }
53
+ export const SEED_PART = 16;
54
+ export const refundSeed = (owner, mint) => owner.slice(0, SEED_PART) + mint.slice(0, SEED_PART);
55
+ export async function refundTarget(transport, payer, owner, mint, tokenProgram, fund, bounty) {
56
+ const canonical = await findAssociatedTokenAddress({ owner, mint, tokenProgram });
57
+ const view = await createdAccount(transport, canonical);
58
+ const [engine] = await findDelegatePda({ owner });
59
+ if (refundable(view, owner, mint, tokenProgram, engine)) {
60
+ return { prep: [], refundTo: canonical };
61
+ }
62
+ if (fund === "never") {
63
+ throw new UnfundedAccount();
64
+ }
65
+ const pay = () => {
66
+ if (fund === "covered" && bounty < FUNDING_RENT) {
67
+ throw new CostlyFunding(bounty);
68
+ }
69
+ };
70
+ if (view === null) {
71
+ pay();
72
+ return {
73
+ prep: [await getCreateAssociatedTokenIdempotentInstructionAsync({ payer, owner, mint, tokenProgram })],
74
+ refundTo: canonical,
75
+ };
76
+ }
77
+ const seed = refundSeed(owner, mint);
78
+ const spare = await createAddressWithSeed({ baseAddress: payer.address, programAddress: tokenProgram, seed });
79
+ if (refundable(await createdAccount(transport, spare), owner, mint, tokenProgram, engine)) {
80
+ return { prep: [], refundTo: spare };
81
+ }
82
+ pay();
83
+ return {
84
+ prep: [
85
+ getCreateAccountWithSeedInstruction({
86
+ payer,
87
+ newAccount: spare,
88
+ baseAccount: payer,
89
+ base: payer.address,
90
+ seed,
91
+ amount: FUNDING_RENT,
92
+ space: TOKEN_ACCOUNT_BYTES,
93
+ programAddress: tokenProgram,
94
+ }),
95
+ getInitializeAccount3Instruction({ account: spare, mint, owner }, { programAddress: tokenProgram }),
96
+ ],
97
+ refundTo: spare,
98
+ };
99
+ }
100
+ export async function expiring(transport, cranker, address, intent, fund, andClose) {
101
+ const tokenProgram = await tokenProgramOf(transport, intent.inputMint);
102
+ const ref = { owner: intent.owner, nonce: intent.nonce, inputMint: intent.inputMint, tokenProgram };
103
+ const bounty = BigInt(intent.bounty);
104
+ const { prep, refundTo } = await refundTarget(transport, cranker, intent.owner, intent.inputMint, tokenProgram, fund, bounty);
105
+ const ix = await buildExpireIntent({ ...ref, cranker, refundTo });
106
+ const close = andClose ? [await buildCloseIntent({ ...ref, cranker, rentPayer: intent.rentPayer, refundTo })] : [];
107
+ return [...prep, ix, ...close];
108
+ }
109
+ export async function closing(transport, payer, address, intent, fund) {
110
+ const tokenProgram = await tokenProgramOf(transport, intent.inputMint);
111
+ const target = (await vaultHolds(transport, address))
112
+ ? await refundTarget(transport, payer, intent.owner, intent.inputMint, tokenProgram, fund, BigInt(intent.bounty))
113
+ : { prep: [], refundTo: undefined };
114
+ const ix = await buildCloseIntent({
115
+ cranker: payer,
116
+ owner: intent.owner,
117
+ nonce: intent.nonce,
118
+ inputMint: intent.inputMint,
119
+ tokenProgram,
120
+ rentPayer: intent.rentPayer,
121
+ ...(target.refundTo === undefined ? {} : { refundTo: target.refundTo }),
122
+ });
123
+ return [...target.prep, ix];
124
+ }
125
+ export function crankAction(intent, now, cranker) {
126
+ if (intent.version !== INTENT_VERSION) {
127
+ return undefined;
128
+ }
129
+ const status = STATUS[intent.status];
130
+ if (status === "open") {
131
+ return now >= intent.expiresAt ? "expire" : undefined;
132
+ }
133
+ if (status === "cancelled") {
134
+ return intent.rentPayer === cranker ? "close" : undefined;
135
+ }
136
+ return status === "filled" || status === "expired" ? "close" : undefined;
137
+ }
138
+ export async function crank(transport, cranker, dryRun, fund) {
139
+ const now = await chainTime(transport);
140
+ const actions = [];
141
+ let untouched = 0;
142
+ const funding = fund ? "covered" : "never";
143
+ for (const { address, data } of await transport.intents()) {
144
+ const intent = getIntentDecoder().decode(data);
145
+ const action = crankAction(intent, now, cranker.address);
146
+ if (action === undefined) {
147
+ untouched += 1;
148
+ continue;
149
+ }
150
+ if (dryRun) {
151
+ actions.push({ intent: address, action });
152
+ continue;
153
+ }
154
+ try {
155
+ const ixs = action === "expire"
156
+ ? await expiring(transport, cranker, address, intent, funding, true)
157
+ : await closing(transport, cranker, address, intent, funding);
158
+ actions.push({ intent: address, action, signature: await transport.send(ixs, cranker) });
159
+ }
160
+ catch (error) {
161
+ if (error instanceof UnfundedAccount) {
162
+ actions.push({ intent: address, action, skipped: error.message });
163
+ }
164
+ else {
165
+ actions.push({ intent: address, action, error: error instanceof Error ? error.message : String(error) });
166
+ }
167
+ }
168
+ }
169
+ return { now, dryRun, untouched, actions };
170
+ }
171
+ //# sourceMappingURL=crank.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crank.js","sourceRoot":"","sources":["../../src/crank.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare const EVENT_IX_TAG: Uint8Array<ArrayBuffer>;
2
+ export declare const NOTABLE: Set<string>;
3
+ export type DecodedEvent = {
4
+ name: string;
5
+ notable: boolean;
6
+ fields: object;
7
+ };
8
+ export declare function decodeEvent(data: Uint8Array): DecodedEvent | null;
@@ -0,0 +1,43 @@
1
+ import { IntentEngineEvent, identifyIntentEngineEvent, parseAdminAcceptedEvent, parseAdminProposedEvent, parseConfigInitializedEvent, parseConfigUpdatedEvent, parseFillBegunEvent, parseFillEndedEvent, parseIntentAttestedEvent, parseIntentCancelledEvent, parseIntentClosedEvent, parseIntentCreatedEvent, parseIntentExpiredEvent, parseIntentFilledEvent, parseNonceAdvancedEvent, parsePauseLoweredEvent, parsePauseRaisedEvent, parseUserInitializedEvent, } from "@intent-engine/core";
2
+ export const EVENT_IX_TAG = new Uint8Array([0xe4, 0xa5, 0x45, 0xea, 0x51, 0xcb, 0x9a, 0x1d]);
3
+ const PARSERS = {
4
+ AdminAccepted: parseAdminAcceptedEvent,
5
+ AdminProposed: parseAdminProposedEvent,
6
+ ConfigInitialized: parseConfigInitializedEvent,
7
+ ConfigUpdated: parseConfigUpdatedEvent,
8
+ FillBegun: parseFillBegunEvent,
9
+ FillEnded: parseFillEndedEvent,
10
+ IntentAttested: parseIntentAttestedEvent,
11
+ IntentCancelled: parseIntentCancelledEvent,
12
+ IntentClosed: parseIntentClosedEvent,
13
+ IntentCreated: parseIntentCreatedEvent,
14
+ IntentExpired: parseIntentExpiredEvent,
15
+ IntentFilled: parseIntentFilledEvent,
16
+ NonceAdvanced: parseNonceAdvancedEvent,
17
+ PauseLowered: parsePauseLoweredEvent,
18
+ PauseRaised: parsePauseRaisedEvent,
19
+ UserInitialized: parseUserInitializedEvent,
20
+ };
21
+ export const NOTABLE = new Set([
22
+ "AdminAccepted",
23
+ "AdminProposed",
24
+ "ConfigInitialized",
25
+ "ConfigUpdated",
26
+ "PauseLowered",
27
+ "PauseRaised",
28
+ ]);
29
+ export function decodeEvent(data) {
30
+ if (data.length < EVENT_IX_TAG.length || !EVENT_IX_TAG.every((b, i) => data[i] === b)) {
31
+ return null;
32
+ }
33
+ const body = data.subarray(EVENT_IX_TAG.length);
34
+ let name;
35
+ try {
36
+ name = IntentEngineEvent[identifyIntentEngineEvent(body)];
37
+ }
38
+ catch {
39
+ return null;
40
+ }
41
+ return { name, notable: NOTABLE.has(name), fields: PARSERS[name](body) };
42
+ }
43
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAI7F,MAAM,OAAO,GAAoD;IAC/D,aAAa,EAAE,uBAAuB;IACtC,aAAa,EAAE,uBAAuB;IACtC,iBAAiB,EAAE,2BAA2B;IAC9C,aAAa,EAAE,uBAAuB;IACtC,SAAS,EAAE,mBAAmB;IAC9B,SAAS,EAAE,mBAAmB;IAC9B,cAAc,EAAE,wBAAwB;IACxC,eAAe,EAAE,yBAAyB;IAC1C,YAAY,EAAE,sBAAsB;IACpC,aAAa,EAAE,uBAAuB;IACtC,aAAa,EAAE,uBAAuB;IACtC,YAAY,EAAE,sBAAsB;IACpC,aAAa,EAAE,uBAAuB;IACtC,YAAY,EAAE,sBAAsB;IACpC,WAAW,EAAE,qBAAqB;IAClC,eAAe,EAAE,yBAAyB;CAC3C,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;IAC7B,eAAe;IACf,eAAe;IACf,mBAAmB;IACnB,eAAe;IACf,cAAc;IACd,aAAa;CACd,CAAC,CAAC;AAIH,MAAM,UAAU,WAAW,CAAC,IAAgB;IAC1C,IAAI,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACtF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,IAAe,CAAC;IACpB,IAAI,CAAC;QACH,IAAI,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3E,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { type Address, type KeyPairSigner } from "@solana/kit";
2
+ import { type AgentContext, type AnyAction } from "./agent/actions.js";
3
+ import { type Side } from "./args.js";
4
+ import type { Transport } from "./transport.js";
5
+ export declare const PREPARED_KEYS: readonly ["setup", "prepared"];
6
+ export declare const NOT_SENT = "nothing was sent; check the summary and pass --yes to sign and send";
7
+ export type PreparedView = {
8
+ transaction: string;
9
+ signers: string[];
10
+ last_valid_block_height: string | bigint;
11
+ priority_fee_lamports?: string | bigint;
12
+ };
13
+ export declare class FlowRefused extends Error {
14
+ }
15
+ export declare function hasTokens(value: unknown): boolean;
16
+ export declare function scaled(value: unknown, decimals: Record<Side, number>): unknown;
17
+ export declare function inRaw<T>(transport: Transport, input: T, inputMint: Address, outputMint: Address): Promise<T>;
18
+ export declare function execute(transport: Transport, view: PreparedView, signer: KeyPairSigner): Promise<string>;
19
+ export declare function ask(action: AnyAction, ctx: AgentContext, input: object): Promise<Record<string, unknown>>;
20
+ export declare function finish(transport: Transport, value: Record<string, unknown>, signer: KeyPairSigner, yes: boolean): Promise<object>;
21
+ export declare function perform(action: AnyAction, ctx: AgentContext, input: object, signer: KeyPairSigner, yes: boolean): Promise<object>;
22
+ export declare function signMessage(signer: KeyPairSigner, base64: string): Promise<string>;
23
+ export declare function approval(transport: Transport, signer: KeyPairSigner, mint: Address, amount: bigint | undefined, yes: boolean): Promise<object>;
@@ -0,0 +1,128 @@
1
+ import { createNoopSigner, getBase58Decoder, getBase64Encoder, getBase64EncodedWireTransaction, getTransactionDecoder, partiallySignTransaction, signBytes, } from "@solana/kit";
2
+ import { getRevokeInstruction, getTokenDecoder } from "@solana-program/token";
3
+ import { buildApproveDelegate, findAssociatedTokenAddress, findDelegatePda, formatAmount, parseAmount, } from "@intent-engine/core";
4
+ import { createdAccount, mintOf } from "./accounts.js";
5
+ import { invoke } from "./agent/actions.js";
6
+ import { WARN_REPLACES_DELEGATE } from "./agent/owner.js";
7
+ import { prepare } from "./agent/prepare.js";
8
+ import { problemOf } from "./agent/problems.js";
9
+ import { preparedView } from "./agent/shapes.js";
10
+ import { UsageError } from "./args.js";
11
+ export const PREPARED_KEYS = ["setup", "prepared"];
12
+ export const NOT_SENT = "nothing was sent; check the summary and pass --yes to sign and send";
13
+ export class FlowRefused extends Error {
14
+ }
15
+ const isTokens = (value) => value !== null && typeof value === "object" && "tokens" in value && "side" in value;
16
+ export function hasTokens(value) {
17
+ if (isTokens(value)) {
18
+ return true;
19
+ }
20
+ return value !== null && typeof value === "object" && Object.values(value).some(hasTokens);
21
+ }
22
+ export function scaled(value, decimals) {
23
+ if (isTokens(value)) {
24
+ try {
25
+ return parseAmount(value.tokens, decimals[value.side]).toString();
26
+ }
27
+ catch (error) {
28
+ throw new UsageError(error instanceof Error ? error.message : String(error));
29
+ }
30
+ }
31
+ if (Array.isArray(value)) {
32
+ return value.map((v) => scaled(v, decimals));
33
+ }
34
+ if (value !== null && typeof value === "object") {
35
+ return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, scaled(v, decimals)]));
36
+ }
37
+ return value;
38
+ }
39
+ export async function inRaw(transport, input, inputMint, outputMint) {
40
+ if (!hasTokens(input)) {
41
+ return input;
42
+ }
43
+ const decimalsOf = async (mint) => {
44
+ try {
45
+ return (await mintOf(transport, mint)).decimals;
46
+ }
47
+ catch (error) {
48
+ const problem = problemOf(error);
49
+ throw new FlowRefused(`${problem.code}: ${problem.hint}`);
50
+ }
51
+ };
52
+ const decimals = { input: await decimalsOf(inputMint), output: await decimalsOf(outputMint) };
53
+ return scaled(input, decimals);
54
+ }
55
+ export async function execute(transport, view, signer) {
56
+ const others = view.signers.filter((s) => s !== signer.address);
57
+ if (others.length > 0) {
58
+ throw new FlowRefused(`this transaction also needs signatures from ${others.join(", ")}`);
59
+ }
60
+ const tx = getTransactionDecoder().decode(getBase64Encoder().encode(view.transaction));
61
+ const signed = await partiallySignTransaction([signer.keyPair], tx);
62
+ const latest = { blockhash: "", lastValidBlockHeight: BigInt(view.last_valid_block_height) };
63
+ return transport.sendWire(getBase64EncodedWireTransaction(signed), latest);
64
+ }
65
+ export async function ask(action, ctx, input) {
66
+ const outcome = await invoke(action, ctx, input);
67
+ if (!outcome.ok) {
68
+ const message = `${outcome.problem.code}: ${outcome.problem.hint}`;
69
+ throw outcome.problem.code === "InvalidInput" ? new UsageError(message) : new FlowRefused(message);
70
+ }
71
+ return outcome.value;
72
+ }
73
+ export async function finish(transport, value, signer, yes) {
74
+ const views = PREPARED_KEYS.map((key) => value[key]).filter((v) => v !== undefined);
75
+ const priority = views.reduce((sum, v) => sum + BigInt(v.priority_fee_lamports ?? 0n), 0n);
76
+ const shown = {
77
+ ...Object.fromEntries(Object.entries(value).filter(([k]) => !PREPARED_KEYS.includes(k))),
78
+ ...(priority > 0n ? { priority_fee_lamports: priority } : {}),
79
+ };
80
+ if (!yes) {
81
+ return { ...shown, sent: false, next: NOT_SENT };
82
+ }
83
+ const signatures = [];
84
+ for (const view of views) {
85
+ signatures.push(await execute(transport, view, signer));
86
+ }
87
+ return { ...shown, sent: true, signatures };
88
+ }
89
+ export async function perform(action, ctx, input, signer, yes) {
90
+ return finish(ctx.transport, await ask(action, ctx, input), signer, yes);
91
+ }
92
+ export async function signMessage(signer, base64) {
93
+ return getBase58Decoder().decode(await signBytes(signer.keyPair.privateKey, getBase64Encoder().encode(base64)));
94
+ }
95
+ export async function approval(transport, signer, mint, amount, yes) {
96
+ const token = await mintOf(transport, mint);
97
+ const owner = createNoopSigner(signer.address);
98
+ const account = await findAssociatedTokenAddress({ owner: signer.address, mint, tokenProgram: token.tokenProgram });
99
+ const view = await createdAccount(transport, account);
100
+ if (view === null) {
101
+ throw new FlowRefused(`${signer.address} holds no token account for ${mint} at ${account}`);
102
+ }
103
+ const state = getTokenDecoder().decode(view.data);
104
+ const [engine] = await findDelegatePda({ owner: signer.address });
105
+ const delegate = state.delegate.__option === "Some" ? state.delegate.value : null;
106
+ const before = delegate === engine ? state.delegatedAmount : 0n;
107
+ const show = (raw) => formatAmount(raw, token.decimals);
108
+ if (amount === undefined && delegate !== engine) {
109
+ throw new FlowRefused(delegate === null
110
+ ? `${account} gives no spending allowance to anyone; nothing to remove`
111
+ : `the allowance on ${account} belongs to ${delegate}, not the engine; it is left alone`);
112
+ }
113
+ const instruction = amount === undefined
114
+ ? getRevokeInstruction({ source: account, owner }, { programAddress: token.tokenProgram })
115
+ : await buildApproveDelegate({ owner, mint, tokenProgram: token.tokenProgram, amount, decimals: token.decimals });
116
+ const summary = amount === undefined
117
+ ? [`Removes the engine's spending allowance on ${account} (now ${show(before)})`]
118
+ : [`Sets the engine's spending allowance on ${account} to ${show(amount)} (now ${show(before)})`];
119
+ const warnings = delegate !== null && delegate !== engine ? [WARN_REPLACES_DELEGATE] : [];
120
+ return finish(transport, {
121
+ account,
122
+ allowance: amount ?? 0n,
123
+ summary: [...summary, ...warnings.map((w) => `WARNING: ${w}`)],
124
+ warnings,
125
+ prepared: preparedView(await prepare(transport, [instruction], signer.address)),
126
+ }, signer, yes);
127
+ }
128
+ //# sourceMappingURL=flows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flows.js","sourceRoot":"","sources":["../../src/flows.ts"],"names":[],"mappings":"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"}