@bitgo/wasm-utxo 4.39.0 → 4.41.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.
@@ -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;
@@ -0,0 +1,31 @@
1
+ import { IronwoodWitness as WasmIronwoodWitness } from "../wasm/wasm_utxo.js";
2
+ /**
3
+ * A validated Merkle witness for an Ironwood/Orchard note commitment.
4
+ *
5
+ * Build with {@link ZcashIronwoodWitness.build}: `cmx` is the note commitment being
6
+ * witnessed, `authPath` must be exactly 32 sibling hashes (32 bytes each, leaf-to-root
7
+ * order), and `anchor` is the expected note-commitment-tree root. Throws if any input
8
+ * isn't a canonical field element, or if the witness doesn't recompute to `anchor`.
9
+ *
10
+ * wasm-utxo has no chain state, so the raw sibling-hash path must be supplied by the
11
+ * caller (typically BitGo's backend, querying a Zcash-aware service).
12
+ */
13
+ export declare class ZcashIronwoodWitness {
14
+ private _wasm;
15
+ private constructor();
16
+ /**
17
+ * Build and validate a Merkle witness for an Ironwood/Orchard note commitment.
18
+ * @throws If any input isn't a canonical field element, or the witness doesn't
19
+ * recompute to `anchor`
20
+ */
21
+ static build(cmx: Uint8Array, position: number, authPath: Uint8Array[], anchor: Uint8Array): ZcashIronwoodWitness;
22
+ /** The leaf's position in the note commitment tree. */
23
+ get position(): number;
24
+ /**
25
+ * The 32 sibling hashes (leaf-to-root order), flattened into a single 1024-byte array
26
+ * (32 hashes × 32 bytes each).
27
+ */
28
+ get authPath(): Uint8Array;
29
+ /** @internal */
30
+ get wasm(): WasmIronwoodWitness;
31
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZcashIronwoodWitness = void 0;
4
+ const wasm_utxo_js_1 = require("../wasm/wasm_utxo.js");
5
+ /**
6
+ * A validated Merkle witness for an Ironwood/Orchard note commitment.
7
+ *
8
+ * Build with {@link ZcashIronwoodWitness.build}: `cmx` is the note commitment being
9
+ * witnessed, `authPath` must be exactly 32 sibling hashes (32 bytes each, leaf-to-root
10
+ * order), and `anchor` is the expected note-commitment-tree root. Throws if any input
11
+ * isn't a canonical field element, or if the witness doesn't recompute to `anchor`.
12
+ *
13
+ * wasm-utxo has no chain state, so the raw sibling-hash path must be supplied by the
14
+ * caller (typically BitGo's backend, querying a Zcash-aware service).
15
+ */
16
+ class ZcashIronwoodWitness {
17
+ _wasm;
18
+ constructor(_wasm) {
19
+ this._wasm = _wasm;
20
+ }
21
+ /**
22
+ * Build and validate a Merkle witness for an Ironwood/Orchard note commitment.
23
+ * @throws If any input isn't a canonical field element, or the witness doesn't
24
+ * recompute to `anchor`
25
+ */
26
+ static build(cmx, position, authPath, anchor) {
27
+ return new ZcashIronwoodWitness((0, wasm_utxo_js_1.ironwood_build_witness)(cmx, position, authPath, anchor));
28
+ }
29
+ /** The leaf's position in the note commitment tree. */
30
+ get position() {
31
+ return this._wasm.position;
32
+ }
33
+ /**
34
+ * The 32 sibling hashes (leaf-to-root order), flattened into a single 1024-byte array
35
+ * (32 hashes × 32 bytes each).
36
+ */
37
+ get authPath() {
38
+ return this._wasm.auth_path;
39
+ }
40
+ /** @internal */
41
+ get wasm() {
42
+ return this._wasm;
43
+ }
44
+ }
45
+ exports.ZcashIronwoodWitness = ZcashIronwoodWitness;
@@ -12,6 +12,7 @@ export { ZcashBitGoPsbt, type ZcashNetworkName, type ZcashParsedOutput, type Cre
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";
15
+ export { ZcashIronwoodWitness } from "./ZcashIronwoodWitness.js";
15
16
  import type { ScriptType } from "./scriptType.js";
16
17
  /**
17
18
  * Check if a network supports a given fixed-script wallet script type
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ZcashV6Transaction = exports.ZcashUnifiedAddress = exports.zip302NoMemo = exports.ZcashIronwoodBitGoPsbt = exports.IRONWOOD_VERSION_GROUP_ID = exports.ZcashBitGoPsbt = exports.BitGoKeySubtype = exports.getWalletKeysFromPsbt = exports.BitGoPsbt = exports.requiresPrevTxForP2sh = exports.assertChainCode = exports.chainCodes = exports.ChainCode = exports.inputScriptTypes = exports.outputScriptTypes = exports.Dimensions = exports.address = exports.outputScript = exports.ReplayProtection = exports.RootWalletKeys = void 0;
3
+ exports.ZcashIronwoodWitness = exports.ZcashV6Transaction = exports.ZcashUnifiedAddress = exports.zip302NoMemo = exports.ZcashIronwoodBitGoPsbt = exports.IRONWOOD_VERSION_GROUP_ID = exports.ZcashBitGoPsbt = exports.BitGoKeySubtype = exports.getWalletKeysFromPsbt = exports.BitGoPsbt = exports.requiresPrevTxForP2sh = exports.assertChainCode = exports.chainCodes = exports.ChainCode = exports.inputScriptTypes = exports.outputScriptTypes = exports.Dimensions = exports.address = exports.outputScript = exports.ReplayProtection = exports.RootWalletKeys = void 0;
4
4
  exports.supportsScriptType = supportsScriptType;
5
5
  exports.createOpReturnScript = createOpReturnScript;
6
6
  exports.p2shP2pkOutputScript = p2shP2pkOutputScript;
@@ -44,6 +44,9 @@ Object.defineProperty(exports, "ZcashUnifiedAddress", { enumerable: true, get: f
44
44
  // Zcash v6 (Ironwood / NU6.3) transaction
45
45
  var ZcashV6Transaction_js_1 = require("./ZcashV6Transaction.js");
46
46
  Object.defineProperty(exports, "ZcashV6Transaction", { enumerable: true, get: function () { return ZcashV6Transaction_js_1.ZcashV6Transaction; } });
47
+ // Zcash v6 (Ironwood / NU6.3) Merkle witness
48
+ var ZcashIronwoodWitness_js_1 = require("./ZcashIronwoodWitness.js");
49
+ Object.defineProperty(exports, "ZcashIronwoodWitness", { enumerable: true, get: function () { return ZcashIronwoodWitness_js_1.ZcashIronwoodWitness; } });
47
50
  /**
48
51
  * Check if a network supports a given fixed-script wallet script type
49
52
  *
@@ -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
@@ -966,6 +984,27 @@ export class InscriptionsNamespace {
966
984
  static sign_reveal_transaction(private_key: Uint8Array, tap_leaf_script: any, commit_tx: WasmTransaction, commit_output_script: Uint8Array, recipient_output_script: Uint8Array, output_value_sats: bigint): Uint8Array;
967
985
  }
968
986
 
987
+ /**
988
+ * A validated Merkle witness for an Ironwood/Orchard note commitment, from
989
+ * [`ironwood_build_witness`].
990
+ *
991
+ * Not yet installed anywhere — see [`ironwood_build_witness`]'s docs.
992
+ */
993
+ export class IronwoodWitness {
994
+ private constructor();
995
+ free(): void;
996
+ [Symbol.dispose](): void;
997
+ /**
998
+ * The 32 sibling hashes (leaf-to-root order), flattened into a single 1024-byte array
999
+ * (32 hashes × 32 bytes each).
1000
+ */
1001
+ readonly auth_path: Uint8Array;
1002
+ /**
1003
+ * The leaf's position in the note commitment tree.
1004
+ */
1005
+ readonly position: number;
1006
+ }
1007
+
969
1008
  export class MessageNamespace {
970
1009
  private constructor();
971
1010
  free(): void;
@@ -1843,6 +1882,19 @@ export class ZcashV6Transaction {
1843
1882
  readonly ironwoodValueBalance: bigint;
1844
1883
  }
1845
1884
 
1885
+ /**
1886
+ * Build and validate a Merkle witness for an Ironwood/Orchard note commitment.
1887
+ *
1888
+ * `cmx` is the note commitment being witnessed; `auth_path` must be exactly 32 sibling hashes (32
1889
+ * bytes each), leaf-to-root order; `anchor` is the expected note-commitment-tree root. Throws if
1890
+ * any input isn't a canonical field element, or if the witness doesn't recompute to `anchor`.
1891
+ *
1892
+ * This crate has no chain state, so the raw sibling-hash path must be supplied by the caller
1893
+ * (typically BitGo's backend, querying a Zcash-aware service). The returned witness is not yet
1894
+ * installed anywhere — hook it into a spend once real-spend construction exists.
1895
+ */
1896
+ export function ironwood_build_witness(cmx: Uint8Array, position: number, auth_path: Uint8Array[], anchor: Uint8Array): IronwoodWitness;
1897
+
1846
1898
  /**
1847
1899
  * Check if the inspect feature is enabled.
1848
1900
  *
@@ -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
  */
@@ -3133,6 +3190,60 @@ class InscriptionsNamespace {
3133
3190
  if (Symbol.dispose) InscriptionsNamespace.prototype[Symbol.dispose] = InscriptionsNamespace.prototype.free;
3134
3191
  exports.InscriptionsNamespace = InscriptionsNamespace;
3135
3192
 
3193
+ /**
3194
+ * A validated Merkle witness for an Ironwood/Orchard note commitment, from
3195
+ * [`ironwood_build_witness`].
3196
+ *
3197
+ * Not yet installed anywhere — see [`ironwood_build_witness`]'s docs.
3198
+ */
3199
+ class IronwoodWitness {
3200
+ static __wrap(ptr) {
3201
+ ptr = ptr >>> 0;
3202
+ const obj = Object.create(IronwoodWitness.prototype);
3203
+ obj.__wbg_ptr = ptr;
3204
+ IronwoodWitnessFinalization.register(obj, obj.__wbg_ptr, obj);
3205
+ return obj;
3206
+ }
3207
+ __destroy_into_raw() {
3208
+ const ptr = this.__wbg_ptr;
3209
+ this.__wbg_ptr = 0;
3210
+ IronwoodWitnessFinalization.unregister(this);
3211
+ return ptr;
3212
+ }
3213
+ free() {
3214
+ const ptr = this.__destroy_into_raw();
3215
+ wasm.__wbg_ironwoodwitness_free(ptr, 0);
3216
+ }
3217
+ /**
3218
+ * The 32 sibling hashes (leaf-to-root order), flattened into a single 1024-byte array
3219
+ * (32 hashes × 32 bytes each).
3220
+ * @returns {Uint8Array}
3221
+ */
3222
+ get auth_path() {
3223
+ try {
3224
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
3225
+ wasm.ironwoodwitness_auth_path(retptr, this.__wbg_ptr);
3226
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
3227
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
3228
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
3229
+ wasm.__wbindgen_export4(r0, r1 * 1, 1);
3230
+ return v1;
3231
+ } finally {
3232
+ wasm.__wbindgen_add_to_stack_pointer(16);
3233
+ }
3234
+ }
3235
+ /**
3236
+ * The leaf's position in the note commitment tree.
3237
+ * @returns {number}
3238
+ */
3239
+ get position() {
3240
+ const ret = wasm.ironwoodwitness_position(this.__wbg_ptr);
3241
+ return ret >>> 0;
3242
+ }
3243
+ }
3244
+ if (Symbol.dispose) IronwoodWitness.prototype[Symbol.dispose] = IronwoodWitness.prototype.free;
3245
+ exports.IronwoodWitness = IronwoodWitness;
3246
+
3136
3247
  class MessageNamespace {
3137
3248
  __destroy_into_raw() {
3138
3249
  const ptr = this.__wbg_ptr;
@@ -7011,6 +7122,45 @@ class ZcashV6Transaction {
7011
7122
  if (Symbol.dispose) ZcashV6Transaction.prototype[Symbol.dispose] = ZcashV6Transaction.prototype.free;
7012
7123
  exports.ZcashV6Transaction = ZcashV6Transaction;
7013
7124
 
7125
+ /**
7126
+ * Build and validate a Merkle witness for an Ironwood/Orchard note commitment.
7127
+ *
7128
+ * `cmx` is the note commitment being witnessed; `auth_path` must be exactly 32 sibling hashes (32
7129
+ * bytes each), leaf-to-root order; `anchor` is the expected note-commitment-tree root. Throws if
7130
+ * any input isn't a canonical field element, or if the witness doesn't recompute to `anchor`.
7131
+ *
7132
+ * This crate has no chain state, so the raw sibling-hash path must be supplied by the caller
7133
+ * (typically BitGo's backend, querying a Zcash-aware service). The returned witness is not yet
7134
+ * installed anywhere — hook it into a spend once real-spend construction exists.
7135
+ * @param {Uint8Array} cmx
7136
+ * @param {number} position
7137
+ * @param {Uint8Array[]} auth_path
7138
+ * @param {Uint8Array} anchor
7139
+ * @returns {IronwoodWitness}
7140
+ */
7141
+ function ironwood_build_witness(cmx, position, auth_path, anchor) {
7142
+ try {
7143
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
7144
+ const ptr0 = passArray8ToWasm0(cmx, wasm.__wbindgen_export);
7145
+ const len0 = WASM_VECTOR_LEN;
7146
+ const ptr1 = passArrayJsValueToWasm0(auth_path, wasm.__wbindgen_export);
7147
+ const len1 = WASM_VECTOR_LEN;
7148
+ const ptr2 = passArray8ToWasm0(anchor, wasm.__wbindgen_export);
7149
+ const len2 = WASM_VECTOR_LEN;
7150
+ wasm.ironwood_build_witness(retptr, ptr0, len0, position, ptr1, len1, ptr2, len2);
7151
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
7152
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
7153
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
7154
+ if (r2) {
7155
+ throw takeObject(r1);
7156
+ }
7157
+ return IronwoodWitness.__wrap(r0);
7158
+ } finally {
7159
+ wasm.__wbindgen_add_to_stack_pointer(16);
7160
+ }
7161
+ }
7162
+ exports.ironwood_build_witness = ironwood_build_witness;
7163
+
7014
7164
  /**
7015
7165
  * Check if the inspect feature is enabled.
7016
7166
  *
@@ -7487,6 +7637,9 @@ const FixedScriptWalletNamespaceFinalization = (typeof FinalizationRegistry ===
7487
7637
  const InscriptionsNamespaceFinalization = (typeof FinalizationRegistry === 'undefined')
7488
7638
  ? { register: () => {}, unregister: () => {} }
7489
7639
  : new FinalizationRegistry(ptr => wasm.__wbg_inscriptionsnamespace_free(ptr >>> 0, 1));
7640
+ const IronwoodWitnessFinalization = (typeof FinalizationRegistry === 'undefined')
7641
+ ? { register: () => {}, unregister: () => {} }
7642
+ : new FinalizationRegistry(ptr => wasm.__wbg_ironwoodwitness_free(ptr >>> 0, 1));
7490
7643
  const MessageNamespaceFinalization = (typeof FinalizationRegistry === 'undefined')
7491
7644
  ? { register: () => {}, unregister: () => {} }
7492
7645
  : new FinalizationRegistry(ptr => wasm.__wbg_messagenamespace_free(ptr >>> 0, 1));
Binary file
@@ -1,42 +1,25 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
- export const __wbg_addressnamespace_free: (a: number, b: number) => void;
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_wasmreplayprotection_free: (a: number, b: number) => void;
27
- export const wasmreplayprotection_from_addresses: (a: number, b: number, c: number, d: number, e: number) => void;
28
- export const wasmreplayprotection_from_output_scripts: (a: number, b: number) => number;
29
- export const wasmreplayprotection_from_public_keys: (a: number, b: number, c: number) => void;
30
- export const __wbg_inscriptionsnamespace_free: (a: number, b: number) => void;
4
+ export const __wbg_bip322namespace_free: (a: number, b: number) => void;
5
+ 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;
6
+ export const bip322namespace_get_bip322_message: (a: number, b: number, c: number) => void;
7
+ 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;
8
+ 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;
9
+ 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;
10
+ 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;
11
+ export const __wbg_ironwoodwitness_free: (a: number, b: number) => void;
31
12
  export const __wbg_messagenamespace_free: (a: number, b: number) => void;
32
13
  export const __wbg_wasmdashtransaction_free: (a: number, b: number) => void;
14
+ export const __wbg_wasmreplayprotection_free: (a: number, b: number) => void;
33
15
  export const __wbg_wasmtransaction_free: (a: number, b: number) => void;
34
16
  export const __wbg_wasmzcashtransaction_free: (a: number, b: number) => void;
35
17
  export const __wbg_wrappsbt_free: (a: number, b: number) => void;
36
18
  export const __wbg_zcashunifiedaddress_free: (a: number, b: number) => void;
37
19
  export const __wbg_zcashv6transaction_free: (a: number, b: number) => void;
38
- export const inscriptionsnamespace_create_inscription_reveal_data: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
39
- 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;
20
+ export const ironwood_build_witness: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => void;
21
+ export const ironwoodwitness_auth_path: (a: number, b: number) => void;
22
+ export const ironwoodwitness_position: (a: number) => number;
40
23
  export const messagenamespace_sign_message: (a: number, b: number, c: number, d: number) => void;
41
24
  export const messagenamespace_verify_message: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
42
25
  export const wasmdashtransaction_from_bytes: (a: number, b: number, c: number) => void;
@@ -49,6 +32,9 @@ export const wasmdashtransaction_lock_time: (a: number) => number;
49
32
  export const wasmdashtransaction_output_count: (a: number) => number;
50
33
  export const wasmdashtransaction_to_bytes: (a: number, b: number) => void;
51
34
  export const wasmdashtransaction_version: (a: number) => number;
35
+ export const wasmreplayprotection_from_addresses: (a: number, b: number, c: number, d: number, e: number) => void;
36
+ export const wasmreplayprotection_from_output_scripts: (a: number, b: number) => number;
37
+ export const wasmreplayprotection_from_public_keys: (a: number, b: number, c: number) => void;
52
38
  export const wasmtransaction_add_input: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
53
39
  export const wasmtransaction_add_input_at_index: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
54
40
  export const wasmtransaction_add_output: (a: number, b: number, c: number, d: bigint) => number;
@@ -141,6 +127,31 @@ export const wasmzcashtransaction_lock_time: (a: number) => number;
141
127
  export const wasmzcashtransaction_version: (a: number) => number;
142
128
  export const wrappsbt_lock_time: (a: number) => number;
143
129
  export const wrappsbt_version: (a: number) => number;
130
+ export const __wbg_inscriptionsnamespace_free: (a: number, b: number) => void;
131
+ export const __wbg_wrapdescriptor_free: (a: number, b: number) => void;
132
+ export const __wbg_wrapminiscript_free: (a: number, b: number) => void;
133
+ export const inscriptionsnamespace_create_inscription_reveal_data: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
134
+ 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;
135
+ export const wrapdescriptor_atDerivationIndex: (a: number, b: number, c: number) => void;
136
+ export const wrapdescriptor_descType: (a: number, b: number) => void;
137
+ export const wrapdescriptor_encode: (a: number, b: number) => void;
138
+ export const wrapdescriptor_fromString: (a: number, b: number, c: number, d: number, e: number) => void;
139
+ export const wrapdescriptor_fromStringDetectType: (a: number, b: number, c: number) => void;
140
+ export const wrapdescriptor_fromStringExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
141
+ export const wrapdescriptor_hasWildcard: (a: number) => number;
142
+ export const wrapdescriptor_maxWeightToSatisfy: (a: number, b: number) => void;
143
+ export const wrapdescriptor_node: (a: number, b: number) => void;
144
+ export const wrapdescriptor_scriptPubkey: (a: number, b: number) => void;
145
+ export const wrapdescriptor_toAsmString: (a: number, b: number) => void;
146
+ export const wrapdescriptor_toString: (a: number, b: number) => void;
147
+ export const wrapminiscript_encode: (a: number, b: number) => void;
148
+ export const wrapminiscript_fromBitcoinScript: (a: number, b: number, c: number, d: number, e: number) => void;
149
+ export const wrapminiscript_fromBitcoinScriptExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
150
+ export const wrapminiscript_fromString: (a: number, b: number, c: number, d: number, e: number) => void;
151
+ export const wrapminiscript_fromStringExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
152
+ export const wrapminiscript_node: (a: number, b: number) => void;
153
+ export const wrapminiscript_toAsmString: (a: number, b: number) => void;
154
+ export const wrapminiscript_toString: (a: number, b: number) => void;
144
155
  export const __wbg_bitgopsbt_free: (a: number, b: number) => void;
145
156
  export const __wbg_fixedscriptwalletnamespace_free: (a: number, b: number) => void;
146
157
  export const __wbg_wasmbip32_free: (a: number, b: number) => void;
@@ -158,6 +169,7 @@ export const bitgopsbt_add_output_with_address_at_index: (a: number, b: number,
158
169
  export const bitgopsbt_add_paygo_attestation: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
159
170
  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;
160
171
  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;
172
+ export const bitgopsbt_add_transparent_output: (a: number, b: number, c: number, d: number, e: bigint, f: number, g: number) => void;
161
173
  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;
162
174
  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;
163
175
  export const bitgopsbt_add_wallet_output: (a: number, b: number, c: number, d: number, e: bigint, f: number) => void;
@@ -224,6 +236,7 @@ export const bitgopsbt_sign_single_input_with_privkey: (a: number, b: number, c:
224
236
  export const bitgopsbt_sign_single_input_with_xpriv: (a: number, b: number, c: number, d: number) => void;
225
237
  export const bitgopsbt_sign_with_privkey: (a: number, b: number, c: number, d: number) => void;
226
238
  export const bitgopsbt_sign_with_xpriv: (a: number, b: number, c: number, d: number) => void;
239
+ export const bitgopsbt_transparent_output_unified_address: (a: number, b: number, c: number) => void;
227
240
  export const bitgopsbt_unsigned_tx_id: (a: number, b: number) => void;
228
241
  export const bitgopsbt_verify_replay_protection_signature: (a: number, b: number, c: number, d: number) => void;
229
242
  export const bitgopsbt_verify_signature_with_pub: (a: number, b: number, c: number, d: number) => void;
@@ -240,7 +253,6 @@ export const fixedscriptwalletnamespace_output_script_with_network_str: (a: numb
240
253
  export const fixedscriptwalletnamespace_p2sh_p2pk_output_script: (a: number, b: number, c: number) => void;
241
254
  export const fixedscriptwalletnamespace_supports_script_type: (a: number, b: number, c: number, d: number, e: number) => void;
242
255
  export const fixedscriptwalletnamespace_to_wallet_keys: (a: number, b: number, c: number, d: number, e: number) => void;
243
- export const parsePsbtRawToJson: (a: number, b: number, c: number, d: number, e: number) => void;
244
256
  export const wasmbip32_chain_code: (a: number) => number;
245
257
  export const wasmbip32_depth: (a: number) => number;
246
258
  export const wasmbip32_derive: (a: number, b: number, c: number) => void;
@@ -279,43 +291,37 @@ export const wasmrootwalletkeys_new: (a: number, b: number, c: number, d: number
279
291
  export const wasmrootwalletkeys_user_key: (a: number) => number;
280
292
  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;
281
293
  export const wasmbip32_from_bip32_properties: (a: number, b: number) => void;
282
- export const isInspectEnabled: () => number;
283
- export const parsePsbtToJson: (a: number, b: number, c: number, d: number, e: number) => void;
284
- export const parseTxToJson: (a: number, b: number, c: number, d: number, e: number) => void;
285
294
  export const bitgopsbt_sign_wallet_input: (a: number, b: number, c: number, d: number) => void;
286
295
  export const bitgopsbt_sign_all_with_xpriv: (a: number, b: number, c: number) => void;
287
296
  export const bitgopsbt_sign_replay_protection_inputs: (a: number, b: number, c: number) => void;
288
- export const __wbg_wrapdescriptor_free: (a: number, b: number) => void;
289
- export const __wbg_wrapminiscript_free: (a: number, b: number) => void;
290
- export const wrapdescriptor_atDerivationIndex: (a: number, b: number, c: number) => void;
291
- export const wrapdescriptor_descType: (a: number, b: number) => void;
292
- export const wrapdescriptor_encode: (a: number, b: number) => void;
293
- export const wrapdescriptor_fromString: (a: number, b: number, c: number, d: number, e: number) => void;
294
- export const wrapdescriptor_fromStringDetectType: (a: number, b: number, c: number) => void;
295
- export const wrapdescriptor_fromStringExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
296
- export const wrapdescriptor_hasWildcard: (a: number) => number;
297
- export const wrapdescriptor_maxWeightToSatisfy: (a: number, b: number) => void;
298
- export const wrapdescriptor_node: (a: number, b: number) => void;
299
- export const wrapdescriptor_scriptPubkey: (a: number, b: number) => void;
300
- export const wrapdescriptor_toAsmString: (a: number, b: number) => void;
301
- export const wrapdescriptor_toString: (a: number, b: number) => void;
302
- export const wrapminiscript_encode: (a: number, b: number) => void;
303
- export const wrapminiscript_fromBitcoinScript: (a: number, b: number, c: number, d: number, e: number) => void;
304
- export const wrapminiscript_fromBitcoinScriptExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
305
- export const wrapminiscript_fromString: (a: number, b: number, c: number, d: number, e: number) => void;
306
- export const wrapminiscript_fromStringExt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
307
- export const wrapminiscript_node: (a: number, b: number) => void;
308
- export const wrapminiscript_toAsmString: (a: number, b: number) => void;
309
- export const wrapminiscript_toString: (a: number, b: number) => void;
310
- export const __wbg_bip322namespace_free: (a: number, b: number) => void;
297
+ export const __wbg_addressnamespace_free: (a: number, b: number) => void;
298
+ export const __wbg_utxolibcompatnamespace_free: (a: number, b: number) => void;
299
+ export const __wbg_wasmdimensions_free: (a: number, b: number) => void;
311
300
  export const __wbg_wasmutxonamespace_free: (a: number, b: number) => void;
312
- 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;
313
- export const bip322namespace_get_bip322_message: (a: number, b: number, c: number) => void;
314
- 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;
315
- 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;
316
- 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;
317
- 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;
301
+ export const addressnamespace_from_output_script_with_coin: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
302
+ export const addressnamespace_to_output_script_with_coin: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
303
+ export const isInspectEnabled: () => number;
304
+ export const parsePsbtRawToJson: (a: number, b: number, c: number, d: number, e: number) => void;
305
+ export const utxolibcompatnamespace_from_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
306
+ export const utxolibcompatnamespace_to_output_script: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
307
+ export const wasmdimensions_empty: () => number;
308
+ export const wasmdimensions_from_input: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
309
+ export const wasmdimensions_from_input_script_type: (a: number, b: number, c: number, d: number) => void;
310
+ export const wasmdimensions_from_output_script_length: (a: number) => number;
311
+ export const wasmdimensions_from_output_script_type: (a: number, b: number, c: number) => void;
312
+ export const wasmdimensions_from_psbt: (a: number, b: number) => void;
313
+ export const wasmdimensions_get_input_vsize: (a: number, b: number, c: number) => number;
314
+ export const wasmdimensions_get_input_weight: (a: number, b: number, c: number) => number;
315
+ export const wasmdimensions_get_output_vsize: (a: number) => number;
316
+ export const wasmdimensions_get_output_weight: (a: number) => number;
317
+ export const wasmdimensions_get_vsize: (a: number, b: number, c: number) => number;
318
+ export const wasmdimensions_get_weight: (a: number, b: number, c: number) => number;
319
+ export const wasmdimensions_has_segwit: (a: number) => number;
320
+ export const wasmdimensions_plus: (a: number, b: number) => number;
321
+ export const wasmdimensions_times: (a: number, b: number) => number;
318
322
  export const wasmutxonamespace_get_wasm_utxo_version: (a: number) => void;
323
+ export const parsePsbtToJson: (a: number, b: number, c: number, d: number, e: number) => void;
324
+ export const parseTxToJson: (a: number, b: number, c: number, d: number, e: number) => void;
319
325
  export const rustsecp256k1_v0_10_0_context_create: (a: number) => number;
320
326
  export const rustsecp256k1_v0_10_0_context_destroy: (a: number) => void;
321
327
  export const rustsecp256k1_v0_10_0_default_error_callback_fn: (a: number, b: number) => void;