@bitgo/wasm-utxo 4.31.0 → 4.33.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.
@@ -465,6 +465,70 @@ export class BitGoPsbt {
465
465
  wasm.__wbindgen_add_to_stack_pointer(16);
466
466
  }
467
467
  }
468
+ /**
469
+ * Constructor: add the shielded Ironwood output as an orchard PCZT stored in the PSBT.
470
+ *
471
+ * * `recipient` - raw Orchard/Ironwood address ([`ORCHARD_ADDRESS_SIZE`] bytes)
472
+ * * `amount` - note value in zatoshi
473
+ * * `ovk` - optional outgoing viewing key ([`OVK_SIZE`] bytes; `None` for a keyless build)
474
+ * * `anchor` - Ironwood note-commitment-tree root ([`ANCHOR_SIZE`] bytes)
475
+ * * `memo` - ZIP-302 memo field ([`MEMO_SIZE`] bytes)
476
+ *
477
+ * [`ORCHARD_ADDRESS_SIZE`]: crate::zcash::ironwood_build::ORCHARD_ADDRESS_SIZE
478
+ * [`OVK_SIZE`]: crate::zcash::ironwood_build::OVK_SIZE
479
+ * [`ANCHOR_SIZE`]: crate::zcash::ironwood_build::ANCHOR_SIZE
480
+ * [`MEMO_SIZE`]: crate::zcash::ironwood_build::MEMO_SIZE
481
+ * @param {Uint8Array} recipient
482
+ * @param {bigint} amount
483
+ * @param {Uint8Array | null | undefined} ovk
484
+ * @param {Uint8Array} anchor
485
+ * @param {Uint8Array} memo
486
+ */
487
+ add_ironwood_output(recipient, amount, ovk, anchor, memo) {
488
+ try {
489
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
490
+ const ptr0 = passArray8ToWasm0(recipient, wasm.__wbindgen_export);
491
+ const len0 = WASM_VECTOR_LEN;
492
+ var ptr1 = isLikeNone(ovk) ? 0 : passArray8ToWasm0(ovk, wasm.__wbindgen_export);
493
+ var len1 = WASM_VECTOR_LEN;
494
+ const ptr2 = passArray8ToWasm0(anchor, wasm.__wbindgen_export);
495
+ const len2 = WASM_VECTOR_LEN;
496
+ const ptr3 = passArray8ToWasm0(memo, wasm.__wbindgen_export);
497
+ const len3 = WASM_VECTOR_LEN;
498
+ wasm.bitgopsbt_add_ironwood_output(retptr, this.__wbg_ptr, ptr0, len0, amount, ptr1, len1, ptr2, len2, ptr3, len3);
499
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
500
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
501
+ if (r1) {
502
+ throw takeObject(r0);
503
+ }
504
+ } finally {
505
+ wasm.__wbindgen_add_to_stack_pointer(16);
506
+ }
507
+ }
508
+ /**
509
+ * Ingest a transparent-input signature (`sig`: DER ECDSA with the trailing SIGHASH_ALL byte)
510
+ * after verifying it against `ironwood_v6_transparent_sighash(index)`.
511
+ * @param {number} index
512
+ * @param {Uint8Array} pubkey
513
+ * @param {Uint8Array} sig
514
+ */
515
+ add_ironwood_v6_signature(index, pubkey, sig) {
516
+ try {
517
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
518
+ const ptr0 = passArray8ToWasm0(pubkey, wasm.__wbindgen_export);
519
+ const len0 = WASM_VECTOR_LEN;
520
+ const ptr1 = passArray8ToWasm0(sig, wasm.__wbindgen_export);
521
+ const len1 = WASM_VECTOR_LEN;
522
+ wasm.bitgopsbt_add_ironwood_v6_signature(retptr, this.__wbg_ptr, index, ptr0, len0, ptr1, len1);
523
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
524
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
525
+ if (r1) {
526
+ throw takeObject(r0);
527
+ }
528
+ } finally {
529
+ wasm.__wbindgen_add_to_stack_pointer(16);
530
+ }
531
+ }
468
532
  /**
469
533
  * @param {Uint8Array} script
470
534
  * @param {bigint} value
@@ -794,6 +858,38 @@ export class BitGoPsbt {
794
858
  wasm.__wbindgen_add_to_stack_pointer(16);
795
859
  }
796
860
  }
861
+ /**
862
+ * Transaction Extractor: given the external prover's `proof` bytes, finalize the transparent
863
+ * inputs, apply the shielded binding signature, and return the broadcast-ready v6 transaction
864
+ * bytes. Requires the transparent inputs to be signed (via `add_ironwood_v6_signature`).
865
+ *
866
+ * Terminal: on success the stored PCZT is dropped, so a second call — or any other Ironwood
867
+ * operation, including after a `serialize`/`from_bytes` round-trip — fails rather than silently
868
+ * re-running against already-extracted state. Build a fresh PSBT instead. On failure nothing is
869
+ * dropped, so a call that errors (bad proof, unsigned input) leaves the PSBT retryable.
870
+ * @param {Uint8Array} proof
871
+ * @returns {Uint8Array}
872
+ */
873
+ combine_ironwood_proof(proof) {
874
+ try {
875
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
876
+ const ptr0 = passArray8ToWasm0(proof, wasm.__wbindgen_export);
877
+ const len0 = WASM_VECTOR_LEN;
878
+ wasm.bitgopsbt_combine_ironwood_proof(retptr, this.__wbg_ptr, ptr0, len0);
879
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
880
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
881
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
882
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
883
+ if (r3) {
884
+ throw takeObject(r2);
885
+ }
886
+ var v2 = getArrayU8FromWasm0(r0, r1).slice();
887
+ wasm.__wbindgen_export4(r0, r1 * 1, 1);
888
+ return v2;
889
+ } finally {
890
+ wasm.__wbindgen_add_to_stack_pointer(16);
891
+ }
892
+ }
797
893
  /**
798
894
  * Combine/merge data from another PSBT into this one
799
895
  *
@@ -950,6 +1046,69 @@ export class BitGoPsbt {
950
1046
  wasm.__wbindgen_add_to_stack_pointer(16);
951
1047
  }
952
1048
  }
1049
+ /**
1050
+ * Create an empty Zcash **v6 (Ironwood)** shielding PSBT with an explicit consensus branch id.
1051
+ *
1052
+ * The version group id is fixed by the v6 format, but the consensus branch id tracks the active
1053
+ * network upgrade and stays caller-supplied — the v6 analogue of `create_empty_zcash`. Prefer
1054
+ * `create_empty_zcash_v6_at_height`, which derives it from a block height and rejects heights
1055
+ * before NU6.3 activation; this is the escape hatch for callers that already know the value.
1056
+ * @param {string} network
1057
+ * @param {WasmRootWalletKeys} wallet_keys
1058
+ * @param {number} consensus_branch_id
1059
+ * @param {number | null} [lock_time]
1060
+ * @param {number | null} [expiry_height]
1061
+ * @returns {BitGoPsbt}
1062
+ */
1063
+ static create_empty_zcash_v6(network, wallet_keys, consensus_branch_id, lock_time, expiry_height) {
1064
+ try {
1065
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1066
+ const ptr0 = passStringToWasm0(network, wasm.__wbindgen_export, wasm.__wbindgen_export2);
1067
+ const len0 = WASM_VECTOR_LEN;
1068
+ _assertClass(wallet_keys, WasmRootWalletKeys);
1069
+ wasm.bitgopsbt_create_empty_zcash_v6(retptr, ptr0, len0, wallet_keys.__wbg_ptr, consensus_branch_id, isLikeNone(lock_time) ? 0x100000001 : (lock_time) >>> 0, isLikeNone(expiry_height) ? 0x100000001 : (expiry_height) >>> 0);
1070
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1071
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1072
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1073
+ if (r2) {
1074
+ throw takeObject(r1);
1075
+ }
1076
+ return BitGoPsbt.__wrap(r0);
1077
+ } finally {
1078
+ wasm.__wbindgen_add_to_stack_pointer(16);
1079
+ }
1080
+ }
1081
+ /**
1082
+ * Create an empty Zcash **v6 (Ironwood)** shielding PSBT, with the consensus branch id
1083
+ * resolved from `block_height`. Transparent inputs/outputs are added with the usual
1084
+ * `add_wallet_input` / `add_wallet_output`; the shielded output and the v6 sign/combine
1085
+ * steps use the dedicated `add_ironwood_output` / `ironwood_v6_*` / `combine_ironwood_proof`
1086
+ * methods.
1087
+ * @param {string} network
1088
+ * @param {WasmRootWalletKeys} wallet_keys
1089
+ * @param {number} block_height
1090
+ * @param {number | null} [lock_time]
1091
+ * @param {number | null} [expiry_height]
1092
+ * @returns {BitGoPsbt}
1093
+ */
1094
+ static create_empty_zcash_v6_at_height(network, wallet_keys, block_height, lock_time, expiry_height) {
1095
+ try {
1096
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1097
+ const ptr0 = passStringToWasm0(network, wasm.__wbindgen_export, wasm.__wbindgen_export2);
1098
+ const len0 = WASM_VECTOR_LEN;
1099
+ _assertClass(wallet_keys, WasmRootWalletKeys);
1100
+ wasm.bitgopsbt_create_empty_zcash_v6_at_height(retptr, ptr0, len0, wallet_keys.__wbg_ptr, block_height, isLikeNone(lock_time) ? 0x100000001 : (lock_time) >>> 0, isLikeNone(expiry_height) ? 0x100000001 : (expiry_height) >>> 0);
1101
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1102
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1103
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1104
+ if (r2) {
1105
+ throw takeObject(r1);
1106
+ }
1107
+ return BitGoPsbt.__wrap(r0);
1108
+ } finally {
1109
+ wasm.__wbindgen_add_to_stack_pointer(16);
1110
+ }
1111
+ }
953
1112
  /**
954
1113
  * @param {number} index
955
1114
  * @param {any} key
@@ -1629,6 +1788,59 @@ export class BitGoPsbt {
1629
1788
  const ret = wasm.bitgopsbt_input_count(this.__wbg_ptr);
1630
1789
  return ret >>> 0;
1631
1790
  }
1791
+ /**
1792
+ * The ZIP-244 per-input transparent sighash (32 bytes) that the key controlling transparent
1793
+ * input `index` must sign.
1794
+ * @param {number} index
1795
+ * @returns {Uint8Array}
1796
+ */
1797
+ ironwood_v6_transparent_sighash(index) {
1798
+ try {
1799
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1800
+ wasm.bitgopsbt_ironwood_v6_transparent_sighash(retptr, this.__wbg_ptr, index);
1801
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1802
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1803
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1804
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
1805
+ if (r3) {
1806
+ throw takeObject(r2);
1807
+ }
1808
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
1809
+ wasm.__wbindgen_export4(r0, r1 * 1, 1);
1810
+ return v1;
1811
+ } finally {
1812
+ wasm.__wbindgen_add_to_stack_pointer(16);
1813
+ }
1814
+ }
1815
+ /**
1816
+ * The canonical (display-order) ZIP-244 v6 txid as a lowercase hex string, matching the
1817
+ * `getId()` convention used elsewhere (see [`crate::wasm::zcash::ZcashV6Transaction::get_id`]).
1818
+ * @returns {string}
1819
+ */
1820
+ ironwood_v6_txid() {
1821
+ let deferred2_0;
1822
+ let deferred2_1;
1823
+ try {
1824
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1825
+ wasm.bitgopsbt_ironwood_v6_txid(retptr, this.__wbg_ptr);
1826
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1827
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1828
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1829
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
1830
+ var ptr1 = r0;
1831
+ var len1 = r1;
1832
+ if (r3) {
1833
+ ptr1 = 0; len1 = 0;
1834
+ throw takeObject(r2);
1835
+ }
1836
+ deferred2_0 = ptr1;
1837
+ deferred2_1 = len1;
1838
+ return getStringFromWasm0(ptr1, len1);
1839
+ } finally {
1840
+ wasm.__wbindgen_add_to_stack_pointer(16);
1841
+ wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);
1842
+ }
1843
+ }
1632
1844
  /**
1633
1845
  * Check if an input is a MuSig2 keypath input.
1634
1846
  *
@@ -1811,6 +2023,38 @@ export class BitGoPsbt {
1811
2023
  wasm.__wbindgen_add_to_stack_pointer(16);
1812
2024
  }
1813
2025
  }
2026
+ /**
2027
+ * Client-managed `ovk`: re-encrypt the Ironwood output's `out_ciphertext` under this wallet's
2028
+ * `ovk`, derived as the ECDH agreement of `root_wallet_keys.bitgo_key()` and `user_xpriv` — two
2029
+ * root keys, so the result is transaction-independent and the server can re-derive the identical
2030
+ * `ovk` from its own privkey plus the user's pubkey in order to validate `out_ciphertext`. The
2031
+ * server never sees `user_xpriv` or the `ovk` itself.
2032
+ *
2033
+ * `user_xpriv` must be the wallet's user root key; any other key is rejected, since an `ovk`
2034
+ * derived from it is one neither the user nor the server can reproduce.
2035
+ *
2036
+ * Must be called before signing: `out_ciphertext` is ZIP-244 sighash-committed, so calling this
2037
+ * after any transparent signature has been collected for the PSBT is rejected (it would
2038
+ * silently invalidate that signature).
2039
+ * @param {number} action_index
2040
+ * @param {WasmBIP32} user_xpriv
2041
+ * @param {WasmRootWalletKeys} root_wallet_keys
2042
+ */
2043
+ set_ironwood_out_ciphertext(action_index, user_xpriv, root_wallet_keys) {
2044
+ try {
2045
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2046
+ _assertClass(user_xpriv, WasmBIP32);
2047
+ _assertClass(root_wallet_keys, WasmRootWalletKeys);
2048
+ wasm.bitgopsbt_set_ironwood_out_ciphertext(retptr, this.__wbg_ptr, action_index, user_xpriv.__wbg_ptr, root_wallet_keys.__wbg_ptr);
2049
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2050
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2051
+ if (r1) {
2052
+ throw takeObject(r0);
2053
+ }
2054
+ } finally {
2055
+ wasm.__wbindgen_add_to_stack_pointer(16);
2056
+ }
2057
+ }
1814
2058
  /**
1815
2059
  * @param {any} key
1816
2060
  * @param {Uint8Array} value
@@ -1985,6 +2229,44 @@ export class BitGoPsbt {
1985
2229
  wasm.__wbindgen_add_to_stack_pointer(16);
1986
2230
  }
1987
2231
  }
2232
+ /**
2233
+ * Sign every transparent input `xpriv` resolves a key for, over the ZIP-244 transparent
2234
+ * sighash — the v6 (Ironwood) counterpart to `sign_all_wallet_inputs`, which rejects v6 PSBTs
2235
+ * (it only knows the ZIP-243 digest).
2236
+ *
2237
+ * If no transparent signature has been collected yet, this is the first signing round and
2238
+ * `xpriv` must be the wallet's user root key: it is used with `root_wallet_keys.bitgo_key()` to
2239
+ * derive this wallet's `ovk` and finalize `out_ciphertext` before computing any sighash (it is
2240
+ * sighash-committed). Any other key signing first is rejected, rather than deriving an `ovk`
2241
+ * nobody can reproduce. Once a signature exists, the step is skipped and any key may sign — so
2242
+ * callers pass `root_wallet_keys` unconditionally on every signing round without needing to know
2243
+ * which key is signing; it is mandatory precisely so the step can never be skipped by omission.
2244
+ *
2245
+ * Returns the indices of the transparent inputs that were signed.
2246
+ * @param {WasmBIP32} xpriv
2247
+ * @param {WasmRootWalletKeys} root_wallet_keys
2248
+ * @returns {Uint32Array}
2249
+ */
2250
+ sign_ironwood_v6(xpriv, root_wallet_keys) {
2251
+ try {
2252
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2253
+ _assertClass(xpriv, WasmBIP32);
2254
+ _assertClass(root_wallet_keys, WasmRootWalletKeys);
2255
+ wasm.bitgopsbt_sign_ironwood_v6(retptr, this.__wbg_ptr, xpriv.__wbg_ptr, root_wallet_keys.__wbg_ptr);
2256
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2257
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2258
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
2259
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
2260
+ if (r3) {
2261
+ throw takeObject(r2);
2262
+ }
2263
+ var v1 = getArrayU32FromWasm0(r0, r1).slice();
2264
+ wasm.__wbindgen_export4(r0, r1 * 4, 4);
2265
+ return v1;
2266
+ } finally {
2267
+ wasm.__wbindgen_add_to_stack_pointer(16);
2268
+ }
2269
+ }
1988
2270
  /**
1989
2271
  * Sign a single MuSig2 keypath input.
1990
2272
  *
@@ -6702,6 +6984,19 @@ export function zcash_branch_id_for_height(network, height) {
6702
6984
  wasm.__wbindgen_add_to_stack_pointer(16);
6703
6985
  }
6704
6986
  }
6987
+
6988
+ /**
6989
+ * The Zcash v6 (Ironwood / NU6.3) version group id.
6990
+ *
6991
+ * Exported so the TypeScript layer can derive its `IRONWOOD_VERSION_GROUP_ID` from the Rust
6992
+ * constant instead of hard-coding a second copy: the two are used together to tell v6 PSBTs from
6993
+ * v4/Sapling ones, and a silent divergence would route v6 bytes down the v4 path.
6994
+ * @returns {number}
6995
+ */
6996
+ export function zcash_ironwood_version_group_id() {
6997
+ const ret = wasm.zcash_ironwood_version_group_id();
6998
+ return ret >>> 0;
6999
+ }
6705
7000
  export function __wbg_Error_8c4e43fe74559d73(arg0, arg1) {
6706
7001
  const ret = Error(getStringFromWasm0(arg0, arg1));
6707
7002
  return addHeapObject(ret);
Binary file
@@ -2,39 +2,31 @@
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
4
  export const __wbg_addressnamespace_free: (a: number, b: number) => void;
5
+ export const __wbg_bip322namespace_free: (a: number, b: number) => void;
6
+ export const __wbg_messagenamespace_free: (a: number, b: number) => void;
5
7
  export const __wbg_utxolibcompatnamespace_free: (a: number, b: number) => void;
6
- export const __wbg_wasmdimensions_free: (a: number, b: number) => void;
7
- export const __wbg_wasmutxonamespace_free: (a: number, b: number) => void;
8
- export const addressnamespace_from_output_script_with_coin: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
9
- export const addressnamespace_to_output_script_with_coin: (a: number, b: number, c: number, d: number, e: number) => void;
10
- export const isInspectEnabled: () => number;
11
- export const parsePsbtRawToJson: (a: number, b: number, c: number, d: number, e: number) => void;
12
- export const utxolibcompatnamespace_from_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
13
- export const utxolibcompatnamespace_to_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
14
- export const wasmdimensions_empty: () => number;
15
- export const wasmdimensions_from_input: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
16
- export const wasmdimensions_from_input_script_type: (a: number, b: number, c: number, d: number) => void;
17
- export const wasmdimensions_from_output_script_length: (a: number) => number;
18
- export const wasmdimensions_from_output_script_type: (a: number, b: number, c: number) => void;
19
- export const wasmdimensions_from_psbt: (a: number, b: number) => void;
20
- export const wasmdimensions_get_input_vsize: (a: number, b: number, c: number) => number;
21
- export const wasmdimensions_get_input_weight: (a: number, b: number, c: number) => number;
22
- export const wasmdimensions_get_output_vsize: (a: number) => number;
23
- export const wasmdimensions_get_output_weight: (a: number) => number;
24
- export const wasmdimensions_get_vsize: (a: number, b: number, c: number) => number;
25
- export const wasmdimensions_get_weight: (a: number, b: number, c: number) => number;
26
- export const wasmdimensions_has_segwit: (a: number) => number;
27
- export const wasmdimensions_plus: (a: number, b: number) => number;
28
- export const wasmdimensions_times: (a: number, b: number) => number;
29
- export const wasmutxonamespace_get_wasm_utxo_version: (a: number) => void;
30
- export const parsePsbtToJson: (a: number, b: number, c: number, d: number, e: number) => void;
31
- export const parseTxToJson: (a: number, b: number, c: number, d: number, e: number) => void;
32
8
  export const __wbg_wasmdashtransaction_free: (a: number, b: number) => void;
9
+ export const __wbg_wasmecpair_free: (a: number, b: number) => void;
10
+ export const __wbg_wasmreplayprotection_free: (a: number, b: number) => void;
33
11
  export const __wbg_wasmtransaction_free: (a: number, b: number) => void;
34
12
  export const __wbg_wasmzcashtransaction_free: (a: number, b: number) => void;
35
13
  export const __wbg_wrappsbt_free: (a: number, b: number) => void;
36
14
  export const __wbg_zcashunifiedaddress_free: (a: number, b: number) => void;
37
15
  export const __wbg_zcashv6transaction_free: (a: number, b: number) => void;
16
+ export const addressnamespace_from_output_script_with_coin: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
17
+ export const addressnamespace_to_output_script_with_coin: (a: number, b: number, c: number, d: number, e: number) => void;
18
+ export const bip322namespace_add_bip322_input: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number) => void;
19
+ export const bip322namespace_get_bip322_message: (a: number, b: number, c: number) => void;
20
+ export const bip322namespace_verify_bip322_psbt_input: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
21
+ export const bip322namespace_verify_bip322_psbt_input_with_pubkeys: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => void;
22
+ export const bip322namespace_verify_bip322_tx_input: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => void;
23
+ export const bip322namespace_verify_bip322_tx_input_with_pubkeys: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => void;
24
+ export const isInspectEnabled: () => number;
25
+ export const messagenamespace_sign_message: (a: number, b: number, c: number, d: number) => void;
26
+ export const messagenamespace_verify_message: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
27
+ export const parsePsbtRawToJson: (a: number, b: number, c: number, d: number, e: number) => void;
28
+ export const utxolibcompatnamespace_from_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
29
+ export const utxolibcompatnamespace_to_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
38
30
  export const wasmdashtransaction_from_bytes: (a: number, b: number, c: number) => void;
39
31
  export const wasmdashtransaction_get_inputs: (a: number, b: number) => void;
40
32
  export const wasmdashtransaction_get_outputs: (a: number, b: number) => void;
@@ -45,6 +37,19 @@ export const wasmdashtransaction_lock_time: (a: number) => number;
45
37
  export const wasmdashtransaction_output_count: (a: number) => number;
46
38
  export const wasmdashtransaction_to_bytes: (a: number, b: number) => void;
47
39
  export const wasmdashtransaction_version: (a: number) => number;
40
+ export const wasmecpair_from_private_key: (a: number, b: number, c: number) => void;
41
+ export const wasmecpair_from_public_key: (a: number, b: number, c: number) => void;
42
+ export const wasmecpair_from_wif: (a: number, b: number, c: number) => void;
43
+ export const wasmecpair_from_wif_mainnet: (a: number, b: number, c: number) => void;
44
+ export const wasmecpair_from_wif_testnet: (a: number, b: number, c: number) => void;
45
+ export const wasmecpair_private_key: (a: number) => number;
46
+ export const wasmecpair_public_key: (a: number) => number;
47
+ export const wasmecpair_to_wif: (a: number, b: number) => void;
48
+ export const wasmecpair_to_wif_mainnet: (a: number, b: number) => void;
49
+ export const wasmecpair_to_wif_testnet: (a: number, b: number) => void;
50
+ export const wasmreplayprotection_from_addresses: (a: number, b: number, c: number, d: number, e: number) => void;
51
+ export const wasmreplayprotection_from_output_scripts: (a: number, b: number) => number;
52
+ export const wasmreplayprotection_from_public_keys: (a: number, b: number, c: number) => void;
48
53
  export const wasmtransaction_add_input: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
49
54
  export const wasmtransaction_add_input_at_index: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
50
55
  export const wasmtransaction_add_output: (a: number, b: number, c: number, d: bigint) => number;
@@ -107,6 +112,7 @@ export const wrappsbt_update_output_with_descriptor: (a: number, b: number, c: n
107
112
  export const wrappsbt_validate_signature_at_input: (a: number, b: number, c: number, d: number, e: number) => void;
108
113
  export const wrappsbt_verify_signature_with_key: (a: number, b: number, c: number, d: number) => void;
109
114
  export const zcash_branch_id_for_height: (a: number, b: number, c: number, d: number) => void;
115
+ export const zcash_ironwood_version_group_id: () => number;
110
116
  export const zcashunifiedaddress_contains: (a: number, b: number, c: number, d: number) => void;
111
117
  export const zcashunifiedaddress_orchardReceiver: (a: number, b: number) => void;
112
118
  export const zcashunifiedaddress_parse: (a: number, b: number, c: number, d: number, e: number) => void;
@@ -126,14 +132,18 @@ export const wasmtransaction_input_count: (a: number) => number;
126
132
  export const wasmtransaction_output_count: (a: number) => number;
127
133
  export const wasmzcashtransaction_input_count: (a: number) => number;
128
134
  export const wasmzcashtransaction_output_count: (a: number) => number;
135
+ export const parsePsbtToJson: (a: number, b: number, c: number, d: number, e: number) => void;
136
+ export const parseTxToJson: (a: number, b: number, c: number, d: number, e: number) => void;
129
137
  export const wasmtransaction_lock_time: (a: number) => number;
130
138
  export const wasmtransaction_version: (a: number) => number;
131
139
  export const wasmzcashtransaction_lock_time: (a: number) => number;
132
140
  export const wasmzcashtransaction_version: (a: number) => number;
133
141
  export const wrappsbt_lock_time: (a: number) => number;
134
142
  export const wrappsbt_version: (a: number) => number;
143
+ export const __wbg_wasmutxonamespace_free: (a: number, b: number) => void;
135
144
  export const __wbg_wrapdescriptor_free: (a: number, b: number) => void;
136
145
  export const __wbg_wrapminiscript_free: (a: number, b: number) => void;
146
+ export const wasmutxonamespace_get_wasm_utxo_version: (a: number) => void;
137
147
  export const wrapdescriptor_atDerivationIndex: (a: number, b: number, c: number) => void;
138
148
  export const wrapdescriptor_descType: (a: number, b: number) => void;
139
149
  export const wrapdescriptor_encode: (a: number, b: number) => void;
@@ -154,23 +164,16 @@ export const wrapminiscript_fromStringExt: (a: number, b: number, c: number, d:
154
164
  export const wrapminiscript_node: (a: number, b: number) => void;
155
165
  export const wrapminiscript_toAsmString: (a: number, b: number) => void;
156
166
  export const wrapminiscript_toString: (a: number, b: number) => void;
157
- export const __wbg_bip322namespace_free: (a: number, b: number) => void;
158
167
  export const __wbg_bitgopsbt_free: (a: number, b: number) => void;
159
168
  export const __wbg_fixedscriptwalletnamespace_free: (a: number, b: number) => void;
160
169
  export const __wbg_inscriptionsnamespace_free: (a: number, b: number) => void;
161
- export const __wbg_messagenamespace_free: (a: number, b: number) => void;
162
170
  export const __wbg_wasmbip32_free: (a: number, b: number) => void;
163
- export const __wbg_wasmecpair_free: (a: number, b: number) => void;
164
- export const __wbg_wasmreplayprotection_free: (a: number, b: number) => void;
171
+ export const __wbg_wasmdimensions_free: (a: number, b: number) => void;
165
172
  export const __wbg_wasmrootwalletkeys_free: (a: number, b: number) => void;
166
- export const bip322namespace_add_bip322_input: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number) => void;
167
- export const bip322namespace_get_bip322_message: (a: number, b: number, c: number) => void;
168
- export const bip322namespace_verify_bip322_psbt_input: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
169
- export const bip322namespace_verify_bip322_psbt_input_with_pubkeys: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => void;
170
- export const bip322namespace_verify_bip322_tx_input: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => void;
171
- export const bip322namespace_verify_bip322_tx_input_with_pubkeys: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => void;
172
173
  export const bitgopsbt_add_input: (a: number, b: number, c: number, d: number, e: number, f: bigint, g: number, h: number, i: number, j: number, k: number) => void;
173
174
  export const bitgopsbt_add_input_at_index: (a: number, b: number, c: number, d: number, e: number, f: number, g: bigint, h: number, i: number, j: number, k: number, l: number) => void;
175
+ export const bitgopsbt_add_ironwood_output: (a: number, b: number, c: number, d: number, e: bigint, f: number, g: number, h: number, i: number, j: number, k: number) => void;
176
+ export const bitgopsbt_add_ironwood_v6_signature: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
174
177
  export const bitgopsbt_add_output: (a: number, b: number, c: number, d: number, e: bigint) => void;
175
178
  export const bitgopsbt_add_output_at_index: (a: number, b: number, c: number, d: number, e: number, f: bigint) => void;
176
179
  export const bitgopsbt_add_output_with_address: (a: number, b: number, c: number, d: number, e: bigint) => void;
@@ -183,11 +186,14 @@ export const bitgopsbt_add_wallet_input_at_index: (a: number, b: number, c: numb
183
186
  export const bitgopsbt_add_wallet_output: (a: number, b: number, c: number, d: number, e: bigint, f: number) => void;
184
187
  export const bitgopsbt_add_wallet_output_at_index: (a: number, b: number, c: number, d: number, e: number, f: bigint, g: number) => void;
185
188
  export const bitgopsbt_combine_inputs: (a: number, b: number, c: number, d: number) => void;
189
+ export const bitgopsbt_combine_ironwood_proof: (a: number, b: number, c: number, d: number) => void;
186
190
  export const bitgopsbt_combine_musig2_nonces: (a: number, b: number, c: number) => void;
187
191
  export const bitgopsbt_consensus_branch_id: (a: number) => number;
188
192
  export const bitgopsbt_create_empty: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
189
193
  export const bitgopsbt_create_empty_zcash: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
190
194
  export const bitgopsbt_create_empty_zcash_at_height: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
195
+ export const bitgopsbt_create_empty_zcash_v6: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
196
+ export const bitgopsbt_create_empty_zcash_v6_at_height: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
191
197
  export const bitgopsbt_delete_input_kv: (a: number, b: number, c: number, d: number) => void;
192
198
  export const bitgopsbt_delete_kv: (a: number, b: number, c: number) => void;
193
199
  export const bitgopsbt_delete_output_kv: (a: number, b: number, c: number, d: number) => void;
@@ -216,6 +222,8 @@ export const bitgopsbt_get_outputs: (a: number, b: number) => void;
216
222
  export const bitgopsbt_get_outputs_with_address: (a: number, b: number) => void;
217
223
  export const bitgopsbt_get_unsigned_tx: (a: number, b: number) => void;
218
224
  export const bitgopsbt_input_count: (a: number) => number;
225
+ export const bitgopsbt_ironwood_v6_transparent_sighash: (a: number, b: number, c: number) => void;
226
+ export const bitgopsbt_ironwood_v6_txid: (a: number, b: number) => void;
219
227
  export const bitgopsbt_is_musig2_input: (a: number, b: number) => number;
220
228
  export const bitgopsbt_lock_time: (a: number) => number;
221
229
  export const bitgopsbt_network: (a: number, b: number) => void;
@@ -226,11 +234,13 @@ export const bitgopsbt_remove_input: (a: number, b: number, c: number) => void;
226
234
  export const bitgopsbt_remove_output: (a: number, b: number, c: number) => void;
227
235
  export const bitgopsbt_serialize: (a: number, b: number) => void;
228
236
  export const bitgopsbt_set_input_kv: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
237
+ export const bitgopsbt_set_ironwood_out_ciphertext: (a: number, b: number, c: number, d: number, e: number) => void;
229
238
  export const bitgopsbt_set_kv: (a: number, b: number, c: number, d: number, e: number) => void;
230
239
  export const bitgopsbt_set_output_kv: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
231
240
  export const bitgopsbt_sign_all_musig2_inputs: (a: number, b: number, c: number) => void;
232
241
  export const bitgopsbt_sign_all_replay_protection_inputs: (a: number, b: number, c: number) => void;
233
242
  export const bitgopsbt_sign_all_wallet_inputs: (a: number, b: number, c: number) => void;
243
+ export const bitgopsbt_sign_ironwood_v6: (a: number, b: number, c: number, d: number) => void;
234
244
  export const bitgopsbt_sign_musig2_input: (a: number, b: number, c: number, d: number) => void;
235
245
  export const bitgopsbt_sign_single_input_with_privkey: (a: number, b: number, c: number, d: number) => void;
236
246
  export const bitgopsbt_sign_single_input_with_xpriv: (a: number, b: number, c: number, d: number) => void;
@@ -254,8 +264,6 @@ export const fixedscriptwalletnamespace_supports_script_type: (a: number, b: num
254
264
  export const fixedscriptwalletnamespace_to_wallet_keys: (a: number, b: number, c: number, d: number, e: number) => void;
255
265
  export const inscriptionsnamespace_create_inscription_reveal_data: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
256
266
  export const inscriptionsnamespace_sign_reveal_transaction: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: bigint) => void;
257
- export const messagenamespace_sign_message: (a: number, b: number, c: number, d: number) => void;
258
- export const messagenamespace_verify_message: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
259
267
  export const wasmbip32_chain_code: (a: number) => number;
260
268
  export const wasmbip32_depth: (a: number) => number;
261
269
  export const wasmbip32_derive: (a: number, b: number, c: number) => void;
@@ -278,28 +286,30 @@ export const wasmbip32_private_key: (a: number) => number;
278
286
  export const wasmbip32_public_key: (a: number) => number;
279
287
  export const wasmbip32_to_base58: (a: number, b: number) => void;
280
288
  export const wasmbip32_to_wif: (a: number, b: number) => void;
281
- export const wasmecpair_from_private_key: (a: number, b: number, c: number) => void;
282
- export const wasmecpair_from_public_key: (a: number, b: number, c: number) => void;
283
- export const wasmecpair_from_wif: (a: number, b: number, c: number) => void;
284
- export const wasmecpair_from_wif_mainnet: (a: number, b: number, c: number) => void;
285
- export const wasmecpair_from_wif_testnet: (a: number, b: number, c: number) => void;
286
- export const wasmecpair_private_key: (a: number) => number;
287
- export const wasmecpair_public_key: (a: number) => number;
288
- export const wasmecpair_to_wif: (a: number, b: number) => void;
289
- export const wasmecpair_to_wif_mainnet: (a: number, b: number) => void;
290
- export const wasmecpair_to_wif_testnet: (a: number, b: number) => void;
291
- export const wasmreplayprotection_from_addresses: (a: number, b: number, c: number, d: number, e: number) => void;
292
- export const wasmreplayprotection_from_output_scripts: (a: number, b: number) => number;
293
- export const wasmreplayprotection_from_public_keys: (a: number, b: number, c: number) => void;
289
+ export const wasmdimensions_empty: () => number;
290
+ export const wasmdimensions_from_input: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
291
+ export const wasmdimensions_from_input_script_type: (a: number, b: number, c: number, d: number) => void;
292
+ export const wasmdimensions_from_output_script_length: (a: number) => number;
293
+ export const wasmdimensions_from_output_script_type: (a: number, b: number, c: number) => void;
294
+ export const wasmdimensions_from_psbt: (a: number, b: number) => void;
295
+ export const wasmdimensions_get_input_vsize: (a: number, b: number, c: number) => number;
296
+ export const wasmdimensions_get_input_weight: (a: number, b: number, c: number) => number;
297
+ export const wasmdimensions_get_output_vsize: (a: number) => number;
298
+ export const wasmdimensions_get_output_weight: (a: number) => number;
299
+ export const wasmdimensions_get_vsize: (a: number, b: number, c: number) => number;
300
+ export const wasmdimensions_get_weight: (a: number, b: number, c: number) => number;
301
+ export const wasmdimensions_has_segwit: (a: number) => number;
302
+ export const wasmdimensions_plus: (a: number, b: number) => number;
303
+ export const wasmdimensions_times: (a: number, b: number) => number;
294
304
  export const wasmrootwalletkeys_backup_key: (a: number) => number;
295
305
  export const wasmrootwalletkeys_bitgo_key: (a: number) => number;
296
306
  export const wasmrootwalletkeys_new: (a: number, b: number, c: number, d: number) => void;
297
307
  export const wasmrootwalletkeys_user_key: (a: number) => number;
298
308
  export const wasmrootwalletkeys_with_derivation_prefixes: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
299
309
  export const wasmbip32_from_bip32_properties: (a: number, b: number) => void;
310
+ export const bitgopsbt_sign_replay_protection_inputs: (a: number, b: number, c: number) => void;
300
311
  export const bitgopsbt_sign_wallet_input: (a: number, b: number, c: number, d: number) => void;
301
312
  export const bitgopsbt_sign_all_with_xpriv: (a: number, b: number, c: number) => void;
302
- export const bitgopsbt_sign_replay_protection_inputs: (a: number, b: number, c: number) => void;
303
313
  export const rustsecp256k1_v0_10_0_context_create: (a: number) => number;
304
314
  export const rustsecp256k1_v0_10_0_context_destroy: (a: number) => void;
305
315
  export const rustsecp256k1_v0_10_0_default_error_callback_fn: (a: number, b: number) => void;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bitgo/wasm-utxo",
3
3
  "description": "WebAssembly wrapper for rust-bitcoin (beta)",
4
- "version": "4.31.0",
4
+ "version": "4.33.0",
5
5
  "type": "module",
6
6
  "repository": {
7
7
  "type": "git",