@callcium/sdk 0.3.0 → 0.5.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/index.d.ts +64 -27
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +705 -356
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ type Context = {
|
|
|
20
20
|
blockNumber?: bigint;
|
|
21
21
|
chainId?: bigint;
|
|
22
22
|
txOrigin?: Address;
|
|
23
|
+
baseFee?: bigint;
|
|
24
|
+
gasPrice?: bigint;
|
|
23
25
|
};
|
|
24
26
|
/** Result of enforcing a policy: pass with matched group index, or fail with one violation per failed group. */
|
|
25
27
|
type EnforceResult = {
|
|
@@ -203,7 +205,7 @@ type DecodedPolicy = {
|
|
|
203
205
|
/** Severity of a validation issue. */
|
|
204
206
|
type IssueSeverity = "info" | "warning" | "error";
|
|
205
207
|
/** Category of a validation issue. */
|
|
206
|
-
type IssueCategory = "typeMismatch" | "contradiction" | "redundancy" | "vacuity";
|
|
208
|
+
type IssueCategory = "typeMismatch" | "contradiction" | "redundancy" | "vacuity" | "compatibility";
|
|
207
209
|
/** A single validation issue found during policy analysis. */
|
|
208
210
|
type Issue = {
|
|
209
211
|
severity: IssueSeverity;
|
|
@@ -285,10 +287,7 @@ declare class ConstraintBuilder implements Constraint {
|
|
|
285
287
|
* Target a calldata argument by path.
|
|
286
288
|
* Each argument is a big-endian uint16 step; multiple steps navigate into nested types.
|
|
287
289
|
*/
|
|
288
|
-
declare function arg(p0: number): ConstraintBuilder;
|
|
289
|
-
declare function arg(p0: number, p1: number): ConstraintBuilder;
|
|
290
|
-
declare function arg(p0: number, p1: number, p2: number): ConstraintBuilder;
|
|
291
|
-
declare function arg(p0: number, p1: number, p2: number, p3: number): ConstraintBuilder;
|
|
290
|
+
declare function arg(p0: number, ...rest: number[]): ConstraintBuilder;
|
|
292
291
|
/** Target the `msg.sender` context property. */
|
|
293
292
|
declare function msgSender(): ConstraintBuilder;
|
|
294
293
|
/** Target the `msg.value` context property. */
|
|
@@ -301,6 +300,10 @@ declare function blockNumber(): ConstraintBuilder;
|
|
|
301
300
|
declare function chainId(): ConstraintBuilder;
|
|
302
301
|
/** Target the `tx.origin` context property. */
|
|
303
302
|
declare function txOrigin(): ConstraintBuilder;
|
|
303
|
+
/** Target the `block.basefee` context property. */
|
|
304
|
+
declare function baseFee(): ConstraintBuilder;
|
|
305
|
+
/** Target the `tx.gasprice` context property. */
|
|
306
|
+
declare function gasPrice(): ConstraintBuilder;
|
|
304
307
|
//#endregion
|
|
305
308
|
//#region src/policy-builder.d.ts
|
|
306
309
|
/** Fluent builder for constructing Callcium policies. */
|
|
@@ -325,11 +328,21 @@ declare class PolicyBuilder {
|
|
|
325
328
|
/** Start a new constraint group (OR branch). */
|
|
326
329
|
or(): this;
|
|
327
330
|
/**
|
|
328
|
-
* Build the policy into an encoded binary blob.
|
|
331
|
+
* Build the policy into an encoded binary blob with strict validation.
|
|
332
|
+
* Throws on any issue, regardless of severity. Use {@link validate} to
|
|
333
|
+
* inspect issues, or {@link buildUnsafe} to encode without validation.
|
|
329
334
|
* @returns The policy as a 0x-prefixed hex string.
|
|
330
|
-
* @throws {CallciumError} If any group is empty or validation finds
|
|
335
|
+
* @throws {CallciumError} If any group is empty or validation finds any issue.
|
|
331
336
|
*/
|
|
332
337
|
build(): Hex;
|
|
338
|
+
/**
|
|
339
|
+
* Build the policy into an encoded binary blob without validation.
|
|
340
|
+
* The resulting policy may be invalid. Prefer {@link build}; use this
|
|
341
|
+
* only to knowingly bypass a reported issue.
|
|
342
|
+
* @returns The policy as a 0x-prefixed hex string.
|
|
343
|
+
* @throws {CallciumError} If any group is empty.
|
|
344
|
+
*/
|
|
345
|
+
buildUnsafe(): Hex;
|
|
333
346
|
/**
|
|
334
347
|
* Validate the policy without encoding.
|
|
335
348
|
* @returns All validation issues found.
|
|
@@ -417,6 +430,19 @@ declare function inspect(desc: Uint8Array, offset: number): TypeInfo;
|
|
|
417
430
|
* @throws {CallciumError} On empty steps, out-of-bounds param, or descent into elementary type.
|
|
418
431
|
*/
|
|
419
432
|
declare function typeAt(desc: Uint8Array, steps: number[]): TypeInfo;
|
|
433
|
+
/**
|
|
434
|
+
* Resolve the type at the path and the declared length of the static array a
|
|
435
|
+
* quantifier step descends into (zero when the path holds no quantifier step
|
|
436
|
+
* over a static array).
|
|
437
|
+
* @param desc - Raw descriptor bytes.
|
|
438
|
+
* @param steps - Path steps, length >= 1.
|
|
439
|
+
* @returns TypeInfo at the resolved path and the quantified static array length.
|
|
440
|
+
* @throws {CallciumError} On empty steps, out-of-bounds param, or descent into elementary type.
|
|
441
|
+
*/
|
|
442
|
+
declare function walkPath(desc: Uint8Array, steps: number[]): {
|
|
443
|
+
typeInfo: TypeInfo;
|
|
444
|
+
quantifiedStaticLength: number;
|
|
445
|
+
};
|
|
420
446
|
/**
|
|
421
447
|
* Return tuple field count at a tuple node offset.
|
|
422
448
|
* @param desc - Raw descriptor bytes.
|
|
@@ -445,6 +471,7 @@ declare const Descriptor: {
|
|
|
445
471
|
staticArrayLength: typeof staticArrayLength;
|
|
446
472
|
nodeLength: typeof nodeLength;
|
|
447
473
|
arrayElementOffset: typeof arrayElementOffset;
|
|
474
|
+
walkPath: typeof walkPath;
|
|
448
475
|
};
|
|
449
476
|
//#endregion
|
|
450
477
|
//#region src/policy-validator.d.ts
|
|
@@ -470,7 +497,7 @@ declare const PolicyValidator: {
|
|
|
470
497
|
* @param policy - Binary policy blob as 0x-prefixed hex string.
|
|
471
498
|
* @param callData - ABI-encoded call data as 0x-prefixed hex string.
|
|
472
499
|
* @param context - Optional execution context for context-scoped rules.
|
|
473
|
-
* @returns Pass with matched group index, or fail with one violation per
|
|
500
|
+
* @returns Pass with matched group index, or fail with one violation per evaluated failing group.
|
|
474
501
|
* @throws {CallciumError} If the policy blob is structurally malformed.
|
|
475
502
|
*/
|
|
476
503
|
declare function check(policy: Hex, callData: Hex, context?: Context): EnforceResult;
|
|
@@ -553,6 +580,23 @@ type ScopeInfo = {
|
|
|
553
580
|
* @throws {CallciumError} If the code is not a recognised scope.
|
|
554
581
|
*/
|
|
555
582
|
declare function lookupScope(code: number): ScopeInfo;
|
|
583
|
+
/** ABI type code ranges and sentinel values for the descriptor format. */
|
|
584
|
+
declare const TypeCode: {
|
|
585
|
+
readonly UINT_MIN: 0;
|
|
586
|
+
readonly UINT_MAX: 31;
|
|
587
|
+
readonly INT_MIN: 32;
|
|
588
|
+
readonly INT_MAX: 63;
|
|
589
|
+
readonly ADDRESS: 64;
|
|
590
|
+
readonly BOOL: 65;
|
|
591
|
+
readonly FUNCTION: 66;
|
|
592
|
+
readonly FIXED_BYTES_MIN: 80;
|
|
593
|
+
readonly FIXED_BYTES_MAX: 111;
|
|
594
|
+
readonly BYTES: 112;
|
|
595
|
+
readonly STRING: 113;
|
|
596
|
+
readonly STATIC_ARRAY: 128;
|
|
597
|
+
readonly DYNAMIC_ARRAY: 129;
|
|
598
|
+
readonly TUPLE: 144;
|
|
599
|
+
};
|
|
556
600
|
/** Well-known context property IDs for context-scope rules. */
|
|
557
601
|
declare const ContextProperty: CodeMap<readonly [{
|
|
558
602
|
readonly key: "MSG_SENDER";
|
|
@@ -584,6 +628,16 @@ declare const ContextProperty: CodeMap<readonly [{
|
|
|
584
628
|
readonly code: 5;
|
|
585
629
|
readonly label: "tx.origin";
|
|
586
630
|
readonly typeCode: 64;
|
|
631
|
+
}, {
|
|
632
|
+
readonly key: "BASE_FEE";
|
|
633
|
+
readonly code: 6;
|
|
634
|
+
readonly label: "block.basefee";
|
|
635
|
+
readonly typeCode: 31;
|
|
636
|
+
}, {
|
|
637
|
+
readonly key: "GAS_PRICE";
|
|
638
|
+
readonly code: 7;
|
|
639
|
+
readonly label: "tx.gasprice";
|
|
640
|
+
readonly typeCode: 31;
|
|
587
641
|
}]>;
|
|
588
642
|
/** Display metadata for a context property code. */
|
|
589
643
|
type ContextPropertyInfo = {
|
|
@@ -730,23 +784,6 @@ declare function isQuantifier(step: number): boolean;
|
|
|
730
784
|
* @throws {CallciumError} If the code is not a recognised quantifier.
|
|
731
785
|
*/
|
|
732
786
|
declare function lookupQuantifier(code: number): QuantifierInfo;
|
|
733
|
-
/** ABI type code ranges and sentinel values for the descriptor format. */
|
|
734
|
-
declare const TypeCode: {
|
|
735
|
-
readonly UINT_MIN: 0;
|
|
736
|
-
readonly UINT_MAX: 31;
|
|
737
|
-
readonly INT_MIN: 32;
|
|
738
|
-
readonly INT_MAX: 63;
|
|
739
|
-
readonly ADDRESS: 64;
|
|
740
|
-
readonly BOOL: 65;
|
|
741
|
-
readonly FUNCTION: 66;
|
|
742
|
-
readonly FIXED_BYTES_MIN: 80;
|
|
743
|
-
readonly FIXED_BYTES_MAX: 111;
|
|
744
|
-
readonly BYTES: 112;
|
|
745
|
-
readonly STRING: 113;
|
|
746
|
-
readonly STATIC_ARRAY: 128;
|
|
747
|
-
readonly DYNAMIC_ARRAY: 129;
|
|
748
|
-
readonly TUPLE: 144;
|
|
749
|
-
};
|
|
750
787
|
/** Structural category for a descriptor type code. */
|
|
751
788
|
type TypeClass = "elementary" | "tuple" | "staticArray" | "dynamicArray";
|
|
752
789
|
/** Structural classification without label — used by the decoder hot path. */
|
|
@@ -772,7 +809,7 @@ declare function isLengthOp(opCode: number): boolean;
|
|
|
772
809
|
//#endregion
|
|
773
810
|
//#region src/errors.d.ts
|
|
774
811
|
/** Machine-readable error code for structural decoding and validation failures. */
|
|
775
|
-
type CallciumErrorCode = "UNSUPPORTED_VERSION" | "MALFORMED_HEADER" | "UNEXPECTED_END" | "NODE_OVERFLOW" | "UNKNOWN_TYPE_CODE" | "INVALID_OPERATOR" | "INVALID_ARRAY_LENGTH" | "INVALID_TUPLE_FIELD_COUNT" | "PARAM_COUNT_MISMATCH" | "EMPTY_POLICY" | "EMPTY_GROUP" | "EMPTY_PATH" | "INVALID_CONTEXT_PATH" | "INVALID_CONTEXT_PROPERTY" | "INVALID_QUANTIFIER" | "INVALID_SCOPE" | "RULE_SIZE_MISMATCH" | "GROUP_SIZE_MISMATCH" | "GROUP_OVERFLOW" | "RULE_OVERFLOW" | "TRAILING_BYTES" | "INTERNAL_ERROR" | "INVALID_SIGNATURE" | "INVALID_TYPE_STRING" | "UNKNOWN_TYPE" | "DESCRIPTOR_TOO_LARGE" | "INVALID_PATH" | "DUPLICATE_PATH" | "INVALID_CONSTRAINT" | "INVALID_OPERATOR_DATA" | "EMPTY_SET" | "SET_TOO_LARGE" | "INVALID_RANGE" | "GROUP_COUNT_OVERFLOW" | "RULE_COUNT_OVERFLOW" | "RULE_SIZE_OVERFLOW" | "DESC_LENGTH_OVERFLOW" | "INVALID_HEX" | "VALIDATION_ERROR";
|
|
812
|
+
type CallciumErrorCode = "UNSUPPORTED_VERSION" | "MALFORMED_HEADER" | "UNEXPECTED_END" | "NODE_OVERFLOW" | "NESTING_TOO_DEEP" | "UNKNOWN_TYPE_CODE" | "INVALID_OPERATOR" | "UNSORTED_IN_SET" | "INVALID_ARRAY_LENGTH" | "INVALID_TUPLE_FIELD_COUNT" | "PARAM_COUNT_MISMATCH" | "EMPTY_POLICY" | "EMPTY_GROUP" | "EMPTY_PATH" | "INVALID_CONTEXT_PATH" | "INVALID_CONTEXT_PROPERTY" | "INVALID_QUANTIFIER" | "INVALID_SCOPE" | "RULE_SIZE_MISMATCH" | "GROUP_SIZE_MISMATCH" | "GROUP_OVERFLOW" | "RULE_OVERFLOW" | "TRAILING_BYTES" | "INTERNAL_ERROR" | "INVALID_SIGNATURE" | "INVALID_TYPE_STRING" | "UNKNOWN_TYPE" | "DESCRIPTOR_TOO_LARGE" | "INVALID_PATH" | "NOT_SCALAR" | "PATH_TOO_DEEP" | "DUPLICATE_PATH" | "INVALID_CONSTRAINT" | "INVALID_OPERATOR_DATA" | "EMPTY_SET" | "SET_TOO_LARGE" | "INVALID_RANGE" | "GROUP_COUNT_OVERFLOW" | "RULE_COUNT_OVERFLOW" | "RULE_SIZE_OVERFLOW" | "DESC_LENGTH_OVERFLOW" | "INVALID_HEX" | "VALIDATION_ERROR";
|
|
776
813
|
/**
|
|
777
814
|
* Thrown when a policy or descriptor blob is structurally malformed.
|
|
778
815
|
* The optional `offset` indicates the byte position in the source blob where the error was detected.
|
|
@@ -798,5 +835,5 @@ declare class PolicyViolationError extends Error {
|
|
|
798
835
|
constructor(violations: Violation[]);
|
|
799
836
|
}
|
|
800
837
|
//#endregion
|
|
801
|
-
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 IssueSeverity, Limits, type MissingContextViolation, type MissingSelectorViolation, type NavigationViolationCode, Op, type OpInfo, type Operands, PolicyBuilder, PolicyCoder, type PolicyData, PolicyEnforcer, 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, type ValueMismatchViolation, type Violation, type ViolationCode, arg, blockNumber, blockTimestamp, bytesToHex, chainId, hexToBytes, isLengthOp, isOpAllowed, isQuantifier, lookupContextProperty, lookupOp, lookupQuantifier, lookupScope, lookupTypeCode, msgSender, msgValue, parsePathSteps, toAddress, txOrigin };
|
|
838
|
+
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 IssueSeverity, Limits, type MissingContextViolation, type MissingSelectorViolation, type NavigationViolationCode, Op, type OpInfo, type Operands, PolicyBuilder, PolicyCoder, type PolicyData, PolicyEnforcer, 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, 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 };
|
|
802
839
|
//# 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/constraint.ts","../src/policy-builder.ts","../src/policy-coder.ts","../src/descriptor.ts","../src/policy-validator.ts","../src/policy-enforcer.ts","../src/bytes.ts","../src/descriptor-coder.ts","../src/constants.ts","../src/operators.ts","../src/errors.ts"],"mappings":";;KAKY,GAAA;;KAGA,OAAA;;KAGA,IAAA;EAAS,KAAA;EAAe,GAAA;AAAA;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/constraint.ts","../src/policy-builder.ts","../src/policy-coder.ts","../src/descriptor.ts","../src/policy-validator.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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"}
|