@bitgo/wasm-utxo 5.2.0 → 5.4.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.
- package/README.md +1 -0
- package/dist/cjs/js/fixedScriptWallet/ZcashIronwoodBitGoPsbt.d.ts +25 -0
- package/dist/cjs/js/fixedScriptWallet/ZcashIronwoodBitGoPsbt.js +33 -0
- package/dist/cjs/js/fixedScriptWallet/ZcashIronwoodWitness.d.ts +29 -0
- package/dist/cjs/js/fixedScriptWallet/ZcashIronwoodWitness.js +15 -0
- package/dist/cjs/js/fixedScriptWallet/index.d.ts +1 -0
- package/dist/cjs/js/wasm/wasm_utxo.d.ts +33 -0
- package/dist/cjs/js/wasm/wasm_utxo.js +181 -3
- package/dist/cjs/js/wasm/wasm_utxo_bg.wasm +0 -0
- package/dist/cjs/js/wasm/wasm_utxo_bg.wasm.d.ts +177 -174
- package/dist/esm/js/fixedScriptWallet/ZcashIronwoodBitGoPsbt.d.ts +25 -0
- package/dist/esm/js/fixedScriptWallet/ZcashIronwoodBitGoPsbt.js +33 -0
- package/dist/esm/js/fixedScriptWallet/ZcashIronwoodWitness.d.ts +29 -0
- package/dist/esm/js/fixedScriptWallet/ZcashIronwoodWitness.js +16 -1
- package/dist/esm/js/fixedScriptWallet/index.d.ts +1 -0
- package/dist/esm/js/wasm/wasm_utxo.d.ts +33 -0
- package/dist/esm/js/wasm/wasm_utxo.js +1 -1
- package/dist/esm/js/wasm/wasm_utxo_bg.js +180 -3
- package/dist/esm/js/wasm/wasm_utxo_bg.wasm +0 -0
- package/dist/esm/js/wasm/wasm_utxo_bg.wasm.d.ts +177 -174
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,6 +7,7 @@ that help verify and co-sign transactions built by the BitGo Wallet Platform API
|
|
|
7
7
|
|
|
8
8
|
## Documentation
|
|
9
9
|
|
|
10
|
+
- **[`../../CONVENTIONS.md`](../../CONVENTIONS.md)** - Repository-wide API and structured-error conventions
|
|
10
11
|
- **[`src/wasm-bindgen.md`](src/wasm-bindgen.md)** - Guide for creating WASM bindings using the namespace pattern
|
|
11
12
|
- **[`js/README.md`](js/README.md)** - TypeScript wrapper layer architecture and best practices
|
|
12
13
|
- **[`cli/README.md`](cli/README.md)** - Command-line interface for address and PSBT operations
|
|
@@ -249,6 +249,31 @@ export declare class ZcashIronwoodBitGoPsbt extends ZcashBitGoPsbt {
|
|
|
249
249
|
* {@link sign} (all matching inputs) instead.
|
|
250
250
|
*/
|
|
251
251
|
sign(inputIndex: number, key: BIP32Arg | ECPairArg): void;
|
|
252
|
+
/**
|
|
253
|
+
* Check whether transparent input `inputIndex` carries a valid signature by `key`, over the
|
|
254
|
+
* ZIP-244 transparent sighash — the digest v6 (Ironwood) keys actually sign (see
|
|
255
|
+
* {@link transparentSighash}). The inherited `BitGoPsbt.verifySignature` digests ZIP-243
|
|
256
|
+
* (Sapling) instead, so it would report `false` for a valid v6 signature; this override routes
|
|
257
|
+
* to the v6 sighash path instead.
|
|
258
|
+
*
|
|
259
|
+
* Mirrors the inherited signature: an xpub (BIP32Arg) resolves to a public key via the input's
|
|
260
|
+
* `bip32_derivation`; a raw key (ECPairArg) verifies with its public key directly.
|
|
261
|
+
*
|
|
262
|
+
* @param inputIndex - 0-based transparent input index
|
|
263
|
+
* @param key - the signing key: an xpub (BIP32Arg: base58 string, BIP32 instance, or WasmBIP32)
|
|
264
|
+
* or an ECPairArg (Uint8Array, ECPair instance, or WasmECPair)
|
|
265
|
+
* @returns true if a valid signature by the key's public key exists for the input's
|
|
266
|
+
* ZIP-244 transparent sighash
|
|
267
|
+
* @throws Error if the input index is out of range, the key cannot be parsed, or the v6
|
|
268
|
+
* sighash cannot be computed (e.g. the Ironwood PCZT has not been added yet)
|
|
269
|
+
*
|
|
270
|
+
* @example
|
|
271
|
+
* ```typescript
|
|
272
|
+
* // Verify the user's signature over the v6 transparent sighash
|
|
273
|
+
* const hasUserSig = psbt.verifySignature(0, userXpub);
|
|
274
|
+
* ```
|
|
275
|
+
*/
|
|
276
|
+
verifySignature(inputIndex: number, key: BIP32Arg | ECPairArg): boolean;
|
|
252
277
|
/**
|
|
253
278
|
* Transaction Extractor role: given the external prover's `proof` bytes, finalize the
|
|
254
279
|
* transparent inputs, apply the shielded binding signature, and return the broadcast-ready v6
|
|
@@ -4,6 +4,7 @@ exports.ZcashIronwoodBitGoPsbt = void 0;
|
|
|
4
4
|
exports.zip302NoMemo = zip302NoMemo;
|
|
5
5
|
const wasm_utxo_js_1 = require("../wasm/wasm_utxo.js");
|
|
6
6
|
const bip32_js_1 = require("../bip32.js");
|
|
7
|
+
const ecpair_js_1 = require("../ecpair.js");
|
|
7
8
|
const RootWalletKeys_js_1 = require("./RootWalletKeys.js");
|
|
8
9
|
const ZcashBitGoPsbt_js_1 = require("./ZcashBitGoPsbt.js");
|
|
9
10
|
/**
|
|
@@ -242,6 +243,38 @@ class ZcashIronwoodBitGoPsbt extends ZcashBitGoPsbt_js_1.ZcashBitGoPsbt {
|
|
|
242
243
|
const keys = RootWalletKeys_js_1.RootWalletKeys.from(keyOrRootWalletKeys);
|
|
243
244
|
return Array.from(this.wasm.sign_ironwood_v6(wasmKey, keys.wasm), Number);
|
|
244
245
|
}
|
|
246
|
+
/**
|
|
247
|
+
* Check whether transparent input `inputIndex` carries a valid signature by `key`, over the
|
|
248
|
+
* ZIP-244 transparent sighash — the digest v6 (Ironwood) keys actually sign (see
|
|
249
|
+
* {@link transparentSighash}). The inherited `BitGoPsbt.verifySignature` digests ZIP-243
|
|
250
|
+
* (Sapling) instead, so it would report `false` for a valid v6 signature; this override routes
|
|
251
|
+
* to the v6 sighash path instead.
|
|
252
|
+
*
|
|
253
|
+
* Mirrors the inherited signature: an xpub (BIP32Arg) resolves to a public key via the input's
|
|
254
|
+
* `bip32_derivation`; a raw key (ECPairArg) verifies with its public key directly.
|
|
255
|
+
*
|
|
256
|
+
* @param inputIndex - 0-based transparent input index
|
|
257
|
+
* @param key - the signing key: an xpub (BIP32Arg: base58 string, BIP32 instance, or WasmBIP32)
|
|
258
|
+
* or an ECPairArg (Uint8Array, ECPair instance, or WasmECPair)
|
|
259
|
+
* @returns true if a valid signature by the key's public key exists for the input's
|
|
260
|
+
* ZIP-244 transparent sighash
|
|
261
|
+
* @throws Error if the input index is out of range, the key cannot be parsed, or the v6
|
|
262
|
+
* sighash cannot be computed (e.g. the Ironwood PCZT has not been added yet)
|
|
263
|
+
*
|
|
264
|
+
* @example
|
|
265
|
+
* ```typescript
|
|
266
|
+
* // Verify the user's signature over the v6 transparent sighash
|
|
267
|
+
* const hasUserSig = psbt.verifySignature(0, userXpub);
|
|
268
|
+
* ```
|
|
269
|
+
*/
|
|
270
|
+
verifySignature(inputIndex, key) {
|
|
271
|
+
if ((0, bip32_js_1.isBIP32Arg)(key)) {
|
|
272
|
+
return this.wasm.verify_ironwood_v6_signature_with_xpub(inputIndex, bip32_js_1.BIP32.from(key).wasm);
|
|
273
|
+
}
|
|
274
|
+
// Otherwise it's an ECPairArg (Uint8Array, ECPair, or WasmECPair)
|
|
275
|
+
const wasmECPair = ecpair_js_1.ECPair.from(key).wasm;
|
|
276
|
+
return this.wasm.verify_ironwood_v6_signature_with_pub(inputIndex, wasmECPair);
|
|
277
|
+
}
|
|
245
278
|
/**
|
|
246
279
|
* Transaction Extractor role: given the external prover's `proof` bytes, finalize the
|
|
247
280
|
* transparent inputs, apply the shielded binding signature, and return the broadcast-ready v6
|
|
@@ -1,4 +1,20 @@
|
|
|
1
1
|
import { IronwoodWitness as WasmIronwoodWitness } from "../wasm/wasm_utxo.js";
|
|
2
|
+
/**
|
|
3
|
+
* A node of a pruned Orchard note-commitment (sub)tree, for {@link ZcashIronwoodWitness.buildFromShard}'s
|
|
4
|
+
* `shard`/`cap` inputs. Mirrors a real pruned tree store's shape (e.g. a `shardtree::ShardTree`):
|
|
5
|
+
* most leaves are never individually retained, only enough annotated hashes to reproduce a witness.
|
|
6
|
+
*/
|
|
7
|
+
export type ShardTreeNode = {
|
|
8
|
+
type: "Nil";
|
|
9
|
+
} | {
|
|
10
|
+
type: "Leaf";
|
|
11
|
+
hash: Uint8Array;
|
|
12
|
+
} | {
|
|
13
|
+
type: "Parent";
|
|
14
|
+
hash?: Uint8Array;
|
|
15
|
+
left: ShardTreeNode;
|
|
16
|
+
right: ShardTreeNode;
|
|
17
|
+
};
|
|
2
18
|
/**
|
|
3
19
|
* A validated Merkle witness for an Ironwood/Orchard note commitment.
|
|
4
20
|
*
|
|
@@ -19,6 +35,19 @@ export declare class ZcashIronwoodWitness {
|
|
|
19
35
|
* recompute to `anchor`
|
|
20
36
|
*/
|
|
21
37
|
static build(cmx: Uint8Array, position: number, authPath: Uint8Array[], anchor: Uint8Array): ZcashIronwoodWitness;
|
|
38
|
+
/**
|
|
39
|
+
* Build and validate a Merkle witness from a pruned shard + cap, instead of a
|
|
40
|
+
* caller-precomputed 32-entry path.
|
|
41
|
+
*
|
|
42
|
+
* `shardHeight` chooses which level the shard's root sits at (it spans up to `2^shardHeight`
|
|
43
|
+
* leaves); `shard` is the pruned subtree containing `position`, rooted at that level; `cap` is
|
|
44
|
+
* the pruned tree above every shard, down to (and including) shard-root nodes. `leafCount` is
|
|
45
|
+
* the total number of leaves committed to the tree as of `anchor` — positions beyond it are
|
|
46
|
+
* treated as canonically empty.
|
|
47
|
+
* @throws Under the same conditions as {@link build}, plus if `shard`/`cap` don't have enough
|
|
48
|
+
* detail to witness `position` as of `leafCount`
|
|
49
|
+
*/
|
|
50
|
+
static buildFromShard(position: number, shardHeight: number, leafCount: bigint, cmx: Uint8Array, shard: ShardTreeNode, cap: ShardTreeNode, anchor: Uint8Array): ZcashIronwoodWitness;
|
|
22
51
|
/** The leaf's position in the note commitment tree. */
|
|
23
52
|
get position(): number;
|
|
24
53
|
/**
|
|
@@ -26,6 +26,21 @@ class ZcashIronwoodWitness {
|
|
|
26
26
|
static build(cmx, position, authPath, anchor) {
|
|
27
27
|
return new ZcashIronwoodWitness((0, wasm_utxo_js_1.ironwood_build_witness)(cmx, position, authPath, anchor));
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Build and validate a Merkle witness from a pruned shard + cap, instead of a
|
|
31
|
+
* caller-precomputed 32-entry path.
|
|
32
|
+
*
|
|
33
|
+
* `shardHeight` chooses which level the shard's root sits at (it spans up to `2^shardHeight`
|
|
34
|
+
* leaves); `shard` is the pruned subtree containing `position`, rooted at that level; `cap` is
|
|
35
|
+
* the pruned tree above every shard, down to (and including) shard-root nodes. `leafCount` is
|
|
36
|
+
* the total number of leaves committed to the tree as of `anchor` — positions beyond it are
|
|
37
|
+
* treated as canonically empty.
|
|
38
|
+
* @throws Under the same conditions as {@link build}, plus if `shard`/`cap` don't have enough
|
|
39
|
+
* detail to witness `position` as of `leafCount`
|
|
40
|
+
*/
|
|
41
|
+
static buildFromShard(position, shardHeight, leafCount, cmx, shard, cap, anchor) {
|
|
42
|
+
return new ZcashIronwoodWitness((0, wasm_utxo_js_1.ironwood_build_witness_from_shard)(position, shardHeight, leafCount, cmx, shard, cap, anchor));
|
|
43
|
+
}
|
|
29
44
|
/** The leaf's position in the note commitment tree. */
|
|
30
45
|
get position() {
|
|
31
46
|
return this._wasm.position;
|
|
@@ -14,6 +14,7 @@ export { ZcashIronwoodBitGoPsbt, zip302NoMemo, type CreateEmptyIronwoodOptions,
|
|
|
14
14
|
export { ZcashUnifiedAddress } from "./ZcashUnifiedAddress.js";
|
|
15
15
|
export { ZcashV6Transaction } from "./ZcashV6Transaction.js";
|
|
16
16
|
export { ZcashIronwoodWitness } from "./ZcashIronwoodWitness.js";
|
|
17
|
+
export type { ShardTreeNode } from "./ZcashIronwoodWitness.js";
|
|
17
18
|
import type { ScriptType } from "./scriptType.js";
|
|
18
19
|
/**
|
|
19
20
|
* Check if a network supports a given fixed-script wallet script type
|
|
@@ -813,6 +813,22 @@ export class BitGoPsbt {
|
|
|
813
813
|
*/
|
|
814
814
|
transparent_output_unified_address(index: number): string | undefined;
|
|
815
815
|
unsigned_tx_id(): string;
|
|
816
|
+
/**
|
|
817
|
+
* Verify if a valid signature exists for a given ECPair key at the specified input index,
|
|
818
|
+
* computed over the ZIP-244 v6 (Ironwood) transparent sighash — the v6 (Ironwood)
|
|
819
|
+
* counterpart to `verify_signature_with_pub`, which digests ZIP-243 (Sapling) and would
|
|
820
|
+
* report `Ok(false)` for a valid v6 signature. Only v6 (Ironwood) Zcash PSBTs are
|
|
821
|
+
* supported.
|
|
822
|
+
*/
|
|
823
|
+
verify_ironwood_v6_signature_with_pub(input_index: number, ecpair: WasmECPair): boolean;
|
|
824
|
+
/**
|
|
825
|
+
* Verify if a valid signature exists for an extended public key at the specified input
|
|
826
|
+
* index, computed over the ZIP-244 v6 (Ironwood) transparent sighash — the v6 (Ironwood)
|
|
827
|
+
* counterpart to `verify_signature_with_xpub`, which digests ZIP-243 (Sapling) and would
|
|
828
|
+
* report `Ok(false)` for a valid v6 signature. Only v6 (Ironwood) Zcash PSBTs are
|
|
829
|
+
* supported.
|
|
830
|
+
*/
|
|
831
|
+
verify_ironwood_v6_signature_with_xpub(input_index: number, xpub: WasmBIP32): boolean;
|
|
816
832
|
/**
|
|
817
833
|
* Verify if a replay protection input has a valid signature
|
|
818
834
|
*
|
|
@@ -1908,6 +1924,23 @@ export class ZcashV6Transaction {
|
|
|
1908
1924
|
*/
|
|
1909
1925
|
export function ironwood_build_witness(cmx: Uint8Array, position: number, auth_path: Uint8Array[], anchor: Uint8Array): IronwoodWitness;
|
|
1910
1926
|
|
|
1927
|
+
/**
|
|
1928
|
+
* Build and validate an Ironwood witness from a pruned shard + cap, instead of a
|
|
1929
|
+
* caller-precomputed 32-entry path (see `ironwood_build_witness`).
|
|
1930
|
+
*
|
|
1931
|
+
* `shardHeight` chooses which level the shard's root sits at (it spans up to `2^shardHeight`
|
|
1932
|
+
* leaves); `shard` is the pruned subtree containing `position`, rooted at that level; `cap` is the
|
|
1933
|
+
* pruned tree above every shard, down to (and including) shard-root nodes. `leafCount` is the
|
|
1934
|
+
* total number of leaves committed to the tree as of `anchor` — positions beyond it are treated
|
|
1935
|
+
* as canonically empty. `shard`/`cap` are plain JS objects (not JSON strings) shaped like:
|
|
1936
|
+
* `{ type: "Nil" } | { type: "Leaf", hash: Uint8Array } | { type: "Parent", hash?: Uint8Array,
|
|
1937
|
+
* left: ShardTreeNode, right: ShardTreeNode }`.
|
|
1938
|
+
*
|
|
1939
|
+
* Throws under the same conditions as `ironwood_build_witness`, plus if `shard`/`cap` don't have
|
|
1940
|
+
* enough detail to witness `position` as of `leafCount`.
|
|
1941
|
+
*/
|
|
1942
|
+
export function ironwood_build_witness_from_shard(position: number, shard_height: number, leaf_count: bigint, cmx: Uint8Array, shard: any, cap: any, anchor: Uint8Array): IronwoodWitness;
|
|
1943
|
+
|
|
1911
1944
|
/**
|
|
1912
1945
|
* Check if the inspect feature is enabled.
|
|
1913
1946
|
*
|
|
@@ -2681,6 +2681,58 @@ class BitGoPsbt {
|
|
|
2681
2681
|
wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1);
|
|
2682
2682
|
}
|
|
2683
2683
|
}
|
|
2684
|
+
/**
|
|
2685
|
+
* Verify if a valid signature exists for a given ECPair key at the specified input index,
|
|
2686
|
+
* computed over the ZIP-244 v6 (Ironwood) transparent sighash — the v6 (Ironwood)
|
|
2687
|
+
* counterpart to `verify_signature_with_pub`, which digests ZIP-243 (Sapling) and would
|
|
2688
|
+
* report `Ok(false)` for a valid v6 signature. Only v6 (Ironwood) Zcash PSBTs are
|
|
2689
|
+
* supported.
|
|
2690
|
+
* @param {number} input_index
|
|
2691
|
+
* @param {WasmECPair} ecpair
|
|
2692
|
+
* @returns {boolean}
|
|
2693
|
+
*/
|
|
2694
|
+
verify_ironwood_v6_signature_with_pub(input_index, ecpair) {
|
|
2695
|
+
try {
|
|
2696
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
2697
|
+
_assertClass(ecpair, WasmECPair);
|
|
2698
|
+
wasm.bitgopsbt_verify_ironwood_v6_signature_with_pub(retptr, this.__wbg_ptr, input_index, ecpair.__wbg_ptr);
|
|
2699
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
2700
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
2701
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
2702
|
+
if (r2) {
|
|
2703
|
+
throw takeObject(r1);
|
|
2704
|
+
}
|
|
2705
|
+
return r0 !== 0;
|
|
2706
|
+
} finally {
|
|
2707
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
2708
|
+
}
|
|
2709
|
+
}
|
|
2710
|
+
/**
|
|
2711
|
+
* Verify if a valid signature exists for an extended public key at the specified input
|
|
2712
|
+
* index, computed over the ZIP-244 v6 (Ironwood) transparent sighash — the v6 (Ironwood)
|
|
2713
|
+
* counterpart to `verify_signature_with_xpub`, which digests ZIP-243 (Sapling) and would
|
|
2714
|
+
* report `Ok(false)` for a valid v6 signature. Only v6 (Ironwood) Zcash PSBTs are
|
|
2715
|
+
* supported.
|
|
2716
|
+
* @param {number} input_index
|
|
2717
|
+
* @param {WasmBIP32} xpub
|
|
2718
|
+
* @returns {boolean}
|
|
2719
|
+
*/
|
|
2720
|
+
verify_ironwood_v6_signature_with_xpub(input_index, xpub) {
|
|
2721
|
+
try {
|
|
2722
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
2723
|
+
_assertClass(xpub, WasmBIP32);
|
|
2724
|
+
wasm.bitgopsbt_verify_ironwood_v6_signature_with_xpub(retptr, this.__wbg_ptr, input_index, xpub.__wbg_ptr);
|
|
2725
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
2726
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
2727
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
2728
|
+
if (r2) {
|
|
2729
|
+
throw takeObject(r1);
|
|
2730
|
+
}
|
|
2731
|
+
return r0 !== 0;
|
|
2732
|
+
} finally {
|
|
2733
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
2734
|
+
}
|
|
2735
|
+
}
|
|
2684
2736
|
/**
|
|
2685
2737
|
* Verify if a replay protection input has a valid signature
|
|
2686
2738
|
*
|
|
@@ -7217,6 +7269,50 @@ function ironwood_build_witness(cmx, position, auth_path, anchor) {
|
|
|
7217
7269
|
}
|
|
7218
7270
|
exports.ironwood_build_witness = ironwood_build_witness;
|
|
7219
7271
|
|
|
7272
|
+
/**
|
|
7273
|
+
* Build and validate an Ironwood witness from a pruned shard + cap, instead of a
|
|
7274
|
+
* caller-precomputed 32-entry path (see `ironwood_build_witness`).
|
|
7275
|
+
*
|
|
7276
|
+
* `shardHeight` chooses which level the shard's root sits at (it spans up to `2^shardHeight`
|
|
7277
|
+
* leaves); `shard` is the pruned subtree containing `position`, rooted at that level; `cap` is the
|
|
7278
|
+
* pruned tree above every shard, down to (and including) shard-root nodes. `leafCount` is the
|
|
7279
|
+
* total number of leaves committed to the tree as of `anchor` — positions beyond it are treated
|
|
7280
|
+
* as canonically empty. `shard`/`cap` are plain JS objects (not JSON strings) shaped like:
|
|
7281
|
+
* `{ type: "Nil" } | { type: "Leaf", hash: Uint8Array } | { type: "Parent", hash?: Uint8Array,
|
|
7282
|
+
* left: ShardTreeNode, right: ShardTreeNode }`.
|
|
7283
|
+
*
|
|
7284
|
+
* Throws under the same conditions as `ironwood_build_witness`, plus if `shard`/`cap` don't have
|
|
7285
|
+
* enough detail to witness `position` as of `leafCount`.
|
|
7286
|
+
* @param {number} position
|
|
7287
|
+
* @param {number} shard_height
|
|
7288
|
+
* @param {bigint} leaf_count
|
|
7289
|
+
* @param {Uint8Array} cmx
|
|
7290
|
+
* @param {any} shard
|
|
7291
|
+
* @param {any} cap
|
|
7292
|
+
* @param {Uint8Array} anchor
|
|
7293
|
+
* @returns {IronwoodWitness}
|
|
7294
|
+
*/
|
|
7295
|
+
function ironwood_build_witness_from_shard(position, shard_height, leaf_count, cmx, shard, cap, anchor) {
|
|
7296
|
+
try {
|
|
7297
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
7298
|
+
const ptr0 = passArray8ToWasm0(cmx, wasm.__wbindgen_export);
|
|
7299
|
+
const len0 = WASM_VECTOR_LEN;
|
|
7300
|
+
const ptr1 = passArray8ToWasm0(anchor, wasm.__wbindgen_export);
|
|
7301
|
+
const len1 = WASM_VECTOR_LEN;
|
|
7302
|
+
wasm.ironwood_build_witness_from_shard(retptr, position, shard_height, leaf_count, ptr0, len0, addHeapObject(shard), addHeapObject(cap), ptr1, len1);
|
|
7303
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
7304
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
7305
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
7306
|
+
if (r2) {
|
|
7307
|
+
throw takeObject(r1);
|
|
7308
|
+
}
|
|
7309
|
+
return IronwoodWitness.__wrap(r0);
|
|
7310
|
+
} finally {
|
|
7311
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
7312
|
+
}
|
|
7313
|
+
}
|
|
7314
|
+
exports.ironwood_build_witness_from_shard = ironwood_build_witness_from_shard;
|
|
7315
|
+
|
|
7220
7316
|
/**
|
|
7221
7317
|
* Check if the inspect feature is enabled.
|
|
7222
7318
|
*
|
|
@@ -7550,6 +7646,13 @@ function __wbg_get_imports() {
|
|
|
7550
7646
|
const ret = Error(getStringFromWasm0(arg0, arg1));
|
|
7551
7647
|
return addHeapObject(ret);
|
|
7552
7648
|
},
|
|
7649
|
+
__wbg_String_8f0eb39a4a4c2f66: function(arg0, arg1) {
|
|
7650
|
+
const ret = String(getObject(arg1));
|
|
7651
|
+
const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
7652
|
+
const len1 = WASM_VECTOR_LEN;
|
|
7653
|
+
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
|
|
7654
|
+
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
|
|
7655
|
+
},
|
|
7553
7656
|
__wbg___wbindgen_bigint_get_as_i64_8fcf4ce7f1ca72a2: function(arg0, arg1) {
|
|
7554
7657
|
const v = getObject(arg1);
|
|
7555
7658
|
const ret = typeof(v) === 'bigint' ? v : undefined;
|
|
@@ -7568,6 +7671,10 @@ function __wbg_get_imports() {
|
|
|
7568
7671
|
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
|
|
7569
7672
|
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
|
|
7570
7673
|
},
|
|
7674
|
+
__wbg___wbindgen_in_47fa6863be6f2f25: function(arg0, arg1) {
|
|
7675
|
+
const ret = getObject(arg0) in getObject(arg1);
|
|
7676
|
+
return ret;
|
|
7677
|
+
},
|
|
7571
7678
|
__wbg___wbindgen_is_bigint_31b12575b56f32fc: function(arg0) {
|
|
7572
7679
|
const ret = typeof(getObject(arg0)) === 'bigint';
|
|
7573
7680
|
return ret;
|
|
@@ -7597,6 +7704,10 @@ function __wbg_get_imports() {
|
|
|
7597
7704
|
const ret = getObject(arg0) === getObject(arg1);
|
|
7598
7705
|
return ret;
|
|
7599
7706
|
},
|
|
7707
|
+
__wbg___wbindgen_jsval_loose_eq_9dd77d8cd6671811: function(arg0, arg1) {
|
|
7708
|
+
const ret = getObject(arg0) == getObject(arg1);
|
|
7709
|
+
return ret;
|
|
7710
|
+
},
|
|
7600
7711
|
__wbg___wbindgen_number_get_8ff4255516ccad3e: function(arg0, arg1) {
|
|
7601
7712
|
const obj = getObject(arg1);
|
|
7602
7713
|
const ret = typeof(obj) === 'number' ? obj : undefined;
|
|
@@ -7626,6 +7737,14 @@ function __wbg_get_imports() {
|
|
|
7626
7737
|
const ret = getObject(arg0).crypto;
|
|
7627
7738
|
return addHeapObject(ret);
|
|
7628
7739
|
},
|
|
7740
|
+
__wbg_done_57b39ecd9addfe81: function(arg0) {
|
|
7741
|
+
const ret = getObject(arg0).done;
|
|
7742
|
+
return ret;
|
|
7743
|
+
},
|
|
7744
|
+
__wbg_entries_58c7934c745daac7: function(arg0) {
|
|
7745
|
+
const ret = Object.entries(getObject(arg0));
|
|
7746
|
+
return addHeapObject(ret);
|
|
7747
|
+
},
|
|
7629
7748
|
__wbg_for_c3adefd268cb6f1c: function(arg0, arg1) {
|
|
7630
7749
|
const ret = Symbol.for(getStringFromWasm0(arg0, arg1));
|
|
7631
7750
|
return addHeapObject(ret);
|
|
@@ -7645,6 +7764,48 @@ function __wbg_get_imports() {
|
|
|
7645
7764
|
const ret = Reflect.get(getObject(arg0), getObject(arg1));
|
|
7646
7765
|
return addHeapObject(ret);
|
|
7647
7766
|
}, arguments); },
|
|
7767
|
+
__wbg_instanceof_ArrayBuffer_c367199e2fa2aa04: function(arg0) {
|
|
7768
|
+
let result;
|
|
7769
|
+
try {
|
|
7770
|
+
result = getObject(arg0) instanceof ArrayBuffer;
|
|
7771
|
+
} catch (_) {
|
|
7772
|
+
result = false;
|
|
7773
|
+
}
|
|
7774
|
+
const ret = result;
|
|
7775
|
+
return ret;
|
|
7776
|
+
},
|
|
7777
|
+
__wbg_instanceof_Map_53af74335dec57f4: function(arg0) {
|
|
7778
|
+
let result;
|
|
7779
|
+
try {
|
|
7780
|
+
result = getObject(arg0) instanceof Map;
|
|
7781
|
+
} catch (_) {
|
|
7782
|
+
result = false;
|
|
7783
|
+
}
|
|
7784
|
+
const ret = result;
|
|
7785
|
+
return ret;
|
|
7786
|
+
},
|
|
7787
|
+
__wbg_instanceof_Uint8Array_9b9075935c74707c: function(arg0) {
|
|
7788
|
+
let result;
|
|
7789
|
+
try {
|
|
7790
|
+
result = getObject(arg0) instanceof Uint8Array;
|
|
7791
|
+
} catch (_) {
|
|
7792
|
+
result = false;
|
|
7793
|
+
}
|
|
7794
|
+
const ret = result;
|
|
7795
|
+
return ret;
|
|
7796
|
+
},
|
|
7797
|
+
__wbg_isArray_d314bb98fcf08331: function(arg0) {
|
|
7798
|
+
const ret = Array.isArray(getObject(arg0));
|
|
7799
|
+
return ret;
|
|
7800
|
+
},
|
|
7801
|
+
__wbg_isSafeInteger_bfbc7332a9768d2a: function(arg0) {
|
|
7802
|
+
const ret = Number.isSafeInteger(getObject(arg0));
|
|
7803
|
+
return ret;
|
|
7804
|
+
},
|
|
7805
|
+
__wbg_iterator_6ff6560ca1568e55: function() {
|
|
7806
|
+
const ret = Symbol.iterator;
|
|
7807
|
+
return addHeapObject(ret);
|
|
7808
|
+
},
|
|
7648
7809
|
__wbg_length_32ed9a279acd054c: function(arg0) {
|
|
7649
7810
|
const ret = getObject(arg0).length;
|
|
7650
7811
|
return ret;
|
|
@@ -7685,6 +7846,14 @@ function __wbg_get_imports() {
|
|
|
7685
7846
|
const ret = new Uint8Array(arg0 >>> 0);
|
|
7686
7847
|
return addHeapObject(ret);
|
|
7687
7848
|
},
|
|
7849
|
+
__wbg_next_3482f54c49e8af19: function() { return handleError(function (arg0) {
|
|
7850
|
+
const ret = getObject(arg0).next();
|
|
7851
|
+
return addHeapObject(ret);
|
|
7852
|
+
}, arguments); },
|
|
7853
|
+
__wbg_next_418f80d8f5303233: function(arg0) {
|
|
7854
|
+
const ret = getObject(arg0).next;
|
|
7855
|
+
return addHeapObject(ret);
|
|
7856
|
+
},
|
|
7688
7857
|
__wbg_node_905d3e251edff8a2: function(arg0) {
|
|
7689
7858
|
const ret = getObject(arg0).node;
|
|
7690
7859
|
return addHeapObject(ret);
|
|
@@ -7731,6 +7900,10 @@ function __wbg_get_imports() {
|
|
|
7731
7900
|
const ret = getObject(arg0).subarray(arg1 >>> 0, arg2 >>> 0);
|
|
7732
7901
|
return addHeapObject(ret);
|
|
7733
7902
|
},
|
|
7903
|
+
__wbg_value_0546255b415e96c1: function(arg0) {
|
|
7904
|
+
const ret = getObject(arg0).value;
|
|
7905
|
+
return addHeapObject(ret);
|
|
7906
|
+
},
|
|
7734
7907
|
__wbg_versions_c01dfd4722a88165: function(arg0) {
|
|
7735
7908
|
const ret = getObject(arg0).versions;
|
|
7736
7909
|
return addHeapObject(ret);
|
|
@@ -7760,17 +7933,22 @@ function __wbg_get_imports() {
|
|
|
7760
7933
|
const ret = arg0;
|
|
7761
7934
|
return addHeapObject(ret);
|
|
7762
7935
|
},
|
|
7763
|
-
__wbindgen_cast_0000000000000002: function(arg0
|
|
7936
|
+
__wbindgen_cast_0000000000000002: function(arg0) {
|
|
7937
|
+
// Cast intrinsic for `I64 -> Externref`.
|
|
7938
|
+
const ret = arg0;
|
|
7939
|
+
return addHeapObject(ret);
|
|
7940
|
+
},
|
|
7941
|
+
__wbindgen_cast_0000000000000003: function(arg0, arg1) {
|
|
7764
7942
|
// Cast intrinsic for `Ref(Slice(U8)) -> NamedExternref("Uint8Array")`.
|
|
7765
7943
|
const ret = getArrayU8FromWasm0(arg0, arg1);
|
|
7766
7944
|
return addHeapObject(ret);
|
|
7767
7945
|
},
|
|
7768
|
-
|
|
7946
|
+
__wbindgen_cast_0000000000000004: function(arg0, arg1) {
|
|
7769
7947
|
// Cast intrinsic for `Ref(String) -> Externref`.
|
|
7770
7948
|
const ret = getStringFromWasm0(arg0, arg1);
|
|
7771
7949
|
return addHeapObject(ret);
|
|
7772
7950
|
},
|
|
7773
|
-
|
|
7951
|
+
__wbindgen_cast_0000000000000005: function(arg0) {
|
|
7774
7952
|
// Cast intrinsic for `U64 -> Externref`.
|
|
7775
7953
|
const ret = BigInt.asUintN(64, arg0);
|
|
7776
7954
|
return addHeapObject(ret);
|
|
Binary file
|