@callcium/sdk 0.10.0 → 0.11.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.
- package/dist/index.d.ts +150 -103
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +684 -579
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/src/calldata-reader.ts +14 -1
- package/src/constants.ts +54 -11
- package/src/constraint.ts +131 -69
- package/src/descriptor-coder.ts +37 -66
- package/src/descriptor.ts +54 -26
- package/src/errors.ts +12 -2
- package/src/index.ts +1 -0
- package/src/operators.ts +36 -5
- package/src/path.ts +15 -6
- package/src/policy-builder.ts +94 -32
- package/src/policy-coder.ts +100 -45
- package/src/policy-enforcer.ts +88 -103
- package/src/policy-validator.ts +52 -35
- package/src/signature.ts +21 -19
- package/src/type-desc.ts +6 -6
package/dist/index.d.ts
CHANGED
|
@@ -245,97 +245,6 @@ type Issue = {
|
|
|
245
245
|
message: string;
|
|
246
246
|
};
|
|
247
247
|
//#endregion
|
|
248
|
-
//#region src/constraint.d.ts
|
|
249
|
-
/** Accepted scalar value types for operator arguments. */
|
|
250
|
-
type ScalarValue = bigint | number | boolean | string;
|
|
251
|
-
/**
|
|
252
|
-
* Mutable builder that accumulates operators targeting a single path.
|
|
253
|
-
* Implements the `Constraint` interface so it can be passed directly to policy builders.
|
|
254
|
-
*/
|
|
255
|
-
declare class ConstraintBuilder implements Constraint {
|
|
256
|
-
readonly scope: number;
|
|
257
|
-
readonly path: Hex;
|
|
258
|
-
readonly operators: Hex[];
|
|
259
|
-
/** @internal */
|
|
260
|
-
constructor(scope: number, path: Hex);
|
|
261
|
-
/** Push a pre-encoded operator hex string and return this for chaining. */
|
|
262
|
-
private push;
|
|
263
|
-
/** Assert the value equals `value`. */
|
|
264
|
-
eq(value: ScalarValue): this;
|
|
265
|
-
/** Assert the value does not equal `value`. */
|
|
266
|
-
neq(value: ScalarValue): this;
|
|
267
|
-
/** Assert the value equals the context property `contextPropertyId`. */
|
|
268
|
-
eqCtx(contextPropertyId: number): this;
|
|
269
|
-
/** Assert the value does not equal the context property `contextPropertyId`. */
|
|
270
|
-
neqCtx(contextPropertyId: number): this;
|
|
271
|
-
/** Assert the value is greater than `bound`. */
|
|
272
|
-
gt(bound: bigint | number): this;
|
|
273
|
-
/** Assert the value is less than `bound`. */
|
|
274
|
-
lt(bound: bigint | number): this;
|
|
275
|
-
/** Assert the value is greater than or equal to `bound`. */
|
|
276
|
-
gte(bound: bigint | number): this;
|
|
277
|
-
/** Assert the value is less than or equal to `bound`. */
|
|
278
|
-
lte(bound: bigint | number): this;
|
|
279
|
-
/**
|
|
280
|
-
* Assert the value is within [min, max] inclusive.
|
|
281
|
-
* @throws {CallciumError} If min > max.
|
|
282
|
-
*/
|
|
283
|
-
between(min: bigint | number, max: bigint | number): this;
|
|
284
|
-
/**
|
|
285
|
-
* Assert the value is a member of the set.
|
|
286
|
-
* Values are sorted and deduplicated before encoding.
|
|
287
|
-
* @throws {CallciumError} If the set is empty after deduplication.
|
|
288
|
-
*/
|
|
289
|
-
isIn(values: readonly ScalarValue[]): this;
|
|
290
|
-
/**
|
|
291
|
-
* Assert the value is not a member of the set.
|
|
292
|
-
* @throws {CallciumError} If the set is empty after deduplication.
|
|
293
|
-
*/
|
|
294
|
-
notIn(values: readonly ScalarValue[]): this;
|
|
295
|
-
/** Assert all bits in `mask` are set. */
|
|
296
|
-
bitmaskAll(mask: bigint): this;
|
|
297
|
-
/** Assert at least one bit in `mask` is set. */
|
|
298
|
-
bitmaskAny(mask: bigint): this;
|
|
299
|
-
/** Assert no bit in `mask` is set. */
|
|
300
|
-
bitmaskNone(mask: bigint): this;
|
|
301
|
-
/** Assert the runtime length equals `n`. */
|
|
302
|
-
lengthEq(n: bigint | number): this;
|
|
303
|
-
/** Assert the runtime length is greater than `n`. */
|
|
304
|
-
lengthGt(n: bigint | number): this;
|
|
305
|
-
/** Assert the runtime length is less than `n`. */
|
|
306
|
-
lengthLt(n: bigint | number): this;
|
|
307
|
-
/** Assert the runtime length is greater than or equal to `n`. */
|
|
308
|
-
lengthGte(n: bigint | number): this;
|
|
309
|
-
/** Assert the runtime length is less than or equal to `n`. */
|
|
310
|
-
lengthLte(n: bigint | number): this;
|
|
311
|
-
/**
|
|
312
|
-
* Assert the runtime length is within [min, max] inclusive.
|
|
313
|
-
* @throws {CallciumError} If min > max.
|
|
314
|
-
*/
|
|
315
|
-
lengthBetween(min: bigint | number, max: bigint | number): this;
|
|
316
|
-
}
|
|
317
|
-
/**
|
|
318
|
-
* Target a calldata argument by path.
|
|
319
|
-
* Each argument is a big-endian uint16 step; multiple steps navigate into nested types.
|
|
320
|
-
*/
|
|
321
|
-
declare function arg(p0: number, ...rest: number[]): ConstraintBuilder;
|
|
322
|
-
/** Target the `msg.sender` context property. */
|
|
323
|
-
declare function msgSender(): ConstraintBuilder;
|
|
324
|
-
/** Target the `msg.value` context property. */
|
|
325
|
-
declare function msgValue(): ConstraintBuilder;
|
|
326
|
-
/** Target the `block.timestamp` context property. */
|
|
327
|
-
declare function blockTimestamp(): ConstraintBuilder;
|
|
328
|
-
/** Target the `block.number` context property. */
|
|
329
|
-
declare function blockNumber(): ConstraintBuilder;
|
|
330
|
-
/** Target the `block.chainid` context property. */
|
|
331
|
-
declare function chainId(): ConstraintBuilder;
|
|
332
|
-
/** Target the `tx.origin` context property. */
|
|
333
|
-
declare function txOrigin(): ConstraintBuilder;
|
|
334
|
-
/** Target the `block.basefee` context property. */
|
|
335
|
-
declare function baseFee(): ConstraintBuilder;
|
|
336
|
-
/** Target the `tx.gasprice` context property. */
|
|
337
|
-
declare function gasPrice(): ConstraintBuilder;
|
|
338
|
-
//#endregion
|
|
339
248
|
//#region src/policy-builder.d.ts
|
|
340
249
|
/** Fluent builder for constructing Callcium policies. */
|
|
341
250
|
declare class PolicyBuilder {
|
|
@@ -354,8 +263,11 @@ declare class PolicyBuilder {
|
|
|
354
263
|
/**
|
|
355
264
|
* Add a constraint to the current group.
|
|
356
265
|
* @param constraint - A `Constraint` object or a `ConstraintBuilder` instance.
|
|
266
|
+
* @throws {CallciumError} With code `OUT_OF_PHYSICAL_BOUNDS` when a numeric operand lies outside
|
|
267
|
+
* the target type's range and encodes as a value inside it. Operands are read as written, so a
|
|
268
|
+
* `Constraint` carrying encoded operator bytes is left to {@link validate}.
|
|
357
269
|
*/
|
|
358
|
-
add(constraint: Constraint
|
|
270
|
+
add(constraint: Constraint): this;
|
|
359
271
|
/** Start a new constraint group (OR branch). */
|
|
360
272
|
or(): this;
|
|
361
273
|
/**
|
|
@@ -365,6 +277,8 @@ declare class PolicyBuilder {
|
|
|
365
277
|
* @returns The policy as a 0x-prefixed hex string.
|
|
366
278
|
* @throws {CallciumError} If any group is empty.
|
|
367
279
|
* @throws {ValidationError} If validation finds any issue.
|
|
280
|
+
* @throws {CallciumError} With code `RULE_SIZE_OVERFLOW` when a rule's encoded bytes exceed the
|
|
281
|
+
* width of the rule size field.
|
|
368
282
|
*/
|
|
369
283
|
build(): Hex;
|
|
370
284
|
/**
|
|
@@ -449,8 +363,7 @@ type TypeInfo = {
|
|
|
449
363
|
};
|
|
450
364
|
/**
|
|
451
365
|
* Return the byte length of the node at `offset`.
|
|
452
|
-
*
|
|
453
|
-
* length in the lower 12 bits of the 24-bit meta field.
|
|
366
|
+
* @throws {CallciumError} When the descriptor holds no readable node at `offset`.
|
|
454
367
|
*/
|
|
455
368
|
declare function nodeLength(desc: Uint8Array, offset: number): number;
|
|
456
369
|
/**
|
|
@@ -458,7 +371,10 @@ declare function nodeLength(desc: Uint8Array, offset: number): number;
|
|
|
458
371
|
* Starts at the first field and skips `fieldIndex` nodes using `nodeLength`.
|
|
459
372
|
*/
|
|
460
373
|
declare function tupleFieldOffset(desc: Uint8Array, tupleOffset: number, fieldIndex: number): number;
|
|
461
|
-
/**
|
|
374
|
+
/**
|
|
375
|
+
* Return the declared top-level parameter count.
|
|
376
|
+
* @throws {CallciumError} When the descriptor is too short to hold a header.
|
|
377
|
+
*/
|
|
462
378
|
declare function paramCount(desc: Uint8Array): number;
|
|
463
379
|
/** Return byte offset of the N-th top-level param (0-indexed). */
|
|
464
380
|
declare function paramOffset(desc: Uint8Array, index: number): number;
|
|
@@ -467,6 +383,7 @@ declare function paramOffset(desc: Uint8Array, index: number): number;
|
|
|
467
383
|
* @param desc - Raw descriptor bytes.
|
|
468
384
|
* @param offset - Byte position of the node.
|
|
469
385
|
* @returns typeCode, isDynamic, and staticSize in bytes.
|
|
386
|
+
* @throws {CallciumError} When the descriptor holds no readable node at `offset`.
|
|
470
387
|
*/
|
|
471
388
|
declare function inspect(desc: Uint8Array, offset: number): TypeInfo;
|
|
472
389
|
/**
|
|
@@ -549,6 +466,9 @@ declare function isOpAllowed(opCode: number, typeInfo: TypeInfo): boolean;
|
|
|
549
466
|
* @returns All validation issues found, ordered by group and constraint index.
|
|
550
467
|
* @throws {CallciumError} If the descriptor is not well-formed; semantic validation is
|
|
551
468
|
* defined only over a well-formed descriptor.
|
|
469
|
+
* @throws {CallciumError} With code `EMPTY_PATH` when a constraint carries no path step, and
|
|
470
|
+
* `INVALID_HEX` or `INVALID_OPERATOR_BYTES` when an operator is not a readable encoding. Analysis
|
|
471
|
+
* is defined over canonical data, so these reject the input rather than report an issue on it.
|
|
552
472
|
*/
|
|
553
473
|
declare function validate(data: PolicyData): Issue[];
|
|
554
474
|
/** Semantic validation for policies. */
|
|
@@ -556,6 +476,115 @@ declare const PolicyValidator: {
|
|
|
556
476
|
validate: typeof validate;
|
|
557
477
|
};
|
|
558
478
|
//#endregion
|
|
479
|
+
//#region src/constraint.d.ts
|
|
480
|
+
/** Accepted scalar value types for operator arguments. */
|
|
481
|
+
type ScalarValue = bigint | boolean | string;
|
|
482
|
+
/**
|
|
483
|
+
* Extremes of the numeric operands a builder's value operators received, as written. Encoding folds
|
|
484
|
+
* a negative operand onto its unsigned alias, so the sign survives nowhere else.
|
|
485
|
+
*/
|
|
486
|
+
type OperandExtremes = {
|
|
487
|
+
/** Most negative operand written, or zero when none was negative. */leastNegative: bigint; /** Greatest operand written, or zero when none exceeded it. */
|
|
488
|
+
greatest: bigint;
|
|
489
|
+
};
|
|
490
|
+
/**
|
|
491
|
+
* Mutable builder that accumulates operators targeting a single path.
|
|
492
|
+
* Implements the `Constraint` interface so it can be passed directly to policy builders.
|
|
493
|
+
*/
|
|
494
|
+
declare class ConstraintBuilder<Operand extends ScalarValue = ScalarValue> implements Constraint {
|
|
495
|
+
readonly scope: number;
|
|
496
|
+
readonly path: Hex;
|
|
497
|
+
readonly operators: Hex[];
|
|
498
|
+
/**
|
|
499
|
+
* Extremes of the numeric operands the value operators received, as written. Only the extremes
|
|
500
|
+
* can offend: an operand folds into a target's range from below it or from above it, and
|
|
501
|
+
* whichever reaches furthest arrives first. Read it through {@link readOperandExtremes}.
|
|
502
|
+
* @internal
|
|
503
|
+
*/
|
|
504
|
+
readonly operandExtremes: OperandExtremes;
|
|
505
|
+
/** @internal */
|
|
506
|
+
constructor(scope: number, path: Hex);
|
|
507
|
+
/**
|
|
508
|
+
* Push a pre-encoded operator hex string and return this for chaining.
|
|
509
|
+
* `values` are the operands as written; the numeric ones join the record.
|
|
510
|
+
*/
|
|
511
|
+
private push;
|
|
512
|
+
/** Assert the value equals `value`. */
|
|
513
|
+
eq(value: Operand): this;
|
|
514
|
+
/** Assert the value does not equal `value`. */
|
|
515
|
+
neq(value: Operand): this;
|
|
516
|
+
/** Assert the value equals the context property `contextPropertyId`. */
|
|
517
|
+
eqCtx(contextPropertyId: number): this;
|
|
518
|
+
/** Assert the value does not equal the context property `contextPropertyId`. */
|
|
519
|
+
neqCtx(contextPropertyId: number): this;
|
|
520
|
+
/** Assert the value is greater than `bound`. */
|
|
521
|
+
gt(bound: bigint): this;
|
|
522
|
+
/** Assert the value is less than `bound`. */
|
|
523
|
+
lt(bound: bigint): this;
|
|
524
|
+
/** Assert the value is greater than or equal to `bound`. */
|
|
525
|
+
gte(bound: bigint): this;
|
|
526
|
+
/** Assert the value is less than or equal to `bound`. */
|
|
527
|
+
lte(bound: bigint): this;
|
|
528
|
+
/**
|
|
529
|
+
* Assert the value is within [min, max] inclusive.
|
|
530
|
+
* @throws {CallciumError} If min > max.
|
|
531
|
+
*/
|
|
532
|
+
between(min: bigint, max: bigint): this;
|
|
533
|
+
/**
|
|
534
|
+
* Assert the value is a member of the set.
|
|
535
|
+
* Values are sorted and deduplicated before encoding.
|
|
536
|
+
* @throws {CallciumError} If the set is empty after deduplication.
|
|
537
|
+
*/
|
|
538
|
+
isIn(values: readonly Operand[]): this;
|
|
539
|
+
/**
|
|
540
|
+
* Assert the value is not a member of the set.
|
|
541
|
+
* @throws {CallciumError} If the set is empty after deduplication.
|
|
542
|
+
*/
|
|
543
|
+
notIn(values: readonly Operand[]): this;
|
|
544
|
+
/** Assert all bits in `mask` are set. */
|
|
545
|
+
bitmaskAll(mask: bigint): this;
|
|
546
|
+
/** Assert at least one bit in `mask` is set. */
|
|
547
|
+
bitmaskAny(mask: bigint): this;
|
|
548
|
+
/** Assert no bit in `mask` is set. */
|
|
549
|
+
bitmaskNone(mask: bigint): this;
|
|
550
|
+
/** Assert the runtime length equals `length`. */
|
|
551
|
+
lengthEq(length: bigint): this;
|
|
552
|
+
/** Assert the runtime length is greater than `length`. */
|
|
553
|
+
lengthGt(length: bigint): this;
|
|
554
|
+
/** Assert the runtime length is less than `length`. */
|
|
555
|
+
lengthLt(length: bigint): this;
|
|
556
|
+
/** Assert the runtime length is greater than or equal to `length`. */
|
|
557
|
+
lengthGte(length: bigint): this;
|
|
558
|
+
/** Assert the runtime length is less than or equal to `length`. */
|
|
559
|
+
lengthLte(length: bigint): this;
|
|
560
|
+
/**
|
|
561
|
+
* Assert the runtime length is within [min, max] inclusive.
|
|
562
|
+
* @throws {CallciumError} If min > max.
|
|
563
|
+
*/
|
|
564
|
+
lengthBetween(min: bigint, max: bigint): this;
|
|
565
|
+
}
|
|
566
|
+
/**
|
|
567
|
+
* Target a calldata argument by path.
|
|
568
|
+
* Each argument is a big-endian uint16 step; multiple steps navigate into nested types.
|
|
569
|
+
*/
|
|
570
|
+
declare function arg(p0: number, ...rest: number[]): ConstraintBuilder;
|
|
571
|
+
/** Target the `msg.sender` context property. */
|
|
572
|
+
declare function msgSender(): ConstraintBuilder<Address>;
|
|
573
|
+
/** Target the `msg.value` context property. */
|
|
574
|
+
declare function msgValue(): ConstraintBuilder<bigint>;
|
|
575
|
+
/** Target the `block.timestamp` context property. */
|
|
576
|
+
declare function blockTimestamp(): ConstraintBuilder<bigint>;
|
|
577
|
+
/** Target the `block.number` context property. */
|
|
578
|
+
declare function blockNumber(): ConstraintBuilder<bigint>;
|
|
579
|
+
/** Target the `block.chainid` context property. */
|
|
580
|
+
declare function chainId(): ConstraintBuilder<bigint>;
|
|
581
|
+
/** Target the `tx.origin` context property. */
|
|
582
|
+
declare function txOrigin(): ConstraintBuilder<Address>;
|
|
583
|
+
/** Target the `block.basefee` context property. */
|
|
584
|
+
declare function baseFee(): ConstraintBuilder<bigint>;
|
|
585
|
+
/** Target the `tx.gasprice` context property. */
|
|
586
|
+
declare function gasPrice(): ConstraintBuilder<bigint>;
|
|
587
|
+
//#endregion
|
|
559
588
|
//#region src/policy-enforcer.d.ts
|
|
560
589
|
/**
|
|
561
590
|
* Check a policy against ABI-encoded call data without throwing on violations.
|
|
@@ -563,7 +592,8 @@ declare const PolicyValidator: {
|
|
|
563
592
|
* @param callData - ABI-encoded call data as 0x-prefixed hex string.
|
|
564
593
|
* @param context - Optional execution context for context-scoped rules.
|
|
565
594
|
* @returns Pass with matched group index, or fail with one violation per evaluated failing group.
|
|
566
|
-
* @throws {CallciumError} If the policy blob is structurally malformed
|
|
595
|
+
* @throws {CallciumError} If the policy blob is structurally malformed, or a context value a rule
|
|
596
|
+
* reads is not an address or an integer a 32-byte word represents.
|
|
567
597
|
*/
|
|
568
598
|
declare function check(policy: Hex, callData: Hex, context?: Context): EnforceResult;
|
|
569
599
|
/**
|
|
@@ -572,7 +602,8 @@ declare function check(policy: Hex, callData: Hex, context?: Context): EnforceRe
|
|
|
572
602
|
* @param callData - ABI-encoded call data as 0x-prefixed hex string.
|
|
573
603
|
* @param context - Optional execution context for context-scoped rules.
|
|
574
604
|
* @throws {PolicyViolationError} If the policy rejects the call data.
|
|
575
|
-
* @throws {CallciumError} If the policy blob is structurally malformed
|
|
605
|
+
* @throws {CallciumError} If the policy blob is structurally malformed, or a context value a rule
|
|
606
|
+
* reads is not an address or an integer a 32-byte word represents.
|
|
576
607
|
*/
|
|
577
608
|
declare function enforce(policy: Hex, callData: Hex, context?: Context): void;
|
|
578
609
|
/** Check and enforce policies against ABI-encoded call data. */
|
|
@@ -597,6 +628,7 @@ declare function toAddress(hex: string): Address;
|
|
|
597
628
|
* @returns Binary descriptor bytes starting with the version+paramCount header.
|
|
598
629
|
* @throws {CallciumError} With code `MALFORMED_TYPE_STRING` for malformed input.
|
|
599
630
|
* @throws {CallciumError} With code `UNKNOWN_TYPE` for unrecognised type names.
|
|
631
|
+
* @throws {CallciumError} With code `NESTING_TOO_DEEP` when composite nesting exceeds `MAX_NESTING_DEPTH`.
|
|
600
632
|
*/
|
|
601
633
|
declare function fromTypes(typesCsv: string): Uint8Array;
|
|
602
634
|
/**
|
|
@@ -637,10 +669,11 @@ declare const PolicyFormat: {
|
|
|
637
669
|
readonly RULE_DEPTH_OFFSET: 3;
|
|
638
670
|
readonly RULE_PATH_OFFSET: 4;
|
|
639
671
|
readonly PATH_STEP_SIZE: 2;
|
|
672
|
+
readonly PATH_STEP_MAX: number;
|
|
640
673
|
readonly RULE_OPCODE_SIZE: 1;
|
|
641
674
|
readonly RULE_DATALENGTH_SIZE: 2;
|
|
642
675
|
readonly RULE_FIXED_OVERHEAD: 7;
|
|
643
|
-
readonly RULE_MIN_SIZE:
|
|
676
|
+
readonly RULE_MIN_SIZE: number;
|
|
644
677
|
readonly HINT_HEADER_SIZE: 1;
|
|
645
678
|
readonly HINT_HOP_SIZE: 8;
|
|
646
679
|
readonly HINT_HOP_INDEX_OFFSET: 4;
|
|
@@ -676,7 +709,12 @@ type CodeMap<T extends readonly {
|
|
|
676
709
|
readonly key: string;
|
|
677
710
|
readonly code: number;
|
|
678
711
|
}[]> = { readonly [E in T[number] as E["key"]]: E["code"] };
|
|
679
|
-
/**
|
|
712
|
+
/**
|
|
713
|
+
* Render a wire code as fixed-width hex.
|
|
714
|
+
* @param code - Code value.
|
|
715
|
+
* @param byteWidth - Byte width of the field the code occupies.
|
|
716
|
+
* @returns The code as `0x`-prefixed hex, or its decimal form when no such field holds it.
|
|
717
|
+
*/
|
|
680
718
|
/** Rule scope discriminant: context (EVM environment) vs. calldata (ABI payload). */
|
|
681
719
|
declare const Scope: CodeMap<readonly [{
|
|
682
720
|
readonly key: "CONTEXT";
|
|
@@ -773,6 +811,12 @@ type ContextPropertyInfo = {
|
|
|
773
811
|
contextKey: keyof Context;
|
|
774
812
|
typeCode: number;
|
|
775
813
|
};
|
|
814
|
+
/**
|
|
815
|
+
* Look up a context property code in the assigned set.
|
|
816
|
+
* @param code - Context property ID.
|
|
817
|
+
* @returns Display metadata, or undefined when the ID names no assigned property.
|
|
818
|
+
*/
|
|
819
|
+
declare function findContextProperty(code: number): ContextPropertyInfo | undefined;
|
|
776
820
|
/**
|
|
777
821
|
* Map a context property code to its display label and ABI type code.
|
|
778
822
|
* @param code - Context property ID.
|
|
@@ -912,10 +956,13 @@ declare function lookupTypeCode(code: number): TypeCodeInfo;
|
|
|
912
956
|
/**
|
|
913
957
|
* Machine-readable error code for structural decoding and validation failures.
|
|
914
958
|
*
|
|
915
|
-
* Each code names one invariant
|
|
916
|
-
*
|
|
959
|
+
* Each code names one invariant. Where Solidity detects the same invariant, the code is its error
|
|
960
|
+
* name transliterated from `PascalCase` to `SCREAMING_SNAKE_CASE`. The codes under "Inputs and
|
|
961
|
+
* validation" have no counterpart: they name input a Solidity signature cannot express.
|
|
962
|
+
* `OUT_OF_PHYSICAL_BOUNDS` names an invariant Solidity carries twice, as the error
|
|
963
|
+
* `PolicyBuilder.OutOfPhysicalBounds` and as an issue code, so the name is shared with `IssueCode`.
|
|
917
964
|
*/
|
|
918
|
-
type CallciumErrorCode = "UNSUPPORTED_VERSION" | "MALFORMED_HEADER" | "UNEXPECTED_END" | "TRAILING_BYTES" | "EMPTY_POLICY" | "EMPTY_GROUP" | "GROUP_TOO_SMALL" | "GROUP_SIZE_MISMATCH" | "GROUP_OVERFLOW" | "RULE_TOO_SMALL" | "RULE_SIZE_MISMATCH" | "RULE_FIELD_OUT_OF_BOUNDS" | "RULE_OVERFLOW" | "EMPTY_PATH" | "MALFORMED_PATH" | "PATH_TOO_DEEP" | "PARAM_INDEX_OUT_OF_BOUNDS" | "TUPLE_FIELD_OUT_OF_BOUNDS" | "STATIC_ARRAY_INDEX_OUT_OF_BOUNDS" | "NOT_COMPOSITE" | "UNCOMPILABLE_PATH" | "QUANTIFIER_ON_NON_ARRAY" | "NESTED_QUANTIFIER" | "INVALID_SCOPE" | "INVALID_CONTEXT_PATH" | "UNKNOWN_CONTEXT_PROPERTY" | "UNKNOWN_OPERATOR" | "INVALID_OPERATOR_BYTES" | "OPERATOR_TARGET_MISMATCH" | "UNSORTED_IN_SET" | "MALFORMED_HINT" | "NO_CONSTRAINT_OPERATORS" | "DUPLICATE_PATH_IN_GROUP" | "EMPTY_SET" | "SET_TOO_LARGE" | "INVALID_RANGE" | "UNKNOWN_TYPE_CODE" | "NODE_LENGTH_TOO_SMALL" | "NODE_LENGTH_TOO_LARGE" | "NODE_OVERFLOW" | "NESTING_TOO_DEEP" | "INVALID_ARRAY_LENGTH" | "INVALID_TUPLE_FIELD_COUNT" | "STATIC_WORDS_TOO_LARGE" | "PARAM_COUNT_MISMATCH" | "TOO_MANY_PARAMS" | "MALFORMED_TYPE_STRING" | "UNKNOWN_TYPE" | "MALFORMED_SIGNATURE" | "SIGNATURE_CONTAINS_WHITESPACE" | "INVALID_FUNCTION_NAME" | "GROUP_COUNT_OVERFLOW" | "RULE_COUNT_OVERFLOW" | "RULE_SIZE_OVERFLOW" | "DESC_LENGTH_OVERFLOW" | "UNKNOWN_QUANTIFIER" | "INVALID_HEX" | "VALIDATION_ERROR";
|
|
965
|
+
type CallciumErrorCode = "UNSUPPORTED_VERSION" | "MALFORMED_HEADER" | "UNEXPECTED_END" | "TRAILING_BYTES" | "EMPTY_POLICY" | "EMPTY_GROUP" | "GROUP_TOO_SMALL" | "GROUP_SIZE_MISMATCH" | "GROUP_OVERFLOW" | "RULE_TOO_SMALL" | "RULE_SIZE_MISMATCH" | "RULE_FIELD_OUT_OF_BOUNDS" | "RULE_OVERFLOW" | "EMPTY_PATH" | "MALFORMED_PATH" | "PATH_TOO_DEEP" | "PARAM_INDEX_OUT_OF_BOUNDS" | "TUPLE_FIELD_OUT_OF_BOUNDS" | "STATIC_ARRAY_INDEX_OUT_OF_BOUNDS" | "NOT_COMPOSITE" | "UNCOMPILABLE_PATH" | "QUANTIFIER_ON_NON_ARRAY" | "NESTED_QUANTIFIER" | "INVALID_SCOPE" | "INVALID_CONTEXT_PATH" | "UNKNOWN_CONTEXT_PROPERTY" | "UNKNOWN_OPERATOR" | "INVALID_OPERATOR_BYTES" | "OPERATOR_TARGET_MISMATCH" | "UNSORTED_IN_SET" | "MALFORMED_HINT" | "NO_CONSTRAINT_OPERATORS" | "DUPLICATE_PATH_IN_GROUP" | "EMPTY_SET" | "SET_TOO_LARGE" | "INVALID_RANGE" | "OUT_OF_PHYSICAL_BOUNDS" | "UNKNOWN_TYPE_CODE" | "NODE_LENGTH_TOO_SMALL" | "NODE_LENGTH_TOO_LARGE" | "NODE_OVERFLOW" | "NESTING_TOO_DEEP" | "INVALID_ARRAY_LENGTH" | "INVALID_TUPLE_FIELD_COUNT" | "STATIC_WORDS_TOO_LARGE" | "PARAM_COUNT_MISMATCH" | "TOO_MANY_PARAMS" | "MALFORMED_TYPE_STRING" | "UNKNOWN_TYPE" | "MALFORMED_SIGNATURE" | "SIGNATURE_CONTAINS_WHITESPACE" | "INVALID_FUNCTION_NAME" | "GROUP_COUNT_OVERFLOW" | "RULE_COUNT_OVERFLOW" | "RULE_SIZE_OVERFLOW" | "DESC_LENGTH_OVERFLOW" | "UNKNOWN_QUANTIFIER" | "INVALID_HEX" | "MALFORMED_SELECTOR" | "PATH_STEP_OVERFLOW" | "OPERAND_OVERFLOW" | "CONTEXT_VALUE_OVERFLOW" | "VALIDATION_ERROR";
|
|
919
966
|
/**
|
|
920
967
|
* Thrown when a policy or descriptor blob is structurally malformed.
|
|
921
968
|
* The optional `offset` indicates the byte position in the source blob where the error was detected.
|
|
@@ -951,5 +998,5 @@ declare class PolicyViolationError extends Error {
|
|
|
951
998
|
constructor(violations: Violation[]);
|
|
952
999
|
}
|
|
953
1000
|
//#endregion
|
|
954
|
-
export { type Address, CallciumError, type CallciumErrorCode, type CalldataNavigationViolation, type Constraint, type ConstraintBuilder, type Context, ContextProperty, type ContextPropertyInfo, type DecodedGroup, type DecodedParam, type DecodedPolicy, type DecodedRule, Descriptor, DescriptorCoder, type EnforceResult, type Field, type Hex, type Issue, type IssueCategory, type IssueCode, type IssueSeverity, MAX_CONTEXT_PROPERTY_ID, type MissingContextViolation, type MissingSelectorViolation, type NavigationViolationCode, type NonCanonicalValueViolation, Op, type OpInfo, type Operands, PolicyBuilder, PolicyCoder, type PolicyData, PolicyEnforcer, PolicyFormat, PolicyValidator, PolicyViolationError, Quantifier, type QuantifierEmptyArrayViolation, type QuantifierInfo, type QuantifierLimitExceededViolation, type ScalarValue, Scope, type ScopeInfo, type SelectorMismatchViolation, type Span, type TypeClass, type TypeClassInfo, TypeCode, type TypeCodeInfo, type TypeInfo, ValidationError, type ValueMismatchViolation, type Violation, type ViolationCode, arg, baseFee, blockNumber, blockTimestamp, bytesToHex, chainId, gasPrice, hexToBytes, isLengthOp, isOpAllowed, isQuantifier, lookupContextProperty, lookupOp, lookupQuantifier, lookupScope, lookupTypeCode, msgSender, msgValue, parsePathSteps, toAddress, txOrigin };
|
|
1001
|
+
export { type Address, CallciumError, type CallciumErrorCode, type CalldataNavigationViolation, type Constraint, type ConstraintBuilder, type Context, ContextProperty, type ContextPropertyInfo, type DecodedGroup, type DecodedParam, type DecodedPolicy, type DecodedRule, Descriptor, DescriptorCoder, type EnforceResult, type Field, type Hex, type Issue, type IssueCategory, type IssueCode, type IssueSeverity, MAX_CONTEXT_PROPERTY_ID, type MissingContextViolation, type MissingSelectorViolation, type NavigationViolationCode, type NonCanonicalValueViolation, Op, type OpInfo, type Operands, PolicyBuilder, PolicyCoder, type PolicyData, PolicyEnforcer, PolicyFormat, PolicyValidator, PolicyViolationError, Quantifier, type QuantifierEmptyArrayViolation, type QuantifierInfo, type QuantifierLimitExceededViolation, type ScalarValue, Scope, type ScopeInfo, type SelectorMismatchViolation, type Span, type TypeClass, type TypeClassInfo, TypeCode, type TypeCodeInfo, type TypeInfo, ValidationError, type ValueMismatchViolation, type Violation, type ViolationCode, arg, baseFee, blockNumber, blockTimestamp, bytesToHex, chainId, findContextProperty, gasPrice, hexToBytes, isLengthOp, isOpAllowed, isQuantifier, lookupContextProperty, lookupOp, lookupQuantifier, lookupScope, lookupTypeCode, msgSender, msgValue, parsePathSteps, toAddress, txOrigin };
|
|
955
1002
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/policy-builder.ts","../src/policy-coder.ts","../src/path.ts","../src/descriptor.ts","../src/policy-validator.ts","../src/constraint.ts","../src/policy-enforcer.ts","../src/bytes.ts","../src/descriptor-coder.ts","../src/constants.ts","../src/operators.ts","../src/errors.ts"],"mappings":"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"}
|