@bitgo/wasm-utxo 4.37.1 → 4.37.2

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.
@@ -40,20 +40,10 @@ export type ParsedOutput = {
40
40
  paygo: boolean;
41
41
  /** Full BIP32 derivation path from the wallet xpub (e.g. "0/1"). Null for external outputs. */
42
42
  derivationPath: string | null;
43
- /**
44
- * True for a shielded (Orchard/Ironwood) output. Such an output has no `unsigned_tx` entry of
45
- * its own — it lives in the PSBT's proprietary-map PCZT, read from its plaintext (not
46
- * encrypted/decrypted) recipient field. `address` is a single-receiver ZIP-316 unified address
47
- * (`u1...`/`utest1...`) encoding that receiver — a real, usable Zcash address, though not
48
- * necessarily byte-identical to whatever multi-receiver UA the sender originally pasted in (a
49
- * UA with a transparent/Sapling receiver too would round-trip to a different string carrying
50
- * only the Orchard one). `script` holds the same receiver as raw 43 bytes.
51
- */
52
- isShielded: boolean;
53
43
  };
54
- export type ParsedTransaction = {
44
+ export type ParsedTransaction<TOutput extends ParsedOutput = ParsedOutput> = {
55
45
  inputs: ParsedInput[];
56
- outputs: ParsedOutput[];
46
+ outputs: TOutput[];
57
47
  spendAmount: bigint;
58
48
  minerFee: bigint;
59
49
  virtualSize: number;
@@ -123,7 +113,7 @@ export type HydrationUnspent = {
123
113
  pubkey: Uint8Array;
124
114
  value: bigint;
125
115
  };
126
- export declare class BitGoPsbt extends PsbtBase<WasmBitGoPsbt> implements IPsbtWithAddress {
116
+ export declare class BitGoPsbt<TOutput extends ParsedOutput = ParsedOutput> extends PsbtBase<WasmBitGoPsbt> implements IPsbtWithAddress {
127
117
  protected constructor(wasm: WasmBitGoPsbt);
128
118
  /**
129
119
  * Get the underlying WASM instance
@@ -339,7 +329,7 @@ export declare class BitGoPsbt extends PsbtBase<WasmBitGoPsbt> implements IPsbtW
339
329
  * @param options.payGoPubkeys - Optional public keys for PayGo attestation verification
340
330
  * @returns Parsed transaction information
341
331
  */
342
- parseTransactionWithWalletKeys(walletKeys: WalletKeysArg, options: ParseTransactionOptions): ParsedTransaction;
332
+ parseTransactionWithWalletKeys(walletKeys: WalletKeysArg, options: ParseTransactionOptions): ParsedTransaction<TOutput>;
343
333
  /**
344
334
  * Parse outputs with wallet keys to identify which outputs belong to a wallet
345
335
  * with the given wallet keys.
@@ -353,7 +343,7 @@ export declare class BitGoPsbt extends PsbtBase<WasmBitGoPsbt> implements IPsbtW
353
343
  * @returns Array of parsed outputs
354
344
  * @note This method does NOT validate wallet inputs. It only parses outputs.
355
345
  */
356
- parseOutputsWithWalletKeys(walletKeys: WalletKeysArg, options?: ParseOutputsOptions): ParsedOutput[];
346
+ parseOutputsWithWalletKeys(walletKeys: WalletKeysArg, options?: ParseOutputsOptions): TOutput[];
357
347
  /**
358
348
  * Add a PayGo attestation to a PSBT output
359
349
  *
@@ -1,8 +1,20 @@
1
1
  import { type WalletKeysArg } from "./RootWalletKeys.js";
2
- import { BitGoPsbt, type CreateEmptyOptions, type HydrationUnspent } from "./BitGoPsbt.js";
2
+ import { BitGoPsbt, type CreateEmptyOptions, type HydrationUnspent, type ParsedOutput } from "./BitGoPsbt.js";
3
3
  import { ZcashTransaction, type ITransaction } from "../transaction.js";
4
4
  /** Zcash network names */
5
5
  export type ZcashNetworkName = "zcash" | "zcashTest" | "zec" | "tzec";
6
+ export type ZcashParsedOutput = ParsedOutput & {
7
+ /**
8
+ * True for a shielded (Orchard/Ironwood) output. Such an output has no `unsigned_tx` entry of
9
+ * its own — it lives in the PSBT's proprietary-map PCZT, read from its plaintext (not
10
+ * encrypted/decrypted) recipient field. `address` is a single-receiver ZIP-316 unified address
11
+ * (`u1...`/`utest1...`) encoding that receiver — a real, usable Zcash address, though not
12
+ * necessarily byte-identical to whatever multi-receiver UA the sender originally pasted in (a
13
+ * UA with a transparent/Sapling receiver too would round-trip to a different string carrying
14
+ * only the Orchard one). `script` holds the same receiver as raw 43 bytes.
15
+ */
16
+ isShielded: boolean;
17
+ };
6
18
  /**
7
19
  * Zcash v6 (Ironwood) version group id (0xd884b698). Its presence marks a PSBT as v6 — see
8
20
  * `ZcashIronwoodBitGoPsbt`.
@@ -52,7 +64,7 @@ export type CreateEmptyZcashWithConsensusBranchIdOptions = CreateEmptyOptions &
52
64
  * const psbt = ZcashBitGoPsbt.fromBytes(bytes, "zcash");
53
65
  * ```
54
66
  */
55
- export declare class ZcashBitGoPsbt extends BitGoPsbt {
67
+ export declare class ZcashBitGoPsbt extends BitGoPsbt<ZcashParsedOutput> {
56
68
  /**
57
69
  * Create an empty Zcash PSBT with consensus branch ID determined from block height
58
70
  *
@@ -133,11 +133,18 @@ export declare class ZcashIronwoodBitGoPsbt extends ZcashBitGoPsbt {
133
133
  * @param options.anchor - 32-byte Ironwood note-commitment-tree root
134
134
  * @param options.memo - optional 512-byte memo (defaults to the ZIP-302 "no memo" encoding)
135
135
  * @param options.ovk - optional 32-byte outgoing viewing key (omit for a keyless build)
136
+ * @param options.unifiedAddress - optional full Unified Address string this output was addressed
137
+ * to. Its Orchard receiver must equal `recipient`. The PCZT itself only carries the raw 43-byte
138
+ * receiver — a lossy encoding for a multi-receiver UA, since any transparent/Sapling receiver
139
+ * can't be recovered from it — so passing this stores the original UA verbatim, letting a later
140
+ * `parseOutputsWithWalletKeys`/`parseTransactionWithWalletKeys` (even after a
141
+ * serialize/deserialize round-trip) return it in full instead of a re-encoded single-receiver UA.
136
142
  */
137
143
  addShieldedOutput(recipient: Uint8Array, amount: bigint, options: {
138
144
  anchor: Uint8Array;
139
145
  memo?: Uint8Array;
140
146
  ovk?: Uint8Array;
147
+ unifiedAddress?: string;
141
148
  }): void;
142
149
  /**
143
150
  * Client-managed `ovk`: re-encrypt the shielded output's `out_ciphertext` under **this wallet's**
@@ -132,10 +132,16 @@ class ZcashIronwoodBitGoPsbt extends ZcashBitGoPsbt_js_1.ZcashBitGoPsbt {
132
132
  * @param options.anchor - 32-byte Ironwood note-commitment-tree root
133
133
  * @param options.memo - optional 512-byte memo (defaults to the ZIP-302 "no memo" encoding)
134
134
  * @param options.ovk - optional 32-byte outgoing viewing key (omit for a keyless build)
135
+ * @param options.unifiedAddress - optional full Unified Address string this output was addressed
136
+ * to. Its Orchard receiver must equal `recipient`. The PCZT itself only carries the raw 43-byte
137
+ * receiver — a lossy encoding for a multi-receiver UA, since any transparent/Sapling receiver
138
+ * can't be recovered from it — so passing this stores the original UA verbatim, letting a later
139
+ * `parseOutputsWithWalletKeys`/`parseTransactionWithWalletKeys` (even after a
140
+ * serialize/deserialize round-trip) return it in full instead of a re-encoded single-receiver UA.
135
141
  */
136
142
  addShieldedOutput(recipient, amount, options) {
137
143
  const memo = options.memo ?? zip302NoMemo();
138
- this.wasm.add_ironwood_output(recipient, amount, options.ovk, options.anchor, memo);
144
+ this.wasm.add_ironwood_output(recipient, amount, options.ovk, options.anchor, memo, options.unifiedAddress);
139
145
  }
140
146
  /**
141
147
  * Client-managed `ovk`: re-encrypt the shielded output's `out_ciphertext` under **this wallet's**
@@ -8,7 +8,7 @@ export { ChainCode, chainCodes, assertChainCode, type Scope } from "./chains.js"
8
8
  export { requiresPrevTxForP2sh } from "./prevTx.js";
9
9
  export { BitGoPsbt, getWalletKeysFromPsbt, type NetworkName, type ScriptId, type ParsedInput, type ParsedOutput, type ParsedTransaction, type SignPath, type CreateEmptyOptions, type AddInputOptions, type AddOutputOptions, type AddWalletInputOptions, type AddWalletOutputOptions, type ParseTransactionOptions, type ParseOutputsOptions, type HydrationUnspent, } from "./BitGoPsbt.js";
10
10
  export { BitGoKeySubtype, type PsbtKvKey } from "./BitGoKeySubtype.js";
11
- export { ZcashBitGoPsbt, type ZcashNetworkName, type CreateEmptyZcashOptions, IRONWOOD_VERSION_GROUP_ID, } from "./ZcashBitGoPsbt.js";
11
+ export { ZcashBitGoPsbt, type ZcashNetworkName, type ZcashParsedOutput, type CreateEmptyZcashOptions, IRONWOOD_VERSION_GROUP_ID, } from "./ZcashBitGoPsbt.js";
12
12
  export { ZcashIronwoodBitGoPsbt, zip302NoMemo, type CreateEmptyIronwoodOptions, type CreateEmptyIronwoodWithConsensusBranchIdOptions, } from "./ZcashIronwoodBitGoPsbt.js";
13
13
  export { ZcashUnifiedAddress } from "./ZcashUnifiedAddress.js";
14
14
  export { ZcashV6Transaction } from "./ZcashV6Transaction.js";
@@ -150,13 +150,17 @@ export class BitGoPsbt {
150
150
  * * `ovk` - optional outgoing viewing key ([`OVK_SIZE`] bytes; `None` for a keyless build)
151
151
  * * `anchor` - Ironwood note-commitment-tree root ([`ANCHOR_SIZE`] bytes)
152
152
  * * `memo` - ZIP-302 memo field ([`MEMO_SIZE`] bytes)
153
+ * * `unified_address` - optional full Unified Address the output was addressed to; if given,
154
+ * its Orchard receiver must match `recipient`, and it is stored verbatim so output parsing
155
+ * can later return it in full (transparent/Sapling receivers included) instead of
156
+ * reconstructing a single-receiver UA from `recipient` alone
153
157
  *
154
158
  * [`ORCHARD_ADDRESS_SIZE`]: crate::zcash::ironwood_build::ORCHARD_ADDRESS_SIZE
155
159
  * [`OVK_SIZE`]: crate::zcash::ironwood_build::OVK_SIZE
156
160
  * [`ANCHOR_SIZE`]: crate::zcash::ironwood_build::ANCHOR_SIZE
157
161
  * [`MEMO_SIZE`]: crate::zcash::ironwood_build::MEMO_SIZE
158
162
  */
159
- add_ironwood_output(recipient: Uint8Array, amount: bigint, ovk: Uint8Array | null | undefined, anchor: Uint8Array, memo: Uint8Array): void;
163
+ add_ironwood_output(recipient: Uint8Array, amount: bigint, ovk: Uint8Array | null | undefined, anchor: Uint8Array, memo: Uint8Array, unified_address?: string | null): void;
160
164
  /**
161
165
  * Ingest a transparent-input signature (`sig`: DER ECDSA with the trailing SIGHASH_ALL byte)
162
166
  * after verifying it against `ironwood_v6_transparent_sighash(index)`.
@@ -482,6 +482,10 @@ class BitGoPsbt {
482
482
  * * `ovk` - optional outgoing viewing key ([`OVK_SIZE`] bytes; `None` for a keyless build)
483
483
  * * `anchor` - Ironwood note-commitment-tree root ([`ANCHOR_SIZE`] bytes)
484
484
  * * `memo` - ZIP-302 memo field ([`MEMO_SIZE`] bytes)
485
+ * * `unified_address` - optional full Unified Address the output was addressed to; if given,
486
+ * its Orchard receiver must match `recipient`, and it is stored verbatim so output parsing
487
+ * can later return it in full (transparent/Sapling receivers included) instead of
488
+ * reconstructing a single-receiver UA from `recipient` alone
485
489
  *
486
490
  * [`ORCHARD_ADDRESS_SIZE`]: crate::zcash::ironwood_build::ORCHARD_ADDRESS_SIZE
487
491
  * [`OVK_SIZE`]: crate::zcash::ironwood_build::OVK_SIZE
@@ -492,8 +496,9 @@ class BitGoPsbt {
492
496
  * @param {Uint8Array | null | undefined} ovk
493
497
  * @param {Uint8Array} anchor
494
498
  * @param {Uint8Array} memo
499
+ * @param {string | null} [unified_address]
495
500
  */
496
- add_ironwood_output(recipient, amount, ovk, anchor, memo) {
501
+ add_ironwood_output(recipient, amount, ovk, anchor, memo, unified_address) {
497
502
  try {
498
503
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
499
504
  const ptr0 = passArray8ToWasm0(recipient, wasm.__wbindgen_export);
@@ -504,7 +509,9 @@ class BitGoPsbt {
504
509
  const len2 = WASM_VECTOR_LEN;
505
510
  const ptr3 = passArray8ToWasm0(memo, wasm.__wbindgen_export);
506
511
  const len3 = WASM_VECTOR_LEN;
507
- wasm.bitgopsbt_add_ironwood_output(retptr, this.__wbg_ptr, ptr0, len0, amount, ptr1, len1, ptr2, len2, ptr3, len3);
512
+ var ptr4 = isLikeNone(unified_address) ? 0 : passStringToWasm0(unified_address, wasm.__wbindgen_export, wasm.__wbindgen_export2);
513
+ var len4 = WASM_VECTOR_LEN;
514
+ wasm.bitgopsbt_add_ironwood_output(retptr, this.__wbg_ptr, ptr0, len0, amount, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4);
508
515
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
509
516
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
510
517
  if (r1) {
Binary file
@@ -1,150 +1,6 @@
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_addressnamespace_free: (a: number, b: number) => void;
9
- export const __wbg_utxolibcompatnamespace_free: (a: number, b: number) => void;
10
- export const __wbg_wasmdashtransaction_free: (a: number, b: number) => void;
11
- export const __wbg_wasmtransaction_free: (a: number, b: number) => void;
12
- export const __wbg_wasmzcashtransaction_free: (a: number, b: number) => void;
13
- export const __wbg_wrappsbt_free: (a: number, b: number) => void;
14
- export const __wbg_zcashunifiedaddress_free: (a: number, b: number) => void;
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, f: number) => void;
18
- export const utxolibcompatnamespace_from_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
19
- export const utxolibcompatnamespace_to_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
20
- export const wasmdashtransaction_from_bytes: (a: number, b: number, c: number) => void;
21
- export const wasmdashtransaction_get_inputs: (a: number, b: number) => void;
22
- export const wasmdashtransaction_get_outputs: (a: number, b: number) => void;
23
- export const wasmdashtransaction_get_outputs_with_address: (a: number, b: number, c: number, d: number) => void;
24
- export const wasmdashtransaction_get_txid: (a: number, b: number) => void;
25
- export const wasmdashtransaction_input_count: (a: number) => number;
26
- export const wasmdashtransaction_lock_time: (a: number) => number;
27
- export const wasmdashtransaction_output_count: (a: number) => number;
28
- export const wasmdashtransaction_to_bytes: (a: number, b: number) => void;
29
- export const wasmdashtransaction_version: (a: number) => number;
30
- export const wasmtransaction_add_input: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
31
- export const wasmtransaction_add_input_at_index: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
32
- export const wasmtransaction_add_output: (a: number, b: number, c: number, d: bigint) => number;
33
- export const wasmtransaction_add_output_at_index: (a: number, b: number, c: number, d: number, e: number, f: bigint) => void;
34
- export const wasmtransaction_create: () => number;
35
- export const wasmtransaction_from_bytes: (a: number, b: number, c: number) => void;
36
- export const wasmtransaction_get_inputs: (a: number, b: number) => void;
37
- export const wasmtransaction_get_outputs: (a: number, b: number) => void;
38
- export const wasmtransaction_get_outputs_with_address: (a: number, b: number, c: number, d: number) => void;
39
- export const wasmtransaction_get_txid: (a: number, b: number) => void;
40
- export const wasmtransaction_get_vsize: (a: number) => number;
41
- export const wasmtransaction_to_bytes: (a: number, b: number) => void;
42
- export const wasmzcashtransaction_from_bytes: (a: number, b: number, c: number) => void;
43
- export const wasmzcashtransaction_get_inputs: (a: number, b: number) => void;
44
- export const wasmzcashtransaction_get_outputs: (a: number, b: number) => void;
45
- export const wasmzcashtransaction_get_outputs_with_address: (a: number, b: number, c: number, d: number) => void;
46
- export const wasmzcashtransaction_get_txid: (a: number, b: number) => void;
47
- export const wasmzcashtransaction_to_bytes: (a: number, b: number) => void;
48
- export const wrappsbt_add_input: (a: number, b: number, c: number, d: number, e: number, f: bigint, g: number, h: number, i: number) => void;
49
- 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;
50
- export const wrappsbt_add_output: (a: number, b: number, c: number, d: bigint) => number;
51
- export const wrappsbt_add_output_at_index: (a: number, b: number, c: number, d: number, e: number, f: bigint) => void;
52
- export const wrappsbt_clone: (a: number) => number;
53
- export const wrappsbt_delete_input_kv: (a: number, b: number, c: number, d: number) => void;
54
- export const wrappsbt_delete_kv: (a: number, b: number, c: number) => void;
55
- export const wrappsbt_delete_output_kv: (a: number, b: number, c: number, d: number) => void;
56
- export const wrappsbt_deserialize: (a: number, b: number, c: number) => void;
57
- export const wrappsbt_extract_transaction: (a: number, b: number) => void;
58
- export const wrappsbt_extract_zcash_transaction: (a: number, b: number, c: number, d: number) => void;
59
- export const wrappsbt_finalize_mut: (a: number, b: number) => void;
60
- export const wrappsbt_finalize_mut_zcash: (a: number, b: number, c: number, d: number, e: number) => void;
61
- export const wrappsbt_get_global_xpubs: (a: number) => number;
62
- export const wrappsbt_get_input_kv: (a: number, b: number, c: number, d: number) => void;
63
- export const wrappsbt_get_inputs: (a: number, b: number) => void;
64
- export const wrappsbt_get_kv: (a: number, b: number, c: number) => void;
65
- export const wrappsbt_get_output_kv: (a: number, b: number, c: number, d: number) => void;
66
- export const wrappsbt_get_outputs: (a: number, b: number) => void;
67
- export const wrappsbt_get_outputs_with_address: (a: number, b: number, c: number, d: number) => void;
68
- export const wrappsbt_get_partial_signatures: (a: number, b: number, c: number) => void;
69
- export const wrappsbt_get_unsigned_tx: (a: number, b: number) => void;
70
- export const wrappsbt_has_partial_signatures: (a: number, b: number, c: number) => void;
71
- export const wrappsbt_input_count: (a: number) => number;
72
- export const wrappsbt_new: (a: number, b: number) => number;
73
- export const wrappsbt_output_count: (a: number) => number;
74
- export const wrappsbt_remove_input: (a: number, b: number, c: number) => void;
75
- export const wrappsbt_remove_output: (a: number, b: number, c: number) => void;
76
- export const wrappsbt_serialize: (a: number, b: number) => void;
77
- export const wrappsbt_set_input_kv: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
78
- export const wrappsbt_set_kv: (a: number, b: number, c: number, d: number, e: number) => void;
79
- export const wrappsbt_set_output_kv: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
80
- export const wrappsbt_sign_all: (a: number, b: number, c: number) => void;
81
- export const wrappsbt_sign_all_with_ecpair: (a: number, b: number, c: number) => void;
82
- export const wrappsbt_sign_with_prv: (a: number, b: number, c: number, d: number) => void;
83
- export const wrappsbt_sign_with_xprv: (a: number, b: number, c: number, d: number) => void;
84
- export const wrappsbt_sign_zcash_all_with_ecpair: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
85
- export const wrappsbt_sign_zcash_with_prv: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
86
- export const wrappsbt_unsigned_tx_id: (a: number, b: number) => void;
87
- export const wrappsbt_update_input_with_descriptor: (a: number, b: number, c: number, d: number) => void;
88
- export const wrappsbt_update_output_with_descriptor: (a: number, b: number, c: number, d: number) => void;
89
- export const wrappsbt_validate_signature_at_input: (a: number, b: number, c: number, d: number, e: number) => void;
90
- export const wrappsbt_verify_signature_with_key: (a: number, b: number, c: number, d: number) => void;
91
- export const zcash_branch_id_for_height: (a: number, b: number, c: number, d: number) => void;
92
- export const zcash_ironwood_version_group_id: () => number;
93
- export const zcashunifiedaddress_contains: (a: number, b: number, c: number, d: number) => void;
94
- export const zcashunifiedaddress_encodeOrchardReceiver: (a: number, b: number, c: number, d: number, e: number) => void;
95
- export const zcashunifiedaddress_orchardReceiver: (a: number, b: number) => void;
96
- export const zcashunifiedaddress_parse: (a: number, b: number, c: number, d: number, e: number) => void;
97
- export const zcashunifiedaddress_saplingReceiver: (a: number, b: number) => void;
98
- export const zcashunifiedaddress_transparentScript: (a: number, b: number) => void;
99
- export const zcashv6transaction_consensusBranchId: (a: number) => number;
100
- export const zcashv6transaction_expiryHeight: (a: number) => number;
101
- export const zcashv6transaction_fromBytes: (a: number, b: number, c: number) => void;
102
- export const zcashv6transaction_getId: (a: number, b: number) => void;
103
- export const zcashv6transaction_ironwoodActionCount: (a: number) => number;
104
- export const zcashv6transaction_ironwoodAnchor: (a: number, b: number) => void;
105
- export const zcashv6transaction_ironwoodFlags: (a: number) => number;
106
- export const zcashv6transaction_ironwoodValueBalance: (a: number) => bigint;
107
- export const zcashv6transaction_toBytes: (a: number, b: number) => void;
108
- export const zcashv6transaction_transparentSighash: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
109
- export const zcashv6transaction_txidBytes: (a: number, b: number) => void;
110
- export const wasmtransaction_input_count: (a: number) => number;
111
- export const wasmtransaction_output_count: (a: number) => number;
112
- export const wasmzcashtransaction_input_count: (a: number) => number;
113
- export const wasmzcashtransaction_output_count: (a: number) => number;
114
- export const wasmtransaction_lock_time: (a: number) => number;
115
- export const wasmtransaction_version: (a: number) => number;
116
- export const wasmzcashtransaction_lock_time: (a: number) => number;
117
- export const wasmzcashtransaction_version: (a: number) => number;
118
- export const wrappsbt_lock_time: (a: number) => number;
119
- export const wrappsbt_version: (a: number) => number;
120
- export const __wbg_wrapdescriptor_free: (a: number, b: number) => void;
121
- export const __wbg_wrapminiscript_free: (a: number, b: number) => void;
122
- export const wrapdescriptor_atDerivationIndex: (a: number, b: number, c: number) => void;
123
- export const wrapdescriptor_descType: (a: number, b: number) => void;
124
- export const wrapdescriptor_encode: (a: number, b: number) => void;
125
- export const wrapdescriptor_fromString: (a: number, b: number, c: number, d: number, e: number) => void;
126
- export const wrapdescriptor_fromStringDetectType: (a: number, b: number, c: number) => void;
127
- export const wrapdescriptor_fromStringExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
128
- export const wrapdescriptor_hasWildcard: (a: number) => number;
129
- export const wrapdescriptor_maxWeightToSatisfy: (a: number, b: number) => void;
130
- export const wrapdescriptor_node: (a: number, b: number) => void;
131
- export const wrapdescriptor_scriptPubkey: (a: number, b: number) => void;
132
- export const wrapdescriptor_toAsmString: (a: number, b: number) => void;
133
- export const wrapdescriptor_toString: (a: number, b: number) => void;
134
- export const wrapminiscript_encode: (a: number, b: number) => void;
135
- export const wrapminiscript_fromBitcoinScript: (a: number, b: number, c: number, d: number, e: number) => void;
136
- export const wrapminiscript_fromBitcoinScriptExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
137
- export const wrapminiscript_fromString: (a: number, b: number, c: number, d: number, e: number) => void;
138
- export const wrapminiscript_fromStringExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
139
- export const wrapminiscript_node: (a: number, b: number) => void;
140
- export const wrapminiscript_toAsmString: (a: number, b: number) => void;
141
- export const wrapminiscript_toString: (a: number, b: number) => void;
142
- export const __wbg_inscriptionsnamespace_free: (a: number, b: number) => void;
143
- export const __wbg_messagenamespace_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 messagenamespace_sign_message: (a: number, b: number, c: number, d: number) => void;
147
- export const messagenamespace_verify_message: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
148
4
  export const __wbg_bip322namespace_free: (a: number, b: number) => void;
149
5
  export const __wbg_bitgopsbt_free: (a: number, b: number) => void;
150
6
  export const __wbg_fixedscriptwalletnamespace_free: (a: number, b: number) => void;
@@ -152,7 +8,6 @@ export const __wbg_wasmbip32_free: (a: number, b: number) => void;
152
8
  export const __wbg_wasmdimensions_free: (a: number, b: number) => void;
153
9
  export const __wbg_wasmecpair_free: (a: number, b: number) => void;
154
10
  export const __wbg_wasmrootwalletkeys_free: (a: number, b: number) => void;
155
- export const __wbg_wasmutxonamespace_free: (a: number, b: number) => void;
156
11
  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;
157
12
  export const bip322namespace_get_bip322_message: (a: number, b: number, c: number) => void;
158
13
  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;
@@ -161,7 +16,7 @@ export const bip322namespace_verify_bip322_tx_input: (a: number, b: number, c: n
161
16
  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;
162
17
  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;
163
18
  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;
164
- 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;
19
+ 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;
165
20
  export const bitgopsbt_add_ironwood_v6_signature: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
166
21
  export const bitgopsbt_add_output: (a: number, b: number, c: number, d: number, e: bigint) => void;
167
22
  export const bitgopsbt_add_output_at_index: (a: number, b: number, c: number, d: number, e: number, f: bigint) => void;
@@ -252,8 +107,6 @@ export const fixedscriptwalletnamespace_output_script_with_network_str: (a: numb
252
107
  export const fixedscriptwalletnamespace_p2sh_p2pk_output_script: (a: number, b: number, c: number) => void;
253
108
  export const fixedscriptwalletnamespace_supports_script_type: (a: number, b: number, c: number, d: number, e: number) => void;
254
109
  export const fixedscriptwalletnamespace_to_wallet_keys: (a: number, b: number, c: number, d: number, e: number) => void;
255
- export const isInspectEnabled: () => number;
256
- export const parsePsbtRawToJson: (a: number, b: number, c: number, d: number, e: number) => void;
257
110
  export const wasmbip32_chain_code: (a: number) => number;
258
111
  export const wasmbip32_depth: (a: number) => number;
259
112
  export const wasmbip32_derive: (a: number, b: number, c: number) => void;
@@ -306,13 +159,160 @@ export const wasmrootwalletkeys_bitgo_key: (a: number) => number;
306
159
  export const wasmrootwalletkeys_new: (a: number, b: number, c: number, d: number) => void;
307
160
  export const wasmrootwalletkeys_user_key: (a: number) => number;
308
161
  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;
309
- export const wasmutxonamespace_get_wasm_utxo_version: (a: number) => void;
310
162
  export const wasmbip32_from_bip32_properties: (a: number, b: number) => void;
311
- export const parsePsbtToJson: (a: number, b: number, c: number, d: number, e: number) => void;
312
- export const parseTxToJson: (a: number, b: number, c: number, d: number, e: number) => void;
313
163
  export const bitgopsbt_sign_wallet_input: (a: number, b: number, c: number, d: number) => void;
314
164
  export const bitgopsbt_sign_all_with_xpriv: (a: number, b: number, c: number) => void;
315
165
  export const bitgopsbt_sign_replay_protection_inputs: (a: number, b: number, c: number) => void;
166
+ export const __wbg_wrapdescriptor_free: (a: number, b: number) => void;
167
+ export const __wbg_wrapminiscript_free: (a: number, b: number) => void;
168
+ export const wrapdescriptor_atDerivationIndex: (a: number, b: number, c: number) => void;
169
+ export const wrapdescriptor_descType: (a: number, b: number) => void;
170
+ export const wrapdescriptor_encode: (a: number, b: number) => void;
171
+ export const wrapdescriptor_fromString: (a: number, b: number, c: number, d: number, e: number) => void;
172
+ export const wrapdescriptor_fromStringDetectType: (a: number, b: number, c: number) => void;
173
+ export const wrapdescriptor_fromStringExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
174
+ export const wrapdescriptor_hasWildcard: (a: number) => number;
175
+ export const wrapdescriptor_maxWeightToSatisfy: (a: number, b: number) => void;
176
+ export const wrapdescriptor_node: (a: number, b: number) => void;
177
+ export const wrapdescriptor_scriptPubkey: (a: number, b: number) => void;
178
+ export const wrapdescriptor_toAsmString: (a: number, b: number) => void;
179
+ export const wrapdescriptor_toString: (a: number, b: number) => void;
180
+ export const wrapminiscript_encode: (a: number, b: number) => void;
181
+ export const wrapminiscript_fromBitcoinScript: (a: number, b: number, c: number, d: number, e: number) => void;
182
+ export const wrapminiscript_fromBitcoinScriptExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
183
+ export const wrapminiscript_fromString: (a: number, b: number, c: number, d: number, e: number) => void;
184
+ export const wrapminiscript_fromStringExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
185
+ export const wrapminiscript_node: (a: number, b: number) => void;
186
+ export const wrapminiscript_toAsmString: (a: number, b: number) => void;
187
+ export const wrapminiscript_toString: (a: number, b: number) => void;
188
+ export const __wbg_inscriptionsnamespace_free: (a: number, b: number) => void;
189
+ export const __wbg_messagenamespace_free: (a: number, b: number) => void;
190
+ export const inscriptionsnamespace_create_inscription_reveal_data: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
191
+ 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;
192
+ export const messagenamespace_sign_message: (a: number, b: number, c: number, d: number) => void;
193
+ export const messagenamespace_verify_message: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
194
+ export const __wbg_wasmreplayprotection_free: (a: number, b: number) => void;
195
+ export const wasmreplayprotection_from_addresses: (a: number, b: number, c: number, d: number, e: number) => void;
196
+ export const wasmreplayprotection_from_output_scripts: (a: number, b: number) => number;
197
+ export const wasmreplayprotection_from_public_keys: (a: number, b: number, c: number) => void;
198
+ export const __wbg_addressnamespace_free: (a: number, b: number) => void;
199
+ export const __wbg_utxolibcompatnamespace_free: (a: number, b: number) => void;
200
+ export const __wbg_wasmdashtransaction_free: (a: number, b: number) => void;
201
+ export const __wbg_wasmtransaction_free: (a: number, b: number) => void;
202
+ export const __wbg_wasmutxonamespace_free: (a: number, b: number) => void;
203
+ export const __wbg_wasmzcashtransaction_free: (a: number, b: number) => void;
204
+ export const __wbg_wrappsbt_free: (a: number, b: number) => void;
205
+ export const __wbg_zcashunifiedaddress_free: (a: number, b: number) => void;
206
+ export const __wbg_zcashv6transaction_free: (a: number, b: number) => void;
207
+ export const addressnamespace_from_output_script_with_coin: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
208
+ export const addressnamespace_to_output_script_with_coin: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
209
+ export const isInspectEnabled: () => number;
210
+ export const parsePsbtRawToJson: (a: number, b: number, c: number, d: number, e: number) => void;
211
+ export const utxolibcompatnamespace_from_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
212
+ export const utxolibcompatnamespace_to_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
213
+ export const wasmdashtransaction_from_bytes: (a: number, b: number, c: number) => void;
214
+ export const wasmdashtransaction_get_inputs: (a: number, b: number) => void;
215
+ export const wasmdashtransaction_get_outputs: (a: number, b: number) => void;
216
+ export const wasmdashtransaction_get_outputs_with_address: (a: number, b: number, c: number, d: number) => void;
217
+ export const wasmdashtransaction_get_txid: (a: number, b: number) => void;
218
+ export const wasmdashtransaction_input_count: (a: number) => number;
219
+ export const wasmdashtransaction_lock_time: (a: number) => number;
220
+ export const wasmdashtransaction_output_count: (a: number) => number;
221
+ export const wasmdashtransaction_to_bytes: (a: number, b: number) => void;
222
+ export const wasmdashtransaction_version: (a: number) => number;
223
+ export const wasmtransaction_add_input: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
224
+ export const wasmtransaction_add_input_at_index: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
225
+ export const wasmtransaction_add_output: (a: number, b: number, c: number, d: bigint) => number;
226
+ export const wasmtransaction_add_output_at_index: (a: number, b: number, c: number, d: number, e: number, f: bigint) => void;
227
+ export const wasmtransaction_create: () => number;
228
+ export const wasmtransaction_from_bytes: (a: number, b: number, c: number) => void;
229
+ export const wasmtransaction_get_inputs: (a: number, b: number) => void;
230
+ export const wasmtransaction_get_outputs: (a: number, b: number) => void;
231
+ export const wasmtransaction_get_outputs_with_address: (a: number, b: number, c: number, d: number) => void;
232
+ export const wasmtransaction_get_txid: (a: number, b: number) => void;
233
+ export const wasmtransaction_get_vsize: (a: number) => number;
234
+ export const wasmtransaction_to_bytes: (a: number, b: number) => void;
235
+ export const wasmutxonamespace_get_wasm_utxo_version: (a: number) => void;
236
+ export const wasmzcashtransaction_from_bytes: (a: number, b: number, c: number) => void;
237
+ export const wasmzcashtransaction_get_inputs: (a: number, b: number) => void;
238
+ export const wasmzcashtransaction_get_outputs: (a: number, b: number) => void;
239
+ export const wasmzcashtransaction_get_outputs_with_address: (a: number, b: number, c: number, d: number) => void;
240
+ export const wasmzcashtransaction_get_txid: (a: number, b: number) => void;
241
+ export const wasmzcashtransaction_to_bytes: (a: number, b: number) => void;
242
+ export const wrappsbt_add_input: (a: number, b: number, c: number, d: number, e: number, f: bigint, g: number, h: number, i: number) => void;
243
+ 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;
244
+ export const wrappsbt_add_output: (a: number, b: number, c: number, d: bigint) => number;
245
+ export const wrappsbt_add_output_at_index: (a: number, b: number, c: number, d: number, e: number, f: bigint) => void;
246
+ export const wrappsbt_clone: (a: number) => number;
247
+ export const wrappsbt_delete_input_kv: (a: number, b: number, c: number, d: number) => void;
248
+ export const wrappsbt_delete_kv: (a: number, b: number, c: number) => void;
249
+ export const wrappsbt_delete_output_kv: (a: number, b: number, c: number, d: number) => void;
250
+ export const wrappsbt_deserialize: (a: number, b: number, c: number) => void;
251
+ export const wrappsbt_extract_transaction: (a: number, b: number) => void;
252
+ export const wrappsbt_extract_zcash_transaction: (a: number, b: number, c: number, d: number) => void;
253
+ export const wrappsbt_finalize_mut: (a: number, b: number) => void;
254
+ export const wrappsbt_finalize_mut_zcash: (a: number, b: number, c: number, d: number, e: number) => void;
255
+ export const wrappsbt_get_global_xpubs: (a: number) => number;
256
+ export const wrappsbt_get_input_kv: (a: number, b: number, c: number, d: number) => void;
257
+ export const wrappsbt_get_inputs: (a: number, b: number) => void;
258
+ export const wrappsbt_get_kv: (a: number, b: number, c: number) => void;
259
+ export const wrappsbt_get_output_kv: (a: number, b: number, c: number, d: number) => void;
260
+ export const wrappsbt_get_outputs: (a: number, b: number) => void;
261
+ export const wrappsbt_get_outputs_with_address: (a: number, b: number, c: number, d: number) => void;
262
+ export const wrappsbt_get_partial_signatures: (a: number, b: number, c: number) => void;
263
+ export const wrappsbt_get_unsigned_tx: (a: number, b: number) => void;
264
+ export const wrappsbt_has_partial_signatures: (a: number, b: number, c: number) => void;
265
+ export const wrappsbt_input_count: (a: number) => number;
266
+ export const wrappsbt_new: (a: number, b: number) => number;
267
+ export const wrappsbt_output_count: (a: number) => number;
268
+ export const wrappsbt_remove_input: (a: number, b: number, c: number) => void;
269
+ export const wrappsbt_remove_output: (a: number, b: number, c: number) => void;
270
+ export const wrappsbt_serialize: (a: number, b: number) => void;
271
+ export const wrappsbt_set_input_kv: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
272
+ export const wrappsbt_set_kv: (a: number, b: number, c: number, d: number, e: number) => void;
273
+ export const wrappsbt_set_output_kv: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
274
+ export const wrappsbt_sign_all: (a: number, b: number, c: number) => void;
275
+ export const wrappsbt_sign_all_with_ecpair: (a: number, b: number, c: number) => void;
276
+ export const wrappsbt_sign_with_prv: (a: number, b: number, c: number, d: number) => void;
277
+ export const wrappsbt_sign_with_xprv: (a: number, b: number, c: number, d: number) => void;
278
+ export const wrappsbt_sign_zcash_all_with_ecpair: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
279
+ export const wrappsbt_sign_zcash_with_prv: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
280
+ export const wrappsbt_unsigned_tx_id: (a: number, b: number) => void;
281
+ export const wrappsbt_update_input_with_descriptor: (a: number, b: number, c: number, d: number) => void;
282
+ export const wrappsbt_update_output_with_descriptor: (a: number, b: number, c: number, d: number) => void;
283
+ export const wrappsbt_validate_signature_at_input: (a: number, b: number, c: number, d: number, e: number) => void;
284
+ export const wrappsbt_verify_signature_with_key: (a: number, b: number, c: number, d: number) => void;
285
+ export const zcash_branch_id_for_height: (a: number, b: number, c: number, d: number) => void;
286
+ export const zcash_ironwood_version_group_id: () => number;
287
+ export const zcashunifiedaddress_contains: (a: number, b: number, c: number, d: number) => void;
288
+ export const zcashunifiedaddress_encodeOrchardReceiver: (a: number, b: number, c: number, d: number, e: number) => void;
289
+ export const zcashunifiedaddress_orchardReceiver: (a: number, b: number) => void;
290
+ export const zcashunifiedaddress_parse: (a: number, b: number, c: number, d: number, e: number) => void;
291
+ export const zcashunifiedaddress_saplingReceiver: (a: number, b: number) => void;
292
+ export const zcashunifiedaddress_transparentScript: (a: number, b: number) => void;
293
+ export const zcashv6transaction_consensusBranchId: (a: number) => number;
294
+ export const zcashv6transaction_expiryHeight: (a: number) => number;
295
+ export const zcashv6transaction_fromBytes: (a: number, b: number, c: number) => void;
296
+ export const zcashv6transaction_getId: (a: number, b: number) => void;
297
+ export const zcashv6transaction_ironwoodActionCount: (a: number) => number;
298
+ export const zcashv6transaction_ironwoodAnchor: (a: number, b: number) => void;
299
+ export const zcashv6transaction_ironwoodFlags: (a: number) => number;
300
+ export const zcashv6transaction_ironwoodValueBalance: (a: number) => bigint;
301
+ export const zcashv6transaction_toBytes: (a: number, b: number) => void;
302
+ export const zcashv6transaction_transparentSighash: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
303
+ export const zcashv6transaction_txidBytes: (a: number, b: number) => void;
304
+ export const wasmtransaction_input_count: (a: number) => number;
305
+ export const wasmtransaction_output_count: (a: number) => number;
306
+ export const wasmzcashtransaction_input_count: (a: number) => number;
307
+ export const wasmzcashtransaction_output_count: (a: number) => number;
308
+ export const parsePsbtToJson: (a: number, b: number, c: number, d: number, e: number) => void;
309
+ export const parseTxToJson: (a: number, b: number, c: number, d: number, e: number) => void;
310
+ export const wasmtransaction_lock_time: (a: number) => number;
311
+ export const wasmtransaction_version: (a: number) => number;
312
+ export const wasmzcashtransaction_lock_time: (a: number) => number;
313
+ export const wasmzcashtransaction_version: (a: number) => number;
314
+ export const wrappsbt_lock_time: (a: number) => number;
315
+ export const wrappsbt_version: (a: number) => number;
316
316
  export const rustsecp256k1_v0_10_0_context_create: (a: number) => number;
317
317
  export const rustsecp256k1_v0_10_0_context_destroy: (a: number) => void;
318
318
  export const rustsecp256k1_v0_10_0_default_error_callback_fn: (a: number, b: number) => void;
@@ -40,20 +40,10 @@ export type ParsedOutput = {
40
40
  paygo: boolean;
41
41
  /** Full BIP32 derivation path from the wallet xpub (e.g. "0/1"). Null for external outputs. */
42
42
  derivationPath: string | null;
43
- /**
44
- * True for a shielded (Orchard/Ironwood) output. Such an output has no `unsigned_tx` entry of
45
- * its own — it lives in the PSBT's proprietary-map PCZT, read from its plaintext (not
46
- * encrypted/decrypted) recipient field. `address` is a single-receiver ZIP-316 unified address
47
- * (`u1...`/`utest1...`) encoding that receiver — a real, usable Zcash address, though not
48
- * necessarily byte-identical to whatever multi-receiver UA the sender originally pasted in (a
49
- * UA with a transparent/Sapling receiver too would round-trip to a different string carrying
50
- * only the Orchard one). `script` holds the same receiver as raw 43 bytes.
51
- */
52
- isShielded: boolean;
53
43
  };
54
- export type ParsedTransaction = {
44
+ export type ParsedTransaction<TOutput extends ParsedOutput = ParsedOutput> = {
55
45
  inputs: ParsedInput[];
56
- outputs: ParsedOutput[];
46
+ outputs: TOutput[];
57
47
  spendAmount: bigint;
58
48
  minerFee: bigint;
59
49
  virtualSize: number;
@@ -123,7 +113,7 @@ export type HydrationUnspent = {
123
113
  pubkey: Uint8Array;
124
114
  value: bigint;
125
115
  };
126
- export declare class BitGoPsbt extends PsbtBase<WasmBitGoPsbt> implements IPsbtWithAddress {
116
+ export declare class BitGoPsbt<TOutput extends ParsedOutput = ParsedOutput> extends PsbtBase<WasmBitGoPsbt> implements IPsbtWithAddress {
127
117
  protected constructor(wasm: WasmBitGoPsbt);
128
118
  /**
129
119
  * Get the underlying WASM instance
@@ -339,7 +329,7 @@ export declare class BitGoPsbt extends PsbtBase<WasmBitGoPsbt> implements IPsbtW
339
329
  * @param options.payGoPubkeys - Optional public keys for PayGo attestation verification
340
330
  * @returns Parsed transaction information
341
331
  */
342
- parseTransactionWithWalletKeys(walletKeys: WalletKeysArg, options: ParseTransactionOptions): ParsedTransaction;
332
+ parseTransactionWithWalletKeys(walletKeys: WalletKeysArg, options: ParseTransactionOptions): ParsedTransaction<TOutput>;
343
333
  /**
344
334
  * Parse outputs with wallet keys to identify which outputs belong to a wallet
345
335
  * with the given wallet keys.
@@ -353,7 +343,7 @@ export declare class BitGoPsbt extends PsbtBase<WasmBitGoPsbt> implements IPsbtW
353
343
  * @returns Array of parsed outputs
354
344
  * @note This method does NOT validate wallet inputs. It only parses outputs.
355
345
  */
356
- parseOutputsWithWalletKeys(walletKeys: WalletKeysArg, options?: ParseOutputsOptions): ParsedOutput[];
346
+ parseOutputsWithWalletKeys(walletKeys: WalletKeysArg, options?: ParseOutputsOptions): TOutput[];
357
347
  /**
358
348
  * Add a PayGo attestation to a PSBT output
359
349
  *
@@ -1,8 +1,20 @@
1
1
  import { type WalletKeysArg } from "./RootWalletKeys.js";
2
- import { BitGoPsbt, type CreateEmptyOptions, type HydrationUnspent } from "./BitGoPsbt.js";
2
+ import { BitGoPsbt, type CreateEmptyOptions, type HydrationUnspent, type ParsedOutput } from "./BitGoPsbt.js";
3
3
  import { ZcashTransaction, type ITransaction } from "../transaction.js";
4
4
  /** Zcash network names */
5
5
  export type ZcashNetworkName = "zcash" | "zcashTest" | "zec" | "tzec";
6
+ export type ZcashParsedOutput = ParsedOutput & {
7
+ /**
8
+ * True for a shielded (Orchard/Ironwood) output. Such an output has no `unsigned_tx` entry of
9
+ * its own — it lives in the PSBT's proprietary-map PCZT, read from its plaintext (not
10
+ * encrypted/decrypted) recipient field. `address` is a single-receiver ZIP-316 unified address
11
+ * (`u1...`/`utest1...`) encoding that receiver — a real, usable Zcash address, though not
12
+ * necessarily byte-identical to whatever multi-receiver UA the sender originally pasted in (a
13
+ * UA with a transparent/Sapling receiver too would round-trip to a different string carrying
14
+ * only the Orchard one). `script` holds the same receiver as raw 43 bytes.
15
+ */
16
+ isShielded: boolean;
17
+ };
6
18
  /**
7
19
  * Zcash v6 (Ironwood) version group id (0xd884b698). Its presence marks a PSBT as v6 — see
8
20
  * `ZcashIronwoodBitGoPsbt`.
@@ -52,7 +64,7 @@ export type CreateEmptyZcashWithConsensusBranchIdOptions = CreateEmptyOptions &
52
64
  * const psbt = ZcashBitGoPsbt.fromBytes(bytes, "zcash");
53
65
  * ```
54
66
  */
55
- export declare class ZcashBitGoPsbt extends BitGoPsbt {
67
+ export declare class ZcashBitGoPsbt extends BitGoPsbt<ZcashParsedOutput> {
56
68
  /**
57
69
  * Create an empty Zcash PSBT with consensus branch ID determined from block height
58
70
  *
@@ -1,6 +1,6 @@
1
1
  import { BitGoPsbt as WasmBitGoPsbt, zcash_branch_id_for_height, zcash_ironwood_version_group_id, } from "../wasm/wasm_utxo.js";
2
2
  import { RootWalletKeys } from "./RootWalletKeys.js";
3
- import { BitGoPsbt } from "./BitGoPsbt.js";
3
+ import { BitGoPsbt, } from "./BitGoPsbt.js";
4
4
  import { ZcashTransaction } from "../transaction.js";
5
5
  /**
6
6
  * Zcash v6 (Ironwood) version group id (0xd884b698). Its presence marks a PSBT as v6 — see
@@ -133,11 +133,18 @@ export declare class ZcashIronwoodBitGoPsbt extends ZcashBitGoPsbt {
133
133
  * @param options.anchor - 32-byte Ironwood note-commitment-tree root
134
134
  * @param options.memo - optional 512-byte memo (defaults to the ZIP-302 "no memo" encoding)
135
135
  * @param options.ovk - optional 32-byte outgoing viewing key (omit for a keyless build)
136
+ * @param options.unifiedAddress - optional full Unified Address string this output was addressed
137
+ * to. Its Orchard receiver must equal `recipient`. The PCZT itself only carries the raw 43-byte
138
+ * receiver — a lossy encoding for a multi-receiver UA, since any transparent/Sapling receiver
139
+ * can't be recovered from it — so passing this stores the original UA verbatim, letting a later
140
+ * `parseOutputsWithWalletKeys`/`parseTransactionWithWalletKeys` (even after a
141
+ * serialize/deserialize round-trip) return it in full instead of a re-encoded single-receiver UA.
136
142
  */
137
143
  addShieldedOutput(recipient: Uint8Array, amount: bigint, options: {
138
144
  anchor: Uint8Array;
139
145
  memo?: Uint8Array;
140
146
  ovk?: Uint8Array;
147
+ unifiedAddress?: string;
141
148
  }): void;
142
149
  /**
143
150
  * Client-managed `ovk`: re-encrypt the shielded output's `out_ciphertext` under **this wallet's**
@@ -128,10 +128,16 @@ export class ZcashIronwoodBitGoPsbt extends ZcashBitGoPsbt {
128
128
  * @param options.anchor - 32-byte Ironwood note-commitment-tree root
129
129
  * @param options.memo - optional 512-byte memo (defaults to the ZIP-302 "no memo" encoding)
130
130
  * @param options.ovk - optional 32-byte outgoing viewing key (omit for a keyless build)
131
+ * @param options.unifiedAddress - optional full Unified Address string this output was addressed
132
+ * to. Its Orchard receiver must equal `recipient`. The PCZT itself only carries the raw 43-byte
133
+ * receiver — a lossy encoding for a multi-receiver UA, since any transparent/Sapling receiver
134
+ * can't be recovered from it — so passing this stores the original UA verbatim, letting a later
135
+ * `parseOutputsWithWalletKeys`/`parseTransactionWithWalletKeys` (even after a
136
+ * serialize/deserialize round-trip) return it in full instead of a re-encoded single-receiver UA.
131
137
  */
132
138
  addShieldedOutput(recipient, amount, options) {
133
139
  const memo = options.memo ?? zip302NoMemo();
134
- this.wasm.add_ironwood_output(recipient, amount, options.ovk, options.anchor, memo);
140
+ this.wasm.add_ironwood_output(recipient, amount, options.ovk, options.anchor, memo, options.unifiedAddress);
135
141
  }
136
142
  /**
137
143
  * Client-managed `ovk`: re-encrypt the shielded output's `out_ciphertext` under **this wallet's**
@@ -8,7 +8,7 @@ export { ChainCode, chainCodes, assertChainCode, type Scope } from "./chains.js"
8
8
  export { requiresPrevTxForP2sh } from "./prevTx.js";
9
9
  export { BitGoPsbt, getWalletKeysFromPsbt, type NetworkName, type ScriptId, type ParsedInput, type ParsedOutput, type ParsedTransaction, type SignPath, type CreateEmptyOptions, type AddInputOptions, type AddOutputOptions, type AddWalletInputOptions, type AddWalletOutputOptions, type ParseTransactionOptions, type ParseOutputsOptions, type HydrationUnspent, } from "./BitGoPsbt.js";
10
10
  export { BitGoKeySubtype, type PsbtKvKey } from "./BitGoKeySubtype.js";
11
- export { ZcashBitGoPsbt, type ZcashNetworkName, type CreateEmptyZcashOptions, IRONWOOD_VERSION_GROUP_ID, } from "./ZcashBitGoPsbt.js";
11
+ export { ZcashBitGoPsbt, type ZcashNetworkName, type ZcashParsedOutput, type CreateEmptyZcashOptions, IRONWOOD_VERSION_GROUP_ID, } from "./ZcashBitGoPsbt.js";
12
12
  export { ZcashIronwoodBitGoPsbt, zip302NoMemo, type CreateEmptyIronwoodOptions, type CreateEmptyIronwoodWithConsensusBranchIdOptions, } from "./ZcashIronwoodBitGoPsbt.js";
13
13
  export { ZcashUnifiedAddress } from "./ZcashUnifiedAddress.js";
14
14
  export { ZcashV6Transaction } from "./ZcashV6Transaction.js";
@@ -150,13 +150,17 @@ export class BitGoPsbt {
150
150
  * * `ovk` - optional outgoing viewing key ([`OVK_SIZE`] bytes; `None` for a keyless build)
151
151
  * * `anchor` - Ironwood note-commitment-tree root ([`ANCHOR_SIZE`] bytes)
152
152
  * * `memo` - ZIP-302 memo field ([`MEMO_SIZE`] bytes)
153
+ * * `unified_address` - optional full Unified Address the output was addressed to; if given,
154
+ * its Orchard receiver must match `recipient`, and it is stored verbatim so output parsing
155
+ * can later return it in full (transparent/Sapling receivers included) instead of
156
+ * reconstructing a single-receiver UA from `recipient` alone
153
157
  *
154
158
  * [`ORCHARD_ADDRESS_SIZE`]: crate::zcash::ironwood_build::ORCHARD_ADDRESS_SIZE
155
159
  * [`OVK_SIZE`]: crate::zcash::ironwood_build::OVK_SIZE
156
160
  * [`ANCHOR_SIZE`]: crate::zcash::ironwood_build::ANCHOR_SIZE
157
161
  * [`MEMO_SIZE`]: crate::zcash::ironwood_build::MEMO_SIZE
158
162
  */
159
- add_ironwood_output(recipient: Uint8Array, amount: bigint, ovk: Uint8Array | null | undefined, anchor: Uint8Array, memo: Uint8Array): void;
163
+ add_ironwood_output(recipient: Uint8Array, amount: bigint, ovk: Uint8Array | null | undefined, anchor: Uint8Array, memo: Uint8Array, unified_address?: string | null): void;
160
164
  /**
161
165
  * Ingest a transparent-input signature (`sig`: DER ECDSA with the trailing SIGHASH_ALL byte)
162
166
  * after verifying it against `ironwood_v6_transparent_sighash(index)`.
@@ -478,6 +478,10 @@ export class BitGoPsbt {
478
478
  * * `ovk` - optional outgoing viewing key ([`OVK_SIZE`] bytes; `None` for a keyless build)
479
479
  * * `anchor` - Ironwood note-commitment-tree root ([`ANCHOR_SIZE`] bytes)
480
480
  * * `memo` - ZIP-302 memo field ([`MEMO_SIZE`] bytes)
481
+ * * `unified_address` - optional full Unified Address the output was addressed to; if given,
482
+ * its Orchard receiver must match `recipient`, and it is stored verbatim so output parsing
483
+ * can later return it in full (transparent/Sapling receivers included) instead of
484
+ * reconstructing a single-receiver UA from `recipient` alone
481
485
  *
482
486
  * [`ORCHARD_ADDRESS_SIZE`]: crate::zcash::ironwood_build::ORCHARD_ADDRESS_SIZE
483
487
  * [`OVK_SIZE`]: crate::zcash::ironwood_build::OVK_SIZE
@@ -488,8 +492,9 @@ export class BitGoPsbt {
488
492
  * @param {Uint8Array | null | undefined} ovk
489
493
  * @param {Uint8Array} anchor
490
494
  * @param {Uint8Array} memo
495
+ * @param {string | null} [unified_address]
491
496
  */
492
- add_ironwood_output(recipient, amount, ovk, anchor, memo) {
497
+ add_ironwood_output(recipient, amount, ovk, anchor, memo, unified_address) {
493
498
  try {
494
499
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
495
500
  const ptr0 = passArray8ToWasm0(recipient, wasm.__wbindgen_export);
@@ -500,7 +505,9 @@ export class BitGoPsbt {
500
505
  const len2 = WASM_VECTOR_LEN;
501
506
  const ptr3 = passArray8ToWasm0(memo, wasm.__wbindgen_export);
502
507
  const len3 = WASM_VECTOR_LEN;
503
- wasm.bitgopsbt_add_ironwood_output(retptr, this.__wbg_ptr, ptr0, len0, amount, ptr1, len1, ptr2, len2, ptr3, len3);
508
+ var ptr4 = isLikeNone(unified_address) ? 0 : passStringToWasm0(unified_address, wasm.__wbindgen_export, wasm.__wbindgen_export2);
509
+ var len4 = WASM_VECTOR_LEN;
510
+ wasm.bitgopsbt_add_ironwood_output(retptr, this.__wbg_ptr, ptr0, len0, amount, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4);
504
511
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
505
512
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
506
513
  if (r1) {
Binary file
@@ -1,150 +1,6 @@
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_addressnamespace_free: (a: number, b: number) => void;
9
- export const __wbg_utxolibcompatnamespace_free: (a: number, b: number) => void;
10
- export const __wbg_wasmdashtransaction_free: (a: number, b: number) => void;
11
- export const __wbg_wasmtransaction_free: (a: number, b: number) => void;
12
- export const __wbg_wasmzcashtransaction_free: (a: number, b: number) => void;
13
- export const __wbg_wrappsbt_free: (a: number, b: number) => void;
14
- export const __wbg_zcashunifiedaddress_free: (a: number, b: number) => void;
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, f: number) => void;
18
- export const utxolibcompatnamespace_from_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
19
- export const utxolibcompatnamespace_to_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
20
- export const wasmdashtransaction_from_bytes: (a: number, b: number, c: number) => void;
21
- export const wasmdashtransaction_get_inputs: (a: number, b: number) => void;
22
- export const wasmdashtransaction_get_outputs: (a: number, b: number) => void;
23
- export const wasmdashtransaction_get_outputs_with_address: (a: number, b: number, c: number, d: number) => void;
24
- export const wasmdashtransaction_get_txid: (a: number, b: number) => void;
25
- export const wasmdashtransaction_input_count: (a: number) => number;
26
- export const wasmdashtransaction_lock_time: (a: number) => number;
27
- export const wasmdashtransaction_output_count: (a: number) => number;
28
- export const wasmdashtransaction_to_bytes: (a: number, b: number) => void;
29
- export const wasmdashtransaction_version: (a: number) => number;
30
- export const wasmtransaction_add_input: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
31
- export const wasmtransaction_add_input_at_index: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
32
- export const wasmtransaction_add_output: (a: number, b: number, c: number, d: bigint) => number;
33
- export const wasmtransaction_add_output_at_index: (a: number, b: number, c: number, d: number, e: number, f: bigint) => void;
34
- export const wasmtransaction_create: () => number;
35
- export const wasmtransaction_from_bytes: (a: number, b: number, c: number) => void;
36
- export const wasmtransaction_get_inputs: (a: number, b: number) => void;
37
- export const wasmtransaction_get_outputs: (a: number, b: number) => void;
38
- export const wasmtransaction_get_outputs_with_address: (a: number, b: number, c: number, d: number) => void;
39
- export const wasmtransaction_get_txid: (a: number, b: number) => void;
40
- export const wasmtransaction_get_vsize: (a: number) => number;
41
- export const wasmtransaction_to_bytes: (a: number, b: number) => void;
42
- export const wasmzcashtransaction_from_bytes: (a: number, b: number, c: number) => void;
43
- export const wasmzcashtransaction_get_inputs: (a: number, b: number) => void;
44
- export const wasmzcashtransaction_get_outputs: (a: number, b: number) => void;
45
- export const wasmzcashtransaction_get_outputs_with_address: (a: number, b: number, c: number, d: number) => void;
46
- export const wasmzcashtransaction_get_txid: (a: number, b: number) => void;
47
- export const wasmzcashtransaction_to_bytes: (a: number, b: number) => void;
48
- export const wrappsbt_add_input: (a: number, b: number, c: number, d: number, e: number, f: bigint, g: number, h: number, i: number) => void;
49
- 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;
50
- export const wrappsbt_add_output: (a: number, b: number, c: number, d: bigint) => number;
51
- export const wrappsbt_add_output_at_index: (a: number, b: number, c: number, d: number, e: number, f: bigint) => void;
52
- export const wrappsbt_clone: (a: number) => number;
53
- export const wrappsbt_delete_input_kv: (a: number, b: number, c: number, d: number) => void;
54
- export const wrappsbt_delete_kv: (a: number, b: number, c: number) => void;
55
- export const wrappsbt_delete_output_kv: (a: number, b: number, c: number, d: number) => void;
56
- export const wrappsbt_deserialize: (a: number, b: number, c: number) => void;
57
- export const wrappsbt_extract_transaction: (a: number, b: number) => void;
58
- export const wrappsbt_extract_zcash_transaction: (a: number, b: number, c: number, d: number) => void;
59
- export const wrappsbt_finalize_mut: (a: number, b: number) => void;
60
- export const wrappsbt_finalize_mut_zcash: (a: number, b: number, c: number, d: number, e: number) => void;
61
- export const wrappsbt_get_global_xpubs: (a: number) => number;
62
- export const wrappsbt_get_input_kv: (a: number, b: number, c: number, d: number) => void;
63
- export const wrappsbt_get_inputs: (a: number, b: number) => void;
64
- export const wrappsbt_get_kv: (a: number, b: number, c: number) => void;
65
- export const wrappsbt_get_output_kv: (a: number, b: number, c: number, d: number) => void;
66
- export const wrappsbt_get_outputs: (a: number, b: number) => void;
67
- export const wrappsbt_get_outputs_with_address: (a: number, b: number, c: number, d: number) => void;
68
- export const wrappsbt_get_partial_signatures: (a: number, b: number, c: number) => void;
69
- export const wrappsbt_get_unsigned_tx: (a: number, b: number) => void;
70
- export const wrappsbt_has_partial_signatures: (a: number, b: number, c: number) => void;
71
- export const wrappsbt_input_count: (a: number) => number;
72
- export const wrappsbt_new: (a: number, b: number) => number;
73
- export const wrappsbt_output_count: (a: number) => number;
74
- export const wrappsbt_remove_input: (a: number, b: number, c: number) => void;
75
- export const wrappsbt_remove_output: (a: number, b: number, c: number) => void;
76
- export const wrappsbt_serialize: (a: number, b: number) => void;
77
- export const wrappsbt_set_input_kv: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
78
- export const wrappsbt_set_kv: (a: number, b: number, c: number, d: number, e: number) => void;
79
- export const wrappsbt_set_output_kv: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
80
- export const wrappsbt_sign_all: (a: number, b: number, c: number) => void;
81
- export const wrappsbt_sign_all_with_ecpair: (a: number, b: number, c: number) => void;
82
- export const wrappsbt_sign_with_prv: (a: number, b: number, c: number, d: number) => void;
83
- export const wrappsbt_sign_with_xprv: (a: number, b: number, c: number, d: number) => void;
84
- export const wrappsbt_sign_zcash_all_with_ecpair: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
85
- export const wrappsbt_sign_zcash_with_prv: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
86
- export const wrappsbt_unsigned_tx_id: (a: number, b: number) => void;
87
- export const wrappsbt_update_input_with_descriptor: (a: number, b: number, c: number, d: number) => void;
88
- export const wrappsbt_update_output_with_descriptor: (a: number, b: number, c: number, d: number) => void;
89
- export const wrappsbt_validate_signature_at_input: (a: number, b: number, c: number, d: number, e: number) => void;
90
- export const wrappsbt_verify_signature_with_key: (a: number, b: number, c: number, d: number) => void;
91
- export const zcash_branch_id_for_height: (a: number, b: number, c: number, d: number) => void;
92
- export const zcash_ironwood_version_group_id: () => number;
93
- export const zcashunifiedaddress_contains: (a: number, b: number, c: number, d: number) => void;
94
- export const zcashunifiedaddress_encodeOrchardReceiver: (a: number, b: number, c: number, d: number, e: number) => void;
95
- export const zcashunifiedaddress_orchardReceiver: (a: number, b: number) => void;
96
- export const zcashunifiedaddress_parse: (a: number, b: number, c: number, d: number, e: number) => void;
97
- export const zcashunifiedaddress_saplingReceiver: (a: number, b: number) => void;
98
- export const zcashunifiedaddress_transparentScript: (a: number, b: number) => void;
99
- export const zcashv6transaction_consensusBranchId: (a: number) => number;
100
- export const zcashv6transaction_expiryHeight: (a: number) => number;
101
- export const zcashv6transaction_fromBytes: (a: number, b: number, c: number) => void;
102
- export const zcashv6transaction_getId: (a: number, b: number) => void;
103
- export const zcashv6transaction_ironwoodActionCount: (a: number) => number;
104
- export const zcashv6transaction_ironwoodAnchor: (a: number, b: number) => void;
105
- export const zcashv6transaction_ironwoodFlags: (a: number) => number;
106
- export const zcashv6transaction_ironwoodValueBalance: (a: number) => bigint;
107
- export const zcashv6transaction_toBytes: (a: number, b: number) => void;
108
- export const zcashv6transaction_transparentSighash: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
109
- export const zcashv6transaction_txidBytes: (a: number, b: number) => void;
110
- export const wasmtransaction_input_count: (a: number) => number;
111
- export const wasmtransaction_output_count: (a: number) => number;
112
- export const wasmzcashtransaction_input_count: (a: number) => number;
113
- export const wasmzcashtransaction_output_count: (a: number) => number;
114
- export const wasmtransaction_lock_time: (a: number) => number;
115
- export const wasmtransaction_version: (a: number) => number;
116
- export const wasmzcashtransaction_lock_time: (a: number) => number;
117
- export const wasmzcashtransaction_version: (a: number) => number;
118
- export const wrappsbt_lock_time: (a: number) => number;
119
- export const wrappsbt_version: (a: number) => number;
120
- export const __wbg_wrapdescriptor_free: (a: number, b: number) => void;
121
- export const __wbg_wrapminiscript_free: (a: number, b: number) => void;
122
- export const wrapdescriptor_atDerivationIndex: (a: number, b: number, c: number) => void;
123
- export const wrapdescriptor_descType: (a: number, b: number) => void;
124
- export const wrapdescriptor_encode: (a: number, b: number) => void;
125
- export const wrapdescriptor_fromString: (a: number, b: number, c: number, d: number, e: number) => void;
126
- export const wrapdescriptor_fromStringDetectType: (a: number, b: number, c: number) => void;
127
- export const wrapdescriptor_fromStringExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
128
- export const wrapdescriptor_hasWildcard: (a: number) => number;
129
- export const wrapdescriptor_maxWeightToSatisfy: (a: number, b: number) => void;
130
- export const wrapdescriptor_node: (a: number, b: number) => void;
131
- export const wrapdescriptor_scriptPubkey: (a: number, b: number) => void;
132
- export const wrapdescriptor_toAsmString: (a: number, b: number) => void;
133
- export const wrapdescriptor_toString: (a: number, b: number) => void;
134
- export const wrapminiscript_encode: (a: number, b: number) => void;
135
- export const wrapminiscript_fromBitcoinScript: (a: number, b: number, c: number, d: number, e: number) => void;
136
- export const wrapminiscript_fromBitcoinScriptExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
137
- export const wrapminiscript_fromString: (a: number, b: number, c: number, d: number, e: number) => void;
138
- export const wrapminiscript_fromStringExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
139
- export const wrapminiscript_node: (a: number, b: number) => void;
140
- export const wrapminiscript_toAsmString: (a: number, b: number) => void;
141
- export const wrapminiscript_toString: (a: number, b: number) => void;
142
- export const __wbg_inscriptionsnamespace_free: (a: number, b: number) => void;
143
- export const __wbg_messagenamespace_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 messagenamespace_sign_message: (a: number, b: number, c: number, d: number) => void;
147
- export const messagenamespace_verify_message: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
148
4
  export const __wbg_bip322namespace_free: (a: number, b: number) => void;
149
5
  export const __wbg_bitgopsbt_free: (a: number, b: number) => void;
150
6
  export const __wbg_fixedscriptwalletnamespace_free: (a: number, b: number) => void;
@@ -152,7 +8,6 @@ export const __wbg_wasmbip32_free: (a: number, b: number) => void;
152
8
  export const __wbg_wasmdimensions_free: (a: number, b: number) => void;
153
9
  export const __wbg_wasmecpair_free: (a: number, b: number) => void;
154
10
  export const __wbg_wasmrootwalletkeys_free: (a: number, b: number) => void;
155
- export const __wbg_wasmutxonamespace_free: (a: number, b: number) => void;
156
11
  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;
157
12
  export const bip322namespace_get_bip322_message: (a: number, b: number, c: number) => void;
158
13
  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;
@@ -161,7 +16,7 @@ export const bip322namespace_verify_bip322_tx_input: (a: number, b: number, c: n
161
16
  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;
162
17
  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;
163
18
  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;
164
- 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;
19
+ 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;
165
20
  export const bitgopsbt_add_ironwood_v6_signature: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
166
21
  export const bitgopsbt_add_output: (a: number, b: number, c: number, d: number, e: bigint) => void;
167
22
  export const bitgopsbt_add_output_at_index: (a: number, b: number, c: number, d: number, e: number, f: bigint) => void;
@@ -252,8 +107,6 @@ export const fixedscriptwalletnamespace_output_script_with_network_str: (a: numb
252
107
  export const fixedscriptwalletnamespace_p2sh_p2pk_output_script: (a: number, b: number, c: number) => void;
253
108
  export const fixedscriptwalletnamespace_supports_script_type: (a: number, b: number, c: number, d: number, e: number) => void;
254
109
  export const fixedscriptwalletnamespace_to_wallet_keys: (a: number, b: number, c: number, d: number, e: number) => void;
255
- export const isInspectEnabled: () => number;
256
- export const parsePsbtRawToJson: (a: number, b: number, c: number, d: number, e: number) => void;
257
110
  export const wasmbip32_chain_code: (a: number) => number;
258
111
  export const wasmbip32_depth: (a: number) => number;
259
112
  export const wasmbip32_derive: (a: number, b: number, c: number) => void;
@@ -306,13 +159,160 @@ export const wasmrootwalletkeys_bitgo_key: (a: number) => number;
306
159
  export const wasmrootwalletkeys_new: (a: number, b: number, c: number, d: number) => void;
307
160
  export const wasmrootwalletkeys_user_key: (a: number) => number;
308
161
  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;
309
- export const wasmutxonamespace_get_wasm_utxo_version: (a: number) => void;
310
162
  export const wasmbip32_from_bip32_properties: (a: number, b: number) => void;
311
- export const parsePsbtToJson: (a: number, b: number, c: number, d: number, e: number) => void;
312
- export const parseTxToJson: (a: number, b: number, c: number, d: number, e: number) => void;
313
163
  export const bitgopsbt_sign_wallet_input: (a: number, b: number, c: number, d: number) => void;
314
164
  export const bitgopsbt_sign_all_with_xpriv: (a: number, b: number, c: number) => void;
315
165
  export const bitgopsbt_sign_replay_protection_inputs: (a: number, b: number, c: number) => void;
166
+ export const __wbg_wrapdescriptor_free: (a: number, b: number) => void;
167
+ export const __wbg_wrapminiscript_free: (a: number, b: number) => void;
168
+ export const wrapdescriptor_atDerivationIndex: (a: number, b: number, c: number) => void;
169
+ export const wrapdescriptor_descType: (a: number, b: number) => void;
170
+ export const wrapdescriptor_encode: (a: number, b: number) => void;
171
+ export const wrapdescriptor_fromString: (a: number, b: number, c: number, d: number, e: number) => void;
172
+ export const wrapdescriptor_fromStringDetectType: (a: number, b: number, c: number) => void;
173
+ export const wrapdescriptor_fromStringExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
174
+ export const wrapdescriptor_hasWildcard: (a: number) => number;
175
+ export const wrapdescriptor_maxWeightToSatisfy: (a: number, b: number) => void;
176
+ export const wrapdescriptor_node: (a: number, b: number) => void;
177
+ export const wrapdescriptor_scriptPubkey: (a: number, b: number) => void;
178
+ export const wrapdescriptor_toAsmString: (a: number, b: number) => void;
179
+ export const wrapdescriptor_toString: (a: number, b: number) => void;
180
+ export const wrapminiscript_encode: (a: number, b: number) => void;
181
+ export const wrapminiscript_fromBitcoinScript: (a: number, b: number, c: number, d: number, e: number) => void;
182
+ export const wrapminiscript_fromBitcoinScriptExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
183
+ export const wrapminiscript_fromString: (a: number, b: number, c: number, d: number, e: number) => void;
184
+ export const wrapminiscript_fromStringExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
185
+ export const wrapminiscript_node: (a: number, b: number) => void;
186
+ export const wrapminiscript_toAsmString: (a: number, b: number) => void;
187
+ export const wrapminiscript_toString: (a: number, b: number) => void;
188
+ export const __wbg_inscriptionsnamespace_free: (a: number, b: number) => void;
189
+ export const __wbg_messagenamespace_free: (a: number, b: number) => void;
190
+ export const inscriptionsnamespace_create_inscription_reveal_data: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
191
+ 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;
192
+ export const messagenamespace_sign_message: (a: number, b: number, c: number, d: number) => void;
193
+ export const messagenamespace_verify_message: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
194
+ export const __wbg_wasmreplayprotection_free: (a: number, b: number) => void;
195
+ export const wasmreplayprotection_from_addresses: (a: number, b: number, c: number, d: number, e: number) => void;
196
+ export const wasmreplayprotection_from_output_scripts: (a: number, b: number) => number;
197
+ export const wasmreplayprotection_from_public_keys: (a: number, b: number, c: number) => void;
198
+ export const __wbg_addressnamespace_free: (a: number, b: number) => void;
199
+ export const __wbg_utxolibcompatnamespace_free: (a: number, b: number) => void;
200
+ export const __wbg_wasmdashtransaction_free: (a: number, b: number) => void;
201
+ export const __wbg_wasmtransaction_free: (a: number, b: number) => void;
202
+ export const __wbg_wasmutxonamespace_free: (a: number, b: number) => void;
203
+ export const __wbg_wasmzcashtransaction_free: (a: number, b: number) => void;
204
+ export const __wbg_wrappsbt_free: (a: number, b: number) => void;
205
+ export const __wbg_zcashunifiedaddress_free: (a: number, b: number) => void;
206
+ export const __wbg_zcashv6transaction_free: (a: number, b: number) => void;
207
+ export const addressnamespace_from_output_script_with_coin: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
208
+ export const addressnamespace_to_output_script_with_coin: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
209
+ export const isInspectEnabled: () => number;
210
+ export const parsePsbtRawToJson: (a: number, b: number, c: number, d: number, e: number) => void;
211
+ export const utxolibcompatnamespace_from_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
212
+ export const utxolibcompatnamespace_to_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
213
+ export const wasmdashtransaction_from_bytes: (a: number, b: number, c: number) => void;
214
+ export const wasmdashtransaction_get_inputs: (a: number, b: number) => void;
215
+ export const wasmdashtransaction_get_outputs: (a: number, b: number) => void;
216
+ export const wasmdashtransaction_get_outputs_with_address: (a: number, b: number, c: number, d: number) => void;
217
+ export const wasmdashtransaction_get_txid: (a: number, b: number) => void;
218
+ export const wasmdashtransaction_input_count: (a: number) => number;
219
+ export const wasmdashtransaction_lock_time: (a: number) => number;
220
+ export const wasmdashtransaction_output_count: (a: number) => number;
221
+ export const wasmdashtransaction_to_bytes: (a: number, b: number) => void;
222
+ export const wasmdashtransaction_version: (a: number) => number;
223
+ export const wasmtransaction_add_input: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
224
+ export const wasmtransaction_add_input_at_index: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
225
+ export const wasmtransaction_add_output: (a: number, b: number, c: number, d: bigint) => number;
226
+ export const wasmtransaction_add_output_at_index: (a: number, b: number, c: number, d: number, e: number, f: bigint) => void;
227
+ export const wasmtransaction_create: () => number;
228
+ export const wasmtransaction_from_bytes: (a: number, b: number, c: number) => void;
229
+ export const wasmtransaction_get_inputs: (a: number, b: number) => void;
230
+ export const wasmtransaction_get_outputs: (a: number, b: number) => void;
231
+ export const wasmtransaction_get_outputs_with_address: (a: number, b: number, c: number, d: number) => void;
232
+ export const wasmtransaction_get_txid: (a: number, b: number) => void;
233
+ export const wasmtransaction_get_vsize: (a: number) => number;
234
+ export const wasmtransaction_to_bytes: (a: number, b: number) => void;
235
+ export const wasmutxonamespace_get_wasm_utxo_version: (a: number) => void;
236
+ export const wasmzcashtransaction_from_bytes: (a: number, b: number, c: number) => void;
237
+ export const wasmzcashtransaction_get_inputs: (a: number, b: number) => void;
238
+ export const wasmzcashtransaction_get_outputs: (a: number, b: number) => void;
239
+ export const wasmzcashtransaction_get_outputs_with_address: (a: number, b: number, c: number, d: number) => void;
240
+ export const wasmzcashtransaction_get_txid: (a: number, b: number) => void;
241
+ export const wasmzcashtransaction_to_bytes: (a: number, b: number) => void;
242
+ export const wrappsbt_add_input: (a: number, b: number, c: number, d: number, e: number, f: bigint, g: number, h: number, i: number) => void;
243
+ 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;
244
+ export const wrappsbt_add_output: (a: number, b: number, c: number, d: bigint) => number;
245
+ export const wrappsbt_add_output_at_index: (a: number, b: number, c: number, d: number, e: number, f: bigint) => void;
246
+ export const wrappsbt_clone: (a: number) => number;
247
+ export const wrappsbt_delete_input_kv: (a: number, b: number, c: number, d: number) => void;
248
+ export const wrappsbt_delete_kv: (a: number, b: number, c: number) => void;
249
+ export const wrappsbt_delete_output_kv: (a: number, b: number, c: number, d: number) => void;
250
+ export const wrappsbt_deserialize: (a: number, b: number, c: number) => void;
251
+ export const wrappsbt_extract_transaction: (a: number, b: number) => void;
252
+ export const wrappsbt_extract_zcash_transaction: (a: number, b: number, c: number, d: number) => void;
253
+ export const wrappsbt_finalize_mut: (a: number, b: number) => void;
254
+ export const wrappsbt_finalize_mut_zcash: (a: number, b: number, c: number, d: number, e: number) => void;
255
+ export const wrappsbt_get_global_xpubs: (a: number) => number;
256
+ export const wrappsbt_get_input_kv: (a: number, b: number, c: number, d: number) => void;
257
+ export const wrappsbt_get_inputs: (a: number, b: number) => void;
258
+ export const wrappsbt_get_kv: (a: number, b: number, c: number) => void;
259
+ export const wrappsbt_get_output_kv: (a: number, b: number, c: number, d: number) => void;
260
+ export const wrappsbt_get_outputs: (a: number, b: number) => void;
261
+ export const wrappsbt_get_outputs_with_address: (a: number, b: number, c: number, d: number) => void;
262
+ export const wrappsbt_get_partial_signatures: (a: number, b: number, c: number) => void;
263
+ export const wrappsbt_get_unsigned_tx: (a: number, b: number) => void;
264
+ export const wrappsbt_has_partial_signatures: (a: number, b: number, c: number) => void;
265
+ export const wrappsbt_input_count: (a: number) => number;
266
+ export const wrappsbt_new: (a: number, b: number) => number;
267
+ export const wrappsbt_output_count: (a: number) => number;
268
+ export const wrappsbt_remove_input: (a: number, b: number, c: number) => void;
269
+ export const wrappsbt_remove_output: (a: number, b: number, c: number) => void;
270
+ export const wrappsbt_serialize: (a: number, b: number) => void;
271
+ export const wrappsbt_set_input_kv: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
272
+ export const wrappsbt_set_kv: (a: number, b: number, c: number, d: number, e: number) => void;
273
+ export const wrappsbt_set_output_kv: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
274
+ export const wrappsbt_sign_all: (a: number, b: number, c: number) => void;
275
+ export const wrappsbt_sign_all_with_ecpair: (a: number, b: number, c: number) => void;
276
+ export const wrappsbt_sign_with_prv: (a: number, b: number, c: number, d: number) => void;
277
+ export const wrappsbt_sign_with_xprv: (a: number, b: number, c: number, d: number) => void;
278
+ export const wrappsbt_sign_zcash_all_with_ecpair: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
279
+ export const wrappsbt_sign_zcash_with_prv: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
280
+ export const wrappsbt_unsigned_tx_id: (a: number, b: number) => void;
281
+ export const wrappsbt_update_input_with_descriptor: (a: number, b: number, c: number, d: number) => void;
282
+ export const wrappsbt_update_output_with_descriptor: (a: number, b: number, c: number, d: number) => void;
283
+ export const wrappsbt_validate_signature_at_input: (a: number, b: number, c: number, d: number, e: number) => void;
284
+ export const wrappsbt_verify_signature_with_key: (a: number, b: number, c: number, d: number) => void;
285
+ export const zcash_branch_id_for_height: (a: number, b: number, c: number, d: number) => void;
286
+ export const zcash_ironwood_version_group_id: () => number;
287
+ export const zcashunifiedaddress_contains: (a: number, b: number, c: number, d: number) => void;
288
+ export const zcashunifiedaddress_encodeOrchardReceiver: (a: number, b: number, c: number, d: number, e: number) => void;
289
+ export const zcashunifiedaddress_orchardReceiver: (a: number, b: number) => void;
290
+ export const zcashunifiedaddress_parse: (a: number, b: number, c: number, d: number, e: number) => void;
291
+ export const zcashunifiedaddress_saplingReceiver: (a: number, b: number) => void;
292
+ export const zcashunifiedaddress_transparentScript: (a: number, b: number) => void;
293
+ export const zcashv6transaction_consensusBranchId: (a: number) => number;
294
+ export const zcashv6transaction_expiryHeight: (a: number) => number;
295
+ export const zcashv6transaction_fromBytes: (a: number, b: number, c: number) => void;
296
+ export const zcashv6transaction_getId: (a: number, b: number) => void;
297
+ export const zcashv6transaction_ironwoodActionCount: (a: number) => number;
298
+ export const zcashv6transaction_ironwoodAnchor: (a: number, b: number) => void;
299
+ export const zcashv6transaction_ironwoodFlags: (a: number) => number;
300
+ export const zcashv6transaction_ironwoodValueBalance: (a: number) => bigint;
301
+ export const zcashv6transaction_toBytes: (a: number, b: number) => void;
302
+ export const zcashv6transaction_transparentSighash: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
303
+ export const zcashv6transaction_txidBytes: (a: number, b: number) => void;
304
+ export const wasmtransaction_input_count: (a: number) => number;
305
+ export const wasmtransaction_output_count: (a: number) => number;
306
+ export const wasmzcashtransaction_input_count: (a: number) => number;
307
+ export const wasmzcashtransaction_output_count: (a: number) => number;
308
+ export const parsePsbtToJson: (a: number, b: number, c: number, d: number, e: number) => void;
309
+ export const parseTxToJson: (a: number, b: number, c: number, d: number, e: number) => void;
310
+ export const wasmtransaction_lock_time: (a: number) => number;
311
+ export const wasmtransaction_version: (a: number) => number;
312
+ export const wasmzcashtransaction_lock_time: (a: number) => number;
313
+ export const wasmzcashtransaction_version: (a: number) => number;
314
+ export const wrappsbt_lock_time: (a: number) => number;
315
+ export const wrappsbt_version: (a: number) => number;
316
316
  export const rustsecp256k1_v0_10_0_context_create: (a: number) => number;
317
317
  export const rustsecp256k1_v0_10_0_context_destroy: (a: number) => void;
318
318
  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.37.1",
4
+ "version": "4.37.2",
5
5
  "type": "module",
6
6
  "repository": {
7
7
  "type": "git",