@miden-sdk/miden-sdk 0.15.6 → 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 -137
  2. package/dist/mt/{workers/Cargo-mvyTli7g-BwMMSyoq.js → Cargo-DKsyWYgG.js} +699 -1202
  3. package/dist/mt/Cargo-DKsyWYgG.js.map +1 -0
  4. package/dist/mt/api-types.d.ts +38 -250
  5. package/dist/mt/assets/miden_client_web.wasm +0 -0
  6. package/dist/mt/crates/miden_client_web.d.ts +179 -370
  7. package/dist/mt/docs-entry.d.ts +3 -6
  8. package/dist/mt/eager.js +1 -1
  9. package/dist/mt/index.d.ts +0 -3
  10. package/dist/mt/index.js +49 -450
  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/{Cargo-mvyTli7g.js → workers/Cargo-DKsyWYgG-DfOhgt23.js} +700 -1201
  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 -1207
  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/{workers/Cargo-Cysp4vto-BIw-TeJn.js → Cargo-LwITdlzJ.js} +694 -1195
  23. package/dist/st/Cargo-LwITdlzJ.js.map +1 -0
  24. package/dist/st/api-types.d.ts +38 -250
  25. package/dist/st/assets/miden_client_web.wasm +0 -0
  26. package/dist/st/crates/miden_client_web.d.ts +179 -370
  27. package/dist/st/docs-entry.d.ts +3 -6
  28. package/dist/st/eager.js +1 -1
  29. package/dist/st/index.d.ts +0 -3
  30. package/dist/st/index.js +49 -450
  31. package/dist/st/index.js.map +1 -1
  32. package/dist/st/wasm.js +1 -1
  33. package/dist/st/{Cargo-Cysp4vto.js → workers/Cargo-LwITdlzJ-Dyl2bCwN.js} +695 -1194
  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 -1200
  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 -10
  44. package/js/resources/compiler.js +23 -12
  45. package/js/resources/transactions.js +20 -289
  46. package/js/standalone.js +3 -61
  47. package/package.json +4 -4
  48. package/dist/mt/Cargo-mvyTli7g.js.map +0 -1
  49. package/dist/mt/workers/Cargo-mvyTli7g-BwMMSyoq.js.map +0 -1
  50. package/dist/st/Cargo-Cysp4vto.js.map +0 -1
  51. package/dist/st/workers/Cargo-Cysp4vto-BIw-TeJn.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 CargoMvyTli7g; });
8
+ wasmModule = await Promise.resolve().then(function () { return CargoDKsyWYgG; });
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");
@@ -11502,17 +11451,6 @@ class Account {
11502
11451
  const ret = wasm.account_isFaucet(this.__wbg_ptr);
11503
11452
  return ret !== 0;
11504
11453
  }
11505
- /**
11506
- * Returns true if this is a network account.
11507
- *
11508
- * A network account is a public account whose storage
11509
- * carries the standardized network-account note-script allowlist slot.
11510
- * @returns {boolean}
11511
- */
11512
- isNetworkAccount() {
11513
- const ret = wasm.account_isNetworkAccount(this.__wbg_ptr);
11514
- return ret !== 0;
11515
- }
11516
11454
  /**
11517
11455
  * Returns true if the account has not yet been committed to the chain.
11518
11456
  * @returns {boolean}
@@ -11545,20 +11483,6 @@ class Account {
11545
11483
  const ret = wasm.account_isRegularAccount(this.__wbg_ptr);
11546
11484
  return ret !== 0;
11547
11485
  }
11548
- /**
11549
- * Returns the note-script roots this network account is allowed to
11550
- * consume, or `undefined` if this is not a network account.
11551
- * @returns {Word[] | undefined}
11552
- */
11553
- networkNoteAllowlist() {
11554
- const ret = wasm.account_networkNoteAllowlist(this.__wbg_ptr);
11555
- let v1;
11556
- if (ret[0] !== 0) {
11557
- v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
11558
- wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
11559
- }
11560
- return v1;
11561
- }
11562
11486
  /**
11563
11487
  * Returns the account nonce, which is incremented on every state update.
11564
11488
  * @returns {Felt}
@@ -11912,6 +11836,18 @@ class AccountComponent {
11912
11836
  }
11913
11837
  return AccountComponent.__wrap(ret[0]);
11914
11838
  }
11839
+ /**
11840
+ * Returns the exact compiled code used by this component.
11841
+ *
11842
+ * Link this code when compiling scripts that invoke the component. Rebuilding a library from
11843
+ * the original source can produce different procedure identities than the code installed on
11844
+ * the account.
11845
+ * @returns {AccountComponentCode}
11846
+ */
11847
+ componentCode() {
11848
+ const ret = wasm.accountcomponent_componentCode(this.__wbg_ptr);
11849
+ return AccountComponentCode.__wrap(ret);
11850
+ }
11915
11851
  /**
11916
11852
  * @param {Word} commitment
11917
11853
  * @param {AuthScheme} auth_scheme
@@ -11938,42 +11874,6 @@ class AccountComponent {
11938
11874
  }
11939
11875
  return AccountComponent.__wrap(ret[0]);
11940
11876
  }
11941
- /**
11942
- * Builds the auth component for a network account.
11943
- *
11944
- * A network account is a public account carrying this component: its
11945
- * note-script allowlist is the standardized storage slot the node's
11946
- * network-transaction builder inspects to identify the account as a network
11947
- * account and route matching notes to it for auto-consumption. The account
11948
- * may only consume notes whose script root is in `allowedNoteScriptRoots`
11949
- * (obtain a root via `NoteScript.root()`).
11950
- *
11951
- * `allowedTxScriptRoots` optionally allowlists transaction script roots
11952
- * (from `TransactionScript.root()`) the account will execute. When omitted
11953
- * or empty, the account permits no transaction scripts and deploys and
11954
- * advances via scriptless transactions only. Allowlist a script root only
11955
- * if the script's effect is safe for *every* possible input: a root pins
11956
- * the script's code but not its arguments or advice inputs, which the
11957
- * (arbitrary) transaction submitter controls.
11958
- *
11959
- * # Errors
11960
- * Errors if `allowedNoteScriptRoots` is empty: a network account with no
11961
- * allowlisted note scripts could never consume a note.
11962
- * @param {Word[]} allowed_note_script_roots
11963
- * @param {Word[] | null} [allowed_tx_script_roots]
11964
- * @returns {AccountComponent}
11965
- */
11966
- static createNetworkAuth(allowed_note_script_roots, allowed_tx_script_roots) {
11967
- const ptr0 = passArrayJsValueToWasm0(allowed_note_script_roots, wasm.__wbindgen_malloc);
11968
- const len0 = WASM_VECTOR_LEN;
11969
- var ptr1 = isLikeNone(allowed_tx_script_roots) ? 0 : passArrayJsValueToWasm0(allowed_tx_script_roots, wasm.__wbindgen_malloc);
11970
- var len1 = WASM_VECTOR_LEN;
11971
- const ret = wasm.accountcomponent_createNetworkAuth(ptr0, len0, ptr1, len1);
11972
- if (ret[2]) {
11973
- throw takeFromExternrefTable0(ret[1]);
11974
- }
11975
- return AccountComponent.__wrap(ret[0]);
11976
- }
11977
11877
  /**
11978
11878
  * Creates an account component from a compiled library and storage slots.
11979
11879
  * @param {Library} library
@@ -12100,8 +12000,10 @@ if (Symbol.dispose) AccountComponentCode.prototype[Symbol.dispose] = AccountComp
12100
12000
  * `AccountDelta` stores the differences between two account states.
12101
12001
  *
12102
12002
  * The differences are represented as follows:
12103
- * - `storage`: an `AccountStorageDelta` that contains the changes to the account storage.
12104
- * - `vault`: an `AccountVaultDelta` object that contains the changes to the account vault.
12003
+ * - `storage`: an `AccountStoragePatch` with the absolute final values of changed storage slots
12004
+ * (storage changes have identical semantics in the delta and patch models).
12005
+ * - `vault`: an `AccountVaultDelta` object that contains the relative changes to the account
12006
+ * vault.
12105
12007
  * - `nonce`: if the nonce of the account has changed, the new nonce is stored here.
12106
12008
  */
12107
12009
  class AccountDelta {
@@ -12167,12 +12069,12 @@ class AccountDelta {
12167
12069
  return ret;
12168
12070
  }
12169
12071
  /**
12170
- * Returns the storage delta.
12171
- * @returns {AccountStorageDelta}
12072
+ * Returns the storage patch (storage changes are absolute in both models).
12073
+ * @returns {AccountStoragePatch}
12172
12074
  */
12173
12075
  storage() {
12174
12076
  const ret = wasm.accountdelta_storage(this.__wbg_ptr);
12175
- return AccountStorageDelta.__wrap(ret);
12077
+ return AccountStoragePatch.__wrap(ret);
12176
12078
  }
12177
12079
  /**
12178
12080
  * Returns the vault delta.
@@ -12567,6 +12469,90 @@ const AccountInterface = Object.freeze({
12567
12469
  BasicWallet: 0, "0": "BasicWallet",
12568
12470
  });
12569
12471
 
12472
+ /**
12473
+ * Describes the new absolute account state produced by a transaction.
12474
+ */
12475
+ class AccountPatch {
12476
+ static __wrap(ptr) {
12477
+ ptr = ptr >>> 0;
12478
+ const obj = Object.create(AccountPatch.prototype);
12479
+ obj.__wbg_ptr = ptr;
12480
+ AccountPatchFinalization.register(obj, obj.__wbg_ptr, obj);
12481
+ return obj;
12482
+ }
12483
+ __destroy_into_raw() {
12484
+ const ptr = this.__wbg_ptr;
12485
+ this.__wbg_ptr = 0;
12486
+ AccountPatchFinalization.unregister(this);
12487
+ return ptr;
12488
+ }
12489
+ free() {
12490
+ const ptr = this.__destroy_into_raw();
12491
+ wasm.__wbg_accountpatch_free(ptr, 0);
12492
+ }
12493
+ /**
12494
+ * Deserializes an account patch from bytes.
12495
+ * @param {Uint8Array} bytes
12496
+ * @returns {AccountPatch}
12497
+ */
12498
+ static deserialize(bytes) {
12499
+ const ret = wasm.accountpatch_deserialize(bytes);
12500
+ if (ret[2]) {
12501
+ throw takeFromExternrefTable0(ret[1]);
12502
+ }
12503
+ return AccountPatch.__wrap(ret[0]);
12504
+ }
12505
+ /**
12506
+ * Returns the final nonce, or `None` if it was unchanged.
12507
+ * @returns {Felt | undefined}
12508
+ */
12509
+ finalNonce() {
12510
+ const ret = wasm.accountpatch_finalNonce(this.__wbg_ptr);
12511
+ return ret === 0 ? undefined : Felt.__wrap(ret);
12512
+ }
12513
+ /**
12514
+ * Returns the affected account ID.
12515
+ * @returns {AccountId}
12516
+ */
12517
+ id() {
12518
+ const ret = wasm.accountpatch_id(this.__wbg_ptr);
12519
+ return AccountId.__wrap(ret);
12520
+ }
12521
+ /**
12522
+ * Returns true if this patch contains no state changes.
12523
+ * @returns {boolean}
12524
+ */
12525
+ isEmpty() {
12526
+ const ret = wasm.accountpatch_isEmpty(this.__wbg_ptr);
12527
+ return ret !== 0;
12528
+ }
12529
+ /**
12530
+ * Serializes the account patch into bytes.
12531
+ * @returns {Uint8Array}
12532
+ */
12533
+ serialize() {
12534
+ const ret = wasm.accountpatch_serialize(this.__wbg_ptr);
12535
+ return ret;
12536
+ }
12537
+ /**
12538
+ * Returns the account storage patch.
12539
+ * @returns {AccountStoragePatch}
12540
+ */
12541
+ storage() {
12542
+ const ret = wasm.accountpatch_storage(this.__wbg_ptr);
12543
+ return AccountStoragePatch.__wrap(ret);
12544
+ }
12545
+ /**
12546
+ * Returns the account vault patch.
12547
+ * @returns {AccountVaultPatch}
12548
+ */
12549
+ vault() {
12550
+ const ret = wasm.accountpatch_vault(this.__wbg_ptr);
12551
+ return AccountVaultPatch.__wrap(ret);
12552
+ }
12553
+ }
12554
+ if (Symbol.dispose) AccountPatch.prototype[Symbol.dispose] = AccountPatch.prototype.free;
12555
+
12570
12556
  /**
12571
12557
  * Proof of existence of an account's state at a specific block number, as returned by the node.
12572
12558
  *
@@ -13040,74 +13026,6 @@ class AccountStorage {
13040
13026
  }
13041
13027
  if (Symbol.dispose) AccountStorage.prototype[Symbol.dispose] = AccountStorage.prototype.free;
13042
13028
 
13043
- /**
13044
- * `AccountStorageDelta` stores the differences between two states of account storage.
13045
- *
13046
- * The delta consists of two maps:
13047
- * - A map containing the updates to value storage slots. The keys in this map are indexes of the
13048
- * updated storage slots and the values are the new values for these slots.
13049
- * - A map containing updates to storage maps. The keys in this map are indexes of the updated
13050
- * storage slots and the values are corresponding storage map delta objects.
13051
- */
13052
- class AccountStorageDelta {
13053
- static __wrap(ptr) {
13054
- ptr = ptr >>> 0;
13055
- const obj = Object.create(AccountStorageDelta.prototype);
13056
- obj.__wbg_ptr = ptr;
13057
- AccountStorageDeltaFinalization.register(obj, obj.__wbg_ptr, obj);
13058
- return obj;
13059
- }
13060
- __destroy_into_raw() {
13061
- const ptr = this.__wbg_ptr;
13062
- this.__wbg_ptr = 0;
13063
- AccountStorageDeltaFinalization.unregister(this);
13064
- return ptr;
13065
- }
13066
- free() {
13067
- const ptr = this.__destroy_into_raw();
13068
- wasm.__wbg_accountstoragedelta_free(ptr, 0);
13069
- }
13070
- /**
13071
- * Deserializes a storage delta from bytes.
13072
- * @param {Uint8Array} bytes
13073
- * @returns {AccountStorageDelta}
13074
- */
13075
- static deserialize(bytes) {
13076
- const ret = wasm.accountstoragedelta_deserialize(bytes);
13077
- if (ret[2]) {
13078
- throw takeFromExternrefTable0(ret[1]);
13079
- }
13080
- return AccountStorageDelta.__wrap(ret[0]);
13081
- }
13082
- /**
13083
- * Returns true if no storage slots are changed.
13084
- * @returns {boolean}
13085
- */
13086
- isEmpty() {
13087
- const ret = wasm.accountstoragedelta_isEmpty(this.__wbg_ptr);
13088
- return ret !== 0;
13089
- }
13090
- /**
13091
- * Serializes the storage delta into bytes.
13092
- * @returns {Uint8Array}
13093
- */
13094
- serialize() {
13095
- const ret = wasm.accountstoragedelta_serialize(this.__wbg_ptr);
13096
- return ret;
13097
- }
13098
- /**
13099
- * Returns the new values for modified storage slots.
13100
- * @returns {Word[]}
13101
- */
13102
- values() {
13103
- const ret = wasm.accountstoragedelta_values(this.__wbg_ptr);
13104
- var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
13105
- wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
13106
- return v1;
13107
- }
13108
- }
13109
- if (Symbol.dispose) AccountStorageDelta.prototype[Symbol.dispose] = AccountStorageDelta.prototype.free;
13110
-
13111
13029
  /**
13112
13030
  * Storage visibility mode for an account.
13113
13031
  *
@@ -13190,8 +13108,70 @@ class AccountStorageMode {
13190
13108
  }
13191
13109
  if (Symbol.dispose) AccountStorageMode.prototype[Symbol.dispose] = AccountStorageMode.prototype.free;
13192
13110
 
13193
- class AccountStorageRequirements {
13194
- static __wrap(ptr) {
13111
+ /**
13112
+ * Absolute updates to named account storage slots.
13113
+ */
13114
+ class AccountStoragePatch {
13115
+ static __wrap(ptr) {
13116
+ ptr = ptr >>> 0;
13117
+ const obj = Object.create(AccountStoragePatch.prototype);
13118
+ obj.__wbg_ptr = ptr;
13119
+ AccountStoragePatchFinalization.register(obj, obj.__wbg_ptr, obj);
13120
+ return obj;
13121
+ }
13122
+ __destroy_into_raw() {
13123
+ const ptr = this.__wbg_ptr;
13124
+ this.__wbg_ptr = 0;
13125
+ AccountStoragePatchFinalization.unregister(this);
13126
+ return ptr;
13127
+ }
13128
+ free() {
13129
+ const ptr = this.__destroy_into_raw();
13130
+ wasm.__wbg_accountstoragepatch_free(ptr, 0);
13131
+ }
13132
+ /**
13133
+ * Deserializes a storage patch from bytes.
13134
+ * @param {Uint8Array} bytes
13135
+ * @returns {AccountStoragePatch}
13136
+ */
13137
+ static deserialize(bytes) {
13138
+ const ret = wasm.accountstoragepatch_deserialize(bytes);
13139
+ if (ret[2]) {
13140
+ throw takeFromExternrefTable0(ret[1]);
13141
+ }
13142
+ return AccountStoragePatch.__wrap(ret[0]);
13143
+ }
13144
+ /**
13145
+ * Returns true if no storage slots are changed.
13146
+ * @returns {boolean}
13147
+ */
13148
+ isEmpty() {
13149
+ const ret = wasm.accountstoragepatch_isEmpty(this.__wbg_ptr);
13150
+ return ret !== 0;
13151
+ }
13152
+ /**
13153
+ * Serializes the storage patch into bytes.
13154
+ * @returns {Uint8Array}
13155
+ */
13156
+ serialize() {
13157
+ const ret = wasm.accountstoragepatch_serialize(this.__wbg_ptr);
13158
+ return ret;
13159
+ }
13160
+ /**
13161
+ * Returns the final values for created or updated value slots.
13162
+ * @returns {Word[]}
13163
+ */
13164
+ values() {
13165
+ const ret = wasm.accountstoragepatch_values(this.__wbg_ptr);
13166
+ var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
13167
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
13168
+ return v1;
13169
+ }
13170
+ }
13171
+ if (Symbol.dispose) AccountStoragePatch.prototype[Symbol.dispose] = AccountStoragePatch.prototype.free;
13172
+
13173
+ class AccountStorageRequirements {
13174
+ static __wrap(ptr) {
13195
13175
  ptr = ptr >>> 0;
13196
13176
  const obj = Object.create(AccountStorageRequirements.prototype);
13197
13177
  obj.__wbg_ptr = ptr;
@@ -13333,6 +13313,86 @@ class AccountVaultDelta {
13333
13313
  }
13334
13314
  if (Symbol.dispose) AccountVaultDelta.prototype[Symbol.dispose] = AccountVaultDelta.prototype.free;
13335
13315
 
13316
+ /**
13317
+ * Absolute updates to account vault entries.
13318
+ */
13319
+ class AccountVaultPatch {
13320
+ static __wrap(ptr) {
13321
+ ptr = ptr >>> 0;
13322
+ const obj = Object.create(AccountVaultPatch.prototype);
13323
+ obj.__wbg_ptr = ptr;
13324
+ AccountVaultPatchFinalization.register(obj, obj.__wbg_ptr, obj);
13325
+ return obj;
13326
+ }
13327
+ __destroy_into_raw() {
13328
+ const ptr = this.__wbg_ptr;
13329
+ this.__wbg_ptr = 0;
13330
+ AccountVaultPatchFinalization.unregister(this);
13331
+ return ptr;
13332
+ }
13333
+ free() {
13334
+ const ptr = this.__destroy_into_raw();
13335
+ wasm.__wbg_accountvaultpatch_free(ptr, 0);
13336
+ }
13337
+ /**
13338
+ * Deserializes a vault patch from bytes.
13339
+ * @param {Uint8Array} bytes
13340
+ * @returns {AccountVaultPatch}
13341
+ */
13342
+ static deserialize(bytes) {
13343
+ const ret = wasm.accountvaultpatch_deserialize(bytes);
13344
+ if (ret[2]) {
13345
+ throw takeFromExternrefTable0(ret[1]);
13346
+ }
13347
+ return AccountVaultPatch.__wrap(ret[0]);
13348
+ }
13349
+ /**
13350
+ * Returns true if no vault entries are changed.
13351
+ * @returns {boolean}
13352
+ */
13353
+ isEmpty() {
13354
+ const ret = wasm.accountstoragepatch_isEmpty(this.__wbg_ptr);
13355
+ return ret !== 0;
13356
+ }
13357
+ /**
13358
+ * Returns the number of changed vault entries.
13359
+ * @returns {number}
13360
+ */
13361
+ numAssets() {
13362
+ const ret = wasm.accountvaultpatch_numAssets(this.__wbg_ptr);
13363
+ return ret >>> 0;
13364
+ }
13365
+ /**
13366
+ * Returns the IDs of removed assets as their canonical words.
13367
+ * @returns {Word[]}
13368
+ */
13369
+ removedAssetIds() {
13370
+ const ret = wasm.accountvaultpatch_removedAssetIds(this.__wbg_ptr);
13371
+ var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
13372
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
13373
+ return v1;
13374
+ }
13375
+ /**
13376
+ * Serializes the vault patch into bytes.
13377
+ * @returns {Uint8Array}
13378
+ */
13379
+ serialize() {
13380
+ const ret = wasm.accountvaultpatch_serialize(this.__wbg_ptr);
13381
+ return ret;
13382
+ }
13383
+ /**
13384
+ * Returns fungible assets whose final balance was added or updated.
13385
+ * @returns {FungibleAsset[]}
13386
+ */
13387
+ updatedFungibleAssets() {
13388
+ const ret = wasm.accountvaultpatch_updatedFungibleAssets(this.__wbg_ptr);
13389
+ var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
13390
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
13391
+ return v1;
13392
+ }
13393
+ }
13394
+ if (Symbol.dispose) AccountVaultPatch.prototype[Symbol.dispose] = AccountVaultPatch.prototype.free;
13395
+
13336
13396
  /**
13337
13397
  * Representation of a Miden address (account ID plus routing parameters).
13338
13398
  */
@@ -13524,13 +13584,6 @@ if (Symbol.dispose) AdviceInputs.prototype[Symbol.dispose] = AdviceInputs.protot
13524
13584
  * Map of advice values keyed by words for script execution.
13525
13585
  */
13526
13586
  class AdviceMap {
13527
- static __wrap(ptr) {
13528
- ptr = ptr >>> 0;
13529
- const obj = Object.create(AdviceMap.prototype);
13530
- obj.__wbg_ptr = ptr;
13531
- AdviceMapFinalization.register(obj, obj.__wbg_ptr, obj);
13532
- return obj;
13533
- }
13534
13587
  __destroy_into_raw() {
13535
13588
  const ptr = this.__wbg_ptr;
13536
13589
  this.__wbg_ptr = 0;
@@ -13852,13 +13905,10 @@ class AuthSecretKey {
13852
13905
  if (Symbol.dispose) AuthSecretKey.prototype[Symbol.dispose] = AuthSecretKey.prototype.free;
13853
13906
 
13854
13907
  /**
13855
- * Provides metadata for a fungible faucet account component.
13908
+ * Provides metadata for a basic fungible faucet account component.
13856
13909
  *
13857
- * Reads the on-chain `FungibleFaucet` component for the account, which holds the per-token
13858
- * info (symbol, decimals, supply, and the descriptive metadata). The same component backs both
13859
- * "basic" public faucets and network-style faucets — in the current protocol the distinction is
13860
- * a function of the surrounding account configuration (account type, auth, access control), not
13861
- * of the faucet component itself — so this reads metadata from either kind of faucet account.
13910
+ * Reads the on-chain [`FungibleFaucet`] component for the account, which holds the
13911
+ * per-token info (symbol/decimals/maxSupply).
13862
13912
  */
13863
13913
  class BasicFungibleFaucetComponent {
13864
13914
  static __wrap(ptr) {
@@ -13886,32 +13936,6 @@ class BasicFungibleFaucetComponent {
13886
13936
  const ret = wasm.basicfungiblefaucetcomponent_decimals(this.__wbg_ptr);
13887
13937
  return ret;
13888
13938
  }
13889
- /**
13890
- * Returns the optional free-form token description, or `undefined` when unset.
13891
- * @returns {string | undefined}
13892
- */
13893
- description() {
13894
- const ret = wasm.basicfungiblefaucetcomponent_description(this.__wbg_ptr);
13895
- let v1;
13896
- if (ret[0] !== 0) {
13897
- v1 = getStringFromWasm0(ret[0], ret[1]).slice();
13898
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
13899
- }
13900
- return v1;
13901
- }
13902
- /**
13903
- * Returns the optional external link (e.g. project website), or `undefined` when unset.
13904
- * @returns {string | undefined}
13905
- */
13906
- externalLink() {
13907
- const ret = wasm.basicfungiblefaucetcomponent_externalLink(this.__wbg_ptr);
13908
- let v1;
13909
- if (ret[0] !== 0) {
13910
- v1 = getStringFromWasm0(ret[0], ret[1]).slice();
13911
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
13912
- }
13913
- return v1;
13914
- }
13915
13939
  /**
13916
13940
  * Extracts faucet metadata from an account.
13917
13941
  * @param {Account} account
@@ -13926,19 +13950,6 @@ class BasicFungibleFaucetComponent {
13926
13950
  }
13927
13951
  return BasicFungibleFaucetComponent.__wrap(ret[0]);
13928
13952
  }
13929
- /**
13930
- * Returns the optional token logo URI, or `undefined` when unset.
13931
- * @returns {string | undefined}
13932
- */
13933
- logoUri() {
13934
- const ret = wasm.basicfungiblefaucetcomponent_logoUri(this.__wbg_ptr);
13935
- let v1;
13936
- if (ret[0] !== 0) {
13937
- v1 = getStringFromWasm0(ret[0], ret[1]).slice();
13938
- wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
13939
- }
13940
- return v1;
13941
- }
13942
13953
  /**
13943
13954
  * Returns the maximum token supply.
13944
13955
  * @returns {Felt}
@@ -13955,30 +13966,6 @@ class BasicFungibleFaucetComponent {
13955
13966
  const ret = wasm.basicfungiblefaucetcomponent_symbol(this.__wbg_ptr);
13956
13967
  return TokenSymbol.__wrap(ret);
13957
13968
  }
13958
- /**
13959
- * Returns the human-readable token name.
13960
- * @returns {string}
13961
- */
13962
- tokenName() {
13963
- let deferred1_0;
13964
- let deferred1_1;
13965
- try {
13966
- const ret = wasm.basicfungiblefaucetcomponent_tokenName(this.__wbg_ptr);
13967
- deferred1_0 = ret[0];
13968
- deferred1_1 = ret[1];
13969
- return getStringFromWasm0(ret[0], ret[1]);
13970
- } finally {
13971
- wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
13972
- }
13973
- }
13974
- /**
13975
- * Returns the current token supply (the amount minted so far).
13976
- * @returns {Felt}
13977
- */
13978
- tokenSupply() {
13979
- const ret = wasm.basicfungiblefaucetcomponent_tokenSupply(this.__wbg_ptr);
13980
- return Felt.__wrap(ret);
13981
- }
13982
13969
  }
13983
13970
  if (Symbol.dispose) BasicFungibleFaucetComponent.prototype[Symbol.dispose] = BasicFungibleFaucetComponent.prototype.free;
13984
13971
 
@@ -14039,7 +14026,7 @@ class BlockHeader {
14039
14026
  * @returns {Word}
14040
14027
  */
14041
14028
  commitment() {
14042
- const ret = wasm.blockheader_commitment(this.__wbg_ptr);
14029
+ const ret = wasm.accountbuilderresult_seed(this.__wbg_ptr);
14043
14030
  return Word.__wrap(ret);
14044
14031
  }
14045
14032
  /**
@@ -14084,7 +14071,7 @@ class BlockHeader {
14084
14071
  * @returns {Word}
14085
14072
  */
14086
14073
  proofCommitment() {
14087
- const ret = wasm.blockheader_commitment(this.__wbg_ptr);
14074
+ const ret = wasm.accountbuilderresult_seed(this.__wbg_ptr);
14088
14075
  return Word.__wrap(ret);
14089
14076
  }
14090
14077
  /**
@@ -14193,6 +14180,26 @@ class CodeBuilder {
14193
14180
  }
14194
14181
  return AccountComponentCode.__wrap(ret[0]);
14195
14182
  }
14183
+ /**
14184
+ * Compiles account component code under an explicit module path.
14185
+ *
14186
+ * The module path is part of procedure identity in Miden Assembly 0.25. Callers that also
14187
+ * link this component into a transaction script must use the same path for both operations.
14188
+ * @param {string} component_path
14189
+ * @param {string} account_code
14190
+ * @returns {AccountComponentCode}
14191
+ */
14192
+ compileAccountComponentCodeWithPath(component_path, account_code) {
14193
+ const ptr0 = passStringToWasm0(component_path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
14194
+ const len0 = WASM_VECTOR_LEN;
14195
+ const ptr1 = passStringToWasm0(account_code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
14196
+ const len1 = WASM_VECTOR_LEN;
14197
+ const ret = wasm.codebuilder_compileAccountComponentCodeWithPath(this.__wbg_ptr, ptr0, len0, ptr1, len1);
14198
+ if (ret[2]) {
14199
+ throw takeFromExternrefTable0(ret[1]);
14200
+ }
14201
+ return AccountComponentCode.__wrap(ret[0]);
14202
+ }
14196
14203
  /**
14197
14204
  * Given a Note Script's source code, compiles it with the available
14198
14205
  * modules under this builder. Returns the compiled script.
@@ -14223,6 +14230,20 @@ class CodeBuilder {
14223
14230
  }
14224
14231
  return TransactionScript.__wrap(ret[0]);
14225
14232
  }
14233
+ /**
14234
+ * Dynamically links the exact library installed by an account component.
14235
+ *
14236
+ * Use this for component procedures that are available on-chain and invoked with dynamic
14237
+ * calls, including foreign procedure invocation.
14238
+ * @param {AccountComponentCode} account_component_code
14239
+ */
14240
+ linkDynamicAccountComponentCode(account_component_code) {
14241
+ _assertClass(account_component_code, AccountComponentCode);
14242
+ const ret = wasm.codebuilder_linkDynamicAccountComponentCode(this.__wbg_ptr, account_component_code.__wbg_ptr);
14243
+ if (ret[1]) {
14244
+ throw takeFromExternrefTable0(ret[0]);
14245
+ }
14246
+ }
14226
14247
  /**
14227
14248
  * This is useful to dynamically link the {@link Library} of a foreign account
14228
14249
  * that is invoked using foreign procedure invocation (FPI). Its code is available
@@ -14255,6 +14276,20 @@ class CodeBuilder {
14255
14276
  throw takeFromExternrefTable0(ret[0]);
14256
14277
  }
14257
14278
  }
14279
+ /**
14280
+ * Statically links the exact library installed by an account component.
14281
+ *
14282
+ * This should be preferred over rebuilding the component source with `buildLibrary`, because
14283
+ * the installed component code is the source of truth for its procedure identities.
14284
+ * @param {AccountComponentCode} account_component_code
14285
+ */
14286
+ linkStaticAccountComponentCode(account_component_code) {
14287
+ _assertClass(account_component_code, AccountComponentCode);
14288
+ const ret = wasm.codebuilder_linkStaticAccountComponentCode(this.__wbg_ptr, account_component_code.__wbg_ptr);
14289
+ if (ret[1]) {
14290
+ throw takeFromExternrefTable0(ret[0]);
14291
+ }
14292
+ }
14258
14293
  /**
14259
14294
  * Statically links the given library.
14260
14295
  *
@@ -14546,111 +14581,13 @@ class Endpoint {
14546
14581
  }
14547
14582
  if (Symbol.dispose) Endpoint.prototype[Symbol.dispose] = Endpoint.prototype.free;
14548
14583
 
14549
- /**
14550
- * A 20-byte Ethereum address, used as the destination of an `AggLayer` bridge-out (B2AGG) note.
14551
- *
14552
- * Construct one from a hex string with [`EthAddress::from_hex`] (the `0x` prefix is optional) or
14553
- * from raw bytes with [`EthAddress::from_bytes`]. The canonical lowercase, `0x`-prefixed hex form
14554
- * is available via [`EthAddress::to_hex`] (also exposed as `toString`).
14555
- */
14556
- class EthAddress {
14557
- static __wrap(ptr) {
14558
- ptr = ptr >>> 0;
14559
- const obj = Object.create(EthAddress.prototype);
14560
- obj.__wbg_ptr = ptr;
14561
- EthAddressFinalization.register(obj, obj.__wbg_ptr, obj);
14562
- return obj;
14563
- }
14564
- __destroy_into_raw() {
14565
- const ptr = this.__wbg_ptr;
14566
- this.__wbg_ptr = 0;
14567
- EthAddressFinalization.unregister(this);
14568
- return ptr;
14569
- }
14570
- free() {
14571
- const ptr = this.__destroy_into_raw();
14572
- wasm.__wbg_ethaddress_free(ptr, 0);
14573
- }
14574
- /**
14575
- * Builds an Ethereum address from its raw 20-byte big-endian representation.
14576
- *
14577
- * Returns an error if the input is not exactly 20 bytes long.
14578
- * @param {Uint8Array} bytes
14579
- * @returns {EthAddress}
14580
- */
14581
- static fromBytes(bytes) {
14582
- const ret = wasm.ethaddress_fromBytes(bytes);
14583
- if (ret[2]) {
14584
- throw takeFromExternrefTable0(ret[1]);
14585
- }
14586
- return EthAddress.__wrap(ret[0]);
14587
- }
14588
- /**
14589
- * Builds an Ethereum address from a hex string (with or without the `0x` prefix).
14590
- *
14591
- * Returns an error if the string is not valid hex or does not encode exactly 20 bytes.
14592
- * @param {string} hex
14593
- * @returns {EthAddress}
14594
- */
14595
- static fromHex(hex) {
14596
- const ptr0 = passStringToWasm0(hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
14597
- const len0 = WASM_VECTOR_LEN;
14598
- const ret = wasm.ethaddress_fromHex(ptr0, len0);
14599
- if (ret[2]) {
14600
- throw takeFromExternrefTable0(ret[1]);
14601
- }
14602
- return EthAddress.__wrap(ret[0]);
14603
- }
14604
- /**
14605
- * Returns the raw 20-byte big-endian representation of the address.
14606
- * @returns {Uint8Array}
14607
- */
14608
- toBytes() {
14609
- const ret = wasm.ethaddress_toBytes(this.__wbg_ptr);
14610
- return ret;
14611
- }
14612
- /**
14613
- * Returns the canonical lowercase, `0x`-prefixed hex representation of the address.
14614
- * @returns {string}
14615
- */
14616
- toHex() {
14617
- let deferred1_0;
14618
- let deferred1_1;
14619
- try {
14620
- const ret = wasm.ethaddress_toHex(this.__wbg_ptr);
14621
- deferred1_0 = ret[0];
14622
- deferred1_1 = ret[1];
14623
- return getStringFromWasm0(ret[0], ret[1]);
14624
- } finally {
14625
- wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
14626
- }
14627
- }
14628
- /**
14629
- * Returns the canonical lowercase, `0x`-prefixed hex representation of the address.
14630
- * @returns {string}
14631
- */
14632
- toString() {
14633
- let deferred1_0;
14634
- let deferred1_1;
14635
- try {
14636
- const ret = wasm.ethaddress_toString(this.__wbg_ptr);
14637
- deferred1_0 = ret[0];
14638
- deferred1_1 = ret[1];
14639
- return getStringFromWasm0(ret[0], ret[1]);
14640
- } finally {
14641
- wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
14642
- }
14643
- }
14644
- }
14645
- if (Symbol.dispose) EthAddress.prototype[Symbol.dispose] = EthAddress.prototype.free;
14646
-
14647
14584
  /**
14648
14585
  * Describes the result of executing a transaction program for the Miden protocol.
14649
14586
  *
14650
14587
  * Executed transaction serves two primary purposes:
14651
14588
  * - It contains a complete description of the effects of the transaction. Specifically, it
14652
- * contains all output notes created as the result of the transaction and describes all the
14653
- * changes made to the involved account (i.e., the account delta).
14589
+ * contains all output notes created as the result of the transaction and the absolute-valued
14590
+ * account patch produced by execution.
14654
14591
  * - It contains all the information required to re-execute and prove the transaction in a
14655
14592
  * stateless manner. This includes all public transaction inputs, but also all nondeterministic
14656
14593
  * inputs that the host provided to Miden VM while executing the transaction (i.e., advice
@@ -14674,14 +14611,6 @@ class ExecutedTransaction {
14674
14611
  const ptr = this.__destroy_into_raw();
14675
14612
  wasm.__wbg_executedtransaction_free(ptr, 0);
14676
14613
  }
14677
- /**
14678
- * Returns the account delta resulting from execution.
14679
- * @returns {AccountDelta}
14680
- */
14681
- accountDelta() {
14682
- const ret = wasm.executedtransaction_accountDelta(this.__wbg_ptr);
14683
- return AccountDelta.__wrap(ret);
14684
- }
14685
14614
  /**
14686
14615
  * Returns the account the transaction was executed against.
14687
14616
  * @returns {AccountId}
@@ -14690,6 +14619,14 @@ class ExecutedTransaction {
14690
14619
  const ret = wasm.executedtransaction_accountId(this.__wbg_ptr);
14691
14620
  return AccountId.__wrap(ret);
14692
14621
  }
14622
+ /**
14623
+ * Returns the absolute account patch resulting from execution.
14624
+ * @returns {AccountPatch}
14625
+ */
14626
+ accountPatch() {
14627
+ const ret = wasm.executedtransaction_accountPatch(this.__wbg_ptr);
14628
+ return AccountPatch.__wrap(ret);
14629
+ }
14693
14630
  /**
14694
14631
  * Returns the block header that included the transaction.
14695
14632
  * @returns {BlockHeader}
@@ -14962,7 +14899,7 @@ class FetchedAccount {
14962
14899
  * @returns {number}
14963
14900
  */
14964
14901
  lastBlockNum() {
14965
- const ret = wasm.accountproof_blockNum(this.__wbg_ptr);
14902
+ const ret = wasm.fetchedaccount_lastBlockNum(this.__wbg_ptr);
14966
14903
  return ret >>> 0;
14967
14904
  }
14968
14905
  }
@@ -15408,7 +15345,7 @@ class FungibleAssetDelta {
15408
15345
  * @returns {boolean}
15409
15346
  */
15410
15347
  isEmpty() {
15411
- const ret = wasm.accountstoragedelta_isEmpty(this.__wbg_ptr);
15348
+ const ret = wasm.accountstoragepatch_isEmpty(this.__wbg_ptr);
15412
15349
  return ret !== 0;
15413
15350
  }
15414
15351
  /**
@@ -15416,7 +15353,7 @@ class FungibleAssetDelta {
15416
15353
  * @returns {number}
15417
15354
  */
15418
15355
  numAssets() {
15419
- const ret = wasm.fungibleassetdelta_numAssets(this.__wbg_ptr);
15356
+ const ret = wasm.accountvaultpatch_numAssets(this.__wbg_ptr);
15420
15357
  return ret >>> 0;
15421
15358
  }
15422
15359
  /**
@@ -15719,16 +15656,6 @@ class InputNoteRecord {
15719
15656
  const ret = wasm.inputnoterecord_isConsumed(this.__wbg_ptr);
15720
15657
  return ret !== 0;
15721
15658
  }
15722
- /**
15723
- * Returns true while the note's on-chain inclusion is still unsettled
15724
- * (`Expected` or `Unverified`), i.e. while sync is the mechanism that can
15725
- * advance this record.
15726
- * @returns {boolean}
15727
- */
15728
- isInclusionPending() {
15729
- const ret = wasm.inputnoterecord_isInclusionPending(this.__wbg_ptr);
15730
- return ret !== 0;
15731
- }
15732
15659
  /**
15733
15660
  * Returns true if the note is currently being processed.
15734
15661
  * @returns {boolean}
@@ -16459,13 +16386,12 @@ class JsStateSyncUpdate {
16459
16386
  return v1;
16460
16387
  }
16461
16388
  /**
16462
- * Serialized MMR peaks at the new sync height (single set for the whole update).
16463
- * Written onto the chain-tip block's `blockHeaders` row (the one whose
16464
- * `blockNum` matches `block_num`) and read back by `getCurrentBlockchainPeaks`.
16389
+ * Serialized MMR peaks at the new sync height. The only peaks persisted by the
16390
+ * client (peaks for intermediate note blocks are never read, so they are not stored).
16465
16391
  * @returns {Uint8Array}
16466
16392
  */
16467
- get partialBlockchainPeaks() {
16468
- const ret = wasm.__wbg_get_jsstatesyncupdate_partialBlockchainPeaks(this.__wbg_ptr);
16393
+ get newPeaks() {
16394
+ const ret = wasm.__wbg_get_jsstatesyncupdate_newPeaks(this.__wbg_ptr);
16469
16395
  var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
16470
16396
  wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
16471
16397
  return v1;
@@ -16578,15 +16504,14 @@ class JsStateSyncUpdate {
16578
16504
  wasm.__wbg_set_jsstatesyncupdate_newBlockNums(this.__wbg_ptr, ptr0, len0);
16579
16505
  }
16580
16506
  /**
16581
- * Serialized MMR peaks at the new sync height (single set for the whole update).
16582
- * Written onto the chain-tip block's `blockHeaders` row (the one whose
16583
- * `blockNum` matches `block_num`) and read back by `getCurrentBlockchainPeaks`.
16507
+ * Serialized MMR peaks at the new sync height. The only peaks persisted by the
16508
+ * client (peaks for intermediate note blocks are never read, so they are not stored).
16584
16509
  * @param {Uint8Array} arg0
16585
16510
  */
16586
- set partialBlockchainPeaks(arg0) {
16511
+ set newPeaks(arg0) {
16587
16512
  const ptr0 = passArray8ToWasm0(arg0, wasm.__wbindgen_malloc);
16588
16513
  const len0 = WASM_VECTOR_LEN;
16589
- wasm.__wbg_set_jsstatesyncupdate_partialBlockchainPeaks(this.__wbg_ptr, ptr0, len0);
16514
+ wasm.__wbg_set_jsstatesyncupdate_newPeaks(this.__wbg_ptr, ptr0, len0);
16590
16515
  }
16591
16516
  /**
16592
16517
  * Input notes for this state update in serialized form.
@@ -16774,6 +16699,17 @@ class JsStorageSlot {
16774
16699
  const ptr = this.__destroy_into_raw();
16775
16700
  wasm.__wbg_jsstorageslot_free(ptr, 0);
16776
16701
  }
16702
+ /**
16703
+ * The storage patch operation (create, update, or remove).
16704
+ *
16705
+ * Full-state writes do not inspect this field, but incremental writes use it to distinguish
16706
+ * map replacement/removal from an entry-wise update.
16707
+ * @returns {number}
16708
+ */
16709
+ get patchOperation() {
16710
+ const ret = wasm.__wbg_get_jsstorageslot_patchOperation(this.__wbg_ptr);
16711
+ return ret;
16712
+ }
16777
16713
  /**
16778
16714
  * The name of the storage slot.
16779
16715
  * @returns {string}
@@ -16814,6 +16750,16 @@ class JsStorageSlot {
16814
16750
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
16815
16751
  }
16816
16752
  }
16753
+ /**
16754
+ * The storage patch operation (create, update, or remove).
16755
+ *
16756
+ * Full-state writes do not inspect this field, but incremental writes use it to distinguish
16757
+ * map replacement/removal from an entry-wise update.
16758
+ * @param {number} arg0
16759
+ */
16760
+ set patchOperation(arg0) {
16761
+ wasm.__wbg_set_jsstorageslot_patchOperation(this.__wbg_ptr, arg0);
16762
+ }
16817
16763
  /**
16818
16764
  * The name of the storage slot.
16819
16765
  * @param {string} arg0
@@ -17015,97 +16961,6 @@ class MerklePath {
17015
16961
  }
17016
16962
  if (Symbol.dispose) MerklePath.prototype[Symbol.dispose] = MerklePath.prototype.free;
17017
16963
 
17018
- /**
17019
- * Targets a note at a public network account so the operator auto-consumes it.
17020
- *
17021
- * A note is a network note when it is `Public` and carries a valid
17022
- * `NetworkAccountTarget` attachment (see `Note.isNetworkNote`).
17023
- */
17024
- class NetworkAccountTarget {
17025
- static __wrap(ptr) {
17026
- ptr = ptr >>> 0;
17027
- const obj = Object.create(NetworkAccountTarget.prototype);
17028
- obj.__wbg_ptr = ptr;
17029
- NetworkAccountTargetFinalization.register(obj, obj.__wbg_ptr, obj);
17030
- return obj;
17031
- }
17032
- __destroy_into_raw() {
17033
- const ptr = this.__wbg_ptr;
17034
- this.__wbg_ptr = 0;
17035
- NetworkAccountTargetFinalization.unregister(this);
17036
- return ptr;
17037
- }
17038
- free() {
17039
- const ptr = this.__destroy_into_raw();
17040
- wasm.__wbg_networkaccounttarget_free(ptr, 0);
17041
- }
17042
- /**
17043
- * Returns the note execution hint.
17044
- * @returns {NoteExecutionHint}
17045
- */
17046
- executionHint() {
17047
- const ret = wasm.networkaccounttarget_executionHint(this.__wbg_ptr);
17048
- return NoteExecutionHint.__wrap(ret);
17049
- }
17050
- /**
17051
- * Decodes a `NoteAttachment` back into a `NetworkAccountTarget`.
17052
- *
17053
- * # Errors
17054
- * Errors if the attachment is not a valid network-account-target attachment.
17055
- * @param {NoteAttachment} attachment
17056
- * @returns {NetworkAccountTarget}
17057
- */
17058
- static fromAttachment(attachment) {
17059
- _assertClass(attachment, NoteAttachment);
17060
- const ret = wasm.networkaccounttarget_fromAttachment(attachment.__wbg_ptr);
17061
- if (ret[2]) {
17062
- throw takeFromExternrefTable0(ret[1]);
17063
- }
17064
- return NetworkAccountTarget.__wrap(ret[0]);
17065
- }
17066
- /**
17067
- * Creates a target for the given network account. `executionHint` defaults
17068
- * to `NoteExecutionHint.always()`.
17069
- *
17070
- * # Errors
17071
- * Errors if `account_id` is not a public account.
17072
- * @param {AccountId} account_id
17073
- * @param {NoteExecutionHint | null} [execution_hint]
17074
- */
17075
- constructor(account_id, execution_hint) {
17076
- _assertClass(account_id, AccountId);
17077
- let ptr0 = 0;
17078
- if (!isLikeNone(execution_hint)) {
17079
- _assertClass(execution_hint, NoteExecutionHint);
17080
- ptr0 = execution_hint.__destroy_into_raw();
17081
- }
17082
- const ret = wasm.networkaccounttarget_new(account_id.__wbg_ptr, ptr0);
17083
- if (ret[2]) {
17084
- throw takeFromExternrefTable0(ret[1]);
17085
- }
17086
- this.__wbg_ptr = ret[0] >>> 0;
17087
- NetworkAccountTargetFinalization.register(this, this.__wbg_ptr, this);
17088
- return this;
17089
- }
17090
- /**
17091
- * Returns the targeted network account id.
17092
- * @returns {AccountId}
17093
- */
17094
- targetId() {
17095
- const ret = wasm.accountreader_accountId(this.__wbg_ptr);
17096
- return AccountId.__wrap(ret);
17097
- }
17098
- /**
17099
- * Encodes this target as a `NoteAttachment`.
17100
- * @returns {NoteAttachment}
17101
- */
17102
- toAttachment() {
17103
- const ret = wasm.networkaccounttarget_toAttachment(this.__wbg_ptr);
17104
- return NoteAttachment.__wrap(ret);
17105
- }
17106
- }
17107
- if (Symbol.dispose) NetworkAccountTarget.prototype[Symbol.dispose] = NetworkAccountTarget.prototype.free;
17108
-
17109
16964
  /**
17110
16965
  * The identifier of a Miden network.
17111
16966
  */
@@ -17299,16 +17154,6 @@ class Note {
17299
17154
  const ret = wasm.note_assets(this.__wbg_ptr);
17300
17155
  return NoteAssets.__wrap(ret);
17301
17156
  }
17302
- /**
17303
- * Returns the note's attachments.
17304
- * @returns {NoteAttachment[]}
17305
- */
17306
- attachments() {
17307
- const ret = wasm.note_attachments(this.__wbg_ptr);
17308
- var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
17309
- wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
17310
- return v1;
17311
- }
17312
17157
  /**
17313
17158
  * Returns the commitment to the note (its ID).
17314
17159
  *
@@ -17318,35 +17163,9 @@ class Note {
17318
17163
  * unchanged.
17319
17164
  * @returns {Word}
17320
17165
  */
17321
- commitment() {
17322
- const ret = wasm.note_commitment(this.__wbg_ptr);
17323
- return Word.__wrap(ret);
17324
- }
17325
- /**
17326
- * Builds a B2AGG (Bridge-to-AggLayer) note that bridges the given assets out to another
17327
- * network via the `AggLayer`.
17328
- *
17329
- * The note is always public and is consumed by `bridge_account`, which burns the assets so
17330
- * they can be claimed on the destination network at `destination_address` (an Ethereum
17331
- * address on the AggLayer-assigned `destination_network`). The assets must be fungible assets
17332
- * issued by a network faucet.
17333
- * @param {AccountId} sender
17334
- * @param {AccountId} bridge_account
17335
- * @param {NoteAssets} assets
17336
- * @param {number} destination_network
17337
- * @param {EthAddress} destination_address
17338
- * @returns {Note}
17339
- */
17340
- static createB2AggNote(sender, bridge_account, assets, destination_network, destination_address) {
17341
- _assertClass(sender, AccountId);
17342
- _assertClass(bridge_account, AccountId);
17343
- _assertClass(assets, NoteAssets);
17344
- _assertClass(destination_address, EthAddress);
17345
- const ret = wasm.note_createB2AggNote(sender.__wbg_ptr, bridge_account.__wbg_ptr, assets.__wbg_ptr, destination_network, destination_address.__wbg_ptr);
17346
- if (ret[2]) {
17347
- throw takeFromExternrefTable0(ret[1]);
17348
- }
17349
- return Note.__wrap(ret[0]);
17166
+ commitment() {
17167
+ const ret = wasm.note_commitment(this.__wbg_ptr);
17168
+ return Word.__wrap(ret);
17350
17169
  }
17351
17170
  /**
17352
17171
  * Builds a P2IDE note that can be reclaimed or timelocked based on block heights.
@@ -17410,15 +17229,6 @@ class Note {
17410
17229
  const ret = wasm.note_commitment(this.__wbg_ptr);
17411
17230
  return NoteId.__wrap(ret);
17412
17231
  }
17413
- /**
17414
- * Returns true if the note is a network note (public + a valid
17415
- * `NetworkAccountTarget` attachment).
17416
- * @returns {boolean}
17417
- */
17418
- isNetworkNote() {
17419
- const ret = wasm.note_isNetworkNote(this.__wbg_ptr);
17420
- return ret !== 0;
17421
- }
17422
17232
  /**
17423
17233
  * Returns the public metadata associated with the note.
17424
17234
  * @returns {NoteMetadata}
@@ -17478,30 +17288,6 @@ class Note {
17478
17288
  const ret = wasm.note_serialize(this.__wbg_ptr);
17479
17289
  return ret;
17480
17290
  }
17481
- /**
17482
- * Creates a note carrying the provided attachments, using the metadata's
17483
- * sender / note type / tag (attachments on the metadata itself are ignored).
17484
- *
17485
- * # Errors
17486
- * Errors if the attachment set is invalid (too many attachments or words).
17487
- * @param {NoteAssets} note_assets
17488
- * @param {NoteMetadata} note_metadata
17489
- * @param {NoteRecipient} note_recipient
17490
- * @param {NoteAttachment[]} attachments
17491
- * @returns {Note}
17492
- */
17493
- static withAttachments(note_assets, note_metadata, note_recipient, attachments) {
17494
- _assertClass(note_assets, NoteAssets);
17495
- _assertClass(note_metadata, NoteMetadata);
17496
- _assertClass(note_recipient, NoteRecipient);
17497
- const ptr0 = passArrayJsValueToWasm0(attachments, wasm.__wbindgen_malloc);
17498
- const len0 = WASM_VECTOR_LEN;
17499
- const ret = wasm.note_withAttachments(note_assets.__wbg_ptr, note_metadata.__wbg_ptr, note_recipient.__wbg_ptr, ptr0, len0);
17500
- if (ret[2]) {
17501
- throw takeFromExternrefTable0(ret[1]);
17502
- }
17503
- return Note.__wrap(ret[0]);
17504
- }
17505
17291
  }
17506
17292
  if (Symbol.dispose) Note.prototype[Symbol.dispose] = Note.prototype.free;
17507
17293
 
@@ -17769,12 +17555,6 @@ class NoteAttachment {
17769
17555
  NoteAttachmentFinalization.register(obj, obj.__wbg_ptr, obj);
17770
17556
  return obj;
17771
17557
  }
17772
- static __unwrap(jsValue) {
17773
- if (!(jsValue instanceof NoteAttachment)) {
17774
- return 0;
17775
- }
17776
- return jsValue.__destroy_into_raw();
17777
- }
17778
17558
  __destroy_into_raw() {
17779
17559
  const ptr = this.__wbg_ptr;
17780
17560
  this.__wbg_ptr = 0;
@@ -18398,6 +18178,19 @@ class NoteFile {
18398
18178
  }
18399
18179
  return NoteFile.__wrap(ret[0]);
18400
18180
  }
18181
+ /**
18182
+ * Creates an expected-note file with the sync hint required by miden-client 0.16.
18183
+ * @param {NoteDetails} note_details
18184
+ * @param {NoteTag} note_tag
18185
+ * @param {number} after_block_num
18186
+ * @returns {NoteFile}
18187
+ */
18188
+ static fromExpectedNote(note_details, note_tag, after_block_num) {
18189
+ _assertClass(note_details, NoteDetails);
18190
+ _assertClass(note_tag, NoteTag);
18191
+ const ret = wasm.notefile_fromExpectedNote(note_details.__wbg_ptr, note_tag.__wbg_ptr, after_block_num);
18192
+ return NoteFile.__wrap(ret);
18193
+ }
18401
18194
  /**
18402
18195
  * Creates a `NoteFile` from an input note, preserving proof when available.
18403
18196
  * @param {InputNote} note
@@ -18409,7 +18202,11 @@ class NoteFile {
18409
18202
  return NoteFile.__wrap(ret);
18410
18203
  }
18411
18204
  /**
18412
- * Creates a `NoteFile` from note details.
18205
+ * Creates a `NoteFile` from note details using a zero-valued sync hint.
18206
+ *
18207
+ * miden-client 0.16 requires every expected note to include a tag and an after-block hint.
18208
+ * This retains the old one-argument JS API by using block zero and the default tag. Prefer
18209
+ * [`from_expected_note`](Self::from_expected_note) when the real sync hint is available.
18413
18210
  * @param {NoteDetails} note_details
18414
18211
  * @returns {NoteFile}
18415
18212
  */
@@ -19005,19 +18802,6 @@ class NoteRecipient {
19005
18802
  const ret = wasm.accountheader_storageCommitment(this.__wbg_ptr);
19006
18803
  return Word.__wrap(ret);
19007
18804
  }
19008
- /**
19009
- * Creates a recipient from a script and storage, generating a fresh random
19010
- * serial number (the secret that prevents double-spends).
19011
- * @param {NoteScript} note_script
19012
- * @param {NoteStorage} storage
19013
- * @returns {NoteRecipient}
19014
- */
19015
- static fromScript(note_script, storage) {
19016
- _assertClass(note_script, NoteScript);
19017
- _assertClass(storage, NoteStorage);
19018
- const ret = wasm.noterecipient_fromScript(note_script.__wbg_ptr, storage.__wbg_ptr);
19019
- return NoteRecipient.__wrap(ret);
19020
- }
19021
18805
  /**
19022
18806
  * Creates a note recipient from its serial number, script, and storage.
19023
18807
  * @param {Word} serial_num
@@ -19705,7 +19489,7 @@ class OutputNoteRecord {
19705
19489
  * @returns {number}
19706
19490
  */
19707
19491
  expectedHeight() {
19708
- const ret = wasm.outputnoterecord_expectedHeight(this.__wbg_ptr);
19492
+ const ret = wasm.blockheader_version(this.__wbg_ptr);
19709
19493
  return ret >>> 0;
19710
19494
  }
19711
19495
  /**
@@ -19740,22 +19524,12 @@ class OutputNoteRecord {
19740
19524
  const ret = wasm.outputnoterecord_isConsumed(this.__wbg_ptr);
19741
19525
  return ret !== 0;
19742
19526
  }
19743
- /**
19744
- * Returns true while the note's on-chain inclusion is still unsettled
19745
- * (`ExpectedFull` or `ExpectedPartial`), i.e. while sync is the mechanism
19746
- * that can advance this record.
19747
- * @returns {boolean}
19748
- */
19749
- isInclusionPending() {
19750
- const ret = wasm.outputnoterecord_isInclusionPending(this.__wbg_ptr);
19751
- return ret !== 0;
19752
- }
19753
19527
  /**
19754
19528
  * Returns the note metadata.
19755
19529
  * @returns {NoteMetadata}
19756
19530
  */
19757
19531
  metadata() {
19758
- const ret = wasm.committednote_metadata(this.__wbg_ptr);
19532
+ const ret = wasm.outputnoterecord_metadata(this.__wbg_ptr);
19759
19533
  return NoteMetadata.__wrap(ret);
19760
19534
  }
19761
19535
  /**
@@ -20128,7 +19902,7 @@ class ProvenTransaction {
20128
19902
  * @returns {AccountId}
20129
19903
  */
20130
19904
  accountId() {
20131
- const ret = wasm.account_id(this.__wbg_ptr);
19905
+ const ret = wasm.proventransaction_accountId(this.__wbg_ptr);
20132
19906
  return AccountId.__wrap(ret);
20133
19907
  }
20134
19908
  /**
@@ -20156,7 +19930,7 @@ class ProvenTransaction {
20156
19930
  * @returns {TransactionId}
20157
19931
  */
20158
19932
  id() {
20159
- const ret = wasm.accountcode_commitment(this.__wbg_ptr);
19933
+ const ret = wasm.proventransaction_id(this.__wbg_ptr);
20160
19934
  return TransactionId.__wrap(ret);
20161
19935
  }
20162
19936
  /**
@@ -20174,7 +19948,7 @@ class ProvenTransaction {
20174
19948
  * @returns {Word}
20175
19949
  */
20176
19950
  refBlockCommitment() {
20177
- const ret = wasm.accountheader_storageCommitment(this.__wbg_ptr);
19951
+ const ret = wasm.proventransaction_refBlockCommitment(this.__wbg_ptr);
20178
19952
  return Word.__wrap(ret);
20179
19953
  }
20180
19954
  /**
@@ -20196,119 +19970,6 @@ class ProvenTransaction {
20196
19970
  }
20197
19971
  if (Symbol.dispose) ProvenTransaction.prototype[Symbol.dispose] = ProvenTransaction.prototype.free;
20198
19972
 
20199
- /**
20200
- * Read-only view of one PSWAP order's chain state, exposed to JavaScript.
20201
- * The mutable fields (remaining amounts, depth, tip, state) advance
20202
- * round-by-round as fills are discovered during sync.
20203
- */
20204
- class PswapLineageRecord {
20205
- static __wrap(ptr) {
20206
- ptr = ptr >>> 0;
20207
- const obj = Object.create(PswapLineageRecord.prototype);
20208
- obj.__wbg_ptr = ptr;
20209
- PswapLineageRecordFinalization.register(obj, obj.__wbg_ptr, obj);
20210
- return obj;
20211
- }
20212
- __destroy_into_raw() {
20213
- const ptr = this.__wbg_ptr;
20214
- this.__wbg_ptr = 0;
20215
- PswapLineageRecordFinalization.unregister(this);
20216
- return ptr;
20217
- }
20218
- free() {
20219
- const ptr = this.__destroy_into_raw();
20220
- wasm.__wbg_pswaplineagerecord_free(ptr, 0);
20221
- }
20222
- /**
20223
- * Account that created the order and receives every payback.
20224
- * @returns {AccountId}
20225
- */
20226
- creatorAccountId() {
20227
- const ret = wasm.pswaplineagerecord_creatorAccountId(this.__wbg_ptr);
20228
- return AccountId.__wrap(ret);
20229
- }
20230
- /**
20231
- * Depth of the current tip: 0 for the original PSWAP, +1 per fill round.
20232
- * @returns {number}
20233
- */
20234
- currentDepth() {
20235
- const ret = wasm.pswaplineagerecord_currentDepth(this.__wbg_ptr);
20236
- return ret >>> 0;
20237
- }
20238
- /**
20239
- * Note id of the current tip in the chain.
20240
- * @returns {NoteId}
20241
- */
20242
- currentTipNoteId() {
20243
- const ret = wasm.pswaplineagerecord_currentTipNoteId(this.__wbg_ptr);
20244
- return NoteId.__wrap(ret);
20245
- }
20246
- /**
20247
- * Stable identifier shared by every note in the chain, as a decimal string.
20248
- * @returns {string}
20249
- */
20250
- orderId() {
20251
- let deferred1_0;
20252
- let deferred1_1;
20253
- try {
20254
- const ret = wasm.pswaplineagerecord_orderId(this.__wbg_ptr);
20255
- deferred1_0 = ret[0];
20256
- deferred1_1 = ret[1];
20257
- return getStringFromWasm0(ret[0], ret[1]);
20258
- } finally {
20259
- wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
20260
- }
20261
- }
20262
- /**
20263
- * Offered amount still unfilled on the current tip. The offered faucet is
20264
- * chain-invariant and recovered from the original PSWAP note when needed.
20265
- * @returns {bigint}
20266
- */
20267
- remainingOffered() {
20268
- const ret = wasm.pswaplineagerecord_remainingOffered(this.__wbg_ptr);
20269
- return BigInt.asUintN(64, ret);
20270
- }
20271
- /**
20272
- * Requested amount still outstanding on the current tip. The requested
20273
- * faucet is recovered from the original PSWAP note when needed.
20274
- * @returns {bigint}
20275
- */
20276
- remainingRequested() {
20277
- const ret = wasm.pswaplineagerecord_remainingRequested(this.__wbg_ptr);
20278
- return BigInt.asUintN(64, ret);
20279
- }
20280
- /**
20281
- * Lifecycle state of the order.
20282
- * @returns {PswapLineageState}
20283
- */
20284
- state() {
20285
- const ret = wasm.pswaplineagerecord_state(this.__wbg_ptr);
20286
- return ret;
20287
- }
20288
- }
20289
- if (Symbol.dispose) PswapLineageRecord.prototype[Symbol.dispose] = PswapLineageRecord.prototype.free;
20290
-
20291
- /**
20292
- * Lifecycle state of a PSWAP order.
20293
- *
20294
- * Discriminants match the on-disk encoding in the store.
20295
- * @enum {0 | 1 | 2}
20296
- */
20297
- const PswapLineageState = Object.freeze({
20298
- /**
20299
- * Still fillable and reclaimable.
20300
- */
20301
- Active: 0, "0": "Active",
20302
- /**
20303
- * Fully filled. Terminal.
20304
- */
20305
- FullyFilled: 1, "1": "FullyFilled",
20306
- /**
20307
- * Reclaimed by the creator. Terminal.
20308
- */
20309
- Reclaimed: 2, "2": "Reclaimed",
20310
- });
20311
-
20312
19973
  class PublicKey {
20313
19974
  static __wrap(ptr) {
20314
19975
  ptr = ptr >>> 0;
@@ -21055,7 +20716,7 @@ class SerializedOutputNoteData {
21055
20716
  set attachments(arg0) {
21056
20717
  const ptr0 = passArray8ToWasm0(arg0, wasm.__wbindgen_malloc);
21057
20718
  const len0 = WASM_VECTOR_LEN;
21058
- wasm.__wbg_set_jsstatesyncupdate_partialBlockchainPeaks(this.__wbg_ptr, ptr0, len0);
20719
+ wasm.__wbg_set_jsstatesyncupdate_newPeaks(this.__wbg_ptr, ptr0, len0);
21059
20720
  }
21060
20721
  /**
21061
20722
  * @param {string} arg0
@@ -21800,7 +21461,7 @@ if (Symbol.dispose) StorageMapEntryJs.prototype[Symbol.dispose] = StorageMapEntr
21800
21461
  * Information about storage map updates for an account, as returned by the
21801
21462
  * `syncStorageMaps` RPC endpoint.
21802
21463
  *
21803
- * Contains the list of storage map updates within the requested block range,
21464
+ * Contains the storage map entries merged over the requested block range,
21804
21465
  * along with the chain tip and last processed block number.
21805
21466
  */
21806
21467
  class StorageMapInfo {
@@ -21851,8 +21512,8 @@ class StorageMapInfo {
21851
21512
  if (Symbol.dispose) StorageMapInfo.prototype[Symbol.dispose] = StorageMapInfo.prototype.free;
21852
21513
 
21853
21514
  /**
21854
- * A single storage map update entry, containing the block number, slot name,
21855
- * key, and new value.
21515
+ * A merged storage map entry containing the last processed block number, slot name, key, and
21516
+ * final value. The node no longer exposes the individual block number for each update.
21856
21517
  */
21857
21518
  class StorageMapUpdate {
21858
21519
  static __wrap(ptr) {
@@ -21873,7 +21534,7 @@ class StorageMapUpdate {
21873
21534
  wasm.__wbg_storagemapupdate_free(ptr, 0);
21874
21535
  }
21875
21536
  /**
21876
- * Returns the block number in which this update occurred.
21537
+ * Returns the last processed block number for the merged response.
21877
21538
  * @returns {number}
21878
21539
  */
21879
21540
  blockNum() {
@@ -22616,7 +22277,7 @@ class TransactionRecord {
22616
22277
  * @returns {AccountId}
22617
22278
  */
22618
22279
  accountId() {
22619
- const ret = wasm.transactionrecord_accountId(this.__wbg_ptr);
22280
+ const ret = wasm.proventransaction_accountId(this.__wbg_ptr);
22620
22281
  return AccountId.__wrap(ret);
22621
22282
  }
22622
22283
  /**
@@ -22664,7 +22325,7 @@ class TransactionRecord {
22664
22325
  * @returns {Word}
22665
22326
  */
22666
22327
  initAccountState() {
22667
- const ret = wasm.pswaplineagerecord_currentTipNoteId(this.__wbg_ptr);
22328
+ const ret = wasm.transactionrecord_initAccountState(this.__wbg_ptr);
22668
22329
  return Word.__wrap(ret);
22669
22330
  }
22670
22331
  /**
@@ -22729,14 +22390,6 @@ class TransactionRequest {
22729
22390
  const ptr = this.__destroy_into_raw();
22730
22391
  wasm.__wbg_transactionrequest_free(ptr, 0);
22731
22392
  }
22732
- /**
22733
- * Returns a copy of the advice map carried by this request.
22734
- * @returns {AdviceMap}
22735
- */
22736
- adviceMap() {
22737
- const ret = wasm.transactionrequest_adviceMap(this.__wbg_ptr);
22738
- return AdviceMap.__wrap(ret);
22739
- }
22740
22393
  /**
22741
22394
  * Returns the authentication argument if present.
22742
22395
  * @returns {Word | undefined}
@@ -22783,20 +22436,6 @@ class TransactionRequest {
22783
22436
  wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
22784
22437
  return v1;
22785
22438
  }
22786
- /**
22787
- * Returns a copy of this request with `advice_map` merged into its advice map.
22788
- *
22789
- * Entries are merged with last-write-wins semantics: a key already present in the request is
22790
- * overwritten by the value from `advice_map`. Use this to inject advice (e.g. a signature
22791
- * produced by an external signer) after the request has already been built.
22792
- * @param {AdviceMap} advice_map
22793
- * @returns {TransactionRequest}
22794
- */
22795
- extendAdviceMap(advice_map) {
22796
- _assertClass(advice_map, AdviceMap);
22797
- const ret = wasm.transactionrequest_extendAdviceMap(this.__wbg_ptr, advice_map.__wbg_ptr);
22798
- return TransactionRequest.__wrap(ret);
22799
- }
22800
22439
  /**
22801
22440
  * Returns the transaction script argument if present.
22802
22441
  * @returns {Word | undefined}
@@ -23342,12 +22981,12 @@ class TransactionStoreUpdate {
23342
22981
  wasm.__wbg_transactionstoreupdate_free(ptr, 0);
23343
22982
  }
23344
22983
  /**
23345
- * Returns the account delta applied by the transaction.
23346
- * @returns {AccountDelta}
22984
+ * Returns the absolute account patch applied by the transaction.
22985
+ * @returns {AccountPatch}
23347
22986
  */
23348
- accountDelta() {
23349
- const ret = wasm.transactionstoreupdate_accountDelta(this.__wbg_ptr);
23350
- return AccountDelta.__wrap(ret);
22987
+ accountPatch() {
22988
+ const ret = wasm.transactionstoreupdate_accountPatch(this.__wbg_ptr);
22989
+ return AccountPatch.__wrap(ret);
23351
22990
  }
23352
22991
  /**
23353
22992
  * Returns the output notes created by the transaction.
@@ -23558,10 +23197,6 @@ class WebClient {
23558
23197
  return ret;
23559
23198
  }
23560
23199
  /**
23561
- * Persists a submitted transaction and returns its pre-apply
23562
- * [`TransactionStoreUpdate`]. Routes through the high-level
23563
- * `Client::apply_transaction` so registered observers (e.g. PSWAP
23564
- * tracking) fire.
23565
23200
  * @param {TransactionResult} transaction_result
23566
23201
  * @param {number} submission_height
23567
23202
  * @returns {Promise<TransactionStoreUpdate>}
@@ -23571,22 +23206,6 @@ class WebClient {
23571
23206
  const ret = wasm.webclient_applyTransaction(this.__wbg_ptr, transaction_result.__wbg_ptr, submission_height);
23572
23207
  return ret;
23573
23208
  }
23574
- /**
23575
- * Builds a transaction reclaiming the unfilled offered asset on the current
23576
- * tip of an Active lineage.
23577
- *
23578
- * `order_id` is the order's stable identifier as a decimal string. The
23579
- * returned request flows into the same submit path as the other PSWAP
23580
- * cancel transactions.
23581
- * @param {string} order_id
23582
- * @returns {Promise<TransactionRequest>}
23583
- */
23584
- buildPswapCancelByOrder(order_id) {
23585
- const ptr0 = passStringToWasm0(order_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
23586
- const len0 = WASM_VECTOR_LEN;
23587
- const ret = wasm.webclient_buildPswapCancelByOrder(this.__wbg_ptr, ptr0, len0);
23588
- return ret;
23589
- }
23590
23209
  /**
23591
23210
  * @param {NoteType} note_type
23592
23211
  * @param {AccountId} offered_asset_faucet_id
@@ -23614,17 +23233,13 @@ class WebClient {
23614
23233
  * * `store_name`: Optional name for the web store. If `None`, the store name defaults to
23615
23234
  * `MidenClientDB_{network_id}`, where `network_id` is derived from the `node_url`.
23616
23235
  * Explicitly setting this allows for creating multiple isolated clients.
23617
- * * `debug_mode`: Optional flag to enable debug mode for transaction execution. When enabled,
23618
- * the transaction executor records additional information useful for debugging. Defaults to
23619
- * disabled.
23620
23236
  * @param {string | null} [node_url]
23621
23237
  * @param {string | null} [node_note_transport_url]
23622
23238
  * @param {Uint8Array | null} [seed]
23623
23239
  * @param {string | null} [store_name]
23624
- * @param {boolean | null} [debug_mode]
23625
23240
  * @returns {Promise<any>}
23626
23241
  */
23627
- createClient(node_url, node_note_transport_url, seed, store_name, debug_mode) {
23242
+ createClient(node_url, node_note_transport_url, seed, store_name) {
23628
23243
  var ptr0 = isLikeNone(node_url) ? 0 : passStringToWasm0(node_url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
23629
23244
  var len0 = WASM_VECTOR_LEN;
23630
23245
  var ptr1 = isLikeNone(node_note_transport_url) ? 0 : passStringToWasm0(node_note_transport_url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
@@ -23633,7 +23248,7 @@ class WebClient {
23633
23248
  var len2 = WASM_VECTOR_LEN;
23634
23249
  var ptr3 = isLikeNone(store_name) ? 0 : passStringToWasm0(store_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
23635
23250
  var len3 = WASM_VECTOR_LEN;
23636
- const ret = wasm.webclient_createClient(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, isLikeNone(debug_mode) ? 0xFFFFFF : debug_mode ? 1 : 0);
23251
+ const ret = wasm.webclient_createClient(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
23637
23252
  return ret;
23638
23253
  }
23639
23254
  /**
@@ -23649,8 +23264,6 @@ class WebClient {
23649
23264
  * * `get_key_cb`: Callback to retrieve the secret key bytes for a given public key.
23650
23265
  * * `insert_key_cb`: Callback to persist a secret key.
23651
23266
  * * `sign_cb`: Callback to produce serialized signature bytes for the provided inputs.
23652
- * * `debug_mode`: Optional flag to enable debug mode for transaction execution. Defaults to
23653
- * disabled.
23654
23267
  * @param {string | null} [node_url]
23655
23268
  * @param {string | null} [node_note_transport_url]
23656
23269
  * @param {Uint8Array | null} [seed]
@@ -23658,10 +23271,9 @@ class WebClient {
23658
23271
  * @param {Function | null} [get_key_cb]
23659
23272
  * @param {Function | null} [insert_key_cb]
23660
23273
  * @param {Function | null} [sign_cb]
23661
- * @param {boolean | null} [debug_mode]
23662
23274
  * @returns {Promise<any>}
23663
23275
  */
23664
- createClientWithExternalKeystore(node_url, node_note_transport_url, seed, store_name, get_key_cb, insert_key_cb, sign_cb, debug_mode) {
23276
+ createClientWithExternalKeystore(node_url, node_note_transport_url, seed, store_name, get_key_cb, insert_key_cb, sign_cb) {
23665
23277
  var ptr0 = isLikeNone(node_url) ? 0 : passStringToWasm0(node_url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
23666
23278
  var len0 = WASM_VECTOR_LEN;
23667
23279
  var ptr1 = isLikeNone(node_note_transport_url) ? 0 : passStringToWasm0(node_note_transport_url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
@@ -23670,7 +23282,7 @@ class WebClient {
23670
23282
  var len2 = WASM_VECTOR_LEN;
23671
23283
  var ptr3 = isLikeNone(store_name) ? 0 : passStringToWasm0(store_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
23672
23284
  var len3 = WASM_VECTOR_LEN;
23673
- 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);
23285
+ 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));
23674
23286
  return ret;
23675
23287
  }
23676
23288
  /**
@@ -23699,14 +23311,18 @@ class WebClient {
23699
23311
  return ret;
23700
23312
  }
23701
23313
  /**
23702
- * Executes a transaction and returns the `TransactionSummary`.
23314
+ * Executes a transaction and returns the `TransactionSummary` the account is being asked
23315
+ * to authorize.
23703
23316
  *
23704
- * If the transaction is unauthorized (auth script emits the unauthorized event),
23705
- * returns the summary from the error. If the transaction succeeds, constructs
23706
- * a summary from the executed transaction using the `auth_arg` from the transaction
23707
- * request as the salt (or a zero salt if not provided).
23317
+ * The summary only exists while authorization is pending: when the auth procedure aborts
23318
+ * with the unauthorized event (e.g. a multisig below its signing threshold), the summary
23319
+ * built during execution is returned so it can be signed out-of-band. If the transaction
23320
+ * executes successfully it was already fully authorized, no summary is produced, and this
23321
+ * method returns an error with code `TRANSACTION_ALREADY_AUTHORIZED` — submit the
23322
+ * transaction with `execute` instead.
23708
23323
  *
23709
23324
  * # Errors
23325
+ * - If the transaction executes successfully (error code `TRANSACTION_ALREADY_AUTHORIZED`).
23710
23326
  * - If there is an internal failure during execution.
23711
23327
  * @param {AccountId} account_id
23712
23328
  * @param {TransactionRequest} transaction_request
@@ -23930,37 +23546,6 @@ class WebClient {
23930
23546
  const ret = wasm.webclient_getOutputNotes(this.__wbg_ptr, ptr0);
23931
23547
  return ret;
23932
23548
  }
23933
- /**
23934
- * Returns the lineage for one order, or `null` if not tracked.
23935
- *
23936
- * `order_id` is the order's stable identifier as a decimal string.
23937
- * @param {string} order_id
23938
- * @returns {Promise<PswapLineageRecord | undefined>}
23939
- */
23940
- getPswapLineage(order_id) {
23941
- const ptr0 = passStringToWasm0(order_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
23942
- const len0 = WASM_VECTOR_LEN;
23943
- const ret = wasm.webclient_getPswapLineage(this.__wbg_ptr, ptr0, len0);
23944
- return ret;
23945
- }
23946
- /**
23947
- * Returns every PSWAP lineage tracked by this client.
23948
- * @returns {Promise<PswapLineageRecord[]>}
23949
- */
23950
- getPswapLineages() {
23951
- const ret = wasm.webclient_getPswapLineages(this.__wbg_ptr);
23952
- return ret;
23953
- }
23954
- /**
23955
- * Returns lineages created by a specific local account.
23956
- * @param {AccountId} creator
23957
- * @returns {Promise<PswapLineageRecord[]>}
23958
- */
23959
- getPswapLineagesFor(creator) {
23960
- _assertClass(creator, AccountId);
23961
- const ret = wasm.webclient_getPswapLineagesFor(this.__wbg_ptr, creator.__wbg_ptr);
23962
- return ret;
23963
- }
23964
23549
  /**
23965
23550
  * Returns all public key commitments associated with the given account ID.
23966
23551
  *
@@ -24024,10 +23609,10 @@ class WebClient {
24024
23609
  /**
24025
23610
  * Imports a note file and returns the imported note's identifier.
24026
23611
  *
24027
- * A note file that carries metadata — an explicit `NoteId` or a full note
24028
- * with proof — resolves to a concrete `NoteId`, which is returned so the
24029
- * caller can look the note up with [`get_input_note`]. A details-only file
24030
- * (`NoteDetails`) has no metadata and therefore no `NoteId` yet, so its
23612
+ * A note file that carries metadata — an explicit `NoteId` or a committed
23613
+ * note with proof — resolves to a concrete `NoteId`, which is returned so
23614
+ * the caller can look the note up with [`get_input_note`]. An expected-note
23615
+ * file has no metadata and therefore no `NoteId` yet, so its
24031
23616
  * metadata-independent details commitment is returned instead.
24032
23617
  *
24033
23618
  * Migration note (miden-client PR #2214): `Client::import_notes` now
@@ -24153,30 +23738,6 @@ class WebClient {
24153
23738
  const ret = wasm.webclient_newAccountWithSecretKey(this.__wbg_ptr, account.__wbg_ptr, secret_key.__wbg_ptr);
24154
23739
  return ret;
24155
23740
  }
24156
- /**
24157
- * Builds a transaction request that bridges a fungible asset out to another network via the
24158
- * `AggLayer`.
24159
- *
24160
- * The request emits a single public B2AGG (Bridge-to-AggLayer) note holding `amount` units of
24161
- * the `faucet_id` asset. The note is consumed by `bridge_account_id`, which burns the asset so
24162
- * it can be claimed at `destination_address` (an Ethereum address) on the AggLayer-assigned
24163
- * `destination_network`.
24164
- * @param {AccountId} sender_account_id
24165
- * @param {AccountId} bridge_account_id
24166
- * @param {AccountId} faucet_id
24167
- * @param {bigint} amount
24168
- * @param {number} destination_network
24169
- * @param {EthAddress} destination_address
24170
- * @returns {Promise<TransactionRequest>}
24171
- */
24172
- newB2AggTransactionRequest(sender_account_id, bridge_account_id, faucet_id, amount, destination_network, destination_address) {
24173
- _assertClass(sender_account_id, AccountId);
24174
- _assertClass(bridge_account_id, AccountId);
24175
- _assertClass(faucet_id, AccountId);
24176
- _assertClass(destination_address, EthAddress);
24177
- 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);
24178
- return ret;
24179
- }
24180
23741
  /**
24181
23742
  * @param {Note[]} list_of_notes
24182
23743
  * @returns {TransactionRequest}
@@ -24470,25 +24031,6 @@ class WebClient {
24470
24031
  const ret = wasm.webclient_submitNewTransaction(this.__wbg_ptr, account_id.__wbg_ptr, transaction_request.__wbg_ptr);
24471
24032
  return ret;
24472
24033
  }
24473
- /**
24474
- * Executes a batch of transactions against the specified account, proves them individually
24475
- * and as a batch, submits the batch to the network, and atomically applies the per-tx
24476
- * updates to the local store. Returns the block number the batch was accepted into.
24477
- *
24478
- * All transactions must target the same local account — the `account_id` argument.
24479
- * Each element of `transaction_requests` is the serialized-bytes form of a
24480
- * `TransactionRequest` (obtained via `tx_request.serialize()`)
24481
- * @param {AccountId} account_id
24482
- * @param {Uint8Array[]} transaction_requests
24483
- * @returns {Promise<number>}
24484
- */
24485
- submitNewTransactionBatch(account_id, transaction_requests) {
24486
- _assertClass(account_id, AccountId);
24487
- const ptr0 = passArrayJsValueToWasm0(transaction_requests, wasm.__wbindgen_malloc);
24488
- const len0 = WASM_VECTOR_LEN;
24489
- const ret = wasm.webclient_submitNewTransactionBatch(this.__wbg_ptr, account_id.__wbg_ptr, ptr0, len0);
24490
- return ret;
24491
- }
24492
24034
  /**
24493
24035
  * Executes a transaction specified by the request against the specified account, proves it
24494
24036
  * with the user provided prover, submits it to the network, and updates the local database.
@@ -25108,7 +24650,7 @@ function __wbg_get_imports(memory) {
25108
24650
  const ret = AccountStorage.__wrap(arg0);
25109
24651
  return ret;
25110
24652
  },
25111
- __wbg_addNoteTag_c1d851535ec0e098: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) {
24653
+ __wbg_addNoteTag_1500aff2fa0d151c: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) {
25112
24654
  var v0 = getArrayU8FromWasm0(arg2, arg3).slice();
25113
24655
  wasm.__wbindgen_free(arg2, arg3 * 1, 1);
25114
24656
  let v1;
@@ -25136,25 +24678,7 @@ function __wbg_get_imports(memory) {
25136
24678
  __wbg_append_a992ccc37aa62dc4: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {
25137
24679
  arg0.append(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4));
25138
24680
  }, arguments); },
25139
- __wbg_applyFullAccountState_a76a7cf1d93a9554: function(arg0, arg1, arg2) {
25140
- const ret = applyFullAccountState(getStringFromWasm0(arg0, arg1), JsAccountUpdate.__wrap(arg2));
25141
- return ret;
25142
- },
25143
- __wbg_applySettingsMutations_e98dbb5827d3ec93: function(arg0, arg1, arg2, arg3) {
25144
- var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
25145
- wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25146
- const ret = applySettingsMutations(getStringFromWasm0(arg0, arg1), v0);
25147
- return ret;
25148
- },
25149
- __wbg_applyStateSync_c365f1affe42d064: function(arg0, arg1, arg2) {
25150
- const ret = applyStateSync(getStringFromWasm0(arg0, arg1), JsStateSyncUpdate.__wrap(arg2));
25151
- return ret;
25152
- },
25153
- __wbg_applyTransactionBatch_0b07b42c93c25447: function(arg0, arg1, arg2) {
25154
- const ret = applyTransactionBatch(getStringFromWasm0(arg0, arg1), arg2);
25155
- return ret;
25156
- },
25157
- __wbg_applyTransactionDelta_93fac37bf6e15192: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20) {
24681
+ __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) {
25158
24682
  let deferred0_0;
25159
24683
  let deferred0_1;
25160
24684
  let deferred1_0;
@@ -25186,7 +24710,7 @@ function __wbg_get_imports(memory) {
25186
24710
  deferred7_1 = arg17;
25187
24711
  deferred8_0 = arg19;
25188
24712
  deferred8_1 = arg20;
25189
- 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));
24713
+ 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));
25190
24714
  return ret;
25191
24715
  } finally {
25192
24716
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
@@ -25197,6 +24721,20 @@ function __wbg_get_imports(memory) {
25197
24721
  wasm.__wbindgen_free(deferred8_0, deferred8_1, 1);
25198
24722
  }
25199
24723
  },
24724
+ __wbg_applyFullAccountState_f9562e4091c2eaf6: function(arg0, arg1, arg2) {
24725
+ const ret = applyFullAccountState(getStringFromWasm0(arg0, arg1), JsAccountUpdate.__wrap(arg2));
24726
+ return ret;
24727
+ },
24728
+ __wbg_applySettingsMutations_722d272d653902a1: function(arg0, arg1, arg2, arg3) {
24729
+ var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
24730
+ wasm.__wbindgen_free(arg2, arg3 * 4, 4);
24731
+ const ret = applySettingsMutations(getStringFromWasm0(arg0, arg1), v0);
24732
+ return ret;
24733
+ },
24734
+ __wbg_applyStateSync_4c25ec00de2f60bb: function(arg0, arg1, arg2) {
24735
+ const ret = applyStateSync(getStringFromWasm0(arg0, arg1), JsStateSyncUpdate.__wrap(arg2));
24736
+ return ret;
24737
+ },
25200
24738
  __wbg_assetvault_new: function(arg0) {
25201
24739
  const ret = AssetVault.__wrap(arg0);
25202
24740
  return ret;
@@ -25305,7 +24843,7 @@ function __wbg_get_imports(memory) {
25305
24843
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25306
24844
  }
25307
24845
  },
25308
- __wbg_exportStore_ca32cf4c9f46f56b: function(arg0, arg1) {
24846
+ __wbg_exportStore_3b84792dca9a9ef1: function(arg0, arg1) {
25309
24847
  const ret = exportStore(getStringFromWasm0(arg0, arg1));
25310
24848
  return ret;
25311
24849
  },
@@ -25337,7 +24875,7 @@ function __wbg_get_imports(memory) {
25337
24875
  const ret = FetchedNote.__wrap(arg0);
25338
24876
  return ret;
25339
24877
  },
25340
- __wbg_forceImportStore_8bb9e5bbca5e1513: function(arg0, arg1, arg2) {
24878
+ __wbg_forceImportStore_6a4fb8bc450bbf4a: function(arg0, arg1, arg2) {
25341
24879
  const ret = forceImportStore(getStringFromWasm0(arg0, arg1), arg2);
25342
24880
  return ret;
25343
24881
  },
@@ -25345,10 +24883,6 @@ function __wbg_get_imports(memory) {
25345
24883
  const ret = ForeignAccount.__unwrap(arg0);
25346
24884
  return ret;
25347
24885
  },
25348
- __wbg_from_bddd64e7d5ff6941: function(arg0) {
25349
- const ret = Array.from(arg0);
25350
- return ret;
25351
- },
25352
24886
  __wbg_fungibleasset_new: function(arg0) {
25353
24887
  const ret = FungibleAsset.__wrap(arg0);
25354
24888
  return ret;
@@ -25361,7 +24895,7 @@ function __wbg_get_imports(memory) {
25361
24895
  const ret = FungibleAssetDeltaItem.__wrap(arg0);
25362
24896
  return ret;
25363
24897
  },
25364
- __wbg_getAccountAddresses_d068c1e15e7a3f69: function(arg0, arg1, arg2, arg3) {
24898
+ __wbg_getAccountAddresses_68ba5f3f8a9c7e15: function(arg0, arg1, arg2, arg3) {
25365
24899
  let deferred0_0;
25366
24900
  let deferred0_1;
25367
24901
  try {
@@ -25373,7 +24907,7 @@ function __wbg_get_imports(memory) {
25373
24907
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25374
24908
  }
25375
24909
  },
25376
- __wbg_getAccountAuthByPubKeyCommitment_8f67fb0e63c7bd2e: function(arg0, arg1, arg2, arg3) {
24910
+ __wbg_getAccountAuthByPubKeyCommitment_568661071566f307: function(arg0, arg1, arg2, arg3) {
25377
24911
  let deferred0_0;
25378
24912
  let deferred0_1;
25379
24913
  try {
@@ -25385,7 +24919,7 @@ function __wbg_get_imports(memory) {
25385
24919
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25386
24920
  }
25387
24921
  },
25388
- __wbg_getAccountCode_c9e87e9228f99d8a: function(arg0, arg1, arg2, arg3) {
24922
+ __wbg_getAccountCode_14e446cd1a3f814f: function(arg0, arg1, arg2, arg3) {
25389
24923
  let deferred0_0;
25390
24924
  let deferred0_1;
25391
24925
  try {
@@ -25397,7 +24931,7 @@ function __wbg_get_imports(memory) {
25397
24931
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25398
24932
  }
25399
24933
  },
25400
- __wbg_getAccountHeaderByCommitment_918253bae03e21bd: function(arg0, arg1, arg2, arg3) {
24934
+ __wbg_getAccountHeaderByCommitment_0e10e9ac733f359b: function(arg0, arg1, arg2, arg3) {
25401
24935
  let deferred0_0;
25402
24936
  let deferred0_1;
25403
24937
  try {
@@ -25409,7 +24943,7 @@ function __wbg_get_imports(memory) {
25409
24943
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25410
24944
  }
25411
24945
  },
25412
- __wbg_getAccountHeader_19a4cbeb88903833: function(arg0, arg1, arg2, arg3) {
24946
+ __wbg_getAccountHeader_ef6ad25115d9bd02: function(arg0, arg1, arg2, arg3) {
25413
24947
  let deferred0_0;
25414
24948
  let deferred0_1;
25415
24949
  try {
@@ -25421,7 +24955,7 @@ function __wbg_get_imports(memory) {
25421
24955
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25422
24956
  }
25423
24957
  },
25424
- __wbg_getAccountIdByKeyCommitment_2461fd858ac229a5: function(arg0, arg1, arg2, arg3) {
24958
+ __wbg_getAccountIdByKeyCommitment_c0c17f1af8b92023: function(arg0, arg1, arg2, arg3) {
25425
24959
  let deferred0_0;
25426
24960
  let deferred0_1;
25427
24961
  try {
@@ -25433,11 +24967,11 @@ function __wbg_get_imports(memory) {
25433
24967
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25434
24968
  }
25435
24969
  },
25436
- __wbg_getAccountIds_6ce312ac9bfb1b31: function(arg0, arg1) {
24970
+ __wbg_getAccountIds_07de8c6f4a5ee883: function(arg0, arg1) {
25437
24971
  const ret = getAccountIds(getStringFromWasm0(arg0, arg1));
25438
24972
  return ret;
25439
24973
  },
25440
- __wbg_getAccountStorageMaps_18420aab10cd69bd: function(arg0, arg1, arg2, arg3) {
24974
+ __wbg_getAccountStorageMaps_b16de6210ce82188: function(arg0, arg1, arg2, arg3) {
25441
24975
  let deferred0_0;
25442
24976
  let deferred0_1;
25443
24977
  try {
@@ -25449,7 +24983,7 @@ function __wbg_get_imports(memory) {
25449
24983
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25450
24984
  }
25451
24985
  },
25452
- __wbg_getAccountStorage_ffe7596409c9223c: function(arg0, arg1, arg2, arg3, arg4, arg5) {
24986
+ __wbg_getAccountStorage_c876ec60dbfa6cee: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25453
24987
  let deferred0_0;
25454
24988
  let deferred0_1;
25455
24989
  try {
@@ -25463,7 +24997,7 @@ function __wbg_get_imports(memory) {
25463
24997
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25464
24998
  }
25465
24999
  },
25466
- __wbg_getAccountVaultAssets_af709bb72685df4c: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25000
+ __wbg_getAccountVaultAssets_479ef945dd51412a: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25467
25001
  let deferred0_0;
25468
25002
  let deferred0_1;
25469
25003
  try {
@@ -25477,27 +25011,27 @@ function __wbg_get_imports(memory) {
25477
25011
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25478
25012
  }
25479
25013
  },
25480
- __wbg_getAllAccountHeaders_41895be7c409b88e: function(arg0, arg1) {
25014
+ __wbg_getAllAccountHeaders_f78e678ad24296de: function(arg0, arg1) {
25481
25015
  const ret = getAllAccountHeaders(getStringFromWasm0(arg0, arg1));
25482
25016
  return ret;
25483
25017
  },
25484
- __wbg_getBlockHeaders_5fd7167f134e5843: function(arg0, arg1, arg2, arg3) {
25018
+ __wbg_getBlockHeaders_a55990d3957c0d9d: function(arg0, arg1, arg2, arg3) {
25485
25019
  var v0 = getArrayU32FromWasm0(arg2, arg3).slice();
25486
25020
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25487
25021
  const ret = getBlockHeaders(getStringFromWasm0(arg0, arg1), v0);
25488
25022
  return ret;
25489
25023
  },
25490
- __wbg_getCurrentBlockchainPeaks_0d572807e1e9e2ae: function(arg0, arg1) {
25024
+ __wbg_getCurrentBlockchainPeaks_b276a676a0f16d93: function(arg0, arg1) {
25491
25025
  const ret = getCurrentBlockchainPeaks(getStringFromWasm0(arg0, arg1));
25492
25026
  return ret;
25493
25027
  },
25494
- __wbg_getForeignAccountCode_844c11a17626e563: function(arg0, arg1, arg2, arg3) {
25028
+ __wbg_getForeignAccountCode_9f88c11936e9c43d: function(arg0, arg1, arg2, arg3) {
25495
25029
  var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
25496
25030
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25497
25031
  const ret = getForeignAccountCode(getStringFromWasm0(arg0, arg1), v0);
25498
25032
  return ret;
25499
25033
  },
25500
- __wbg_getInputNoteByOffset_9ab1440d682c55fb: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) {
25034
+ __wbg_getInputNoteByOffset_d8ec28ef8b63a88f: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) {
25501
25035
  let deferred1_0;
25502
25036
  let deferred1_1;
25503
25037
  try {
@@ -25511,31 +25045,31 @@ function __wbg_get_imports(memory) {
25511
25045
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
25512
25046
  }
25513
25047
  },
25514
- __wbg_getInputNotesFromDetailsCommitments_0d7a37a6d01eab53: function(arg0, arg1, arg2, arg3) {
25048
+ __wbg_getInputNotesFromDetailsCommitments_9590f42d9e96e86c: function(arg0, arg1, arg2, arg3) {
25515
25049
  var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
25516
25050
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25517
25051
  const ret = getInputNotesFromDetailsCommitments(getStringFromWasm0(arg0, arg1), v0);
25518
25052
  return ret;
25519
25053
  },
25520
- __wbg_getInputNotesFromIds_27c39054c73a044b: function(arg0, arg1, arg2, arg3) {
25054
+ __wbg_getInputNotesFromIds_d290a8e093978eae: function(arg0, arg1, arg2, arg3) {
25521
25055
  var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
25522
25056
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25523
25057
  const ret = getInputNotesFromIds(getStringFromWasm0(arg0, arg1), v0);
25524
25058
  return ret;
25525
25059
  },
25526
- __wbg_getInputNotesFromNullifiers_301cdfb81aa319a7: function(arg0, arg1, arg2, arg3) {
25060
+ __wbg_getInputNotesFromNullifiers_2b5fa39ec52ecab6: function(arg0, arg1, arg2, arg3) {
25527
25061
  var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
25528
25062
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25529
25063
  const ret = getInputNotesFromNullifiers(getStringFromWasm0(arg0, arg1), v0);
25530
25064
  return ret;
25531
25065
  },
25532
- __wbg_getInputNotes_7d1b39ca9e78db47: function(arg0, arg1, arg2, arg3) {
25066
+ __wbg_getInputNotes_1c76764676f21be5: function(arg0, arg1, arg2, arg3) {
25533
25067
  var v0 = getArrayU8FromWasm0(arg2, arg3).slice();
25534
25068
  wasm.__wbindgen_free(arg2, arg3 * 1, 1);
25535
25069
  const ret = getInputNotes(getStringFromWasm0(arg0, arg1), v0);
25536
25070
  return ret;
25537
25071
  },
25538
- __wbg_getKeyCommitmentsByAccountId_81ce3e1041e3bed0: function(arg0, arg1, arg2, arg3) {
25072
+ __wbg_getKeyCommitmentsByAccountId_7962a39c985c54e5: function(arg0, arg1, arg2, arg3) {
25539
25073
  let deferred0_0;
25540
25074
  let deferred0_1;
25541
25075
  try {
@@ -25547,7 +25081,7 @@ function __wbg_get_imports(memory) {
25547
25081
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25548
25082
  }
25549
25083
  },
25550
- __wbg_getNoteScript_5be6f18daf0b0cff: function(arg0, arg1, arg2, arg3) {
25084
+ __wbg_getNoteScript_b2cf59d7cf9d19e7: function(arg0, arg1, arg2, arg3) {
25551
25085
  let deferred0_0;
25552
25086
  let deferred0_1;
25553
25087
  try {
@@ -25559,39 +25093,39 @@ function __wbg_get_imports(memory) {
25559
25093
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25560
25094
  }
25561
25095
  },
25562
- __wbg_getNoteTags_43e80680e54bade8: function(arg0, arg1) {
25096
+ __wbg_getNoteTags_a45689c54d964e46: function(arg0, arg1) {
25563
25097
  const ret = getNoteTags(getStringFromWasm0(arg0, arg1));
25564
25098
  return ret;
25565
25099
  },
25566
- __wbg_getOutputNotesFromDetailsCommitments_68e3dca9188e3f99: function(arg0, arg1, arg2, arg3) {
25100
+ __wbg_getOutputNotesFromDetailsCommitments_b15793905bc47309: function(arg0, arg1, arg2, arg3) {
25567
25101
  var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
25568
25102
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25569
25103
  const ret = getOutputNotesFromDetailsCommitments(getStringFromWasm0(arg0, arg1), v0);
25570
25104
  return ret;
25571
25105
  },
25572
- __wbg_getOutputNotesFromIds_768649a70e0c7bfb: function(arg0, arg1, arg2, arg3) {
25106
+ __wbg_getOutputNotesFromIds_d340ff4a6d4c5c8e: function(arg0, arg1, arg2, arg3) {
25573
25107
  var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
25574
25108
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25575
25109
  const ret = getOutputNotesFromIds(getStringFromWasm0(arg0, arg1), v0);
25576
25110
  return ret;
25577
25111
  },
25578
- __wbg_getOutputNotesFromNullifiers_c7ed92290ce3947a: function(arg0, arg1, arg2, arg3) {
25112
+ __wbg_getOutputNotesFromNullifiers_48b112e53ca4eea7: function(arg0, arg1, arg2, arg3) {
25579
25113
  var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
25580
25114
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25581
25115
  const ret = getOutputNotesFromNullifiers(getStringFromWasm0(arg0, arg1), v0);
25582
25116
  return ret;
25583
25117
  },
25584
- __wbg_getOutputNotes_b3ad1953a5193c80: function(arg0, arg1, arg2, arg3) {
25118
+ __wbg_getOutputNotes_2679465821c837b7: function(arg0, arg1, arg2, arg3) {
25585
25119
  var v0 = getArrayU8FromWasm0(arg2, arg3).slice();
25586
25120
  wasm.__wbindgen_free(arg2, arg3 * 1, 1);
25587
25121
  const ret = getOutputNotes(getStringFromWasm0(arg0, arg1), v0);
25588
25122
  return ret;
25589
25123
  },
25590
- __wbg_getPartialBlockchainNodesAll_6834180a437e7c63: function(arg0, arg1) {
25124
+ __wbg_getPartialBlockchainNodesAll_9496498a665775d9: function(arg0, arg1) {
25591
25125
  const ret = getPartialBlockchainNodesAll(getStringFromWasm0(arg0, arg1));
25592
25126
  return ret;
25593
25127
  },
25594
- __wbg_getPartialBlockchainNodesUpToInOrderIndex_94dc7d751d77e648: function(arg0, arg1, arg2, arg3) {
25128
+ __wbg_getPartialBlockchainNodesUpToInOrderIndex_2196a0e786754bd1: function(arg0, arg1, arg2, arg3) {
25595
25129
  let deferred0_0;
25596
25130
  let deferred0_1;
25597
25131
  try {
@@ -25603,20 +25137,20 @@ function __wbg_get_imports(memory) {
25603
25137
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25604
25138
  }
25605
25139
  },
25606
- __wbg_getPartialBlockchainNodes_af5bd7d7471ef114: function(arg0, arg1, arg2, arg3) {
25140
+ __wbg_getPartialBlockchainNodes_0a6c2a323b1f4caa: function(arg0, arg1, arg2, arg3) {
25607
25141
  var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
25608
25142
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25609
25143
  const ret = getPartialBlockchainNodes(getStringFromWasm0(arg0, arg1), v0);
25610
25144
  return ret;
25611
25145
  },
25612
- __wbg_getRandomValues_ea728b1d79dae146: function() { return handleError(function (arg0) {
25146
+ __wbg_getRandomValues_90e56bff4f3b89fb: function() { return handleError(function (arg0) {
25613
25147
  globalThis.crypto.getRandomValues(arg0);
25614
25148
  }, arguments); },
25615
25149
  __wbg_getReader_f47519d698a4505e: function() { return handleError(function (arg0) {
25616
25150
  const ret = arg0.getReader();
25617
25151
  return ret;
25618
25152
  }, arguments); },
25619
- __wbg_getSetting_f06b2891fbabc9cf: function(arg0, arg1, arg2, arg3) {
25153
+ __wbg_getSetting_319d65b5a2e111a2: function(arg0, arg1, arg2, arg3) {
25620
25154
  let deferred0_0;
25621
25155
  let deferred0_1;
25622
25156
  try {
@@ -25628,7 +25162,7 @@ function __wbg_get_imports(memory) {
25628
25162
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25629
25163
  }
25630
25164
  },
25631
- __wbg_getSyncHeight_d79b93a5d88a10be: function(arg0, arg1) {
25165
+ __wbg_getSyncHeight_94e6d0d761426ec9: function(arg0, arg1) {
25632
25166
  const ret = getSyncHeight(getStringFromWasm0(arg0, arg1));
25633
25167
  return ret;
25634
25168
  },
@@ -25636,15 +25170,15 @@ function __wbg_get_imports(memory) {
25636
25170
  const ret = arg0.getTime();
25637
25171
  return ret;
25638
25172
  },
25639
- __wbg_getTrackedBlockHeaderNumbers_f0d5e2f2232551cc: function(arg0, arg1) {
25173
+ __wbg_getTrackedBlockHeaderNumbers_5a8edd94c7b7613c: function(arg0, arg1) {
25640
25174
  const ret = getTrackedBlockHeaderNumbers(getStringFromWasm0(arg0, arg1));
25641
25175
  return ret;
25642
25176
  },
25643
- __wbg_getTrackedBlockHeaders_db61d3cc39ec8dba: function(arg0, arg1) {
25177
+ __wbg_getTrackedBlockHeaders_3292740bff6c9b4c: function(arg0, arg1) {
25644
25178
  const ret = getTrackedBlockHeaders(getStringFromWasm0(arg0, arg1));
25645
25179
  return ret;
25646
25180
  },
25647
- __wbg_getTransactions_00723f63af87e326: function(arg0, arg1, arg2, arg3) {
25181
+ __wbg_getTransactions_0c5674a652c44917: function(arg0, arg1, arg2, arg3) {
25648
25182
  let deferred0_0;
25649
25183
  let deferred0_1;
25650
25184
  try {
@@ -25656,7 +25190,7 @@ function __wbg_get_imports(memory) {
25656
25190
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25657
25191
  }
25658
25192
  },
25659
- __wbg_getUnspentInputNoteNullifiers_5352631c6015d6e5: function(arg0, arg1) {
25193
+ __wbg_getUnspentInputNoteNullifiers_6c9d5852b42b8c73: function(arg0, arg1) {
25660
25194
  const ret = getUnspentInputNoteNullifiers(getStringFromWasm0(arg0, arg1));
25661
25195
  return ret;
25662
25196
  },
@@ -25700,7 +25234,7 @@ function __wbg_get_imports(memory) {
25700
25234
  const ret = InputNoteRecord.__wrap(arg0);
25701
25235
  return ret;
25702
25236
  },
25703
- __wbg_insertAccountAddress_a8f49a2f8f6ff0f1: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25237
+ __wbg_insertAccountAddress_36db2bb32e10fd9b: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25704
25238
  let deferred0_0;
25705
25239
  let deferred0_1;
25706
25240
  try {
@@ -25714,7 +25248,7 @@ function __wbg_get_imports(memory) {
25714
25248
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25715
25249
  }
25716
25250
  },
25717
- __wbg_insertAccountAuth_3a2314a58a464f90: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25251
+ __wbg_insertAccountAuth_2763614f9c61eb99: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25718
25252
  let deferred0_0;
25719
25253
  let deferred0_1;
25720
25254
  let deferred1_0;
@@ -25731,7 +25265,7 @@ function __wbg_get_imports(memory) {
25731
25265
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
25732
25266
  }
25733
25267
  },
25734
- __wbg_insertAccountKeyMapping_72c6d4d8b9306667: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25268
+ __wbg_insertAccountKeyMapping_5440caed0fe18250: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25735
25269
  let deferred0_0;
25736
25270
  let deferred0_1;
25737
25271
  let deferred1_0;
@@ -25748,21 +25282,17 @@ function __wbg_get_imports(memory) {
25748
25282
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
25749
25283
  }
25750
25284
  },
25751
- __wbg_insertBlockHeader_305b039a9623ae0f: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25285
+ __wbg_insertBlockHeader_ca254bedd530d7a3: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) {
25752
25286
  var v0 = getArrayU8FromWasm0(arg3, arg4).slice();
25753
25287
  wasm.__wbindgen_free(arg3, arg4 * 1, 1);
25754
- const ret = insertBlockHeader(getStringFromWasm0(arg0, arg1), arg2 >>> 0, v0, arg5 !== 0);
25755
- return ret;
25756
- },
25757
- __wbg_insertPartialBlockchainNodes_cf3566f492028425: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25758
- var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
25759
- wasm.__wbindgen_free(arg2, arg3 * 4, 4);
25760
- var v1 = getArrayJsValueFromWasm0(arg4, arg5).slice();
25761
- wasm.__wbindgen_free(arg4, arg5 * 4, 4);
25762
- const ret = insertPartialBlockchainNodes(getStringFromWasm0(arg0, arg1), v0, v1);
25288
+ var v1 = getArrayJsValueFromWasm0(arg6, arg7).slice();
25289
+ wasm.__wbindgen_free(arg6, arg7 * 4, 4);
25290
+ var v2 = getArrayJsValueFromWasm0(arg8, arg9).slice();
25291
+ wasm.__wbindgen_free(arg8, arg9 * 4, 4);
25292
+ const ret = insertBlockHeader(getStringFromWasm0(arg0, arg1), arg2 >>> 0, v0, arg5 !== 0, v1, v2);
25763
25293
  return ret;
25764
25294
  },
25765
- __wbg_insertSetting_0f1cae5afcfb4023: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25295
+ __wbg_insertSetting_2b672c0bf3a3668d: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25766
25296
  let deferred0_0;
25767
25297
  let deferred0_1;
25768
25298
  try {
@@ -25776,7 +25306,7 @@ function __wbg_get_imports(memory) {
25776
25306
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
25777
25307
  }
25778
25308
  },
25779
- __wbg_insertTransactionScript_254698ca99f13bdb: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25309
+ __wbg_insertTransactionScript_f052607e004c23aa: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25780
25310
  var v0 = getArrayU8FromWasm0(arg2, arg3).slice();
25781
25311
  wasm.__wbindgen_free(arg2, arg3 * 1, 1);
25782
25312
  let v1;
@@ -25883,11 +25413,11 @@ function __wbg_get_imports(memory) {
25883
25413
  const ret = arg0.length;
25884
25414
  return ret;
25885
25415
  },
25886
- __wbg_listSettingKeys_b640b6ed3b2ceee7: function(arg0, arg1) {
25416
+ __wbg_listSettingKeys_73b3c34ff51ee657: function(arg0, arg1) {
25887
25417
  const ret = listSettingKeys(getStringFromWasm0(arg0, arg1));
25888
25418
  return ret;
25889
25419
  },
25890
- __wbg_lockAccount_e19bdabd557a9bac: function(arg0, arg1, arg2, arg3) {
25420
+ __wbg_lockAccount_a59ff3c777c9188c: function(arg0, arg1, arg2, arg3) {
25891
25421
  let deferred0_0;
25892
25422
  let deferred0_1;
25893
25423
  try {
@@ -26046,10 +25576,6 @@ function __wbg_get_imports(memory) {
26046
25576
  const ret = NoteAttachment.__wrap(arg0);
26047
25577
  return ret;
26048
25578
  },
26049
- __wbg_noteattachment_unwrap: function(arg0) {
26050
- const ret = NoteAttachment.__unwrap(arg0);
26051
- return ret;
26052
- },
26053
25579
  __wbg_noteconsumability_new: function(arg0) {
26054
25580
  const ret = NoteConsumability.__wrap(arg0);
26055
25581
  return ret;
@@ -26106,7 +25632,7 @@ function __wbg_get_imports(memory) {
26106
25632
  const ret = Array.of(arg0, arg1, arg2);
26107
25633
  return ret;
26108
25634
  },
26109
- __wbg_openDatabase_9a8fbeb3ab124c9d: function(arg0, arg1, arg2, arg3) {
25635
+ __wbg_openDatabase_8ac110fce86d145e: function(arg0, arg1, arg2, arg3) {
26110
25636
  const ret = openDatabase(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3));
26111
25637
  return ret;
26112
25638
  },
@@ -26140,7 +25666,7 @@ function __wbg_get_imports(memory) {
26140
25666
  const ret = ProvenTransaction.__wrap(arg0);
26141
25667
  return ret;
26142
25668
  },
26143
- __wbg_pruneAccountHistory_6f68d5203b34624d: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25669
+ __wbg_pruneAccountHistory_c2e9f7b1d4846bc6: function(arg0, arg1, arg2, arg3, arg4, arg5) {
26144
25670
  let deferred0_0;
26145
25671
  let deferred0_1;
26146
25672
  let deferred1_0;
@@ -26157,7 +25683,7 @@ function __wbg_get_imports(memory) {
26157
25683
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
26158
25684
  }
26159
25685
  },
26160
- __wbg_pruneIrrelevantBlocks_f67204a16f7b32f3: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25686
+ __wbg_pruneIrrelevantBlocks_33e6cf62a24f1f38: function(arg0, arg1, arg2, arg3, arg4, arg5) {
26161
25687
  var v0 = getArrayU32FromWasm0(arg2, arg3).slice();
26162
25688
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
26163
25689
  var v1 = getArrayJsValueFromWasm0(arg4, arg5).slice();
@@ -26165,14 +25691,6 @@ function __wbg_get_imports(memory) {
26165
25691
  const ret = pruneIrrelevantBlocks(getStringFromWasm0(arg0, arg1), v0, v1);
26166
25692
  return ret;
26167
25693
  },
26168
- __wbg_pswaplineagerecord_new: function(arg0) {
26169
- const ret = PswapLineageRecord.__wrap(arg0);
26170
- return ret;
26171
- },
26172
- __wbg_push_8ffdcb2063340ba5: function(arg0, arg1) {
26173
- const ret = arg0.push(arg1);
26174
- return ret;
26175
- },
26176
25694
  __wbg_queueMicrotask_0aa0a927f78f5d98: function(arg0) {
26177
25695
  const ret = arg0.queueMicrotask;
26178
25696
  return ret;
@@ -26187,13 +25705,13 @@ function __wbg_get_imports(memory) {
26187
25705
  __wbg_releaseLock_aa5846c2494b3032: function(arg0) {
26188
25706
  arg0.releaseLock();
26189
25707
  },
26190
- __wbg_removeAccountAddress_c96456170da6ac29: function(arg0, arg1, arg2, arg3) {
25708
+ __wbg_removeAccountAddress_5cbeda1f06e27b96: function(arg0, arg1, arg2, arg3) {
26191
25709
  var v0 = getArrayU8FromWasm0(arg2, arg3).slice();
26192
25710
  wasm.__wbindgen_free(arg2, arg3 * 1, 1);
26193
25711
  const ret = removeAccountAddress(getStringFromWasm0(arg0, arg1), v0);
26194
25712
  return ret;
26195
25713
  },
26196
- __wbg_removeAccountAuth_514a8e1ee9bc6293: function(arg0, arg1, arg2, arg3) {
25714
+ __wbg_removeAccountAuth_825600c45bdd5aa3: function(arg0, arg1, arg2, arg3) {
26197
25715
  let deferred0_0;
26198
25716
  let deferred0_1;
26199
25717
  try {
@@ -26205,7 +25723,7 @@ function __wbg_get_imports(memory) {
26205
25723
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
26206
25724
  }
26207
25725
  },
26208
- __wbg_removeAllMappingsForKey_18e793a295ac2226: function(arg0, arg1, arg2, arg3) {
25726
+ __wbg_removeAllMappingsForKey_3f439269152ce6e0: function(arg0, arg1, arg2, arg3) {
26209
25727
  let deferred0_0;
26210
25728
  let deferred0_1;
26211
25729
  try {
@@ -26217,7 +25735,7 @@ function __wbg_get_imports(memory) {
26217
25735
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
26218
25736
  }
26219
25737
  },
26220
- __wbg_removeNoteTag_8ae01f5c65dc9174: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) {
25738
+ __wbg_removeNoteTag_e2ea5486d35929ca: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) {
26221
25739
  var v0 = getArrayU8FromWasm0(arg2, arg3).slice();
26222
25740
  wasm.__wbindgen_free(arg2, arg3 * 1, 1);
26223
25741
  let v1;
@@ -26238,7 +25756,7 @@ function __wbg_get_imports(memory) {
26238
25756
  const ret = removeNoteTag(getStringFromWasm0(arg0, arg1), v0, v1, v2, v3);
26239
25757
  return ret;
26240
25758
  },
26241
- __wbg_removeSetting_5bec82500774f6cf: function(arg0, arg1, arg2, arg3) {
25759
+ __wbg_removeSetting_5fac6592df936024: function(arg0, arg1, arg2, arg3) {
26242
25760
  let deferred0_0;
26243
25761
  let deferred0_1;
26244
25762
  try {
@@ -26289,9 +25807,6 @@ function __wbg_get_imports(memory) {
26289
25807
  const ret = setTimeout(arg0, arg1);
26290
25808
  return ret;
26291
25809
  }, arguments); },
26292
- __wbg_set_3f1d0b984ed272ed: function(arg0, arg1, arg2) {
26293
- arg0[arg1] = arg2;
26294
- },
26295
25810
  __wbg_set_6cb8631f80447a67: function() { return handleError(function (arg0, arg1, arg2) {
26296
25811
  const ret = Reflect.set(arg0, arg1, arg2);
26297
25812
  return ret;
@@ -26448,13 +25963,13 @@ function __wbg_get_imports(memory) {
26448
25963
  const ret = TransactionSummary.__wrap(arg0);
26449
25964
  return ret;
26450
25965
  },
26451
- __wbg_undoAccountStates_b7f5bc8db7e5f7d9: function(arg0, arg1, arg2, arg3) {
25966
+ __wbg_undoAccountStates_884490500595e8c1: function(arg0, arg1, arg2, arg3) {
26452
25967
  var v0 = getArrayJsValueFromWasm0(arg2, arg3).slice();
26453
25968
  wasm.__wbindgen_free(arg2, arg3 * 4, 4);
26454
25969
  const ret = undoAccountStates(getStringFromWasm0(arg0, arg1), v0);
26455
25970
  return ret;
26456
25971
  },
26457
- __wbg_upsertAccountCode_2885d4bc1584e8e8: function(arg0, arg1, arg2, arg3, arg4, arg5) {
25972
+ __wbg_upsertAccountCode_ce71ea974ae52d20: function(arg0, arg1, arg2, arg3, arg4, arg5) {
26458
25973
  let deferred0_0;
26459
25974
  let deferred0_1;
26460
25975
  try {
@@ -26468,7 +25983,7 @@ function __wbg_get_imports(memory) {
26468
25983
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
26469
25984
  }
26470
25985
  },
26471
- __wbg_upsertAccountRecord_c3aa685ee4dcc3de: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17) {
25986
+ __wbg_upsertAccountRecord_793d7ddc0ba72c6d: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17) {
26472
25987
  let deferred0_0;
26473
25988
  let deferred0_1;
26474
25989
  let deferred1_0;
@@ -26510,7 +26025,7 @@ function __wbg_get_imports(memory) {
26510
26025
  wasm.__wbindgen_free(deferred5_0, deferred5_1, 1);
26511
26026
  }
26512
26027
  },
26513
- __wbg_upsertAccountStorage_e482e77a7e281260: function(arg0, arg1, arg2, arg3, arg4, arg5) {
26028
+ __wbg_upsertAccountStorage_5e3e18f2388a4516: function(arg0, arg1, arg2, arg3, arg4, arg5) {
26514
26029
  let deferred0_0;
26515
26030
  let deferred0_1;
26516
26031
  try {
@@ -26524,7 +26039,7 @@ function __wbg_get_imports(memory) {
26524
26039
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
26525
26040
  }
26526
26041
  },
26527
- __wbg_upsertForeignAccountCode_9aa9b862b6a7e789: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) {
26042
+ __wbg_upsertForeignAccountCode_dc483b928e37841a: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) {
26528
26043
  let deferred0_0;
26529
26044
  let deferred0_1;
26530
26045
  let deferred2_0;
@@ -26543,7 +26058,7 @@ function __wbg_get_imports(memory) {
26543
26058
  wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
26544
26059
  }
26545
26060
  },
26546
- __wbg_upsertInputNote_e10948a629bcee16: 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) {
26061
+ __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) {
26547
26062
  let deferred0_0;
26548
26063
  let deferred0_1;
26549
26064
  let deferred6_0;
@@ -26592,7 +26107,7 @@ function __wbg_get_imports(memory) {
26592
26107
  wasm.__wbindgen_free(deferred9_0, deferred9_1, 1);
26593
26108
  }
26594
26109
  },
26595
- __wbg_upsertNoteScript_7e9a616d8a143614: function(arg0, arg1, arg2, arg3, arg4, arg5) {
26110
+ __wbg_upsertNoteScript_478f10dbd569c41c: function(arg0, arg1, arg2, arg3, arg4, arg5) {
26596
26111
  let deferred0_0;
26597
26112
  let deferred0_1;
26598
26113
  try {
@@ -26606,7 +26121,7 @@ function __wbg_get_imports(memory) {
26606
26121
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
26607
26122
  }
26608
26123
  },
26609
- __wbg_upsertOutputNote_1194e3f5dcc3d4f1: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19) {
26124
+ __wbg_upsertOutputNote_81d633e2913e530c: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19) {
26610
26125
  let deferred0_0;
26611
26126
  let deferred0_1;
26612
26127
  let deferred1_0;
@@ -26641,7 +26156,7 @@ function __wbg_get_imports(memory) {
26641
26156
  wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
26642
26157
  }
26643
26158
  },
26644
- __wbg_upsertStorageMapEntries_82d953e23dee24ed: function(arg0, arg1, arg2, arg3, arg4, arg5) {
26159
+ __wbg_upsertStorageMapEntries_6458946c680ec0cc: function(arg0, arg1, arg2, arg3, arg4, arg5) {
26645
26160
  let deferred0_0;
26646
26161
  let deferred0_1;
26647
26162
  try {
@@ -26655,7 +26170,7 @@ function __wbg_get_imports(memory) {
26655
26170
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
26656
26171
  }
26657
26172
  },
26658
- __wbg_upsertTransactionRecord_24154d95069d63bd: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) {
26173
+ __wbg_upsertTransactionRecord_5f48cbfd35e412bc: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) {
26659
26174
  let deferred0_0;
26660
26175
  let deferred0_1;
26661
26176
  try {
@@ -26676,7 +26191,7 @@ function __wbg_get_imports(memory) {
26676
26191
  wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
26677
26192
  }
26678
26193
  },
26679
- __wbg_upsertVaultAssets_e982e767b7e6001a: function(arg0, arg1, arg2, arg3, arg4, arg5) {
26194
+ __wbg_upsertVaultAssets_3d383338bd7746b0: function(arg0, arg1, arg2, arg3, arg4, arg5) {
26680
26195
  let deferred0_0;
26681
26196
  let deferred0_1;
26682
26197
  try {
@@ -26719,17 +26234,17 @@ function __wbg_get_imports(memory) {
26719
26234
  return ret;
26720
26235
  },
26721
26236
  __wbindgen_cast_0000000000000001: function(arg0, arg1) {
26722
- // Cast intrinsic for `Closure(Closure { dtor_idx: 128, function: Function { arguments: [Externref], shim_idx: 129, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
26237
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 116, function: Function { arguments: [Externref], shim_idx: 117, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
26723
26238
  const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen_8294944b14acb139___closure__destroy___dyn_core_91ed24bc3d45dfd0___ops__function__FnMut__wasm_bindgen_8294944b14acb139___JsValue____Output_______, wasm_bindgen_8294944b14acb139___convert__closures_____invoke___wasm_bindgen_8294944b14acb139___JsValue_____);
26724
26239
  return ret;
26725
26240
  },
26726
26241
  __wbindgen_cast_0000000000000002: function(arg0, arg1) {
26727
- // Cast intrinsic for `Closure(Closure { dtor_idx: 128, function: Function { arguments: [NamedExternref("MessageEvent")], shim_idx: 129, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
26242
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 116, function: Function { arguments: [NamedExternref("MessageEvent")], shim_idx: 117, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
26728
26243
  const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen_8294944b14acb139___closure__destroy___dyn_core_91ed24bc3d45dfd0___ops__function__FnMut__wasm_bindgen_8294944b14acb139___JsValue____Output_______, wasm_bindgen_8294944b14acb139___convert__closures_____invoke___wasm_bindgen_8294944b14acb139___JsValue_____);
26729
26244
  return ret;
26730
26245
  },
26731
26246
  __wbindgen_cast_0000000000000003: function(arg0, arg1) {
26732
- // Cast intrinsic for `Closure(Closure { dtor_idx: 128, function: Function { arguments: [], shim_idx: 454, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
26247
+ // Cast intrinsic for `Closure(Closure { dtor_idx: 116, function: Function { arguments: [], shim_idx: 415, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
26733
26248
  const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen_8294944b14acb139___closure__destroy___dyn_core_91ed24bc3d45dfd0___ops__function__FnMut__wasm_bindgen_8294944b14acb139___JsValue____Output_______, wasm_bindgen_8294944b14acb139___convert__closures_____invoke______);
26734
26249
  return ret;
26735
26250
  },
@@ -26739,91 +26254,79 @@ function __wbg_get_imports(memory) {
26739
26254
  return ret;
26740
26255
  },
26741
26256
  __wbindgen_cast_0000000000000005: function(arg0, arg1) {
26742
- // Cast intrinsic for `Ref(Slice(U8)) -> NamedExternref("Uint8Array")`.
26743
- const ret = getArrayU8FromWasm0(arg0, arg1);
26744
- return ret;
26745
- },
26746
- __wbindgen_cast_0000000000000006: function(arg0, arg1) {
26747
26257
  // Cast intrinsic for `Ref(String) -> Externref`.
26748
26258
  const ret = getStringFromWasm0(arg0, arg1);
26749
26259
  return ret;
26750
26260
  },
26751
- __wbindgen_cast_0000000000000007: function(arg0) {
26261
+ __wbindgen_cast_0000000000000006: function(arg0) {
26752
26262
  // Cast intrinsic for `U64 -> Externref`.
26753
26263
  const ret = BigInt.asUintN(64, arg0);
26754
26264
  return ret;
26755
26265
  },
26756
- __wbindgen_cast_0000000000000008: function(arg0, arg1) {
26266
+ __wbindgen_cast_0000000000000007: function(arg0, arg1) {
26757
26267
  var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
26758
26268
  wasm.__wbindgen_free(arg0, arg1 * 4, 4);
26759
26269
  // Cast intrinsic for `Vector(NamedExternref("AccountHeader")) -> Externref`.
26760
26270
  const ret = v0;
26761
26271
  return ret;
26762
26272
  },
26763
- __wbindgen_cast_0000000000000009: function(arg0, arg1) {
26273
+ __wbindgen_cast_0000000000000008: function(arg0, arg1) {
26764
26274
  var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
26765
26275
  wasm.__wbindgen_free(arg0, arg1 * 4, 4);
26766
26276
  // Cast intrinsic for `Vector(NamedExternref("Address")) -> Externref`.
26767
26277
  const ret = v0;
26768
26278
  return ret;
26769
26279
  },
26770
- __wbindgen_cast_000000000000000a: function(arg0, arg1) {
26280
+ __wbindgen_cast_0000000000000009: function(arg0, arg1) {
26771
26281
  var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
26772
26282
  wasm.__wbindgen_free(arg0, arg1 * 4, 4);
26773
26283
  // Cast intrinsic for `Vector(NamedExternref("ConsumableNoteRecord")) -> Externref`.
26774
26284
  const ret = v0;
26775
26285
  return ret;
26776
26286
  },
26777
- __wbindgen_cast_000000000000000b: function(arg0, arg1) {
26287
+ __wbindgen_cast_000000000000000a: function(arg0, arg1) {
26778
26288
  var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
26779
26289
  wasm.__wbindgen_free(arg0, arg1 * 4, 4);
26780
26290
  // Cast intrinsic for `Vector(NamedExternref("FetchedNote")) -> Externref`.
26781
26291
  const ret = v0;
26782
26292
  return ret;
26783
26293
  },
26784
- __wbindgen_cast_000000000000000c: function(arg0, arg1) {
26294
+ __wbindgen_cast_000000000000000b: function(arg0, arg1) {
26785
26295
  var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
26786
26296
  wasm.__wbindgen_free(arg0, arg1 * 4, 4);
26787
26297
  // Cast intrinsic for `Vector(NamedExternref("InputNoteRecord")) -> Externref`.
26788
26298
  const ret = v0;
26789
26299
  return ret;
26790
26300
  },
26791
- __wbindgen_cast_000000000000000d: function(arg0, arg1) {
26301
+ __wbindgen_cast_000000000000000c: function(arg0, arg1) {
26792
26302
  var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
26793
26303
  wasm.__wbindgen_free(arg0, arg1 * 4, 4);
26794
26304
  // Cast intrinsic for `Vector(NamedExternref("OutputNoteRecord")) -> Externref`.
26795
26305
  const ret = v0;
26796
26306
  return ret;
26797
26307
  },
26798
- __wbindgen_cast_000000000000000e: function(arg0, arg1) {
26799
- var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
26800
- wasm.__wbindgen_free(arg0, arg1 * 4, 4);
26801
- // Cast intrinsic for `Vector(NamedExternref("PswapLineageRecord")) -> Externref`.
26802
- const ret = v0;
26803
- return ret;
26804
- },
26805
- __wbindgen_cast_000000000000000f: function(arg0, arg1) {
26308
+ __wbindgen_cast_000000000000000d: function(arg0, arg1) {
26806
26309
  var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
26807
26310
  wasm.__wbindgen_free(arg0, arg1 * 4, 4);
26808
26311
  // Cast intrinsic for `Vector(NamedExternref("TransactionRecord")) -> Externref`.
26809
26312
  const ret = v0;
26810
26313
  return ret;
26811
26314
  },
26812
- __wbindgen_cast_0000000000000010: function(arg0, arg1) {
26315
+ __wbindgen_cast_000000000000000e: function(arg0, arg1) {
26813
26316
  var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
26814
26317
  wasm.__wbindgen_free(arg0, arg1 * 4, 4);
26815
26318
  // Cast intrinsic for `Vector(NamedExternref("Word")) -> Externref`.
26816
26319
  const ret = v0;
26817
26320
  return ret;
26818
26321
  },
26819
- __wbindgen_cast_0000000000000011: function(arg0, arg1) {
26322
+ __wbindgen_cast_000000000000000f: function(arg0, arg1) {
26820
26323
  var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
26821
26324
  wasm.__wbindgen_free(arg0, arg1 * 4, 4);
26822
26325
  // Cast intrinsic for `Vector(NamedExternref("string")) -> Externref`.
26823
26326
  const ret = v0;
26824
26327
  return ret;
26825
26328
  },
26826
- __wbindgen_cast_0000000000000012: function(arg0, arg1) {
26329
+ __wbindgen_cast_0000000000000010: function(arg0, arg1) {
26827
26330
  var v0 = getArrayU8FromWasm0(arg0, arg1).slice();
26828
26331
  wasm.__wbindgen_free(arg0, arg1 * 1, 1);
26829
26332
  // Cast intrinsic for `Vector(U8) -> Externref`.
@@ -26853,7 +26356,7 @@ function __wbg_get_imports(memory) {
26853
26356
  getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
26854
26357
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
26855
26358
  },
26856
- memory: memory || new WebAssembly.Memory({initial:59,maximum:65536,shared:true}),
26359
+ memory: memory || new WebAssembly.Memory({initial:129,maximum:65536,shared:true}),
26857
26360
  };
26858
26361
  return {
26859
26362
  __proto__: null,
@@ -26929,6 +26432,9 @@ const AccountIdFinalization = (typeof FinalizationRegistry === 'undefined')
26929
26432
  const AccountIdArrayFinalization = (typeof FinalizationRegistry === 'undefined')
26930
26433
  ? { register: () => {}, unregister: () => {} }
26931
26434
  : new FinalizationRegistry(ptr => wasm.__wbg_accountidarray_free(ptr >>> 0, 1));
26435
+ const AccountPatchFinalization = (typeof FinalizationRegistry === 'undefined')
26436
+ ? { register: () => {}, unregister: () => {} }
26437
+ : new FinalizationRegistry(ptr => wasm.__wbg_accountpatch_free(ptr >>> 0, 1));
26932
26438
  const AccountProofFinalization = (typeof FinalizationRegistry === 'undefined')
26933
26439
  ? { register: () => {}, unregister: () => {} }
26934
26440
  : new FinalizationRegistry(ptr => wasm.__wbg_accountproof_free(ptr >>> 0, 1));
@@ -26941,18 +26447,21 @@ const AccountStatusFinalization = (typeof FinalizationRegistry === 'undefined')
26941
26447
  const AccountStorageFinalization = (typeof FinalizationRegistry === 'undefined')
26942
26448
  ? { register: () => {}, unregister: () => {} }
26943
26449
  : new FinalizationRegistry(ptr => wasm.__wbg_accountstorage_free(ptr >>> 0, 1));
26944
- const AccountStorageDeltaFinalization = (typeof FinalizationRegistry === 'undefined')
26945
- ? { register: () => {}, unregister: () => {} }
26946
- : new FinalizationRegistry(ptr => wasm.__wbg_accountstoragedelta_free(ptr >>> 0, 1));
26947
26450
  const AccountStorageModeFinalization = (typeof FinalizationRegistry === 'undefined')
26948
26451
  ? { register: () => {}, unregister: () => {} }
26949
26452
  : new FinalizationRegistry(ptr => wasm.__wbg_accountstoragemode_free(ptr >>> 0, 1));
26453
+ const AccountStoragePatchFinalization = (typeof FinalizationRegistry === 'undefined')
26454
+ ? { register: () => {}, unregister: () => {} }
26455
+ : new FinalizationRegistry(ptr => wasm.__wbg_accountstoragepatch_free(ptr >>> 0, 1));
26950
26456
  const AccountStorageRequirementsFinalization = (typeof FinalizationRegistry === 'undefined')
26951
26457
  ? { register: () => {}, unregister: () => {} }
26952
26458
  : new FinalizationRegistry(ptr => wasm.__wbg_accountstoragerequirements_free(ptr >>> 0, 1));
26953
26459
  const AccountVaultDeltaFinalization = (typeof FinalizationRegistry === 'undefined')
26954
26460
  ? { register: () => {}, unregister: () => {} }
26955
26461
  : new FinalizationRegistry(ptr => wasm.__wbg_accountvaultdelta_free(ptr >>> 0, 1));
26462
+ const AccountVaultPatchFinalization = (typeof FinalizationRegistry === 'undefined')
26463
+ ? { register: () => {}, unregister: () => {} }
26464
+ : new FinalizationRegistry(ptr => wasm.__wbg_accountvaultpatch_free(ptr >>> 0, 1));
26956
26465
  const AddressFinalization = (typeof FinalizationRegistry === 'undefined')
26957
26466
  ? { register: () => {}, unregister: () => {} }
26958
26467
  : new FinalizationRegistry(ptr => wasm.__wbg_address_free(ptr >>> 0, 1));
@@ -26989,9 +26498,6 @@ const ConsumableNoteRecordFinalization = (typeof FinalizationRegistry === 'undef
26989
26498
  const EndpointFinalization = (typeof FinalizationRegistry === 'undefined')
26990
26499
  ? { register: () => {}, unregister: () => {} }
26991
26500
  : new FinalizationRegistry(ptr => wasm.__wbg_endpoint_free(ptr >>> 0, 1));
26992
- const EthAddressFinalization = (typeof FinalizationRegistry === 'undefined')
26993
- ? { register: () => {}, unregister: () => {} }
26994
- : new FinalizationRegistry(ptr => wasm.__wbg_ethaddress_free(ptr >>> 0, 1));
26995
26501
  const ExecutedTransactionFinalization = (typeof FinalizationRegistry === 'undefined')
26996
26502
  ? { register: () => {}, unregister: () => {} }
26997
26503
  : new FinalizationRegistry(ptr => wasm.__wbg_executedtransaction_free(ptr >>> 0, 1));
@@ -27070,9 +26576,6 @@ const LibraryFinalization = (typeof FinalizationRegistry === 'undefined')
27070
26576
  const MerklePathFinalization = (typeof FinalizationRegistry === 'undefined')
27071
26577
  ? { register: () => {}, unregister: () => {} }
27072
26578
  : new FinalizationRegistry(ptr => wasm.__wbg_merklepath_free(ptr >>> 0, 1));
27073
- const NetworkAccountTargetFinalization = (typeof FinalizationRegistry === 'undefined')
27074
- ? { register: () => {}, unregister: () => {} }
27075
- : new FinalizationRegistry(ptr => wasm.__wbg_networkaccounttarget_free(ptr >>> 0, 1));
27076
26579
  const NetworkIdFinalization = (typeof FinalizationRegistry === 'undefined')
27077
26580
  ? { register: () => {}, unregister: () => {} }
27078
26581
  : new FinalizationRegistry(ptr => wasm.__wbg_networkid_free(ptr >>> 0, 1));
@@ -27196,9 +26699,6 @@ const ProgramFinalization = (typeof FinalizationRegistry === 'undefined')
27196
26699
  const ProvenTransactionFinalization = (typeof FinalizationRegistry === 'undefined')
27197
26700
  ? { register: () => {}, unregister: () => {} }
27198
26701
  : new FinalizationRegistry(ptr => wasm.__wbg_proventransaction_free(ptr >>> 0, 1));
27199
- const PswapLineageRecordFinalization = (typeof FinalizationRegistry === 'undefined')
27200
- ? { register: () => {}, unregister: () => {} }
27201
- : new FinalizationRegistry(ptr => wasm.__wbg_pswaplineagerecord_free(ptr >>> 0, 1));
27202
26702
  const PublicKeyFinalization = (typeof FinalizationRegistry === 'undefined')
27203
26703
  ? { register: () => {}, unregister: () => {} }
27204
26704
  : new FinalizationRegistry(ptr => wasm.__wbg_publickey_free(ptr >>> 0, 1));
@@ -27712,15 +27212,17 @@ var index = /*#__PURE__*/Object.freeze({
27712
27212
  AccountId: AccountId,
27713
27213
  AccountIdArray: AccountIdArray,
27714
27214
  AccountInterface: AccountInterface,
27215
+ AccountPatch: AccountPatch,
27715
27216
  AccountProof: AccountProof,
27716
27217
  AccountReader: AccountReader,
27717
27218
  AccountStatus: AccountStatus,
27718
27219
  AccountStorage: AccountStorage,
27719
- AccountStorageDelta: AccountStorageDelta,
27720
27220
  AccountStorageMode: AccountStorageMode,
27221
+ AccountStoragePatch: AccountStoragePatch,
27721
27222
  AccountStorageRequirements: AccountStorageRequirements,
27722
27223
  AccountType: AccountType,
27723
27224
  AccountVaultDelta: AccountVaultDelta,
27225
+ AccountVaultPatch: AccountVaultPatch,
27724
27226
  Address: Address,
27725
27227
  AdviceInputs: AdviceInputs,
27726
27228
  AdviceMap: AdviceMap,
@@ -27734,7 +27236,6 @@ var index = /*#__PURE__*/Object.freeze({
27734
27236
  CommittedNote: CommittedNote,
27735
27237
  ConsumableNoteRecord: ConsumableNoteRecord,
27736
27238
  Endpoint: Endpoint,
27737
- EthAddress: EthAddress,
27738
27239
  ExecutedTransaction: ExecutedTransaction,
27739
27240
  Felt: Felt,
27740
27241
  FeltArray: FeltArray,
@@ -27762,7 +27263,6 @@ var index = /*#__PURE__*/Object.freeze({
27762
27263
  JsVaultAsset: JsVaultAsset,
27763
27264
  Library: Library,
27764
27265
  MerklePath: MerklePath,
27765
- NetworkAccountTarget: NetworkAccountTarget,
27766
27266
  NetworkId: NetworkId,
27767
27267
  NetworkNoteStatusInfo: NetworkNoteStatusInfo,
27768
27268
  NetworkType: NetworkType,
@@ -27809,8 +27309,6 @@ var index = /*#__PURE__*/Object.freeze({
27809
27309
  ProcedureThreshold: ProcedureThreshold,
27810
27310
  Program: Program,
27811
27311
  ProvenTransaction: ProvenTransaction,
27812
- PswapLineageRecord: PswapLineageRecord,
27813
- PswapLineageState: PswapLineageState,
27814
27312
  PublicKey: PublicKey,
27815
27313
  RpcClient: RpcClient,
27816
27314
  Rpo256: Rpo256,
@@ -27867,7 +27365,7 @@ var index = /*#__PURE__*/Object.freeze({
27867
27365
 
27868
27366
  const module$1 = new URL("assets/miden_client_web.wasm", self.location.href);
27869
27367
 
27870
- var CargoMvyTli7g = /*#__PURE__*/Object.freeze({
27368
+ var CargoDKsyWYgG = /*#__PURE__*/Object.freeze({
27871
27369
  __proto__: null,
27872
27370
  Account: Account,
27873
27371
  AccountArray: AccountArray,
@@ -27882,15 +27380,17 @@ var CargoMvyTli7g = /*#__PURE__*/Object.freeze({
27882
27380
  AccountId: AccountId,
27883
27381
  AccountIdArray: AccountIdArray,
27884
27382
  AccountInterface: AccountInterface,
27383
+ AccountPatch: AccountPatch,
27885
27384
  AccountProof: AccountProof,
27886
27385
  AccountReader: AccountReader,
27887
27386
  AccountStatus: AccountStatus,
27888
27387
  AccountStorage: AccountStorage,
27889
- AccountStorageDelta: AccountStorageDelta,
27890
27388
  AccountStorageMode: AccountStorageMode,
27389
+ AccountStoragePatch: AccountStoragePatch,
27891
27390
  AccountStorageRequirements: AccountStorageRequirements,
27892
27391
  AccountType: AccountType,
27893
27392
  AccountVaultDelta: AccountVaultDelta,
27393
+ AccountVaultPatch: AccountVaultPatch,
27894
27394
  Address: Address,
27895
27395
  AdviceInputs: AdviceInputs,
27896
27396
  AdviceMap: AdviceMap,
@@ -27904,7 +27404,6 @@ var CargoMvyTli7g = /*#__PURE__*/Object.freeze({
27904
27404
  CommittedNote: CommittedNote,
27905
27405
  ConsumableNoteRecord: ConsumableNoteRecord,
27906
27406
  Endpoint: Endpoint,
27907
- EthAddress: EthAddress,
27908
27407
  ExecutedTransaction: ExecutedTransaction,
27909
27408
  Felt: Felt,
27910
27409
  FeltArray: FeltArray,
@@ -27932,7 +27431,6 @@ var CargoMvyTli7g = /*#__PURE__*/Object.freeze({
27932
27431
  JsVaultAsset: JsVaultAsset,
27933
27432
  Library: Library,
27934
27433
  MerklePath: MerklePath,
27935
- NetworkAccountTarget: NetworkAccountTarget,
27936
27434
  NetworkId: NetworkId,
27937
27435
  NetworkNoteStatusInfo: NetworkNoteStatusInfo,
27938
27436
  NetworkType: NetworkType,
@@ -27979,8 +27477,6 @@ var CargoMvyTli7g = /*#__PURE__*/Object.freeze({
27979
27477
  ProcedureThreshold: ProcedureThreshold,
27980
27478
  Program: Program,
27981
27479
  ProvenTransaction: ProvenTransaction,
27982
- PswapLineageRecord: PswapLineageRecord,
27983
- PswapLineageState: PswapLineageState,
27984
27480
  PublicKey: PublicKey,
27985
27481
  RpcClient: RpcClient,
27986
27482
  Rpo256: Rpo256,