@nosana/kit 2.3.0 → 2.4.0
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/NosanaClient.js +1 -1
- package/dist/NosanaClient.js.map +1 -1
- package/dist/config/defaultConfigs.d.ts +1 -1
- package/dist/config/defaultConfigs.d.ts.map +1 -1
- package/dist/config/defaultConfigs.js +25 -33
- package/dist/config/defaultConfigs.js.map +1 -1
- package/dist/index.d.ts +13 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/logger/Logger.d.ts +6 -1
- package/dist/logger/Logger.d.ts.map +1 -1
- package/dist/logger/Logger.js +5 -0
- package/dist/logger/Logger.js.map +1 -1
- package/dist/services/programs/jobs/JobsProgram.d.ts +146 -1
- package/dist/services/programs/jobs/JobsProgram.d.ts.map +1 -1
- package/dist/services/programs/jobs/JobsProgram.js +77 -0
- package/dist/services/programs/jobs/JobsProgram.js.map +1 -1
- package/dist/services/programs/jobs/computeUnits.d.ts +16 -0
- package/dist/services/programs/jobs/computeUnits.d.ts.map +1 -0
- package/dist/services/programs/jobs/computeUnits.generated.d.ts +39 -0
- package/dist/services/programs/jobs/computeUnits.generated.d.ts.map +1 -0
- package/dist/services/programs/jobs/computeUnits.generated.js +34 -0
- package/dist/services/programs/jobs/computeUnits.generated.js.map +1 -0
- package/dist/services/programs/jobs/computeUnits.js +20 -0
- package/dist/services/programs/jobs/computeUnits.js.map +1 -0
- package/dist/services/programs/jobs/decode.d.ts +29 -0
- package/dist/services/programs/jobs/decode.d.ts.map +1 -0
- package/dist/services/programs/jobs/decode.js +48 -0
- package/dist/services/programs/jobs/decode.js.map +1 -0
- package/dist/services/programs/jobs/discriminators.d.ts +21 -0
- package/dist/services/programs/jobs/discriminators.d.ts.map +1 -0
- package/dist/services/programs/jobs/discriminators.js +47 -0
- package/dist/services/programs/jobs/discriminators.js.map +1 -0
- package/dist/services/programs/jobs/index.d.ts +4 -0
- package/dist/services/programs/jobs/index.d.ts.map +1 -1
- package/dist/services/programs/jobs/index.js +4 -0
- package/dist/services/programs/jobs/index.js.map +1 -1
- package/dist/services/programs/jobs/instructions/complete.d.ts +1 -1
- package/dist/services/programs/jobs/instructions/complete.d.ts.map +1 -1
- package/dist/services/programs/jobs/instructions/complete.js +3 -3
- package/dist/services/programs/jobs/instructions/complete.js.map +1 -1
- package/dist/services/solana/SolanaService.d.ts +70 -0
- package/dist/services/solana/SolanaService.d.ts.map +1 -1
- package/dist/services/solana/SolanaService.js +115 -0
- package/dist/services/solana/SolanaService.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/packInstructions.d.ts +79 -0
- package/dist/utils/packInstructions.d.ts.map +1 -0
- package/dist/utils/packInstructions.js +110 -0
- package/dist/utils/packInstructions.js.map +1 -0
- package/package.json +17 -14
|
@@ -3,6 +3,8 @@ import { solBytesArrayToIpfsHash } from '@nosana/ipfs';
|
|
|
3
3
|
import { parseBase64RpcAccount } from '@solana/kit';
|
|
4
4
|
import { ErrorCodes, NosanaError } from '../../../errors/NosanaError.js';
|
|
5
5
|
import { convertBigIntToNumber } from '../../../utils/index.js';
|
|
6
|
+
import { getJobsInstructionComputeUnits } from './computeUnits.js';
|
|
7
|
+
import { decodeJobsInstruction } from './decode.js';
|
|
6
8
|
import { getStaticAccounts as getStaticAccountsFn, } from '../../../utils/getStaticAccounts.js';
|
|
7
9
|
import * as Instructions from './instructions/index.js';
|
|
8
10
|
import * as programClient from '@nosana/jobs-program';
|
|
@@ -22,6 +24,13 @@ export var MarketQueueType;
|
|
|
22
24
|
// Re-export monitor types for convenience
|
|
23
25
|
export { MonitorEventType } from './monitor/index.js';
|
|
24
26
|
export const JOB_POSTING_NETWORK_FEE = 0.1;
|
|
27
|
+
// Account roles whose plural is not just role + "s"; used to key the aggregated
|
|
28
|
+
// `accounts` view (e.g. `accounts.authorities`). Regular roles fall through to +"s".
|
|
29
|
+
const IRREGULAR_ROLE_PLURALS = { authority: 'authorities' };
|
|
30
|
+
/** Pluralise an account role name for the aggregated `accounts` view. */
|
|
31
|
+
function pluralizeRole(role) {
|
|
32
|
+
return IRREGULAR_ROLE_PLURALS[role] ?? `${role}s`;
|
|
33
|
+
}
|
|
25
34
|
/**
|
|
26
35
|
* Returns the current network fee ratio applied when posting jobs.
|
|
27
36
|
* A value of 0.1 represents a 10% fee.
|
|
@@ -414,6 +423,42 @@ export function createJobsProgram(deps, config) {
|
|
|
414
423
|
async list(params) {
|
|
415
424
|
return Instructions.list(params, createInstructionsHelper(this.get, this.runs));
|
|
416
425
|
},
|
|
426
|
+
async listMany(params, count) {
|
|
427
|
+
const allParams = Array.isArray(params)
|
|
428
|
+
? params
|
|
429
|
+
: Array.from({ length: count ?? 0 }, () => params);
|
|
430
|
+
return Promise.all(allParams.map((p) => this.list(p)));
|
|
431
|
+
},
|
|
432
|
+
async delistMany(jobs) {
|
|
433
|
+
return Promise.all(jobs.map((job) => this.delist({ job })));
|
|
434
|
+
},
|
|
435
|
+
async endMany(jobs) {
|
|
436
|
+
return Promise.all(jobs.map((job) => this.end({ job })));
|
|
437
|
+
},
|
|
438
|
+
async quitMany(runs) {
|
|
439
|
+
return Promise.all(runs.map((run) => this.quit({ run })));
|
|
440
|
+
},
|
|
441
|
+
async closeMany(markets) {
|
|
442
|
+
return Promise.all(markets.map((market) => this.close({ market })));
|
|
443
|
+
},
|
|
444
|
+
async stopMany(markets) {
|
|
445
|
+
return Promise.all(markets.map((market) => this.stop({ market })));
|
|
446
|
+
},
|
|
447
|
+
async assignMany(params, count) {
|
|
448
|
+
const allParams = Array.isArray(params)
|
|
449
|
+
? params
|
|
450
|
+
: Array.from({ length: count ?? 0 }, () => params);
|
|
451
|
+
return Promise.all(allParams.map((p) => this.assign(p)));
|
|
452
|
+
},
|
|
453
|
+
async extendMany(params) {
|
|
454
|
+
return Promise.all(params.map((p) => this.extend(p)));
|
|
455
|
+
},
|
|
456
|
+
async finishMany(params) {
|
|
457
|
+
return Promise.all(params.map((p) => this.finish(p)));
|
|
458
|
+
},
|
|
459
|
+
async completeMany(params) {
|
|
460
|
+
return Promise.all(params.map((p) => this.complete(p)));
|
|
461
|
+
},
|
|
417
462
|
/**
|
|
418
463
|
* Post a new job to the marketplace (can list or assign based on params)
|
|
419
464
|
*/
|
|
@@ -465,6 +510,38 @@ export function createJobsProgram(deps, config) {
|
|
|
465
510
|
async work(params) {
|
|
466
511
|
return Instructions.work(params, createInstructionsHelper(this.get, this.runs));
|
|
467
512
|
},
|
|
513
|
+
async sendBatch(groups, options) {
|
|
514
|
+
const results = await deps.solana.buildSignAndSendBatch(groups, {
|
|
515
|
+
// Jobs instruction CU scales with the market queue size (e.g. delist scans
|
|
516
|
+
// the queue) AND the queue changes across the batch (list grows it, delist
|
|
517
|
+
// shrinks it). So estimate each transaction's limit by simulation, and send
|
|
518
|
+
// sequentially so every simulation reflects the state left by the prior
|
|
519
|
+
// transactions. Pass `estimateComputeUnits: false` for the static table
|
|
520
|
+
// (no RPC, but may under-provision on a large queue) or `sequential: false`
|
|
521
|
+
// to send concurrently.
|
|
522
|
+
estimateComputeUnits: true,
|
|
523
|
+
sequential: true,
|
|
524
|
+
...options,
|
|
525
|
+
// Used for the packing ceiling and the static-table opt-out path.
|
|
526
|
+
computeUnits: getJobsInstructionComputeUnits,
|
|
527
|
+
});
|
|
528
|
+
// Decode each transaction's instructions so callers can recover the accounts
|
|
529
|
+
// they created or acted on (e.g. the job/run minted by a `list`), and group
|
|
530
|
+
// those accounts by role for the quick "give me the created jobs" view.
|
|
531
|
+
return results.map((result) => {
|
|
532
|
+
var _a;
|
|
533
|
+
const decoded = result.instructions.map((instruction) => decodeJobsInstruction(instruction));
|
|
534
|
+
const accounts = {};
|
|
535
|
+
for (const instruction of decoded) {
|
|
536
|
+
if (!instruction)
|
|
537
|
+
continue;
|
|
538
|
+
for (const [role, account] of Object.entries(instruction.accounts)) {
|
|
539
|
+
(accounts[_a = pluralizeRole(role)] ?? (accounts[_a] = [])).push(account);
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
return { ...result, decoded, accounts };
|
|
543
|
+
});
|
|
544
|
+
},
|
|
468
545
|
/**
|
|
469
546
|
* Monitor program account updates using async iterators.
|
|
470
547
|
* Automatically merges run account data into job account updates.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JobsProgram.js","sourceRoot":"","sources":["../../../../src/services/programs/jobs/JobsProgram.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"JobsProgram.js","sourceRoot":"","sources":["../../../../src/services/programs/jobs/JobsProgram.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Instruction } from '@solana/kit';
|
|
2
|
+
/**
|
|
3
|
+
* Resolve the compute-unit cost of a jobs instruction by matching its 8-byte
|
|
4
|
+
* Anchor discriminator against the generated {@link JOBS_COMPUTE_UNITS} table.
|
|
5
|
+
*
|
|
6
|
+
* Works on any raw {@link Instruction} regardless of how it was built, so it can
|
|
7
|
+
* price a mixed batch. Returns a default value for instructions that are not jobs
|
|
8
|
+
* instructions (or whose cost has not been measured), letting the caller apply a
|
|
9
|
+
* fallback.
|
|
10
|
+
*
|
|
11
|
+
* @param instruction The instruction to price.
|
|
12
|
+
* @returns The estimated compute units, or a default value if unknown.
|
|
13
|
+
* @group @nosana/kit
|
|
14
|
+
*/
|
|
15
|
+
export declare function getJobsInstructionComputeUnits(instruction: Instruction): number;
|
|
16
|
+
//# sourceMappingURL=computeUnits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeUnits.d.ts","sourceRoot":"","sources":["../../../../src/services/programs/jobs/computeUnits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAG/E"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AUTO-GENERATED compute-unit costs for the Nosana jobs program instructions.
|
|
3
|
+
*
|
|
4
|
+
* Please DO NOT EDIT THIS FILE by hand. Regenerate it with:
|
|
5
|
+
*
|
|
6
|
+
* pnpm gen:cu
|
|
7
|
+
*
|
|
8
|
+
* which measures each instruction's real `unitsConsumed` against a local validator
|
|
9
|
+
* (see packages/scenario/scripts/measure-compute-units.ts) and applies a margin.
|
|
10
|
+
*
|
|
11
|
+
* measuredAt: 2026-06-18T06:08:49.565Z
|
|
12
|
+
* margin: max of 3 samples + 20%, rounded up to 1,000 CU
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Measured compute-unit cost per jobs instruction, keyed by the operation name.
|
|
16
|
+
* Each value is a conservative upper bound that includes the safety margin,
|
|
17
|
+
* suitable for use directly as a `SetComputeUnitLimit`.
|
|
18
|
+
* @group @nosana/kit
|
|
19
|
+
*/
|
|
20
|
+
export declare const JOBS_COMPUTE_UNITS: {
|
|
21
|
+
readonly open: 37000;
|
|
22
|
+
readonly list: 23000;
|
|
23
|
+
readonly assign: 30000;
|
|
24
|
+
readonly work: 17000;
|
|
25
|
+
readonly complete: 5000;
|
|
26
|
+
readonly finish: 17000;
|
|
27
|
+
readonly quit: 7000;
|
|
28
|
+
readonly stop: 5000;
|
|
29
|
+
readonly extend: 17000;
|
|
30
|
+
readonly delist: 13000;
|
|
31
|
+
readonly close: 26000;
|
|
32
|
+
readonly end: 16000;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Name of a jobs instruction with a known compute-unit cost.
|
|
36
|
+
* @group @nosana/kit
|
|
37
|
+
*/
|
|
38
|
+
export type JobsInstructionName = keyof typeof JOBS_COMPUTE_UNITS;
|
|
39
|
+
//# sourceMappingURL=computeUnits.generated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeUnits.generated.d.ts","sourceRoot":"","sources":["../../../../src/services/programs/jobs/computeUnits.generated.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;CAarB,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AUTO-GENERATED compute-unit costs for the Nosana jobs program instructions.
|
|
3
|
+
*
|
|
4
|
+
* Please DO NOT EDIT THIS FILE by hand. Regenerate it with:
|
|
5
|
+
*
|
|
6
|
+
* pnpm gen:cu
|
|
7
|
+
*
|
|
8
|
+
* which measures each instruction's real `unitsConsumed` against a local validator
|
|
9
|
+
* (see packages/scenario/scripts/measure-compute-units.ts) and applies a margin.
|
|
10
|
+
*
|
|
11
|
+
* measuredAt: 2026-06-18T06:08:49.565Z
|
|
12
|
+
* margin: max of 3 samples + 20%, rounded up to 1,000 CU
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Measured compute-unit cost per jobs instruction, keyed by the operation name.
|
|
16
|
+
* Each value is a conservative upper bound that includes the safety margin,
|
|
17
|
+
* suitable for use directly as a `SetComputeUnitLimit`.
|
|
18
|
+
* @group @nosana/kit
|
|
19
|
+
*/
|
|
20
|
+
export const JOBS_COMPUTE_UNITS = {
|
|
21
|
+
open: 37000, // measured
|
|
22
|
+
list: 23000, // measured
|
|
23
|
+
assign: 30000, // measured
|
|
24
|
+
work: 17000, // measured
|
|
25
|
+
complete: 5000, // measured
|
|
26
|
+
finish: 17000, // measured
|
|
27
|
+
quit: 7000, // measured
|
|
28
|
+
stop: 5000, // measured
|
|
29
|
+
extend: 17000, // measured
|
|
30
|
+
delist: 13000, // measured
|
|
31
|
+
close: 26000, // measured
|
|
32
|
+
end: 16000, // measured
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=computeUnits.generated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeUnits.generated.js","sourceRoot":"","sources":["../../../../src/services/programs/jobs/computeUnits.generated.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,KAAK,EAAE,WAAW;IACxB,IAAI,EAAE,KAAK,EAAE,WAAW;IACxB,MAAM,EAAE,KAAK,EAAE,WAAW;IAC1B,IAAI,EAAE,KAAK,EAAE,WAAW;IACxB,QAAQ,EAAE,IAAI,EAAE,WAAW;IAC3B,MAAM,EAAE,KAAK,EAAE,WAAW;IAC1B,IAAI,EAAE,IAAI,EAAE,WAAW;IACvB,IAAI,EAAE,IAAI,EAAE,WAAW;IACvB,MAAM,EAAE,KAAK,EAAE,WAAW;IAC1B,MAAM,EAAE,KAAK,EAAE,WAAW;IAC1B,KAAK,EAAE,KAAK,EAAE,WAAW;IACzB,GAAG,EAAE,KAAK,EAAE,WAAW;CACf,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { JOBS_COMPUTE_UNITS } from './computeUnits.generated.js';
|
|
2
|
+
import { getJobsInstructionName } from './discriminators.js';
|
|
3
|
+
/**
|
|
4
|
+
* Resolve the compute-unit cost of a jobs instruction by matching its 8-byte
|
|
5
|
+
* Anchor discriminator against the generated {@link JOBS_COMPUTE_UNITS} table.
|
|
6
|
+
*
|
|
7
|
+
* Works on any raw {@link Instruction} regardless of how it was built, so it can
|
|
8
|
+
* price a mixed batch. Returns a default value for instructions that are not jobs
|
|
9
|
+
* instructions (or whose cost has not been measured), letting the caller apply a
|
|
10
|
+
* fallback.
|
|
11
|
+
*
|
|
12
|
+
* @param instruction The instruction to price.
|
|
13
|
+
* @returns The estimated compute units, or a default value if unknown.
|
|
14
|
+
* @group @nosana/kit
|
|
15
|
+
*/
|
|
16
|
+
export function getJobsInstructionComputeUnits(instruction) {
|
|
17
|
+
const name = getJobsInstructionName(instruction);
|
|
18
|
+
return name ? JOBS_COMPUTE_UNITS[name] : 200000;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=computeUnits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeUnits.js","sourceRoot":"","sources":["../../../../src/services/programs/jobs/computeUnits.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,8BAA8B,CAAC,WAAwB;IACrE,MAAM,IAAI,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Address, Instruction } from '@solana/kit';
|
|
2
|
+
import type { JobsInstructionName } from './computeUnits.generated.js';
|
|
3
|
+
/** A decoded jobs instruction: its name plus its labelled accounts and arguments. */
|
|
4
|
+
export interface DecodedJobsInstruction {
|
|
5
|
+
/** The jobs instruction name (e.g. `'list'`, `'delist'`). */
|
|
6
|
+
name: JobsInstructionName;
|
|
7
|
+
/**
|
|
8
|
+
* The instruction's accounts keyed by their program-defined role name
|
|
9
|
+
* (e.g. `accounts.job`, `accounts.run`, `accounts.market`).
|
|
10
|
+
*/
|
|
11
|
+
accounts: Record<string, Address>;
|
|
12
|
+
/** The decoded instruction arguments (values may include `bigint`). */
|
|
13
|
+
data: Record<string, unknown>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Decode a jobs instruction into its name and labelled accounts/arguments.
|
|
17
|
+
*
|
|
18
|
+
* This is what lets a bulk `sendBatch` caller recover the accounts an instruction
|
|
19
|
+
* created or acted on — for example the freshly generated `job` and `run`
|
|
20
|
+
* addresses of a `list` — without threading that state through by hand. Account
|
|
21
|
+
* keys match the program's account names.
|
|
22
|
+
*
|
|
23
|
+
* @param instruction The instruction to decode.
|
|
24
|
+
* @returns The decoded instruction, or `undefined` if it is not a recognised
|
|
25
|
+
* jobs instruction (or cannot be decoded).
|
|
26
|
+
* @group @nosana/kit
|
|
27
|
+
*/
|
|
28
|
+
export declare function decodeJobsInstruction(instruction: Instruction): DecodedJobsInstruction | undefined;
|
|
29
|
+
//# sourceMappingURL=decode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../../../src/services/programs/jobs/decode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAexD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvE,qFAAqF;AACrF,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,IAAI,EAAE,mBAAmB,CAAC;IAC1B;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AA0BD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,WAAW,GACvB,sBAAsB,GAAG,SAAS,CAapC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { parseAssignInstruction, parseCloseInstruction, parseCompleteInstruction, parseDelistInstruction, parseEndInstruction, parseExtendInstruction, parseFinishInstruction, parseListInstruction, parseOpenInstruction, parseQuitInstruction, parseStopInstruction, parseWorkInstruction, } from '@nosana/jobs-program';
|
|
2
|
+
import { getJobsInstructionName } from './discriminators.js';
|
|
3
|
+
// name -> generated parser. The casts bridge each parser's specific generic
|
|
4
|
+
// signature to a uniform one; we only ever call the parser matched by name.
|
|
5
|
+
const PARSERS = {
|
|
6
|
+
open: parseOpenInstruction,
|
|
7
|
+
list: parseListInstruction,
|
|
8
|
+
assign: parseAssignInstruction,
|
|
9
|
+
work: parseWorkInstruction,
|
|
10
|
+
complete: parseCompleteInstruction,
|
|
11
|
+
finish: parseFinishInstruction,
|
|
12
|
+
quit: parseQuitInstruction,
|
|
13
|
+
stop: parseStopInstruction,
|
|
14
|
+
extend: parseExtendInstruction,
|
|
15
|
+
delist: parseDelistInstruction,
|
|
16
|
+
close: parseCloseInstruction,
|
|
17
|
+
end: parseEndInstruction,
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Decode a jobs instruction into its name and labelled accounts/arguments.
|
|
21
|
+
*
|
|
22
|
+
* This is what lets a bulk `sendBatch` caller recover the accounts an instruction
|
|
23
|
+
* created or acted on — for example the freshly generated `job` and `run`
|
|
24
|
+
* addresses of a `list` — without threading that state through by hand. Account
|
|
25
|
+
* keys match the program's account names.
|
|
26
|
+
*
|
|
27
|
+
* @param instruction The instruction to decode.
|
|
28
|
+
* @returns The decoded instruction, or `undefined` if it is not a recognised
|
|
29
|
+
* jobs instruction (or cannot be decoded).
|
|
30
|
+
* @group @nosana/kit
|
|
31
|
+
*/
|
|
32
|
+
export function decodeJobsInstruction(instruction) {
|
|
33
|
+
const name = getJobsInstructionName(instruction);
|
|
34
|
+
if (!name)
|
|
35
|
+
return undefined;
|
|
36
|
+
try {
|
|
37
|
+
const parsed = PARSERS[name](instruction);
|
|
38
|
+
const accounts = {};
|
|
39
|
+
for (const [role, meta] of Object.entries(parsed.accounts)) {
|
|
40
|
+
accounts[role] = meta.address;
|
|
41
|
+
}
|
|
42
|
+
return { name, accounts, data: parsed.data };
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=decode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decode.js","sourceRoot":"","sources":["../../../../src/services/programs/jobs/decode.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAsB7D,4EAA4E;AAC5E,4EAA4E;AAC5E,MAAM,OAAO,GAAmD;IAC9D,IAAI,EAAE,oBAAoD;IAC1D,IAAI,EAAE,oBAAoD;IAC1D,MAAM,EAAE,sBAAsD;IAC9D,IAAI,EAAE,oBAAoD;IAC1D,QAAQ,EAAE,wBAAwD;IAClE,MAAM,EAAE,sBAAsD;IAC9D,IAAI,EAAE,oBAAoD;IAC1D,IAAI,EAAE,oBAAoD;IAC1D,MAAM,EAAE,sBAAsD;IAC9D,MAAM,EAAE,sBAAsD;IAC9D,KAAK,EAAE,qBAAqD;IAC5D,GAAG,EAAE,mBAAmD;CACzD,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CACnC,WAAwB;IAExB,MAAM,IAAI,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3D,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type Instruction, type ReadonlyUint8Array } from '@solana/kit';
|
|
2
|
+
import type { JobsInstructionName } from './computeUnits.generated.js';
|
|
3
|
+
/** The number of leading bytes that make up an Anchor instruction discriminator. */
|
|
4
|
+
export declare const DISCRIMINATOR_LENGTH = 8;
|
|
5
|
+
/** The 8-byte Anchor discriminator for each named jobs instruction. */
|
|
6
|
+
export declare const DISCRIMINATORS: Record<JobsInstructionName, ReadonlyUint8Array>;
|
|
7
|
+
/** Hex-encode the first {@link DISCRIMINATOR_LENGTH} bytes of a byte array. */
|
|
8
|
+
export declare function discriminatorHex(bytes: ReadonlyUint8Array): string;
|
|
9
|
+
/**
|
|
10
|
+
* Identify a jobs instruction by matching its 8-byte Anchor discriminator.
|
|
11
|
+
*
|
|
12
|
+
* Works on any raw {@link Instruction} regardless of how it was built, so it can
|
|
13
|
+
* identify instructions in a mixed batch. Returns `undefined` for instructions
|
|
14
|
+
* that are not recognised jobs instructions.
|
|
15
|
+
*
|
|
16
|
+
* @param instruction The instruction to identify.
|
|
17
|
+
* @returns The jobs instruction name, or `undefined` if unrecognised.
|
|
18
|
+
* @group @nosana/kit
|
|
19
|
+
*/
|
|
20
|
+
export declare function getJobsInstructionName(instruction: Instruction): JobsInstructionName | undefined;
|
|
21
|
+
//# sourceMappingURL=discriminators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discriminators.d.ts","sourceRoot":"","sources":["../../../../src/services/programs/jobs/discriminators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAe1F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,oFAAoF;AACpF,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,uEAAuE;AACvE,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,CAa1E,CAAC;AAIF,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAElE;AAUD;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,WAAW,GAAG,mBAAmB,GAAG,SAAS,CAIhG"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { getBase16Decoder } from '@solana/kit';
|
|
2
|
+
import { ASSIGN_DISCRIMINATOR, CLOSE_DISCRIMINATOR, COMPLETE_DISCRIMINATOR, DELIST_DISCRIMINATOR, END_DISCRIMINATOR, EXTEND_DISCRIMINATOR, FINISH_DISCRIMINATOR, LIST_DISCRIMINATOR, OPEN_DISCRIMINATOR, QUIT_DISCRIMINATOR, STOP_DISCRIMINATOR, WORK_DISCRIMINATOR, } from '@nosana/jobs-program';
|
|
3
|
+
/** The number of leading bytes that make up an Anchor instruction discriminator. */
|
|
4
|
+
export const DISCRIMINATOR_LENGTH = 8;
|
|
5
|
+
/** The 8-byte Anchor discriminator for each named jobs instruction. */
|
|
6
|
+
export const DISCRIMINATORS = {
|
|
7
|
+
open: OPEN_DISCRIMINATOR,
|
|
8
|
+
list: LIST_DISCRIMINATOR,
|
|
9
|
+
assign: ASSIGN_DISCRIMINATOR,
|
|
10
|
+
work: WORK_DISCRIMINATOR,
|
|
11
|
+
complete: COMPLETE_DISCRIMINATOR,
|
|
12
|
+
finish: FINISH_DISCRIMINATOR,
|
|
13
|
+
quit: QUIT_DISCRIMINATOR,
|
|
14
|
+
stop: STOP_DISCRIMINATOR,
|
|
15
|
+
extend: EXTEND_DISCRIMINATOR,
|
|
16
|
+
delist: DELIST_DISCRIMINATOR,
|
|
17
|
+
close: CLOSE_DISCRIMINATOR,
|
|
18
|
+
end: END_DISCRIMINATOR,
|
|
19
|
+
};
|
|
20
|
+
const base16 = getBase16Decoder();
|
|
21
|
+
/** Hex-encode the first {@link DISCRIMINATOR_LENGTH} bytes of a byte array. */
|
|
22
|
+
export function discriminatorHex(bytes) {
|
|
23
|
+
return base16.decode(bytes.slice(0, DISCRIMINATOR_LENGTH));
|
|
24
|
+
}
|
|
25
|
+
// hex(discriminator) -> instruction name, built once from the table above.
|
|
26
|
+
const NAME_BY_DISCRIMINATOR = new Map(Object.keys(DISCRIMINATORS).map((name) => [
|
|
27
|
+
discriminatorHex(DISCRIMINATORS[name]),
|
|
28
|
+
name,
|
|
29
|
+
]));
|
|
30
|
+
/**
|
|
31
|
+
* Identify a jobs instruction by matching its 8-byte Anchor discriminator.
|
|
32
|
+
*
|
|
33
|
+
* Works on any raw {@link Instruction} regardless of how it was built, so it can
|
|
34
|
+
* identify instructions in a mixed batch. Returns `undefined` for instructions
|
|
35
|
+
* that are not recognised jobs instructions.
|
|
36
|
+
*
|
|
37
|
+
* @param instruction The instruction to identify.
|
|
38
|
+
* @returns The jobs instruction name, or `undefined` if unrecognised.
|
|
39
|
+
* @group @nosana/kit
|
|
40
|
+
*/
|
|
41
|
+
export function getJobsInstructionName(instruction) {
|
|
42
|
+
const data = instruction.data;
|
|
43
|
+
if (!data || data.length < DISCRIMINATOR_LENGTH)
|
|
44
|
+
return undefined;
|
|
45
|
+
return NAME_BY_DISCRIMINATOR.get(discriminatorHex(data));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=discriminators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discriminators.js","sourceRoot":"","sources":["../../../../src/services/programs/jobs/discriminators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA6C,MAAM,aAAa,CAAC;AAC1F,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAG9B,oFAAoF;AACpF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAEtC,uEAAuE;AACvE,MAAM,CAAC,MAAM,cAAc,GAAoD;IAC7E,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,kBAAkB;IACxB,MAAM,EAAE,oBAAoB;IAC5B,IAAI,EAAE,kBAAkB;IACxB,QAAQ,EAAE,sBAAsB;IAChC,MAAM,EAAE,oBAAoB;IAC5B,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,kBAAkB;IACxB,MAAM,EAAE,oBAAoB;IAC5B,MAAM,EAAE,oBAAoB;IAC5B,KAAK,EAAE,mBAAmB;IAC1B,GAAG,EAAE,iBAAiB;CACvB,CAAC;AAEF,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;AAElC,+EAA+E;AAC/E,MAAM,UAAU,gBAAgB,CAAC,KAAyB;IACxD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,2EAA2E;AAC3E,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAClC,MAAM,CAAC,IAAI,CAAC,cAAc,CAA2B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IACnE,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI;CACL,CAAC,CACH,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CAAC,WAAwB;IAC7D,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAC9B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,oBAAoB;QAAE,OAAO,SAAS,CAAC;IAClE,OAAO,qBAAqB,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
1
|
export * from './JobsProgram.js';
|
|
2
|
+
export { getJobsInstructionComputeUnits } from './computeUnits.js';
|
|
3
|
+
export { getJobsInstructionName } from './discriminators.js';
|
|
4
|
+
export { decodeJobsInstruction, type DecodedJobsInstruction } from './decode.js';
|
|
5
|
+
export { JOBS_COMPUTE_UNITS, type JobsInstructionName } from './computeUnits.generated.js';
|
|
2
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/programs/jobs/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/programs/jobs/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
1
|
export * from './JobsProgram.js';
|
|
2
|
+
export { getJobsInstructionComputeUnits } from './computeUnits.js';
|
|
3
|
+
export { getJobsInstructionName } from './discriminators.js';
|
|
4
|
+
export { decodeJobsInstruction } from './decode.js';
|
|
5
|
+
export { JOBS_COMPUTE_UNITS } from './computeUnits.generated.js';
|
|
2
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/programs/jobs/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/programs/jobs/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAA+B,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAA4B,MAAM,6BAA6B,CAAC"}
|
|
@@ -7,5 +7,5 @@ export type CompleteParams = {
|
|
|
7
7
|
};
|
|
8
8
|
export type CompleteInstruction = ReturnType<typeof getCompleteInstruction>;
|
|
9
9
|
export type Complete = (params: CompleteParams) => Promise<CompleteInstruction>;
|
|
10
|
-
export declare function complete({ job, ipfsResultsHash }: CompleteParams, { client, get, getRequiredWallet }: InstructionsHelperParams): Promise<CompleteInstruction>;
|
|
10
|
+
export declare function complete({ job, ipfsResultsHash }: CompleteParams, { client, get, getRequiredWallet, getStaticAccounts }: InstructionsHelperParams): Promise<CompleteInstruction>;
|
|
11
11
|
//# sourceMappingURL=complete.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complete.d.ts","sourceRoot":"","sources":["../../../../../src/services/programs/jobs/instructions/complete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG3D,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,OAAO,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAEhF,wBAAsB,QAAQ,CAC5B,EAAE,GAAG,EAAE,eAAe,EAAE,EAAE,cAAc,EACxC,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,wBAAwB,
|
|
1
|
+
{"version":3,"file":"complete.d.ts","sourceRoot":"","sources":["../../../../../src/services/programs/jobs/instructions/complete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG3D,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,OAAO,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAEhF,wBAAsB,QAAQ,CAC5B,EAAE,GAAG,EAAE,eAAe,EAAE,EAAE,cAAc,EACxC,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,EAAE,wBAAwB,GAC9E,OAAO,CAAC,mBAAmB,CAAC,CAqB9B"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ipfsHashToSolBytesArray } from '@nosana/ipfs';
|
|
2
2
|
import { JobState } from '../JobsProgram.js';
|
|
3
|
-
export async function complete({ job, ipfsResultsHash }, { client, get, getRequiredWallet }) {
|
|
3
|
+
export async function complete({ job, ipfsResultsHash }, { client, get, getRequiredWallet, getStaticAccounts }) {
|
|
4
4
|
const wallet = getRequiredWallet();
|
|
5
|
-
const jobAccount = await get(job);
|
|
5
|
+
const [jobAccount, { jobsProgram }] = await Promise.all([get(job), getStaticAccounts()]);
|
|
6
6
|
if (jobAccount.state !== JobState.COMPLETED)
|
|
7
7
|
throw new Error(`Cannot complete a job that is not in state COMPLETED. Current state: ${JobState[jobAccount.state]}`);
|
|
8
8
|
if (jobAccount.ipfsResult !== null) {
|
|
@@ -12,6 +12,6 @@ export async function complete({ job, ipfsResultsHash }, { client, get, getRequi
|
|
|
12
12
|
job,
|
|
13
13
|
ipfsResult: new Uint8Array(ipfsHashToSolBytesArray(ipfsResultsHash)),
|
|
14
14
|
authority: wallet,
|
|
15
|
-
});
|
|
15
|
+
}, { programAddress: jobsProgram });
|
|
16
16
|
}
|
|
17
17
|
//# sourceMappingURL=complete.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complete.js","sourceRoot":"","sources":["../../../../../src/services/programs/jobs/instructions/complete.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAIvD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAW7C,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,EAAE,GAAG,EAAE,eAAe,EAAkB,EACxC,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAA4B;
|
|
1
|
+
{"version":3,"file":"complete.js","sourceRoot":"","sources":["../../../../../src/services/programs/jobs/instructions/complete.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAIvD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAW7C,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,EAAE,GAAG,EAAE,eAAe,EAAkB,EACxC,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,iBAAiB,EAA4B;IAE/E,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;IAEzF,IAAI,UAAU,CAAC,KAAK,KAAK,QAAQ,CAAC,SAAS;QACzC,MAAM,IAAI,KAAK,CACb,wEAAwE,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CACrG,CAAC;IAEJ,IAAI,UAAU,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,MAAM,CAAC,sBAAsB,CAClC;QACE,GAAG;QACH,UAAU,EAAE,IAAI,UAAU,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;QACpE,SAAS,EAAE,MAAM;KAClB,EACD,EAAE,cAAc,EAAE,WAAW,EAAE,CAChC,CAAC;AACJ,CAAC"}
|
|
@@ -30,6 +30,31 @@ export interface BalanceInfo {
|
|
|
30
30
|
export interface SolBalanceInfo extends BalanceInfo {
|
|
31
31
|
mint: 'SOL';
|
|
32
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Result of sending a single transaction within a batch.
|
|
35
|
+
* @group @nosana/kit
|
|
36
|
+
*/
|
|
37
|
+
export interface BatchTransactionResult {
|
|
38
|
+
/** Whether the transaction was sent and confirmed successfully. */
|
|
39
|
+
status: 'fulfilled' | 'rejected';
|
|
40
|
+
/** Convenience flag: `true` when `status` is `'fulfilled'`. */
|
|
41
|
+
confirmed: boolean;
|
|
42
|
+
/** The transaction signature, present when `status` is `'fulfilled'`. */
|
|
43
|
+
signature?: Signature;
|
|
44
|
+
/** The error that occurred, present when `status` is `'rejected'`. */
|
|
45
|
+
error?: unknown;
|
|
46
|
+
/** The instructions that made up this transaction (the packed bucket). */
|
|
47
|
+
instructions: Instruction[];
|
|
48
|
+
/**
|
|
49
|
+
* The indices of the original `groups` this transaction carried, in order — the
|
|
50
|
+
* bridge back from a per-transaction result to the per-group input you submitted.
|
|
51
|
+
* For example `groupIndices: [6, 7]` means this transaction packed `groups[6]`
|
|
52
|
+
* and `groups[7]`, so both share this transaction's `status`/`signature`/`error`.
|
|
53
|
+
* When every group is a single instruction, `groupIndices[k]` corresponds to
|
|
54
|
+
* `instructions[k]`.
|
|
55
|
+
*/
|
|
56
|
+
groupIndices: number[];
|
|
57
|
+
}
|
|
33
58
|
/**
|
|
34
59
|
* Solana service interface
|
|
35
60
|
* @group @nosana/kit
|
|
@@ -91,6 +116,51 @@ export interface SolanaService {
|
|
|
91
116
|
commitment?: 'processed' | 'confirmed' | 'finalized';
|
|
92
117
|
estimateComputeUnits?: boolean;
|
|
93
118
|
}): Promise<Signature>;
|
|
119
|
+
/**
|
|
120
|
+
* Pack instruction groups into the fewest transactions that each stay within the
|
|
121
|
+
* Solana transaction size limit, then build, sign, and send all of them.
|
|
122
|
+
*
|
|
123
|
+
* Each entry of `groups` is an *atomic group*: a single instruction, or an array
|
|
124
|
+
* of instructions that must stay together in the same transaction. Groups are
|
|
125
|
+
* never split across transactions; they are greedily packed into buckets sized by
|
|
126
|
+
* compiling each candidate transaction in-memory (no extra RPC calls).
|
|
127
|
+
*
|
|
128
|
+
* Unless `estimateComputeUnits` is set, each transaction gets an explicit
|
|
129
|
+
* `SetComputeUnitLimit` equal to the sum of its instructions' estimated compute
|
|
130
|
+
* units (from `computeUnits`), capped at the 1.4M per-transaction maximum. This
|
|
131
|
+
* keeps priority fees — which are charged against the compute-unit limit — tight
|
|
132
|
+
* instead of being billed against Solana's inflated per-instruction default.
|
|
133
|
+
*
|
|
134
|
+
* All transactions are attempted regardless of individual failures — the returned
|
|
135
|
+
* array reports the per-transaction outcome in input order.
|
|
136
|
+
*
|
|
137
|
+
* @param groups Atomic instruction groups to bulk together.
|
|
138
|
+
* @param options Optional configuration.
|
|
139
|
+
* @param options.feePayer Optional fee payer signer. Defaults to the service feePayer or wallet.
|
|
140
|
+
* @param options.commitment Commitment level for confirmation.
|
|
141
|
+
* @param options.computeUnits Per-instruction compute-unit estimate: a fixed number for
|
|
142
|
+
* every instruction, or a function mapping an instruction to its units (return undefined
|
|
143
|
+
* to fall back to the default). Used to set each transaction's compute-unit limit and to
|
|
144
|
+
* bound packing. Defaults to Solana's per-instruction default.
|
|
145
|
+
* @param options.maxComputeUnits Per-transaction compute-unit cap. Defaults to 1,400,000.
|
|
146
|
+
* @param options.estimateComputeUnits If true, estimates the compute unit limit per transaction
|
|
147
|
+
* via simulation instead of the static `computeUnits` estimate. Default: false.
|
|
148
|
+
* @param options.maxTransactionSize Override the maximum serialized transaction size in bytes.
|
|
149
|
+
* @param options.sequential If true, sends transactions one at a time, confirming each before the
|
|
150
|
+
* next. Combined with `estimateComputeUnits`, this makes each simulation reflect the chain
|
|
151
|
+
* state left by the prior transactions (e.g. a market queue that grows or shrinks across the
|
|
152
|
+
* batch). Default: false (all transactions are sent concurrently).
|
|
153
|
+
* @returns A per-transaction result array, in the order the buckets were packed.
|
|
154
|
+
*/
|
|
155
|
+
buildSignAndSendBatch(groups: Array<Instruction | Instruction[]>, options?: {
|
|
156
|
+
feePayer?: TransactionSigner;
|
|
157
|
+
commitment?: 'processed' | 'confirmed' | 'finalized';
|
|
158
|
+
computeUnits?: number | ((instruction: Instruction) => number | undefined);
|
|
159
|
+
maxComputeUnits?: number;
|
|
160
|
+
estimateComputeUnits?: boolean;
|
|
161
|
+
maxTransactionSize?: number;
|
|
162
|
+
sequential?: boolean;
|
|
163
|
+
}): Promise<BatchTransactionResult[]>;
|
|
94
164
|
/**
|
|
95
165
|
* Partially sign a transaction message with the signers embedded in the transaction.
|
|
96
166
|
* The transaction message must already have a fee payer address set (via buildTransaction with an address).
|