@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.
- package/dist/src/jupiter.d.ts +1 -0
- package/dist/src/jupiter.js +8 -0
- package/dist/src/jupiter.js.map +1 -1
- package/dist/src/solver.d.ts +45 -1
- package/dist/src/solver.js +193 -6
- package/dist/src/solver.js.map +1 -1
- package/package.json +14 -4
package/dist/src/jupiter.d.ts
CHANGED
package/dist/src/jupiter.js
CHANGED
|
@@ -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 },
|
package/dist/src/jupiter.js.map
CHANGED
|
@@ -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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"}
|
package/dist/src/solver.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
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;
|
package/dist/src/solver.js
CHANGED
|
@@ -1,14 +1,149 @@
|
|
|
1
|
-
import {
|
|
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
|
|
107
|
-
|
|
108
|
-
|
|
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;
|
package/dist/src/solver.js.map
CHANGED
|
@@ -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.
|
|
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.
|
|
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
|
}
|