@bitgo/wasm-utxo 4.38.0 → 4.40.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.
@@ -20,6 +20,8 @@ export declare class Psbt extends PsbtBase<WasmPsbt> implements IPsbt {
20
20
  addOutput(script: Uint8Array, value: bigint): number;
21
21
  updateInputWithDescriptor(inputIndex: number, descriptor: WrapDescriptor): void;
22
22
  updateOutputWithDescriptor(outputIndex: number, descriptor: WrapDescriptor): void;
23
+ /** Add a 32-byte SHA256 preimage for Miniscript descriptor finalization. */
24
+ addSha256Preimage(inputIndex: number, preimage: Uint8Array): void;
23
25
  signWithXprv(xprv: string): SignPsbtResult;
24
26
  signWithPrv(prv: Uint8Array): SignPsbtResult;
25
27
  signAll(key: WasmBIP32): SignPsbtResult;
@@ -33,5 +35,7 @@ export declare class Psbt extends PsbtBase<WasmPsbt> implements IPsbt {
33
35
  verifySignatureWithKey(inputIndex: number, key: WasmBIP32): boolean;
34
36
  getUnsignedTx(): Uint8Array;
35
37
  finalize(): void;
38
+ /** Finalize one Miniscript input without requiring all inputs to be complete. */
39
+ finalizeInput(inputIndex: number): void;
36
40
  extractTransaction(): Transaction;
37
41
  }
@@ -47,6 +47,10 @@ class Psbt extends psbtBase_js_1.PsbtBase {
47
47
  updateOutputWithDescriptor(outputIndex, descriptor) {
48
48
  this._wasm.update_output_with_descriptor(outputIndex, descriptor);
49
49
  }
50
+ /** Add a 32-byte SHA256 preimage for Miniscript descriptor finalization. */
51
+ addSha256Preimage(inputIndex, preimage) {
52
+ this._wasm.add_sha256_preimage(inputIndex, preimage);
53
+ }
50
54
  // -- Signing --
51
55
  signWithXprv(xprv) {
52
56
  return this._wasm.sign_with_xprv(xprv);
@@ -81,6 +85,10 @@ class Psbt extends psbtBase_js_1.PsbtBase {
81
85
  finalize() {
82
86
  this._wasm.finalize_mut();
83
87
  }
88
+ /** Finalize one Miniscript input without requiring all inputs to be complete. */
89
+ finalizeInput(inputIndex) {
90
+ this._wasm.finalize_input(inputIndex);
91
+ }
84
92
  extractTransaction() {
85
93
  return transaction_js_1.Transaction.fromWasm(this._wasm.extract_transaction());
86
94
  }
@@ -17,6 +17,16 @@ export type FromInputOptions = {
17
17
  */
18
18
  utxolibCompat?: boolean;
19
19
  };
20
+ /**
21
+ * Options for output dimension calculation
22
+ */
23
+ export type FromOutputOptions = {
24
+ /**
25
+ * Set when `address` may be a ZIP-316 Unified Address whose Orchard receiver should be sized
26
+ * as a shielded output. Forwarded to `toOutputScriptWithCoin`'s `canBeShieldedOutput`.
27
+ */
28
+ isShielded?: boolean;
29
+ };
20
30
  /**
21
31
  * Dimensions class for estimating transaction virtual size.
22
32
  *
@@ -52,9 +62,12 @@ export declare class Dimensions {
52
62
  */
53
63
  static fromOutput(script: Uint8Array): Dimensions;
54
64
  /**
55
- * Create dimensions for a single output from an address
65
+ * Create dimensions for a single output from an address.
66
+ *
67
+ * Pass `{ isShielded: true }` when `address` may be a ZIP-316 Unified Address whose Orchard
68
+ * receiver should be sized as a shielded output
56
69
  */
57
- static fromOutput(address: string, network: CoinName): Dimensions;
70
+ static fromOutput(address: string, network: CoinName, options?: FromOutputOptions): Dimensions;
58
71
  /**
59
72
  * Create dimensions for a single output from script length only
60
73
  */
@@ -45,12 +45,12 @@ class Dimensions {
45
45
  }
46
46
  return new Dimensions(wasm_utxo_js_1.WasmDimensions.from_input(params.chain, params.signPath?.signer, params.signPath?.cosigner, compat));
47
47
  }
48
- static fromOutput(params, network) {
48
+ static fromOutput(params, network, options) {
49
49
  if (typeof params === "string") {
50
50
  if (network === undefined) {
51
51
  throw new Error("network is required when passing an address string");
52
52
  }
53
- const script = (0, address_js_1.toOutputScriptWithCoin)(params, network);
53
+ const script = (0, address_js_1.toOutputScriptWithCoin)(params, network, options?.isShielded);
54
54
  return new Dimensions(wasm_utxo_js_1.WasmDimensions.from_output_script_length(script.length));
55
55
  }
56
56
  if (typeof params === "object" && "scriptType" in params) {
@@ -198,4 +198,28 @@ export declare class ZcashBitGoPsbt extends BitGoPsbt<ZcashParsedOutput> {
198
198
  * @throws Error if the PSBT is not fully finalized or extraction fails
199
199
  */
200
200
  extractTransaction(maxFeeRate?: number): ZcashTransaction;
201
+ /**
202
+ * Add a plain transparent output. Just `script`/`value` (no `unifiedAddress`) is the same as
203
+ * the generic {@link BitGoPsbt.addOutput}, unchanged.
204
+ *
205
+ * If `unifiedAddress` is given, it must be a Unified Address whose transparent receiver is
206
+ * exactly `script` — mismatches throw rather than being silently stored. It is then kept
207
+ * verbatim, keyed by this output's index, so {@link ZcashBitGoPsbt.transparentOutputUnifiedAddress}
208
+ * can later return the original UA string rather than just the bare scriptPubkey.
209
+ *
210
+ * `unifiedAddress` is only supported on a legacy v4 `ZcashBitGoPsbt` — the v6 (Ironwood)
211
+ * shielded side has its own UA path (`ZcashIronwoodBitGoPsbt.addShieldedOutput`'s
212
+ * `unifiedAddress` option).
213
+ *
214
+ * @param script - The output scriptPubkey
215
+ * @param value - The value in zatoshi
216
+ * @param unifiedAddress - Optional full Unified Address `script` was resolved from
217
+ * @returns The index of the newly added output
218
+ */
219
+ addTransparentOutput(script: Uint8Array, value: bigint, unifiedAddress?: string): number;
220
+ /**
221
+ * The Unified Address stored by {@link ZcashBitGoPsbt.addTransparentOutput} for output `index`,
222
+ * if one was supplied — `undefined` otherwise.
223
+ */
224
+ transparentOutputUnifiedAddress(index: number): string | undefined;
201
225
  }
@@ -214,5 +214,33 @@ class ZcashBitGoPsbt extends BitGoPsbt_js_1.BitGoPsbt {
214
214
  extractTransaction(maxFeeRate) {
215
215
  return transaction_js_1.ZcashTransaction.fromWasm(this.wasm.extract_zcash_transaction(maxFeeRate));
216
216
  }
217
+ /**
218
+ * Add a plain transparent output. Just `script`/`value` (no `unifiedAddress`) is the same as
219
+ * the generic {@link BitGoPsbt.addOutput}, unchanged.
220
+ *
221
+ * If `unifiedAddress` is given, it must be a Unified Address whose transparent receiver is
222
+ * exactly `script` — mismatches throw rather than being silently stored. It is then kept
223
+ * verbatim, keyed by this output's index, so {@link ZcashBitGoPsbt.transparentOutputUnifiedAddress}
224
+ * can later return the original UA string rather than just the bare scriptPubkey.
225
+ *
226
+ * `unifiedAddress` is only supported on a legacy v4 `ZcashBitGoPsbt` — the v6 (Ironwood)
227
+ * shielded side has its own UA path (`ZcashIronwoodBitGoPsbt.addShieldedOutput`'s
228
+ * `unifiedAddress` option).
229
+ *
230
+ * @param script - The output scriptPubkey
231
+ * @param value - The value in zatoshi
232
+ * @param unifiedAddress - Optional full Unified Address `script` was resolved from
233
+ * @returns The index of the newly added output
234
+ */
235
+ addTransparentOutput(script, value, unifiedAddress) {
236
+ return this.wasm.add_transparent_output(script, value, unifiedAddress);
237
+ }
238
+ /**
239
+ * The Unified Address stored by {@link ZcashBitGoPsbt.addTransparentOutput} for output `index`,
240
+ * if one was supplied — `undefined` otherwise.
241
+ */
242
+ transparentOutputUnifiedAddress(index) {
243
+ return this.wasm.transparent_output_unified_address(index);
244
+ }
217
245
  }
218
246
  exports.ZcashBitGoPsbt = ZcashBitGoPsbt;
@@ -200,6 +200,18 @@ export class BitGoPsbt {
200
200
  add_paygo_attestation(output_index: number, entropy: Uint8Array, signature: Uint8Array): void;
201
201
  add_replay_protection_input(ecpair: WasmECPair, txid: string, vout: number, value: bigint, sequence?: number | null, prev_tx?: Uint8Array | null): number;
202
202
  add_replay_protection_input_at_index(index: number, ecpair: WasmECPair, txid: string, vout: number, value: bigint, sequence?: number | null, prev_tx?: Uint8Array | null): number;
203
+ /**
204
+ * Zcash-only: add a plain transparent output. Just `script`/`value`
205
+ * (`unified_address: undefined`) is the legacy `add_output` behavior, unchanged.
206
+ *
207
+ * If `unified_address` is given, this PSBT must be a legacy v4 Zcash PSBT — a v6 (Ironwood)
208
+ * PSBT's shielded side already has its own UA path (`add_ironwood_output`). The UA must be a
209
+ * Unified Address whose transparent receiver is exactly `script`; mismatches are rejected
210
+ * rather than silently stored. It is then kept verbatim, keyed by this output's index, so
211
+ * `transparent_output_unified_address` can later return the original UA string rather than
212
+ * just the bare scriptPubkey.
213
+ */
214
+ add_transparent_output(script: Uint8Array, value: bigint, unified_address?: string | null): number;
203
215
  add_wallet_input(txid: string, vout: number, value: bigint, wallet_keys: WasmRootWalletKeys, chain: number, index: number, signer?: string | null, cosigner?: string | null, sequence?: number | null, prev_tx?: Uint8Array | null): number;
204
216
  add_wallet_input_at_index(index: number, txid: string, vout: number, value: bigint, wallet_keys: WasmRootWalletKeys, chain: number, derivation_index: number, signer?: string | null, cosigner?: string | null, sequence?: number | null, prev_tx?: Uint8Array | null): number;
205
217
  add_wallet_output(chain: number, index: number, value: bigint, wallet_keys: WasmRootWalletKeys): number;
@@ -796,6 +808,12 @@ export class BitGoPsbt {
796
808
  * - `Err(WasmUtxoError)` if signing fails
797
809
  */
798
810
  sign_with_xpriv(input_index: number, xpriv: WasmBIP32): void;
811
+ /**
812
+ * Zcash-only: the Unified Address stored by [`Self::add_transparent_output`] for output
813
+ * `index`, if the caller supplied one — `undefined` otherwise (including for a non-Zcash
814
+ * PSBT).
815
+ */
816
+ transparent_output_unified_address(index: number): string | undefined;
799
817
  unsigned_tx_id(): string;
800
818
  /**
801
819
  * Verify if a replay protection input has a valid signature
@@ -1571,6 +1589,13 @@ export class WrapPsbt {
1571
1589
  * The index of the newly added output
1572
1590
  */
1573
1591
  add_output_at_index(index: number, script: Uint8Array, value: bigint): number;
1592
+ /**
1593
+ * Add a 32-byte SHA256 preimage to an input's standard BIP174 metadata.
1594
+ *
1595
+ * Descriptor finalization uses this metadata to satisfy `sha256(H)`
1596
+ * Miniscript fragments when `H == sha256(preimage)`.
1597
+ */
1598
+ add_sha256_preimage(input_index: number, preimage: Uint8Array): void;
1574
1599
  clone(): WrapPsbt;
1575
1600
  delete_input_kv(index: number, key: any): void;
1576
1601
  delete_kv(key: any): void;
@@ -1597,6 +1622,10 @@ export class WrapPsbt {
1597
1622
  * * `expiry_height` - Transaction expiry height (default: 0)
1598
1623
  */
1599
1624
  extract_zcash_transaction(version_group_id?: number | null, expiry_height?: number | null): WasmZcashTransaction;
1625
+ /**
1626
+ * Finalize one Miniscript input, preserving any other incomplete inputs.
1627
+ */
1628
+ finalize_input(input_index: number): void;
1600
1629
  finalize_mut(): void;
1601
1630
  /**
1602
1631
  * Finalize all Zcash transparent inputs using ZIP-243 sighash verification.
@@ -763,6 +763,40 @@ class BitGoPsbt {
763
763
  wasm.__wbindgen_add_to_stack_pointer(16);
764
764
  }
765
765
  }
766
+ /**
767
+ * Zcash-only: add a plain transparent output. Just `script`/`value`
768
+ * (`unified_address: undefined`) is the legacy `add_output` behavior, unchanged.
769
+ *
770
+ * If `unified_address` is given, this PSBT must be a legacy v4 Zcash PSBT — a v6 (Ironwood)
771
+ * PSBT's shielded side already has its own UA path (`add_ironwood_output`). The UA must be a
772
+ * Unified Address whose transparent receiver is exactly `script`; mismatches are rejected
773
+ * rather than silently stored. It is then kept verbatim, keyed by this output's index, so
774
+ * `transparent_output_unified_address` can later return the original UA string rather than
775
+ * just the bare scriptPubkey.
776
+ * @param {Uint8Array} script
777
+ * @param {bigint} value
778
+ * @param {string | null} [unified_address]
779
+ * @returns {number}
780
+ */
781
+ add_transparent_output(script, value, unified_address) {
782
+ try {
783
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
784
+ const ptr0 = passArray8ToWasm0(script, wasm.__wbindgen_export);
785
+ const len0 = WASM_VECTOR_LEN;
786
+ var ptr1 = isLikeNone(unified_address) ? 0 : passStringToWasm0(unified_address, wasm.__wbindgen_export, wasm.__wbindgen_export2);
787
+ var len1 = WASM_VECTOR_LEN;
788
+ wasm.bitgopsbt_add_transparent_output(retptr, this.__wbg_ptr, ptr0, len0, value, ptr1, len1);
789
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
790
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
791
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
792
+ if (r2) {
793
+ throw takeObject(r1);
794
+ }
795
+ return r0 >>> 0;
796
+ } finally {
797
+ wasm.__wbindgen_add_to_stack_pointer(16);
798
+ }
799
+ }
766
800
  /**
767
801
  * @param {string} txid
768
802
  * @param {number} vout
@@ -2590,6 +2624,29 @@ class BitGoPsbt {
2590
2624
  wasm.__wbindgen_add_to_stack_pointer(16);
2591
2625
  }
2592
2626
  }
2627
+ /**
2628
+ * Zcash-only: the Unified Address stored by [`Self::add_transparent_output`] for output
2629
+ * `index`, if the caller supplied one — `undefined` otherwise (including for a non-Zcash
2630
+ * PSBT).
2631
+ * @param {number} index
2632
+ * @returns {string | undefined}
2633
+ */
2634
+ transparent_output_unified_address(index) {
2635
+ try {
2636
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2637
+ wasm.bitgopsbt_transparent_output_unified_address(retptr, this.__wbg_ptr, index);
2638
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2639
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2640
+ let v1;
2641
+ if (r0 !== 0) {
2642
+ v1 = getStringFromWasm0(r0, r1).slice();
2643
+ wasm.__wbindgen_export4(r0, r1 * 1, 1);
2644
+ }
2645
+ return v1;
2646
+ } finally {
2647
+ wasm.__wbindgen_add_to_stack_pointer(16);
2648
+ }
2649
+ }
2593
2650
  /**
2594
2651
  * @returns {string}
2595
2652
  */
@@ -5780,6 +5837,29 @@ class WrapPsbt {
5780
5837
  wasm.__wbindgen_add_to_stack_pointer(16);
5781
5838
  }
5782
5839
  }
5840
+ /**
5841
+ * Add a 32-byte SHA256 preimage to an input's standard BIP174 metadata.
5842
+ *
5843
+ * Descriptor finalization uses this metadata to satisfy `sha256(H)`
5844
+ * Miniscript fragments when `H == sha256(preimage)`.
5845
+ * @param {number} input_index
5846
+ * @param {Uint8Array} preimage
5847
+ */
5848
+ add_sha256_preimage(input_index, preimage) {
5849
+ try {
5850
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
5851
+ const ptr0 = passArray8ToWasm0(preimage, wasm.__wbindgen_export);
5852
+ const len0 = WASM_VECTOR_LEN;
5853
+ wasm.wrappsbt_add_sha256_preimage(retptr, this.__wbg_ptr, input_index, ptr0, len0);
5854
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
5855
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
5856
+ if (r1) {
5857
+ throw takeObject(r0);
5858
+ }
5859
+ } finally {
5860
+ wasm.__wbindgen_add_to_stack_pointer(16);
5861
+ }
5862
+ }
5783
5863
  /**
5784
5864
  * @returns {WrapPsbt}
5785
5865
  */
@@ -5911,6 +5991,23 @@ class WrapPsbt {
5911
5991
  wasm.__wbindgen_add_to_stack_pointer(16);
5912
5992
  }
5913
5993
  }
5994
+ /**
5995
+ * Finalize one Miniscript input, preserving any other incomplete inputs.
5996
+ * @param {number} input_index
5997
+ */
5998
+ finalize_input(input_index) {
5999
+ try {
6000
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
6001
+ wasm.wrappsbt_finalize_input(retptr, this.__wbg_ptr, input_index);
6002
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
6003
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
6004
+ if (r1) {
6005
+ throw takeObject(r0);
6006
+ }
6007
+ } finally {
6008
+ wasm.__wbindgen_add_to_stack_pointer(16);
6009
+ }
6010
+ }
5914
6011
  finalize_mut() {
5915
6012
  try {
5916
6013
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
Binary file
@@ -1,48 +1,38 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
- export const __wbg_wasmreplayprotection_free: (a: number, b: number) => void;
5
- export const wasmreplayprotection_from_addresses: (a: number, b: number, c: number, d: number, e: number) => void;
6
- export const wasmreplayprotection_from_output_scripts: (a: number, b: number) => number;
7
- export const wasmreplayprotection_from_public_keys: (a: number, b: number, c: number) => void;
8
- export const __wbg_wasmutxonamespace_free: (a: number, b: number) => void;
9
- export const __wbg_wrapdescriptor_free: (a: number, b: number) => void;
10
- export const __wbg_wrapminiscript_free: (a: number, b: number) => void;
11
- export const wasmutxonamespace_get_wasm_utxo_version: (a: number) => void;
12
- export const wrapdescriptor_atDerivationIndex: (a: number, b: number, c: number) => void;
13
- export const wrapdescriptor_descType: (a: number, b: number) => void;
14
- export const wrapdescriptor_encode: (a: number, b: number) => void;
15
- export const wrapdescriptor_fromString: (a: number, b: number, c: number, d: number, e: number) => void;
16
- export const wrapdescriptor_fromStringDetectType: (a: number, b: number, c: number) => void;
17
- export const wrapdescriptor_fromStringExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
18
- export const wrapdescriptor_hasWildcard: (a: number) => number;
19
- export const wrapdescriptor_maxWeightToSatisfy: (a: number, b: number) => void;
20
- export const wrapdescriptor_node: (a: number, b: number) => void;
21
- export const wrapdescriptor_scriptPubkey: (a: number, b: number) => void;
22
- export const wrapdescriptor_toAsmString: (a: number, b: number) => void;
23
- export const wrapdescriptor_toString: (a: number, b: number) => void;
24
- export const wrapminiscript_encode: (a: number, b: number) => void;
25
- export const wrapminiscript_fromBitcoinScript: (a: number, b: number, c: number, d: number, e: number) => void;
26
- export const wrapminiscript_fromBitcoinScriptExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
27
- export const wrapminiscript_fromString: (a: number, b: number, c: number, d: number, e: number) => void;
28
- export const wrapminiscript_fromStringExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
29
- export const wrapminiscript_node: (a: number, b: number) => void;
30
- export const wrapminiscript_toAsmString: (a: number, b: number) => void;
31
- export const wrapminiscript_toString: (a: number, b: number) => void;
32
4
  export const __wbg_addressnamespace_free: (a: number, b: number) => void;
33
5
  export const __wbg_utxolibcompatnamespace_free: (a: number, b: number) => void;
6
+ export const __wbg_wasmdimensions_free: (a: number, b: number) => void;
7
+ export const addressnamespace_from_output_script_with_coin: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
8
+ export const addressnamespace_to_output_script_with_coin: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
9
+ export const utxolibcompatnamespace_from_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
10
+ export const utxolibcompatnamespace_to_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
11
+ export const wasmdimensions_empty: () => number;
12
+ export const wasmdimensions_from_input: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
13
+ export const wasmdimensions_from_input_script_type: (a: number, b: number, c: number, d: number) => void;
14
+ export const wasmdimensions_from_output_script_length: (a: number) => number;
15
+ export const wasmdimensions_from_output_script_type: (a: number, b: number, c: number) => void;
16
+ export const wasmdimensions_from_psbt: (a: number, b: number) => void;
17
+ export const wasmdimensions_get_input_vsize: (a: number, b: number, c: number) => number;
18
+ export const wasmdimensions_get_input_weight: (a: number, b: number, c: number) => number;
19
+ export const wasmdimensions_get_output_vsize: (a: number) => number;
20
+ export const wasmdimensions_get_output_weight: (a: number) => number;
21
+ export const wasmdimensions_get_vsize: (a: number, b: number, c: number) => number;
22
+ export const wasmdimensions_get_weight: (a: number, b: number, c: number) => number;
23
+ export const wasmdimensions_has_segwit: (a: number) => number;
24
+ export const wasmdimensions_plus: (a: number, b: number) => number;
25
+ export const wasmdimensions_times: (a: number, b: number) => number;
26
+ export const __wbg_messagenamespace_free: (a: number, b: number) => void;
34
27
  export const __wbg_wasmdashtransaction_free: (a: number, b: number) => void;
28
+ export const __wbg_wasmreplayprotection_free: (a: number, b: number) => void;
35
29
  export const __wbg_wasmtransaction_free: (a: number, b: number) => void;
36
30
  export const __wbg_wasmzcashtransaction_free: (a: number, b: number) => void;
37
31
  export const __wbg_wrappsbt_free: (a: number, b: number) => void;
38
32
  export const __wbg_zcashunifiedaddress_free: (a: number, b: number) => void;
39
33
  export const __wbg_zcashv6transaction_free: (a: number, b: number) => void;
40
- export const addressnamespace_from_output_script_with_coin: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
41
- export const addressnamespace_to_output_script_with_coin: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
42
- export const isInspectEnabled: () => number;
43
- export const parsePsbtRawToJson: (a: number, b: number, c: number, d: number, e: number) => void;
44
- export const utxolibcompatnamespace_from_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
45
- export const utxolibcompatnamespace_to_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
34
+ export const messagenamespace_sign_message: (a: number, b: number, c: number, d: number) => void;
35
+ export const messagenamespace_verify_message: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
46
36
  export const wasmdashtransaction_from_bytes: (a: number, b: number, c: number) => void;
47
37
  export const wasmdashtransaction_get_inputs: (a: number, b: number) => void;
48
38
  export const wasmdashtransaction_get_outputs: (a: number, b: number) => void;
@@ -53,6 +43,9 @@ export const wasmdashtransaction_lock_time: (a: number) => number;
53
43
  export const wasmdashtransaction_output_count: (a: number) => number;
54
44
  export const wasmdashtransaction_to_bytes: (a: number, b: number) => void;
55
45
  export const wasmdashtransaction_version: (a: number) => number;
46
+ export const wasmreplayprotection_from_addresses: (a: number, b: number, c: number, d: number, e: number) => void;
47
+ export const wasmreplayprotection_from_output_scripts: (a: number, b: number) => number;
48
+ export const wasmreplayprotection_from_public_keys: (a: number, b: number, c: number) => void;
56
49
  export const wasmtransaction_add_input: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
57
50
  export const wasmtransaction_add_input_at_index: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
58
51
  export const wasmtransaction_add_output: (a: number, b: number, c: number, d: bigint) => number;
@@ -75,6 +68,7 @@ export const wrappsbt_add_input: (a: number, b: number, c: number, d: number, e:
75
68
  export const wrappsbt_add_input_at_index: (a: number, b: number, c: number, d: number, e: number, f: number, g: bigint, h: number, i: number, j: number) => void;
76
69
  export const wrappsbt_add_output: (a: number, b: number, c: number, d: bigint) => number;
77
70
  export const wrappsbt_add_output_at_index: (a: number, b: number, c: number, d: number, e: number, f: bigint) => void;
71
+ export const wrappsbt_add_sha256_preimage: (a: number, b: number, c: number, d: number, e: number) => void;
78
72
  export const wrappsbt_clone: (a: number) => number;
79
73
  export const wrappsbt_delete_input_kv: (a: number, b: number, c: number, d: number) => void;
80
74
  export const wrappsbt_delete_kv: (a: number, b: number, c: number) => void;
@@ -82,6 +76,7 @@ export const wrappsbt_delete_output_kv: (a: number, b: number, c: number, d: num
82
76
  export const wrappsbt_deserialize: (a: number, b: number, c: number) => void;
83
77
  export const wrappsbt_extract_transaction: (a: number, b: number) => void;
84
78
  export const wrappsbt_extract_zcash_transaction: (a: number, b: number, c: number, d: number) => void;
79
+ export const wrappsbt_finalize_input: (a: number, b: number, c: number) => void;
85
80
  export const wrappsbt_finalize_mut: (a: number, b: number) => void;
86
81
  export const wrappsbt_finalize_mut_zcash: (a: number, b: number, c: number, d: number, e: number) => void;
87
82
  export const wrappsbt_get_global_xpubs: (a: number) => number;
@@ -137,41 +132,50 @@ export const wasmtransaction_input_count: (a: number) => number;
137
132
  export const wasmtransaction_output_count: (a: number) => number;
138
133
  export const wasmzcashtransaction_input_count: (a: number) => number;
139
134
  export const wasmzcashtransaction_output_count: (a: number) => number;
140
- export const parsePsbtToJson: (a: number, b: number, c: number, d: number, e: number) => void;
141
- export const parseTxToJson: (a: number, b: number, c: number, d: number, e: number) => void;
142
135
  export const wasmtransaction_lock_time: (a: number) => number;
143
136
  export const wasmtransaction_version: (a: number) => number;
144
137
  export const wasmzcashtransaction_lock_time: (a: number) => number;
145
138
  export const wasmzcashtransaction_version: (a: number) => number;
146
139
  export const wrappsbt_lock_time: (a: number) => number;
147
140
  export const wrappsbt_version: (a: number) => number;
148
- export const __wbg_messagenamespace_free: (a: number, b: number) => void;
149
- export const __wbg_wasmecpair_free: (a: number, b: number) => void;
150
- export const messagenamespace_sign_message: (a: number, b: number, c: number, d: number) => void;
151
- export const messagenamespace_verify_message: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
152
- export const wasmecpair_from_private_key: (a: number, b: number, c: number) => void;
153
- export const wasmecpair_from_public_key: (a: number, b: number, c: number) => void;
154
- export const wasmecpair_from_wif: (a: number, b: number, c: number) => void;
155
- export const wasmecpair_from_wif_mainnet: (a: number, b: number, c: number) => void;
156
- export const wasmecpair_from_wif_testnet: (a: number, b: number, c: number) => void;
157
- export const wasmecpair_private_key: (a: number) => number;
158
- export const wasmecpair_public_key: (a: number) => number;
159
- export const wasmecpair_to_wif: (a: number, b: number) => void;
160
- export const wasmecpair_to_wif_mainnet: (a: number, b: number) => void;
161
- export const wasmecpair_to_wif_testnet: (a: number, b: number) => void;
162
- export const __wbg_bip322namespace_free: (a: number, b: number) => void;
163
- export const __wbg_bitgopsbt_free: (a: number, b: number) => void;
164
- export const __wbg_fixedscriptwalletnamespace_free: (a: number, b: number) => void;
165
141
  export const __wbg_inscriptionsnamespace_free: (a: number, b: number) => void;
166
- export const __wbg_wasmbip32_free: (a: number, b: number) => void;
167
- export const __wbg_wasmdimensions_free: (a: number, b: number) => void;
168
- export const __wbg_wasmrootwalletkeys_free: (a: number, b: number) => void;
142
+ export const __wbg_wrapdescriptor_free: (a: number, b: number) => void;
143
+ export const __wbg_wrapminiscript_free: (a: number, b: number) => void;
144
+ export const inscriptionsnamespace_create_inscription_reveal_data: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
145
+ 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;
146
+ export const wrapdescriptor_atDerivationIndex: (a: number, b: number, c: number) => void;
147
+ export const wrapdescriptor_descType: (a: number, b: number) => void;
148
+ export const wrapdescriptor_encode: (a: number, b: number) => void;
149
+ export const wrapdescriptor_fromString: (a: number, b: number, c: number, d: number, e: number) => void;
150
+ export const wrapdescriptor_fromStringDetectType: (a: number, b: number, c: number) => void;
151
+ export const wrapdescriptor_fromStringExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
152
+ export const wrapdescriptor_hasWildcard: (a: number) => number;
153
+ export const wrapdescriptor_maxWeightToSatisfy: (a: number, b: number) => void;
154
+ export const wrapdescriptor_node: (a: number, b: number) => void;
155
+ export const wrapdescriptor_scriptPubkey: (a: number, b: number) => void;
156
+ export const wrapdescriptor_toAsmString: (a: number, b: number) => void;
157
+ export const wrapdescriptor_toString: (a: number, b: number) => void;
158
+ export const wrapminiscript_encode: (a: number, b: number) => void;
159
+ export const wrapminiscript_fromBitcoinScript: (a: number, b: number, c: number, d: number, e: number) => void;
160
+ export const wrapminiscript_fromBitcoinScriptExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
161
+ export const wrapminiscript_fromString: (a: number, b: number, c: number, d: number, e: number) => void;
162
+ export const wrapminiscript_fromStringExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
163
+ export const wrapminiscript_node: (a: number, b: number) => void;
164
+ export const wrapminiscript_toAsmString: (a: number, b: number) => void;
165
+ export const wrapminiscript_toString: (a: number, b: number) => void;
166
+ export const __wbg_bip322namespace_free: (a: number, b: number) => void;
169
167
  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;
170
168
  export const bip322namespace_get_bip322_message: (a: number, b: number, c: number) => void;
171
169
  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;
172
170
  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;
173
171
  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;
174
172
  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;
173
+ export const __wbg_bitgopsbt_free: (a: number, b: number) => void;
174
+ export const __wbg_fixedscriptwalletnamespace_free: (a: number, b: number) => void;
175
+ export const __wbg_wasmbip32_free: (a: number, b: number) => void;
176
+ export const __wbg_wasmecpair_free: (a: number, b: number) => void;
177
+ export const __wbg_wasmrootwalletkeys_free: (a: number, b: number) => void;
178
+ export const __wbg_wasmutxonamespace_free: (a: number, b: number) => void;
175
179
  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;
176
180
  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;
177
181
  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, l: number, m: number) => void;
@@ -184,6 +188,7 @@ export const bitgopsbt_add_output_with_address_at_index: (a: number, b: number,
184
188
  export const bitgopsbt_add_paygo_attestation: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
185
189
  export const bitgopsbt_add_replay_protection_input: (a: number, b: number, c: number, d: number, e: number, f: number, g: bigint, h: number, i: number, j: number) => void;
186
190
  export const bitgopsbt_add_replay_protection_input_at_index: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: bigint, i: number, j: number, k: number) => void;
191
+ export const bitgopsbt_add_transparent_output: (a: number, b: number, c: number, d: number, e: bigint, f: number, g: number) => void;
187
192
  export const bitgopsbt_add_wallet_input: (a: number, b: number, c: number, d: number, e: number, f: bigint, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number) => void;
188
193
  export const bitgopsbt_add_wallet_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, m: number, n: number, o: number, p: number, q: number) => void;
189
194
  export const bitgopsbt_add_wallet_output: (a: number, b: number, c: number, d: number, e: bigint, f: number) => void;
@@ -250,6 +255,7 @@ export const bitgopsbt_sign_single_input_with_privkey: (a: number, b: number, c:
250
255
  export const bitgopsbt_sign_single_input_with_xpriv: (a: number, b: number, c: number, d: number) => void;
251
256
  export const bitgopsbt_sign_with_privkey: (a: number, b: number, c: number, d: number) => void;
252
257
  export const bitgopsbt_sign_with_xpriv: (a: number, b: number, c: number, d: number) => void;
258
+ export const bitgopsbt_transparent_output_unified_address: (a: number, b: number, c: number) => void;
253
259
  export const bitgopsbt_unsigned_tx_id: (a: number, b: number) => void;
254
260
  export const bitgopsbt_verify_replay_protection_signature: (a: number, b: number, c: number, d: number) => void;
255
261
  export const bitgopsbt_verify_signature_with_pub: (a: number, b: number, c: number, d: number) => void;
@@ -266,8 +272,8 @@ export const fixedscriptwalletnamespace_output_script_with_network_str: (a: numb
266
272
  export const fixedscriptwalletnamespace_p2sh_p2pk_output_script: (a: number, b: number, c: number) => void;
267
273
  export const fixedscriptwalletnamespace_supports_script_type: (a: number, b: number, c: number, d: number, e: number) => void;
268
274
  export const fixedscriptwalletnamespace_to_wallet_keys: (a: number, b: number, c: number, d: number, e: number) => void;
269
- export const inscriptionsnamespace_create_inscription_reveal_data: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
270
- 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;
275
+ export const isInspectEnabled: () => number;
276
+ export const parsePsbtRawToJson: (a: number, b: number, c: number, d: number, e: number) => void;
271
277
  export const wasmbip32_chain_code: (a: number) => number;
272
278
  export const wasmbip32_depth: (a: number) => number;
273
279
  export const wasmbip32_derive: (a: number, b: number, c: number) => void;
@@ -290,30 +296,28 @@ export const wasmbip32_private_key: (a: number) => number;
290
296
  export const wasmbip32_public_key: (a: number) => number;
291
297
  export const wasmbip32_to_base58: (a: number, b: number) => void;
292
298
  export const wasmbip32_to_wif: (a: number, b: number) => void;
293
- export const wasmdimensions_empty: () => number;
294
- export const wasmdimensions_from_input: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
295
- export const wasmdimensions_from_input_script_type: (a: number, b: number, c: number, d: number) => void;
296
- export const wasmdimensions_from_output_script_length: (a: number) => number;
297
- export const wasmdimensions_from_output_script_type: (a: number, b: number, c: number) => void;
298
- export const wasmdimensions_from_psbt: (a: number, b: number) => void;
299
- export const wasmdimensions_get_input_vsize: (a: number, b: number, c: number) => number;
300
- export const wasmdimensions_get_input_weight: (a: number, b: number, c: number) => number;
301
- export const wasmdimensions_get_output_vsize: (a: number) => number;
302
- export const wasmdimensions_get_output_weight: (a: number) => number;
303
- export const wasmdimensions_get_vsize: (a: number, b: number, c: number) => number;
304
- export const wasmdimensions_get_weight: (a: number, b: number, c: number) => number;
305
- export const wasmdimensions_has_segwit: (a: number) => number;
306
- export const wasmdimensions_plus: (a: number, b: number) => number;
307
- export const wasmdimensions_times: (a: number, b: number) => number;
299
+ export const wasmecpair_from_private_key: (a: number, b: number, c: number) => void;
300
+ export const wasmecpair_from_public_key: (a: number, b: number, c: number) => void;
301
+ export const wasmecpair_from_wif: (a: number, b: number, c: number) => void;
302
+ export const wasmecpair_from_wif_mainnet: (a: number, b: number, c: number) => void;
303
+ export const wasmecpair_from_wif_testnet: (a: number, b: number, c: number) => void;
304
+ export const wasmecpair_private_key: (a: number) => number;
305
+ export const wasmecpair_public_key: (a: number) => number;
306
+ export const wasmecpair_to_wif: (a: number, b: number) => void;
307
+ export const wasmecpair_to_wif_mainnet: (a: number, b: number) => void;
308
+ export const wasmecpair_to_wif_testnet: (a: number, b: number) => void;
308
309
  export const wasmrootwalletkeys_backup_key: (a: number) => number;
309
310
  export const wasmrootwalletkeys_bitgo_key: (a: number) => number;
310
311
  export const wasmrootwalletkeys_new: (a: number, b: number, c: number, d: number) => void;
311
312
  export const wasmrootwalletkeys_user_key: (a: number) => number;
312
313
  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;
314
+ export const wasmutxonamespace_get_wasm_utxo_version: (a: number) => void;
313
315
  export const wasmbip32_from_bip32_properties: (a: number, b: number) => void;
314
- export const bitgopsbt_sign_replay_protection_inputs: (a: number, b: number, c: number) => void;
316
+ export const parsePsbtToJson: (a: number, b: number, c: number, d: number, e: number) => void;
317
+ export const parseTxToJson: (a: number, b: number, c: number, d: number, e: number) => void;
315
318
  export const bitgopsbt_sign_wallet_input: (a: number, b: number, c: number, d: number) => void;
316
319
  export const bitgopsbt_sign_all_with_xpriv: (a: number, b: number, c: number) => void;
320
+ export const bitgopsbt_sign_replay_protection_inputs: (a: number, b: number, c: number) => void;
317
321
  export const rustsecp256k1_v0_10_0_context_create: (a: number) => number;
318
322
  export const rustsecp256k1_v0_10_0_context_destroy: (a: number) => void;
319
323
  export const rustsecp256k1_v0_10_0_default_error_callback_fn: (a: number, b: number) => void;
@@ -20,6 +20,8 @@ export declare class Psbt extends PsbtBase<WasmPsbt> implements IPsbt {
20
20
  addOutput(script: Uint8Array, value: bigint): number;
21
21
  updateInputWithDescriptor(inputIndex: number, descriptor: WrapDescriptor): void;
22
22
  updateOutputWithDescriptor(outputIndex: number, descriptor: WrapDescriptor): void;
23
+ /** Add a 32-byte SHA256 preimage for Miniscript descriptor finalization. */
24
+ addSha256Preimage(inputIndex: number, preimage: Uint8Array): void;
23
25
  signWithXprv(xprv: string): SignPsbtResult;
24
26
  signWithPrv(prv: Uint8Array): SignPsbtResult;
25
27
  signAll(key: WasmBIP32): SignPsbtResult;
@@ -33,5 +35,7 @@ export declare class Psbt extends PsbtBase<WasmPsbt> implements IPsbt {
33
35
  verifySignatureWithKey(inputIndex: number, key: WasmBIP32): boolean;
34
36
  getUnsignedTx(): Uint8Array;
35
37
  finalize(): void;
38
+ /** Finalize one Miniscript input without requiring all inputs to be complete. */
39
+ finalizeInput(inputIndex: number): void;
36
40
  extractTransaction(): Transaction;
37
41
  }
@@ -44,6 +44,10 @@ export class Psbt extends PsbtBase {
44
44
  updateOutputWithDescriptor(outputIndex, descriptor) {
45
45
  this._wasm.update_output_with_descriptor(outputIndex, descriptor);
46
46
  }
47
+ /** Add a 32-byte SHA256 preimage for Miniscript descriptor finalization. */
48
+ addSha256Preimage(inputIndex, preimage) {
49
+ this._wasm.add_sha256_preimage(inputIndex, preimage);
50
+ }
47
51
  // -- Signing --
48
52
  signWithXprv(xprv) {
49
53
  return this._wasm.sign_with_xprv(xprv);
@@ -78,6 +82,10 @@ export class Psbt extends PsbtBase {
78
82
  finalize() {
79
83
  this._wasm.finalize_mut();
80
84
  }
85
+ /** Finalize one Miniscript input without requiring all inputs to be complete. */
86
+ finalizeInput(inputIndex) {
87
+ this._wasm.finalize_input(inputIndex);
88
+ }
81
89
  extractTransaction() {
82
90
  return Transaction.fromWasm(this._wasm.extract_transaction());
83
91
  }
@@ -17,6 +17,16 @@ export type FromInputOptions = {
17
17
  */
18
18
  utxolibCompat?: boolean;
19
19
  };
20
+ /**
21
+ * Options for output dimension calculation
22
+ */
23
+ export type FromOutputOptions = {
24
+ /**
25
+ * Set when `address` may be a ZIP-316 Unified Address whose Orchard receiver should be sized
26
+ * as a shielded output. Forwarded to `toOutputScriptWithCoin`'s `canBeShieldedOutput`.
27
+ */
28
+ isShielded?: boolean;
29
+ };
20
30
  /**
21
31
  * Dimensions class for estimating transaction virtual size.
22
32
  *
@@ -52,9 +62,12 @@ export declare class Dimensions {
52
62
  */
53
63
  static fromOutput(script: Uint8Array): Dimensions;
54
64
  /**
55
- * Create dimensions for a single output from an address
65
+ * Create dimensions for a single output from an address.
66
+ *
67
+ * Pass `{ isShielded: true }` when `address` may be a ZIP-316 Unified Address whose Orchard
68
+ * receiver should be sized as a shielded output
56
69
  */
57
- static fromOutput(address: string, network: CoinName): Dimensions;
70
+ static fromOutput(address: string, network: CoinName, options?: FromOutputOptions): Dimensions;
58
71
  /**
59
72
  * Create dimensions for a single output from script length only
60
73
  */
@@ -42,12 +42,12 @@ export class Dimensions {
42
42
  }
43
43
  return new Dimensions(WasmDimensions.from_input(params.chain, params.signPath?.signer, params.signPath?.cosigner, compat));
44
44
  }
45
- static fromOutput(params, network) {
45
+ static fromOutput(params, network, options) {
46
46
  if (typeof params === "string") {
47
47
  if (network === undefined) {
48
48
  throw new Error("network is required when passing an address string");
49
49
  }
50
- const script = toOutputScriptWithCoin(params, network);
50
+ const script = toOutputScriptWithCoin(params, network, options?.isShielded);
51
51
  return new Dimensions(WasmDimensions.from_output_script_length(script.length));
52
52
  }
53
53
  if (typeof params === "object" && "scriptType" in params) {
@@ -198,4 +198,28 @@ export declare class ZcashBitGoPsbt extends BitGoPsbt<ZcashParsedOutput> {
198
198
  * @throws Error if the PSBT is not fully finalized or extraction fails
199
199
  */
200
200
  extractTransaction(maxFeeRate?: number): ZcashTransaction;
201
+ /**
202
+ * Add a plain transparent output. Just `script`/`value` (no `unifiedAddress`) is the same as
203
+ * the generic {@link BitGoPsbt.addOutput}, unchanged.
204
+ *
205
+ * If `unifiedAddress` is given, it must be a Unified Address whose transparent receiver is
206
+ * exactly `script` — mismatches throw rather than being silently stored. It is then kept
207
+ * verbatim, keyed by this output's index, so {@link ZcashBitGoPsbt.transparentOutputUnifiedAddress}
208
+ * can later return the original UA string rather than just the bare scriptPubkey.
209
+ *
210
+ * `unifiedAddress` is only supported on a legacy v4 `ZcashBitGoPsbt` — the v6 (Ironwood)
211
+ * shielded side has its own UA path (`ZcashIronwoodBitGoPsbt.addShieldedOutput`'s
212
+ * `unifiedAddress` option).
213
+ *
214
+ * @param script - The output scriptPubkey
215
+ * @param value - The value in zatoshi
216
+ * @param unifiedAddress - Optional full Unified Address `script` was resolved from
217
+ * @returns The index of the newly added output
218
+ */
219
+ addTransparentOutput(script: Uint8Array, value: bigint, unifiedAddress?: string): number;
220
+ /**
221
+ * The Unified Address stored by {@link ZcashBitGoPsbt.addTransparentOutput} for output `index`,
222
+ * if one was supplied — `undefined` otherwise.
223
+ */
224
+ transparentOutputUnifiedAddress(index: number): string | undefined;
201
225
  }
@@ -211,4 +211,32 @@ export class ZcashBitGoPsbt extends BitGoPsbt {
211
211
  extractTransaction(maxFeeRate) {
212
212
  return ZcashTransaction.fromWasm(this.wasm.extract_zcash_transaction(maxFeeRate));
213
213
  }
214
+ /**
215
+ * Add a plain transparent output. Just `script`/`value` (no `unifiedAddress`) is the same as
216
+ * the generic {@link BitGoPsbt.addOutput}, unchanged.
217
+ *
218
+ * If `unifiedAddress` is given, it must be a Unified Address whose transparent receiver is
219
+ * exactly `script` — mismatches throw rather than being silently stored. It is then kept
220
+ * verbatim, keyed by this output's index, so {@link ZcashBitGoPsbt.transparentOutputUnifiedAddress}
221
+ * can later return the original UA string rather than just the bare scriptPubkey.
222
+ *
223
+ * `unifiedAddress` is only supported on a legacy v4 `ZcashBitGoPsbt` — the v6 (Ironwood)
224
+ * shielded side has its own UA path (`ZcashIronwoodBitGoPsbt.addShieldedOutput`'s
225
+ * `unifiedAddress` option).
226
+ *
227
+ * @param script - The output scriptPubkey
228
+ * @param value - The value in zatoshi
229
+ * @param unifiedAddress - Optional full Unified Address `script` was resolved from
230
+ * @returns The index of the newly added output
231
+ */
232
+ addTransparentOutput(script, value, unifiedAddress) {
233
+ return this.wasm.add_transparent_output(script, value, unifiedAddress);
234
+ }
235
+ /**
236
+ * The Unified Address stored by {@link ZcashBitGoPsbt.addTransparentOutput} for output `index`,
237
+ * if one was supplied — `undefined` otherwise.
238
+ */
239
+ transparentOutputUnifiedAddress(index) {
240
+ return this.wasm.transparent_output_unified_address(index);
241
+ }
214
242
  }
@@ -200,6 +200,18 @@ export class BitGoPsbt {
200
200
  add_paygo_attestation(output_index: number, entropy: Uint8Array, signature: Uint8Array): void;
201
201
  add_replay_protection_input(ecpair: WasmECPair, txid: string, vout: number, value: bigint, sequence?: number | null, prev_tx?: Uint8Array | null): number;
202
202
  add_replay_protection_input_at_index(index: number, ecpair: WasmECPair, txid: string, vout: number, value: bigint, sequence?: number | null, prev_tx?: Uint8Array | null): number;
203
+ /**
204
+ * Zcash-only: add a plain transparent output. Just `script`/`value`
205
+ * (`unified_address: undefined`) is the legacy `add_output` behavior, unchanged.
206
+ *
207
+ * If `unified_address` is given, this PSBT must be a legacy v4 Zcash PSBT — a v6 (Ironwood)
208
+ * PSBT's shielded side already has its own UA path (`add_ironwood_output`). The UA must be a
209
+ * Unified Address whose transparent receiver is exactly `script`; mismatches are rejected
210
+ * rather than silently stored. It is then kept verbatim, keyed by this output's index, so
211
+ * `transparent_output_unified_address` can later return the original UA string rather than
212
+ * just the bare scriptPubkey.
213
+ */
214
+ add_transparent_output(script: Uint8Array, value: bigint, unified_address?: string | null): number;
203
215
  add_wallet_input(txid: string, vout: number, value: bigint, wallet_keys: WasmRootWalletKeys, chain: number, index: number, signer?: string | null, cosigner?: string | null, sequence?: number | null, prev_tx?: Uint8Array | null): number;
204
216
  add_wallet_input_at_index(index: number, txid: string, vout: number, value: bigint, wallet_keys: WasmRootWalletKeys, chain: number, derivation_index: number, signer?: string | null, cosigner?: string | null, sequence?: number | null, prev_tx?: Uint8Array | null): number;
205
217
  add_wallet_output(chain: number, index: number, value: bigint, wallet_keys: WasmRootWalletKeys): number;
@@ -796,6 +808,12 @@ export class BitGoPsbt {
796
808
  * - `Err(WasmUtxoError)` if signing fails
797
809
  */
798
810
  sign_with_xpriv(input_index: number, xpriv: WasmBIP32): void;
811
+ /**
812
+ * Zcash-only: the Unified Address stored by [`Self::add_transparent_output`] for output
813
+ * `index`, if the caller supplied one — `undefined` otherwise (including for a non-Zcash
814
+ * PSBT).
815
+ */
816
+ transparent_output_unified_address(index: number): string | undefined;
799
817
  unsigned_tx_id(): string;
800
818
  /**
801
819
  * Verify if a replay protection input has a valid signature
@@ -1571,6 +1589,13 @@ export class WrapPsbt {
1571
1589
  * The index of the newly added output
1572
1590
  */
1573
1591
  add_output_at_index(index: number, script: Uint8Array, value: bigint): number;
1592
+ /**
1593
+ * Add a 32-byte SHA256 preimage to an input's standard BIP174 metadata.
1594
+ *
1595
+ * Descriptor finalization uses this metadata to satisfy `sha256(H)`
1596
+ * Miniscript fragments when `H == sha256(preimage)`.
1597
+ */
1598
+ add_sha256_preimage(input_index: number, preimage: Uint8Array): void;
1574
1599
  clone(): WrapPsbt;
1575
1600
  delete_input_kv(index: number, key: any): void;
1576
1601
  delete_kv(key: any): void;
@@ -1597,6 +1622,10 @@ export class WrapPsbt {
1597
1622
  * * `expiry_height` - Transaction expiry height (default: 0)
1598
1623
  */
1599
1624
  extract_zcash_transaction(version_group_id?: number | null, expiry_height?: number | null): WasmZcashTransaction;
1625
+ /**
1626
+ * Finalize one Miniscript input, preserving any other incomplete inputs.
1627
+ */
1628
+ finalize_input(input_index: number): void;
1600
1629
  finalize_mut(): void;
1601
1630
  /**
1602
1631
  * Finalize all Zcash transparent inputs using ZIP-243 sighash verification.
@@ -759,6 +759,40 @@ export class BitGoPsbt {
759
759
  wasm.__wbindgen_add_to_stack_pointer(16);
760
760
  }
761
761
  }
762
+ /**
763
+ * Zcash-only: add a plain transparent output. Just `script`/`value`
764
+ * (`unified_address: undefined`) is the legacy `add_output` behavior, unchanged.
765
+ *
766
+ * If `unified_address` is given, this PSBT must be a legacy v4 Zcash PSBT — a v6 (Ironwood)
767
+ * PSBT's shielded side already has its own UA path (`add_ironwood_output`). The UA must be a
768
+ * Unified Address whose transparent receiver is exactly `script`; mismatches are rejected
769
+ * rather than silently stored. It is then kept verbatim, keyed by this output's index, so
770
+ * `transparent_output_unified_address` can later return the original UA string rather than
771
+ * just the bare scriptPubkey.
772
+ * @param {Uint8Array} script
773
+ * @param {bigint} value
774
+ * @param {string | null} [unified_address]
775
+ * @returns {number}
776
+ */
777
+ add_transparent_output(script, value, unified_address) {
778
+ try {
779
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
780
+ const ptr0 = passArray8ToWasm0(script, wasm.__wbindgen_export);
781
+ const len0 = WASM_VECTOR_LEN;
782
+ var ptr1 = isLikeNone(unified_address) ? 0 : passStringToWasm0(unified_address, wasm.__wbindgen_export, wasm.__wbindgen_export2);
783
+ var len1 = WASM_VECTOR_LEN;
784
+ wasm.bitgopsbt_add_transparent_output(retptr, this.__wbg_ptr, ptr0, len0, value, ptr1, len1);
785
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
786
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
787
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
788
+ if (r2) {
789
+ throw takeObject(r1);
790
+ }
791
+ return r0 >>> 0;
792
+ } finally {
793
+ wasm.__wbindgen_add_to_stack_pointer(16);
794
+ }
795
+ }
762
796
  /**
763
797
  * @param {string} txid
764
798
  * @param {number} vout
@@ -2586,6 +2620,29 @@ export class BitGoPsbt {
2586
2620
  wasm.__wbindgen_add_to_stack_pointer(16);
2587
2621
  }
2588
2622
  }
2623
+ /**
2624
+ * Zcash-only: the Unified Address stored by [`Self::add_transparent_output`] for output
2625
+ * `index`, if the caller supplied one — `undefined` otherwise (including for a non-Zcash
2626
+ * PSBT).
2627
+ * @param {number} index
2628
+ * @returns {string | undefined}
2629
+ */
2630
+ transparent_output_unified_address(index) {
2631
+ try {
2632
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2633
+ wasm.bitgopsbt_transparent_output_unified_address(retptr, this.__wbg_ptr, index);
2634
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2635
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2636
+ let v1;
2637
+ if (r0 !== 0) {
2638
+ v1 = getStringFromWasm0(r0, r1).slice();
2639
+ wasm.__wbindgen_export4(r0, r1 * 1, 1);
2640
+ }
2641
+ return v1;
2642
+ } finally {
2643
+ wasm.__wbindgen_add_to_stack_pointer(16);
2644
+ }
2645
+ }
2589
2646
  /**
2590
2647
  * @returns {string}
2591
2648
  */
@@ -5760,6 +5817,29 @@ export class WrapPsbt {
5760
5817
  wasm.__wbindgen_add_to_stack_pointer(16);
5761
5818
  }
5762
5819
  }
5820
+ /**
5821
+ * Add a 32-byte SHA256 preimage to an input's standard BIP174 metadata.
5822
+ *
5823
+ * Descriptor finalization uses this metadata to satisfy `sha256(H)`
5824
+ * Miniscript fragments when `H == sha256(preimage)`.
5825
+ * @param {number} input_index
5826
+ * @param {Uint8Array} preimage
5827
+ */
5828
+ add_sha256_preimage(input_index, preimage) {
5829
+ try {
5830
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
5831
+ const ptr0 = passArray8ToWasm0(preimage, wasm.__wbindgen_export);
5832
+ const len0 = WASM_VECTOR_LEN;
5833
+ wasm.wrappsbt_add_sha256_preimage(retptr, this.__wbg_ptr, input_index, ptr0, len0);
5834
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
5835
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
5836
+ if (r1) {
5837
+ throw takeObject(r0);
5838
+ }
5839
+ } finally {
5840
+ wasm.__wbindgen_add_to_stack_pointer(16);
5841
+ }
5842
+ }
5763
5843
  /**
5764
5844
  * @returns {WrapPsbt}
5765
5845
  */
@@ -5891,6 +5971,23 @@ export class WrapPsbt {
5891
5971
  wasm.__wbindgen_add_to_stack_pointer(16);
5892
5972
  }
5893
5973
  }
5974
+ /**
5975
+ * Finalize one Miniscript input, preserving any other incomplete inputs.
5976
+ * @param {number} input_index
5977
+ */
5978
+ finalize_input(input_index) {
5979
+ try {
5980
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
5981
+ wasm.wrappsbt_finalize_input(retptr, this.__wbg_ptr, input_index);
5982
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
5983
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
5984
+ if (r1) {
5985
+ throw takeObject(r0);
5986
+ }
5987
+ } finally {
5988
+ wasm.__wbindgen_add_to_stack_pointer(16);
5989
+ }
5990
+ }
5894
5991
  finalize_mut() {
5895
5992
  try {
5896
5993
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
Binary file
@@ -1,48 +1,38 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
- export const __wbg_wasmreplayprotection_free: (a: number, b: number) => void;
5
- export const wasmreplayprotection_from_addresses: (a: number, b: number, c: number, d: number, e: number) => void;
6
- export const wasmreplayprotection_from_output_scripts: (a: number, b: number) => number;
7
- export const wasmreplayprotection_from_public_keys: (a: number, b: number, c: number) => void;
8
- export const __wbg_wasmutxonamespace_free: (a: number, b: number) => void;
9
- export const __wbg_wrapdescriptor_free: (a: number, b: number) => void;
10
- export const __wbg_wrapminiscript_free: (a: number, b: number) => void;
11
- export const wasmutxonamespace_get_wasm_utxo_version: (a: number) => void;
12
- export const wrapdescriptor_atDerivationIndex: (a: number, b: number, c: number) => void;
13
- export const wrapdescriptor_descType: (a: number, b: number) => void;
14
- export const wrapdescriptor_encode: (a: number, b: number) => void;
15
- export const wrapdescriptor_fromString: (a: number, b: number, c: number, d: number, e: number) => void;
16
- export const wrapdescriptor_fromStringDetectType: (a: number, b: number, c: number) => void;
17
- export const wrapdescriptor_fromStringExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
18
- export const wrapdescriptor_hasWildcard: (a: number) => number;
19
- export const wrapdescriptor_maxWeightToSatisfy: (a: number, b: number) => void;
20
- export const wrapdescriptor_node: (a: number, b: number) => void;
21
- export const wrapdescriptor_scriptPubkey: (a: number, b: number) => void;
22
- export const wrapdescriptor_toAsmString: (a: number, b: number) => void;
23
- export const wrapdescriptor_toString: (a: number, b: number) => void;
24
- export const wrapminiscript_encode: (a: number, b: number) => void;
25
- export const wrapminiscript_fromBitcoinScript: (a: number, b: number, c: number, d: number, e: number) => void;
26
- export const wrapminiscript_fromBitcoinScriptExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
27
- export const wrapminiscript_fromString: (a: number, b: number, c: number, d: number, e: number) => void;
28
- export const wrapminiscript_fromStringExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
29
- export const wrapminiscript_node: (a: number, b: number) => void;
30
- export const wrapminiscript_toAsmString: (a: number, b: number) => void;
31
- export const wrapminiscript_toString: (a: number, b: number) => void;
32
4
  export const __wbg_addressnamespace_free: (a: number, b: number) => void;
33
5
  export const __wbg_utxolibcompatnamespace_free: (a: number, b: number) => void;
6
+ export const __wbg_wasmdimensions_free: (a: number, b: number) => void;
7
+ export const addressnamespace_from_output_script_with_coin: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
8
+ export const addressnamespace_to_output_script_with_coin: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
9
+ export const utxolibcompatnamespace_from_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
10
+ export const utxolibcompatnamespace_to_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
11
+ export const wasmdimensions_empty: () => number;
12
+ export const wasmdimensions_from_input: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
13
+ export const wasmdimensions_from_input_script_type: (a: number, b: number, c: number, d: number) => void;
14
+ export const wasmdimensions_from_output_script_length: (a: number) => number;
15
+ export const wasmdimensions_from_output_script_type: (a: number, b: number, c: number) => void;
16
+ export const wasmdimensions_from_psbt: (a: number, b: number) => void;
17
+ export const wasmdimensions_get_input_vsize: (a: number, b: number, c: number) => number;
18
+ export const wasmdimensions_get_input_weight: (a: number, b: number, c: number) => number;
19
+ export const wasmdimensions_get_output_vsize: (a: number) => number;
20
+ export const wasmdimensions_get_output_weight: (a: number) => number;
21
+ export const wasmdimensions_get_vsize: (a: number, b: number, c: number) => number;
22
+ export const wasmdimensions_get_weight: (a: number, b: number, c: number) => number;
23
+ export const wasmdimensions_has_segwit: (a: number) => number;
24
+ export const wasmdimensions_plus: (a: number, b: number) => number;
25
+ export const wasmdimensions_times: (a: number, b: number) => number;
26
+ export const __wbg_messagenamespace_free: (a: number, b: number) => void;
34
27
  export const __wbg_wasmdashtransaction_free: (a: number, b: number) => void;
28
+ export const __wbg_wasmreplayprotection_free: (a: number, b: number) => void;
35
29
  export const __wbg_wasmtransaction_free: (a: number, b: number) => void;
36
30
  export const __wbg_wasmzcashtransaction_free: (a: number, b: number) => void;
37
31
  export const __wbg_wrappsbt_free: (a: number, b: number) => void;
38
32
  export const __wbg_zcashunifiedaddress_free: (a: number, b: number) => void;
39
33
  export const __wbg_zcashv6transaction_free: (a: number, b: number) => void;
40
- export const addressnamespace_from_output_script_with_coin: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
41
- export const addressnamespace_to_output_script_with_coin: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
42
- export const isInspectEnabled: () => number;
43
- export const parsePsbtRawToJson: (a: number, b: number, c: number, d: number, e: number) => void;
44
- export const utxolibcompatnamespace_from_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
45
- export const utxolibcompatnamespace_to_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
34
+ export const messagenamespace_sign_message: (a: number, b: number, c: number, d: number) => void;
35
+ export const messagenamespace_verify_message: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
46
36
  export const wasmdashtransaction_from_bytes: (a: number, b: number, c: number) => void;
47
37
  export const wasmdashtransaction_get_inputs: (a: number, b: number) => void;
48
38
  export const wasmdashtransaction_get_outputs: (a: number, b: number) => void;
@@ -53,6 +43,9 @@ export const wasmdashtransaction_lock_time: (a: number) => number;
53
43
  export const wasmdashtransaction_output_count: (a: number) => number;
54
44
  export const wasmdashtransaction_to_bytes: (a: number, b: number) => void;
55
45
  export const wasmdashtransaction_version: (a: number) => number;
46
+ export const wasmreplayprotection_from_addresses: (a: number, b: number, c: number, d: number, e: number) => void;
47
+ export const wasmreplayprotection_from_output_scripts: (a: number, b: number) => number;
48
+ export const wasmreplayprotection_from_public_keys: (a: number, b: number, c: number) => void;
56
49
  export const wasmtransaction_add_input: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
57
50
  export const wasmtransaction_add_input_at_index: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
58
51
  export const wasmtransaction_add_output: (a: number, b: number, c: number, d: bigint) => number;
@@ -75,6 +68,7 @@ export const wrappsbt_add_input: (a: number, b: number, c: number, d: number, e:
75
68
  export const wrappsbt_add_input_at_index: (a: number, b: number, c: number, d: number, e: number, f: number, g: bigint, h: number, i: number, j: number) => void;
76
69
  export const wrappsbt_add_output: (a: number, b: number, c: number, d: bigint) => number;
77
70
  export const wrappsbt_add_output_at_index: (a: number, b: number, c: number, d: number, e: number, f: bigint) => void;
71
+ export const wrappsbt_add_sha256_preimage: (a: number, b: number, c: number, d: number, e: number) => void;
78
72
  export const wrappsbt_clone: (a: number) => number;
79
73
  export const wrappsbt_delete_input_kv: (a: number, b: number, c: number, d: number) => void;
80
74
  export const wrappsbt_delete_kv: (a: number, b: number, c: number) => void;
@@ -82,6 +76,7 @@ export const wrappsbt_delete_output_kv: (a: number, b: number, c: number, d: num
82
76
  export const wrappsbt_deserialize: (a: number, b: number, c: number) => void;
83
77
  export const wrappsbt_extract_transaction: (a: number, b: number) => void;
84
78
  export const wrappsbt_extract_zcash_transaction: (a: number, b: number, c: number, d: number) => void;
79
+ export const wrappsbt_finalize_input: (a: number, b: number, c: number) => void;
85
80
  export const wrappsbt_finalize_mut: (a: number, b: number) => void;
86
81
  export const wrappsbt_finalize_mut_zcash: (a: number, b: number, c: number, d: number, e: number) => void;
87
82
  export const wrappsbt_get_global_xpubs: (a: number) => number;
@@ -137,41 +132,50 @@ export const wasmtransaction_input_count: (a: number) => number;
137
132
  export const wasmtransaction_output_count: (a: number) => number;
138
133
  export const wasmzcashtransaction_input_count: (a: number) => number;
139
134
  export const wasmzcashtransaction_output_count: (a: number) => number;
140
- export const parsePsbtToJson: (a: number, b: number, c: number, d: number, e: number) => void;
141
- export const parseTxToJson: (a: number, b: number, c: number, d: number, e: number) => void;
142
135
  export const wasmtransaction_lock_time: (a: number) => number;
143
136
  export const wasmtransaction_version: (a: number) => number;
144
137
  export const wasmzcashtransaction_lock_time: (a: number) => number;
145
138
  export const wasmzcashtransaction_version: (a: number) => number;
146
139
  export const wrappsbt_lock_time: (a: number) => number;
147
140
  export const wrappsbt_version: (a: number) => number;
148
- export const __wbg_messagenamespace_free: (a: number, b: number) => void;
149
- export const __wbg_wasmecpair_free: (a: number, b: number) => void;
150
- export const messagenamespace_sign_message: (a: number, b: number, c: number, d: number) => void;
151
- export const messagenamespace_verify_message: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
152
- export const wasmecpair_from_private_key: (a: number, b: number, c: number) => void;
153
- export const wasmecpair_from_public_key: (a: number, b: number, c: number) => void;
154
- export const wasmecpair_from_wif: (a: number, b: number, c: number) => void;
155
- export const wasmecpair_from_wif_mainnet: (a: number, b: number, c: number) => void;
156
- export const wasmecpair_from_wif_testnet: (a: number, b: number, c: number) => void;
157
- export const wasmecpair_private_key: (a: number) => number;
158
- export const wasmecpair_public_key: (a: number) => number;
159
- export const wasmecpair_to_wif: (a: number, b: number) => void;
160
- export const wasmecpair_to_wif_mainnet: (a: number, b: number) => void;
161
- export const wasmecpair_to_wif_testnet: (a: number, b: number) => void;
162
- export const __wbg_bip322namespace_free: (a: number, b: number) => void;
163
- export const __wbg_bitgopsbt_free: (a: number, b: number) => void;
164
- export const __wbg_fixedscriptwalletnamespace_free: (a: number, b: number) => void;
165
141
  export const __wbg_inscriptionsnamespace_free: (a: number, b: number) => void;
166
- export const __wbg_wasmbip32_free: (a: number, b: number) => void;
167
- export const __wbg_wasmdimensions_free: (a: number, b: number) => void;
168
- export const __wbg_wasmrootwalletkeys_free: (a: number, b: number) => void;
142
+ export const __wbg_wrapdescriptor_free: (a: number, b: number) => void;
143
+ export const __wbg_wrapminiscript_free: (a: number, b: number) => void;
144
+ export const inscriptionsnamespace_create_inscription_reveal_data: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
145
+ 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;
146
+ export const wrapdescriptor_atDerivationIndex: (a: number, b: number, c: number) => void;
147
+ export const wrapdescriptor_descType: (a: number, b: number) => void;
148
+ export const wrapdescriptor_encode: (a: number, b: number) => void;
149
+ export const wrapdescriptor_fromString: (a: number, b: number, c: number, d: number, e: number) => void;
150
+ export const wrapdescriptor_fromStringDetectType: (a: number, b: number, c: number) => void;
151
+ export const wrapdescriptor_fromStringExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
152
+ export const wrapdescriptor_hasWildcard: (a: number) => number;
153
+ export const wrapdescriptor_maxWeightToSatisfy: (a: number, b: number) => void;
154
+ export const wrapdescriptor_node: (a: number, b: number) => void;
155
+ export const wrapdescriptor_scriptPubkey: (a: number, b: number) => void;
156
+ export const wrapdescriptor_toAsmString: (a: number, b: number) => void;
157
+ export const wrapdescriptor_toString: (a: number, b: number) => void;
158
+ export const wrapminiscript_encode: (a: number, b: number) => void;
159
+ export const wrapminiscript_fromBitcoinScript: (a: number, b: number, c: number, d: number, e: number) => void;
160
+ export const wrapminiscript_fromBitcoinScriptExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
161
+ export const wrapminiscript_fromString: (a: number, b: number, c: number, d: number, e: number) => void;
162
+ export const wrapminiscript_fromStringExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
163
+ export const wrapminiscript_node: (a: number, b: number) => void;
164
+ export const wrapminiscript_toAsmString: (a: number, b: number) => void;
165
+ export const wrapminiscript_toString: (a: number, b: number) => void;
166
+ export const __wbg_bip322namespace_free: (a: number, b: number) => void;
169
167
  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;
170
168
  export const bip322namespace_get_bip322_message: (a: number, b: number, c: number) => void;
171
169
  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;
172
170
  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;
173
171
  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;
174
172
  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;
173
+ export const __wbg_bitgopsbt_free: (a: number, b: number) => void;
174
+ export const __wbg_fixedscriptwalletnamespace_free: (a: number, b: number) => void;
175
+ export const __wbg_wasmbip32_free: (a: number, b: number) => void;
176
+ export const __wbg_wasmecpair_free: (a: number, b: number) => void;
177
+ export const __wbg_wasmrootwalletkeys_free: (a: number, b: number) => void;
178
+ export const __wbg_wasmutxonamespace_free: (a: number, b: number) => void;
175
179
  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;
176
180
  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;
177
181
  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, l: number, m: number) => void;
@@ -184,6 +188,7 @@ export const bitgopsbt_add_output_with_address_at_index: (a: number, b: number,
184
188
  export const bitgopsbt_add_paygo_attestation: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
185
189
  export const bitgopsbt_add_replay_protection_input: (a: number, b: number, c: number, d: number, e: number, f: number, g: bigint, h: number, i: number, j: number) => void;
186
190
  export const bitgopsbt_add_replay_protection_input_at_index: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: bigint, i: number, j: number, k: number) => void;
191
+ export const bitgopsbt_add_transparent_output: (a: number, b: number, c: number, d: number, e: bigint, f: number, g: number) => void;
187
192
  export const bitgopsbt_add_wallet_input: (a: number, b: number, c: number, d: number, e: number, f: bigint, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number) => void;
188
193
  export const bitgopsbt_add_wallet_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, m: number, n: number, o: number, p: number, q: number) => void;
189
194
  export const bitgopsbt_add_wallet_output: (a: number, b: number, c: number, d: number, e: bigint, f: number) => void;
@@ -250,6 +255,7 @@ export const bitgopsbt_sign_single_input_with_privkey: (a: number, b: number, c:
250
255
  export const bitgopsbt_sign_single_input_with_xpriv: (a: number, b: number, c: number, d: number) => void;
251
256
  export const bitgopsbt_sign_with_privkey: (a: number, b: number, c: number, d: number) => void;
252
257
  export const bitgopsbt_sign_with_xpriv: (a: number, b: number, c: number, d: number) => void;
258
+ export const bitgopsbt_transparent_output_unified_address: (a: number, b: number, c: number) => void;
253
259
  export const bitgopsbt_unsigned_tx_id: (a: number, b: number) => void;
254
260
  export const bitgopsbt_verify_replay_protection_signature: (a: number, b: number, c: number, d: number) => void;
255
261
  export const bitgopsbt_verify_signature_with_pub: (a: number, b: number, c: number, d: number) => void;
@@ -266,8 +272,8 @@ export const fixedscriptwalletnamespace_output_script_with_network_str: (a: numb
266
272
  export const fixedscriptwalletnamespace_p2sh_p2pk_output_script: (a: number, b: number, c: number) => void;
267
273
  export const fixedscriptwalletnamespace_supports_script_type: (a: number, b: number, c: number, d: number, e: number) => void;
268
274
  export const fixedscriptwalletnamespace_to_wallet_keys: (a: number, b: number, c: number, d: number, e: number) => void;
269
- export const inscriptionsnamespace_create_inscription_reveal_data: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
270
- 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;
275
+ export const isInspectEnabled: () => number;
276
+ export const parsePsbtRawToJson: (a: number, b: number, c: number, d: number, e: number) => void;
271
277
  export const wasmbip32_chain_code: (a: number) => number;
272
278
  export const wasmbip32_depth: (a: number) => number;
273
279
  export const wasmbip32_derive: (a: number, b: number, c: number) => void;
@@ -290,30 +296,28 @@ export const wasmbip32_private_key: (a: number) => number;
290
296
  export const wasmbip32_public_key: (a: number) => number;
291
297
  export const wasmbip32_to_base58: (a: number, b: number) => void;
292
298
  export const wasmbip32_to_wif: (a: number, b: number) => void;
293
- export const wasmdimensions_empty: () => number;
294
- export const wasmdimensions_from_input: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
295
- export const wasmdimensions_from_input_script_type: (a: number, b: number, c: number, d: number) => void;
296
- export const wasmdimensions_from_output_script_length: (a: number) => number;
297
- export const wasmdimensions_from_output_script_type: (a: number, b: number, c: number) => void;
298
- export const wasmdimensions_from_psbt: (a: number, b: number) => void;
299
- export const wasmdimensions_get_input_vsize: (a: number, b: number, c: number) => number;
300
- export const wasmdimensions_get_input_weight: (a: number, b: number, c: number) => number;
301
- export const wasmdimensions_get_output_vsize: (a: number) => number;
302
- export const wasmdimensions_get_output_weight: (a: number) => number;
303
- export const wasmdimensions_get_vsize: (a: number, b: number, c: number) => number;
304
- export const wasmdimensions_get_weight: (a: number, b: number, c: number) => number;
305
- export const wasmdimensions_has_segwit: (a: number) => number;
306
- export const wasmdimensions_plus: (a: number, b: number) => number;
307
- export const wasmdimensions_times: (a: number, b: number) => number;
299
+ export const wasmecpair_from_private_key: (a: number, b: number, c: number) => void;
300
+ export const wasmecpair_from_public_key: (a: number, b: number, c: number) => void;
301
+ export const wasmecpair_from_wif: (a: number, b: number, c: number) => void;
302
+ export const wasmecpair_from_wif_mainnet: (a: number, b: number, c: number) => void;
303
+ export const wasmecpair_from_wif_testnet: (a: number, b: number, c: number) => void;
304
+ export const wasmecpair_private_key: (a: number) => number;
305
+ export const wasmecpair_public_key: (a: number) => number;
306
+ export const wasmecpair_to_wif: (a: number, b: number) => void;
307
+ export const wasmecpair_to_wif_mainnet: (a: number, b: number) => void;
308
+ export const wasmecpair_to_wif_testnet: (a: number, b: number) => void;
308
309
  export const wasmrootwalletkeys_backup_key: (a: number) => number;
309
310
  export const wasmrootwalletkeys_bitgo_key: (a: number) => number;
310
311
  export const wasmrootwalletkeys_new: (a: number, b: number, c: number, d: number) => void;
311
312
  export const wasmrootwalletkeys_user_key: (a: number) => number;
312
313
  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;
314
+ export const wasmutxonamespace_get_wasm_utxo_version: (a: number) => void;
313
315
  export const wasmbip32_from_bip32_properties: (a: number, b: number) => void;
314
- export const bitgopsbt_sign_replay_protection_inputs: (a: number, b: number, c: number) => void;
316
+ export const parsePsbtToJson: (a: number, b: number, c: number, d: number, e: number) => void;
317
+ export const parseTxToJson: (a: number, b: number, c: number, d: number, e: number) => void;
315
318
  export const bitgopsbt_sign_wallet_input: (a: number, b: number, c: number, d: number) => void;
316
319
  export const bitgopsbt_sign_all_with_xpriv: (a: number, b: number, c: number) => void;
320
+ export const bitgopsbt_sign_replay_protection_inputs: (a: number, b: number, c: number) => void;
317
321
  export const rustsecp256k1_v0_10_0_context_create: (a: number) => number;
318
322
  export const rustsecp256k1_v0_10_0_context_destroy: (a: number) => void;
319
323
  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.38.0",
4
+ "version": "4.40.0",
5
5
  "type": "module",
6
6
  "repository": {
7
7
  "type": "git",