@sig-net/midnight 0.24.0-rc.4 → 0.24.0-rc.6

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/README.md CHANGED
@@ -73,7 +73,8 @@ What clients import from `@sig-net/midnight`:
73
73
  | Compute a request id off chain | `calculateRequestId`: the TS twin of the on-chain circuit, plus `requestIdHex` and `parseRequestIdHex` for the hex form. |
74
74
  | Compose expected calldata words off chain (UIs, expected-record builders, tests) | The builders `numericAbiWord`, `evmAddressAbiWord` and `boolAbiWord`, and the readers `abiWordToUint128` and `abiWordToBool`: TS twins of the circuits under identical names. |
75
75
  | Digest a transaction decomposition off chain | `calculateEvmType2TxParamsDigest`: the TS twin of the circuit, what `calculateRequestId` hashes in place of the parameters. |
76
- | Convert a foreign execution output into respond bytes | `deserializeEvmOutput` (raw EVM return data to named values) and `serializeRespondOutput` (named values to the packed respond payload the MPC attests): together they rebuild the `serializedOutput` of steps 4 and 5. |
76
+ | Rebuild the respond bytes the MPC attests for an executed EVM transaction | `executedEvmRespondOutput`: the request's two schemas, whether the transaction was a contract call (`isEvmContractCall` over its calldata) and its traced return data (`EvmTraceOutput`, read off a `debug_traceTransaction` callTracer frame by `evmTraceOutputFromCallFrame`) give the exact `serializedOutput` of steps 4 and 5, synthesised for a plain transfer or a void call. |
77
+ | Convert a foreign execution output into respond bytes | `deserializeEvmOutput` (raw EVM return data to named values) and `serializeRespondOutput` (named values to the packed respond payload): the two conversions `executedEvmRespondOutput` runs on a contract call's return data. |
77
78
  | Recognise a failed remote execution | `OutputKind` on the verified `RespondBidirectionalEvent`: `failed` or `unviable` beside an empty output (see [Handling Failure](https://github.com/sig-net/midnight-integration/blob/main/README.md#handling-failure)). |
78
79
  | Read the attested output bytes from the MPC's output cache | `MpcOutputCacheReader`: one reader per network and Signet singleton pair, over the public bucket an MPC configured with output storage writes each request's exact attested bytes to before posting, defaulting to the bucket `getMpcOutputCacheUrl` publishes for the network. `fetchSerializedOutput` yields the bytes step 5 verifies, `undefined` while the object is not written yet. |
79
80
  | Hand a verified attestation to your verify circuit (runtime step 5) | `respondBidirectionalEventToCircuitInput`: flips the wire event's big-endian `bigR.x` and `s` into the little-endian record `verifyRespondBidirectionalEventV1` reads. |
@@ -50,10 +50,10 @@ export type AbiDecodedOutput = Record<string, AbiDecodedValue>;
50
50
  * into named values, driven by the request's outputDeserializationSchema.
51
51
  * The decode-side counterpart of {@link serializeRespondOutput}. Type
52
52
  * validation is FULLY delegated to ethers: this function checks the schema's
53
- * shape only. An empty schema decodes to an empty object (a plain transfer
54
- * has no output), matching the MPC's empty-schema handling. Returns a plain
55
- * object (never an ethers `Result`), so it survives JSON round-trips and
56
- * structural comparison.
53
+ * shape only. An empty schema decodes to an empty object. The MPC never
54
+ * decodes under an empty schema: {@link executedEvmRespondOutput} carries
55
+ * its rule for that case. Returns a plain object (never an ethers
56
+ * `Result`), so it survives JSON round-trips and structural comparison.
57
57
  *
58
58
  * @param schema - The outputDeserializationSchema: parsed, JSON text, or the raw NUL-padded on-chain bytes.
59
59
  * @param callResult - The ABI-encoded return data (hex string or bytes).
@@ -88,4 +88,120 @@ export declare const MAX_RESPOND_PACKED_BYTES = 65536;
88
88
  * range, or a dynamic payload exceeds its capacity.
89
89
  */
90
90
  export declare function serializeRespondOutput(schema: AbiSchemaInput, output: AbiDecodedOutput): Uint8Array;
91
+ /**
92
+ * Whether an EVM transaction is a contract call, decided over its input
93
+ * bytes exactly as the MPC decides it (`is_contract_call` in its
94
+ * `chain-ethereum/src/event_parsing.rs`): more than two bytes of input, so a
95
+ * one- or two-byte input is NOT a contract call. The answer selects the
96
+ * branch of {@link executedEvmRespondOutput}.
97
+ *
98
+ * Pass the signed transaction's `data`, or, from the request record alone,
99
+ * `assembleCalldata(request.txParams.calldata)`, which yields the same bytes
100
+ * (`"0x"` for a request without calldata).
101
+ *
102
+ * @param input - The transaction's input bytes (hex string or bytes).
103
+ * @returns True when the MPC treats the transaction as a contract call.
104
+ * @throws {Error} If `input` is neither bytes nor valid 0x hex.
105
+ */
106
+ export declare function isEvmContractCall(input: ethers.BytesLike): boolean;
107
+ /**
108
+ * How a `debug_traceTransaction` (callTracer) read of a transaction's top
109
+ * call frame came back: the MPC's `TraceOutput`. Carried by
110
+ * {@link EvmTraceOutput}.
111
+ */
112
+ export declare enum EvmTraceOutputKind {
113
+ /** The transaction was not traced: the MPC traces contract calls only. */
114
+ NotTraced = "NotTraced",
115
+ /** The top call frame carries a string `output` field: the return data, possibly empty (`0x`). */
116
+ Output = "Output",
117
+ /** The top call frame carries no string `output` field. */
118
+ NoReturnData = "NoReturnData"
119
+ }
120
+ /**
121
+ * The traced return data of an EVM transaction, as the MPC models it: a top
122
+ * call frame's string `output` field (even `0x`) is
123
+ * {@link EvmTraceOutputKind.Output}, an absent or non-string one is
124
+ * {@link EvmTraceOutputKind.NoReturnData}. {@link evmTraceOutputFromCallFrame}
125
+ * reads it off a frame.
126
+ */
127
+ export type EvmTraceOutput = {
128
+ /** The frame carried an `output` field. */
129
+ readonly kind: EvmTraceOutputKind.Output;
130
+ /** The frame's `output`: the ABI-encoded return data (hex string or bytes). */
131
+ readonly returnData: ethers.BytesLike;
132
+ } | {
133
+ /** The frame carried no `output` field. */
134
+ readonly kind: EvmTraceOutputKind.NoReturnData;
135
+ } | {
136
+ /** No trace was taken. */
137
+ readonly kind: EvmTraceOutputKind.NotTraced;
138
+ };
139
+ /**
140
+ * A request's two respond-path schemas, each in any form its conversion
141
+ * accepts. An on-ledger request record (`SignBidirectionalEvent`) satisfies
142
+ * it, as does the pair read off one as JSON text.
143
+ */
144
+ export interface RespondPathSchemas {
145
+ /** The outputDeserializationSchema, which {@link deserializeEvmOutput} decodes the return data with. */
146
+ readonly outputDeserializationSchema: EvmSchemaInput;
147
+ /** The respondSerializationSchema, which {@link serializeRespondOutput} packs the respond bytes with. */
148
+ readonly respondSerializationSchema: AbiSchemaInput;
149
+ }
150
+ /**
151
+ * The exact serialised respond output the MPC attests for an EVM transaction
152
+ * that executed (the payload of an `OutputKind.executed` attestation),
153
+ * mirroring the MPC's `build_serialized_output` under the Midnight respond
154
+ * format:
155
+ *
156
+ * - Not a contract call: the output schema and the trace are ignored, and
157
+ * the respond fields get synthesised defaults (bool `true`, string
158
+ * `"non_function_call_success"` in its `maxBytes` buffer, any other kind
159
+ * throws).
160
+ * - A contract call under an EMPTY output schema (a void call): the same
161
+ * defaults when the trace has no or empty return data, a throw when it
162
+ * returned data.
163
+ * - A contract call under a non-empty output schema: the return data
164
+ * decoded by {@link deserializeEvmOutput} and packed by
165
+ * {@link serializeRespondOutput}, a throw when the trace has no return
166
+ * data.
167
+ *
168
+ * A contract call that was not traced always throws. A failed or unviable
169
+ * execution is attested over an empty output instead, which needs no call.
170
+ *
171
+ * @param schemas - The request's two schemas (a request record satisfies this).
172
+ * @param isContractCall - Whether the transaction is a contract call, as {@link isEvmContractCall} decides it.
173
+ * @param trace - The transaction's traced return data (`NotTraced` for an untraced plain transfer).
174
+ * @returns The packed respond bytes, unpadded.
175
+ * @throws {Error} Exactly where the MPC refuses to attest an execution: a
176
+ * contract call not traced, an empty output schema with return data, a
177
+ * non-empty output schema with no or undecodable return data, a malformed
178
+ * output schema on a contract call, a respond field without a synthesised
179
+ * default, and every {@link serializeRespondOutput} rejection.
180
+ */
181
+ export declare function executedEvmRespondOutput(schemas: RespondPathSchemas, isContractCall: boolean, trace: EvmTraceOutput): Uint8Array;
182
+ /** A parsed JSON object. */
183
+ export interface JsonObject {
184
+ readonly [key: string]: JsonValue;
185
+ }
186
+ /** Any parsed JSON value: the shape of a JSON-RPC `result`. */
187
+ export type JsonValue = null | boolean | number | string | readonly JsonValue[] | JsonObject;
188
+ /**
189
+ * The {@link EvmTraceOutput} of a `debug_traceTransaction` callTracer top
190
+ * call frame, read exactly as the MPC reads it (`trace_output_to_bytes` in
191
+ * its `chain-ethereum/src/rpc.rs`):
192
+ *
193
+ * - The frame must be a JSON object with a `type` field (of any value).
194
+ * - A non-empty string `error` refuses the frame, naming a non-empty string
195
+ * `revertReason` beside it. Any other `error` is ignored.
196
+ * - A string `output` is {@link EvmTraceOutputKind.Output}, its hex decoded
197
+ * after one optional lowercase `0x` prefix (`0x` and `""` are empty return
198
+ * data). An absent or non-string `output` is
199
+ * {@link EvmTraceOutputKind.NoReturnData}.
200
+ *
201
+ * @param frame - The JSON-RPC `result` of `debug_traceTransaction` with the callTracer.
202
+ * @returns The frame's traced return data, for {@link executedEvmRespondOutput}.
203
+ * @throws {Error} If the frame is not an object, has no `type`, reports an
204
+ * `error`, or carries an `output` that is not even-length hex.
205
+ */
206
+ export declare function evmTraceOutputFromCallFrame(frame: JsonValue): EvmTraceOutput;
91
207
  //# sourceMappingURL=abi-serde.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"abi-serde.d.ts","sourceRoot":"","sources":["../src/abi-serde.ts"],"names":[],"mappings":"AAyDA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMhC,8EAA8E;AAC9E,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,MAAM,EAAE,GAAG,QAAQ,MAAM,EAAE,CAAC;AAE7F,gFAAgF;AAChF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;CACpB;AAED,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,YAAY,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,6EAA6E;AAC7E,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,eAAe,GAAG,aAAa,CAAC;AAE7E,8EAA8E;AAC9E,MAAM,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC;AAEzC,wFAAwF;AACxF,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;AAE7D;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,uFAAuF;AACvF,MAAM,MAAM,cAAc,GAAG,SAAS,cAAc,EAAE,GAAG,MAAM,GAAG,UAAU,CAAC;AAM7E;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,eAAe,EAAE,CAAC;AAElG,sFAAsF;AACtF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAM/D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,CAAC,SAAS,GAC3B,gBAAgB,CAclB;AAMD;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAE9C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,gBAAgB,GACvB,UAAU,CAqBZ"}
1
+ {"version":3,"file":"abi-serde.d.ts","sourceRoot":"","sources":["../src/abi-serde.ts"],"names":[],"mappings":"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"}
package/dist/abi-serde.js CHANGED
@@ -1,26 +1,32 @@
1
1
  // The two schema-driven conversions every Signet participant performs on the
2
- // respond path, named after the protocol fields that drive them:
2
+ // respond path, named after the protocol fields that drive them, and the
3
+ // MPC's rule composing them for an executed EVM transaction:
3
4
  //
4
5
  // EVM call result --deserializeEvmOutput--> decoded values
5
6
  // (outputDeserializationSchema)
6
7
  // decoded values --serializeRespondOutput--> RespondBidirectionalEvent bytes
7
8
  // (respondSerializationSchema)
9
+ // callTracer top frame --evmTraceOutputFromCallFrame--> the trace
10
+ // executed EVM transaction --executedEvmRespondOutput--> attested bytes
11
+ // (both schemas, isEvmContractCall, the trace)
8
12
  //
9
- // Run by fakenet and the real MPC, back to back, after the
10
- // destination-chain transaction confirms, and by Signet clients to
11
- // independently recompute the respond bytes the MPC attested or to display
12
- // a decoded result.
13
+ // Run by fakenet and the real MPC after the destination-chain transaction
14
+ // confirms, and by Signet clients to independently recompute the respond
15
+ // bytes the MPC attested or to display a decoded result. A client
16
+ // recomputing an attestation calls executedEvmRespondOutput: the MPC decodes
17
+ // and re-packs a contract call's return data, and synthesises the output
18
+ // of a plain transfer or a void call from the respond schema alone.
13
19
  //
14
20
  // The respond output is UNBOUNDED: this module never pads or clamps it. Any
15
21
  // fixed event-field width is the caller's concern. Schemas are the ABI-style
16
- // JSON carried on chain (NUL-padded fixed-width bytes). Both functions
17
- // accept the schema in any form: already-parsed fields, a JSON string, or
22
+ // JSON carried on chain (NUL-padded fixed-width bytes). Every function
23
+ // accepts the schema in any form: already-parsed fields, a JSON string, or
18
24
  // the raw on-chain bytes. An EMPTY output schema (an unset all-NUL field, a
19
- // blank string, or `[]`) decodes to no values: a plain transfer has no call
20
- // output. A respond schema must be non-empty, and its declared capacities
21
- // are bounded ({@link MAX_RESPOND_PACKED_BYTES}): schemas are
22
- // requester-authored on-chain data, so the responder never honours a schema
23
- // demanding a giant allocation.
25
+ // blank string, or `[]`) decodes to no values. A respond schema must be
26
+ // non-empty, and its declared capacities are bounded
27
+ // ({@link MAX_RESPOND_PACKED_BYTES}): schemas are requester-authored
28
+ // on-chain data, so the responder never honours a schema demanding a giant
29
+ // allocation.
24
30
  //
25
31
  // Decode-side type grammar is left FULLY to the ABI library (ethers): this
26
32
  // module checks only the schema's shape. Respond-side types are restricted
@@ -58,10 +64,10 @@ import { ethers } from "ethers";
58
64
  * into named values, driven by the request's outputDeserializationSchema.
59
65
  * The decode-side counterpart of {@link serializeRespondOutput}. Type
60
66
  * validation is FULLY delegated to ethers: this function checks the schema's
61
- * shape only. An empty schema decodes to an empty object (a plain transfer
62
- * has no output), matching the MPC's empty-schema handling. Returns a plain
63
- * object (never an ethers `Result`), so it survives JSON round-trips and
64
- * structural comparison.
67
+ * shape only. An empty schema decodes to an empty object. The MPC never
68
+ * decodes under an empty schema: {@link executedEvmRespondOutput} carries
69
+ * its rule for that case. Returns a plain object (never an ethers
70
+ * `Result`), so it survives JSON round-trips and structural comparison.
65
71
  *
66
72
  * @param schema - The outputDeserializationSchema: parsed, JSON text, or the raw NUL-padded on-chain bytes.
67
73
  * @param callResult - The ABI-encoded return data (hex string or bytes).
@@ -129,9 +135,191 @@ export function serializeRespondOutput(schema, output) {
129
135
  }
130
136
  return compactSerialize(descriptor, value);
131
137
  }
138
+ // ---------------------------------------------------------------------------
139
+ // 3. executed EVM transaction -> attested respond bytes
140
+ // ---------------------------------------------------------------------------
141
+ /**
142
+ * Whether an EVM transaction is a contract call, decided over its input
143
+ * bytes exactly as the MPC decides it (`is_contract_call` in its
144
+ * `chain-ethereum/src/event_parsing.rs`): more than two bytes of input, so a
145
+ * one- or two-byte input is NOT a contract call. The answer selects the
146
+ * branch of {@link executedEvmRespondOutput}.
147
+ *
148
+ * Pass the signed transaction's `data`, or, from the request record alone,
149
+ * `assembleCalldata(request.txParams.calldata)`, which yields the same bytes
150
+ * (`"0x"` for a request without calldata).
151
+ *
152
+ * @param input - The transaction's input bytes (hex string or bytes).
153
+ * @returns True when the MPC treats the transaction as a contract call.
154
+ * @throws {Error} If `input` is neither bytes nor valid 0x hex.
155
+ */
156
+ export function isEvmContractCall(input) {
157
+ return ethers.getBytes(input).length > 2;
158
+ }
159
+ /**
160
+ * How a `debug_traceTransaction` (callTracer) read of a transaction's top
161
+ * call frame came back: the MPC's `TraceOutput`. Carried by
162
+ * {@link EvmTraceOutput}.
163
+ */
164
+ export var EvmTraceOutputKind;
165
+ (function (EvmTraceOutputKind) {
166
+ /** The transaction was not traced: the MPC traces contract calls only. */
167
+ EvmTraceOutputKind["NotTraced"] = "NotTraced";
168
+ /** The top call frame carries a string `output` field: the return data, possibly empty (`0x`). */
169
+ EvmTraceOutputKind["Output"] = "Output";
170
+ /** The top call frame carries no string `output` field. */
171
+ EvmTraceOutputKind["NoReturnData"] = "NoReturnData";
172
+ })(EvmTraceOutputKind || (EvmTraceOutputKind = {}));
173
+ /** The string default the MPC synthesises for an execution without call output. */
174
+ const NON_FUNCTION_CALL_SUCCESS = "non_function_call_success";
175
+ /**
176
+ * The per-field values the MPC synthesises for an execution without call
177
+ * output (its `default_value_for_kind`): `true` for a bool field,
178
+ * {@link NON_FUNCTION_CALL_SUCCESS} for a string field.
179
+ *
180
+ * @param respondSchema - The respondSerializationSchema.
181
+ * @returns The synthesised values keyed by field name.
182
+ * @throws {Error} If the schema is one {@link serializeRespondOutput}
183
+ * rejects, or a field is of any other kind.
184
+ */
185
+ function nonFunctionCallDefaults(respondSchema) {
186
+ const output = {};
187
+ for (const field of normalizeRespondSchema(respondSchema)) {
188
+ if (field.type === "bool") {
189
+ output[field.name] = true;
190
+ }
191
+ else if (field.type === "string") {
192
+ output[field.name] = NON_FUNCTION_CALL_SUCCESS;
193
+ }
194
+ else {
195
+ throw new Error(`respond output: '${field.name}' (${field.type}) has no non-function-call ` +
196
+ "default: only bool and string fields have one");
197
+ }
198
+ }
199
+ return output;
200
+ }
201
+ /**
202
+ * The exact serialised respond output the MPC attests for an EVM transaction
203
+ * that executed (the payload of an `OutputKind.executed` attestation),
204
+ * mirroring the MPC's `build_serialized_output` under the Midnight respond
205
+ * format:
206
+ *
207
+ * - Not a contract call: the output schema and the trace are ignored, and
208
+ * the respond fields get synthesised defaults (bool `true`, string
209
+ * `"non_function_call_success"` in its `maxBytes` buffer, any other kind
210
+ * throws).
211
+ * - A contract call under an EMPTY output schema (a void call): the same
212
+ * defaults when the trace has no or empty return data, a throw when it
213
+ * returned data.
214
+ * - A contract call under a non-empty output schema: the return data
215
+ * decoded by {@link deserializeEvmOutput} and packed by
216
+ * {@link serializeRespondOutput}, a throw when the trace has no return
217
+ * data.
218
+ *
219
+ * A contract call that was not traced always throws. A failed or unviable
220
+ * execution is attested over an empty output instead, which needs no call.
221
+ *
222
+ * @param schemas - The request's two schemas (a request record satisfies this).
223
+ * @param isContractCall - Whether the transaction is a contract call, as {@link isEvmContractCall} decides it.
224
+ * @param trace - The transaction's traced return data (`NotTraced` for an untraced plain transfer).
225
+ * @returns The packed respond bytes, unpadded.
226
+ * @throws {Error} Exactly where the MPC refuses to attest an execution: a
227
+ * contract call not traced, an empty output schema with return data, a
228
+ * non-empty output schema with no or undecodable return data, a malformed
229
+ * output schema on a contract call, a respond field without a synthesised
230
+ * default, and every {@link serializeRespondOutput} rejection.
231
+ */
232
+ export function executedEvmRespondOutput(schemas, isContractCall, trace) {
233
+ const { outputDeserializationSchema, respondSerializationSchema } = schemas;
234
+ if (!isContractCall) {
235
+ return serializeRespondOutput(respondSerializationSchema, nonFunctionCallDefaults(respondSerializationSchema));
236
+ }
237
+ const expectsNoOutput = parseSchemaShape(outputDeserializationSchema).length === 0;
238
+ switch (trace.kind) {
239
+ case EvmTraceOutputKind.NotTraced:
240
+ throw new Error("respond output: a contract call's output needs its trace");
241
+ case EvmTraceOutputKind.NoReturnData:
242
+ if (!expectsNoOutput) {
243
+ throw new Error("respond output: the contract call's trace has no return data for a non-empty output schema");
244
+ }
245
+ break;
246
+ case EvmTraceOutputKind.Output:
247
+ if (!expectsNoOutput) {
248
+ return serializeRespondOutput(respondSerializationSchema, deserializeEvmOutput(outputDeserializationSchema, trace.returnData));
249
+ }
250
+ if (ethers.getBytes(trace.returnData).length > 0) {
251
+ throw new Error("respond output: the contract call returned data but its output schema declares no return values");
252
+ }
253
+ break;
254
+ }
255
+ return serializeRespondOutput(respondSerializationSchema, nonFunctionCallDefaults(respondSerializationSchema));
256
+ }
257
+ /**
258
+ * Whether a JSON value is an object. A type guard, as `Array.isArray` does
259
+ * not narrow a readonly array out of a union.
260
+ *
261
+ * @param value - The JSON value.
262
+ * @returns True for a JSON object, false for an array, a scalar or null.
263
+ */
264
+ function isJsonObject(value) {
265
+ return typeof value === "object" && value !== null && !Array.isArray(value);
266
+ }
267
+ /**
268
+ * A JSON object's own property when it is a string.
269
+ *
270
+ * @param object - The JSON object.
271
+ * @param key - The property name.
272
+ * @returns The string value, or `undefined` when absent or of another JSON kind.
273
+ */
274
+ function ownString(object, key) {
275
+ const value = Object.hasOwn(object, key) ? object[key] : undefined;
276
+ return typeof value === "string" ? value : undefined;
277
+ }
278
+ /**
279
+ * The {@link EvmTraceOutput} of a `debug_traceTransaction` callTracer top
280
+ * call frame, read exactly as the MPC reads it (`trace_output_to_bytes` in
281
+ * its `chain-ethereum/src/rpc.rs`):
282
+ *
283
+ * - The frame must be a JSON object with a `type` field (of any value).
284
+ * - A non-empty string `error` refuses the frame, naming a non-empty string
285
+ * `revertReason` beside it. Any other `error` is ignored.
286
+ * - A string `output` is {@link EvmTraceOutputKind.Output}, its hex decoded
287
+ * after one optional lowercase `0x` prefix (`0x` and `""` are empty return
288
+ * data). An absent or non-string `output` is
289
+ * {@link EvmTraceOutputKind.NoReturnData}.
290
+ *
291
+ * @param frame - The JSON-RPC `result` of `debug_traceTransaction` with the callTracer.
292
+ * @returns The frame's traced return data, for {@link executedEvmRespondOutput}.
293
+ * @throws {Error} If the frame is not an object, has no `type`, reports an
294
+ * `error`, or carries an `output` that is not even-length hex.
295
+ */
296
+ export function evmTraceOutputFromCallFrame(frame) {
297
+ if (!isJsonObject(frame)) {
298
+ throw new Error(`debug_traceTransaction result is not a call frame: ${JSON.stringify(frame)}`);
299
+ }
300
+ if (!Object.hasOwn(frame, "type")) {
301
+ throw new Error(`debug_traceTransaction result has no call frame \`type\`: ${JSON.stringify(frame)}`);
302
+ }
303
+ const error = ownString(frame, "error");
304
+ if (error !== undefined && error !== "") {
305
+ const revertReason = ownString(frame, "revertReason");
306
+ throw new Error(revertReason !== undefined && revertReason !== ""
307
+ ? `debug_traceTransaction reports the call reverted: ${error} (${revertReason})`
308
+ : `debug_traceTransaction reports the call errored: ${error}`);
309
+ }
310
+ const output = ownString(frame, "output");
311
+ if (output === undefined) {
312
+ return { kind: EvmTraceOutputKind.NoReturnData };
313
+ }
314
+ const digits = output.startsWith("0x") ? output.slice(2) : output;
315
+ if (!/^[0-9a-fA-F]*$/.test(digits) || digits.length % 2 !== 0) {
316
+ throw new Error(`debug_traceTransaction call frame output is not hex: "${output}"`);
317
+ }
318
+ return { kind: EvmTraceOutputKind.Output, returnData: ethers.getBytes(`0x${digits}`) };
319
+ }
132
320
  // ===========================================================================
133
- // Helpers from here down. The two functions above are the whole public
134
- // surface: everything below serves them.
321
+ // Helpers from here down. The exports above are the whole public surface:
322
+ // everything below serves them.
135
323
  // ===========================================================================
136
324
  // ---------------------------------------------------------------------------
137
325
  // Field-kind guards
@@ -200,7 +388,8 @@ function parseSchemaJson(text) {
200
388
  * fields with non-empty, unique names and non-empty type strings. An empty
201
389
  * schema is valid here: emptiness policy belongs to the callers
202
390
  * ({@link deserializeEvmOutput} decodes nothing, {@link serializeRespondOutput}
203
- * rejects).
391
+ * rejects, {@link executedEvmRespondOutput} synthesises defaults for a
392
+ * contract call without return data).
204
393
  *
205
394
  * @param schema - The schema as JSON text, packed bytes, or a field array.
206
395
  * @returns The schema's fields, names and type strings unvalidated beyond shape.
@@ -1 +1 @@
1
- {"version":3,"file":"abi-serde.js","sourceRoot":"","sources":["../src/abi-serde.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abi-serde.js","sourceRoot":"","sources":["../src/abi-serde.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sig-net/midnight",
3
- "version": "0.24.0-rc.4",
3
+ "version": "0.24.0-rc.6",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/sig-net/midnight-integration",
@@ -49,7 +49,7 @@
49
49
  "@midnight-ntwrk/compact-runtime": "0.18.0-rc.1",
50
50
  "@midnight-ntwrk/midnight-js-types": "5.0.0-beta.6",
51
51
  "@noble/curves": "^2.2.0",
52
- "@sig-net/midnight-serde": "^0.24.0-rc.4",
52
+ "@sig-net/midnight-serde": "^0.24.0-rc.6",
53
53
  "ethers": "^6.17.0"
54
54
  },
55
55
  "devDependencies": {