@cardananium/cquisitor-lib 0.1.0-beta.53 → 0.1.0-beta.54

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.
@@ -320,6 +320,29 @@ export function map_cbor_to_cddl(
320
320
  * Sub-structures the schema doesn't cover fall back to a raw
321
321
  * representation (under `@extra` for maps / `@positional` for arrays),
322
322
  * so partial matches still yield useful output.
323
+ *
324
+ * **Map output shape**: by default we emit JSON objects (`{a: 1, b: 2}`)
325
+ * for the convenient case. We switch to a wire-order-preserving array
326
+ * form `{ "@entries": [{ key, value, match: { via, label } }, ...] }`
327
+ * when the JSON object form would lose information:
328
+ *
329
+ * * any cbor key is a complex value (Array / Map / Tag / non-standard
330
+ * Simple) — JSON objects can only have string keys.
331
+ * * the cbor map has duplicate keys (RFC 8949 §5.6 — non-canonical
332
+ * but legal). Collapsing into a value-array would drop the
333
+ * interleaving order with surrounding entries.
334
+ *
335
+ * In `@entries` form, each pair carries a `match` field describing how
336
+ * the cbor key was matched against the schema:
337
+ * * `match.via: "literal"` — bareword / literal value match;
338
+ * `match.label` is the literal text.
339
+ * * `match.via: "type"` — `<type1> => …` schema, the key conforms
340
+ * to a type (e.g. `policy_id => …`); `match.label` is `null`.
341
+ * * `match.via: "unmatched"` — no schema entry accepted this key,
342
+ * `key` and `value` are raw decoded forms; `match.label` is `null`.
343
+ *
344
+ * Almost all Cardano maps (txbody, multiasset, witness_set) use object
345
+ * form; the `@entries` form only kicks in for the unusual cases above.
323
346
  * @param {string} cbor_hex
324
347
  * @param {string} cddl
325
348
  * @param {string} rule_name
Binary file
@@ -4,10 +4,6 @@ export const memory: WebAssembly.Memory;
4
4
  export const decode_specific_type: (a: number, b: number, c: number, d: number, e: any) => [number, number, number];
5
5
  export const get_decodable_types: () => [number, number];
6
6
  export const get_possible_types_for_input: (a: number, b: number) => [number, number];
7
- export const check_block_or_tx_signatures: (a: number, b: number) => [number, number, number];
8
- export const get_necessary_data_list_js: (a: number, b: number, c: number, d: number) => [number, number, number, number];
9
- export const validate_transaction_js: (a: number, b: number, c: number, d: number) => [number, number, number, number];
10
- export const extract_hashes_from_transaction_js: (a: number, b: number) => [number, number, number, number];
11
7
  export const decode_plutus_program_pretty_uplc: (a: number, b: number) => [number, number, number, number];
12
8
  export const decode_plutus_program_uplc_json: (a: number, b: number) => [number, number, number];
13
9
  export const execute_tx_scripts: (a: number, b: number, c: any, d: any) => [number, number, number];
@@ -22,6 +18,10 @@ export const decode_cbor_against_cddl: (a: number, b: number, c: number, d: numb
22
18
  export const map_cbor_to_cddl: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
23
19
  export const validate_cbor_against_cddl: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
24
20
  export const validate_cddl: (a: number, b: number) => [number, number, number];
21
+ export const extract_hashes_from_transaction_js: (a: number, b: number) => [number, number, number, number];
22
+ export const check_block_or_tx_signatures: (a: number, b: number) => [number, number, number];
23
+ export const get_necessary_data_list_js: (a: number, b: number, c: number, d: number) => [number, number, number, number];
24
+ export const validate_transaction_js: (a: number, b: number, c: number, d: number) => [number, number, number, number];
25
25
  export const validate_cbor_from_slice: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
26
26
  export const validate_json_from_str: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
27
27
  export const cddl_from_str: (a: number, b: number) => [number, number, number];
@@ -320,6 +320,29 @@ export function map_cbor_to_cddl(
320
320
  * Sub-structures the schema doesn't cover fall back to a raw
321
321
  * representation (under `@extra` for maps / `@positional` for arrays),
322
322
  * so partial matches still yield useful output.
323
+ *
324
+ * **Map output shape**: by default we emit JSON objects (`{a: 1, b: 2}`)
325
+ * for the convenient case. We switch to a wire-order-preserving array
326
+ * form `{ "@entries": [{ key, value, match: { via, label } }, ...] }`
327
+ * when the JSON object form would lose information:
328
+ *
329
+ * * any cbor key is a complex value (Array / Map / Tag / non-standard
330
+ * Simple) — JSON objects can only have string keys.
331
+ * * the cbor map has duplicate keys (RFC 8949 §5.6 — non-canonical
332
+ * but legal). Collapsing into a value-array would drop the
333
+ * interleaving order with surrounding entries.
334
+ *
335
+ * In `@entries` form, each pair carries a `match` field describing how
336
+ * the cbor key was matched against the schema:
337
+ * * `match.via: "literal"` — bareword / literal value match;
338
+ * `match.label` is the literal text.
339
+ * * `match.via: "type"` — `<type1> => …` schema, the key conforms
340
+ * to a type (e.g. `policy_id => …`); `match.label` is `null`.
341
+ * * `match.via: "unmatched"` — no schema entry accepted this key,
342
+ * `key` and `value` are raw decoded forms; `match.label` is `null`.
343
+ *
344
+ * Almost all Cardano maps (txbody, multiasset, witness_set) use object
345
+ * form; the `@entries` form only kicks in for the unusual cases above.
323
346
  * @param {string} cbor_hex
324
347
  * @param {string} cddl
325
348
  * @param {string} rule_name
Binary file
@@ -4,10 +4,6 @@ export const memory: WebAssembly.Memory;
4
4
  export const decode_specific_type: (a: number, b: number, c: number, d: number, e: any) => [number, number, number];
5
5
  export const get_decodable_types: () => [number, number];
6
6
  export const get_possible_types_for_input: (a: number, b: number) => [number, number];
7
- export const check_block_or_tx_signatures: (a: number, b: number) => [number, number, number];
8
- export const get_necessary_data_list_js: (a: number, b: number, c: number, d: number) => [number, number, number, number];
9
- export const validate_transaction_js: (a: number, b: number, c: number, d: number) => [number, number, number, number];
10
- export const extract_hashes_from_transaction_js: (a: number, b: number) => [number, number, number, number];
11
7
  export const decode_plutus_program_pretty_uplc: (a: number, b: number) => [number, number, number, number];
12
8
  export const decode_plutus_program_uplc_json: (a: number, b: number) => [number, number, number];
13
9
  export const execute_tx_scripts: (a: number, b: number, c: any, d: any) => [number, number, number];
@@ -22,6 +18,10 @@ export const decode_cbor_against_cddl: (a: number, b: number, c: number, d: numb
22
18
  export const map_cbor_to_cddl: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
23
19
  export const validate_cbor_against_cddl: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
24
20
  export const validate_cddl: (a: number, b: number) => [number, number, number];
21
+ export const extract_hashes_from_transaction_js: (a: number, b: number) => [number, number, number, number];
22
+ export const check_block_or_tx_signatures: (a: number, b: number) => [number, number, number];
23
+ export const get_necessary_data_list_js: (a: number, b: number, c: number, d: number) => [number, number, number, number];
24
+ export const validate_transaction_js: (a: number, b: number, c: number, d: number) => [number, number, number, number];
25
25
  export const validate_cbor_from_slice: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
26
26
  export const validate_json_from_str: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
27
27
  export const cddl_from_str: (a: number, b: number) => [number, number, number];
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "Evgenii Lisitskii <evgeniilisitskii@gmail.com>"
5
5
  ],
6
6
  "description": "Cardano transaction validation library",
7
- "version": "0.1.0-beta.53",
7
+ "version": "0.1.0-beta.54",
8
8
  "license": "Apache-2.0",
9
9
  "files": [
10
10
  "node/cquisitor_lib_bg.wasm",