@miden-sdk/miden-sdk 0.15.7 → 0.16.0-alpha.1

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.
Files changed (52) hide show
  1. package/README.md +0 -152
  2. package/dist/mt/{Cargo-CnGom-_z.js → Cargo-DKsyWYgG.js} +700 -1245
  3. package/dist/mt/Cargo-DKsyWYgG.js.map +1 -0
  4. package/dist/mt/api-types.d.ts +38 -370
  5. package/dist/mt/assets/miden_client_web.wasm +0 -0
  6. package/dist/mt/crates/miden_client_web.d.ts +179 -402
  7. package/dist/mt/docs-entry.d.ts +3 -9
  8. package/dist/mt/eager.js +1 -1
  9. package/dist/mt/index.d.ts +0 -3
  10. package/dist/mt/index.js +53 -701
  11. package/dist/mt/index.js.map +1 -1
  12. package/dist/mt/wasm.js +1 -1
  13. package/dist/mt/workerHelpers.js +1 -1
  14. package/dist/mt/workers/{Cargo-CnGom-_z-X_3VwTbo.js → Cargo-DKsyWYgG-DfOhgt23.js} +700 -1245
  15. package/dist/mt/workers/Cargo-DKsyWYgG-DfOhgt23.js.map +1 -0
  16. package/dist/mt/workers/assets/miden_client_web.wasm +0 -0
  17. package/dist/mt/workers/web-client-methods-worker.js +703 -1251
  18. package/dist/mt/workers/web-client-methods-worker.js.map +1 -1
  19. package/dist/mt/workers/web-client-methods-worker.module.js +1 -1
  20. package/dist/mt/workers/web-client-methods-worker.module.js.map +1 -1
  21. package/dist/mt/workers/workerHelpers.js +1 -1
  22. package/dist/st/{Cargo-DR9fiMbE.js → Cargo-LwITdlzJ.js} +695 -1237
  23. package/dist/st/Cargo-LwITdlzJ.js.map +1 -0
  24. package/dist/st/api-types.d.ts +38 -370
  25. package/dist/st/assets/miden_client_web.wasm +0 -0
  26. package/dist/st/crates/miden_client_web.d.ts +179 -402
  27. package/dist/st/docs-entry.d.ts +3 -9
  28. package/dist/st/eager.js +1 -1
  29. package/dist/st/index.d.ts +0 -3
  30. package/dist/st/index.js +53 -701
  31. package/dist/st/index.js.map +1 -1
  32. package/dist/st/wasm.js +1 -1
  33. package/dist/st/workers/{Cargo-DR9fiMbE-C0G0clA_.js → Cargo-LwITdlzJ-Dyl2bCwN.js} +695 -1237
  34. package/dist/st/workers/Cargo-LwITdlzJ-Dyl2bCwN.js.map +1 -0
  35. package/dist/st/workers/assets/miden_client_web.wasm +0 -0
  36. package/dist/st/workers/web-client-methods-worker.js +698 -1243
  37. package/dist/st/workers/web-client-methods-worker.js.map +1 -1
  38. package/dist/st/workers/web-client-methods-worker.module.js +1 -1
  39. package/dist/st/workers/web-client-methods-worker.module.js.map +1 -1
  40. package/js/client.js +2 -4
  41. package/js/node/client-factory.js +4 -11
  42. package/js/node/napi-compat.js +1 -0
  43. package/js/node-index.js +11 -11
  44. package/js/resources/compiler.js +23 -12
  45. package/js/resources/transactions.js +24 -540
  46. package/js/standalone.js +3 -61
  47. package/package.json +4 -4
  48. package/dist/mt/Cargo-CnGom-_z.js.map +0 -1
  49. package/dist/mt/workers/Cargo-CnGom-_z-X_3VwTbo.js.map +0 -1
  50. package/dist/st/Cargo-DR9fiMbE.js.map +0 -1
  51. package/dist/st/workers/Cargo-DR9fiMbE-C0G0clA_.js.map +0 -1
  52. package/js/resources/pswap.js +0 -132
@@ -5,7 +5,7 @@
5
5
  async function loadWasm() {
6
6
  let wasmModule;
7
7
  if (!undefined || (undefined && !undefined.SSR)) {
8
- wasmModule = await Promise.resolve().then(function () { return CargoDR9fiMbE; });
8
+ wasmModule = await Promise.resolve().then(function () { return CargoLwITdlzJ; });
9
9
  // The Cargo glue's __wbg_init TLA is stripped by the rollup build to
10
10
  // prevent blocking WKWebView module evaluation. Call it explicitly here
11
11
  // with the WASM URL that the Cargo glue pre-resolves (relative to its
@@ -8826,6 +8826,42 @@ const logWebStoreError = (error, errorContext) => {
8826
8826
  }
8827
8827
  throw error;
8828
8828
  };
8829
+ // Partial blockchain (MMR) authentication nodes are part of the local
8830
+ // `PartialMmr` state. Once a node index is known its value is fixed, so a
8831
+ // later write with the same index but a different value indicates a buggy or
8832
+ // malicious sync path. Insert nodes that are missing, accept writes that match
8833
+ // the stored value, and reject conflicting writes so the known-good value is
8834
+ // never silently overwritten.
8835
+ const putPartialBlockchainNodesNoOverwrite = async (table, data) => {
8836
+ // Collapse duplicate indexes within the same batch up front: identical
8837
+ // copies are deduplicated (a repeated index would otherwise make `bulkAdd`
8838
+ // throw a key-collision error), and copies that disagree are rejected.
8839
+ const unique = new Map();
8840
+ for (const entry of data) {
8841
+ const seen = unique.get(entry.id);
8842
+ if (seen !== undefined && seen.node !== entry.node) {
8843
+ throw new Error(`Conflicting partial blockchain node ${entry.id} within the same write`);
8844
+ }
8845
+ unique.set(entry.id, entry);
8846
+ }
8847
+ const records = [...unique.values()];
8848
+ const existing = await table.bulkGet(records.map((entry) => entry.id));
8849
+ const toAdd = [];
8850
+ for (let i = 0; i < records.length; i++) {
8851
+ const current = existing[i];
8852
+ if (current === undefined) {
8853
+ toAdd.push(records[i]);
8854
+ }
8855
+ else if (current.node !== records[i].node) {
8856
+ throw new Error(`Refusing to overwrite partial blockchain node ${records[i].id}: ` +
8857
+ `stored value differs from the new value`);
8858
+ }
8859
+ // current.node === records[i].node: already stored, nothing to do.
8860
+ }
8861
+ if (toAdd.length > 0) {
8862
+ await table.bulkAdd(toAdd);
8863
+ }
8864
+ };
8829
8865
  const uint8ArrayToBase64 = (bytes) => {
8830
8866
  const binary = bytes.reduce((acc, byte) => acc + String.fromCharCode(byte), "");
8831
8867
  return btoa(binary);
@@ -8882,7 +8918,7 @@ var Table;
8882
8918
  Table["InputNotes"] = "inputNotes";
8883
8919
  Table["OutputNotes"] = "outputNotes";
8884
8920
  Table["NotesScripts"] = "notesScripts";
8885
- Table["StateSync"] = "stateSync";
8921
+ Table["BlockchainCheckpoint"] = "blockchainCheckpoint";
8886
8922
  Table["BlockHeaders"] = "blockHeaders";
8887
8923
  Table["PartialBlockchainNodes"] = "partialBlockchainNodes";
8888
8924
  Table["Tags"] = "tags";
@@ -8893,9 +8929,7 @@ function indexes(...items) {
8893
8929
  return items.join(",");
8894
8930
  }
8895
8931
  /** V1 baseline schema. Extracted as a constant because once migrations are enabled, this must
8896
- * never be modified — all schema changes should go through new version blocks instead.
8897
- * Exported for migration tests, which seed a physical v1 database before opening it with the
8898
- * current version chain. */
8932
+ * never be modified — all schema changes should go through new version blocks instead. */
8899
8933
  const V1_STORES = {
8900
8934
  [Table.AccountCode]: indexes("root"),
8901
8935
  [Table.LatestAccountStorage]: indexes("[accountId+slotName]", "accountId"),
@@ -8914,7 +8948,7 @@ const V1_STORES = {
8914
8948
  [Table.InputNotes]: indexes("detailsCommitment", "noteId", "nullifier", "stateDiscriminant", "[consumedBlockHeight+consumedTxOrder+noteId]"),
8915
8949
  [Table.OutputNotes]: indexes("detailsCommitment", "noteId", "recipientDigest", "stateDiscriminant", "nullifier"),
8916
8950
  [Table.NotesScripts]: indexes("scriptRoot"),
8917
- [Table.StateSync]: indexes("id"),
8951
+ [Table.BlockchainCheckpoint]: indexes("id"),
8918
8952
  [Table.BlockHeaders]: indexes("blockNum", "hasClientNotes"),
8919
8953
  [Table.PartialBlockchainNodes]: indexes("id"),
8920
8954
  [Table.Tags]: indexes("id++", "tag", "sourceNoteId", "sourceAccountId"),
@@ -8940,7 +8974,7 @@ class MidenDatabase {
8940
8974
  inputNotes;
8941
8975
  outputNotes;
8942
8976
  notesScripts;
8943
- stateSync;
8977
+ blockchainCheckpoint;
8944
8978
  blockHeaders;
8945
8979
  partialBlockchainNodes;
8946
8980
  tags;
@@ -8950,12 +8984,11 @@ class MidenDatabase {
8950
8984
  this.dexie = new Dexie(network);
8951
8985
  // --- Schema versioning ---
8952
8986
  //
8953
- // NOTE: Migrations coexist with the client-version nuke: the database is
8954
- // still nuked on major/minor client-version changes (network resets see
8955
- // ensureClientVersion), while Dexie version blocks below handle schema and
8956
- // data fixes for stores that survive patch upgrades. Once the network
8957
- // stabilizes and data can be preserved across all upgrades, the
8958
- // version-change nuke will be removed and migrations alone will take over.
8987
+ // NOTE: The migration system is not currently in use. The Miden network
8988
+ // resets on every upgrade, so the database is nuked whenever the client
8989
+ // version changes (see ensureClientVersion). Once the network stabilizes
8990
+ // and data can be preserved across upgrades, the version-change nuke will
8991
+ // be removed and migrations will take over.
8959
8992
  //
8960
8993
  // v1 is the baseline schema. To add a migration:
8961
8994
  // 1. Add a .version(N+1).stores({...}).upgrade(tx => {...}) block below.
@@ -8987,43 +9020,12 @@ class MidenDatabase {
8987
9020
  // Note: The `populate` hook (below the version blocks) only fires on
8988
9021
  // first database creation, NOT during upgrades.
8989
9022
  //
8990
- // Version blocks exist below, so V1_STORES is frozen never modify it;
8991
- // add a new version block instead. To retire the nuke entirely (once data
8992
- // must survive major/minor upgrades), remove the close/delete/open logic
8993
- // in ensureClientVersion and just persist the new version there.
9023
+ // To enable migrations (stop nuking the DB on version change):
9024
+ // 1. Remove the nuke logic in ensureClientVersion (close/delete/open).
9025
+ // Just persist the new version instead.
9026
+ // 2. Freeze V1_STORES never modify it again.
9027
+ // 3. Add version(2+) blocks below for all schema changes going forward.
8994
9028
  this.dexie.version(1).stores(V1_STORES);
8995
- // v2 (miden-client 0.15.4): prune note tags leaked by output-note
8996
- // registration. Mirrors sqlite-store migration
8997
- // `0002_prune_output_note_tags.sql`. Clients built against miden-client
8998
- // < 0.15.4 registered a `Note`-sourced tag for every output note a
8999
- // transaction created, but sync cleanup only removes tags of committed
9000
- // *input* notes — leaking one `tags` row per created note. The client no
9001
- // longer registers those tags; this upgrade deletes the rows already
9002
- // leaked. A tag is kept while an inclusion-pending input note
9003
- // (Expected = 0, Unverified = 1 — the mirror of
9004
- // `InputNoteRecord::is_inclusion_pending`) still needs it.
9005
- //
9006
- // This data-only fix coexists with the version-change nuke above: the
9007
- // nuke covers major/minor client upgrades (network resets), while this
9008
- // upgrade runs for stores preserved across patch upgrades.
9009
- this.dexie
9010
- .version(2)
9011
- .stores({})
9012
- .upgrade(async (tx) => {
9013
- const outputNoteCommitments = new Set(await tx.outputNotes.toCollection().primaryKeys());
9014
- if (outputNoteCommitments.size === 0) {
9015
- return;
9016
- }
9017
- const pendingInputNoteCommitments = new Set(await tx.inputNotes
9018
- .where("stateDiscriminant")
9019
- .anyOf([0, 1])
9020
- .primaryKeys());
9021
- await tx.tags
9022
- .filter((tag) => !!tag.sourceNoteId &&
9023
- outputNoteCommitments.has(tag.sourceNoteId) &&
9024
- !pendingInputNoteCommitments.has(tag.sourceNoteId))
9025
- .delete();
9026
- });
9027
9029
  this.accountCodes = this.dexie.table(Table.AccountCode);
9028
9030
  this.latestAccountStorages = this.dexie.table(Table.LatestAccountStorage);
9029
9031
  this.historicalAccountStorages = this.dexie.table(Table.HistoricalAccountStorage);
@@ -9041,16 +9043,20 @@ class MidenDatabase {
9041
9043
  this.inputNotes = this.dexie.table(Table.InputNotes);
9042
9044
  this.outputNotes = this.dexie.table(Table.OutputNotes);
9043
9045
  this.notesScripts = this.dexie.table(Table.NotesScripts);
9044
- this.stateSync = this.dexie.table(Table.StateSync);
9046
+ this.blockchainCheckpoint = this.dexie.table(Table.BlockchainCheckpoint);
9045
9047
  this.blockHeaders = this.dexie.table(Table.BlockHeaders);
9046
9048
  this.partialBlockchainNodes = this.dexie.table(Table.PartialBlockchainNodes);
9047
9049
  this.tags = this.dexie.table(Table.Tags);
9048
9050
  this.foreignAccountCode = this.dexie.table(Table.ForeignAccountCode);
9049
9051
  this.settings = this.dexie.table(Table.Settings);
9050
9052
  this.dexie.on("populate", () => {
9051
- this.stateSync
9052
- .put({ id: 1, blockNum: 0 })
9053
- /* v8 ignore next 2 — populate stateSync failure requires fake-indexeddb to simulate a write error, not modelable in unit tests */
9053
+ this.blockchainCheckpoint
9054
+ .put({
9055
+ id: 1,
9056
+ blockNum: 0,
9057
+ partialBlockchainPeaks: new Uint8Array(),
9058
+ })
9059
+ /* v8 ignore next 2 — populate blockchainCheckpoint failure requires fake-indexeddb to simulate a write error, not modelable in unit tests */
9054
9060
  .catch((err) => logWebStoreError(err, "Failed to populate DB"));
9055
9061
  });
9056
9062
  }
@@ -9376,7 +9382,7 @@ async function upsertVaultAssets(dbId, accountId, assets) {
9376
9382
  logWebStoreError(error, `Error inserting assets`);
9377
9383
  }
9378
9384
  }
9379
- async function applyTransactionDelta(dbId, accountId, nonce, updatedSlots, changedMapEntries, changedAssets, codeRoot, storageRoot, vaultRoot, committed, commitment) {
9385
+ async function applyAccountPatch(dbId, accountId, nonce, updatedSlots, changedMapEntries, changedAssets, codeRoot, storageRoot, vaultRoot, committed, commitment) {
9380
9386
  try {
9381
9387
  const db = getDatabase(dbId);
9382
9388
  await db.dexie.transaction("rw", [
@@ -9389,7 +9395,8 @@ async function applyTransactionDelta(dbId, accountId, nonce, updatedSlots, chang
9389
9395
  db.latestAccountHeaders,
9390
9396
  db.historicalAccountHeaders,
9391
9397
  ], async () => {
9392
- // Apply storage delta: read old → archive → write new
9398
+ const resetMapSlots = new Set();
9399
+ // Apply storage patch: read old → archive → write/delete final state.
9393
9400
  for (const slot of updatedSlots) {
9394
9401
  const oldSlot = await db.latestAccountStorages
9395
9402
  .where("[accountId+slotName]")
@@ -9402,12 +9409,44 @@ async function applyTransactionDelta(dbId, accountId, nonce, updatedSlots, chang
9402
9409
  oldSlotValue: oldSlot?.slotValue ?? null,
9403
9410
  slotType: slot.slotType,
9404
9411
  });
9405
- await db.latestAccountStorages.put({
9406
- accountId,
9407
- slotName: slot.slotName,
9408
- slotValue: slot.slotValue,
9409
- slotType: slot.slotType,
9410
- });
9412
+ // A created map is a replacement (a remove followed by create can merge to Create),
9413
+ // while a removed map must drop every persisted entry. Archive those entries so account
9414
+ // rollback can restore them.
9415
+ if (slot.slotType === 1 &&
9416
+ (slot.patchOperation === 0 || slot.patchOperation === 2)) {
9417
+ resetMapSlots.add(slot.slotName);
9418
+ const oldMapEntries = await db.latestStorageMapEntries
9419
+ .where("[accountId+slotName]")
9420
+ .equals([accountId, slot.slotName])
9421
+ .toArray();
9422
+ for (const entry of oldMapEntries) {
9423
+ await db.historicalStorageMapEntries.put({
9424
+ accountId,
9425
+ replacedAtNonce: nonce,
9426
+ slotName: entry.slotName,
9427
+ key: entry.key,
9428
+ oldValue: entry.value,
9429
+ });
9430
+ }
9431
+ await db.latestStorageMapEntries
9432
+ .where("[accountId+slotName]")
9433
+ .equals([accountId, slot.slotName])
9434
+ .delete();
9435
+ }
9436
+ if (slot.patchOperation === 2) {
9437
+ await db.latestAccountStorages
9438
+ .where("[accountId+slotName]")
9439
+ .equals([accountId, slot.slotName])
9440
+ .delete();
9441
+ }
9442
+ else {
9443
+ await db.latestAccountStorages.put({
9444
+ accountId,
9445
+ slotName: slot.slotName,
9446
+ slotValue: slot.slotValue,
9447
+ slotType: slot.slotType,
9448
+ });
9449
+ }
9411
9450
  }
9412
9451
  // Process map entries: read old → archive → update latest
9413
9452
  for (const entry of changedMapEntries) {
@@ -9415,13 +9454,30 @@ async function applyTransactionDelta(dbId, accountId, nonce, updatedSlots, chang
9415
9454
  .where("[accountId+slotName+key]")
9416
9455
  .equals([accountId, entry.slotName, entry.key])
9417
9456
  .first();
9418
- await db.historicalStorageMapEntries.put({
9419
- accountId,
9420
- replacedAtNonce: nonce,
9421
- slotName: entry.slotName,
9422
- key: entry.key,
9423
- oldValue: oldEntry?.value ?? null,
9424
- });
9457
+ if (resetMapSlots.has(entry.slotName)) {
9458
+ const archivedEntry = await db.historicalStorageMapEntries
9459
+ .where("[accountId+replacedAtNonce+slotName+key]")
9460
+ .equals([accountId, nonce, entry.slotName, entry.key])
9461
+ .first();
9462
+ if (archivedEntry === undefined) {
9463
+ await db.historicalStorageMapEntries.put({
9464
+ accountId,
9465
+ replacedAtNonce: nonce,
9466
+ slotName: entry.slotName,
9467
+ key: entry.key,
9468
+ oldValue: null,
9469
+ });
9470
+ }
9471
+ }
9472
+ else {
9473
+ await db.historicalStorageMapEntries.put({
9474
+ accountId,
9475
+ replacedAtNonce: nonce,
9476
+ slotName: entry.slotName,
9477
+ key: entry.key,
9478
+ oldValue: oldEntry?.value ?? null,
9479
+ });
9480
+ }
9425
9481
  // "" means removal
9426
9482
  if (entry.value === "") {
9427
9483
  await db.latestStorageMapEntries
@@ -9501,7 +9557,6 @@ async function applyTransactionDelta(dbId, accountId, nonce, updatedSlots, chang
9501
9557
  }
9502
9558
  catch (error) {
9503
9559
  logWebStoreError(error, `Error applying transaction delta`);
9504
- throw error;
9505
9560
  }
9506
9561
  }
9507
9562
  async function archiveAndReplaceStorageSlots(db, accountId, nonce, newSlots) {
@@ -9740,7 +9795,6 @@ async function applyFullAccountState(dbId, accountState) {
9740
9795
  }
9741
9796
  catch (error) {
9742
9797
  logWebStoreError(error, `Error applying full account state`);
9743
- throw error;
9744
9798
  }
9745
9799
  }
9746
9800
  async function upsertAccountRecord(dbId, accountId, codeRoot, storageRoot, vaultRoot, nonce, committed, commitment, accountSeed, watched) {
@@ -10145,33 +10199,36 @@ async function getAccountIdByKeyCommitment(dbId, pubKeyCommitmentHex) {
10145
10199
  }
10146
10200
  }
10147
10201
 
10148
- async function insertBlockHeader(dbId, blockNum, header, hasClientNotes) {
10202
+ async function insertBlockHeader(dbId, blockNum, header, hasClientNotes, nodeIds, nodes) {
10149
10203
  try {
10150
10204
  const db = getDatabase(dbId);
10151
- const data = {
10205
+ if (nodeIds.length !== nodes.length) {
10206
+ throw new Error("nodeIds and nodes arrays must be of the same length");
10207
+ }
10208
+ const headerData = {
10152
10209
  blockNum: blockNum,
10153
10210
  header,
10154
10211
  hasClientNotes: hasClientNotes.toString(),
10155
10212
  };
10156
- // Mirror SQLite's `insert_block_header_tx`: do an INSERT OR IGNORE on the
10157
- // row, then explicitly upgrade `has_client_notes` to true if the caller
10158
- // says so. Two callers hit this:
10159
- // - Genesis flow — no existing row; the add succeeds.
10160
- // - `get_and_store_authenticated_block` for a past block a row
10161
- // written by `applyStateSync` typically already exists. We keep that
10162
- // row untouched.
10163
- //
10164
- // The `has_client_notes` upgrade is load-bearing: `get_tracked_block_
10165
- // header_numbers` filters by this flag to seed `tracked_leaves`, which
10166
- // `get_partial_blockchain_nodes(Forest)` relies on. A private-note
10167
- // import at a block previously synced as irrelevant must flip the flag
10168
- // to true or the auth paths won't be tracked.
10169
- await db.blockHeaders.add(data).catch(async (err) => {
10170
- if (!isConstraintError(err))
10171
- throw err;
10172
- if (hasClientNotes) {
10173
- await db.blockHeaders.update(blockNum, { hasClientNotes: "true" });
10174
- }
10213
+ const nodeData = nodes.map((node, index) => ({
10214
+ id: Number(nodeIds[index]),
10215
+ node: node,
10216
+ }));
10217
+ // Persist the header and its MMR nodes in one transaction so a header is never stored
10218
+ // without the nodes that rebuild its `PartialMmr` (mirrors miden-client's atomic insert).
10219
+ await db.dexie.transaction("rw", db.blockHeaders, db.partialBlockchainNodes, async () => {
10220
+ // Header: INSERT OR IGNORE, then one-way upgrade `has_client_notes` to true (load-bearing:
10221
+ // `get_tracked_block_header_numbers` filters on it to seed forest-node tracking).
10222
+ await db.blockHeaders.add(headerData).catch(async (err) => {
10223
+ if (!isConstraintError(err))
10224
+ throw err;
10225
+ if (hasClientNotes) {
10226
+ await db.blockHeaders.update(blockNum, { hasClientNotes: "true" });
10227
+ }
10228
+ });
10229
+ // Nodes: insert-if-missing with overwrite protection; a conflicting value throws and
10230
+ // aborts the transaction, rolling back the header write too.
10231
+ await putPartialBlockchainNodesNoOverwrite(db.partialBlockchainNodes, nodeData);
10175
10232
  });
10176
10233
  }
10177
10234
  catch (err) {
@@ -10183,25 +10240,6 @@ function isConstraintError(err) {
10183
10240
  const e = err;
10184
10241
  return e?.name === "ConstraintError" || e?.inner?.name === "ConstraintError";
10185
10242
  }
10186
- async function insertPartialBlockchainNodes(dbId, ids, nodes) {
10187
- try {
10188
- const db = getDatabase(dbId);
10189
- if (ids.length !== nodes.length) {
10190
- throw new Error("ids and nodes arrays must be of the same length");
10191
- }
10192
- if (ids.length === 0) {
10193
- return;
10194
- }
10195
- const data = nodes.map((node, index) => ({
10196
- id: Number(ids[index]),
10197
- node: node,
10198
- }));
10199
- await db.partialBlockchainNodes.bulkPut(data);
10200
- }
10201
- catch (err) {
10202
- logWebStoreError(err, "Failed to insert partial blockchain nodes");
10203
- }
10204
- }
10205
10243
  async function getBlockHeaders(dbId, blockNumbers) {
10206
10244
  try {
10207
10245
  const db = getDatabase(dbId);
@@ -10259,33 +10297,6 @@ async function getTrackedBlockHeaderNumbers(dbId) {
10259
10297
  logWebStoreError(err, "Failed to get tracked block header numbers");
10260
10298
  }
10261
10299
  }
10262
- /**
10263
- * Returns the blockchain peaks at the current sync height. Peaks live on the
10264
- * `blockHeaders` row at `stateSync.blockNum` — the block that was the chain
10265
- * tip when its sync ran. Returns `{ blockNum, peaks: undefined }` if the
10266
- * stateSync row is missing or if that block was inserted via backfill
10267
- * (which leaves `partialBlockchainPeaks` unset).
10268
- */
10269
- async function getCurrentBlockchainPeaks(dbId) {
10270
- try {
10271
- const db = getDatabase(dbId);
10272
- const stateSyncRow = await db.stateSync.get(1);
10273
- if (stateSyncRow == undefined) {
10274
- return { blockNum: 0, peaks: undefined };
10275
- }
10276
- const header = await db.blockHeaders.get(stateSyncRow.blockNum);
10277
- if (header == undefined || header.partialBlockchainPeaks == undefined) {
10278
- return { blockNum: stateSyncRow.blockNum, peaks: undefined };
10279
- }
10280
- return {
10281
- blockNum: stateSyncRow.blockNum,
10282
- peaks: uint8ArrayToBase64(header.partialBlockchainPeaks),
10283
- };
10284
- }
10285
- catch (err) {
10286
- logWebStoreError(err, "Failed to get current blockchain peaks");
10287
- }
10288
- }
10289
10300
  async function getPartialBlockchainNodesAll(dbId) {
10290
10301
  try {
10291
10302
  const db = getDatabase(dbId);
@@ -10327,9 +10338,9 @@ async function pruneIrrelevantBlocks(dbId, blocksToUntrack, nodeIdsToRemove) {
10327
10338
  try {
10328
10339
  const db = getDatabase(dbId);
10329
10340
  const numericNodeIds = nodeIdsToRemove.map(Number);
10330
- const syncHeight = await db.stateSync.get(1);
10341
+ const syncHeight = await db.blockchainCheckpoint.get(1);
10331
10342
  if (syncHeight == undefined) {
10332
- throw Error("SyncHeight is undefined -- is the state sync table empty?");
10343
+ throw Error("SyncHeight is undefined -- is the blockchain_checkpoint table empty?");
10333
10344
  }
10334
10345
  await db.dexie.transaction("rw", db.blockHeaders, db.partialBlockchainNodes, async () => {
10335
10346
  // 1. Delete stale MMR authentication nodes.
@@ -10662,7 +10673,6 @@ async function upsertInputNote(dbId, detailsCommitment, noteId, assets, attachme
10662
10673
  }
10663
10674
  catch (error) {
10664
10675
  logWebStoreError(error, `Error inserting note: ${detailsCommitment}`);
10665
- throw error;
10666
10676
  }
10667
10677
  };
10668
10678
  return db.dexie.transaction("rw", db.inputNotes, db.notesScripts, doWork);
@@ -10746,7 +10756,6 @@ async function upsertOutputNote(dbId, detailsCommitment, noteId, assets, attachm
10746
10756
  }
10747
10757
  catch (error) {
10748
10758
  logWebStoreError(error, `Error inserting note: ${detailsCommitment}`);
10749
- throw error;
10750
10759
  }
10751
10760
  };
10752
10761
  return db.dexie.transaction("rw", db.outputNotes, db.notesScripts, doWork);
@@ -10989,7 +10998,6 @@ async function insertTransactionScript(dbId, scriptRoot, txScript, tx) {
10989
10998
  }
10990
10999
  catch (error) {
10991
11000
  logWebStoreError(error, "Failed to insert transaction script");
10992
- throw error;
10993
11001
  }
10994
11002
  }
10995
11003
  async function upsertTransactionRecord(dbId, transactionId, details, blockNum, statusVariant, status, scriptRoot, tx) {
@@ -11007,82 +11015,8 @@ async function upsertTransactionRecord(dbId, transactionId, details, blockNum, s
11007
11015
  }
11008
11016
  catch (err) {
11009
11017
  logWebStoreError(err, "Failed to insert proven transaction data");
11010
- throw err;
11011
11018
  }
11012
11019
  }
11013
- /**
11014
- * Applies a batch of transaction updates atomically inside a single Dexie transaction.
11015
- *
11016
- * All sub-operations that internally call `db.dexie.transaction()` are auto-joined by Dexie
11017
- * as nested sub-transactions when run inside this parent transaction, provided the parent
11018
- * scope is a superset of every sub-transaction scope.
11019
- */
11020
- async function applyTransactionBatch(dbId, payloads) {
11021
- const db = getDatabase(dbId);
11022
- await db.dexie.transaction("rw", [
11023
- db.transactions,
11024
- db.transactionScripts,
11025
- db.latestAccountStorages,
11026
- db.historicalAccountStorages,
11027
- db.latestStorageMapEntries,
11028
- db.historicalStorageMapEntries,
11029
- db.latestAccountAssets,
11030
- db.historicalAccountAssets,
11031
- db.latestAccountHeaders,
11032
- db.historicalAccountHeaders,
11033
- db.inputNotes,
11034
- db.outputNotes,
11035
- db.notesScripts,
11036
- db.tags,
11037
- ], async () => {
11038
- for (const payload of payloads) {
11039
- // 1. Insert the transaction record (script first, then record)
11040
- const rec = payload.transactionRecord;
11041
- if (rec.scriptRoot && rec.txScript) {
11042
- await insertTransactionScript(dbId, rec.scriptRoot, rec.txScript);
11043
- }
11044
- await upsertTransactionRecord(dbId, rec.id, rec.details, rec.blockNum, rec.statusVariant, rec.status, rec.scriptRoot);
11045
- // 2. Apply account state (full or delta)
11046
- const acct = payload.accountState;
11047
- if (acct.kind === "full") {
11048
- await applyFullAccountState(dbId, acct.account);
11049
- }
11050
- else {
11051
- await applyTransactionDelta(dbId, acct.accountId, acct.nonce, acct.updatedSlots, acct.changedMapEntries, acct.changedAssets, acct.codeRoot, acct.storageRoot, acct.vaultRoot, acct.committed, acct.commitment);
11052
- }
11053
- // 3. Upsert input and output notes
11054
- for (const note of payload.inputNotes) {
11055
- await upsertInputNote(dbId, note.detailsCommitment, note.noteId, note.noteAssets, note.attachments, note.serialNumber, note.inputs, note.noteScriptRoot, note.noteScript, note.nullifier, note.createdAt, note.stateDiscriminant, note.state, note.consumedBlockHeight ?? null, note.consumedTxOrder ?? null, note.consumerAccountId ?? null);
11056
- }
11057
- for (const note of payload.outputNotes) {
11058
- await upsertOutputNote(dbId, note.detailsCommitment, note.noteId, note.noteAssets, note.attachments, note.recipientDigest, note.metadata, note.nullifier, note.expectedHeight, note.stateDiscriminant, note.state);
11059
- }
11060
- // 4. Add note tags (deduplicated within the transaction)
11061
- for (const tagEntry of payload.tags) {
11062
- const tagArray = new Uint8Array(tagEntry.tag);
11063
- const tagBase64 = uint8ArrayToBase64(tagArray);
11064
- const sourceNoteId = tagEntry.sourceNoteId ?? "";
11065
- const sourceAccountId = tagEntry.sourceAccountId ?? "";
11066
- const sourceSubscriptionKey = tagEntry.sourceSubscriptionKey ?? "";
11067
- // Check for existing tag to avoid duplicates (mirrors the Rust add_note_tag logic).
11068
- // sourceSubscriptionKey is unindexed, so filter on it in memory — distinct
11069
- // subscriptions may share a tag and must remain separate rows.
11070
- const existing = await db.tags
11071
- .where({ tag: tagBase64, sourceNoteId, sourceAccountId })
11072
- .filter((t) => (t.sourceSubscriptionKey ?? "") === sourceSubscriptionKey)
11073
- .first();
11074
- if (!existing) {
11075
- await db.tags.add({
11076
- tag: tagBase64,
11077
- sourceNoteId,
11078
- sourceAccountId,
11079
- sourceSubscriptionKey,
11080
- });
11081
- }
11082
- }
11083
- }
11084
- });
11085
- }
11086
11020
 
11087
11021
  async function getNoteTags(dbId) {
11088
11022
  try {
@@ -11108,7 +11042,7 @@ async function getNoteTags(dbId) {
11108
11042
  async function getSyncHeight(dbId) {
11109
11043
  try {
11110
11044
  const db = getDatabase(dbId);
11111
- const record = await db.stateSync.get(1);
11045
+ const record = await db.blockchainCheckpoint.get(1);
11112
11046
  if (record) {
11113
11047
  let data = {
11114
11048
  blockNum: record.blockNum,
@@ -11123,6 +11057,25 @@ async function getSyncHeight(dbId) {
11123
11057
  logWebStoreError(error, "Error fetching sync height");
11124
11058
  }
11125
11059
  }
11060
+ async function getCurrentBlockchainPeaks(dbId) {
11061
+ try {
11062
+ const db = getDatabase(dbId);
11063
+ const record = await db.blockchainCheckpoint.get(1);
11064
+ if (!record || record.partialBlockchainPeaks.length === 0) {
11065
+ return {
11066
+ blockNum: record?.blockNum ?? 0,
11067
+ peaks: uint8ArrayToBase64(new Uint8Array()),
11068
+ };
11069
+ }
11070
+ return {
11071
+ blockNum: record.blockNum,
11072
+ peaks: uint8ArrayToBase64(record.partialBlockchainPeaks),
11073
+ };
11074
+ }
11075
+ catch (error) {
11076
+ logWebStoreError(error, "Error fetching current blockchain peaks");
11077
+ }
11078
+ }
11126
11079
  async function addNoteTag(dbId, tag, sourceNoteId, sourceAccountId, sourceSubscriptionKey) {
11127
11080
  try {
11128
11081
  const db = getDatabase(dbId);
@@ -11163,10 +11116,10 @@ async function removeNoteTag(dbId, tag, sourceNoteId, sourceAccountId, sourceSub
11163
11116
  }
11164
11117
  async function applyStateSync(dbId, stateUpdate) {
11165
11118
  const db = getDatabase(dbId);
11166
- const { blockNum, flattenedNewBlockHeaders, partialBlockchainPeaks, newBlockNums, blockHasRelevantNotes, serializedNodeIds, serializedNodes, committedNoteTagSources, serializedInputNotes, serializedOutputNotes, accountUpdates, transactionUpdates, } = stateUpdate;
11119
+ const { blockNum, flattenedNewBlockHeaders, newPeaks, newBlockNums, blockHasRelevantNotes, serializedNodeIds, serializedNodes, committedNoteTagSources, serializedInputNotes, serializedOutputNotes, accountUpdates, transactionUpdates, } = stateUpdate;
11167
11120
  const newBlockHeaders = reconstructFlattenedVec(flattenedNewBlockHeaders);
11168
11121
  const tablesToAccess = [
11169
- db.stateSync,
11122
+ db.blockchainCheckpoint,
11170
11123
  db.inputNotes,
11171
11124
  db.outputNotes,
11172
11125
  db.notesScripts,
@@ -11214,46 +11167,41 @@ async function applyStateSync(dbId, stateUpdate) {
11214
11167
  accountCommitment: accountUpdate.accountCommitment,
11215
11168
  accountSeed: accountUpdate.accountSeed,
11216
11169
  }))),
11217
- updateSyncHeight(tx, blockNum),
11170
+ updateSyncHeight(tx, blockNum, newPeaks),
11218
11171
  updatePartialBlockchainNodes(tx, serializedNodeIds, serializedNodes),
11219
11172
  updateCommittedNoteTags(tx, committedNoteTagSources),
11220
11173
  Promise.all(newBlockHeaders.map((newBlockHeader, i) => {
11221
- // Peaks are attached only to the chain-tip block (the one whose
11222
- // blockNum matches the new sync height). That row is always
11223
- // present in this iteration because `partial_blockchain_updates`
11224
- // includes the chain tip header by construction.
11225
- // TODO: potentially move this to be under the sync state info table
11226
- // as currently done in SQLite
11227
- const peaks = newBlockNums[i] === blockNum ? partialBlockchainPeaks : undefined;
11228
- return updateBlockHeader(tx, newBlockNums[i], newBlockHeader, blockHasRelevantNotes[i] == 1, peaks);
11174
+ return updateBlockHeader(tx, newBlockNums[i], newBlockHeader, blockHasRelevantNotes[i] == 1);
11229
11175
  })),
11230
11176
  ]);
11231
11177
  });
11232
11178
  }
11233
- /**
11234
- * Advances `stateSync.blockNum` only when moving forward. Mirrors SQLite's
11235
- * `UPDATE blockchain_checkpoint ... WHERE block_num < ?`.
11236
- */
11237
- async function updateSyncHeight(tx, blockNum) {
11179
+ async function updateSyncHeight(tx, blockNum, newPeaks) {
11238
11180
  try {
11239
- const current = await tx.stateSync.get(1);
11181
+ // Only update if moving forward to prevent race conditions.
11182
+ // Peaks travel with blockNum: skipping the height update also skips the
11183
+ // peaks update, by design — a backward-going sync must not overwrite the
11184
+ // newer peaks with older ones.
11185
+ const current = await tx.blockchainCheckpoint.get(1);
11240
11186
  if (!current || current.blockNum < blockNum) {
11241
- await tx.stateSync.update(1, {
11187
+ await tx.blockchainCheckpoint.update(1, {
11242
11188
  blockNum: blockNum,
11189
+ partialBlockchainPeaks: newPeaks,
11243
11190
  });
11244
11191
  }
11245
11192
  }
11246
11193
  catch (error) {
11194
+ // logWebStoreError always re-throws, so a failure here aborts the whole
11195
+ // Dexie rw transaction rather than silently committing a partial update.
11247
11196
  logWebStoreError(error, "Failed to update sync height");
11248
11197
  }
11249
11198
  }
11250
- async function updateBlockHeader(tx, blockNum, blockHeader, hasClientNotes, partialBlockchainPeaks) {
11199
+ async function updateBlockHeader(tx, blockNum, blockHeader, hasClientNotes) {
11251
11200
  try {
11252
11201
  const data = {
11253
11202
  blockNum: blockNum,
11254
11203
  header: blockHeader,
11255
11204
  hasClientNotes: hasClientNotes.toString(),
11256
- ...(partialBlockchainPeaks !== undefined && { partialBlockchainPeaks }),
11257
11205
  };
11258
11206
  const existingBlockHeader = await tx.blockHeaders.get(blockNum);
11259
11207
  if (!existingBlockHeader) {
@@ -11277,8 +11225,9 @@ async function updatePartialBlockchainNodes(tx, nodeIndexes, nodes) {
11277
11225
  id: Number(nodeIndexes[index]),
11278
11226
  node: node,
11279
11227
  }));
11280
- // Use bulkPut to add/overwrite the entries
11281
- await tx.partialBlockchainNodes.bulkPut(data);
11228
+ // Insert missing nodes and reject conflicting writes
11229
+ await putPartialBlockchainNodesNoOverwrite(tx
11230
+ .partialBlockchainNodes, data);
11282
11231
  }
11283
11232
  catch (err) {
11284
11233
  logWebStoreError(err, "Failed to update partial blockchain nodes");
@@ -11403,17 +11352,6 @@ class Account {
11403
11352
  const ret = wasm.account_isFaucet(this.__wbg_ptr);
11404
11353
  return ret !== 0;
11405
11354
  }
11406
- /**
11407
- * Returns true if this is a network account.
11408
- *
11409
- * A network account is a public account whose storage
11410
- * carries the standardized network-account note-script allowlist slot.
11411
- * @returns {boolean}
11412
- */
11413
- isNetworkAccount() {
11414
- const ret = wasm.account_isNetworkAccount(this.__wbg_ptr);
11415
- return ret !== 0;
11416
- }
11417
11355
  /**
11418
11356
  * Returns true if the account has not yet been committed to the chain.
11419
11357
  * @returns {boolean}
@@ -11446,20 +11384,6 @@ class Account {
11446
11384
  const ret = wasm.account_isRegularAccount(this.__wbg_ptr);
11447
11385
  return ret !== 0;
11448
11386
  }
11449
- /**
11450
- * Returns the note-script roots this network account is allowed to
11451
- * consume, or `undefined` if this is not a network account.
11452
- * @returns {Word[] | undefined}
11453
- */
11454
- networkNoteAllowlist() {
11455
- const ret = wasm.account_networkNoteAllowlist(this.__wbg_ptr);
11456
- let v1;
11457
- if (ret[0] !== 0) {
11458
- v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
11459
- wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
11460
- }
11461
- return v1;
11462
- }
11463
11387
  /**
11464
11388
  * Returns the account nonce, which is incremented on every state update.
11465
11389
  * @returns {Felt}
@@ -11813,6 +11737,18 @@ class AccountComponent {
11813
11737
  }
11814
11738
  return AccountComponent.__wrap(ret[0]);
11815
11739
  }
11740
+ /**
11741
+ * Returns the exact compiled code used by this component.
11742
+ *
11743
+ * Link this code when compiling scripts that invoke the component. Rebuilding a library from
11744
+ * the original source can produce different procedure identities than the code installed on
11745
+ * the account.
11746
+ * @returns {AccountComponentCode}
11747
+ */
11748
+ componentCode() {
11749
+ const ret = wasm.accountcomponent_componentCode(this.__wbg_ptr);
11750
+ return AccountComponentCode.__wrap(ret);
11751
+ }
11816
11752
  /**
11817
11753
  * @param {Word} commitment
11818
11754
  * @param {AuthScheme} auth_scheme
@@ -11839,42 +11775,6 @@ class AccountComponent {
11839
11775
  }
11840
11776
  return AccountComponent.__wrap(ret[0]);
11841
11777
  }
11842
- /**
11843
- * Builds the auth component for a network account.
11844
- *
11845
- * A network account is a public account carrying this component: its
11846
- * note-script allowlist is the standardized storage slot the node's
11847
- * network-transaction builder inspects to identify the account as a network
11848
- * account and route matching notes to it for auto-consumption. The account
11849
- * may only consume notes whose script root is in `allowedNoteScriptRoots`
11850
- * (obtain a root via `NoteScript.root()`).
11851
- *
11852
- * `allowedTxScriptRoots` optionally allowlists transaction script roots
11853
- * (from `TransactionScript.root()`) the account will execute. When omitted
11854
- * or empty, the account permits no transaction scripts and deploys and
11855
- * advances via scriptless transactions only. Allowlist a script root only
11856
- * if the script's effect is safe for *every* possible input: a root pins
11857
- * the script's code but not its arguments or advice inputs, which the
11858
- * (arbitrary) transaction submitter controls.
11859
- *
11860
- * # Errors
11861
- * Errors if `allowedNoteScriptRoots` is empty: a network account with no
11862
- * allowlisted note scripts could never consume a note.
11863
- * @param {Word[]} allowed_note_script_roots
11864
- * @param {Word[] | null} [allowed_tx_script_roots]
11865
- * @returns {AccountComponent}
11866
- */
11867
- static createNetworkAuth(allowed_note_script_roots, allowed_tx_script_roots) {
11868
- const ptr0 = passArrayJsValueToWasm0(allowed_note_script_roots, wasm.__wbindgen_malloc);
11869
- const len0 = WASM_VECTOR_LEN;
11870
- var ptr1 = isLikeNone(allowed_tx_script_roots) ? 0 : passArrayJsValueToWasm0(allowed_tx_script_roots, wasm.__wbindgen_malloc);
11871
- var len1 = WASM_VECTOR_LEN;
11872
- const ret = wasm.accountcomponent_createNetworkAuth(ptr0, len0, ptr1, len1);
11873
- if (ret[2]) {
11874
- throw takeFromExternrefTable0(ret[1]);
11875
- }
11876
- return AccountComponent.__wrap(ret[0]);
11877
- }
11878
11778
  /**
11879
11779
  * Creates an account component from a compiled library and storage slots.
11880
11780
  * @param {Library} library
@@ -12001,8 +11901,10 @@ if (Symbol.dispose) AccountComponentCode.prototype[Symbol.dispose] = AccountComp
12001
11901
  * `AccountDelta` stores the differences between two account states.
12002
11902
  *
12003
11903
  * The differences are represented as follows:
12004
- * - `storage`: an `AccountStorageDelta` that contains the changes to the account storage.
12005
- * - `vault`: an `AccountVaultDelta` object that contains the changes to the account vault.
11904
+ * - `storage`: an `AccountStoragePatch` with the absolute final values of changed storage slots
11905
+ * (storage changes have identical semantics in the delta and patch models).
11906
+ * - `vault`: an `AccountVaultDelta` object that contains the relative changes to the account
11907
+ * vault.
12006
11908
  * - `nonce`: if the nonce of the account has changed, the new nonce is stored here.
12007
11909
  */
12008
11910
  class AccountDelta {
@@ -12068,12 +11970,12 @@ class AccountDelta {
12068
11970
  return ret;
12069
11971
  }
12070
11972
  /**
12071
- * Returns the storage delta.
12072
- * @returns {AccountStorageDelta}
11973
+ * Returns the storage patch (storage changes are absolute in both models).
11974
+ * @returns {AccountStoragePatch}
12073
11975
  */
12074
11976
  storage() {
12075
11977
  const ret = wasm.accountdelta_storage(this.__wbg_ptr);
12076
- return AccountStorageDelta.__wrap(ret);
11978
+ return AccountStoragePatch.__wrap(ret);
12077
11979
  }
12078
11980
  /**
12079
11981
  * Returns the vault delta.
@@ -12468,6 +12370,90 @@ const AccountInterface = Object.freeze({
12468
12370
  BasicWallet: 0, "0": "BasicWallet",
12469
12371
  });
12470
12372
 
12373
+ /**
12374
+ * Describes the new absolute account state produced by a transaction.
12375
+ */
12376
+ class AccountPatch {
12377
+ static __wrap(ptr) {
12378
+ ptr = ptr >>> 0;
12379
+ const obj = Object.create(AccountPatch.prototype);
12380
+ obj.__wbg_ptr = ptr;
12381
+ AccountPatchFinalization.register(obj, obj.__wbg_ptr, obj);
12382
+ return obj;
12383
+ }
12384
+ __destroy_into_raw() {
12385
+ const ptr = this.__wbg_ptr;
12386
+ this.__wbg_ptr = 0;
12387
+ AccountPatchFinalization.unregister(this);
12388
+ return ptr;
12389
+ }
12390
+ free() {
12391
+ const ptr = this.__destroy_into_raw();
12392
+ wasm.__wbg_accountpatch_free(ptr, 0);
12393
+ }
12394
+ /**
12395
+ * Deserializes an account patch from bytes.
12396
+ * @param {Uint8Array} bytes
12397
+ * @returns {AccountPatch}
12398
+ */
12399
+ static deserialize(bytes) {
12400
+ const ret = wasm.accountpatch_deserialize(bytes);
12401
+ if (ret[2]) {
12402
+ throw takeFromExternrefTable0(ret[1]);
12403
+ }
12404
+ return AccountPatch.__wrap(ret[0]);
12405
+ }
12406
+ /**
12407
+ * Returns the final nonce, or `None` if it was unchanged.
12408
+ * @returns {Felt | undefined}
12409
+ */
12410
+ finalNonce() {
12411
+ const ret = wasm.accountpatch_finalNonce(this.__wbg_ptr);
12412
+ return ret === 0 ? undefined : Felt.__wrap(ret);
12413
+ }
12414
+ /**
12415
+ * Returns the affected account ID.
12416
+ * @returns {AccountId}
12417
+ */
12418
+ id() {
12419
+ const ret = wasm.accountpatch_id(this.__wbg_ptr);
12420
+ return AccountId.__wrap(ret);
12421
+ }
12422
+ /**
12423
+ * Returns true if this patch contains no state changes.
12424
+ * @returns {boolean}
12425
+ */
12426
+ isEmpty() {
12427
+ const ret = wasm.accountpatch_isEmpty(this.__wbg_ptr);
12428
+ return ret !== 0;
12429
+ }
12430
+ /**
12431
+ * Serializes the account patch into bytes.
12432
+ * @returns {Uint8Array}
12433
+ */
12434
+ serialize() {
12435
+ const ret = wasm.accountpatch_serialize(this.__wbg_ptr);
12436
+ return ret;
12437
+ }
12438
+ /**
12439
+ * Returns the account storage patch.
12440
+ * @returns {AccountStoragePatch}
12441
+ */
12442
+ storage() {
12443
+ const ret = wasm.accountpatch_storage(this.__wbg_ptr);
12444
+ return AccountStoragePatch.__wrap(ret);
12445
+ }
12446
+ /**
12447
+ * Returns the account vault patch.
12448
+ * @returns {AccountVaultPatch}
12449
+ */
12450
+ vault() {
12451
+ const ret = wasm.accountpatch_vault(this.__wbg_ptr);
12452
+ return AccountVaultPatch.__wrap(ret);
12453
+ }
12454
+ }
12455
+ if (Symbol.dispose) AccountPatch.prototype[Symbol.dispose] = AccountPatch.prototype.free;
12456
+
12471
12457
  /**
12472
12458
  * Proof of existence of an account's state at a specific block number, as returned by the node.
12473
12459
  *
@@ -12941,74 +12927,6 @@ class AccountStorage {
12941
12927
  }
12942
12928
  if (Symbol.dispose) AccountStorage.prototype[Symbol.dispose] = AccountStorage.prototype.free;
12943
12929
 
12944
- /**
12945
- * `AccountStorageDelta` stores the differences between two states of account storage.
12946
- *
12947
- * The delta consists of two maps:
12948
- * - A map containing the updates to value storage slots. The keys in this map are indexes of the
12949
- * updated storage slots and the values are the new values for these slots.
12950
- * - A map containing updates to storage maps. The keys in this map are indexes of the updated
12951
- * storage slots and the values are corresponding storage map delta objects.
12952
- */
12953
- class AccountStorageDelta {
12954
- static __wrap(ptr) {
12955
- ptr = ptr >>> 0;
12956
- const obj = Object.create(AccountStorageDelta.prototype);
12957
- obj.__wbg_ptr = ptr;
12958
- AccountStorageDeltaFinalization.register(obj, obj.__wbg_ptr, obj);
12959
- return obj;
12960
- }
12961
- __destroy_into_raw() {
12962
- const ptr = this.__wbg_ptr;
12963
- this.__wbg_ptr = 0;
12964
- AccountStorageDeltaFinalization.unregister(this);
12965
- return ptr;
12966
- }
12967
- free() {
12968
- const ptr = this.__destroy_into_raw();
12969
- wasm.__wbg_accountstoragedelta_free(ptr, 0);
12970
- }
12971
- /**
12972
- * Deserializes a storage delta from bytes.
12973
- * @param {Uint8Array} bytes
12974
- * @returns {AccountStorageDelta}
12975
- */
12976
- static deserialize(bytes) {
12977
- const ret = wasm.accountstoragedelta_deserialize(bytes);
12978
- if (ret[2]) {
12979
- throw takeFromExternrefTable0(ret[1]);
12980
- }
12981
- return AccountStorageDelta.__wrap(ret[0]);
12982
- }
12983
- /**
12984
- * Returns true if no storage slots are changed.
12985
- * @returns {boolean}
12986
- */
12987
- isEmpty() {
12988
- const ret = wasm.accountstoragedelta_isEmpty(this.__wbg_ptr);
12989
- return ret !== 0;
12990
- }
12991
- /**
12992
- * Serializes the storage delta into bytes.
12993
- * @returns {Uint8Array}
12994
- */
12995
- serialize() {
12996
- const ret = wasm.accountstoragedelta_serialize(this.__wbg_ptr);
12997
- return ret;
12998
- }
12999
- /**
13000
- * Returns the new values for modified storage slots.
13001
- * @returns {Word[]}
13002
- */
13003
- values() {
13004
- const ret = wasm.accountstoragedelta_values(this.__wbg_ptr);
13005
- var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
13006
- wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
13007
- return v1;
13008
- }
13009
- }
13010
- if (Symbol.dispose) AccountStorageDelta.prototype[Symbol.dispose] = AccountStorageDelta.prototype.free;
13011
-
13012
12930
  /**
13013
12931
  * Storage visibility mode for an account.
13014
12932
  *
@@ -13091,8 +13009,70 @@ class AccountStorageMode {
13091
13009
  }
13092
13010
  if (Symbol.dispose) AccountStorageMode.prototype[Symbol.dispose] = AccountStorageMode.prototype.free;
13093
13011
 
13094
- class AccountStorageRequirements {
13095
- static __wrap(ptr) {
13012
+ /**
13013
+ * Absolute updates to named account storage slots.
13014
+ */
13015
+ class AccountStoragePatch {
13016
+ static __wrap(ptr) {
13017
+ ptr = ptr >>> 0;
13018
+ const obj = Object.create(AccountStoragePatch.prototype);
13019
+ obj.__wbg_ptr = ptr;
13020
+ AccountStoragePatchFinalization.register(obj, obj.__wbg_ptr, obj);
13021
+ return obj;
13022
+ }
13023
+ __destroy_into_raw() {
13024
+ const ptr = this.__wbg_ptr;
13025
+ this.__wbg_ptr = 0;
13026
+ AccountStoragePatchFinalization.unregister(this);
13027
+ return ptr;
13028
+ }
13029
+ free() {
13030
+ const ptr = this.__destroy_into_raw();
13031
+ wasm.__wbg_accountstoragepatch_free(ptr, 0);
13032
+ }
13033
+ /**
13034
+ * Deserializes a storage patch from bytes.
13035
+ * @param {Uint8Array} bytes
13036
+ * @returns {AccountStoragePatch}
13037
+ */
13038
+ static deserialize(bytes) {
13039
+ const ret = wasm.accountstoragepatch_deserialize(bytes);
13040
+ if (ret[2]) {
13041
+ throw takeFromExternrefTable0(ret[1]);
13042
+ }
13043
+ return AccountStoragePatch.__wrap(ret[0]);
13044
+ }
13045
+ /**
13046
+ * Returns true if no storage slots are changed.
13047
+ * @returns {boolean}
13048
+ */
13049
+ isEmpty() {
13050
+ const ret = wasm.accountstoragepatch_isEmpty(this.__wbg_ptr);
13051
+ return ret !== 0;
13052
+ }
13053
+ /**
13054
+ * Serializes the storage patch into bytes.
13055
+ * @returns {Uint8Array}
13056
+ */
13057
+ serialize() {
13058
+ const ret = wasm.accountstoragepatch_serialize(this.__wbg_ptr);
13059
+ return ret;
13060
+ }
13061
+ /**
13062
+ * Returns the final values for created or updated value slots.
13063
+ * @returns {Word[]}
13064
+ */
13065
+ values() {
13066
+ const ret = wasm.accountstoragepatch_values(this.__wbg_ptr);
13067
+ var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
13068
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
13069
+ return v1;
13070
+ }
13071
+ }
13072
+ if (Symbol.dispose) AccountStoragePatch.prototype[Symbol.dispose] = AccountStoragePatch.prototype.free;
13073
+
13074
+ class AccountStorageRequirements {
13075
+ static __wrap(ptr) {
13096
13076
  ptr = ptr >>> 0;
13097
13077
  const obj = Object.create(AccountStorageRequirements.prototype);
13098
13078
  obj.__wbg_ptr = ptr;
@@ -13234,6 +13214,86 @@ class AccountVaultDelta {
13234
13214
  }
13235
13215
  if (Symbol.dispose) AccountVaultDelta.prototype[Symbol.dispose] = AccountVaultDelta.prototype.free;
13236
13216
 
13217
+ /**
13218
+ * Absolute updates to account vault entries.
13219
+ */
13220
+ class AccountVaultPatch {
13221
+ static __wrap(ptr) {
13222
+ ptr = ptr >>> 0;
13223
+ const obj = Object.create(AccountVaultPatch.prototype);
13224
+ obj.__wbg_ptr = ptr;
13225
+ AccountVaultPatchFinalization.register(obj, obj.__wbg_ptr, obj);
13226
+ return obj;
13227
+ }
13228
+ __destroy_into_raw() {
13229
+ const ptr = this.__wbg_ptr;
13230
+ this.__wbg_ptr = 0;
13231
+ AccountVaultPatchFinalization.unregister(this);
13232
+ return ptr;
13233
+ }
13234
+ free() {
13235
+ const ptr = this.__destroy_into_raw();
13236
+ wasm.__wbg_accountvaultpatch_free(ptr, 0);
13237
+ }
13238
+ /**
13239
+ * Deserializes a vault patch from bytes.
13240
+ * @param {Uint8Array} bytes
13241
+ * @returns {AccountVaultPatch}
13242
+ */
13243
+ static deserialize(bytes) {
13244
+ const ret = wasm.accountvaultpatch_deserialize(bytes);
13245
+ if (ret[2]) {
13246
+ throw takeFromExternrefTable0(ret[1]);
13247
+ }
13248
+ return AccountVaultPatch.__wrap(ret[0]);
13249
+ }
13250
+ /**
13251
+ * Returns true if no vault entries are changed.
13252
+ * @returns {boolean}
13253
+ */
13254
+ isEmpty() {
13255
+ const ret = wasm.accountstoragepatch_isEmpty(this.__wbg_ptr);
13256
+ return ret !== 0;
13257
+ }
13258
+ /**
13259
+ * Returns the number of changed vault entries.
13260
+ * @returns {number}
13261
+ */
13262
+ numAssets() {
13263
+ const ret = wasm.accountvaultpatch_numAssets(this.__wbg_ptr);
13264
+ return ret >>> 0;
13265
+ }
13266
+ /**
13267
+ * Returns the IDs of removed assets as their canonical words.
13268
+ * @returns {Word[]}
13269
+ */
13270
+ removedAssetIds() {
13271
+ const ret = wasm.accountvaultpatch_removedAssetIds(this.__wbg_ptr);
13272
+ var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
13273
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
13274
+ return v1;
13275
+ }
13276
+ /**
13277
+ * Serializes the vault patch into bytes.
13278
+ * @returns {Uint8Array}
13279
+ */
13280
+ serialize() {
13281
+ const ret = wasm.accountvaultpatch_serialize(this.__wbg_ptr);
13282
+ return ret;
13283
+ }
13284
+ /**
13285
+ * Returns fungible assets whose final balance was added or updated.
13286
+ * @returns {FungibleAsset[]}
13287
+ */
13288
+ updatedFungibleAssets() {
13289
+ const ret = wasm.accountvaultpatch_updatedFungibleAssets(this.__wbg_ptr);
13290
+ var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
13291
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
13292
+ return v1;
13293
+ }
13294
+ }
13295
+ if (Symbol.dispose) AccountVaultPatch.prototype[Symbol.dispose] = AccountVaultPatch.prototype.free;
13296
+
13237
13297
  /**
13238
13298
  * Representation of a Miden address (account ID plus routing parameters).
13239
13299
  */
@@ -13425,13 +13485,6 @@ if (Symbol.dispose) AdviceInputs.prototype[Symbol.dispose] = AdviceInputs.protot
13425
13485
  * Map of advice values keyed by words for script execution.
13426
13486
  */
13427
13487
  class AdviceMap {
13428
- static __wrap(ptr) {
13429
- ptr = ptr >>> 0;
13430
- const obj = Object.create(AdviceMap.prototype);
13431
- obj.__wbg_ptr = ptr;
13432
- AdviceMapFinalization.register(obj, obj.__wbg_ptr, obj);
13433
- return obj;
13434
- }
13435
13488
  __destroy_into_raw() {
13436
13489
  const ptr = this.__wbg_ptr;
13437
13490
  this.__wbg_ptr = 0;
@@ -13472,26 +13525,6 @@ class AdviceMap {
13472
13525
  }
13473
13526
  if (Symbol.dispose) AdviceMap.prototype[Symbol.dispose] = AdviceMap.prototype.free;
13474
13527
 
13475
- /**
13476
- * Whether a faucet's asset callbacks run when an asset is added to an account or a note.
13477
- *
13478
- * The flag is part of an asset's vault key, so two assets from the same faucet with different
13479
- * flags occupy different vault slots and do not merge. Assets minted by a faucet that registers
13480
- * transfer policies carry `Enabled`; everything else carries `Disabled`.
13481
- * @enum {0 | 1}
13482
- */
13483
- const AssetCallbackFlag = Object.freeze({
13484
- /**
13485
- * The faucet's callbacks are not invoked for this asset. This is the default for an asset
13486
- * built via the `FungibleAsset` constructor.
13487
- */
13488
- Disabled: 0, "0": "Disabled",
13489
- /**
13490
- * The faucet's callbacks are invoked before this asset is added to an account or a note.
13491
- */
13492
- Enabled: 1, "1": "Enabled",
13493
- });
13494
-
13495
13528
  /**
13496
13529
  * A container for an unlimited number of assets.
13497
13530
  *
@@ -13773,13 +13806,10 @@ class AuthSecretKey {
13773
13806
  if (Symbol.dispose) AuthSecretKey.prototype[Symbol.dispose] = AuthSecretKey.prototype.free;
13774
13807
 
13775
13808
  /**
13776
- * Provides metadata for a fungible faucet account component.
13809
+ * Provides metadata for a basic fungible faucet account component.
13777
13810
  *
13778
- * Reads the on-chain `FungibleFaucet` component for the account, which holds the per-token
13779
- * info (symbol, decimals, supply, and the descriptive metadata). The same component backs both
13780
- * "basic" public faucets and network-style faucets — in the current protocol the distinction is
13781
- * a function of the surrounding account configuration (account type, auth, access control), not
13782
- * of the faucet component itself — so this reads metadata from either kind of faucet account.
13811
+ * Reads the on-chain [`FungibleFaucet`] component for the account, which holds the
13812
+ * per-token info (symbol/decimals/maxSupply).
13783
13813
  */
13784
13814
  class BasicFungibleFaucetComponent {
13785
13815
  static __wrap(ptr) {
@@ -13807,32 +13837,6 @@ class BasicFungibleFaucetComponent {
13807
13837
  const ret = wasm.basicfungiblefaucetcomponent_decimals(this.__wbg_ptr);
13808
13838
  return ret;
13809
13839
  }
13810
- /**
13811
- * Returns the optional free-form token description, or `undefined` when unset.
13812
- * @returns {string | undefined}
13813
- */
13814
- description() {
13815
- const ret = wasm.basicfungiblefaucetcomponent_description(this.__wbg_ptr);
13816
- let v1;
13817
- if (ret[0] !== 0) {
13818
- v1 = getStringFromWasm0(ret[0], ret[1]).slice();
13819
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
13820
- }
13821
- return v1;
13822
- }
13823
- /**
13824
- * Returns the optional external link (e.g. project website), or `undefined` when unset.
13825
- * @returns {string | undefined}
13826
- */
13827
- externalLink() {
13828
- const ret = wasm.basicfungiblefaucetcomponent_externalLink(this.__wbg_ptr);
13829
- let v1;
13830
- if (ret[0] !== 0) {
13831
- v1 = getStringFromWasm0(ret[0], ret[1]).slice();
13832
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
13833
- }
13834
- return v1;
13835
- }
13836
13840
  /**
13837
13841
  * Extracts faucet metadata from an account.
13838
13842
  * @param {Account} account
@@ -13847,19 +13851,6 @@ class BasicFungibleFaucetComponent {
13847
13851
  }
13848
13852
  return BasicFungibleFaucetComponent.__wrap(ret[0]);
13849
13853
  }
13850
- /**
13851
- * Returns the optional token logo URI, or `undefined` when unset.
13852
- * @returns {string | undefined}
13853
- */
13854
- logoUri() {
13855
- const ret = wasm.basicfungiblefaucetcomponent_logoUri(this.__wbg_ptr);
13856
- let v1;
13857
- if (ret[0] !== 0) {
13858
- v1 = getStringFromWasm0(ret[0], ret[1]).slice();
13859
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
13860
- }
13861
- return v1;
13862
- }
13863
13854
  /**
13864
13855
  * Returns the maximum token supply.
13865
13856
  * @returns {Felt}
@@ -13876,30 +13867,6 @@ class BasicFungibleFaucetComponent {
13876
13867
  const ret = wasm.basicfungiblefaucetcomponent_symbol(this.__wbg_ptr);
13877
13868
  return TokenSymbol.__wrap(ret);
13878
13869
  }
13879
- /**
13880
- * Returns the human-readable token name.
13881
- * @returns {string}
13882
- */
13883
- tokenName() {
13884
- let deferred1_0;
13885
- let deferred1_1;
13886
- try {
13887
- const ret = wasm.basicfungiblefaucetcomponent_tokenName(this.__wbg_ptr);
13888
- deferred1_0 = ret[0];
13889
- deferred1_1 = ret[1];
13890
- return getStringFromWasm0(ret[0], ret[1]);
13891
- } finally {
13892
- wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
13893
- }
13894
- }
13895
- /**
13896
- * Returns the current token supply (the amount minted so far).
13897
- * @returns {Felt}
13898
- */
13899
- tokenSupply() {
13900
- const ret = wasm.basicfungiblefaucetcomponent_tokenSupply(this.__wbg_ptr);
13901
- return Felt.__wrap(ret);
13902
- }
13903
13870
  }
13904
13871
  if (Symbol.dispose) BasicFungibleFaucetComponent.prototype[Symbol.dispose] = BasicFungibleFaucetComponent.prototype.free;
13905
13872
 
@@ -13960,7 +13927,7 @@ class BlockHeader {
13960
13927
  * @returns {Word}
13961
13928
  */
13962
13929
  commitment() {
13963
- const ret = wasm.blockheader_commitment(this.__wbg_ptr);
13930
+ const ret = wasm.accountbuilderresult_seed(this.__wbg_ptr);
13964
13931
  return Word.__wrap(ret);
13965
13932
  }
13966
13933
  /**
@@ -14005,7 +13972,7 @@ class BlockHeader {
14005
13972
  * @returns {Word}
14006
13973
  */
14007
13974
  proofCommitment() {
14008
- const ret = wasm.blockheader_commitment(this.__wbg_ptr);
13975
+ const ret = wasm.accountbuilderresult_seed(this.__wbg_ptr);
14009
13976
  return Word.__wrap(ret);
14010
13977
  }
14011
13978
  /**
@@ -14114,6 +14081,26 @@ class CodeBuilder {
14114
14081
  }
14115
14082
  return AccountComponentCode.__wrap(ret[0]);
14116
14083
  }
14084
+ /**
14085
+ * Compiles account component code under an explicit module path.
14086
+ *
14087
+ * The module path is part of procedure identity in Miden Assembly 0.25. Callers that also
14088
+ * link this component into a transaction script must use the same path for both operations.
14089
+ * @param {string} component_path
14090
+ * @param {string} account_code
14091
+ * @returns {AccountComponentCode}
14092
+ */
14093
+ compileAccountComponentCodeWithPath(component_path, account_code) {
14094
+ const ptr0 = passStringToWasm0(component_path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
14095
+ const len0 = WASM_VECTOR_LEN;
14096
+ const ptr1 = passStringToWasm0(account_code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
14097
+ const len1 = WASM_VECTOR_LEN;
14098
+ const ret = wasm.codebuilder_compileAccountComponentCodeWithPath(this.__wbg_ptr, ptr0, len0, ptr1, len1);
14099
+ if (ret[2]) {
14100
+ throw takeFromExternrefTable0(ret[1]);
14101
+ }
14102
+ return AccountComponentCode.__wrap(ret[0]);
14103
+ }
14117
14104
  /**
14118
14105
  * Given a Note Script's source code, compiles it with the available
14119
14106
  * modules under this builder. Returns the compiled script.
@@ -14144,6 +14131,20 @@ class CodeBuilder {
14144
14131
  }
14145
14132
  return TransactionScript.__wrap(ret[0]);
14146
14133
  }
14134
+ /**
14135
+ * Dynamically links the exact library installed by an account component.
14136
+ *
14137
+ * Use this for component procedures that are available on-chain and invoked with dynamic
14138
+ * calls, including foreign procedure invocation.
14139
+ * @param {AccountComponentCode} account_component_code
14140
+ */
14141
+ linkDynamicAccountComponentCode(account_component_code) {
14142
+ _assertClass(account_component_code, AccountComponentCode);
14143
+ const ret = wasm.codebuilder_linkDynamicAccountComponentCode(this.__wbg_ptr, account_component_code.__wbg_ptr);
14144
+ if (ret[1]) {
14145
+ throw takeFromExternrefTable0(ret[0]);
14146
+ }
14147
+ }
14147
14148
  /**
14148
14149
  * This is useful to dynamically link the {@link Library} of a foreign account
14149
14150
  * that is invoked using foreign procedure invocation (FPI). Its code is available
@@ -14176,6 +14177,20 @@ class CodeBuilder {
14176
14177
  throw takeFromExternrefTable0(ret[0]);
14177
14178
  }
14178
14179
  }
14180
+ /**
14181
+ * Statically links the exact library installed by an account component.
14182
+ *
14183
+ * This should be preferred over rebuilding the component source with `buildLibrary`, because
14184
+ * the installed component code is the source of truth for its procedure identities.
14185
+ * @param {AccountComponentCode} account_component_code
14186
+ */
14187
+ linkStaticAccountComponentCode(account_component_code) {
14188
+ _assertClass(account_component_code, AccountComponentCode);
14189
+ const ret = wasm.codebuilder_linkStaticAccountComponentCode(this.__wbg_ptr, account_component_code.__wbg_ptr);
14190
+ if (ret[1]) {
14191
+ throw takeFromExternrefTable0(ret[0]);
14192
+ }
14193
+ }
14179
14194
  /**
14180
14195
  * Statically links the given library.
14181
14196
  *
@@ -14467,111 +14482,13 @@ class Endpoint {
14467
14482
  }
14468
14483
  if (Symbol.dispose) Endpoint.prototype[Symbol.dispose] = Endpoint.prototype.free;
14469
14484
 
14470
- /**
14471
- * A 20-byte Ethereum address, used as the destination of an `AggLayer` bridge-out (B2AGG) note.
14472
- *
14473
- * Construct one from a hex string with [`EthAddress::from_hex`] (the `0x` prefix is optional) or
14474
- * from raw bytes with [`EthAddress::from_bytes`]. The canonical lowercase, `0x`-prefixed hex form
14475
- * is available via [`EthAddress::to_hex`] (also exposed as `toString`).
14476
- */
14477
- class EthAddress {
14478
- static __wrap(ptr) {
14479
- ptr = ptr >>> 0;
14480
- const obj = Object.create(EthAddress.prototype);
14481
- obj.__wbg_ptr = ptr;
14482
- EthAddressFinalization.register(obj, obj.__wbg_ptr, obj);
14483
- return obj;
14484
- }
14485
- __destroy_into_raw() {
14486
- const ptr = this.__wbg_ptr;
14487
- this.__wbg_ptr = 0;
14488
- EthAddressFinalization.unregister(this);
14489
- return ptr;
14490
- }
14491
- free() {
14492
- const ptr = this.__destroy_into_raw();
14493
- wasm.__wbg_ethaddress_free(ptr, 0);
14494
- }
14495
- /**
14496
- * Builds an Ethereum address from its raw 20-byte big-endian representation.
14497
- *
14498
- * Returns an error if the input is not exactly 20 bytes long.
14499
- * @param {Uint8Array} bytes
14500
- * @returns {EthAddress}
14501
- */
14502
- static fromBytes(bytes) {
14503
- const ret = wasm.ethaddress_fromBytes(bytes);
14504
- if (ret[2]) {
14505
- throw takeFromExternrefTable0(ret[1]);
14506
- }
14507
- return EthAddress.__wrap(ret[0]);
14508
- }
14509
- /**
14510
- * Builds an Ethereum address from a hex string (with or without the `0x` prefix).
14511
- *
14512
- * Returns an error if the string is not valid hex or does not encode exactly 20 bytes.
14513
- * @param {string} hex
14514
- * @returns {EthAddress}
14515
- */
14516
- static fromHex(hex) {
14517
- const ptr0 = passStringToWasm0(hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
14518
- const len0 = WASM_VECTOR_LEN;
14519
- const ret = wasm.ethaddress_fromHex(ptr0, len0);
14520
- if (ret[2]) {
14521
- throw takeFromExternrefTable0(ret[1]);
14522
- }
14523
- return EthAddress.__wrap(ret[0]);
14524
- }
14525
- /**
14526
- * Returns the raw 20-byte big-endian representation of the address.
14527
- * @returns {Uint8Array}
14528
- */
14529
- toBytes() {
14530
- const ret = wasm.ethaddress_toBytes(this.__wbg_ptr);
14531
- return ret;
14532
- }
14533
- /**
14534
- * Returns the canonical lowercase, `0x`-prefixed hex representation of the address.
14535
- * @returns {string}
14536
- */
14537
- toHex() {
14538
- let deferred1_0;
14539
- let deferred1_1;
14540
- try {
14541
- const ret = wasm.ethaddress_toHex(this.__wbg_ptr);
14542
- deferred1_0 = ret[0];
14543
- deferred1_1 = ret[1];
14544
- return getStringFromWasm0(ret[0], ret[1]);
14545
- } finally {
14546
- wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
14547
- }
14548
- }
14549
- /**
14550
- * Returns the canonical lowercase, `0x`-prefixed hex representation of the address.
14551
- * @returns {string}
14552
- */
14553
- toString() {
14554
- let deferred1_0;
14555
- let deferred1_1;
14556
- try {
14557
- const ret = wasm.ethaddress_toString(this.__wbg_ptr);
14558
- deferred1_0 = ret[0];
14559
- deferred1_1 = ret[1];
14560
- return getStringFromWasm0(ret[0], ret[1]);
14561
- } finally {
14562
- wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
14563
- }
14564
- }
14565
- }
14566
- if (Symbol.dispose) EthAddress.prototype[Symbol.dispose] = EthAddress.prototype.free;
14567
-
14568
14485
  /**
14569
14486
  * Describes the result of executing a transaction program for the Miden protocol.
14570
14487
  *
14571
14488
  * Executed transaction serves two primary purposes:
14572
14489
  * - It contains a complete description of the effects of the transaction. Specifically, it
14573
- * contains all output notes created as the result of the transaction and describes all the
14574
- * changes made to the involved account (i.e., the account delta).
14490
+ * contains all output notes created as the result of the transaction and the absolute-valued
14491
+ * account patch produced by execution.
14575
14492
  * - It contains all the information required to re-execute and prove the transaction in a
14576
14493
  * stateless manner. This includes all public transaction inputs, but also all nondeterministic
14577
14494
  * inputs that the host provided to Miden VM while executing the transaction (i.e., advice
@@ -14595,14 +14512,6 @@ class ExecutedTransaction {
14595
14512
  const ptr = this.__destroy_into_raw();
14596
14513
  wasm.__wbg_executedtransaction_free(ptr, 0);
14597
14514
  }
14598
- /**
14599
- * Returns the account delta resulting from execution.
14600
- * @returns {AccountDelta}
14601
- */
14602
- accountDelta() {
14603
- const ret = wasm.executedtransaction_accountDelta(this.__wbg_ptr);
14604
- return AccountDelta.__wrap(ret);
14605
- }
14606
14515
  /**
14607
14516
  * Returns the account the transaction was executed against.
14608
14517
  * @returns {AccountId}
@@ -14611,6 +14520,14 @@ class ExecutedTransaction {
14611
14520
  const ret = wasm.executedtransaction_accountId(this.__wbg_ptr);
14612
14521
  return AccountId.__wrap(ret);
14613
14522
  }
14523
+ /**
14524
+ * Returns the absolute account patch resulting from execution.
14525
+ * @returns {AccountPatch}
14526
+ */
14527
+ accountPatch() {
14528
+ const ret = wasm.executedtransaction_accountPatch(this.__wbg_ptr);
14529
+ return AccountPatch.__wrap(ret);
14530
+ }
14614
14531
  /**
14615
14532
  * Returns the block header that included the transaction.
14616
14533
  * @returns {BlockHeader}
@@ -14883,7 +14800,7 @@ class FetchedAccount {
14883
14800
  * @returns {number}
14884
14801
  */
14885
14802
  lastBlockNum() {
14886
- const ret = wasm.accountproof_blockNum(this.__wbg_ptr);
14803
+ const ret = wasm.fetchedaccount_lastBlockNum(this.__wbg_ptr);
14887
14804
  return ret >>> 0;
14888
14805
  }
14889
14806
  }
@@ -15234,14 +15151,6 @@ class FungibleAsset {
15234
15151
  const ret = wasm.fungibleasset_amount(this.__wbg_ptr);
15235
15152
  return BigInt.asUintN(64, ret);
15236
15153
  }
15237
- /**
15238
- * Returns whether this asset invokes its faucet's callbacks.
15239
- * @returns {AssetCallbackFlag}
15240
- */
15241
- callbacks() {
15242
- const ret = wasm.fungibleasset_callbacks(this.__wbg_ptr);
15243
- return ret;
15244
- }
15245
15154
  /**
15246
15155
  * Returns the faucet account that minted this asset.
15247
15156
  * @returns {AccountId}
@@ -15273,20 +15182,6 @@ class FungibleAsset {
15273
15182
  FungibleAssetFinalization.register(this, this.__wbg_ptr, this);
15274
15183
  return this;
15275
15184
  }
15276
- /**
15277
- * Returns a copy of this asset carrying the given callback flag.
15278
- *
15279
- * The flag is part of the asset's vault key, so it must match the flag the issuing faucet
15280
- * applies — an asset built with the wrong flag addresses a different vault slot than the one
15281
- * holding the balance. The constructor always produces `Disabled`; pass `Enabled` only for
15282
- * assets from a faucet that registers transfer policies.
15283
- * @param {AssetCallbackFlag} callbacks
15284
- * @returns {FungibleAsset}
15285
- */
15286
- withCallbacks(callbacks) {
15287
- const ret = wasm.fungibleasset_withCallbacks(this.__wbg_ptr, callbacks);
15288
- return FungibleAsset.__wrap(ret);
15289
- }
15290
15185
  }
15291
15186
  if (Symbol.dispose) FungibleAsset.prototype[Symbol.dispose] = FungibleAsset.prototype.free;
15292
15187
 
@@ -15351,7 +15246,7 @@ class FungibleAssetDelta {
15351
15246
  * @returns {boolean}
15352
15247
  */
15353
15248
  isEmpty() {
15354
- const ret = wasm.accountstoragedelta_isEmpty(this.__wbg_ptr);
15249
+ const ret = wasm.accountstoragepatch_isEmpty(this.__wbg_ptr);
15355
15250
  return ret !== 0;
15356
15251
  }
15357
15252
  /**
@@ -15359,7 +15254,7 @@ class FungibleAssetDelta {
15359
15254
  * @returns {number}
15360
15255
  */
15361
15256
  numAssets() {
15362
- const ret = wasm.fungibleassetdelta_numAssets(this.__wbg_ptr);
15257
+ const ret = wasm.accountvaultpatch_numAssets(this.__wbg_ptr);
15363
15258
  return ret >>> 0;
15364
15259
  }
15365
15260
  /**
@@ -15662,16 +15557,6 @@ class InputNoteRecord {
15662
15557
  const ret = wasm.inputnoterecord_isConsumed(this.__wbg_ptr);
15663
15558
  return ret !== 0;
15664
15559
  }
15665
- /**
15666
- * Returns true while the note's on-chain inclusion is still unsettled
15667
- * (`Expected` or `Unverified`), i.e. while sync is the mechanism that can
15668
- * advance this record.
15669
- * @returns {boolean}
15670
- */
15671
- isInclusionPending() {
15672
- const ret = wasm.inputnoterecord_isInclusionPending(this.__wbg_ptr);
15673
- return ret !== 0;
15674
- }
15675
15560
  /**
15676
15561
  * Returns true if the note is currently being processed.
15677
15562
  * @returns {boolean}
@@ -16402,13 +16287,12 @@ class JsStateSyncUpdate {
16402
16287
  return v1;
16403
16288
  }
16404
16289
  /**
16405
- * Serialized MMR peaks at the new sync height (single set for the whole update).
16406
- * Written onto the chain-tip block's `blockHeaders` row (the one whose
16407
- * `blockNum` matches `block_num`) and read back by `getCurrentBlockchainPeaks`.
16290
+ * Serialized MMR peaks at the new sync height. The only peaks persisted by the
16291
+ * client (peaks for intermediate note blocks are never read, so they are not stored).
16408
16292
  * @returns {Uint8Array}
16409
16293
  */
16410
- get partialBlockchainPeaks() {
16411
- const ret = wasm.__wbg_get_jsstatesyncupdate_partialBlockchainPeaks(this.__wbg_ptr);
16294
+ get newPeaks() {
16295
+ const ret = wasm.__wbg_get_jsstatesyncupdate_newPeaks(this.__wbg_ptr);
16412
16296
  var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
16413
16297
  wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
16414
16298
  return v1;
@@ -16521,15 +16405,14 @@ class JsStateSyncUpdate {
16521
16405
  wasm.__wbg_set_jsstatesyncupdate_newBlockNums(this.__wbg_ptr, ptr0, len0);
16522
16406
  }
16523
16407
  /**
16524
- * Serialized MMR peaks at the new sync height (single set for the whole update).
16525
- * Written onto the chain-tip block's `blockHeaders` row (the one whose
16526
- * `blockNum` matches `block_num`) and read back by `getCurrentBlockchainPeaks`.
16408
+ * Serialized MMR peaks at the new sync height. The only peaks persisted by the
16409
+ * client (peaks for intermediate note blocks are never read, so they are not stored).
16527
16410
  * @param {Uint8Array} arg0
16528
16411
  */
16529
- set partialBlockchainPeaks(arg0) {
16412
+ set newPeaks(arg0) {
16530
16413
  const ptr0 = passArray8ToWasm0(arg0, wasm.__wbindgen_malloc);
16531
16414
  const len0 = WASM_VECTOR_LEN;
16532
- wasm.__wbg_set_jsstatesyncupdate_partialBlockchainPeaks(this.__wbg_ptr, ptr0, len0);
16415
+ wasm.__wbg_set_jsstatesyncupdate_newPeaks(this.__wbg_ptr, ptr0, len0);
16533
16416
  }
16534
16417
  /**
16535
16418
  * Input notes for this state update in serialized form.
@@ -16717,6 +16600,17 @@ class JsStorageSlot {
16717
16600
  const ptr = this.__destroy_into_raw();
16718
16601
  wasm.__wbg_jsstorageslot_free(ptr, 0);
16719
16602
  }
16603
+ /**
16604
+ * The storage patch operation (create, update, or remove).
16605
+ *
16606
+ * Full-state writes do not inspect this field, but incremental writes use it to distinguish
16607
+ * map replacement/removal from an entry-wise update.
16608
+ * @returns {number}
16609
+ */
16610
+ get patchOperation() {
16611
+ const ret = wasm.__wbg_get_jsstorageslot_patchOperation(this.__wbg_ptr);
16612
+ return ret;
16613
+ }
16720
16614
  /**
16721
16615
  * The name of the storage slot.
16722
16616
  * @returns {string}
@@ -16757,6 +16651,16 @@ class JsStorageSlot {
16757
16651
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
16758
16652
  }
16759
16653
  }
16654
+ /**
16655
+ * The storage patch operation (create, update, or remove).
16656
+ *
16657
+ * Full-state writes do not inspect this field, but incremental writes use it to distinguish
16658
+ * map replacement/removal from an entry-wise update.
16659
+ * @param {number} arg0
16660
+ */
16661
+ set patchOperation(arg0) {
16662
+ wasm.__wbg_set_jsstorageslot_patchOperation(this.__wbg_ptr, arg0);
16663
+ }
16760
16664
  /**
16761
16665
  * The name of the storage slot.
16762
16666
  * @param {string} arg0
@@ -16958,97 +16862,6 @@ class MerklePath {
16958
16862
  }
16959
16863
  if (Symbol.dispose) MerklePath.prototype[Symbol.dispose] = MerklePath.prototype.free;
16960
16864
 
16961
- /**
16962
- * Targets a note at a public network account so the operator auto-consumes it.
16963
- *
16964
- * A note is a network note when it is `Public` and carries a valid
16965
- * `NetworkAccountTarget` attachment (see `Note.isNetworkNote`).
16966
- */
16967
- class NetworkAccountTarget {
16968
- static __wrap(ptr) {
16969
- ptr = ptr >>> 0;
16970
- const obj = Object.create(NetworkAccountTarget.prototype);
16971
- obj.__wbg_ptr = ptr;
16972
- NetworkAccountTargetFinalization.register(obj, obj.__wbg_ptr, obj);
16973
- return obj;
16974
- }
16975
- __destroy_into_raw() {
16976
- const ptr = this.__wbg_ptr;
16977
- this.__wbg_ptr = 0;
16978
- NetworkAccountTargetFinalization.unregister(this);
16979
- return ptr;
16980
- }
16981
- free() {
16982
- const ptr = this.__destroy_into_raw();
16983
- wasm.__wbg_networkaccounttarget_free(ptr, 0);
16984
- }
16985
- /**
16986
- * Returns the note execution hint.
16987
- * @returns {NoteExecutionHint}
16988
- */
16989
- executionHint() {
16990
- const ret = wasm.networkaccounttarget_executionHint(this.__wbg_ptr);
16991
- return NoteExecutionHint.__wrap(ret);
16992
- }
16993
- /**
16994
- * Decodes a `NoteAttachment` back into a `NetworkAccountTarget`.
16995
- *
16996
- * # Errors
16997
- * Errors if the attachment is not a valid network-account-target attachment.
16998
- * @param {NoteAttachment} attachment
16999
- * @returns {NetworkAccountTarget}
17000
- */
17001
- static fromAttachment(attachment) {
17002
- _assertClass(attachment, NoteAttachment);
17003
- const ret = wasm.networkaccounttarget_fromAttachment(attachment.__wbg_ptr);
17004
- if (ret[2]) {
17005
- throw takeFromExternrefTable0(ret[1]);
17006
- }
17007
- return NetworkAccountTarget.__wrap(ret[0]);
17008
- }
17009
- /**
17010
- * Creates a target for the given network account. `executionHint` defaults
17011
- * to `NoteExecutionHint.always()`.
17012
- *
17013
- * # Errors
17014
- * Errors if `account_id` is not a public account.
17015
- * @param {AccountId} account_id
17016
- * @param {NoteExecutionHint | null} [execution_hint]
17017
- */
17018
- constructor(account_id, execution_hint) {
17019
- _assertClass(account_id, AccountId);
17020
- let ptr0 = 0;
17021
- if (!isLikeNone(execution_hint)) {
17022
- _assertClass(execution_hint, NoteExecutionHint);
17023
- ptr0 = execution_hint.__destroy_into_raw();
17024
- }
17025
- const ret = wasm.networkaccounttarget_new(account_id.__wbg_ptr, ptr0);
17026
- if (ret[2]) {
17027
- throw takeFromExternrefTable0(ret[1]);
17028
- }
17029
- this.__wbg_ptr = ret[0] >>> 0;
17030
- NetworkAccountTargetFinalization.register(this, this.__wbg_ptr, this);
17031
- return this;
17032
- }
17033
- /**
17034
- * Returns the targeted network account id.
17035
- * @returns {AccountId}
17036
- */
17037
- targetId() {
17038
- const ret = wasm.accountreader_accountId(this.__wbg_ptr);
17039
- return AccountId.__wrap(ret);
17040
- }
17041
- /**
17042
- * Encodes this target as a `NoteAttachment`.
17043
- * @returns {NoteAttachment}
17044
- */
17045
- toAttachment() {
17046
- const ret = wasm.networkaccounttarget_toAttachment(this.__wbg_ptr);
17047
- return NoteAttachment.__wrap(ret);
17048
- }
17049
- }
17050
- if (Symbol.dispose) NetworkAccountTarget.prototype[Symbol.dispose] = NetworkAccountTarget.prototype.free;
17051
-
17052
16865
  /**
17053
16866
  * The identifier of a Miden network.
17054
16867
  */
@@ -17242,16 +17055,6 @@ class Note {
17242
17055
  const ret = wasm.note_assets(this.__wbg_ptr);
17243
17056
  return NoteAssets.__wrap(ret);
17244
17057
  }
17245
- /**
17246
- * Returns the note's attachments.
17247
- * @returns {NoteAttachment[]}
17248
- */
17249
- attachments() {
17250
- const ret = wasm.note_attachments(this.__wbg_ptr);
17251
- var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
17252
- wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
17253
- return v1;
17254
- }
17255
17058
  /**
17256
17059
  * Returns the commitment to the note (its ID).
17257
17060
  *
@@ -17261,35 +17064,9 @@ class Note {
17261
17064
  * unchanged.
17262
17065
  * @returns {Word}
17263
17066
  */
17264
- commitment() {
17265
- const ret = wasm.note_commitment(this.__wbg_ptr);
17266
- return Word.__wrap(ret);
17267
- }
17268
- /**
17269
- * Builds a B2AGG (Bridge-to-AggLayer) note that bridges the given assets out to another
17270
- * network via the `AggLayer`.
17271
- *
17272
- * The note is always public and is consumed by `bridge_account`, which burns the assets so
17273
- * they can be claimed on the destination network at `destination_address` (an Ethereum
17274
- * address on the AggLayer-assigned `destination_network`). The assets must be fungible assets
17275
- * issued by a network faucet.
17276
- * @param {AccountId} sender
17277
- * @param {AccountId} bridge_account
17278
- * @param {NoteAssets} assets
17279
- * @param {number} destination_network
17280
- * @param {EthAddress} destination_address
17281
- * @returns {Note}
17282
- */
17283
- static createB2AggNote(sender, bridge_account, assets, destination_network, destination_address) {
17284
- _assertClass(sender, AccountId);
17285
- _assertClass(bridge_account, AccountId);
17286
- _assertClass(assets, NoteAssets);
17287
- _assertClass(destination_address, EthAddress);
17288
- const ret = wasm.note_createB2AggNote(sender.__wbg_ptr, bridge_account.__wbg_ptr, assets.__wbg_ptr, destination_network, destination_address.__wbg_ptr);
17289
- if (ret[2]) {
17290
- throw takeFromExternrefTable0(ret[1]);
17291
- }
17292
- return Note.__wrap(ret[0]);
17067
+ commitment() {
17068
+ const ret = wasm.note_commitment(this.__wbg_ptr);
17069
+ return Word.__wrap(ret);
17293
17070
  }
17294
17071
  /**
17295
17072
  * Builds a P2IDE note that can be reclaimed or timelocked based on block heights.
@@ -17353,15 +17130,6 @@ class Note {
17353
17130
  const ret = wasm.note_commitment(this.__wbg_ptr);
17354
17131
  return NoteId.__wrap(ret);
17355
17132
  }
17356
- /**
17357
- * Returns true if the note is a network note (public + a valid
17358
- * `NetworkAccountTarget` attachment).
17359
- * @returns {boolean}
17360
- */
17361
- isNetworkNote() {
17362
- const ret = wasm.note_isNetworkNote(this.__wbg_ptr);
17363
- return ret !== 0;
17364
- }
17365
17133
  /**
17366
17134
  * Returns the public metadata associated with the note.
17367
17135
  * @returns {NoteMetadata}
@@ -17421,30 +17189,6 @@ class Note {
17421
17189
  const ret = wasm.note_serialize(this.__wbg_ptr);
17422
17190
  return ret;
17423
17191
  }
17424
- /**
17425
- * Creates a note carrying the provided attachments, using the metadata's
17426
- * sender / note type / tag (attachments on the metadata itself are ignored).
17427
- *
17428
- * # Errors
17429
- * Errors if the attachment set is invalid (too many attachments or words).
17430
- * @param {NoteAssets} note_assets
17431
- * @param {NoteMetadata} note_metadata
17432
- * @param {NoteRecipient} note_recipient
17433
- * @param {NoteAttachment[]} attachments
17434
- * @returns {Note}
17435
- */
17436
- static withAttachments(note_assets, note_metadata, note_recipient, attachments) {
17437
- _assertClass(note_assets, NoteAssets);
17438
- _assertClass(note_metadata, NoteMetadata);
17439
- _assertClass(note_recipient, NoteRecipient);
17440
- const ptr0 = passArrayJsValueToWasm0(attachments, wasm.__wbindgen_malloc);
17441
- const len0 = WASM_VECTOR_LEN;
17442
- const ret = wasm.note_withAttachments(note_assets.__wbg_ptr, note_metadata.__wbg_ptr, note_recipient.__wbg_ptr, ptr0, len0);
17443
- if (ret[2]) {
17444
- throw takeFromExternrefTable0(ret[1]);
17445
- }
17446
- return Note.__wrap(ret[0]);
17447
- }
17448
17192
  }
17449
17193
  if (Symbol.dispose) Note.prototype[Symbol.dispose] = Note.prototype.free;
17450
17194
 
@@ -17712,12 +17456,6 @@ class NoteAttachment {
17712
17456
  NoteAttachmentFinalization.register(obj, obj.__wbg_ptr, obj);
17713
17457
  return obj;
17714
17458
  }
17715
- static __unwrap(jsValue) {
17716
- if (!(jsValue instanceof NoteAttachment)) {
17717
- return 0;
17718
- }
17719
- return jsValue.__destroy_into_raw();
17720
- }
17721
17459
  __destroy_into_raw() {
17722
17460
  const ptr = this.__wbg_ptr;
17723
17461
  this.__wbg_ptr = 0;
@@ -18341,6 +18079,19 @@ class NoteFile {
18341
18079
  }
18342
18080
  return NoteFile.__wrap(ret[0]);
18343
18081
  }
18082
+ /**
18083
+ * Creates an expected-note file with the sync hint required by miden-client 0.16.
18084
+ * @param {NoteDetails} note_details
18085
+ * @param {NoteTag} note_tag
18086
+ * @param {number} after_block_num
18087
+ * @returns {NoteFile}
18088
+ */
18089
+ static fromExpectedNote(note_details, note_tag, after_block_num) {
18090
+ _assertClass(note_details, NoteDetails);
18091
+ _assertClass(note_tag, NoteTag);
18092
+ const ret = wasm.notefile_fromExpectedNote(note_details.__wbg_ptr, note_tag.__wbg_ptr, after_block_num);
18093
+ return NoteFile.__wrap(ret);
18094
+ }
18344
18095
  /**
18345
18096
  * Creates a `NoteFile` from an input note, preserving proof when available.
18346
18097
  * @param {InputNote} note
@@ -18352,7 +18103,11 @@ class NoteFile {
18352
18103
  return NoteFile.__wrap(ret);
18353
18104
  }
18354
18105
  /**
18355
- * Creates a `NoteFile` from note details.
18106
+ * Creates a `NoteFile` from note details using a zero-valued sync hint.
18107
+ *
18108
+ * miden-client 0.16 requires every expected note to include a tag and an after-block hint.
18109
+ * This retains the old one-argument JS API by using block zero and the default tag. Prefer
18110
+ * [`from_expected_note`](Self::from_expected_note) when the real sync hint is available.
18356
18111
  * @param {NoteDetails} note_details
18357
18112
  * @returns {NoteFile}
18358
18113
  */
@@ -18948,19 +18703,6 @@ class NoteRecipient {
18948
18703
  const ret = wasm.accountheader_storageCommitment(this.__wbg_ptr);
18949
18704
  return Word.__wrap(ret);
18950
18705
  }
18951
- /**
18952
- * Creates a recipient from a script and storage, generating a fresh random
18953
- * serial number (the secret that prevents double-spends).
18954
- * @param {NoteScript} note_script
18955
- * @param {NoteStorage} storage
18956
- * @returns {NoteRecipient}
18957
- */
18958
- static fromScript(note_script, storage) {
18959
- _assertClass(note_script, NoteScript);
18960
- _assertClass(storage, NoteStorage);
18961
- const ret = wasm.noterecipient_fromScript(note_script.__wbg_ptr, storage.__wbg_ptr);
18962
- return NoteRecipient.__wrap(ret);
18963
- }
18964
18706
  /**
18965
18707
  * Creates a note recipient from its serial number, script, and storage.
18966
18708
  * @param {Word} serial_num
@@ -19648,7 +19390,7 @@ class OutputNoteRecord {
19648
19390
  * @returns {number}
19649
19391
  */
19650
19392
  expectedHeight() {
19651
- const ret = wasm.outputnoterecord_expectedHeight(this.__wbg_ptr);
19393
+ const ret = wasm.blockheader_version(this.__wbg_ptr);
19652
19394
  return ret >>> 0;
19653
19395
  }
19654
19396
  /**
@@ -19683,22 +19425,12 @@ class OutputNoteRecord {
19683
19425
  const ret = wasm.outputnoterecord_isConsumed(this.__wbg_ptr);
19684
19426
  return ret !== 0;
19685
19427
  }
19686
- /**
19687
- * Returns true while the note's on-chain inclusion is still unsettled
19688
- * (`ExpectedFull` or `ExpectedPartial`), i.e. while sync is the mechanism
19689
- * that can advance this record.
19690
- * @returns {boolean}
19691
- */
19692
- isInclusionPending() {
19693
- const ret = wasm.outputnoterecord_isInclusionPending(this.__wbg_ptr);
19694
- return ret !== 0;
19695
- }
19696
19428
  /**
19697
19429
  * Returns the note metadata.
19698
19430
  * @returns {NoteMetadata}
19699
19431
  */
19700
19432
  metadata() {
19701
- const ret = wasm.committednote_metadata(this.__wbg_ptr);
19433
+ const ret = wasm.outputnoterecord_metadata(this.__wbg_ptr);
19702
19434
  return NoteMetadata.__wrap(ret);
19703
19435
  }
19704
19436
  /**
@@ -20071,7 +19803,7 @@ class ProvenTransaction {
20071
19803
  * @returns {AccountId}
20072
19804
  */
20073
19805
  accountId() {
20074
- const ret = wasm.account_id(this.__wbg_ptr);
19806
+ const ret = wasm.proventransaction_accountId(this.__wbg_ptr);
20075
19807
  return AccountId.__wrap(ret);
20076
19808
  }
20077
19809
  /**
@@ -20099,7 +19831,7 @@ class ProvenTransaction {
20099
19831
  * @returns {TransactionId}
20100
19832
  */
20101
19833
  id() {
20102
- const ret = wasm.accountcode_commitment(this.__wbg_ptr);
19834
+ const ret = wasm.proventransaction_id(this.__wbg_ptr);
20103
19835
  return TransactionId.__wrap(ret);
20104
19836
  }
20105
19837
  /**
@@ -20117,7 +19849,7 @@ class ProvenTransaction {
20117
19849
  * @returns {Word}
20118
19850
  */
20119
19851
  refBlockCommitment() {
20120
- const ret = wasm.accountheader_storageCommitment(this.__wbg_ptr);
19852
+ const ret = wasm.proventransaction_refBlockCommitment(this.__wbg_ptr);
20121
19853
  return Word.__wrap(ret);
20122
19854
  }
20123
19855
  /**
@@ -20139,119 +19871,6 @@ class ProvenTransaction {
20139
19871
  }
20140
19872
  if (Symbol.dispose) ProvenTransaction.prototype[Symbol.dispose] = ProvenTransaction.prototype.free;
20141
19873
 
20142
- /**
20143
- * Read-only view of one PSWAP order's chain state, exposed to JavaScript.
20144
- * The mutable fields (remaining amounts, depth, tip, state) advance
20145
- * round-by-round as fills are discovered during sync.
20146
- */
20147
- class PswapLineageRecord {
20148
- static __wrap(ptr) {
20149
- ptr = ptr >>> 0;
20150
- const obj = Object.create(PswapLineageRecord.prototype);
20151
- obj.__wbg_ptr = ptr;
20152
- PswapLineageRecordFinalization.register(obj, obj.__wbg_ptr, obj);
20153
- return obj;
20154
- }
20155
- __destroy_into_raw() {
20156
- const ptr = this.__wbg_ptr;
20157
- this.__wbg_ptr = 0;
20158
- PswapLineageRecordFinalization.unregister(this);
20159
- return ptr;
20160
- }
20161
- free() {
20162
- const ptr = this.__destroy_into_raw();
20163
- wasm.__wbg_pswaplineagerecord_free(ptr, 0);
20164
- }
20165
- /**
20166
- * Account that created the order and receives every payback.
20167
- * @returns {AccountId}
20168
- */
20169
- creatorAccountId() {
20170
- const ret = wasm.pswaplineagerecord_creatorAccountId(this.__wbg_ptr);
20171
- return AccountId.__wrap(ret);
20172
- }
20173
- /**
20174
- * Depth of the current tip: 0 for the original PSWAP, +1 per fill round.
20175
- * @returns {number}
20176
- */
20177
- currentDepth() {
20178
- const ret = wasm.pswaplineagerecord_currentDepth(this.__wbg_ptr);
20179
- return ret >>> 0;
20180
- }
20181
- /**
20182
- * Note id of the current tip in the chain.
20183
- * @returns {NoteId}
20184
- */
20185
- currentTipNoteId() {
20186
- const ret = wasm.pswaplineagerecord_currentTipNoteId(this.__wbg_ptr);
20187
- return NoteId.__wrap(ret);
20188
- }
20189
- /**
20190
- * Stable identifier shared by every note in the chain, as a decimal string.
20191
- * @returns {string}
20192
- */
20193
- orderId() {
20194
- let deferred1_0;
20195
- let deferred1_1;
20196
- try {
20197
- const ret = wasm.pswaplineagerecord_orderId(this.__wbg_ptr);
20198
- deferred1_0 = ret[0];
20199
- deferred1_1 = ret[1];
20200
- return getStringFromWasm0(ret[0], ret[1]);
20201
- } finally {
20202
- wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
20203
- }
20204
- }
20205
- /**
20206
- * Offered amount still unfilled on the current tip. The offered faucet is
20207
- * chain-invariant and recovered from the original PSWAP note when needed.
20208
- * @returns {bigint}
20209
- */
20210
- remainingOffered() {
20211
- const ret = wasm.pswaplineagerecord_remainingOffered(this.__wbg_ptr);
20212
- return BigInt.asUintN(64, ret);
20213
- }
20214
- /**
20215
- * Requested amount still outstanding on the current tip. The requested
20216
- * faucet is recovered from the original PSWAP note when needed.
20217
- * @returns {bigint}
20218
- */
20219
- remainingRequested() {
20220
- const ret = wasm.pswaplineagerecord_remainingRequested(this.__wbg_ptr);
20221
- return BigInt.asUintN(64, ret);
20222
- }
20223
- /**
20224
- * Lifecycle state of the order.
20225
- * @returns {PswapLineageState}
20226
- */
20227
- state() {
20228
- const ret = wasm.pswaplineagerecord_state(this.__wbg_ptr);
20229
- return ret;
20230
- }
20231
- }
20232
- if (Symbol.dispose) PswapLineageRecord.prototype[Symbol.dispose] = PswapLineageRecord.prototype.free;
20233
-
20234
- /**
20235
- * Lifecycle state of a PSWAP order.
20236
- *
20237
- * Discriminants match the on-disk encoding in the store.
20238
- * @enum {0 | 1 | 2}
20239
- */
20240
- const PswapLineageState = Object.freeze({
20241
- /**
20242
- * Still fillable and reclaimable.
20243
- */
20244
- Active: 0, "0": "Active",
20245
- /**
20246
- * Fully filled. Terminal.
20247
- */
20248
- FullyFilled: 1, "1": "FullyFilled",
20249
- /**
20250
- * Reclaimed by the creator. Terminal.
20251
- */
20252
- Reclaimed: 2, "2": "Reclaimed",
20253
- });
20254
-
20255
19874
  class PublicKey {
20256
19875
  static __wrap(ptr) {
20257
19876
  ptr = ptr >>> 0;
@@ -20998,7 +20617,7 @@ class SerializedOutputNoteData {
20998
20617
  set attachments(arg0) {
20999
20618
  const ptr0 = passArray8ToWasm0(arg0, wasm.__wbindgen_malloc);
21000
20619
  const len0 = WASM_VECTOR_LEN;
21001
- wasm.__wbg_set_jsstatesyncupdate_partialBlockchainPeaks(this.__wbg_ptr, ptr0, len0);
20620
+ wasm.__wbg_set_jsstatesyncupdate_newPeaks(this.__wbg_ptr, ptr0, len0);
21002
20621
  }
21003
20622
  /**
21004
20623
  * @param {string} arg0
@@ -21743,7 +21362,7 @@ if (Symbol.dispose) StorageMapEntryJs.prototype[Symbol.dispose] = StorageMapEntr
21743
21362
  * Information about storage map updates for an account, as returned by the
21744
21363
  * `syncStorageMaps` RPC endpoint.
21745
21364
  *
21746
- * Contains the list of storage map updates within the requested block range,
21365
+ * Contains the storage map entries merged over the requested block range,
21747
21366
  * along with the chain tip and last processed block number.
21748
21367
  */
21749
21368
  class StorageMapInfo {
@@ -21794,8 +21413,8 @@ class StorageMapInfo {
21794
21413
  if (Symbol.dispose) StorageMapInfo.prototype[Symbol.dispose] = StorageMapInfo.prototype.free;
21795
21414
 
21796
21415
  /**
21797
- * A single storage map update entry, containing the block number, slot name,
21798
- * key, and new value.
21416
+ * A merged storage map entry containing the last processed block number, slot name, key, and
21417
+ * final value. The node no longer exposes the individual block number for each update.
21799
21418
  */
21800
21419
  class StorageMapUpdate {
21801
21420
  static __wrap(ptr) {
@@ -21816,7 +21435,7 @@ class StorageMapUpdate {
21816
21435
  wasm.__wbg_storagemapupdate_free(ptr, 0);
21817
21436
  }
21818
21437
  /**
21819
- * Returns the block number in which this update occurred.
21438
+ * Returns the last processed block number for the merged response.
21820
21439
  * @returns {number}
21821
21440
  */
21822
21441
  blockNum() {
@@ -22559,7 +22178,7 @@ class TransactionRecord {
22559
22178
  * @returns {AccountId}
22560
22179
  */
22561
22180
  accountId() {
22562
- const ret = wasm.transactionrecord_accountId(this.__wbg_ptr);
22181
+ const ret = wasm.proventransaction_accountId(this.__wbg_ptr);
22563
22182
  return AccountId.__wrap(ret);
22564
22183
  }
22565
22184
  /**
@@ -22607,7 +22226,7 @@ class TransactionRecord {
22607
22226
  * @returns {Word}
22608
22227
  */
22609
22228
  initAccountState() {
22610
- const ret = wasm.pswaplineagerecord_currentTipNoteId(this.__wbg_ptr);
22229
+ const ret = wasm.transactionrecord_initAccountState(this.__wbg_ptr);
22611
22230
  return Word.__wrap(ret);
22612
22231
  }
22613
22232
  /**
@@ -22672,14 +22291,6 @@ class TransactionRequest {
22672
22291
  const ptr = this.__destroy_into_raw();
22673
22292
  wasm.__wbg_transactionrequest_free(ptr, 0);
22674
22293
  }
22675
- /**
22676
- * Returns a copy of the advice map carried by this request.
22677
- * @returns {AdviceMap}
22678
- */
22679
- adviceMap() {
22680
- const ret = wasm.transactionrequest_adviceMap(this.__wbg_ptr);
22681
- return AdviceMap.__wrap(ret);
22682
- }
22683
22294
  /**
22684
22295
  * Returns the authentication argument if present.
22685
22296
  * @returns {Word | undefined}
@@ -22726,20 +22337,6 @@ class TransactionRequest {
22726
22337
  wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
22727
22338
  return v1;
22728
22339
  }
22729
- /**
22730
- * Returns a copy of this request with `advice_map` merged into its advice map.
22731
- *
22732
- * Entries are merged with last-write-wins semantics: a key already present in the request is
22733
- * overwritten by the value from `advice_map`. Use this to inject advice (e.g. a signature
22734
- * produced by an external signer) after the request has already been built.
22735
- * @param {AdviceMap} advice_map
22736
- * @returns {TransactionRequest}
22737
- */
22738
- extendAdviceMap(advice_map) {
22739
- _assertClass(advice_map, AdviceMap);
22740
- const ret = wasm.transactionrequest_extendAdviceMap(this.__wbg_ptr, advice_map.__wbg_ptr);
22741
- return TransactionRequest.__wrap(ret);
22742
- }
22743
22340
  /**
22744
22341
  * Returns the transaction script argument if present.
22745
22342
  * @returns {Word | undefined}
@@ -23285,12 +22882,12 @@ class TransactionStoreUpdate {
23285
22882
  wasm.__wbg_transactionstoreupdate_free(ptr, 0);
23286
22883
  }
23287
22884
  /**
23288
- * Returns the account delta applied by the transaction.
23289
- * @returns {AccountDelta}
22885
+ * Returns the absolute account patch applied by the transaction.
22886
+ * @returns {AccountPatch}
23290
22887
  */
23291
- accountDelta() {
23292
- const ret = wasm.transactionstoreupdate_accountDelta(this.__wbg_ptr);
23293
- return AccountDelta.__wrap(ret);
22888
+ accountPatch() {
22889
+ const ret = wasm.transactionstoreupdate_accountPatch(this.__wbg_ptr);
22890
+ return AccountPatch.__wrap(ret);
23294
22891
  }
23295
22892
  /**
23296
22893
  * Returns the output notes created by the transaction.
@@ -23501,10 +23098,6 @@ class WebClient {
23501
23098
  return ret;
23502
23099
  }
23503
23100
  /**
23504
- * Persists a submitted transaction and returns its pre-apply
23505
- * [`TransactionStoreUpdate`]. Routes through the high-level
23506
- * `Client::apply_transaction` so registered observers (e.g. PSWAP
23507
- * tracking) fire.
23508
23101
  * @param {TransactionResult} transaction_result
23509
23102
  * @param {number} submission_height
23510
23103
  * @returns {Promise<TransactionStoreUpdate>}
@@ -23514,22 +23107,6 @@ class WebClient {
23514
23107
  const ret = wasm.webclient_applyTransaction(this.__wbg_ptr, transaction_result.__wbg_ptr, submission_height);
23515
23108
  return ret;
23516
23109
  }
23517
- /**
23518
- * Builds a transaction reclaiming the unfilled offered asset on the current
23519
- * tip of an Active lineage.
23520
- *
23521
- * `order_id` is the order's stable identifier as a decimal string. The
23522
- * returned request flows into the same submit path as the other PSWAP
23523
- * cancel transactions.
23524
- * @param {string} order_id
23525
- * @returns {Promise<TransactionRequest>}
23526
- */
23527
- buildPswapCancelByOrder(order_id) {
23528
- const ptr0 = passStringToWasm0(order_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
23529
- const len0 = WASM_VECTOR_LEN;
23530
- const ret = wasm.webclient_buildPswapCancelByOrder(this.__wbg_ptr, ptr0, len0);
23531
- return ret;
23532
- }
23533
23110
  /**
23534
23111
  * @param {NoteType} note_type
23535
23112
  * @param {AccountId} offered_asset_faucet_id
@@ -23557,17 +23134,13 @@ class WebClient {
23557
23134
  * * `store_name`: Optional name for the web store. If `None`, the store name defaults to
23558
23135
  * `MidenClientDB_{network_id}`, where `network_id` is derived from the `node_url`.
23559
23136
  * Explicitly setting this allows for creating multiple isolated clients.
23560
- * * `debug_mode`: Optional flag to enable debug mode for transaction execution. When enabled,
23561
- * the transaction executor records additional information useful for debugging. Defaults to
23562
- * disabled.
23563
23137
  * @param {string | null} [node_url]
23564
23138
  * @param {string | null} [node_note_transport_url]
23565
23139
  * @param {Uint8Array | null} [seed]
23566
23140
  * @param {string | null} [store_name]
23567
- * @param {boolean | null} [debug_mode]
23568
23141
  * @returns {Promise<any>}
23569
23142
  */
23570
- createClient(node_url, node_note_transport_url, seed, store_name, debug_mode) {
23143
+ createClient(node_url, node_note_transport_url, seed, store_name) {
23571
23144
  var ptr0 = isLikeNone(node_url) ? 0 : passStringToWasm0(node_url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
23572
23145
  var len0 = WASM_VECTOR_LEN;
23573
23146
  var ptr1 = isLikeNone(node_note_transport_url) ? 0 : passStringToWasm0(node_note_transport_url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
@@ -23576,7 +23149,7 @@ class WebClient {
23576
23149
  var len2 = WASM_VECTOR_LEN;
23577
23150
  var ptr3 = isLikeNone(store_name) ? 0 : passStringToWasm0(store_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
23578
23151
  var len3 = WASM_VECTOR_LEN;
23579
- const ret = wasm.webclient_createClient(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, isLikeNone(debug_mode) ? 0xFFFFFF : debug_mode ? 1 : 0);
23152
+ const ret = wasm.webclient_createClient(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
23580
23153
  return ret;
23581
23154
  }
23582
23155
  /**
@@ -23592,8 +23165,6 @@ class WebClient {
23592
23165
  * * `get_key_cb`: Callback to retrieve the secret key bytes for a given public key.
23593
23166
  * * `insert_key_cb`: Callback to persist a secret key.
23594
23167
  * * `sign_cb`: Callback to produce serialized signature bytes for the provided inputs.
23595
- * * `debug_mode`: Optional flag to enable debug mode for transaction execution. Defaults to
23596
- * disabled.
23597
23168
  * @param {string | null} [node_url]
23598
23169
  * @param {string | null} [node_note_transport_url]
23599
23170
  * @param {Uint8Array | null} [seed]
@@ -23601,10 +23172,9 @@ class WebClient {
23601
23172
  * @param {Function | null} [get_key_cb]
23602
23173
  * @param {Function | null} [insert_key_cb]
23603
23174
  * @param {Function | null} [sign_cb]
23604
- * @param {boolean | null} [debug_mode]
23605
23175
  * @returns {Promise<any>}
23606
23176
  */
23607
- createClientWithExternalKeystore(node_url, node_note_transport_url, seed, store_name, get_key_cb, insert_key_cb, sign_cb, debug_mode) {
23177
+ createClientWithExternalKeystore(node_url, node_note_transport_url, seed, store_name, get_key_cb, insert_key_cb, sign_cb) {
23608
23178
  var ptr0 = isLikeNone(node_url) ? 0 : passStringToWasm0(node_url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
23609
23179
  var len0 = WASM_VECTOR_LEN;
23610
23180
  var ptr1 = isLikeNone(node_note_transport_url) ? 0 : passStringToWasm0(node_note_transport_url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
@@ -23613,7 +23183,7 @@ class WebClient {
23613
23183
  var len2 = WASM_VECTOR_LEN;
23614
23184
  var ptr3 = isLikeNone(store_name) ? 0 : passStringToWasm0(store_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
23615
23185
  var len3 = WASM_VECTOR_LEN;
23616
- const ret = wasm.webclient_createClientWithExternalKeystore(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, isLikeNone(get_key_cb) ? 0 : addToExternrefTable0(get_key_cb), isLikeNone(insert_key_cb) ? 0 : addToExternrefTable0(insert_key_cb), isLikeNone(sign_cb) ? 0 : addToExternrefTable0(sign_cb), isLikeNone(debug_mode) ? 0xFFFFFF : debug_mode ? 1 : 0);
23186
+ const ret = wasm.webclient_createClientWithExternalKeystore(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, isLikeNone(get_key_cb) ? 0 : addToExternrefTable0(get_key_cb), isLikeNone(insert_key_cb) ? 0 : addToExternrefTable0(insert_key_cb), isLikeNone(sign_cb) ? 0 : addToExternrefTable0(sign_cb));
23617
23187
  return ret;
23618
23188
  }
23619
23189
  /**
@@ -23642,14 +23212,18 @@ class WebClient {
23642
23212
  return ret;
23643
23213
  }
23644
23214
  /**
23645
- * Executes a transaction and returns the `TransactionSummary`.
23215
+ * Executes a transaction and returns the `TransactionSummary` the account is being asked
23216
+ * to authorize.
23646
23217
  *
23647
- * If the transaction is unauthorized (auth script emits the unauthorized event),
23648
- * returns the summary from the error. If the transaction succeeds, constructs
23649
- * a summary from the executed transaction using the `auth_arg` from the transaction
23650
- * request as the salt (or a zero salt if not provided).
23218
+ * The summary only exists while authorization is pending: when the auth procedure aborts
23219
+ * with the unauthorized event (e.g. a multisig below its signing threshold), the summary
23220
+ * built during execution is returned so it can be signed out-of-band. If the transaction
23221
+ * executes successfully it was already fully authorized, no summary is produced, and this
23222
+ * method returns an error with code `TRANSACTION_ALREADY_AUTHORIZED` — submit the
23223
+ * transaction with `execute` instead.
23651
23224
  *
23652
23225
  * # Errors
23226
+ * - If the transaction executes successfully (error code `TRANSACTION_ALREADY_AUTHORIZED`).
23653
23227
  * - If there is an internal failure during execution.
23654
23228
  * @param {AccountId} account_id
23655
23229
  * @param {TransactionRequest} transaction_request
@@ -23873,37 +23447,6 @@ class WebClient {
23873
23447
  const ret = wasm.webclient_getOutputNotes(this.__wbg_ptr, ptr0);
23874
23448
  return ret;
23875
23449
  }
23876
- /**
23877
- * Returns the lineage for one order, or `null` if not tracked.
23878
- *
23879
- * `order_id` is the order's stable identifier as a decimal string.
23880
- * @param {string} order_id
23881
- * @returns {Promise<PswapLineageRecord | undefined>}
23882
- */
23883
- getPswapLineage(order_id) {
23884
- const ptr0 = passStringToWasm0(order_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
23885
- const len0 = WASM_VECTOR_LEN;
23886
- const ret = wasm.webclient_getPswapLineage(this.__wbg_ptr, ptr0, len0);
23887
- return ret;
23888
- }
23889
- /**
23890
- * Returns every PSWAP lineage tracked by this client.
23891
- * @returns {Promise<PswapLineageRecord[]>}
23892
- */
23893
- getPswapLineages() {
23894
- const ret = wasm.webclient_getPswapLineages(this.__wbg_ptr);
23895
- return ret;
23896
- }
23897
- /**
23898
- * Returns lineages created by a specific local account.
23899
- * @param {AccountId} creator
23900
- * @returns {Promise<PswapLineageRecord[]>}
23901
- */
23902
- getPswapLineagesFor(creator) {
23903
- _assertClass(creator, AccountId);
23904
- const ret = wasm.webclient_getPswapLineagesFor(this.__wbg_ptr, creator.__wbg_ptr);
23905
- return ret;
23906
- }
23907
23450
  /**
23908
23451
  * Returns all public key commitments associated with the given account ID.
23909
23452
  *
@@ -23967,10 +23510,10 @@ class WebClient {
23967
23510
  /**
23968
23511
  * Imports a note file and returns the imported note's identifier.
23969
23512
  *
23970
- * A note file that carries metadata — an explicit `NoteId` or a full note
23971
- * with proof — resolves to a concrete `NoteId`, which is returned so the
23972
- * caller can look the note up with [`get_input_note`]. A details-only file
23973
- * (`NoteDetails`) has no metadata and therefore no `NoteId` yet, so its
23513
+ * A note file that carries metadata — an explicit `NoteId` or a committed
23514
+ * note with proof — resolves to a concrete `NoteId`, which is returned so
23515
+ * the caller can look the note up with [`get_input_note`]. An expected-note
23516
+ * file has no metadata and therefore no `NoteId` yet, so its
23974
23517
  * metadata-independent details commitment is returned instead.
23975
23518
  *
23976
23519
  * Migration note (miden-client PR #2214): `Client::import_notes` now
@@ -24096,30 +23639,6 @@ class WebClient {
24096
23639
  const ret = wasm.webclient_newAccountWithSecretKey(this.__wbg_ptr, account.__wbg_ptr, secret_key.__wbg_ptr);
24097
23640
  return ret;
24098
23641
  }
24099
- /**
24100
- * Builds a transaction request that bridges a fungible asset out to another network via the
24101
- * `AggLayer`.
24102
- *
24103
- * The request emits a single public B2AGG (Bridge-to-AggLayer) note holding `amount` units of
24104
- * the `faucet_id` asset. The note is consumed by `bridge_account_id`, which burns the asset so
24105
- * it can be claimed at `destination_address` (an Ethereum address) on the AggLayer-assigned
24106
- * `destination_network`.
24107
- * @param {AccountId} sender_account_id
24108
- * @param {AccountId} bridge_account_id
24109
- * @param {AccountId} faucet_id
24110
- * @param {bigint} amount
24111
- * @param {number} destination_network
24112
- * @param {EthAddress} destination_address
24113
- * @returns {Promise<TransactionRequest>}
24114
- */
24115
- newB2AggTransactionRequest(sender_account_id, bridge_account_id, faucet_id, amount, destination_network, destination_address) {
24116
- _assertClass(sender_account_id, AccountId);
24117
- _assertClass(bridge_account_id, AccountId);
24118
- _assertClass(faucet_id, AccountId);
24119
- _assertClass(destination_address, EthAddress);
24120
- const ret = wasm.webclient_newB2AggTransactionRequest(this.__wbg_ptr, sender_account_id.__wbg_ptr, bridge_account_id.__wbg_ptr, faucet_id.__wbg_ptr, amount, destination_network, destination_address.__wbg_ptr);
24121
- return ret;
24122
- }
24123
23642
  /**
24124
23643
  * @param {Note[]} list_of_notes
24125
23644
  * @returns {TransactionRequest}
@@ -24413,25 +23932,6 @@ class WebClient {
24413
23932
  const ret = wasm.webclient_submitNewTransaction(this.__wbg_ptr, account_id.__wbg_ptr, transaction_request.__wbg_ptr);
24414
23933
  return ret;
24415
23934
  }
24416
- /**
24417
- * Executes a batch of transactions against the specified account, proves them individually
24418
- * and as a batch, submits the batch to the network, and atomically applies the per-tx
24419
- * updates to the local store. Returns the block number the batch was accepted into.
24420
- *
24421
- * All transactions must target the same local account — the `account_id` argument.
24422
- * Each element of `transaction_requests` is the serialized-bytes form of a
24423
- * `TransactionRequest` (obtained via `tx_request.serialize()`)
24424
- * @param {AccountId} account_id
24425
- * @param {Uint8Array[]} transaction_requests
24426
- * @returns {Promise<number>}
24427
- */
24428
- submitNewTransactionBatch(account_id, transaction_requests) {
24429
- _assertClass(account_id, AccountId);
24430
- const ptr0 = passArrayJsValueToWasm0(transaction_requests, wasm.__wbindgen_malloc);
24431
- const len0 = WASM_VECTOR_LEN;
24432
- const ret = wasm.webclient_submitNewTransactionBatch(this.__wbg_ptr, account_id.__wbg_ptr, ptr0, len0);
24433
- return ret;
24434
- }
24435
23935
  /**
24436
23936
  * Executes a transaction specified by the request against the specified account, proves it
24437
23937
  * with the user provided prover, submits it to the network, and updates the local database.
@@ -24929,7 +24429,7 @@ function __wbg_get_imports() {
24929
24429
  const ret = AccountStorage.__wrap(arg0);
24930
24430
  return ret;
24931
24431
  },
24932
- __wbg_addNoteTag_94ee2f838ec544dc: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) {
24432
+ __wbg_addNoteTag_1500aff2fa0d151c: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) {
24933
24433
  var v0 = getArrayU8FromWasm0(arg2, arg3).slice();
24934
24434
  wasm.__wbindgen_free(arg2, arg3 * 1, 1);
24935
24435
  let v1;
@@ -24957,25 +24457,7 @@ function __wbg_get_imports() {
24957
24457
  __wbg_append_a992ccc37aa62dc4: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {
24958
24458
  arg0.append(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4));
24959
24459
  }, arguments); },
24960
- __wbg_applyFullAccountState_43caa7474baffc0b: function(arg0, arg1, arg2) {
24961
- const ret = applyFullAccountState(getStringFromWasm0(arg0, arg1), JsAccountUpdate.__wrap(arg2));
24962
- return ret;
24963
- },
24964
- __wbg_applySettingsMutations_5de1d94023be9157: function(arg0, arg1, arg2, arg3) {
24965
- var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
24966
- wasm.__wbindgen_free(arg2, arg3 * 4, 4);
24967
- const ret = applySettingsMutations(getStringFromWasm0(arg0, arg1), v0);
24968
- return ret;
24969
- },
24970
- __wbg_applyStateSync_189438332d96496e: function(arg0, arg1, arg2) {
24971
- const ret = applyStateSync(getStringFromWasm0(arg0, arg1), JsStateSyncUpdate.__wrap(arg2));
24972
- return ret;
24973
- },
24974
- __wbg_applyTransactionBatch_c300ed1fee34127a: function(arg0, arg1, arg2) {
24975
- const ret = applyTransactionBatch(getStringFromWasm0(arg0, arg1), arg2);
24976
- return ret;
24977
- },
24978
- __wbg_applyTransactionDelta_88c7fcff9175e58e: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20) {
24460
+ __wbg_applyAccountPatch_ade374c1e2049a8e: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20) {
24979
24461
  let deferred0_0;
24980
24462
  let deferred0_1;
24981
24463
  let deferred1_0;
@@ -25007,7 +24489,7 @@ function __wbg_get_imports() {
25007
24489
  deferred7_1 = arg17;
25008
24490
  deferred8_0 = arg19;
25009
24491
  deferred8_1 = arg20;
25010
- const ret = applyTransactionDelta(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3), getStringFromWasm0(arg4, arg5), v2, v3, v4, getStringFromWasm0(arg12, arg13), getStringFromWasm0(arg14, arg15), getStringFromWasm0(arg16, arg17), arg18 !== 0, getStringFromWasm0(arg19, arg20));
24492
+ const ret = applyAccountPatch(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3), getStringFromWasm0(arg4, arg5), v2, v3, v4, getStringFromWasm0(arg12, arg13), getStringFromWasm0(arg14, arg15), getStringFromWasm0(arg16, arg17), arg18 !== 0, getStringFromWasm0(arg19, arg20));
25011
24493
  return ret;
25012
24494
  } finally {
25013
24495
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
@@ -25018,6 +24500,20 @@ function __wbg_get_imports() {
25018
24500
  wasm.__wbindgen_free(deferred8_0, deferred8_1, 1);
25019
24501
  }
25020
24502
  },
24503
+ __wbg_applyFullAccountState_f9562e4091c2eaf6: function(arg0, arg1, arg2) {
24504
+ const ret = applyFullAccountState(getStringFromWasm0(arg0, arg1), JsAccountUpdate.__wrap(arg2));
24505
+ return ret;
24506
+ },
24507
+ __wbg_applySettingsMutations_722d272d653902a1: function(arg0, arg1, arg2, arg3) {
24508
+ var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
24509
+ wasm.__wbindgen_free(arg2, arg3 * 4, 4);
24510
+ const ret = applySettingsMutations(getStringFromWasm0(arg0, arg1), v0);
24511
+ return ret;
24512
+ },
24513
+ __wbg_applyStateSync_4c25ec00de2f60bb: function(arg0, arg1, arg2) {
24514
+ const ret = applyStateSync(getStringFromWasm0(arg0, arg1), JsStateSyncUpdate.__wrap(arg2));
24515
+ return ret;
24516
+ },
25021
24517
  __wbg_assetvault_new: function(arg0) {
25022
24518
  const ret = AssetVault.__wrap(arg0);
25023
24519
  return ret;
@@ -25114,7 +24610,7 @@ function __wbg_get_imports() {
25114
24610
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25115
24611
  }
25116
24612
  },
25117
- __wbg_exportStore_cf4d695fbf6de143: function(arg0, arg1) {
24613
+ __wbg_exportStore_3b84792dca9a9ef1: function(arg0, arg1) {
25118
24614
  const ret = exportStore(getStringFromWasm0(arg0, arg1));
25119
24615
  return ret;
25120
24616
  },
@@ -25146,7 +24642,7 @@ function __wbg_get_imports() {
25146
24642
  const ret = FetchedNote.__wrap(arg0);
25147
24643
  return ret;
25148
24644
  },
25149
- __wbg_forceImportStore_c50115d19ee606c7: function(arg0, arg1, arg2) {
24645
+ __wbg_forceImportStore_6a4fb8bc450bbf4a: function(arg0, arg1, arg2) {
25150
24646
  const ret = forceImportStore(getStringFromWasm0(arg0, arg1), arg2);
25151
24647
  return ret;
25152
24648
  },
@@ -25154,10 +24650,6 @@ function __wbg_get_imports() {
25154
24650
  const ret = ForeignAccount.__unwrap(arg0);
25155
24651
  return ret;
25156
24652
  },
25157
- __wbg_from_bddd64e7d5ff6941: function(arg0) {
25158
- const ret = Array.from(arg0);
25159
- return ret;
25160
- },
25161
24653
  __wbg_fungibleasset_new: function(arg0) {
25162
24654
  const ret = FungibleAsset.__wrap(arg0);
25163
24655
  return ret;
@@ -25170,7 +24662,7 @@ function __wbg_get_imports() {
25170
24662
  const ret = FungibleAssetDeltaItem.__wrap(arg0);
25171
24663
  return ret;
25172
24664
  },
25173
- __wbg_getAccountAddresses_cbd727101b08a9f6: function(arg0, arg1, arg2, arg3) {
24665
+ __wbg_getAccountAddresses_68ba5f3f8a9c7e15: function(arg0, arg1, arg2, arg3) {
25174
24666
  let deferred0_0;
25175
24667
  let deferred0_1;
25176
24668
  try {
@@ -25182,7 +24674,7 @@ function __wbg_get_imports() {
25182
24674
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25183
24675
  }
25184
24676
  },
25185
- __wbg_getAccountAuthByPubKeyCommitment_bb937a852fc252bc: function(arg0, arg1, arg2, arg3) {
24677
+ __wbg_getAccountAuthByPubKeyCommitment_568661071566f307: function(arg0, arg1, arg2, arg3) {
25186
24678
  let deferred0_0;
25187
24679
  let deferred0_1;
25188
24680
  try {
@@ -25194,7 +24686,7 @@ function __wbg_get_imports() {
25194
24686
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25195
24687
  }
25196
24688
  },
25197
- __wbg_getAccountCode_3cc0ae7a622f54fc: function(arg0, arg1, arg2, arg3) {
24689
+ __wbg_getAccountCode_14e446cd1a3f814f: function(arg0, arg1, arg2, arg3) {
25198
24690
  let deferred0_0;
25199
24691
  let deferred0_1;
25200
24692
  try {
@@ -25206,7 +24698,7 @@ function __wbg_get_imports() {
25206
24698
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25207
24699
  }
25208
24700
  },
25209
- __wbg_getAccountHeaderByCommitment_9944282b839bf9b6: function(arg0, arg1, arg2, arg3) {
24701
+ __wbg_getAccountHeaderByCommitment_0e10e9ac733f359b: function(arg0, arg1, arg2, arg3) {
25210
24702
  let deferred0_0;
25211
24703
  let deferred0_1;
25212
24704
  try {
@@ -25218,7 +24710,7 @@ function __wbg_get_imports() {
25218
24710
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25219
24711
  }
25220
24712
  },
25221
- __wbg_getAccountHeader_84fb6f83a11e9cea: function(arg0, arg1, arg2, arg3) {
24713
+ __wbg_getAccountHeader_ef6ad25115d9bd02: function(arg0, arg1, arg2, arg3) {
25222
24714
  let deferred0_0;
25223
24715
  let deferred0_1;
25224
24716
  try {
@@ -25230,7 +24722,7 @@ function __wbg_get_imports() {
25230
24722
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25231
24723
  }
25232
24724
  },
25233
- __wbg_getAccountIdByKeyCommitment_f993328b4b855b21: function(arg0, arg1, arg2, arg3) {
24725
+ __wbg_getAccountIdByKeyCommitment_c0c17f1af8b92023: function(arg0, arg1, arg2, arg3) {
25234
24726
  let deferred0_0;
25235
24727
  let deferred0_1;
25236
24728
  try {
@@ -25242,11 +24734,11 @@ function __wbg_get_imports() {
25242
24734
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25243
24735
  }
25244
24736
  },
25245
- __wbg_getAccountIds_e80dceb4cc97875f: function(arg0, arg1) {
24737
+ __wbg_getAccountIds_07de8c6f4a5ee883: function(arg0, arg1) {
25246
24738
  const ret = getAccountIds(getStringFromWasm0(arg0, arg1));
25247
24739
  return ret;
25248
24740
  },
25249
- __wbg_getAccountStorageMaps_e36e581a33dc958a: function(arg0, arg1, arg2, arg3) {
24741
+ __wbg_getAccountStorageMaps_b16de6210ce82188: function(arg0, arg1, arg2, arg3) {
25250
24742
  let deferred0_0;
25251
24743
  let deferred0_1;
25252
24744
  try {
@@ -25258,7 +24750,7 @@ function __wbg_get_imports() {
25258
24750
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25259
24751
  }
25260
24752
  },
25261
- __wbg_getAccountStorage_50de137ac49bdf17: function(arg0, arg1, arg2, arg3, arg4, arg5) {
24753
+ __wbg_getAccountStorage_c876ec60dbfa6cee: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25262
24754
  let deferred0_0;
25263
24755
  let deferred0_1;
25264
24756
  try {
@@ -25272,7 +24764,7 @@ function __wbg_get_imports() {
25272
24764
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25273
24765
  }
25274
24766
  },
25275
- __wbg_getAccountVaultAssets_30c74124867dbf56: function(arg0, arg1, arg2, arg3, arg4, arg5) {
24767
+ __wbg_getAccountVaultAssets_479ef945dd51412a: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25276
24768
  let deferred0_0;
25277
24769
  let deferred0_1;
25278
24770
  try {
@@ -25286,27 +24778,27 @@ function __wbg_get_imports() {
25286
24778
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25287
24779
  }
25288
24780
  },
25289
- __wbg_getAllAccountHeaders_b3e3ae880833a8cc: function(arg0, arg1) {
24781
+ __wbg_getAllAccountHeaders_f78e678ad24296de: function(arg0, arg1) {
25290
24782
  const ret = getAllAccountHeaders(getStringFromWasm0(arg0, arg1));
25291
24783
  return ret;
25292
24784
  },
25293
- __wbg_getBlockHeaders_8fa268d7fb3d3c28: function(arg0, arg1, arg2, arg3) {
24785
+ __wbg_getBlockHeaders_a55990d3957c0d9d: function(arg0, arg1, arg2, arg3) {
25294
24786
  var v0 = getArrayU32FromWasm0(arg2, arg3).slice();
25295
24787
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25296
24788
  const ret = getBlockHeaders(getStringFromWasm0(arg0, arg1), v0);
25297
24789
  return ret;
25298
24790
  },
25299
- __wbg_getCurrentBlockchainPeaks_ea97e8dd83a3db2f: function(arg0, arg1) {
24791
+ __wbg_getCurrentBlockchainPeaks_b276a676a0f16d93: function(arg0, arg1) {
25300
24792
  const ret = getCurrentBlockchainPeaks(getStringFromWasm0(arg0, arg1));
25301
24793
  return ret;
25302
24794
  },
25303
- __wbg_getForeignAccountCode_7de2117da915f4be: function(arg0, arg1, arg2, arg3) {
24795
+ __wbg_getForeignAccountCode_9f88c11936e9c43d: function(arg0, arg1, arg2, arg3) {
25304
24796
  var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
25305
24797
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25306
24798
  const ret = getForeignAccountCode(getStringFromWasm0(arg0, arg1), v0);
25307
24799
  return ret;
25308
24800
  },
25309
- __wbg_getInputNoteByOffset_1cd4bd9db2e38694: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) {
24801
+ __wbg_getInputNoteByOffset_d8ec28ef8b63a88f: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) {
25310
24802
  let deferred1_0;
25311
24803
  let deferred1_1;
25312
24804
  try {
@@ -25320,31 +24812,31 @@ function __wbg_get_imports() {
25320
24812
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
25321
24813
  }
25322
24814
  },
25323
- __wbg_getInputNotesFromDetailsCommitments_334d006c0e228205: function(arg0, arg1, arg2, arg3) {
24815
+ __wbg_getInputNotesFromDetailsCommitments_9590f42d9e96e86c: function(arg0, arg1, arg2, arg3) {
25324
24816
  var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
25325
24817
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25326
24818
  const ret = getInputNotesFromDetailsCommitments(getStringFromWasm0(arg0, arg1), v0);
25327
24819
  return ret;
25328
24820
  },
25329
- __wbg_getInputNotesFromIds_bbaec98ba444d49e: function(arg0, arg1, arg2, arg3) {
24821
+ __wbg_getInputNotesFromIds_d290a8e093978eae: function(arg0, arg1, arg2, arg3) {
25330
24822
  var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
25331
24823
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25332
24824
  const ret = getInputNotesFromIds(getStringFromWasm0(arg0, arg1), v0);
25333
24825
  return ret;
25334
24826
  },
25335
- __wbg_getInputNotesFromNullifiers_dde5b06918045f75: function(arg0, arg1, arg2, arg3) {
24827
+ __wbg_getInputNotesFromNullifiers_2b5fa39ec52ecab6: function(arg0, arg1, arg2, arg3) {
25336
24828
  var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
25337
24829
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25338
24830
  const ret = getInputNotesFromNullifiers(getStringFromWasm0(arg0, arg1), v0);
25339
24831
  return ret;
25340
24832
  },
25341
- __wbg_getInputNotes_02d3daccecb4c763: function(arg0, arg1, arg2, arg3) {
24833
+ __wbg_getInputNotes_1c76764676f21be5: function(arg0, arg1, arg2, arg3) {
25342
24834
  var v0 = getArrayU8FromWasm0(arg2, arg3).slice();
25343
24835
  wasm.__wbindgen_free(arg2, arg3 * 1, 1);
25344
24836
  const ret = getInputNotes(getStringFromWasm0(arg0, arg1), v0);
25345
24837
  return ret;
25346
24838
  },
25347
- __wbg_getKeyCommitmentsByAccountId_de5d140392884430: function(arg0, arg1, arg2, arg3) {
24839
+ __wbg_getKeyCommitmentsByAccountId_7962a39c985c54e5: function(arg0, arg1, arg2, arg3) {
25348
24840
  let deferred0_0;
25349
24841
  let deferred0_1;
25350
24842
  try {
@@ -25356,7 +24848,7 @@ function __wbg_get_imports() {
25356
24848
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25357
24849
  }
25358
24850
  },
25359
- __wbg_getNoteScript_bc2ab9b3b789361a: function(arg0, arg1, arg2, arg3) {
24851
+ __wbg_getNoteScript_b2cf59d7cf9d19e7: function(arg0, arg1, arg2, arg3) {
25360
24852
  let deferred0_0;
25361
24853
  let deferred0_1;
25362
24854
  try {
@@ -25368,39 +24860,39 @@ function __wbg_get_imports() {
25368
24860
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25369
24861
  }
25370
24862
  },
25371
- __wbg_getNoteTags_34a8fb7ffdde9e33: function(arg0, arg1) {
24863
+ __wbg_getNoteTags_a45689c54d964e46: function(arg0, arg1) {
25372
24864
  const ret = getNoteTags(getStringFromWasm0(arg0, arg1));
25373
24865
  return ret;
25374
24866
  },
25375
- __wbg_getOutputNotesFromDetailsCommitments_6e202d70d207d37f: function(arg0, arg1, arg2, arg3) {
24867
+ __wbg_getOutputNotesFromDetailsCommitments_b15793905bc47309: function(arg0, arg1, arg2, arg3) {
25376
24868
  var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
25377
24869
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25378
24870
  const ret = getOutputNotesFromDetailsCommitments(getStringFromWasm0(arg0, arg1), v0);
25379
24871
  return ret;
25380
24872
  },
25381
- __wbg_getOutputNotesFromIds_2b07a4ef2fa3fdd9: function(arg0, arg1, arg2, arg3) {
24873
+ __wbg_getOutputNotesFromIds_d340ff4a6d4c5c8e: function(arg0, arg1, arg2, arg3) {
25382
24874
  var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
25383
24875
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25384
24876
  const ret = getOutputNotesFromIds(getStringFromWasm0(arg0, arg1), v0);
25385
24877
  return ret;
25386
24878
  },
25387
- __wbg_getOutputNotesFromNullifiers_f59492590ecad477: function(arg0, arg1, arg2, arg3) {
24879
+ __wbg_getOutputNotesFromNullifiers_48b112e53ca4eea7: function(arg0, arg1, arg2, arg3) {
25388
24880
  var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
25389
24881
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25390
24882
  const ret = getOutputNotesFromNullifiers(getStringFromWasm0(arg0, arg1), v0);
25391
24883
  return ret;
25392
24884
  },
25393
- __wbg_getOutputNotes_7ddd237b643a22e2: function(arg0, arg1, arg2, arg3) {
24885
+ __wbg_getOutputNotes_2679465821c837b7: function(arg0, arg1, arg2, arg3) {
25394
24886
  var v0 = getArrayU8FromWasm0(arg2, arg3).slice();
25395
24887
  wasm.__wbindgen_free(arg2, arg3 * 1, 1);
25396
24888
  const ret = getOutputNotes(getStringFromWasm0(arg0, arg1), v0);
25397
24889
  return ret;
25398
24890
  },
25399
- __wbg_getPartialBlockchainNodesAll_e2e8c0d62a978ef1: function(arg0, arg1) {
24891
+ __wbg_getPartialBlockchainNodesAll_9496498a665775d9: function(arg0, arg1) {
25400
24892
  const ret = getPartialBlockchainNodesAll(getStringFromWasm0(arg0, arg1));
25401
24893
  return ret;
25402
24894
  },
25403
- __wbg_getPartialBlockchainNodesUpToInOrderIndex_2f8e8d802df6ede2: function(arg0, arg1, arg2, arg3) {
24895
+ __wbg_getPartialBlockchainNodesUpToInOrderIndex_2196a0e786754bd1: function(arg0, arg1, arg2, arg3) {
25404
24896
  let deferred0_0;
25405
24897
  let deferred0_1;
25406
24898
  try {
@@ -25412,20 +24904,20 @@ function __wbg_get_imports() {
25412
24904
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25413
24905
  }
25414
24906
  },
25415
- __wbg_getPartialBlockchainNodes_4505db840ba96409: function(arg0, arg1, arg2, arg3) {
24907
+ __wbg_getPartialBlockchainNodes_0a6c2a323b1f4caa: function(arg0, arg1, arg2, arg3) {
25416
24908
  var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
25417
24909
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25418
24910
  const ret = getPartialBlockchainNodes(getStringFromWasm0(arg0, arg1), v0);
25419
24911
  return ret;
25420
24912
  },
25421
- __wbg_getRandomValues_1c61fac11405ffdc: function() { return handleError(function (arg0, arg1) {
24913
+ __wbg_getRandomValues_e9de607763a970bd: function() { return handleError(function (arg0, arg1) {
25422
24914
  globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));
25423
24915
  }, arguments); },
25424
24916
  __wbg_getReader_f47519d698a4505e: function() { return handleError(function (arg0) {
25425
24917
  const ret = arg0.getReader();
25426
24918
  return ret;
25427
24919
  }, arguments); },
25428
- __wbg_getSetting_62039934dd52148a: function(arg0, arg1, arg2, arg3) {
24920
+ __wbg_getSetting_319d65b5a2e111a2: function(arg0, arg1, arg2, arg3) {
25429
24921
  let deferred0_0;
25430
24922
  let deferred0_1;
25431
24923
  try {
@@ -25437,7 +24929,7 @@ function __wbg_get_imports() {
25437
24929
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25438
24930
  }
25439
24931
  },
25440
- __wbg_getSyncHeight_1c355e9af8a6c5c1: function(arg0, arg1) {
24932
+ __wbg_getSyncHeight_94e6d0d761426ec9: function(arg0, arg1) {
25441
24933
  const ret = getSyncHeight(getStringFromWasm0(arg0, arg1));
25442
24934
  return ret;
25443
24935
  },
@@ -25445,15 +24937,15 @@ function __wbg_get_imports() {
25445
24937
  const ret = arg0.getTime();
25446
24938
  return ret;
25447
24939
  },
25448
- __wbg_getTrackedBlockHeaderNumbers_1127c2c0de9e8f2d: function(arg0, arg1) {
24940
+ __wbg_getTrackedBlockHeaderNumbers_5a8edd94c7b7613c: function(arg0, arg1) {
25449
24941
  const ret = getTrackedBlockHeaderNumbers(getStringFromWasm0(arg0, arg1));
25450
24942
  return ret;
25451
24943
  },
25452
- __wbg_getTrackedBlockHeaders_0c9acbd5575e41f1: function(arg0, arg1) {
24944
+ __wbg_getTrackedBlockHeaders_3292740bff6c9b4c: function(arg0, arg1) {
25453
24945
  const ret = getTrackedBlockHeaders(getStringFromWasm0(arg0, arg1));
25454
24946
  return ret;
25455
24947
  },
25456
- __wbg_getTransactions_71b6f120136d4406: function(arg0, arg1, arg2, arg3) {
24948
+ __wbg_getTransactions_0c5674a652c44917: function(arg0, arg1, arg2, arg3) {
25457
24949
  let deferred0_0;
25458
24950
  let deferred0_1;
25459
24951
  try {
@@ -25465,7 +24957,7 @@ function __wbg_get_imports() {
25465
24957
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25466
24958
  }
25467
24959
  },
25468
- __wbg_getUnspentInputNoteNullifiers_ac153627e18848ab: function(arg0, arg1) {
24960
+ __wbg_getUnspentInputNoteNullifiers_6c9d5852b42b8c73: function(arg0, arg1) {
25469
24961
  const ret = getUnspentInputNoteNullifiers(getStringFromWasm0(arg0, arg1));
25470
24962
  return ret;
25471
24963
  },
@@ -25509,7 +25001,7 @@ function __wbg_get_imports() {
25509
25001
  const ret = InputNoteRecord.__wrap(arg0);
25510
25002
  return ret;
25511
25003
  },
25512
- __wbg_insertAccountAddress_15069fe099e1619e: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25004
+ __wbg_insertAccountAddress_36db2bb32e10fd9b: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25513
25005
  let deferred0_0;
25514
25006
  let deferred0_1;
25515
25007
  try {
@@ -25523,7 +25015,7 @@ function __wbg_get_imports() {
25523
25015
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25524
25016
  }
25525
25017
  },
25526
- __wbg_insertAccountAuth_d0cb9c2601ea7324: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25018
+ __wbg_insertAccountAuth_2763614f9c61eb99: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25527
25019
  let deferred0_0;
25528
25020
  let deferred0_1;
25529
25021
  let deferred1_0;
@@ -25540,7 +25032,7 @@ function __wbg_get_imports() {
25540
25032
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
25541
25033
  }
25542
25034
  },
25543
- __wbg_insertAccountKeyMapping_995e470bad5ead0b: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25035
+ __wbg_insertAccountKeyMapping_5440caed0fe18250: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25544
25036
  let deferred0_0;
25545
25037
  let deferred0_1;
25546
25038
  let deferred1_0;
@@ -25557,21 +25049,17 @@ function __wbg_get_imports() {
25557
25049
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
25558
25050
  }
25559
25051
  },
25560
- __wbg_insertBlockHeader_e5a6e2ded97f2403: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25052
+ __wbg_insertBlockHeader_ca254bedd530d7a3: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) {
25561
25053
  var v0 = getArrayU8FromWasm0(arg3, arg4).slice();
25562
25054
  wasm.__wbindgen_free(arg3, arg4 * 1, 1);
25563
- const ret = insertBlockHeader(getStringFromWasm0(arg0, arg1), arg2 >>> 0, v0, arg5 !== 0);
25564
- return ret;
25565
- },
25566
- __wbg_insertPartialBlockchainNodes_d6d5d926855e4d21: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25567
- var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
25568
- wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25569
- var v1 = getArrayJsValueFromWasm0(arg4, arg5).slice();
25570
- wasm.__wbindgen_free(arg4, arg5 * 4, 4);
25571
- const ret = insertPartialBlockchainNodes(getStringFromWasm0(arg0, arg1), v0, v1);
25055
+ var v1 = getArrayJsValueFromWasm0(arg6, arg7).slice();
25056
+ wasm.__wbindgen_free(arg6, arg7 * 4, 4);
25057
+ var v2 = getArrayJsValueFromWasm0(arg8, arg9).slice();
25058
+ wasm.__wbindgen_free(arg8, arg9 * 4, 4);
25059
+ const ret = insertBlockHeader(getStringFromWasm0(arg0, arg1), arg2 >>> 0, v0, arg5 !== 0, v1, v2);
25572
25060
  return ret;
25573
25061
  },
25574
- __wbg_insertSetting_0b89216c93defa8f: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25062
+ __wbg_insertSetting_2b672c0bf3a3668d: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25575
25063
  let deferred0_0;
25576
25064
  let deferred0_1;
25577
25065
  try {
@@ -25585,7 +25073,7 @@ function __wbg_get_imports() {
25585
25073
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25586
25074
  }
25587
25075
  },
25588
- __wbg_insertTransactionScript_25a8761c16b219bb: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25076
+ __wbg_insertTransactionScript_f052607e004c23aa: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25589
25077
  var v0 = getArrayU8FromWasm0(arg2, arg3).slice();
25590
25078
  wasm.__wbindgen_free(arg2, arg3 * 1, 1);
25591
25079
  let v1;
@@ -25682,11 +25170,11 @@ function __wbg_get_imports() {
25682
25170
  const ret = arg0.length;
25683
25171
  return ret;
25684
25172
  },
25685
- __wbg_listSettingKeys_2b136b1269935560: function(arg0, arg1) {
25173
+ __wbg_listSettingKeys_73b3c34ff51ee657: function(arg0, arg1) {
25686
25174
  const ret = listSettingKeys(getStringFromWasm0(arg0, arg1));
25687
25175
  return ret;
25688
25176
  },
25689
- __wbg_lockAccount_77845432e7766df6: function(arg0, arg1, arg2, arg3) {
25177
+ __wbg_lockAccount_a59ff3c777c9188c: function(arg0, arg1, arg2, arg3) {
25690
25178
  let deferred0_0;
25691
25179
  let deferred0_1;
25692
25180
  try {
@@ -25833,10 +25321,6 @@ function __wbg_get_imports() {
25833
25321
  const ret = NoteAttachment.__wrap(arg0);
25834
25322
  return ret;
25835
25323
  },
25836
- __wbg_noteattachment_unwrap: function(arg0) {
25837
- const ret = NoteAttachment.__unwrap(arg0);
25838
- return ret;
25839
- },
25840
25324
  __wbg_noteconsumability_new: function(arg0) {
25841
25325
  const ret = NoteConsumability.__wrap(arg0);
25842
25326
  return ret;
@@ -25889,7 +25373,7 @@ function __wbg_get_imports() {
25889
25373
  const ret = NoteTag.__unwrap(arg0);
25890
25374
  return ret;
25891
25375
  },
25892
- __wbg_openDatabase_2f30006b5f901ff6: function(arg0, arg1, arg2, arg3) {
25376
+ __wbg_openDatabase_8ac110fce86d145e: function(arg0, arg1, arg2, arg3) {
25893
25377
  const ret = openDatabase(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3));
25894
25378
  return ret;
25895
25379
  },
@@ -25920,7 +25404,7 @@ function __wbg_get_imports() {
25920
25404
  const ret = ProvenTransaction.__wrap(arg0);
25921
25405
  return ret;
25922
25406
  },
25923
- __wbg_pruneAccountHistory_f92187e012bea002: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25407
+ __wbg_pruneAccountHistory_c2e9f7b1d4846bc6: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25924
25408
  let deferred0_0;
25925
25409
  let deferred0_1;
25926
25410
  let deferred1_0;
@@ -25937,7 +25421,7 @@ function __wbg_get_imports() {
25937
25421
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
25938
25422
  }
25939
25423
  },
25940
- __wbg_pruneIrrelevantBlocks_802f17c51c071490: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25424
+ __wbg_pruneIrrelevantBlocks_33e6cf62a24f1f38: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25941
25425
  var v0 = getArrayU32FromWasm0(arg2, arg3).slice();
25942
25426
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25943
25427
  var v1 = getArrayJsValueFromWasm0(arg4, arg5).slice();
@@ -25945,14 +25429,6 @@ function __wbg_get_imports() {
25945
25429
  const ret = pruneIrrelevantBlocks(getStringFromWasm0(arg0, arg1), v0, v1);
25946
25430
  return ret;
25947
25431
  },
25948
- __wbg_pswaplineagerecord_new: function(arg0) {
25949
- const ret = PswapLineageRecord.__wrap(arg0);
25950
- return ret;
25951
- },
25952
- __wbg_push_8ffdcb2063340ba5: function(arg0, arg1) {
25953
- const ret = arg0.push(arg1);
25954
- return ret;
25955
- },
25956
25432
  __wbg_queueMicrotask_0aa0a927f78f5d98: function(arg0) {
25957
25433
  const ret = arg0.queueMicrotask;
25958
25434
  return ret;
@@ -25967,13 +25443,13 @@ function __wbg_get_imports() {
25967
25443
  __wbg_releaseLock_aa5846c2494b3032: function(arg0) {
25968
25444
  arg0.releaseLock();
25969
25445
  },
25970
- __wbg_removeAccountAddress_26bf46414ef4d36b: function(arg0, arg1, arg2, arg3) {
25446
+ __wbg_removeAccountAddress_5cbeda1f06e27b96: function(arg0, arg1, arg2, arg3) {
25971
25447
  var v0 = getArrayU8FromWasm0(arg2, arg3).slice();
25972
25448
  wasm.__wbindgen_free(arg2, arg3 * 1, 1);
25973
25449
  const ret = removeAccountAddress(getStringFromWasm0(arg0, arg1), v0);
25974
25450
  return ret;
25975
25451
  },
25976
- __wbg_removeAccountAuth_eee531cc8fc556ab: function(arg0, arg1, arg2, arg3) {
25452
+ __wbg_removeAccountAuth_825600c45bdd5aa3: function(arg0, arg1, arg2, arg3) {
25977
25453
  let deferred0_0;
25978
25454
  let deferred0_1;
25979
25455
  try {
@@ -25985,7 +25461,7 @@ function __wbg_get_imports() {
25985
25461
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25986
25462
  }
25987
25463
  },
25988
- __wbg_removeAllMappingsForKey_bb2ce4d992b13353: function(arg0, arg1, arg2, arg3) {
25464
+ __wbg_removeAllMappingsForKey_3f439269152ce6e0: function(arg0, arg1, arg2, arg3) {
25989
25465
  let deferred0_0;
25990
25466
  let deferred0_1;
25991
25467
  try {
@@ -25997,7 +25473,7 @@ function __wbg_get_imports() {
25997
25473
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25998
25474
  }
25999
25475
  },
26000
- __wbg_removeNoteTag_ce18a2071a471486: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) {
25476
+ __wbg_removeNoteTag_e2ea5486d35929ca: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) {
26001
25477
  var v0 = getArrayU8FromWasm0(arg2, arg3).slice();
26002
25478
  wasm.__wbindgen_free(arg2, arg3 * 1, 1);
26003
25479
  let v1;
@@ -26018,7 +25494,7 @@ function __wbg_get_imports() {
26018
25494
  const ret = removeNoteTag(getStringFromWasm0(arg0, arg1), v0, v1, v2, v3);
26019
25495
  return ret;
26020
25496
  },
26021
- __wbg_removeSetting_a6764e1ec62f8c0f: function(arg0, arg1, arg2, arg3) {
25497
+ __wbg_removeSetting_5fac6592df936024: function(arg0, arg1, arg2, arg3) {
26022
25498
  let deferred0_0;
26023
25499
  let deferred0_1;
26024
25500
  try {
@@ -26069,9 +25545,6 @@ function __wbg_get_imports() {
26069
25545
  const ret = setTimeout(arg0, arg1);
26070
25546
  return ret;
26071
25547
  }, arguments); },
26072
- __wbg_set_3f1d0b984ed272ed: function(arg0, arg1, arg2) {
26073
- arg0[arg1] = arg2;
26074
- },
26075
25548
  __wbg_set_6cb8631f80447a67: function() { return handleError(function (arg0, arg1, arg2) {
26076
25549
  const ret = Reflect.set(arg0, arg1, arg2);
26077
25550
  return ret;
@@ -26221,13 +25694,13 @@ function __wbg_get_imports() {
26221
25694
  const ret = TransactionSummary.__wrap(arg0);
26222
25695
  return ret;
26223
25696
  },
26224
- __wbg_undoAccountStates_829a6daf4a392818: function(arg0, arg1, arg2, arg3) {
25697
+ __wbg_undoAccountStates_884490500595e8c1: function(arg0, arg1, arg2, arg3) {
26225
25698
  var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
26226
25699
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
26227
25700
  const ret = undoAccountStates(getStringFromWasm0(arg0, arg1), v0);
26228
25701
  return ret;
26229
25702
  },
26230
- __wbg_upsertAccountCode_f24cee98a5bbbfe5: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25703
+ __wbg_upsertAccountCode_ce71ea974ae52d20: function(arg0, arg1, arg2, arg3, arg4, arg5) {
26231
25704
  let deferred0_0;
26232
25705
  let deferred0_1;
26233
25706
  try {
@@ -26241,7 +25714,7 @@ function __wbg_get_imports() {
26241
25714
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
26242
25715
  }
26243
25716
  },
26244
- __wbg_upsertAccountRecord_f616812a7dd3d5a1: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17) {
25717
+ __wbg_upsertAccountRecord_793d7ddc0ba72c6d: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17) {
26245
25718
  let deferred0_0;
26246
25719
  let deferred0_1;
26247
25720
  let deferred1_0;
@@ -26283,7 +25756,7 @@ function __wbg_get_imports() {
26283
25756
  wasm.__wbindgen_free(deferred5_0, deferred5_1, 1);
26284
25757
  }
26285
25758
  },
26286
- __wbg_upsertAccountStorage_4f3a4494f26975fb: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25759
+ __wbg_upsertAccountStorage_5e3e18f2388a4516: function(arg0, arg1, arg2, arg3, arg4, arg5) {
26287
25760
  let deferred0_0;
26288
25761
  let deferred0_1;
26289
25762
  try {
@@ -26297,7 +25770,7 @@ function __wbg_get_imports() {
26297
25770
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
26298
25771
  }
26299
25772
  },
26300
- __wbg_upsertForeignAccountCode_6595b4d97e610669: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) {
25773
+ __wbg_upsertForeignAccountCode_dc483b928e37841a: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) {
26301
25774
  let deferred0_0;
26302
25775
  let deferred0_1;
26303
25776
  let deferred2_0;
@@ -26316,7 +25789,7 @@ function __wbg_get_imports() {
26316
25789
  wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
26317
25790
  }
26318
25791
  },
26319
- __wbg_upsertInputNote_850c7540f297f4d4: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20, arg21, arg22, arg23, arg24, arg25, arg26, arg27, arg28) {
25792
+ __wbg_upsertInputNote_570ff0eb47e436a6: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20, arg21, arg22, arg23, arg24, arg25, arg26, arg27, arg28) {
26320
25793
  let deferred0_0;
26321
25794
  let deferred0_1;
26322
25795
  let deferred6_0;
@@ -26365,7 +25838,7 @@ function __wbg_get_imports() {
26365
25838
  wasm.__wbindgen_free(deferred9_0, deferred9_1, 1);
26366
25839
  }
26367
25840
  },
26368
- __wbg_upsertNoteScript_d946217575ba5025: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25841
+ __wbg_upsertNoteScript_478f10dbd569c41c: function(arg0, arg1, arg2, arg3, arg4, arg5) {
26369
25842
  let deferred0_0;
26370
25843
  let deferred0_1;
26371
25844
  try {
@@ -26379,7 +25852,7 @@ function __wbg_get_imports() {
26379
25852
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
26380
25853
  }
26381
25854
  },
26382
- __wbg_upsertOutputNote_907da49377d56a48: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19) {
25855
+ __wbg_upsertOutputNote_81d633e2913e530c: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19) {
26383
25856
  let deferred0_0;
26384
25857
  let deferred0_1;
26385
25858
  let deferred1_0;
@@ -26414,7 +25887,7 @@ function __wbg_get_imports() {
26414
25887
  wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
26415
25888
  }
26416
25889
  },
26417
- __wbg_upsertStorageMapEntries_6bf2d15ad885daf0: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25890
+ __wbg_upsertStorageMapEntries_6458946c680ec0cc: function(arg0, arg1, arg2, arg3, arg4, arg5) {
26418
25891
  let deferred0_0;
26419
25892
  let deferred0_1;
26420
25893
  try {
@@ -26428,7 +25901,7 @@ function __wbg_get_imports() {
26428
25901
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
26429
25902
  }
26430
25903
  },
26431
- __wbg_upsertTransactionRecord_0b4dbeb561124c59: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) {
25904
+ __wbg_upsertTransactionRecord_5f48cbfd35e412bc: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) {
26432
25905
  let deferred0_0;
26433
25906
  let deferred0_1;
26434
25907
  try {
@@ -26449,7 +25922,7 @@ function __wbg_get_imports() {
26449
25922
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
26450
25923
  }
26451
25924
  },
26452
- __wbg_upsertVaultAssets_55f07579c9e0113e: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25925
+ __wbg_upsertVaultAssets_3d383338bd7746b0: function(arg0, arg1, arg2, arg3, arg4, arg5) {
26453
25926
  let deferred0_0;
26454
25927
  let deferred0_1;
26455
25928
  try {
@@ -26480,12 +25953,12 @@ function __wbg_get_imports() {
26480
25953
  return ret;
26481
25954
  },
26482
25955
  __wbindgen_cast_0000000000000001: function(arg0, arg1) {
26483
- // Cast intrinsic for `Closure(Closure { dtor_idx: 427, function: Function { arguments: [Externref], shim_idx: 815, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
25956
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 388, function: Function { arguments: [Externref], shim_idx: 781, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
26484
25957
  const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen_8d8dd5a992b1207e___closure__destroy___dyn_core_9b3796e30d99ddb7___ops__function__FnMut__wasm_bindgen_8d8dd5a992b1207e___JsValue____Output_______, wasm_bindgen_8d8dd5a992b1207e___convert__closures_____invoke___wasm_bindgen_8d8dd5a992b1207e___JsValue_____);
26485
25958
  return ret;
26486
25959
  },
26487
25960
  __wbindgen_cast_0000000000000002: function(arg0, arg1) {
26488
- // Cast intrinsic for `Closure(Closure { dtor_idx: 427, function: Function { arguments: [], shim_idx: 428, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
25961
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 388, function: Function { arguments: [], shim_idx: 389, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
26489
25962
  const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen_8d8dd5a992b1207e___closure__destroy___dyn_core_9b3796e30d99ddb7___ops__function__FnMut__wasm_bindgen_8d8dd5a992b1207e___JsValue____Output_______, wasm_bindgen_8d8dd5a992b1207e___convert__closures_____invoke______);
26490
25963
  return ret;
26491
25964
  },
@@ -26495,91 +25968,79 @@ function __wbg_get_imports() {
26495
25968
  return ret;
26496
25969
  },
26497
25970
  __wbindgen_cast_0000000000000004: function(arg0, arg1) {
26498
- // Cast intrinsic for `Ref(Slice(U8)) -> NamedExternref("Uint8Array")`.
26499
- const ret = getArrayU8FromWasm0(arg0, arg1);
26500
- return ret;
26501
- },
26502
- __wbindgen_cast_0000000000000005: function(arg0, arg1) {
26503
25971
  // Cast intrinsic for `Ref(String) -> Externref`.
26504
25972
  const ret = getStringFromWasm0(arg0, arg1);
26505
25973
  return ret;
26506
25974
  },
26507
- __wbindgen_cast_0000000000000006: function(arg0) {
25975
+ __wbindgen_cast_0000000000000005: function(arg0) {
26508
25976
  // Cast intrinsic for `U64 -> Externref`.
26509
25977
  const ret = BigInt.asUintN(64, arg0);
26510
25978
  return ret;
26511
25979
  },
26512
- __wbindgen_cast_0000000000000007: function(arg0, arg1) {
25980
+ __wbindgen_cast_0000000000000006: function(arg0, arg1) {
26513
25981
  var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
26514
25982
  wasm.__wbindgen_free(arg0, arg1 * 4, 4);
26515
25983
  // Cast intrinsic for `Vector(NamedExternref("AccountHeader")) -> Externref`.
26516
25984
  const ret = v0;
26517
25985
  return ret;
26518
25986
  },
26519
- __wbindgen_cast_0000000000000008: function(arg0, arg1) {
25987
+ __wbindgen_cast_0000000000000007: function(arg0, arg1) {
26520
25988
  var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
26521
25989
  wasm.__wbindgen_free(arg0, arg1 * 4, 4);
26522
25990
  // Cast intrinsic for `Vector(NamedExternref("Address")) -> Externref`.
26523
25991
  const ret = v0;
26524
25992
  return ret;
26525
25993
  },
26526
- __wbindgen_cast_0000000000000009: function(arg0, arg1) {
25994
+ __wbindgen_cast_0000000000000008: function(arg0, arg1) {
26527
25995
  var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
26528
25996
  wasm.__wbindgen_free(arg0, arg1 * 4, 4);
26529
25997
  // Cast intrinsic for `Vector(NamedExternref("ConsumableNoteRecord")) -> Externref`.
26530
25998
  const ret = v0;
26531
25999
  return ret;
26532
26000
  },
26533
- __wbindgen_cast_000000000000000a: function(arg0, arg1) {
26001
+ __wbindgen_cast_0000000000000009: function(arg0, arg1) {
26534
26002
  var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
26535
26003
  wasm.__wbindgen_free(arg0, arg1 * 4, 4);
26536
26004
  // Cast intrinsic for `Vector(NamedExternref("FetchedNote")) -> Externref`.
26537
26005
  const ret = v0;
26538
26006
  return ret;
26539
26007
  },
26540
- __wbindgen_cast_000000000000000b: function(arg0, arg1) {
26008
+ __wbindgen_cast_000000000000000a: function(arg0, arg1) {
26541
26009
  var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
26542
26010
  wasm.__wbindgen_free(arg0, arg1 * 4, 4);
26543
26011
  // Cast intrinsic for `Vector(NamedExternref("InputNoteRecord")) -> Externref`.
26544
26012
  const ret = v0;
26545
26013
  return ret;
26546
26014
  },
26547
- __wbindgen_cast_000000000000000c: function(arg0, arg1) {
26015
+ __wbindgen_cast_000000000000000b: function(arg0, arg1) {
26548
26016
  var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
26549
26017
  wasm.__wbindgen_free(arg0, arg1 * 4, 4);
26550
26018
  // Cast intrinsic for `Vector(NamedExternref("OutputNoteRecord")) -> Externref`.
26551
26019
  const ret = v0;
26552
26020
  return ret;
26553
26021
  },
26554
- __wbindgen_cast_000000000000000d: function(arg0, arg1) {
26555
- var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
26556
- wasm.__wbindgen_free(arg0, arg1 * 4, 4);
26557
- // Cast intrinsic for `Vector(NamedExternref("PswapLineageRecord")) -> Externref`.
26558
- const ret = v0;
26559
- return ret;
26560
- },
26561
- __wbindgen_cast_000000000000000e: function(arg0, arg1) {
26022
+ __wbindgen_cast_000000000000000c: function(arg0, arg1) {
26562
26023
  var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
26563
26024
  wasm.__wbindgen_free(arg0, arg1 * 4, 4);
26564
26025
  // Cast intrinsic for `Vector(NamedExternref("TransactionRecord")) -> Externref`.
26565
26026
  const ret = v0;
26566
26027
  return ret;
26567
26028
  },
26568
- __wbindgen_cast_000000000000000f: function(arg0, arg1) {
26029
+ __wbindgen_cast_000000000000000d: function(arg0, arg1) {
26569
26030
  var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
26570
26031
  wasm.__wbindgen_free(arg0, arg1 * 4, 4);
26571
26032
  // Cast intrinsic for `Vector(NamedExternref("Word")) -> Externref`.
26572
26033
  const ret = v0;
26573
26034
  return ret;
26574
26035
  },
26575
- __wbindgen_cast_0000000000000010: function(arg0, arg1) {
26036
+ __wbindgen_cast_000000000000000e: function(arg0, arg1) {
26576
26037
  var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
26577
26038
  wasm.__wbindgen_free(arg0, arg1 * 4, 4);
26578
26039
  // Cast intrinsic for `Vector(NamedExternref("string")) -> Externref`.
26579
26040
  const ret = v0;
26580
26041
  return ret;
26581
26042
  },
26582
- __wbindgen_cast_0000000000000011: function(arg0, arg1) {
26043
+ __wbindgen_cast_000000000000000f: function(arg0, arg1) {
26583
26044
  var v0 = getArrayU8FromWasm0(arg0, arg1).slice();
26584
26045
  wasm.__wbindgen_free(arg0, arg1 * 1, 1);
26585
26046
  // Cast intrinsic for `Vector(U8) -> Externref`.
@@ -26670,6 +26131,9 @@ const AccountIdFinalization = (typeof FinalizationRegistry === 'undefined')
26670
26131
  const AccountIdArrayFinalization = (typeof FinalizationRegistry === 'undefined')
26671
26132
  ? { register: () => {}, unregister: () => {} }
26672
26133
  : new FinalizationRegistry(ptr => wasm.__wbg_accountidarray_free(ptr >>> 0, 1));
26134
+ const AccountPatchFinalization = (typeof FinalizationRegistry === 'undefined')
26135
+ ? { register: () => {}, unregister: () => {} }
26136
+ : new FinalizationRegistry(ptr => wasm.__wbg_accountpatch_free(ptr >>> 0, 1));
26673
26137
  const AccountProofFinalization = (typeof FinalizationRegistry === 'undefined')
26674
26138
  ? { register: () => {}, unregister: () => {} }
26675
26139
  : new FinalizationRegistry(ptr => wasm.__wbg_accountproof_free(ptr >>> 0, 1));
@@ -26682,18 +26146,21 @@ const AccountStatusFinalization = (typeof FinalizationRegistry === 'undefined')
26682
26146
  const AccountStorageFinalization = (typeof FinalizationRegistry === 'undefined')
26683
26147
  ? { register: () => {}, unregister: () => {} }
26684
26148
  : new FinalizationRegistry(ptr => wasm.__wbg_accountstorage_free(ptr >>> 0, 1));
26685
- const AccountStorageDeltaFinalization = (typeof FinalizationRegistry === 'undefined')
26686
- ? { register: () => {}, unregister: () => {} }
26687
- : new FinalizationRegistry(ptr => wasm.__wbg_accountstoragedelta_free(ptr >>> 0, 1));
26688
26149
  const AccountStorageModeFinalization = (typeof FinalizationRegistry === 'undefined')
26689
26150
  ? { register: () => {}, unregister: () => {} }
26690
26151
  : new FinalizationRegistry(ptr => wasm.__wbg_accountstoragemode_free(ptr >>> 0, 1));
26152
+ const AccountStoragePatchFinalization = (typeof FinalizationRegistry === 'undefined')
26153
+ ? { register: () => {}, unregister: () => {} }
26154
+ : new FinalizationRegistry(ptr => wasm.__wbg_accountstoragepatch_free(ptr >>> 0, 1));
26691
26155
  const AccountStorageRequirementsFinalization = (typeof FinalizationRegistry === 'undefined')
26692
26156
  ? { register: () => {}, unregister: () => {} }
26693
26157
  : new FinalizationRegistry(ptr => wasm.__wbg_accountstoragerequirements_free(ptr >>> 0, 1));
26694
26158
  const AccountVaultDeltaFinalization = (typeof FinalizationRegistry === 'undefined')
26695
26159
  ? { register: () => {}, unregister: () => {} }
26696
26160
  : new FinalizationRegistry(ptr => wasm.__wbg_accountvaultdelta_free(ptr >>> 0, 1));
26161
+ const AccountVaultPatchFinalization = (typeof FinalizationRegistry === 'undefined')
26162
+ ? { register: () => {}, unregister: () => {} }
26163
+ : new FinalizationRegistry(ptr => wasm.__wbg_accountvaultpatch_free(ptr >>> 0, 1));
26697
26164
  const AddressFinalization = (typeof FinalizationRegistry === 'undefined')
26698
26165
  ? { register: () => {}, unregister: () => {} }
26699
26166
  : new FinalizationRegistry(ptr => wasm.__wbg_address_free(ptr >>> 0, 1));
@@ -26730,9 +26197,6 @@ const ConsumableNoteRecordFinalization = (typeof FinalizationRegistry === 'undef
26730
26197
  const EndpointFinalization = (typeof FinalizationRegistry === 'undefined')
26731
26198
  ? { register: () => {}, unregister: () => {} }
26732
26199
  : new FinalizationRegistry(ptr => wasm.__wbg_endpoint_free(ptr >>> 0, 1));
26733
- const EthAddressFinalization = (typeof FinalizationRegistry === 'undefined')
26734
- ? { register: () => {}, unregister: () => {} }
26735
- : new FinalizationRegistry(ptr => wasm.__wbg_ethaddress_free(ptr >>> 0, 1));
26736
26200
  const ExecutedTransactionFinalization = (typeof FinalizationRegistry === 'undefined')
26737
26201
  ? { register: () => {}, unregister: () => {} }
26738
26202
  : new FinalizationRegistry(ptr => wasm.__wbg_executedtransaction_free(ptr >>> 0, 1));
@@ -26811,9 +26275,6 @@ const LibraryFinalization = (typeof FinalizationRegistry === 'undefined')
26811
26275
  const MerklePathFinalization = (typeof FinalizationRegistry === 'undefined')
26812
26276
  ? { register: () => {}, unregister: () => {} }
26813
26277
  : new FinalizationRegistry(ptr => wasm.__wbg_merklepath_free(ptr >>> 0, 1));
26814
- const NetworkAccountTargetFinalization = (typeof FinalizationRegistry === 'undefined')
26815
- ? { register: () => {}, unregister: () => {} }
26816
- : new FinalizationRegistry(ptr => wasm.__wbg_networkaccounttarget_free(ptr >>> 0, 1));
26817
26278
  const NetworkIdFinalization = (typeof FinalizationRegistry === 'undefined')
26818
26279
  ? { register: () => {}, unregister: () => {} }
26819
26280
  : new FinalizationRegistry(ptr => wasm.__wbg_networkid_free(ptr >>> 0, 1));
@@ -26937,9 +26398,6 @@ const ProgramFinalization = (typeof FinalizationRegistry === 'undefined')
26937
26398
  const ProvenTransactionFinalization = (typeof FinalizationRegistry === 'undefined')
26938
26399
  ? { register: () => {}, unregister: () => {} }
26939
26400
  : new FinalizationRegistry(ptr => wasm.__wbg_proventransaction_free(ptr >>> 0, 1));
26940
- const PswapLineageRecordFinalization = (typeof FinalizationRegistry === 'undefined')
26941
- ? { register: () => {}, unregister: () => {} }
26942
- : new FinalizationRegistry(ptr => wasm.__wbg_pswaplineagerecord_free(ptr >>> 0, 1));
26943
26401
  const PublicKeyFinalization = (typeof FinalizationRegistry === 'undefined')
26944
26402
  ? { register: () => {}, unregister: () => {} }
26945
26403
  : new FinalizationRegistry(ptr => wasm.__wbg_publickey_free(ptr >>> 0, 1));
@@ -27432,7 +26890,7 @@ async function __wbg_init(module_or_path) {
27432
26890
 
27433
26891
  const module$1 = new URL("assets/miden_client_web.wasm", self.location.href);
27434
26892
 
27435
- var CargoDR9fiMbE = /*#__PURE__*/Object.freeze({
26893
+ var CargoLwITdlzJ = /*#__PURE__*/Object.freeze({
27436
26894
  __proto__: null,
27437
26895
  Account: Account,
27438
26896
  AccountArray: AccountArray,
@@ -27447,19 +26905,20 @@ var CargoDR9fiMbE = /*#__PURE__*/Object.freeze({
27447
26905
  AccountId: AccountId,
27448
26906
  AccountIdArray: AccountIdArray,
27449
26907
  AccountInterface: AccountInterface,
26908
+ AccountPatch: AccountPatch,
27450
26909
  AccountProof: AccountProof,
27451
26910
  AccountReader: AccountReader,
27452
26911
  AccountStatus: AccountStatus,
27453
26912
  AccountStorage: AccountStorage,
27454
- AccountStorageDelta: AccountStorageDelta,
27455
26913
  AccountStorageMode: AccountStorageMode,
26914
+ AccountStoragePatch: AccountStoragePatch,
27456
26915
  AccountStorageRequirements: AccountStorageRequirements,
27457
26916
  AccountType: AccountType,
27458
26917
  AccountVaultDelta: AccountVaultDelta,
26918
+ AccountVaultPatch: AccountVaultPatch,
27459
26919
  Address: Address,
27460
26920
  AdviceInputs: AdviceInputs,
27461
26921
  AdviceMap: AdviceMap,
27462
- AssetCallbackFlag: AssetCallbackFlag,
27463
26922
  AssetVault: AssetVault,
27464
26923
  AuthFalcon512RpoMultisigConfig: AuthFalcon512RpoMultisigConfig,
27465
26924
  AuthScheme: AuthScheme,
@@ -27470,7 +26929,6 @@ var CargoDR9fiMbE = /*#__PURE__*/Object.freeze({
27470
26929
  CommittedNote: CommittedNote,
27471
26930
  ConsumableNoteRecord: ConsumableNoteRecord,
27472
26931
  Endpoint: Endpoint,
27473
- EthAddress: EthAddress,
27474
26932
  ExecutedTransaction: ExecutedTransaction,
27475
26933
  Felt: Felt,
27476
26934
  FeltArray: FeltArray,
@@ -27498,7 +26956,6 @@ var CargoDR9fiMbE = /*#__PURE__*/Object.freeze({
27498
26956
  JsVaultAsset: JsVaultAsset,
27499
26957
  Library: Library,
27500
26958
  MerklePath: MerklePath,
27501
- NetworkAccountTarget: NetworkAccountTarget,
27502
26959
  NetworkId: NetworkId,
27503
26960
  NetworkNoteStatusInfo: NetworkNoteStatusInfo,
27504
26961
  NetworkType: NetworkType,
@@ -27545,8 +27002,6 @@ var CargoDR9fiMbE = /*#__PURE__*/Object.freeze({
27545
27002
  ProcedureThreshold: ProcedureThreshold,
27546
27003
  Program: Program,
27547
27004
  ProvenTransaction: ProvenTransaction,
27548
- PswapLineageRecord: PswapLineageRecord,
27549
- PswapLineageState: PswapLineageState,
27550
27005
  PublicKey: PublicKey,
27551
27006
  RpcClient: RpcClient,
27552
27007
  Rpo256: Rpo256,