@callcium/sdk 0.8.0 → 0.9.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 CHANGED
@@ -44,8 +44,8 @@ type SelectorMismatchViolation = {
44
44
  resolvedValue: Hex;
45
45
  };
46
46
  /**
47
- * A context-scoped rule referenced a property not supplied in the execution context.
48
-
47
+ * A rule referenced a context property not supplied in the execution context — a context-scoped
48
+ * subject, or an `EQ_CTX` operand on either scope.
49
49
  */
50
50
  type MissingContextViolation = {
51
51
  code: "MISSING_CONTEXT";
@@ -53,8 +53,8 @@ type MissingContextViolation = {
53
53
  rule: number;
54
54
  scope: number;
55
55
  path: Hex; /** Declared type of the missing context property. */
56
- typeCode: number;
57
- opCode?: number;
56
+ typeCode: number; /** Operator code with the `Op.NOT` bit intact; absent for a context-scoped subject. */
57
+ opCode?: number; /** Operator payload; absent for a context-scoped subject. */
58
58
  operandData?: Hex;
59
59
  };
60
60
  /**
@@ -79,6 +79,11 @@ type ValueMismatchViolation = {
79
79
  operandData: Hex; /** Type code of the failing value's leaf. */
80
80
  typeCode: number;
81
81
  resolvedValue?: Hex;
82
+ /**
83
+ * Resolved runtime value of a reference operand as a 32-byte word; present when the
84
+ * operator's operand names a reference resolved at enforcement, not a literal.
85
+ */
86
+ resolvedOperand?: Hex;
82
87
  elementIndex?: number;
83
88
  };
84
89
  /**
@@ -252,6 +257,10 @@ declare class ConstraintBuilder implements Constraint {
252
257
  eq(value: ScalarValue): this;
253
258
  /** Assert the value does not equal `value`. */
254
259
  neq(value: ScalarValue): this;
260
+ /** Assert the value equals the context property `contextPropertyId`. */
261
+ eqCtx(contextPropertyId: number): this;
262
+ /** Assert the value does not equal the context property `contextPropertyId`. */
263
+ neqCtx(contextPropertyId: number): this;
255
264
  /** Assert the value is greater than `bound`. */
256
265
  gt(bound: bigint | number): this;
257
266
  /** Assert the value is less than `bound`. */
@@ -717,6 +726,8 @@ declare const ContextProperty: CodeMap<readonly [{
717
726
  readonly label: "tx.gasprice";
718
727
  readonly typeCode: 32;
719
728
  }]>;
729
+ /** Maximum valid context property ID. */
730
+ declare const MAX_CONTEXT_PROPERTY_ID: number;
720
731
  /** Display metadata for a context property code. */
721
732
  type ContextPropertyInfo = {
722
733
  label: string;
@@ -774,6 +785,11 @@ declare const OP_TABLE: readonly [{
774
785
  readonly code: 7;
775
786
  readonly label: "in";
776
787
  readonly operands: "variadic";
788
+ }, {
789
+ readonly key: "EQ_CTX";
790
+ readonly code: 8;
791
+ readonly label: "== ctx";
792
+ readonly operands: "single";
777
793
  }, {
778
794
  readonly key: "BITMASK_ALL";
779
795
  readonly code: 16;
@@ -925,5 +941,5 @@ declare class PolicyViolationError extends Error {
925
941
  constructor(violations: Violation[]);
926
942
  }
927
943
  //#endregion
928
- 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, 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 };
944
+ 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, 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 };
929
945
  //# sourceMappingURL=index.d.ts.map
@@ -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":"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"}
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;;;AAApC;;;KAWY,OAAA;EACV,SAAA,GAAY,OAAA;EACZ,QAAA;EACA,cAAA;EACA,WAAA;EACA,OAAA;EACA,QAAA,GAAW,OAAA;EACX,OAAA;EACA,QAAA;AAAA;;KAIU,aAAA;EAAkB,EAAA;EAAU,YAAA;AAAA;EAA2B,EAAA;EAAW,UAAA,EAAY,SAAA;AAAA;AAA1F;AAAA,KAGY,uBAAA;;KAGA,wBAAA;EACV,IAAA;AAAA;;KAIU,yBAAA;EACV,IAAA,uBAZiG;EAcjG,aAAA,EAAe,GAAA,EAXL;EAaV,aAAA,EAAe,GAAA;AAAA;;;AAVjB;;KAiBY,uBAAA;EACV,IAAA;EACA,KAAA;EACA,IAAA;EACA,KAAA;EACA,IAAA,EAAM,GAAA,EAZY;EAclB,QAAA,UAhBA;EAkBA,MAAA,WAhBA;EAkBA,WAAA,GAAc,GAAA;AAAA;;AAXhB;;;;;;;;;;;KA0BY,sBAAA;EACV,IAAA;EACA,KAAA;EACA,IAAA;EACA,KAAA;EACA,IAAA,EAAM,GAAA,EAL0B;EAOhC,MAAA,UAFM;EAIN,WAAA,EAAa,GAAA,EAGG;EADhB,QAAA;EACA,aAAA,GAAgB,GAAA;EAKK;;;;EAArB,eAAA,GAAkB,GAAA;EAClB,YAAA;AAAA;;;;;KAOG,yBAAA,WAAoC,uBAAA;EACvC,IAAA,EAAM,CAAA;EACN,KAAA;EACA,IAAA;EACA,KAAA;EACA,IAAA,EAAM,GAAA;EACN,MAAA;EACA,WAAA,GAAc,GAAA;EACd,QAAA;EACA,YAAA;AAAA;;;;;;;;;KAWU,2BAAA,GACR,yBAAA,6BACA,yBAAA;;KAGQ,gCAAA;EACV,IAAA;EACA,KAAA;EACA,IAAA;EACA,KAAA;EACA,IAAA,EAAM,GAAA,EAvBQ;EAyBd,aAAA,EAAe,GAAA;AAAA;;;AAZjB;;;KAoBY,0BAAA;EACV,IAAA;EACA,KAAA;EACA,IAAA;EACA,KAAA;EACA,IAAA,EAAM,GAAA,EAnBN;EAqBA,QAAA,UAnBA;EAqBA,aAAA,EAAe,GAAA;EACf,MAAA;EACA,WAAA,GAAc,GAAA;EACd,YAAA;AAAA;;KAIU,6BAAA;EACV,IAAA;EACA,KAAA;EACA,IAAA;EACA,KAAA;EACA,IAAA,EAAM,GAAA;AAAA;;;;;;;KASI,SAAA,GACR,wBAAA,GACA,yBAAA,GACA,uBAAA,GACA,sBAAA,GACA,2BAAA,GACA,0BAAA,GACA,gCAAA,GACA,6BAAA;;KAGQ,aAAA,GAAgB,SAAA;;KAOhB,UAAA;EACV,cAAA;EACA,QAAA,EAAU,GAAA;EACV,UAAA,EAAY,GAAA;EACZ,MAAA,EAAQ,UAAA;EACR,IAAA,GAAO,IAAA;AAAA;AArCT;AAAA,KAyCY,UAAA;EACV,KAAA;EACA,IAAA,EAAM,GAAA;EACN,SAAA,EAAW,GAAA,IA1CX;EA4CA,IAAA,GAAO,GAAA;EACP,IAAA,GAAO,IAAA;AAAA;;KAQG,KAAA;EAAa,KAAA,EAAO,CAAA;EAAG,IAAA,EAAM,IAAA;AAAA;;KAG7B,YAAA;EACV,KAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,IAAA,EAAM,GAAA;EACN,IAAA,EAAM,IAAA;AAAA;;KAII,WAAA;EACV,QAAA,EAAU,KAAA;EACV,KAAA,EAAO,KAAA;EACP,SAAA,EAAW,KAAA;EACX,IAAA,EAAM,KAAA,CAAM,GAAA,GArDV;EAuDF,IAAA,GAAO,KAAA,CAAM,GAAA;EACb,MAAA,EAAQ,KAAA;EACR,UAAA,EAAY,KAAA;EACZ,IAAA,EAAM,KAAA,CAAM,GAAA;EACZ,IAAA,EAAM,IAAA;AAAA;;KAII,YAAA;EACV,SAAA,EAAW,KAAA;EACX,SAAA,EAAW,KAAA;EACX,KAAA,EAAO,WAAA;EACP,IAAA,EAAM,IAAA;AAAA;;KAII,aAAA;EACV,MAAA,EAAQ,KAAA;EACR,QAAA,EAAU,KAAA,CAAM,GAAA;EAChB,UAAA,EAAY,KAAA;EACZ,UAAA;IAAc,GAAA,EAAK,GAAA;IAAK,MAAA,EAAQ,KAAA;MAAQ,OAAA;MAAiB,UAAA;IAAA;IAAuB,MAAA,EAAQ,YAAA;IAAgB,IAAA,EAAM,IAAA;EAAA;EAC9G,UAAA,EAAY,KAAA;EACZ,MAAA,EAAQ,YAAA;EACR,IAAA,EAAM,IAAA;EACN,OAAA;EACA,cAAA;AAAA;;KAQU,aAAA;;KAGA,aAAA;;KAGA,KAAA;EACV,QAAA,EAAU,aAAA;EACV,QAAA,EAAU,aAAA;EACV,UAAA;EACA,eAAA;EACA,IAAA;EACA,MAAA,EAAQ,GAAA;EACR,MAAA,EAAQ,GAAA;EACR,OAAA;AAAA;;;AAxRF;AAAA,KCMY,WAAA;;ADHZ;;;cC2Ha,iBAAA,YAA6B,UAAA;EAAA,SAC/B,KAAA;EAAA,SACA,IAAA,EAAM,GAAA;EAAA,SACN,SAAA,EAAW,GAAA;;cAGR,KAAA,UAAe,IAAA,EAAM,GAAA;ED9HI;EAAA,QCqI7B,IAAA;ED1HS;ECoIjB,EAAA,CAAG,KAAA,EAAO,WAAA;ED9HQ;ECmIlB,GAAA,CAAI,KAAA,EAAO,WAAA;EDxIC;EC6IZ,KAAA,CAAM,iBAAA;ED3IN;ECgJA,MAAA,CAAO,iBAAA;ED9IP;ECmJA,EAAA,CAAG,KAAA;EDlJQ;ECuJX,EAAA,CAAG,KAAA;EDrJH;EC0JA,GAAA,CAAI,KAAA;ED1JI;EC+JR,GAAA,CAAI,KAAA;ED3JmB;;;;ECmKvB,OAAA,CAAQ,GAAA,mBAAsB,GAAA;EDnKmC;;;;;ECgLjE,IAAA,CAAK,MAAA,WAAiB,WAAA;ED7KW;;;;ECqLjC,KAAA,CAAM,MAAA,WAAiB,WAAA;EDlLW;EC2LlC,UAAA,CAAW,IAAA;ED1LX;EC+LA,UAAA,CAAW,IAAA;ED3LD;ECgMV,WAAA,CAAY,IAAA;;EASZ,QAAA,CAAS,CAAA;EDxMT;EC6MA,QAAA,CAAS,CAAA;ED3MM;ECgNf,QAAA,CAAS,CAAA;ED9MM;ECmNf,SAAA,CAAU,CAAA;EDnNQ;ECwNlB,SAAA,CAAU,CAAA;EDjNuB;;;;ECyNjC,aAAA,CAAc,GAAA,mBAAsB,GAAA;AAAA;;;;;iBAatB,GAAA,CAAI,EAAA,aAAe,IAAA,aAAiB,iBAAA;;iBAMpC,SAAA,CAAA,GAAa,iBAAA;;iBAKb,QAAA,CAAA,GAAY,iBAAA;ADvN5B;AAAA,iBC4NgB,cAAA,CAAA,GAAkB,iBAAA;;iBAKlB,WAAA,CAAA,GAAe,iBAAA;;iBAKf,OAAA,CAAA,GAAW,iBAAA;;iBAKX,QAAA,CAAA,GAAY,iBAAA;;iBAKZ,OAAA,CAAA,GAAW,iBAAA;;iBAKX,QAAA,CAAA,GAAY,iBAAA;;;;cClOf,aAAA;EAAA,QACH,KAAA;EAAA,QAED,WAAA,CAAA;EFjGG;;;;EAAA,OEyGH,MAAA,CAAO,SAAA,WAAoB,aAAA;EFtGxB;;;;EAAA,OEsHH,SAAA,CAAU,QAAA,WAAmB,aAAA;EF3G1B;;;;EE0HV,GAAA,CAAI,UAAA,EAAY,UAAA,GAAa,iBAAA;EFzHjB;EE8JZ,EAAA,CAAA;EF5JA;;;;;;;;EE8KA,KAAA,CAAA,GAAS,GAAA;EFrKC;;;;;;;EEsLV,WAAA,CAAA,GAAe,GAAA;EFtLyE;;;AAG1F;EE4LE,QAAA,CAAA,GAAY,KAAA;;UAOJ,WAAA;EFnMyB;EAAA,QE4MzB,YAAA;AAAA;;;AF5OV;;;;;AAAA,iBGkCgB,cAAA,CAAe,IAAA,EAAM,GAAA;;;;;AHjBrC;iBGmgBS,MAAA,CAAO,IAAA,EAAM,UAAA,GAAa,GAAA;;;;;;;iBA0F1B,MAAA,CAAO,IAAA,EAAM,GAAA,GAAM,UAAA;;;;;;;iBA8CnB,SAAA,CAAQ,IAAA,EAAM,GAAA,GAAM,aAAA;AH/nB7B;AAAA,cGooBa,WAAA;;;;;;;;KC7pBD,QAAA;EACV,QAAA;EACA,SAAA;EACA,UAAA;AAAA;AJJF;;;;;AAAA,iBIuCS,UAAA,CAAW,IAAA,EAAM,UAAA,EAAY,MAAA;;;;;iBAU7B,gBAAA,CAAiB,IAAA,EAAM,UAAA,EAAY,WAAA,UAAqB,UAAA;;iBAaxD,UAAA,CAAW,IAAA,EAAM,UAAA;;iBAKjB,WAAA,CAAY,IAAA,EAAM,UAAA,EAAY,KAAA;;;;;;;iBAkB9B,OAAA,CAAQ,IAAA,EAAM,UAAA,EAAY,MAAA,WAAiB,QAAA;;;;;AJ3DpD;;;;;;;;iBImFS,MAAA,CAAO,IAAA,EAAM,UAAA,EAAY,KAAA,aAAkB,QAAA;;;AJhFpD;;;;;AAGA;;iBI0FS,QAAA,CAAS,IAAA,EAAM,UAAA,EAAY,KAAA;EAAoB,QAAA,EAAU,QAAA;EAAU,sBAAA;AAAA;;;;;;iBA4DnE,eAAA,CAAgB,IAAA,EAAM,UAAA,EAAY,MAAA;;;;;AJrI3C;iBI8IS,iBAAA,CAAkB,IAAA,EAAM,UAAA,EAAY,MAAA;;;;;iBAWpC,kBAAA,CAAmB,MAAA;;;;;;;;;;iBA+InB,WAAA,CAAY,IAAA,EAAM,UAAA,EAAY,KAAA,aAAkB,UAAA;;cAiC5C,UAAA;;;;;;;;;;;;;;;;;;;iBCvLG,WAAA,CAAY,MAAA,UAAgB,QAAA,EAAU,QAAA;;;;;ALhMtD;;;iBK+lCS,QAAA,CAAS,IAAA,EAAM,UAAA,GAAa,KAAA;;cAiBxB,eAAA;mBAA8B,QAAA;AAAA;;;ALtnC3C;;;;;AAGA;;;AAHA,iBMuDS,KAAA,CAAM,MAAA,EAAQ,GAAA,EAAK,QAAA,EAAU,GAAA,EAAK,OAAA,GAAU,OAAA,GAAU,aAAA;;ANjD/D;;;;;AAWA;;iBMyGS,OAAA,CAAQ,MAAA,EAAQ,GAAA,EAAK,QAAA,EAAU,GAAA,EAAK,OAAA,GAAU,OAAA;;cA2hB1C,cAAA;gBAAmC,KAAA;kBAAA,OAAA;AAAA;;;ANrpBhD;AAAA,iBOWgB,UAAA,CAAW,GAAA,WAAc,UAAA;;iBAqBzB,UAAA,CAAW,KAAA,EAAO,UAAA,GAAa,GAAA;;iBAqD/B,SAAA,CAAU,GAAA,WAAc,OAAA;;;APrFxC;;;;;AAGA;;;AAHA,iBQuMS,SAAA,CAAU,QAAA,WAAmB,UAAA;;ARjMtC;;;;;AAWA;;;iBQkQS,OAAA,CAAQ,IAAA,EAAM,UAAA;;cAoLV,eAAA;oBAAwC,SAAA;kBAAA,OAAA;AAAA;;;;cC7axC,YAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAyDR,OAAA;EAAA,SAAsC,GAAA;EAAA,SAAsB,IAAA;AAAA,wBAChD,CAAA,YAAa,CAAA,UAAW,CAAA;;cAmB5B,KAAA,EAAK,OAAA;EAAA;;;;;;;;;KAGN,SAAA;EAAc,KAAA;AAAA;;;;;;;iBAUV,WAAA,CAAY,IAAA,WAAe,SAAA;;cAW9B,QAAA;EAAA;;;;;;;;;;;;;;;;cAiCA,eAAA,EAAe,OAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAGf,uBAAA;;KAGD,mBAAA;EAAwB,KAAA;EAAe,UAAA,QAApB,OAAA;EAAiE,QAAA;AAAA;;;;;;;iBAwBhF,qBAAA,CAAsB,IAAA,WAAe,mBAAA;AT/BrD;AAAA,cS0Ca,MAAA;EAAA;;;;;KAWD,QAAA;;cAGN,QAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAqBO,EAAA,EAAI,OAAA,QAAe,QAAA;EAAA,SAAuB,GAAA;AAAA;;KAG3C,MAAA;EAAW,KAAA;EAAe,QAAA,EAAU,QAAA;AAAA;;ATZhD;;;;;iBSsBgB,QAAA,CAAS,IAAA,WAAe,MAAA;;cAgC3B,UAAA,EAAU,OAAA;EAAA;;;;;;;;;KAGX,cAAA;EAAmB,KAAA;AAAA;;iBAKf,YAAA,CAAa,IAAA;;;;;;;iBAUb,gBAAA,CAAiB,IAAA,WAAe,cAAA;;KAOpC,SAAA;;KAGA,aAAA;EAAkB,SAAA,EAAW,SAAA;EAAW,SAAA;AAAA;;KAGxC,YAAA,GAAe,aAAA;EAAkB,KAAA;AAAA;;;;;;;iBA4E7B,cAAA,CAAe,IAAA,WAAe,YAAA;;;;iBCjU9B,UAAA,CAAW,MAAA;;;;AVnE3B;;;;;KWCY,iBAAA;;;;;cA0EC,aAAA,SAAsB,KAAA;EAAA,SACjB,IAAA,EAAM,iBAAA;;WAEN,MAAA;cAEJ,IAAA,EAAM,iBAAA,EAAmB,OAAA,UAAiB,MAAA;AAAA;;;;;;;;cAgB3C,eAAA,SAAwB,aAAA;EAAA,SACnB,MAAA,EADW,KAAA;cAGf,MAAA,EAFmC,KAAA;AAAA;;;;;AXpEjD;;;;;cWuFa,oBAAA,SAA6B,KAAA;EAAA,SACxB,UAAA,EADgB,SAAA;cAGpB,UAAA,EAF2C,SAAA;AAAA"}
package/dist/index.js CHANGED
@@ -320,6 +320,12 @@ const OP_TABLE = [
320
320
  label: "in",
321
321
  operands: "variadic"
322
322
  },
323
+ {
324
+ key: "EQ_CTX",
325
+ code: 8,
326
+ label: "== ctx",
327
+ operands: "single"
328
+ },
323
329
  {
324
330
  key: "BITMASK_ALL",
325
331
  code: 16,
@@ -1289,6 +1295,9 @@ function decodePolicy(blob) {
1289
1295
  const wordCount = dataLengthValue / 32;
1290
1296
  for (let word = 1; word < wordCount; word++) if (compareBytes(data.subarray(dataStart + (word - 1) * 32, dataStart + word * 32), data.subarray(dataStart + word * 32, dataStart + (word + 1) * 32)) >= 0) throw new CallciumError("UNSORTED_IN_SET", "IN operands must be strictly ascending", ruleOffset);
1291
1297
  }
1298
+ if (opBase === Op.EQ_CTX) {
1299
+ if (toBigInt(data, dataStart) > BigInt(MAX_CONTEXT_PROPERTY_ID)) throw new CallciumError("UNKNOWN_CONTEXT_PROPERTY", "EQ_CTX operand references an undefined context property", ruleOffset);
1300
+ }
1292
1301
  if (depthValue === 0) throw new CallciumError("EMPTY_PATH", "Rule path must have at least one step", ruleOffset);
1293
1302
  if (depthValue > Limits.MAX_PATH_DEPTH) throw new CallciumError("PATH_TOO_DEEP", `Path depth ${depthValue} exceeds maximum ${Limits.MAX_PATH_DEPTH}`, ruleOffset);
1294
1303
  if (scopeValue === Scope.CONTEXT) {
@@ -1557,6 +1566,18 @@ function hintMismatch(groupIndex, constraintIndex) {
1557
1566
  message: "Hint does not match the path compiled against the descriptor"
1558
1567
  };
1559
1568
  }
1569
+ function contextTypeMismatch(groupIndex, constraintIndex, contextId, typeCode) {
1570
+ return {
1571
+ severity: "error",
1572
+ category: "typeMismatch",
1573
+ groupIndex,
1574
+ constraintIndex,
1575
+ code: "CONTEXT_TYPE_MISMATCH",
1576
+ value1: contextId,
1577
+ value2: typeCode,
1578
+ message: "Context property type does not match the target type"
1579
+ };
1580
+ }
1560
1581
  function nonCanonicalOperand(groupIndex, constraintIndex, operand, canonical) {
1561
1582
  return {
1562
1583
  severity: "error",
@@ -2006,6 +2027,10 @@ function getIncompat(opBase, typeInfo) {
2006
2027
  code: "IN_ON_BOOL",
2007
2028
  message: "IN operator used on boolean type"
2008
2029
  };
2030
+ if (opBase === Op.EQ_CTX && typeCode !== TypeCode.ADDRESS && !(typeCode >= TypeCode.UINT_MIN && typeCode <= TypeCode.UINT_MAX)) return {
2031
+ code: "CONTEXT_TYPE_MISMATCH",
2032
+ message: "Context reference operator used on incompatible type"
2033
+ };
2009
2034
  return null;
2010
2035
  }
2011
2036
  if (isLengthOp(opBase)) {
@@ -2334,7 +2359,11 @@ function validateConstraint(ctx, constraint, groupIndex, constraintIndex, issues
2334
2359
  issues.push(fromOpRule(incompat.code, incompat.message, groupIndex, constraintIndex, bigintToHex(BigInt(opCode))));
2335
2360
  continue;
2336
2361
  }
2337
- if (isValueOp(base)) {
2362
+ if (base === Op.EQ_CTX) {
2363
+ const ctxOperand = readValue(opHex);
2364
+ if (ctxOperand > BigInt(MAX_CONTEXT_PROPERTY_ID)) issues.push(unknownContextProperty(groupIndex, constraintIndex, bigintToHex(ctxOperand), bigintToHex(BigInt(MAX_CONTEXT_PROPERTY_ID))));
2365
+ else if (lookupContextProperty(Number(ctxOperand)).typeCode === TypeCode.ADDRESS !== (ctx.typeInfo.typeCode === TypeCode.ADDRESS)) issues.push(contextTypeMismatch(groupIndex, constraintIndex, bigintToHex(ctxOperand), bigintToHex(BigInt(ctx.typeInfo.typeCode))));
2366
+ } else if (isValueOp(base)) {
2338
2367
  const typeCode = ctx.typeInfo.typeCode;
2339
2368
  if (isLeftAligned(typeCode)) {
2340
2369
  const nonCanonical = findNonCanonicalWord(opHex, typeCode);
@@ -2628,6 +2657,10 @@ function rangeOp(opCode, min, max) {
2628
2657
  buffer.set(encodeWord(max), 33);
2629
2658
  return bytesToHex(buffer);
2630
2659
  }
2660
+ function checkContextPropertyId(contextPropertyId) {
2661
+ if (!Number.isInteger(contextPropertyId) || contextPropertyId < 0 || contextPropertyId > MAX_CONTEXT_PROPERTY_ID) throw new CallciumError("UNKNOWN_CONTEXT_PROPERTY", `Unknown context property ID ${contextPropertyId}`);
2662
+ return contextPropertyId;
2663
+ }
2631
2664
  const MAX_SET_MEMBERS = Limits.MAX_SET_MEMBERS;
2632
2665
  function setOp(opCode, values) {
2633
2666
  const bigs = values.map((v) => {
@@ -2670,6 +2703,12 @@ var ConstraintBuilder = class {
2670
2703
  neq(value) {
2671
2704
  return this.push(singleOp(Op.EQ | Op.NOT, value));
2672
2705
  }
2706
+ eqCtx(contextPropertyId) {
2707
+ return this.push(singleOp(Op.EQ_CTX, checkContextPropertyId(contextPropertyId)));
2708
+ }
2709
+ neqCtx(contextPropertyId) {
2710
+ return this.push(singleOp(Op.EQ_CTX | Op.NOT, checkContextPropertyId(contextPropertyId)));
2711
+ }
2673
2712
  gt(bound) {
2674
2713
  return this.push(singleOp(Op.GT, bound));
2675
2714
  }
@@ -2833,7 +2872,13 @@ function evaluateRule(rule, policyBytes, callDataBytes, baseOffset, groupIndex,
2833
2872
  const operandData = fieldBytes(policyBytes, rule.data);
2834
2873
  if (rule.scope.value === Scope.CONTEXT) return evaluateContextRule(fieldBytes(policyBytes, rule.path), opCode, operandData, groupIndex, ruleIndex, rule.path.value, context);
2835
2874
  if (rule.hint === void 0) throw new CallciumError("MALFORMED_HINT", "Calldata rule carries no hint block");
2836
- return evaluateCalldataRule(fieldBytes(policyBytes, rule.hint), callDataBytes, baseOffset, opCode, operandData, groupIndex, ruleIndex, rule.path.value);
2875
+ return evaluateCalldataRule(fieldBytes(policyBytes, rule.hint), callDataBytes, baseOffset, opCode, operandData, groupIndex, ruleIndex, rule.path.value, context);
2876
+ }
2877
+ function resolveContextOperand(operandData, context) {
2878
+ const propInfo = lookupContextProperty(Number(toBigInt(operandData, 0)));
2879
+ const value = context?.[propInfo.contextKey];
2880
+ if (value === void 0) return { ctxTypeCode: propInfo.typeCode };
2881
+ return typeof value === "string" ? addressToBigInt(value) : value;
2837
2882
  }
2838
2883
  function readTargetBlock(hint, targetOffset) {
2839
2884
  return {
@@ -2874,7 +2919,7 @@ function chainResolve(hint, callData, base, hopsOffset, hopCount) {
2874
2919
  }
2875
2920
  return base;
2876
2921
  }
2877
- function evalTarget(callData, target, block, opCode, operandData) {
2922
+ function evalTarget(callData, target, block, opCode, operandData, context) {
2878
2923
  const typeCode = block.typeCode;
2879
2924
  if (isLengthValidType(typeCode)) {
2880
2925
  if (!isLengthOp(opCode)) throw new CallciumError("OPERATOR_TARGET_MISMATCH", "Value operator on a target without a scalar word.");
@@ -2896,6 +2941,18 @@ function evalTarget(callData, target, block, opCode, operandData) {
2896
2941
  error: "NON_CANONICAL_VALUE",
2897
2942
  value
2898
2943
  };
2944
+ if ((opCode & ~Op.NOT) === Op.EQ_CTX) {
2945
+ const operand = resolveContextOperand(operandData, context);
2946
+ if (typeof operand !== "bigint") return {
2947
+ error: "MISSING_CONTEXT",
2948
+ ctxTypeCode: operand.ctxTypeCode
2949
+ };
2950
+ return {
2951
+ passed: value === operand !== ((opCode & Op.NOT) !== 0),
2952
+ value,
2953
+ ctxOperand: operand
2954
+ };
2955
+ }
2899
2956
  return {
2900
2957
  passed: applyOperator(opCode, value, 32, operandData, typeCode),
2901
2958
  value
@@ -2916,6 +2973,16 @@ function navigationViolation(frame, code, elementIndex) {
2916
2973
  }
2917
2974
  function targetViolation(frame, result, elementIndex) {
2918
2975
  if ("error" in result) {
2976
+ if (result.error === "MISSING_CONTEXT") return {
2977
+ group: frame.group,
2978
+ rule: frame.rule,
2979
+ code: result.error,
2980
+ scope: Scope.CALLDATA,
2981
+ path: frame.path,
2982
+ opCode: frame.opCode,
2983
+ operandData: bytesToHex(frame.operandData),
2984
+ typeCode: result.ctxTypeCode
2985
+ };
2919
2986
  if (result.error === "NON_CANONICAL_VALUE") return {
2920
2987
  group: frame.group,
2921
2988
  rule: frame.rule,
@@ -2941,15 +3008,16 @@ function targetViolation(frame, result, elementIndex) {
2941
3008
  operandData: bytesToHex(frame.operandData),
2942
3009
  typeCode: frame.typeCode,
2943
3010
  resolvedValue: bigintToHex(result.value),
3011
+ ...result.ctxOperand !== void 0 && { resolvedOperand: bigintToHex(result.ctxOperand) },
2944
3012
  ...elementIndex !== void 0 && { elementIndex }
2945
3013
  };
2946
3014
  }
2947
- function evaluateCalldataRule(hint, callDataBytes, baseOffset, opCode, operandData, groupIndex, ruleIndex, pathHex) {
3015
+ function evaluateCalldataRule(hint, callDataBytes, baseOffset, opCode, operandData, groupIndex, ruleIndex, pathHex, context) {
2948
3016
  const header = hint[0];
2949
3017
  const hopCount = header & PolicyFormat.HINT_HOP_COUNT_MASK;
2950
3018
  const kind = header >> PolicyFormat.HINT_KIND_SHIFT;
2951
3019
  const hopsOffset = PolicyFormat.HINT_HEADER_SIZE;
2952
- if (kind !== PolicyFormat.HINT_KIND_NONE) return evaluateQuantified(hint, callDataBytes, baseOffset, kind, hopsOffset, hopCount, opCode, operandData, groupIndex, ruleIndex, pathHex);
3020
+ if (kind !== PolicyFormat.HINT_KIND_NONE) return evaluateQuantified(hint, callDataBytes, baseOffset, kind, hopsOffset, hopCount, opCode, operandData, groupIndex, ruleIndex, pathHex, context);
2953
3021
  const block = readTargetBlock(hint, hopsOffset + hopCount * PolicyFormat.HINT_HOP_SIZE);
2954
3022
  const frame = {
2955
3023
  group: groupIndex,
@@ -2961,9 +3029,9 @@ function evaluateCalldataRule(hint, callDataBytes, baseOffset, opCode, operandDa
2961
3029
  };
2962
3030
  const base = chainResolve(hint, callDataBytes, baseOffset, hopsOffset, hopCount);
2963
3031
  if (typeof base !== "number") return navigationViolation(frame, base.code);
2964
- return targetViolation(frame, evalTarget(callDataBytes, base + block.targetDelta, block, opCode, operandData));
3032
+ return targetViolation(frame, evalTarget(callDataBytes, base + block.targetDelta, block, opCode, operandData, context));
2965
3033
  }
2966
- function evaluateQuantified(hint, callDataBytes, baseOffset, kind, hopsOffset, hopCount, opCode, operandData, groupIndex, ruleIndex, pathHex) {
3034
+ function evaluateQuantified(hint, callDataBytes, baseOffset, kind, hopsOffset, hopCount, opCode, operandData, groupIndex, ruleIndex, pathHex, context) {
2967
3035
  const frameOffset = hopsOffset + hopCount * PolicyFormat.HINT_HOP_SIZE;
2968
3036
  const suffixHeaderOffset = frameOffset + PolicyFormat.HINT_FRAME_PREFIX_SIZE;
2969
3037
  const suffixHopCount = hint[suffixHeaderOffset] & PolicyFormat.HINT_HOP_COUNT_MASK;
@@ -3009,6 +3077,7 @@ function evaluateQuantified(hint, callDataBytes, baseOffset, kind, hopsOffset, h
3009
3077
  const meta = readU16(hint, frameOffset + PolicyFormat.HINT_FRAME_META_OFFSET);
3010
3078
  const elemStride = (meta & PolicyFormat.HINT_META_STRIDE_MASK) * 32;
3011
3079
  const elemIsDynamic = (meta & PolicyFormat.HINT_META_ELEM_DYNAMIC) !== 0;
3080
+ let ctxOperand;
3012
3081
  for (let elemIndex = 0; elemIndex < count; elemIndex++) {
3013
3082
  const slot = elems + elemIndex * elemStride;
3014
3083
  let elem = slot;
@@ -3023,11 +3092,12 @@ function evaluateQuantified(hint, callDataBytes, baseOffset, kind, hopsOffset, h
3023
3092
  if (typeof chainedElem !== "number") return navigationViolation(frame, chainedElem.code, elemIndex);
3024
3093
  base = chainedElem;
3025
3094
  }
3026
- const applied = evalTarget(callDataBytes, base + block.targetDelta, block, opCode, operandData);
3095
+ const applied = evalTarget(callDataBytes, base + block.targetDelta, block, opCode, operandData, context);
3027
3096
  if ("error" in applied) return targetViolation(frame, applied, elemIndex);
3028
3097
  if (applied.passed) {
3029
3098
  if (!isUniversal) return null;
3030
3099
  } else if (isUniversal) return targetViolation(frame, applied, elemIndex);
3100
+ ctxOperand = applied.ctxOperand;
3031
3101
  }
3032
3102
  if (isUniversal) return null;
3033
3103
  return {
@@ -3038,7 +3108,8 @@ function evaluateQuantified(hint, callDataBytes, baseOffset, kind, hopsOffset, h
3038
3108
  path: pathHex,
3039
3109
  opCode,
3040
3110
  operandData: bytesToHex(operandData),
3041
- typeCode: block.typeCode
3111
+ typeCode: block.typeCode,
3112
+ ...ctxOperand !== void 0 && { resolvedOperand: bigintToHex(ctxOperand) }
3042
3113
  };
3043
3114
  }
3044
3115
  function evaluateContextRule(pathBytes, opCode, operandData, groupIndex, ruleIndex, pathHex, context) {
@@ -3057,7 +3128,24 @@ function evaluateContextRule(pathBytes, opCode, operandData, groupIndex, ruleInd
3057
3128
  let value;
3058
3129
  if (typeof contextValue === "string") value = addressToBigInt(contextValue);
3059
3130
  else value = contextValue;
3060
- if (!applyOperator(opCode, value, 32, operandData, propInfo.typeCode)) return {
3131
+ let result;
3132
+ let ctxOperand;
3133
+ if ((opCode & ~Op.NOT) === Op.EQ_CTX) {
3134
+ const operand = resolveContextOperand(operandData, context);
3135
+ if (typeof operand !== "bigint") return {
3136
+ group: groupIndex,
3137
+ rule: ruleIndex,
3138
+ code: "MISSING_CONTEXT",
3139
+ scope: Scope.CONTEXT,
3140
+ path: pathHex,
3141
+ opCode,
3142
+ operandData: bytesToHex(operandData),
3143
+ typeCode: operand.ctxTypeCode
3144
+ };
3145
+ result = value === operand !== ((opCode & Op.NOT) !== 0);
3146
+ ctxOperand = operand;
3147
+ } else result = applyOperator(opCode, value, 32, operandData, propInfo.typeCode);
3148
+ if (!result) return {
3061
3149
  group: groupIndex,
3062
3150
  rule: ruleIndex,
3063
3151
  code: "VALUE_MISMATCH",
@@ -3066,7 +3154,8 @@ function evaluateContextRule(pathBytes, opCode, operandData, groupIndex, ruleInd
3066
3154
  opCode,
3067
3155
  operandData: bytesToHex(operandData),
3068
3156
  typeCode: propInfo.typeCode,
3069
- resolvedValue: bigintToHex(value)
3157
+ resolvedValue: bigintToHex(value),
3158
+ ...ctxOperand !== void 0 && { resolvedOperand: bigintToHex(ctxOperand) }
3070
3159
  };
3071
3160
  return null;
3072
3161
  }
@@ -3075,6 +3164,6 @@ const PolicyEnforcer = {
3075
3164
  enforce
3076
3165
  };
3077
3166
  //#endregion
3078
- export { CallciumError, ContextProperty, Descriptor, DescriptorCoder, Limits, Op, PolicyBuilder, PolicyCoder, PolicyEnforcer, PolicyFormat, PolicyValidator, PolicyViolationError, Quantifier, Scope, TypeCode, ValidationError, arg, baseFee, blockNumber, blockTimestamp, bytesToHex, chainId, gasPrice, hexToBytes, isLengthOp, isOpAllowed, isQuantifier, lookupContextProperty, lookupOp, lookupQuantifier, lookupScope, lookupTypeCode, msgSender, msgValue, parsePathSteps, toAddress, txOrigin };
3167
+ export { CallciumError, ContextProperty, Descriptor, DescriptorCoder, Limits, MAX_CONTEXT_PROPERTY_ID, Op, PolicyBuilder, PolicyCoder, PolicyEnforcer, PolicyFormat, PolicyValidator, PolicyViolationError, Quantifier, Scope, TypeCode, ValidationError, arg, baseFee, blockNumber, blockTimestamp, bytesToHex, chainId, gasPrice, hexToBytes, isLengthOp, isOpAllowed, isQuantifier, lookupContextProperty, lookupOp, lookupQuantifier, lookupScope, lookupTypeCode, msgSender, msgValue, parsePathSteps, toAddress, txOrigin };
3079
3168
 
3080
3169
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["DF","inspect","PF","DF","DF","PF","DF","ValidationIssue.eqNeqContradiction","ValidationIssue.vacuousGte","ValidationIssue.vacuousLte","ValidationIssue.outOfPhysicalBounds","ValidationIssue.impossibleGt","ValidationIssue.impossibleLt","ValidationIssue.conflictingEquality","ValidationIssue.dominatedBound","ValidationIssue.boundsExcludeEquality","ValidationIssue.redundantBound","ValidationIssue.impossibleRange","ValidationIssue.bitmaskContradiction","ValidationIssue.redundantBitmask","ValidationIssue.bitmaskAnyImpossible","ValidationIssue.setFullyExcluded","ValidationIssue.setPartiallyExcluded","ValidationIssue.setExcludesEquality","ValidationIssue.setReduction","ValidationIssue.emptySetIntersection","ValidationIssue.setRedundancy","ValidationIssue.duplicateConstraint","ValidationIssue.fusibleRange","ValidationIssue.fromOpRule","ValidationIssue.negationUnderAny","ValidationIssue.nonCanonicalOperand","ValidationIssue.vacuousNegatedRange","ValidationIssue.unsortedInSet","ValidationIssue.pathDepthExceeded","ValidationIssue.unnavigablePath","ValidationIssue.nestedQuantifier","ValidationIssue.quantifierOverStaticLimit","ValidationIssue.unknownContextProperty","ValidationIssue.hintMismatch","ValidationIssue.emptyGroup","PF"],"sources":["../src/errors.ts","../src/bytes.ts","../src/constants.ts","../src/descriptor.ts","../src/type-desc.ts","../src/descriptor-coder.ts","../src/operators.ts","../src/policy-coder.ts","../src/validation-issue.ts","../src/policy-validator.ts","../src/signature.ts","../src/policy-builder.ts","../src/constraint.ts","../src/calldata-reader.ts","../src/policy-enforcer.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["DF","inspect","PF","DF","DF","PF","DF","ValidationIssue.eqNeqContradiction","ValidationIssue.vacuousGte","ValidationIssue.vacuousLte","ValidationIssue.outOfPhysicalBounds","ValidationIssue.impossibleGt","ValidationIssue.impossibleLt","ValidationIssue.conflictingEquality","ValidationIssue.dominatedBound","ValidationIssue.boundsExcludeEquality","ValidationIssue.redundantBound","ValidationIssue.impossibleRange","ValidationIssue.bitmaskContradiction","ValidationIssue.redundantBitmask","ValidationIssue.bitmaskAnyImpossible","ValidationIssue.setFullyExcluded","ValidationIssue.setPartiallyExcluded","ValidationIssue.setExcludesEquality","ValidationIssue.setReduction","ValidationIssue.emptySetIntersection","ValidationIssue.setRedundancy","ValidationIssue.duplicateConstraint","ValidationIssue.fusibleRange","ValidationIssue.fromOpRule","ValidationIssue.negationUnderAny","ValidationIssue.unknownContextProperty","ValidationIssue.contextTypeMismatch","ValidationIssue.nonCanonicalOperand","ValidationIssue.vacuousNegatedRange","ValidationIssue.unsortedInSet","ValidationIssue.pathDepthExceeded","ValidationIssue.unnavigablePath","ValidationIssue.nestedQuantifier","ValidationIssue.quantifierOverStaticLimit","ValidationIssue.hintMismatch","ValidationIssue.emptyGroup","PF"],"sources":["../src/errors.ts","../src/bytes.ts","../src/constants.ts","../src/descriptor.ts","../src/type-desc.ts","../src/descriptor-coder.ts","../src/operators.ts","../src/policy-coder.ts","../src/validation-issue.ts","../src/policy-validator.ts","../src/signature.ts","../src/policy-builder.ts","../src/constraint.ts","../src/calldata-reader.ts","../src/policy-enforcer.ts"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@callcium/sdk",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "TypeScript implementation of the Callcium policy engine",
5
5
  "keywords": [
6
6
  "abi",
package/src/constants.ts CHANGED
@@ -226,6 +226,7 @@ const OP_TABLE = [
226
226
  { key: "LTE", code: 0x05, label: "<=", operands: "single" },
227
227
  { key: "BETWEEN", code: 0x06, label: "between", operands: "range" },
228
228
  { key: "IN", code: 0x07, label: "in", operands: "variadic" },
229
+ { key: "EQ_CTX", code: 0x08, label: "== ctx", operands: "single" },
229
230
  { key: "BITMASK_ALL", code: 0x10, label: "bitmask all", operands: "single" },
230
231
  { key: "BITMASK_ANY", code: 0x11, label: "bitmask any", operands: "single" },
231
232
  { key: "BITMASK_NONE", code: 0x12, label: "bitmask none", operands: "single" },
package/src/constraint.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { bytesToHex, toAddress, writeBE16 } from "./bytes";
2
- import { Op, Scope, ContextProperty, Limits } from "./constants";
2
+ import { Op, Scope, ContextProperty, Limits, MAX_CONTEXT_PROPERTY_ID } from "./constants";
3
3
  import { CallciumError } from "./errors";
4
4
 
5
5
  import type { Hex, Constraint } from "./types";
@@ -63,6 +63,14 @@ function rangeOp(opCode: number, min: bigint, max: bigint): Hex {
63
63
  return bytesToHex(buffer);
64
64
  }
65
65
 
66
+ /** Require a defined context property ID and return it. */
67
+ function checkContextPropertyId(contextPropertyId: number): number {
68
+ if (!Number.isInteger(contextPropertyId) || contextPropertyId < 0 || contextPropertyId > MAX_CONTEXT_PROPERTY_ID) {
69
+ throw new CallciumError("UNKNOWN_CONTEXT_PROPERTY", `Unknown context property ID ${contextPropertyId}`);
70
+ }
71
+ return contextPropertyId;
72
+ }
73
+
66
74
  /** Largest member count whose 32-byte words still fit a rule's data length field. */
67
75
  export const MAX_SET_MEMBERS = Limits.MAX_SET_MEMBERS;
68
76
 
@@ -153,6 +161,16 @@ export class ConstraintBuilder implements Constraint {
153
161
  return this.push(singleOp(Op.EQ | Op.NOT, value));
154
162
  }
155
163
 
164
+ /** Assert the value equals the context property `contextPropertyId`. */
165
+ eqCtx(contextPropertyId: number): this {
166
+ return this.push(singleOp(Op.EQ_CTX, checkContextPropertyId(contextPropertyId)));
167
+ }
168
+
169
+ /** Assert the value does not equal the context property `contextPropertyId`. */
170
+ neqCtx(contextPropertyId: number): this {
171
+ return this.push(singleOp(Op.EQ_CTX | Op.NOT, checkContextPropertyId(contextPropertyId)));
172
+ }
173
+
156
174
  /** Assert the value is greater than `bound`. */
157
175
  gt(bound: bigint | number): this {
158
176
  return this.push(singleOp(Op.GT, bound));
package/src/index.ts CHANGED
@@ -45,6 +45,7 @@ export {
45
45
  Scope,
46
46
  ContextProperty,
47
47
  Limits,
48
+ MAX_CONTEXT_PROPERTY_ID,
48
49
  lookupOp,
49
50
  lookupScope,
50
51
  lookupContextProperty,
@@ -15,7 +15,7 @@ import {
15
15
  import { Descriptor } from "./descriptor";
16
16
  import { decodeDescriptor } from "./descriptor-coder";
17
17
  import { CallciumError } from "./errors";
18
- import { isLengthOp, isLengthValidType } from "./operators";
18
+ import { isLengthOp, isLengthValidType, toBigInt } from "./operators";
19
19
 
20
20
  import type {
21
21
  Constraint,
@@ -321,6 +321,17 @@ export function decodePolicy(blob: Hex): { policy: DecodedPolicy; data: Uint8Arr
321
321
  }
322
322
  }
323
323
 
324
+ // An EQ_CTX operand word must be a defined context property ID.
325
+ if (opBase === Op.EQ_CTX) {
326
+ if (toBigInt(data, dataStart) > BigInt(MAX_CONTEXT_PROPERTY_ID)) {
327
+ throw new CallciumError(
328
+ "UNKNOWN_CONTEXT_PROPERTY",
329
+ "EQ_CTX operand references an undefined context property",
330
+ ruleOffset,
331
+ );
332
+ }
333
+ }
334
+
324
335
  // The path must be non-empty and within the depth cap.
325
336
  if (depthValue === 0) {
326
337
  throw new CallciumError("EMPTY_PATH", "Rule path must have at least one step", ruleOffset);
@@ -5,6 +5,7 @@ import {
5
5
  Scope,
6
6
  MAX_CONTEXT_PROPERTY_ID,
7
7
  Limits,
8
+ Op,
8
9
  TypeCode,
9
10
  classifyTypeCode,
10
11
  lookupContextProperty,
@@ -172,9 +173,21 @@ function evaluateRule(
172
173
  groupIndex,
173
174
  ruleIndex,
174
175
  rule.path.value,
176
+ context,
175
177
  );
176
178
  }
177
179
 
180
+ /**
181
+ * Resolve an EQ_CTX operand word to the referenced context property's value as a raw word.
182
+ * Returns the missing property's type code when the context does not supply it.
183
+ */
184
+ function resolveContextOperand(operandData: Uint8Array, context?: Context): bigint | { ctxTypeCode: number } {
185
+ const propInfo = lookupContextProperty(Number(toBigInt(operandData, 0)));
186
+ const value = context?.[propInfo.contextKey];
187
+ if (value === undefined) return { ctxTypeCode: propInfo.typeCode };
188
+ return typeof value === "string" ? addressToBigInt(value) : value;
189
+ }
190
+
178
191
  ///////////////////////////////////////////////////////////////////////////
179
192
  // Hint chain resolution
180
193
  ///////////////////////////////////////////////////////////////////////////
@@ -247,9 +260,10 @@ function chainResolve(
247
260
  ///////////////////////////////////////////////////////////////////////////
248
261
 
249
262
  type TargetResult =
250
- | { passed: boolean; value: bigint }
263
+ | { passed: boolean; value: bigint; ctxOperand?: bigint }
251
264
  | { error: NavigationViolationCode }
252
- | { error: "NON_CANONICAL_VALUE"; value: bigint };
265
+ | { error: "NON_CANONICAL_VALUE"; value: bigint }
266
+ | { error: "MISSING_CONTEXT"; ctxTypeCode: number };
253
267
 
254
268
  /**
255
269
  * Load the value at a resolved target offset and apply the operator.
@@ -264,6 +278,7 @@ function evalTarget(
264
278
  block: TargetBlock,
265
279
  opCode: number,
266
280
  operandData: Uint8Array,
281
+ context?: Context,
267
282
  ): TargetResult {
268
283
  const typeCode = block.typeCode;
269
284
 
@@ -295,6 +310,13 @@ function evalTarget(
295
310
  return { error: "NON_CANONICAL_VALUE", value };
296
311
  }
297
312
 
313
+ if ((opCode & ~Op.NOT) === Op.EQ_CTX) {
314
+ const operand = resolveContextOperand(operandData, context);
315
+ if (typeof operand !== "bigint") return { error: "MISSING_CONTEXT", ctxTypeCode: operand.ctxTypeCode };
316
+ const passed = (value === operand) !== ((opCode & Op.NOT) !== 0);
317
+ return { passed, value, ctxOperand: operand };
318
+ }
319
+
298
320
  const passed = applyOperator(opCode, value, 32, operandData, typeCode);
299
321
  return { passed, value };
300
322
  }
@@ -331,6 +353,18 @@ function navigationViolation(frame: RuleFrame, code: NavigationViolationCode, el
331
353
  /** Convert a failed or erroring target result into its violation. Passing results map to null. */
332
354
  function targetViolation(frame: RuleFrame, result: TargetResult, elementIndex?: number): Violation | null {
333
355
  if ("error" in result) {
356
+ if (result.error === "MISSING_CONTEXT") {
357
+ return {
358
+ group: frame.group,
359
+ rule: frame.rule,
360
+ code: result.error,
361
+ scope: Scope.CALLDATA,
362
+ path: frame.path,
363
+ opCode: frame.opCode,
364
+ operandData: bytesToHex(frame.operandData),
365
+ typeCode: result.ctxTypeCode,
366
+ };
367
+ }
334
368
  if (result.error === "NON_CANONICAL_VALUE") {
335
369
  return {
336
370
  group: frame.group,
@@ -359,6 +393,7 @@ function targetViolation(frame: RuleFrame, result: TargetResult, elementIndex?:
359
393
  operandData: bytesToHex(frame.operandData),
360
394
  typeCode: frame.typeCode,
361
395
  resolvedValue: bigintToHex(result.value),
396
+ ...(result.ctxOperand !== undefined && { resolvedOperand: bigintToHex(result.ctxOperand) }),
362
397
  ...(elementIndex !== undefined && { elementIndex }),
363
398
  };
364
399
  }
@@ -373,6 +408,7 @@ function evaluateCalldataRule(
373
408
  groupIndex: number,
374
409
  ruleIndex: number,
375
410
  pathHex: Hex,
411
+ context?: Context,
376
412
  ): Violation | null {
377
413
  const header = hint[0]!;
378
414
  const hopCount = header & PF.HINT_HOP_COUNT_MASK;
@@ -392,6 +428,7 @@ function evaluateCalldataRule(
392
428
  groupIndex,
393
429
  ruleIndex,
394
430
  pathHex,
431
+ context,
395
432
  );
396
433
  }
397
434
 
@@ -408,7 +445,10 @@ function evaluateCalldataRule(
408
445
  const base = chainResolve(hint, callDataBytes, baseOffset, hopsOffset, hopCount);
409
446
  if (typeof base !== "number") return navigationViolation(frame, base.code);
410
447
 
411
- return targetViolation(frame, evalTarget(callDataBytes, base + block.targetDelta, block, opCode, operandData));
448
+ return targetViolation(
449
+ frame,
450
+ evalTarget(callDataBytes, base + block.targetDelta, block, opCode, operandData, context),
451
+ );
412
452
  }
413
453
 
414
454
  ///////////////////////////////////////////////////////////////////////////
@@ -428,6 +468,7 @@ function evaluateQuantified(
428
468
  groupIndex: number,
429
469
  ruleIndex: number,
430
470
  pathHex: Hex,
471
+ context?: Context,
431
472
  ): Violation | null {
432
473
  const frameOffset = hopsOffset + hopCount * PF.HINT_HOP_SIZE;
433
474
  const suffixHeaderOffset = frameOffset + PF.HINT_FRAME_PREFIX_SIZE;
@@ -486,6 +527,8 @@ function evaluateQuantified(
486
527
  const elemStride = (meta & PF.HINT_META_STRIDE_MASK) * 32;
487
528
  const elemIsDynamic = (meta & PF.HINT_META_ELEM_DYNAMIC) !== 0;
488
529
 
530
+ // A reference operand resolves identically for every element; any element's result carries it.
531
+ let ctxOperand: bigint | undefined;
489
532
  for (let elemIndex = 0; elemIndex < count; elemIndex++) {
490
533
  const slot = elems + elemIndex * elemStride;
491
534
  let elem: number = slot;
@@ -504,10 +547,11 @@ function evaluateQuantified(
504
547
  base = chainedElem;
505
548
  }
506
549
 
507
- const applied = evalTarget(callDataBytes, base + block.targetDelta, block, opCode, operandData);
550
+ const applied = evalTarget(callDataBytes, base + block.targetDelta, block, opCode, operandData, context);
508
551
  if ("error" in applied) {
509
- // An abort-effect violation ends evaluation whatever the quantifier; a later element cannot
510
- // rescue calldata the enforcer cannot read (spec §9.3).
552
+ // Error results end the rule whatever the quantifier: a later element cannot rescue
553
+ // calldata the enforcer cannot read (abort effects, spec §9.3), and a missing context
554
+ // property is missing for every element alike (group-local).
511
555
  return targetViolation(frame, applied, elemIndex);
512
556
  }
513
557
 
@@ -517,6 +561,7 @@ function evaluateQuantified(
517
561
  } else if (isUniversal) {
518
562
  return targetViolation(frame, applied, elemIndex);
519
563
  }
564
+ ctxOperand = applied.ctxOperand;
520
565
  }
521
566
 
522
567
  if (isUniversal) return null;
@@ -530,6 +575,7 @@ function evaluateQuantified(
530
575
  opCode,
531
576
  operandData: bytesToHex(operandData),
532
577
  typeCode: block.typeCode,
578
+ ...(ctxOperand !== undefined && { resolvedOperand: bigintToHex(ctxOperand) }),
533
579
  };
534
580
  }
535
581
 
@@ -577,7 +623,27 @@ function evaluateContextRule(
577
623
  value = contextValue;
578
624
  }
579
625
 
580
- const result = applyOperator(opCode, value, 32, operandData, propInfo.typeCode);
626
+ let result: boolean;
627
+ let ctxOperand: bigint | undefined;
628
+ if ((opCode & ~Op.NOT) === Op.EQ_CTX) {
629
+ const operand = resolveContextOperand(operandData, context);
630
+ if (typeof operand !== "bigint") {
631
+ return {
632
+ group: groupIndex,
633
+ rule: ruleIndex,
634
+ code: "MISSING_CONTEXT",
635
+ scope: Scope.CONTEXT,
636
+ path: pathHex,
637
+ opCode,
638
+ operandData: bytesToHex(operandData),
639
+ typeCode: operand.ctxTypeCode,
640
+ };
641
+ }
642
+ result = (value === operand) !== ((opCode & Op.NOT) !== 0);
643
+ ctxOperand = operand;
644
+ } else {
645
+ result = applyOperator(opCode, value, 32, operandData, propInfo.typeCode);
646
+ }
581
647
 
582
648
  if (!result) {
583
649
  return {
@@ -590,6 +656,7 @@ function evaluateContextRule(
590
656
  operandData: bytesToHex(operandData),
591
657
  typeCode: propInfo.typeCode,
592
658
  resolvedValue: bigintToHex(value),
659
+ ...(ctxOperand !== undefined && { resolvedOperand: bigintToHex(ctxOperand) }),
593
660
  };
594
661
  }
595
662
 
@@ -139,7 +139,7 @@ function getDomainLimits(typeCode: number): { min: bigint; max: bigint } {
139
139
  // Operator classification
140
140
  ///////////////////////////////////////////////////////////////////////////
141
141
 
142
- /** True for EQ, GT, LT, GTE, LTE, BETWEEN, IN, BITMASK_*. */
142
+ /** True for EQ, GT, LT, GTE, LTE, BETWEEN, IN, EQ_CTX, BITMASK_*. */
143
143
  function isValueOp(opBase: number): boolean {
144
144
  return opBase <= Op.BITMASK_NONE;
145
145
  }
@@ -178,6 +178,14 @@ function getIncompat(opBase: number, typeInfo: TypeInfo): { code: string; messag
178
178
  if (opBase === Op.IN && typeCode === TypeCode.BOOL) {
179
179
  return { code: "IN_ON_BOOL", message: "IN operator used on boolean type" };
180
180
  }
181
+ // Context properties are addresses or uint256, so only those target classes can match.
182
+ if (
183
+ opBase === Op.EQ_CTX &&
184
+ typeCode !== TypeCode.ADDRESS &&
185
+ !(typeCode >= TypeCode.UINT_MIN && typeCode <= TypeCode.UINT_MAX)
186
+ ) {
187
+ return { code: "CONTEXT_TYPE_MISMATCH", message: "Context reference operator used on incompatible type" };
188
+ }
181
189
  return null;
182
190
  }
183
191
  if (isLengthOp(opBase)) {
@@ -890,7 +898,35 @@ function validateConstraint(
890
898
  continue;
891
899
  }
892
900
 
893
- if (isValueOp(base)) {
901
+ if (base === Op.EQ_CTX) {
902
+ // The operand names a context property, not a value: nothing to fold into a domain.
903
+ const ctxOperand = readValue(opHex);
904
+ if (ctxOperand > BigInt(MAX_CONTEXT_PROPERTY_ID)) {
905
+ issues.push(
906
+ ValidationIssue.unknownContextProperty(
907
+ groupIndex,
908
+ constraintIndex,
909
+ bigintToHex(ctxOperand),
910
+ bigintToHex(BigInt(MAX_CONTEXT_PROPERTY_ID)),
911
+ ),
912
+ );
913
+ } else {
914
+ // Compatibility has already narrowed the target to an address or unsigned type,
915
+ // so the pairing reduces to whether both sides are addresses.
916
+ const propertyIsAddress = lookupContextProperty(Number(ctxOperand)).typeCode === TypeCode.ADDRESS;
917
+ const targetIsAddress = ctx.typeInfo.typeCode === TypeCode.ADDRESS;
918
+ if (propertyIsAddress !== targetIsAddress) {
919
+ issues.push(
920
+ ValidationIssue.contextTypeMismatch(
921
+ groupIndex,
922
+ constraintIndex,
923
+ bigintToHex(ctxOperand),
924
+ bigintToHex(BigInt(ctx.typeInfo.typeCode)),
925
+ ),
926
+ );
927
+ }
928
+ }
929
+ } else if (isValueOp(base)) {
894
930
  // A non-canonical operand can never equal a canonicalized runtime value (PC-1, spec
895
931
  // section 4.5), so the rule is unsatisfiable or vacuous; skip analyzing the garbage
896
932
  // word. Scoped to the left-aligned types: numeric, address, and bool operands are
package/src/types.ts CHANGED
@@ -52,8 +52,8 @@ export type SelectorMismatchViolation = {
52
52
  };
53
53
 
54
54
  /**
55
- * A context-scoped rule referenced a property not supplied in the execution context.
56
-
55
+ * A rule referenced a context property not supplied in the execution context — a context-scoped
56
+ * subject, or an `EQ_CTX` operand on either scope.
57
57
  */
58
58
  export type MissingContextViolation = {
59
59
  code: "MISSING_CONTEXT";
@@ -63,7 +63,9 @@ export type MissingContextViolation = {
63
63
  path: Hex;
64
64
  /** Declared type of the missing context property. */
65
65
  typeCode: number;
66
+ /** Operator code with the `Op.NOT` bit intact; absent for a context-scoped subject. */
66
67
  opCode?: number;
68
+ /** Operator payload; absent for a context-scoped subject. */
67
69
  operandData?: Hex;
68
70
  };
69
71
 
@@ -92,6 +94,11 @@ export type ValueMismatchViolation = {
92
94
  /** Type code of the failing value's leaf. */
93
95
  typeCode: number;
94
96
  resolvedValue?: Hex;
97
+ /**
98
+ * Resolved runtime value of a reference operand as a 32-byte word; present when the
99
+ * operator's operand names a reference resolved at enforcement, not a literal.
100
+ */
101
+ resolvedOperand?: Hex;
95
102
  elementIndex?: number;
96
103
  };
97
104
 
@@ -72,6 +72,20 @@ export function hintMismatch(groupIndex: number, constraintIndex: number): Issue
72
72
  };
73
73
  }
74
74
 
75
+ /** Issue for a context reference whose property cannot match the target type. */
76
+ export function contextTypeMismatch(groupIndex: number, constraintIndex: number, contextId: Hex, typeCode: Hex): Issue {
77
+ return {
78
+ severity: "error",
79
+ category: "typeMismatch",
80
+ groupIndex,
81
+ constraintIndex,
82
+ code: "CONTEXT_TYPE_MISMATCH",
83
+ value1: contextId,
84
+ value2: typeCode,
85
+ message: "Context property type does not match the target type",
86
+ };
87
+ }
88
+
75
89
  /** Issue for an operand that is not canonically encoded for the declared type. */
76
90
  export function nonCanonicalOperand(groupIndex: number, constraintIndex: number, operand: Hex, canonical: Hex): Issue {
77
91
  return {