@aephia/atlas-kit 0.6.0-next.42 → 0.6.0-next.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -3,10 +3,14 @@ import type { SageContext } from '../client/contracts.js';
|
|
|
3
3
|
import type { Plan } from './index.js';
|
|
4
4
|
import { type AssemblyPolicy } from './assembly.js';
|
|
5
5
|
/** Optional RPC constraints for one unsigned simulation, not assembly overrides.
|
|
6
|
+
*
|
|
7
|
+
* The SDK accepts the full u64 range. Kit's default RPC transport only encodes
|
|
8
|
+
* integers through 9007199254740991; larger floors require a capable custom
|
|
9
|
+
* transport. Never round or lower a required floor merely to encode it.
|
|
6
10
|
*
|
|
7
11
|
* @example
|
|
8
12
|
* ```ts
|
|
9
|
-
* const options: SimulationOptions = { minContextSlot:
|
|
13
|
+
* const options: SimulationOptions = { minContextSlot: 53_000_000n };
|
|
10
14
|
* ```
|
|
11
15
|
*/
|
|
12
16
|
export interface SimulationOptions {
|
|
@@ -49,7 +53,10 @@ export interface SimulationResult {
|
|
|
49
53
|
* The node replaces its recent blockhash and verifies no signatures.
|
|
50
54
|
* Optional minContextSlot constrains only this simulation RPC. An unavailable
|
|
51
55
|
* floor rejects once without retry or fallback. The returned slot remains the
|
|
52
|
-
* node's value; callers may separately enforce a defensive returned-slot check
|
|
56
|
+
* node's value; callers may separately enforce a defensive returned-slot check
|
|
57
|
+
* on successful results only. Simulation failures do not expose a context slot.
|
|
58
|
+
* The SDK accepts full-u64 floors, but Kit's default transport encodes only
|
|
59
|
+
* through 9007199254740991; larger floors need a capable custom transport.
|
|
53
60
|
*
|
|
54
61
|
* @example
|
|
55
62
|
* ```ts
|
|
@@ -58,7 +65,7 @@ export interface SimulationResult {
|
|
|
58
65
|
* declare const feePayer: Address;
|
|
59
66
|
* const result = await simulatePlan(ctx, plan, { feePayer });
|
|
60
67
|
* console.log(result.logs, result.unitsConsumed);
|
|
61
|
-
* const minimum =
|
|
68
|
+
* const minimum = 53_000_000n;
|
|
62
69
|
* const fresh = await simulatePlan(ctx, plan, { feePayer }, { minContextSlot: minimum });
|
|
63
70
|
* if (fresh.slot < minimum) throw new Error('Simulation returned an older context.');
|
|
64
71
|
* ```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulation.d.ts","sourceRoot":"","sources":["../../src/planning/simulation.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"simulation.d.ts","sourceRoot":"","sources":["../../src/planning/simulation.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,OAAO,EAEb,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAM1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAEL,KAAK,cAAc,EAKpB,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB;IAChC,mFAAmF;IACnF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9C;AAgHD;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC;QACtC,SAAS,EAAE,MAAM,CAAC;QAClB,oBAAoB,EAAE,MAAM,CAAC;KAC9B,CAAC,CAAC;CACJ;AAsBD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAmE3B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getBase64EncodedWireTransaction, } from '@solana/kit';
|
|
1
|
+
import { getBase64EncodedWireTransaction, SOLANA_ERROR__RPC__INTEGER_OVERFLOW, } from '@solana/kit';
|
|
2
2
|
import { InvalidActionInputError, ProviderError, SageSdkError, } from '../client/errors.js';
|
|
3
3
|
import { assembleValidatedPlan, requireWriteRpc, validateAssemblyPolicy, validatePlanAssemblyPolicy, validatePlan, } from './assembly.js';
|
|
4
4
|
function validateSimulationOptions(options) {
|
|
@@ -28,10 +28,57 @@ function validateSimulationOptions(options) {
|
|
|
28
28
|
(typeof minContextSlot !== 'bigint' ||
|
|
29
29
|
minContextSlot < 0n ||
|
|
30
30
|
minContextSlot > 18446744073709551615n)) {
|
|
31
|
-
throw new InvalidActionInputError('minContextSlot',
|
|
31
|
+
throw new InvalidActionInputError('minContextSlot', typeof minContextSlot === 'bigint' || typeof minContextSlot === 'number'
|
|
32
|
+
? minContextSlot
|
|
33
|
+
: typeof minContextSlot, 'a bigint from 0 through 18446744073709551615', 'Pass an exact unsigned 64-bit bigint slot floor before retrying simulation.');
|
|
32
34
|
}
|
|
33
35
|
return minContextSlot;
|
|
34
36
|
}
|
|
37
|
+
// Check only the misplaced field, not an exact set of shared policy keys.
|
|
38
|
+
function rejectMisplacedSlot(policy) {
|
|
39
|
+
let misplaced;
|
|
40
|
+
try {
|
|
41
|
+
misplaced =
|
|
42
|
+
policy !== null &&
|
|
43
|
+
typeof policy === 'object' &&
|
|
44
|
+
Reflect.has(policy, 'minContextSlot');
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// Hostile Proxy traps must not escape or retain their contents.
|
|
48
|
+
misplaced = true;
|
|
49
|
+
}
|
|
50
|
+
if (misplaced) {
|
|
51
|
+
throw new InvalidActionInputError('policy.minContextSlot', undefined, 'minContextSlot in the simulation options, not the assembly policy', 'Pass { minContextSlot } as the fourth argument to simulatePlan.');
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function isLocalIntegerEncodingFailure(error, minContextSlot) {
|
|
55
|
+
if (minContextSlot === undefined ||
|
|
56
|
+
minContextSlot <= BigInt(Number.MAX_SAFE_INTEGER))
|
|
57
|
+
return false;
|
|
58
|
+
try {
|
|
59
|
+
// Do not use property reads or Kit's guard: both can invoke error getters.
|
|
60
|
+
if (Object.getOwnPropertyDescriptor(error, 'name')?.value !== 'SolanaError')
|
|
61
|
+
return false;
|
|
62
|
+
const context = Object.getOwnPropertyDescriptor(error, 'context')?.value;
|
|
63
|
+
if (Object.getOwnPropertyDescriptor(context, '__code')?.value !==
|
|
64
|
+
SOLANA_ERROR__RPC__INTEGER_OVERFLOW ||
|
|
65
|
+
Object.getOwnPropertyDescriptor(context, 'methodName')?.value !==
|
|
66
|
+
'simulateTransaction' ||
|
|
67
|
+
Object.getOwnPropertyDescriptor(context, 'path')?.value !==
|
|
68
|
+
'minContextSlot' ||
|
|
69
|
+
Object.getOwnPropertyDescriptor(context, 'value')?.value !==
|
|
70
|
+
minContextSlot)
|
|
71
|
+
return false;
|
|
72
|
+
const keyPath = Object.getOwnPropertyDescriptor(context, 'keyPath')?.value;
|
|
73
|
+
return (Array.isArray(keyPath) &&
|
|
74
|
+
Object.getOwnPropertyDescriptor(keyPath, 'length').value === 2 &&
|
|
75
|
+
Object.getOwnPropertyDescriptor(keyPath, '0')?.value === 1 &&
|
|
76
|
+
Object.getOwnPropertyDescriptor(keyPath, '1')?.value === 'minContextSlot');
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
35
82
|
class SimulationFailedError extends SageSdkError {
|
|
36
83
|
transactionError;
|
|
37
84
|
logs;
|
|
@@ -50,7 +97,10 @@ class SimulationFailedError extends SageSdkError {
|
|
|
50
97
|
* The node replaces its recent blockhash and verifies no signatures.
|
|
51
98
|
* Optional minContextSlot constrains only this simulation RPC. An unavailable
|
|
52
99
|
* floor rejects once without retry or fallback. The returned slot remains the
|
|
53
|
-
* node's value; callers may separately enforce a defensive returned-slot check
|
|
100
|
+
* node's value; callers may separately enforce a defensive returned-slot check
|
|
101
|
+
* on successful results only. Simulation failures do not expose a context slot.
|
|
102
|
+
* The SDK accepts full-u64 floors, but Kit's default transport encodes only
|
|
103
|
+
* through 9007199254740991; larger floors need a capable custom transport.
|
|
54
104
|
*
|
|
55
105
|
* @example
|
|
56
106
|
* ```ts
|
|
@@ -59,13 +109,14 @@ class SimulationFailedError extends SageSdkError {
|
|
|
59
109
|
* declare const feePayer: Address;
|
|
60
110
|
* const result = await simulatePlan(ctx, plan, { feePayer });
|
|
61
111
|
* console.log(result.logs, result.unitsConsumed);
|
|
62
|
-
* const minimum =
|
|
112
|
+
* const minimum = 53_000_000n;
|
|
63
113
|
* const fresh = await simulatePlan(ctx, plan, { feePayer }, { minContextSlot: minimum });
|
|
64
114
|
* if (fresh.slot < minimum) throw new Error('Simulation returned an older context.');
|
|
65
115
|
* ```
|
|
66
116
|
*/
|
|
67
117
|
export async function simulatePlan(context, plan, policy, options) {
|
|
68
118
|
validatePlan(plan);
|
|
119
|
+
rejectMisplacedSlot(policy);
|
|
69
120
|
const validatedPolicy = validateAssemblyPolicy(policy);
|
|
70
121
|
validatePlanAssemblyPolicy(plan, validatedPolicy);
|
|
71
122
|
const minContextSlot = validateSimulationOptions(options);
|
|
@@ -84,7 +135,10 @@ export async function simulatePlan(context, plan, policy, options) {
|
|
|
84
135
|
})
|
|
85
136
|
.send();
|
|
86
137
|
}
|
|
87
|
-
catch {
|
|
138
|
+
catch (error) {
|
|
139
|
+
if (isLocalIntegerEncodingFailure(error, minContextSlot)) {
|
|
140
|
+
throw new InvalidActionInputError('minContextSlot', minContextSlot, 'an exact slot floor supported by the configured RPC transport', 'The local Kit transport cannot encode this integer. Its default limit is 9007199254740991; use a capable custom transport for larger u64 floors, or correct an unintended input. Do not round or lower a required floor.');
|
|
141
|
+
}
|
|
88
142
|
throw new ProviderError('The unsigned Plan simulation provider could not satisfy the request. Check provider availability and any minimum context slot, then explicitly retry when the node can serve that context.');
|
|
89
143
|
}
|
|
90
144
|
const logs = Object.freeze([...(response.value.logs ?? [])]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulation.js","sourceRoot":"","sources":["../../src/planning/simulation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,
|
|
1
|
+
{"version":3,"file":"simulation.js","sourceRoot":"","sources":["../../src/planning/simulation.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED