@sig-net/midnight 0.13.0 → 0.15.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.
Files changed (31) hide show
  1. package/README.md +39 -12
  2. package/dist/ecdsa-attestation.d.ts +29 -1
  3. package/dist/ecdsa-attestation.d.ts.map +1 -1
  4. package/dist/ecdsa-attestation.js +55 -0
  5. package/dist/ecdsa-attestation.js.map +1 -1
  6. package/dist/managed/compiler/contract-info.json +12 -8
  7. package/dist/managed/compiler/contract-manifest.json +8 -8
  8. package/dist/managed/contract/index.d.ts +10 -10
  9. package/dist/managed/contract/index.js +92 -84
  10. package/dist/managed/contract/index.js.map +1 -1
  11. package/dist/signature-requests-state-reader.d.ts +6 -5
  12. package/dist/signature-requests-state-reader.d.ts.map +1 -1
  13. package/dist/signature-requests-state-reader.js +17 -16
  14. package/dist/signature-requests-state-reader.js.map +1 -1
  15. package/dist/signature-state-reading.d.ts +17 -25
  16. package/dist/signature-state-reading.d.ts.map +1 -1
  17. package/dist/signature-state-reading.js +37 -57
  18. package/dist/signature-state-reading.js.map +1 -1
  19. package/dist/signet-contract-state-reader.d.ts +24 -18
  20. package/dist/signet-contract-state-reader.d.ts.map +1 -1
  21. package/dist/signet-contract-state-reader.js +42 -32
  22. package/dist/signet-contract-state-reader.js.map +1 -1
  23. package/dist/signet-request-resolver.d.ts +1 -1
  24. package/dist/signet-request-resolver.js +2 -2
  25. package/dist/signet-request-resolver.js.map +1 -1
  26. package/dist/signet-request-response-reader.d.ts +39 -14
  27. package/dist/signet-request-response-reader.d.ts.map +1 -1
  28. package/dist/signet-request-response-reader.js +38 -10
  29. package/dist/signet-request-response-reader.js.map +1 -1
  30. package/package.json +2 -2
  31. package/src/Signet.compact +102 -70
@@ -2,17 +2,17 @@
2
2
  // request ledger fields out of a contract's raw state WITHOUT the compiled
3
3
  // contract. This is how the MPC monitor consumes signet contracts: it has only
4
4
  // a contract address, queries raw state from the indexer
5
- // (queryContractState(address).data), and decodes by ledger field POSITION.
5
+ // (queryContractState(address).data), and decodes by ledger-tree PATH.
6
6
  // A contract is free to place its request index at any field: the caller
7
- // supplies the position, which the discovery path learns from the
8
- // notification's requestsIndexField.
9
- // The compiled contract's generated ledger() does exactly this walk internally.
7
+ // supplies the resolved path, which the discovery path learns from the
8
+ // notification's requestsPath (sourced from the caller's contract-info.json).
9
+ // The compiled contract's generated ledger() follows exactly this path internally.
10
10
  // The record descriptors themselves are the parameterised twins in
11
11
  // signet-requests.ts. The generic tree walk and shared base descriptors live
12
12
  // in signature-state-reading.ts.
13
13
  import { calculateRequestId, signBidirectionalEventDescriptor, } from "./signet-evtype2tx-requests.js";
14
14
  import { requestIdHex, } from "./signet-requests.js";
15
- import { requestIdType, signetFieldNode, u64, } from "./signature-state-reading.js";
15
+ import { requestIdType, signetFieldNodeByPath, u64, } from "./signature-state-reading.js";
16
16
  /**
17
17
  * Aligned-value entry count of an event record EXCLUDING the capacity-scaled
18
18
  * vectors: sender (1) + requestNonce (1) + keyVersion (1) + path (1) +
@@ -115,16 +115,16 @@ function decodeSignBidirectionalEvent(atoms, expectedRequestId) {
115
115
  *
116
116
  * @param raw - Raw contract state, e.g. `queryContractState(address).data`
117
117
  * from the indexer or `ctx.currentQueryContext.state` from the simulator.
118
- * @param requestsIndexField - Ledger field position of the request index.
119
- * @param nonceField - Ledger field position of the request counter.
118
+ * @param requestsIndexPath - Resolved ledger-tree path of the request index.
119
+ * @param noncePath - Resolved ledger-tree path of the request counter.
120
120
  * @returns The decoded {@link SignetRequestsLedger}.
121
121
  * @throws Error if a field is missing, has the wrong state-value shape, or a
122
122
  * record matches no capacity split.
123
123
  */
124
- export function readSignetRequestsLedgerFromState(raw, requestsIndexField, nonceField) {
125
- const map = signetFieldNode(raw, requestsIndexField).asMap();
124
+ export function readSignetRequestsLedgerFromState(raw, requestsIndexPath, noncePath) {
125
+ const map = signetFieldNodeByPath(raw, requestsIndexPath).asMap();
126
126
  if (map === undefined) {
127
- throw new Error(`Ledger field ${requestsIndexField} is not a Map`);
127
+ throw new Error(`Ledger field at path ${JSON.stringify(requestsIndexPath)} is not a Map`);
128
128
  }
129
129
  const requestsIndex = new Map();
130
130
  for (const key of map.keys()) {
@@ -135,9 +135,9 @@ export function readSignetRequestsLedgerFromState(raw, requestsIndexField, nonce
135
135
  continue;
136
136
  requestsIndex.set(requestId, decodeSignBidirectionalEvent(cell.value, requestId));
137
137
  }
138
- const nonceCell = signetFieldNode(raw, nonceField).asCell();
138
+ const nonceCell = signetFieldNodeByPath(raw, noncePath).asCell();
139
139
  if (nonceCell === undefined) {
140
- throw new Error(`Ledger field ${nonceField} is not a Cell`);
140
+ throw new Error(`Ledger field at path ${JSON.stringify(noncePath)} is not a Cell`);
141
141
  }
142
142
  const nonce = u64.fromValue([...nonceCell.value]);
143
143
  return { nonce, requestsIndex };
@@ -163,17 +163,18 @@ export function readSignetRequestsLedgerFromState(raw, requestsIndexField, nonce
163
163
  * fieldIndex, …).requestsIndex.get(requestId)`.
164
164
  *
165
165
  * @param raw - Raw contract state, e.g. `queryContractState(address).data`.
166
- * @param fieldIndex - Ledger field position of the request index in `raw`.
166
+ * @param requestsPath - Resolved ledger-tree path of the request index in
167
+ * `raw`, as the notification carries it.
167
168
  * @param requestId - The request id to look up.
168
169
  * @returns The stored request record, or `undefined` when it is not a member.
169
170
  */
170
- export function lookupSignetRequestAt(raw, fieldIndex, requestId) {
171
+ export function lookupSignetRequestAt(raw, requestsPath, requestId) {
171
172
  let node;
172
173
  try {
173
- node = signetFieldNode(raw, fieldIndex);
174
+ node = signetFieldNodeByPath(raw, requestsPath);
174
175
  }
175
176
  catch {
176
- return undefined; // field position out of range for this contract
177
+ return undefined; // path out of range for this contract
177
178
  }
178
179
  const map = node.asMap();
179
180
  if (map === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"signature-requests-state-reader.js","sourceRoot":"","sources":["../src/signature-requests-state-reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signature-requests-state-reader.js","sourceRoot":"","sources":["../src/signature-requests-state-reader.ts"],"names":[],"mappings":"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"}
@@ -19,33 +19,25 @@ export type RawContractState = StateValue | {
19
19
  state: StateValue;
20
20
  };
21
21
  /**
22
- * Resolve a flat ledger field index to its node in the raw state tree: the
23
- * MPC-perspective primitive: given only a contract's raw state and a field
24
- * number (e.g. the `requestsIndexField` a notification names), return that
25
- * field's block of stored state, regardless of what field types sit before
26
- * or after it.
22
+ * Follow a resolved ledger-tree path to its node in raw state: the
23
+ * MPC-perspective primitive, given only a contract's raw state and the path a
24
+ * notification carries. It walks the path node for node, exactly as the
25
+ * compiled `ledger()` accessor does, and never inspects array widths or
26
+ * re-derives the compiler's chunk structure.
27
27
  *
28
- * Layout, as compactc emits it (probed on 4/15/16/20/226-field contracts;
29
- * the generated `ledger()` reader indexes with exactly these paths):
30
- * - Up to {@link CHUNK_ARITY} fields: the root array holds the fields
31
- * directly, field n at `root[n]`.
32
- * - More fields: a depth-uniform tree of chunk arrays, filled REMAINDER
33
- * FIRST: 16 fields become chunks of [1, 15], 20 become [5, 15], 226
34
- * become [1, 15x15] one level deeper. Every chunk on the rightmost spine
35
- * is therefore always FULL (exactly {@link CHUNK_ARITY} entries).
36
- *
37
- * Chunk detection walks that rightmost spine: each consecutive
38
- * arity-{@link CHUNK_ARITY} array is one chunk level to flatten. This never
39
- * misreads a field node as a chunk, because no ledger ADT stores an
40
- * arity-15 array at field level; in particular a `List` (array-typed, like
41
- * a chunk) is a fixed THREE-slot cons node. The one theoretical blind spot
42
- * is a future ADT whose field node is an arity-15 array sitting exactly at
43
- * the last declared field of a contract.
28
+ * The path is the value compactc records for a field in the client's own
29
+ * `contract-info.json` (`"index"`): a single-element path (`[4]`) for a flat
30
+ * contract's field, a longer one (`[1, 14]`) once a contract declares more
31
+ * than 15 fields and the compiler stores them in a chunk tree. Because the
32
+ * consumer is told the path rather than guessing it, no field whose own value
33
+ * is an array can be mistaken for a compiler chunk.
44
34
  *
45
35
  * @param raw - Raw contract state from the indexer or simulator.
46
- * @param flatIndex - Zero-based ledger field position in declaration order.
47
- * @returns The `StateValue` node holding that field.
48
- * @throws Error if `flatIndex` is beyond the contract's field count.
36
+ * @param path - Resolved chunk-tree path in declaration order, from the
37
+ * notification (which sources it from the client's `contract-info.json`).
38
+ * @returns The `StateValue` node at the end of the path.
39
+ * @throws Error if `path` is empty, steps into a non-array, or an index is out
40
+ * of range.
49
41
  */
50
- export declare function signetFieldNode(raw: RawContractState, flatIndex: number): StateValue;
42
+ export declare function signetFieldNodeByPath(raw: RawContractState, path: readonly number[]): StateValue;
51
43
  //# sourceMappingURL=signature-state-reading.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signature-state-reading.d.ts","sourceRoot":"","sources":["../src/signature-state-reading.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAOtD,qEAAqE;AACrE,eAAO,MAAM,GAAG,4BAA2D,CAAC;AAE5E,4CAA4C;AAC5C,eAAO,MAAM,OAAO,kBAA2B,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,SAAS,CAAW,CAAC;AAI7D;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC;AAkBlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,MAAM,GAChB,UAAU,CA+BZ"}
1
+ {"version":3,"file":"signature-state-reading.d.ts","sourceRoot":"","sources":["../src/signature-state-reading.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAOtD,qEAAqE;AACrE,eAAO,MAAM,GAAG,4BAA2D,CAAC;AAE5E,4CAA4C;AAC5C,eAAO,MAAM,OAAO,kBAA2B,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,SAAS,CAAW,CAAC;AAI7D;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC;AAWlE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,SAAS,MAAM,EAAE,GACtB,UAAU,CAwBZ"}
@@ -1,9 +1,9 @@
1
1
  // Common signet raw-state reading, shared by the request and response readers
2
2
  // (signature-requests-state-reader.ts, signet-contract-state-reader.ts).
3
3
  // This is the MPC-/client-style path: decode a contract's ledger fields out of
4
- // its raw state WITHOUT the compiled contract, walking the state tree by field
5
- // position alone. Here live the generic tree walk (RawContractState,
6
- // signetFieldNode) and the base type descriptors both readers share; each
4
+ // its raw state WITHOUT the compiled contract, following a resolved ledger-tree
5
+ // path. Here live the generic path walk (RawContractState,
6
+ // signetFieldNodeByPath) and the base type descriptors both readers share; each
7
7
  // reader adds only the descriptors for its own layout.
8
8
  import { CompactTypeBytes, CompactTypeUnsignedInteger, } from "@midnight-ntwrk/compact-runtime";
9
9
  import {} from "./signet-requests.js";
@@ -29,65 +29,45 @@ export const requestIdType = bytes32;
29
29
  */
30
30
  const unwrap = (raw) => "state" in raw ? raw.state : raw;
31
31
  /**
32
- * The compact compiler's chunking arity: a StateValue array level holds at
33
- * most this many entries, so a contract with more ledger fields gets a
34
- * depth-uniform tree of chunks (see {@link signetFieldNode}).
35
- */
36
- const CHUNK_ARITY = 15;
37
- /**
38
- * Resolve a flat ledger field index to its node in the raw state tree: the
39
- * MPC-perspective primitive: given only a contract's raw state and a field
40
- * number (e.g. the `requestsIndexField` a notification names), return that
41
- * field's block of stored state, regardless of what field types sit before
42
- * or after it.
43
- *
44
- * Layout, as compactc emits it (probed on 4/15/16/20/226-field contracts;
45
- * the generated `ledger()` reader indexes with exactly these paths):
46
- * - Up to {@link CHUNK_ARITY} fields: the root array holds the fields
47
- * directly, field n at `root[n]`.
48
- * - More fields: a depth-uniform tree of chunk arrays, filled REMAINDER
49
- * FIRST: 16 fields become chunks of [1, 15], 20 become [5, 15], 226
50
- * become [1, 15x15] one level deeper. Every chunk on the rightmost spine
51
- * is therefore always FULL (exactly {@link CHUNK_ARITY} entries).
32
+ * Follow a resolved ledger-tree path to its node in raw state: the
33
+ * MPC-perspective primitive, given only a contract's raw state and the path a
34
+ * notification carries. It walks the path node for node, exactly as the
35
+ * compiled `ledger()` accessor does, and never inspects array widths or
36
+ * re-derives the compiler's chunk structure.
52
37
  *
53
- * Chunk detection walks that rightmost spine: each consecutive
54
- * arity-{@link CHUNK_ARITY} array is one chunk level to flatten. This never
55
- * misreads a field node as a chunk, because no ledger ADT stores an
56
- * arity-15 array at field level; in particular a `List` (array-typed, like
57
- * a chunk) is a fixed THREE-slot cons node. The one theoretical blind spot
58
- * is a future ADT whose field node is an arity-15 array sitting exactly at
59
- * the last declared field of a contract.
38
+ * The path is the value compactc records for a field in the client's own
39
+ * `contract-info.json` (`"index"`): a single-element path (`[4]`) for a flat
40
+ * contract's field, a longer one (`[1, 14]`) once a contract declares more
41
+ * than 15 fields and the compiler stores them in a chunk tree. Because the
42
+ * consumer is told the path rather than guessing it, no field whose own value
43
+ * is an array can be mistaken for a compiler chunk.
60
44
  *
61
45
  * @param raw - Raw contract state from the indexer or simulator.
62
- * @param flatIndex - Zero-based ledger field position in declaration order.
63
- * @returns The `StateValue` node holding that field.
64
- * @throws Error if `flatIndex` is beyond the contract's field count.
46
+ * @param path - Resolved chunk-tree path in declaration order, from the
47
+ * notification (which sources it from the client's `contract-info.json`).
48
+ * @returns The `StateValue` node at the end of the path.
49
+ * @throws Error if `path` is empty, steps into a non-array, or an index is out
50
+ * of range.
65
51
  */
66
- export function signetFieldNode(raw, flatIndex) {
67
- const root = unwrap(raw);
68
- if (root.type() !== "array") {
69
- if (flatIndex === 0)
70
- return root;
71
- throw new Error(`Field index ${flatIndex} out of range: root is a leaf`);
72
- }
73
- let fields = root.asArray() ?? [];
74
- // Count chunk levels below the root along the rightmost spine: chunks on
75
- // it are always full, field nodes never have CHUNK_ARITY entries.
76
- let chunkLevels = 0;
77
- let spine = fields[fields.length - 1];
78
- while (spine !== undefined &&
79
- spine.type() === "array" &&
80
- (spine.asArray()?.length ?? 0) === CHUNK_ARITY) {
81
- chunkLevels += 1;
82
- const children = spine.asArray() ?? [];
83
- spine = children[children.length - 1];
84
- }
85
- for (let level = 0; level < chunkLevels; level += 1) {
86
- fields = fields.flatMap((chunk) => chunk.asArray() ?? []);
52
+ export function signetFieldNodeByPath(raw, path) {
53
+ if (path.length === 0) {
54
+ throw new Error("Ledger field path is empty");
87
55
  }
88
- const node = fields[flatIndex];
89
- if (node === undefined) {
90
- throw new Error(`Field index ${flatIndex} out of range`);
56
+ let node = unwrap(raw);
57
+ for (const [level, index] of path.entries()) {
58
+ if (node.type() !== "array") {
59
+ // A one-field contract stores its field as the bare (non-array) root,
60
+ // addressable only as the whole state at a final [0]; the compiled
61
+ // accessor reads it the same way.
62
+ if (index === 0 && level === path.length - 1)
63
+ return node;
64
+ throw new Error(`Ledger field path ${JSON.stringify(path)} steps into a non-array at level ${level}`);
65
+ }
66
+ const next = (node.asArray() ?? [])[index];
67
+ if (next === undefined) {
68
+ throw new Error(`Ledger field path ${JSON.stringify(path)} index ${index} out of range at level ${level}`);
69
+ }
70
+ node = next;
91
71
  }
92
72
  return node;
93
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"signature-state-reading.js","sourceRoot":"","sources":["../src/signature-state-reading.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,yEAAyE;AACzE,+EAA+E;AAC/E,+EAA+E;AAC/E,qEAAqE;AACrE,0EAA0E;AAC1E,uDAAuD;AAEvD,OAAO,EACL,gBAAgB,EAChB,0BAA0B,GAG3B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAkB,MAAM,sBAAsB,CAAC;AAEtD,yCAAyC;AACzC,8EAA8E;AAC9E,+EAA+E;AAC/E,mCAAmC;AAEnC,qEAAqE;AACrE,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,0BAA0B,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;AAE5E,4CAA4C;AAC5C,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAEhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAA2B,OAAO,CAAC;AAW7D;;;;;GAKG;AACH,MAAM,MAAM,GAAG,CAAC,GAAqB,EAAc,EAAE,CACnD,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AAEnC;;;;GAIG;AACH,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAqB,EACrB,SAAiB;IAEjB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;QAC5B,IAAI,SAAS,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,eAAe,SAAS,+BAA+B,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IAElC,yEAAyE;IACzE,kEAAkE;IAClE,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtC,OACE,KAAK,KAAK,SAAS;QACnB,KAAK,CAAC,IAAI,EAAE,KAAK,OAAO;QACxB,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,WAAW,EAC9C,CAAC;QACD,WAAW,IAAI,CAAC,CAAC;QACjB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QACvC,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAC/B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,eAAe,SAAS,eAAe,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"signature-state-reading.js","sourceRoot":"","sources":["../src/signature-state-reading.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,yEAAyE;AACzE,+EAA+E;AAC/E,gFAAgF;AAChF,2DAA2D;AAC3D,gFAAgF;AAChF,uDAAuD;AAEvD,OAAO,EACL,gBAAgB,EAChB,0BAA0B,GAG3B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAkB,MAAM,sBAAsB,CAAC;AAEtD,yCAAyC;AACzC,8EAA8E;AAC9E,+EAA+E;AAC/E,mCAAmC;AAEnC,qEAAqE;AACrE,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,0BAA0B,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;AAE5E,4CAA4C;AAC5C,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAEhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAA2B,OAAO,CAAC;AAW7D;;;;;GAKG;AACH,MAAM,MAAM,GAAG,CAAC,GAAqB,EAAc,EAAE,CACnD,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,qBAAqB,CACnC,GAAqB,EACrB,IAAuB;IAEvB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACvB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5C,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;YAC5B,sEAAsE;YACtE,mEAAmE;YACnE,kCAAkC;YAClC,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC1D,MAAM,IAAI,KAAK,CACb,qBAAqB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,KAAK,EAAE,CACrF,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,qBAAqB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,KAAK,0BAA0B,KAAK,EAAE,CAC1F,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -58,17 +58,17 @@ export interface SignatureRespondedEvent {
58
58
  export declare const signatureRespondedEventType: CompactType<SignatureRespondedEvent>;
59
59
  /**
60
60
  * The MPC's respond-bidirectional attestation of a request's remote EVM
61
- * execution (Compact `RespondBidirectionalEvent`): the attestation digest
62
- * `keccak256(requestId || serializedOutput)` plus the ECDSA signature over
63
- * it. The output itself travels off chain: readers fetch it, recompute the
64
- * digest (`calculateSignetAttestationDigest`) and match it against
65
- * {@link attestationDigest}. Stored UNVERIFIED by the signet contract:
66
- * clients verify the signature themselves against their MPC response key
67
- * (in-circuit via `verifyRespondBidirectionalEvent`).
61
+ * execution (Compact `RespondBidirectionalEvent`): the ECDSA signature over
62
+ * the attestation digest `keccak256(requestId || serializedOutput)`. Both the
63
+ * digest and the output travel off chain: readers fetch the output, recompute
64
+ * the digest (`calculateSignetAttestationDigest`) and verify the signature
65
+ * over it. Stored UNVERIFIED by the signet contract, so that signature check
66
+ * against the expected MPC response key is the only thing separating a
67
+ * genuine post from garbage (in-circuit via
68
+ * `verifyRespondBidirectionalEvent`, off chain via
69
+ * {@link verifyRespondBidirectionalSignature}).
68
70
  */
69
71
  export interface RespondBidirectionalEvent {
70
- /** The signed attestation digest: `keccak256(requestId || serializedOutput)`. */
71
- attestationDigest: Uint8Array;
72
72
  /** ECDSA signature over the attestation digest. */
73
73
  signature: MpcSignature;
74
74
  }
@@ -91,8 +91,8 @@ export interface SignetMapKey {
91
91
  */
92
92
  export declare const signetMapKeyType: CompactType<SignetMapKey>;
93
93
  /**
94
- * Hand-composed descriptor for {@link RespondBidirectionalEvent}. Field
95
- * order (attestationDigest, signature) must match the Compact struct.
94
+ * Hand-composed descriptor for {@link RespondBidirectionalEvent}: the single
95
+ * {@link MpcSignature} field, matching the Compact struct.
96
96
  */
97
97
  export declare const respondBidirectionalEventType: CompactType<RespondBidirectionalEvent>;
98
98
  /**
@@ -130,11 +130,13 @@ export interface SignBidirectionalNotification {
130
130
  */
131
131
  callerAddress: string;
132
132
  /**
133
- * Ledger field position of the `SignBidirectionalEventMap` in
134
- * {@link callerAddress} (the caller contract in this repo declares it at
135
- * field 4, but the notification carries it so the reader never assumes).
133
+ * Resolved ledger-tree path of the `SignBidirectionalEventMap` in
134
+ * {@link callerAddress}, as compactc records it in that contract's
135
+ * `contract-info.json` (`"index"`): `[4]` for a flat contract's field 4,
136
+ * `[1, 14]` once chunking applies. The reader follows it node for node
137
+ * (see {@link signetFieldNodeByPath}) and never assumes a layout.
136
138
  */
137
- requestsIndexField: number;
139
+ requestsPath: number[];
138
140
  }
139
141
  /**
140
142
  * Unpack a stored {@link SignBidirectionalNotificationRecord}'s payload by
@@ -142,14 +144,18 @@ export interface SignBidirectionalNotification {
142
144
  * `constructSignBidirectionalEventNotificationV1` circuit (byte plumbing
143
145
  * only: the pack↔decode lockstep is pinned by the state-reader unit test that
144
146
  * round-trips through the real circuit). V1 layout:
145
- * callerAddress (32) ++ requestsIndexField (1) ++ zero padding (95).
147
+ * callerAddress (32) ++ requestsPathDepth (1) ++ requestsPath (4) ++ zero
148
+ * padding (91), where only the first `requestsPathDepth` path bytes are
149
+ * meaningful.
146
150
  *
147
151
  * Fails closed on an unrecognised `version`: a future payload layout adds a
148
152
  * branch here rather than silently misinterpreting bytes under the V1 offsets.
149
153
  *
150
154
  * @param record - The raw on-ledger record.
151
- * @returns The decoded flat notification.
152
- * @throws Error if the record's `version` is not one this decoder understands.
155
+ * @returns The decoded notification, its `requestsPath` trimmed to the
156
+ * declared depth.
157
+ * @throws Error if the record's `version` is not one this decoder understands,
158
+ * or its `requestsPathDepth` is zero or exceeds {@link MAX_LEDGER_PATH_DEPTH}.
153
159
  */
154
160
  export declare function decodeSignBidirectionalNotification(record: SignBidirectionalNotificationRecord): SignBidirectionalNotification;
155
161
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"signet-contract-state-reader.d.ts","sourceRoot":"","sources":["../src/signet-contract-state-reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signet-contract-state-reader.d.ts","sourceRoot":"","sources":["../src/signet-contract-state-reader.ts"],"names":[],"mappings":"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"}
@@ -12,11 +12,11 @@
12
12
  // field 5: respondBidirectionalMap (Map<SignetMapKey, RespondBidirectionalEvent>)
13
13
  // Every store is an unauthenticated append-only log keyed by
14
14
  // (requestId, count): verification is the reader's job. The generic
15
- // state-tree walk (RawContractState, signetFieldNode) and the shared base
15
+ // state-tree walk (RawContractState, signetFieldNodeByPath) and the shared base
16
16
  // descriptors live in signature-state-reading.ts.
17
17
  import { CompactTypeBytes, CompactTypeUnsignedInteger, } from "@midnight-ntwrk/compact-runtime";
18
18
  import { bytesToHex, requestIdHex, } from "./signet-requests.js";
19
- import { requestIdType, signetFieldNode, u64, } from "./signature-state-reading.js";
19
+ import { requestIdType, signetFieldNodeByPath, u64, } from "./signature-state-reading.js";
20
20
  /** Signet contract layout: the notification counter map is ledger field 0. */
21
21
  export const SIGN_BIDIRECTIONAL_EVENT_NOTIFICATION_COUNTER_MAP_FIELD = 0;
22
22
  /** Signet contract layout: the notification map is ledger field 1. */
@@ -138,39 +138,31 @@ export const signetMapKeyType = {
138
138
  },
139
139
  };
140
140
  /**
141
- * Hand-composed descriptor for {@link RespondBidirectionalEvent}. Field
142
- * order (attestationDigest, signature) must match the Compact struct.
141
+ * Hand-composed descriptor for {@link RespondBidirectionalEvent}: the single
142
+ * {@link MpcSignature} field, matching the Compact struct.
143
143
  */
144
144
  export const respondBidirectionalEventType = {
145
- /** @returns Compound alignment of the struct's fields in declaration order. */
145
+ /** @returns Alignment of the struct's single signature field. */
146
146
  alignment() {
147
- return bytes32
148
- .alignment()
149
- .concat(mpcSignatureType.alignment());
147
+ return mpcSignatureType.alignment();
150
148
  },
151
149
  /**
152
- * Decode one response record from an aligned value, consuming it field
153
- * by field.
150
+ * Decode one response record from an aligned value.
154
151
  *
155
152
  * @param value - Mutable aligned value cursor: pass a copy.
156
153
  * @returns The decoded record.
157
154
  */
158
155
  fromValue(value) {
159
- return {
160
- attestationDigest: bytes32.fromValue(value),
161
- signature: mpcSignatureType.fromValue(value),
162
- };
156
+ return { signature: mpcSignatureType.fromValue(value) };
163
157
  },
164
158
  /**
165
159
  * Encode a response record into its aligned on-ledger representation.
166
160
  *
167
161
  * @param record - The record to encode.
168
- * @returns The aligned value, fields concatenated in declaration order.
162
+ * @returns The aligned value.
169
163
  */
170
164
  toValue(record) {
171
- return bytes32
172
- .toValue(record.attestationDigest)
173
- .concat(mpcSignatureType.toValue(record.signature));
165
+ return mpcSignatureType.toValue(record.signature);
174
166
  },
175
167
  };
176
168
  /** Descriptor for the notification's packed V1 payload (`Bytes<128>`). */
@@ -211,8 +203,16 @@ export const signBidirectionalNotificationType = {
211
203
  };
212
204
  /** Offset of the V1 `callerAddress` in the packed payload (`Bytes<32>` at the front). */
213
205
  const NOTIFICATION_CALLER_ADDRESS_OFFSET = 0;
214
- /** Offset of the V1 `requestsIndexField` (after the 32 callerAddress bytes). */
215
- const NOTIFICATION_REQUESTS_INDEX_FIELD_OFFSET = 32;
206
+ /** Offset of the V1 `requestsPathDepth` (after the 32 callerAddress bytes). */
207
+ const NOTIFICATION_PATH_DEPTH_OFFSET = 32;
208
+ /** Offset of the V1 `requestsPath` bytes (after the 1-byte depth). */
209
+ const NOTIFICATION_PATH_OFFSET = 33;
210
+ /**
211
+ * Maximum ledger-tree path depth the V1 payload carries, matching the
212
+ * `Vector<4, Uint<8>>` the `constructSignBidirectionalEventNotificationV1`
213
+ * circuit packs. Depth 1 addresses up to 15 fields, depth 4 up to 15^4.
214
+ */
215
+ const MAX_LEDGER_PATH_DEPTH = 4;
216
216
  /** The only payload interpretation {@link decodeSignBidirectionalNotification} understands today. */
217
217
  const SUPPORTED_NOTIFICATION_VERSION = 1n;
218
218
  /**
@@ -221,30 +221,37 @@ const SUPPORTED_NOTIFICATION_VERSION = 1n;
221
221
  * `constructSignBidirectionalEventNotificationV1` circuit (byte plumbing
222
222
  * only: the pack↔decode lockstep is pinned by the state-reader unit test that
223
223
  * round-trips through the real circuit). V1 layout:
224
- * callerAddress (32) ++ requestsIndexField (1) ++ zero padding (95).
224
+ * callerAddress (32) ++ requestsPathDepth (1) ++ requestsPath (4) ++ zero
225
+ * padding (91), where only the first `requestsPathDepth` path bytes are
226
+ * meaningful.
225
227
  *
226
228
  * Fails closed on an unrecognised `version`: a future payload layout adds a
227
229
  * branch here rather than silently misinterpreting bytes under the V1 offsets.
228
230
  *
229
231
  * @param record - The raw on-ledger record.
230
- * @returns The decoded flat notification.
231
- * @throws Error if the record's `version` is not one this decoder understands.
232
+ * @returns The decoded notification, its `requestsPath` trimmed to the
233
+ * declared depth.
234
+ * @throws Error if the record's `version` is not one this decoder understands,
235
+ * or its `requestsPathDepth` is zero or exceeds {@link MAX_LEDGER_PATH_DEPTH}.
232
236
  */
233
237
  export function decodeSignBidirectionalNotification(record) {
234
238
  if (record.version !== SUPPORTED_NOTIFICATION_VERSION) {
235
239
  throw new Error(`SignBidirectionalEventNotification version ${record.version} is not supported ` +
236
240
  `(this decoder understands version ${SUPPORTED_NOTIFICATION_VERSION})`);
237
241
  }
238
- const callerAddress = bytesToHex(record.payload.slice(NOTIFICATION_CALLER_ADDRESS_OFFSET, NOTIFICATION_REQUESTS_INDEX_FIELD_OFFSET));
239
- const requestsIndexField = record.payload[NOTIFICATION_REQUESTS_INDEX_FIELD_OFFSET];
240
- if (requestsIndexField === undefined) {
241
- throw new Error(`SignBidirectionalEventNotification payload is ${record.payload.length} bytes: ` +
242
- `too short for the V1 requestsIndexField at offset ${NOTIFICATION_REQUESTS_INDEX_FIELD_OFFSET}`);
242
+ const callerAddress = bytesToHex(record.payload.slice(NOTIFICATION_CALLER_ADDRESS_OFFSET, NOTIFICATION_PATH_DEPTH_OFFSET));
243
+ const depth = record.payload[NOTIFICATION_PATH_DEPTH_OFFSET];
244
+ if (depth === undefined || depth < 1 || depth > MAX_LEDGER_PATH_DEPTH) {
245
+ throw new Error(`SignBidirectionalEventNotification requestsPathDepth ${depth} is out of range ` +
246
+ `(expected 1 to ${MAX_LEDGER_PATH_DEPTH})`);
243
247
  }
248
+ // payload is a re-padded Bytes<128> and depth is bounded to MAX_LEDGER_PATH_DEPTH
249
+ // above, so this slice always yields exactly `depth` bytes.
250
+ const requestsPath = Array.from(record.payload.slice(NOTIFICATION_PATH_OFFSET, NOTIFICATION_PATH_OFFSET + depth));
244
251
  return {
245
252
  version: Number(record.version),
246
253
  callerAddress,
247
- requestsIndexField,
254
+ requestsPath,
248
255
  };
249
256
  }
250
257
  /**
@@ -261,7 +268,8 @@ export function signetMapEntryKey(id, count) {
261
268
  }
262
269
  /** Decode a `Map<RequestId, Counter>` ledger field into a {@link SignetCounterIndex}. */
263
270
  function readCounterMap(raw, field) {
264
- const counterMap = signetFieldNode(raw, field).asMap();
271
+ // The central singleton is flat (6 fields), so a field number is a depth-1 path.
272
+ const counterMap = signetFieldNodeByPath(raw, [field]).asMap();
265
273
  if (counterMap === undefined) {
266
274
  throw new Error(`Ledger field ${field} is not a Map`);
267
275
  }
@@ -279,7 +287,7 @@ function readCounterMap(raw, field) {
279
287
  }
280
288
  /** Decode a `Map<SignetMapKey, T>` ledger field into a string-keyed JS map. */
281
289
  function readSignetKeyedMap(raw, field, valueType) {
282
- const map = signetFieldNode(raw, field).asMap();
290
+ const map = signetFieldNodeByPath(raw, [field]).asMap();
283
291
  if (map === undefined) {
284
292
  throw new Error(`Ledger field ${field} is not a Map`);
285
293
  }
@@ -307,7 +315,9 @@ function readSignetKeyedMap(raw, field, valueType) {
307
315
  * @throws Error if the field is missing or is not a Map.
308
316
  */
309
317
  export function readSignBidirectionalNotificationIndexFromState(raw) {
310
- const notificationMap = signetFieldNode(raw, SIGN_BIDIRECTIONAL_EVENT_NOTIFICATION_MAP_FIELD).asMap();
318
+ const notificationMap = signetFieldNodeByPath(raw, [
319
+ SIGN_BIDIRECTIONAL_EVENT_NOTIFICATION_MAP_FIELD,
320
+ ]).asMap();
311
321
  if (notificationMap === undefined) {
312
322
  throw new Error(`Ledger field ${SIGN_BIDIRECTIONAL_EVENT_NOTIFICATION_MAP_FIELD} is not a Map`);
313
323
  }
@@ -1 +1 @@
1
- {"version":3,"file":"signet-contract-state-reader.js","sourceRoot":"","sources":["../src/signet-contract-state-reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signet-contract-state-reader.js","sourceRoot":"","sources":["../src/signet-contract-state-reader.ts"],"names":[],"mappings":"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"}
@@ -46,7 +46,7 @@ export declare class SignetRequestResolver {
46
46
  /**
47
47
  * Resolve a notification to its authenticated request, or `undefined` when it
48
48
  * cannot be trusted: the caller contract has no state, or `requestId` is not
49
- * a member of the map at `requestsIndexField` (forged, stale, wrong field,
49
+ * a member of the map at `requestsPath` (forged, stale, wrong field,
50
50
  * or not yet indexed — poll again). Never throws on an untrusted
51
51
  * notification; a bad one is dropped, not surfaced as an error.
52
52
  *
@@ -38,7 +38,7 @@ export class SignetRequestResolver {
38
38
  /**
39
39
  * Resolve a notification to its authenticated request, or `undefined` when it
40
40
  * cannot be trusted: the caller contract has no state, or `requestId` is not
41
- * a member of the map at `requestsIndexField` (forged, stale, wrong field,
41
+ * a member of the map at `requestsPath` (forged, stale, wrong field,
42
42
  * or not yet indexed — poll again). Never throws on an untrusted
43
43
  * notification; a bad one is dropped, not surfaced as an error.
44
44
  *
@@ -62,7 +62,7 @@ export class SignetRequestResolver {
62
62
  if (!state?.data) {
63
63
  return undefined; // no state at the named caller — cannot authenticate
64
64
  }
65
- const request = lookupSignetRequestAt(state.data, notification.requestsIndexField, requestId);
65
+ const request = lookupSignetRequestAt(state.data, notification.requestsPath, requestId);
66
66
  if (request === undefined) {
67
67
  return undefined; // membership check failed — drop the notification
68
68
  }