@intent-engine/solver 0.1.23 → 0.1.26

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.
@@ -9,6 +9,7 @@ export type JupiterOptions = {
9
9
  apiKey?: string;
10
10
  };
11
11
  export declare const RATE_LIMITED = 429;
12
+ export declare const EXACT_IN = "ExactIn";
12
13
  export declare class RateLimited extends Error {
13
14
  constructor();
14
15
  }
@@ -1,5 +1,6 @@
1
1
  import { AccountRole, address, getBase64Encoder } from "@solana/kit";
2
2
  export const RATE_LIMITED = 429;
3
+ export const EXACT_IN = "ExactIn";
3
4
  export class RateLimited extends Error {
4
5
  constructor() {
5
6
  super("the aggregator is rate limiting this solver; try again on the next run");
@@ -121,6 +122,13 @@ export function jupiterPricer(options) {
121
122
  if (amount(quote, "inAmount") !== request.amountIn) {
122
123
  throw new Error("jupiter quoted a different input amount than requested");
123
124
  }
125
+ if (text(quote, "inputMint") !== request.inputMint || text(quote, "outputMint") !== request.outputMint) {
126
+ throw new Error("jupiter quoted other mints than requested");
127
+ }
128
+ const mode = text(quote, "swapMode");
129
+ if (mode !== EXACT_IN) {
130
+ throw new Error(`jupiter quoted swap mode ${mode}, not ${EXACT_IN}`);
131
+ }
124
132
  const built = await body(await options.fetch(`${options.baseUrl}/swap-instructions`, {
125
133
  method: "POST",
126
134
  headers: { "content-type": "application/json", ...keyed },
@@ -1 +1 @@
1
- {"version":3,"file":"jupiter.js","sourceRoot":"","sources":["../../src/jupiter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jupiter.js","sourceRoot":"","sources":["../../src/jupiter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Address, Base64EncodedWireTransaction, Blockhash, Instruction, TransactionSigner } from "@solana/kit";
1
+ import { type Address, type Base64EncodedWireTransaction, type Blockhash, type Instruction, type TransactionSigner } from "@solana/kit";
2
2
  import { type Config, type Intent } from "@intent-engine/core";
3
3
  import { type Tip } from "./build.js";
4
4
  import type { Pricer } from "./market.js";
@@ -18,6 +18,7 @@ export type Chain = {
18
18
  lastValidBlockHeight: bigint;
19
19
  }>;
20
20
  tokenAmount(address: Address): Promise<bigint>;
21
+ mintData?(mint: Address): Promise<Uint8Array | null>;
21
22
  };
22
23
  export type Simulated = {
23
24
  err: string | null;
@@ -35,6 +36,9 @@ export type SolverOptions = {
35
36
  strategy: Strategy;
36
37
  tip: Tip | null;
37
38
  lookupTables?: readonly Address[];
39
+ maxSolCost?: bigint;
40
+ maxRent?: bigint;
41
+ backoff?: Backoff;
38
42
  unitPrice(instructions: readonly Instruction[]): Promise<bigint>;
39
43
  simulate(wire: Base64EncodedWireTransaction, watch: readonly Address[]): Promise<Simulated>;
40
44
  send(wire: Base64EncodedWireTransaction): Promise<Sent>;
@@ -44,15 +48,18 @@ export type Report = {
44
48
  intent: Address;
45
49
  profit: bigint;
46
50
  signature: string;
51
+ rent?: bigint;
47
52
  }[];
48
53
  sent: {
49
54
  intent: Address;
50
55
  profit: bigint;
51
56
  signature: string;
57
+ rent?: bigint;
52
58
  }[];
53
59
  skipped: {
54
60
  intent: Address;
55
61
  reason: string;
62
+ rent?: bigint;
56
63
  }[];
57
64
  failed: {
58
65
  intent: Address;
@@ -63,6 +70,43 @@ export declare const SIMULATION_REFUSED = "the fill failed in simulation, so it
63
70
  export declare const BALANCES_REFUSED = "the fill would leave the solver with less of a token than planned, so it was not sent";
64
71
  export declare const ROUTE_ACCOUNT_BUDGETS: readonly [40, 30, 20];
65
72
  export declare const tooLarge: (bytes: number | null, accounts: number) => string;
73
+ export declare const LAMPORTS_PER_SIGNATURE = 5000n;
74
+ export declare const MICRO_LAMPORTS_PER_LAMPORT = 1000000n;
75
+ export declare const DEFAULT_MAX_SOL_COST = 10000000n;
76
+ export declare const DEFAULT_MAX_RENT = 10000000n;
77
+ export declare const TOKEN_ACCOUNT_SPACE = 165;
78
+ export declare const TOKEN_2022_ACCOUNT_SPACE = 170;
79
+ export declare const TOKEN_2022_PROGRAM: Address;
80
+ export declare const rentExempt: (space: number) => bigint;
81
+ export declare function mintExtensions(data: Uint8Array | null): number[];
82
+ export declare function tokenAccountSpace(tokenProgram: Address, mint: Uint8Array | null): number;
83
+ export type SolCost = {
84
+ signatures: number;
85
+ unitPrice: bigint;
86
+ computeUnits: number;
87
+ tip: bigint;
88
+ };
89
+ export declare function solCost(cost: SolCost): bigint;
90
+ export declare const tooCostly: (cost: bigint, cap: bigint) => string;
91
+ export declare const tooMuchRent: (rent: bigint, cap: bigint) => string;
92
+ export declare function signaturesOf(wire: Base64EncodedWireTransaction): number;
93
+ export declare function createdRent(instructions: readonly Instruction[], exists: (address: Address) => Promise<boolean>, mintData?: (mint: Address) => Promise<Uint8Array | null>): Promise<bigint>;
94
+ export declare const BACKOFF_MAX_INTERVALS = 32;
95
+ export type Backoff = {
96
+ waiting(address: Address, intent: Intent): {
97
+ failures: number;
98
+ seconds: number;
99
+ } | null;
100
+ failed(address: Address, intent: Intent): void;
101
+ succeeded(address: Address): void;
102
+ retain(intents: readonly {
103
+ address: Address;
104
+ intent: Intent;
105
+ }[], now: bigint): void;
106
+ size(): number;
107
+ };
108
+ export declare function backoff(interval: number, clock?: () => number): Backoff;
109
+ export declare const backingOff: (failures: number, seconds: number) => string;
66
110
  export declare function tick(o: SolverOptions): Promise<Report>;
67
111
  export declare const CONFIG_TTL_MS = 30000;
68
112
  export declare const BLOCKHASH_TTL_MS = 20000;
@@ -1,14 +1,149 @@
1
- import { findAssociatedTokenAddress } from "@intent-engine/core";
1
+ import { getBase64Encoder, getTransactionDecoder, } from "@solana/kit";
2
+ import { findAssociatedTokenAddress, IntentStatus } from "@intent-engine/core";
2
3
  import { accountsOf, bytesFit, compile, fillInstructions, headroom, locksFit, lookupTablesOf, MAX_COMPUTE_UNITS, MAX_TX_ACCOUNTS, PACKET_DATA_SIZE, payoutAccounts, wireSize, } from "./build.js";
3
- import { RateLimited } from "./jupiter.js";
4
+ import { ASSOCIATED_TOKEN_PROGRAM, RateLimited } from "./jupiter.js";
4
5
  import { decide, standing } from "./plan.js";
5
6
  export const SIMULATION_REFUSED = "the fill failed in simulation, so it was not sent";
6
7
  export const BALANCES_REFUSED = "the fill would leave the solver with less of a token than planned, so it was not sent";
7
8
  export const ROUTE_ACCOUNT_BUDGETS = [40, 30, 20];
8
9
  export const tooLarge = (bytes, accounts) => `even the smallest route makes the fill ${bytes === null ? "lock" : `${bytes} bytes with`} ${accounts} accounts; a transaction holds ${PACKET_DATA_SIZE} bytes and ${MAX_TX_ACCOUNTS} accounts`;
10
+ export const LAMPORTS_PER_SIGNATURE = 5000n;
11
+ export const MICRO_LAMPORTS_PER_LAMPORT = 1000000n;
12
+ export const DEFAULT_MAX_SOL_COST = 10000000n;
13
+ export const DEFAULT_MAX_RENT = 10000000n;
14
+ export const TOKEN_ACCOUNT_SPACE = 165;
15
+ export const TOKEN_2022_ACCOUNT_SPACE = 170;
16
+ export const TOKEN_2022_PROGRAM = "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
17
+ const ACCOUNT_STORAGE_OVERHEAD = 128n;
18
+ const LAMPORTS_PER_BYTE_YEAR = 3480n;
19
+ const EXEMPTION_YEARS = 2n;
20
+ const ATA_ADDRESS = 1;
21
+ const ATA_MINT = 3;
22
+ const ATA_TOKEN_PROGRAM = 5;
23
+ export const rentExempt = (space) => (ACCOUNT_STORAGE_OVERHEAD + BigInt(space)) * LAMPORTS_PER_BYTE_YEAR * EXEMPTION_YEARS;
24
+ const ACCOUNT_TYPE_SPACE = 1;
25
+ const EXTENSION_HEADER_SPACE = 4;
26
+ const MULTISIG_SPACE = 355;
27
+ const EXTENSION_TYPE_SPACE = 2;
28
+ const IMMUTABLE_OWNER_SPACE = 0;
29
+ const ACCOUNT_EXTENSION_SPACE = new Map([
30
+ [1, 8],
31
+ [9, 0],
32
+ [14, 1],
33
+ [16, 64],
34
+ [26, 0],
35
+ ]);
36
+ export function mintExtensions(data) {
37
+ const found = [];
38
+ if (data === null || data.length <= TOKEN_ACCOUNT_SPACE + ACCOUNT_TYPE_SPACE) {
39
+ return found;
40
+ }
41
+ const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
42
+ for (let at = TOKEN_ACCOUNT_SPACE + ACCOUNT_TYPE_SPACE; at + EXTENSION_HEADER_SPACE <= data.length;) {
43
+ const type = view.getUint16(at, true);
44
+ if (type === 0) {
45
+ break;
46
+ }
47
+ found.push(type);
48
+ at += EXTENSION_HEADER_SPACE + view.getUint16(at + 2, true);
49
+ }
50
+ return found;
51
+ }
52
+ export function tokenAccountSpace(tokenProgram, mint) {
53
+ if (tokenProgram !== TOKEN_2022_PROGRAM) {
54
+ return TOKEN_ACCOUNT_SPACE;
55
+ }
56
+ const extensions = [
57
+ IMMUTABLE_OWNER_SPACE,
58
+ ...mintExtensions(mint).flatMap((type) => {
59
+ const space = ACCOUNT_EXTENSION_SPACE.get(type);
60
+ return space === undefined ? [] : [space];
61
+ }),
62
+ ];
63
+ const space = extensions.reduce((total, extension) => total + EXTENSION_HEADER_SPACE + extension, TOKEN_ACCOUNT_SPACE + ACCOUNT_TYPE_SPACE);
64
+ return space === MULTISIG_SPACE ? space + EXTENSION_TYPE_SPACE : space;
65
+ }
66
+ export function solCost(cost) {
67
+ const priority = (cost.unitPrice * BigInt(cost.computeUnits) + MICRO_LAMPORTS_PER_LAMPORT - 1n) / MICRO_LAMPORTS_PER_LAMPORT;
68
+ return LAMPORTS_PER_SIGNATURE * BigInt(cost.signatures) + priority + cost.tip;
69
+ }
70
+ export const tooCostly = (cost, cap) => `the fill costs ${cost} lamports in fees and tip, more than the cap of ${cap}`;
71
+ export const tooMuchRent = (rent, cap) => `the fill opens token accounts that keep ${rent} lamports of rent, more than the cap of ${cap}`;
72
+ export function signaturesOf(wire) {
73
+ return Object.keys(getTransactionDecoder().decode(getBase64Encoder().encode(wire)).signatures).length;
74
+ }
75
+ export async function createdRent(instructions, exists, mintData = async () => null) {
76
+ const opened = new Map();
77
+ for (const ix of instructions) {
78
+ const account = ix.accounts?.[ATA_ADDRESS]?.address;
79
+ if (ix.programAddress === ASSOCIATED_TOKEN_PROGRAM && account !== undefined && !opened.has(account)) {
80
+ opened.set(account, { program: ix.accounts?.[ATA_TOKEN_PROGRAM]?.address ?? account, mint: ix.accounts?.[ATA_MINT]?.address });
81
+ }
82
+ }
83
+ let rent = 0n;
84
+ for (const [account, { program, mint }] of opened) {
85
+ if (!(await exists(account))) {
86
+ const data = program === TOKEN_2022_PROGRAM && mint !== undefined ? await mintData(mint) : null;
87
+ rent += rentExempt(tokenAccountSpace(program, data));
88
+ }
89
+ }
90
+ return rent;
91
+ }
92
+ export const BACKOFF_MAX_INTERVALS = 32;
93
+ const fingerprint = (intent) => JSON.stringify(intent, (_, value) => (typeof value === "bigint" ? value.toString() : value));
94
+ const MS_PER_SECOND = 1_000;
95
+ export function backoff(interval, clock = Date.now) {
96
+ const held = new Map();
97
+ return {
98
+ waiting: (address, intent) => {
99
+ const entry = held.get(address);
100
+ if (entry === undefined) {
101
+ return null;
102
+ }
103
+ if (entry.print !== fingerprint(intent)) {
104
+ held.delete(address);
105
+ return null;
106
+ }
107
+ const left = entry.until - clock();
108
+ return left > 0 ? { failures: entry.failures, seconds: Math.ceil(left / MS_PER_SECOND) } : null;
109
+ },
110
+ failed: (address, intent) => {
111
+ const print = fingerprint(intent);
112
+ const entry = held.get(address);
113
+ const failures = (entry?.print === print ? entry.failures : 0) + 1;
114
+ const wait = interval * Math.min(2 ** (failures - 1), BACKOFF_MAX_INTERVALS);
115
+ held.set(address, { print, failures, until: clock() + wait * MS_PER_SECOND });
116
+ },
117
+ succeeded: (address) => {
118
+ held.delete(address);
119
+ },
120
+ retain: (intents, now) => {
121
+ const open = new Set(intents.filter(({ intent }) => intent.status === IntentStatus.Open && now < intent.expiresAt).map(({ address }) => address));
122
+ for (const address of [...held.keys()]) {
123
+ if (!open.has(address)) {
124
+ held.delete(address);
125
+ }
126
+ }
127
+ },
128
+ size: () => held.size,
129
+ };
130
+ }
131
+ export const backingOff = (failures, seconds) => `${failures} fill${failures === 1 ? "" : "s"} of this intent failed in a row; it is tried again in ${seconds} second${seconds === 1 ? "" : "s"}`;
9
132
  export async function tick(o) {
10
133
  const report = { filled: [], sent: [], skipped: [], failed: [] };
11
134
  const [config, now, intents] = await Promise.all([o.chain.config(), o.chain.now(), o.chain.intents()]);
135
+ const cap = o.maxSolCost ?? DEFAULT_MAX_SOL_COST;
136
+ const rentCap = o.maxRent ?? DEFAULT_MAX_RENT;
137
+ const mints = new Map();
138
+ const mintData = (mint) => {
139
+ const known = mints.get(mint);
140
+ if (known !== undefined) {
141
+ return known;
142
+ }
143
+ const loaded = o.chain.mintData?.(mint) ?? Promise.resolve(null);
144
+ mints.set(mint, loaded);
145
+ return loaded;
146
+ };
12
147
  let limited = null;
13
148
  for (const { address, intent } of intents) {
14
149
  if (limited !== null) {
@@ -20,6 +155,11 @@ export async function tick(o) {
20
155
  report.skipped.push({ intent: address, reason: ready });
21
156
  continue;
22
157
  }
158
+ const waiting = o.backoff?.waiting(address, intent) ?? null;
159
+ if (waiting !== null) {
160
+ report.skipped.push({ intent: address, reason: backingOff(waiting.failures, waiting.seconds) });
161
+ continue;
162
+ }
23
163
  try {
24
164
  const [inputTokenProgram, outputTokenProgram] = await Promise.all([
25
165
  o.chain.tokenProgram(intent.inputMint),
@@ -103,11 +243,27 @@ export async function tick(o) {
103
243
  });
104
244
  continue;
105
245
  }
106
- const wire = simulated.unitsConsumed === null
107
- ? probe
108
- : await compile(await fillInstructions(plan, { ...context, computeUnits: headroom(simulated.unitsConsumed) }), o.solver, latest, tables);
246
+ const final = simulated.unitsConsumed === null ? context : { ...context, computeUnits: headroom(simulated.unitsConsumed) };
247
+ const instructions = await fillInstructions(plan, final);
248
+ const wire = simulated.unitsConsumed === null ? probe : await compile(instructions, o.solver, latest, tables);
249
+ const cost = solCost({
250
+ signatures: signaturesOf(wire),
251
+ unitPrice: final.unitPrice,
252
+ computeUnits: final.computeUnits,
253
+ tip: final.tip?.lamports ?? 0n,
254
+ });
255
+ const rent = await createdRent(instructions, (account) => o.chain.exists(account), mintData);
256
+ const kept = rent > 0n ? { rent } : {};
257
+ if (cost > cap) {
258
+ report.skipped.push({ intent: address, reason: tooCostly(cost, cap), ...kept });
259
+ continue;
260
+ }
261
+ if (rent > rentCap) {
262
+ report.skipped.push({ intent: address, reason: tooMuchRent(rent, rentCap), ...kept });
263
+ continue;
264
+ }
109
265
  const sent = await o.send(wire);
110
- (sent.confirmed ? report.filled : report.sent).push({ intent: address, profit: plan.profit, signature: sent.signature });
266
+ (sent.confirmed ? report.filled : report.sent).push({ intent: address, profit: plan.profit, signature: sent.signature, ...kept });
111
267
  }
112
268
  catch (error) {
113
269
  if (error instanceof RateLimited) {
@@ -118,6 +274,18 @@ export async function tick(o) {
118
274
  report.failed.push({ intent: address, error: error instanceof Error ? error.message : String(error) });
119
275
  }
120
276
  }
277
+ if (o.backoff !== undefined) {
278
+ const known = new Map(intents.map(({ address, intent }) => [address, intent]));
279
+ for (const { intent } of report.failed) {
280
+ const state = known.get(intent);
281
+ if (state !== undefined) {
282
+ o.backoff.failed(intent, state);
283
+ }
284
+ }
285
+ for (const { intent } of [...report.filled, ...report.sent]) {
286
+ o.backoff.succeeded(intent);
287
+ }
288
+ }
121
289
  return report;
122
290
  }
123
291
  export const CONFIG_TTL_MS = 30_000;
@@ -145,6 +313,7 @@ function fresh(ttl, clock, load) {
145
313
  }
146
314
  export function remembering(chain, clock = Date.now) {
147
315
  const programs = new Map();
316
+ const mints = new Map();
148
317
  const existing = new Set();
149
318
  const config = fresh(CONFIG_TTL_MS, clock, () => chain.config());
150
319
  const blockhash = fresh(BLOCKHASH_TTL_MS, clock, () => chain.blockhash());
@@ -162,6 +331,24 @@ export function remembering(chain, clock = Date.now) {
162
331
  loaded.catch(() => programs.delete(mint));
163
332
  return loaded;
164
333
  },
334
+ ...(chain.mintData === undefined
335
+ ? {}
336
+ : {
337
+ mintData: (mint) => {
338
+ const known = mints.get(mint);
339
+ if (known !== undefined) {
340
+ return known;
341
+ }
342
+ const loaded = chain.mintData?.(mint) ?? Promise.resolve(null);
343
+ mints.set(mint, loaded);
344
+ loaded.then((data) => {
345
+ if (data === null) {
346
+ mints.delete(mint);
347
+ }
348
+ }, () => mints.delete(mint));
349
+ return loaded;
350
+ },
351
+ }),
165
352
  exists: async (address) => {
166
353
  if (existing.has(address)) {
167
354
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"solver.js","sourceRoot":"","sources":["../../src/solver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solver.js","sourceRoot":"","sources":["../../src/solver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,17 @@
1
1
  {
2
2
  "name": "@intent-engine/solver",
3
- "version": "0.1.23",
3
+ "version": "0.1.26",
4
4
  "description": "A solver that fills intent engine intents at a profit",
5
5
  "license": "Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/MerlijnW70/solive.git",
9
+ "directory": "packages/solver"
10
+ },
11
+ "homepage": "https://github.com/MerlijnW70/solive#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/MerlijnW70/solive/issues"
14
+ },
6
15
  "type": "module",
7
16
  "files": [
8
17
  "dist/src"
@@ -16,14 +25,15 @@
16
25
  "exports": {
17
26
  ".": {
18
27
  "types": "./dist/src/index.d.ts",
19
- "import": "./dist/src/index.js"
28
+ "import": "./dist/src/index.js",
29
+ "default": "./dist/src/index.js"
20
30
  }
21
31
  },
22
32
  "dependencies": {
23
33
  "@solana-program/system": "0.14.1",
24
34
  "@solana-program/token": "0.16.1",
25
35
  "@solana/kit": "^8.4.0",
26
- "@intent-engine/core": "0.1.23"
36
+ "@intent-engine/core": "0.1.26"
27
37
  },
28
38
  "devDependencies": {
29
39
  "@types/node": "26.6.4",
@@ -33,7 +43,7 @@
33
43
  "vitest": "5.0.3"
34
44
  },
35
45
  "scripts": {
36
- "build": "tsc -p tsconfig.build.json",
46
+ "build": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.build.json",
37
47
  "typecheck": "tsc -p tsconfig.json --noEmit",
38
48
  "test": "vitest run --fsModuleCache"
39
49
  }