@zill-protocol/client 4.1.4 → 4.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zill-protocol/client",
3
- "version": "4.1.4",
3
+ "version": "4.1.6",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,7 +1,7 @@
1
1
  import { NocturneViewer } from "@zill-protocol/crypto";
2
2
  import { NocturneDB } from "./NocturneDB";
3
3
  import { PendingOutputRecord } from "./types";
4
- import { SDKSyncAdapter, SparseMerkleProver } from "@zill-protocol/core";
4
+ import { IncludedNote, SDKSyncAdapter, SparseMerkleProver } from "@zill-protocol/core";
5
5
  export interface SyncOpts {
6
6
  endBlock?: number;
7
7
  timeoutSeconds?: number;
@@ -14,4 +14,5 @@ export interface SyncDeps {
14
14
  viewer: NocturneViewer;
15
15
  }
16
16
  export declare function syncSDK({ viewer }: SyncDeps, adapter: SDKSyncAdapter, db: NocturneDB, merkle: SparseMerkleProver, opts?: SyncOpts): Promise<number | undefined>;
17
+ export declare function normalizeIncludedNoteForSync(note: IncludedNote): IncludedNote;
17
18
  //# sourceMappingURL=syncSDK.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"syncSDK.d.ts","sourceRoot":"","sources":["../../src/syncSDK.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAOL,cAAc,EAGd,kBAAkB,EAKnB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yBAAyB,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;CACtE;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,cAAc,CAAC;CACxB;AAGD,wBAAsB,OAAO,CAC3B,EAAE,MAAM,EAAE,EAAE,QAAQ,EACpB,OAAO,EAAE,cAAc,EACvB,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,kBAAkB,EAC1B,IAAI,CAAC,EAAE,QAAQ,GACd,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA8F7B"}
1
+ {"version":3,"file":"syncSDK.d.ts","sourceRoot":"","sources":["../../src/syncSDK.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAuC,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAEL,YAAY,EAKZ,cAAc,EAGd,kBAAkB,EAKnB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yBAAyB,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;CACtE;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,cAAc,CAAC;CACxB;AAGD,wBAAsB,OAAO,CAC3B,EAAE,MAAM,EAAE,EAAE,QAAQ,EACpB,OAAO,EAAE,cAAc,EACvB,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,kBAAkB,EAC1B,IAAI,CAAC,EAAE,QAAQ,GACd,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA8F7B;AAsND,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAmB7E"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.syncSDK = syncSDK;
4
+ exports.normalizeIncludedNoteForSync = normalizeIncludedNoteForSync;
5
+ const crypto_1 = require("@zill-protocol/crypto");
4
6
  const core_1 = require("@zill-protocol/core");
5
7
  // Sync SDK, returning last synced merkle index of last state diff
6
8
  async function syncSDK({ viewer }, adapter, db, merkle, opts) {
@@ -154,7 +156,7 @@ function decryptStateDiff(viewer, { notes, nullifiers, latestCommittedMerkleInde
154
156
  // if it's not encrypted, check if it's ours.
155
157
  // if it is, then return it
156
158
  // if it's not, return only the commitment
157
- const includedNote = note;
159
+ const includedNote = normalizeIncludedNoteForSync(note);
158
160
  const isOwn = viewer.isOwnAddress(includedNote.owner);
159
161
  if (isOwn) {
160
162
  const nullifier = core_1.NoteTrait.createNullifier(viewer, includedNote);
@@ -185,4 +187,76 @@ function decryptStateDiff(viewer, { notes, nullifiers, latestCommittedMerkleInde
185
187
  totalEntityIndex,
186
188
  };
187
189
  }
190
+ function stripBigIntSuffix(value) {
191
+ return value.endsWith("n") ? value.slice(0, -1) : value;
192
+ }
193
+ function normalizeBigIntValue(value) {
194
+ if (typeof value === "bigint") {
195
+ return value;
196
+ }
197
+ if (typeof value === "number") {
198
+ return BigInt(value);
199
+ }
200
+ if (typeof value === "string") {
201
+ const trimmed = stripBigIntSuffix(value.trim());
202
+ if (!trimmed) {
203
+ return 0n;
204
+ }
205
+ return BigInt(trimmed);
206
+ }
207
+ throw new Error("invalid bigint value");
208
+ }
209
+ function normalizeNumberValue(value) {
210
+ if (typeof value === "number") {
211
+ return value;
212
+ }
213
+ if (typeof value === "bigint") {
214
+ return Number(value);
215
+ }
216
+ if (typeof value === "string") {
217
+ const trimmed = stripBigIntSuffix(value.trim());
218
+ return Number(trimmed);
219
+ }
220
+ throw new Error("invalid number value");
221
+ }
222
+ function normalizeStealthAddress(owner) {
223
+ if (!owner || typeof owner !== "object") {
224
+ throw new Error("invalid note owner");
225
+ }
226
+ const asRecord = owner;
227
+ if ("h1X" in asRecord &&
228
+ "h1Y" in asRecord &&
229
+ "h2X" in asRecord &&
230
+ "h2Y" in asRecord) {
231
+ return {
232
+ h1X: normalizeBigIntValue(asRecord.h1X),
233
+ h1Y: normalizeBigIntValue(asRecord.h1Y),
234
+ h2X: normalizeBigIntValue(asRecord.h2X),
235
+ h2Y: normalizeBigIntValue(asRecord.h2Y),
236
+ };
237
+ }
238
+ if ("h1" in asRecord && "h2" in asRecord) {
239
+ return crypto_1.StealthAddressTrait.decompress({
240
+ h1: normalizeBigIntValue(asRecord.h1),
241
+ h2: normalizeBigIntValue(asRecord.h2),
242
+ });
243
+ }
244
+ throw new Error("invalid note owner shape");
245
+ }
246
+ function normalizeIncludedNoteForSync(note) {
247
+ const owner = normalizeStealthAddress(note.owner);
248
+ const asset = note.asset;
249
+ return {
250
+ ...note,
251
+ owner,
252
+ nonce: normalizeBigIntValue(note.nonce),
253
+ value: normalizeBigIntValue(note.value),
254
+ merkleIndex: normalizeNumberValue(note.merkleIndex),
255
+ asset: {
256
+ assetType: normalizeNumberValue(asset.assetType),
257
+ assetAddr: String(asset.assetAddr),
258
+ id: normalizeBigIntValue(asset.id),
259
+ },
260
+ };
261
+ }
188
262
  //# sourceMappingURL=syncSDK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"syncSDK.js","sourceRoot":"","sources":["../../src/syncSDK.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"syncSDK.js","sourceRoot":"","sources":["../../src/syncSDK.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zill-protocol/client",
3
- "version": "4.1.4",
3
+ "version": "4.1.6",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/syncSDK.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { NocturneViewer } from "@zill-protocol/crypto";
1
+ import { NocturneViewer, StealthAddressTrait, StealthAddress } from "@zill-protocol/crypto";
2
2
  import { NocturneDB } from "./NocturneDB";
3
3
  import { PendingOutputRecord } from "./types";
4
4
  import {
@@ -251,7 +251,7 @@ function decryptStateDiff(
251
251
  // if it's not encrypted, check if it's ours.
252
252
  // if it is, then return it
253
253
  // if it's not, return only the commitment
254
- const includedNote = note as IncludedNote;
254
+ const includedNote = normalizeIncludedNoteForSync(note as IncludedNote);
255
255
  const isOwn = viewer.isOwnAddress(includedNote.owner);
256
256
 
257
257
  if (isOwn) {
@@ -283,3 +283,86 @@ function decryptStateDiff(
283
283
  totalEntityIndex,
284
284
  };
285
285
  }
286
+
287
+ function stripBigIntSuffix(value: string): string {
288
+ return value.endsWith("n") ? value.slice(0, -1) : value;
289
+ }
290
+
291
+ function normalizeBigIntValue(value: unknown): bigint {
292
+ if (typeof value === "bigint") {
293
+ return value;
294
+ }
295
+ if (typeof value === "number") {
296
+ return BigInt(value);
297
+ }
298
+ if (typeof value === "string") {
299
+ const trimmed = stripBigIntSuffix(value.trim());
300
+ if (!trimmed) {
301
+ return 0n;
302
+ }
303
+ return BigInt(trimmed);
304
+ }
305
+ throw new Error("invalid bigint value");
306
+ }
307
+
308
+ function normalizeNumberValue(value: unknown): number {
309
+ if (typeof value === "number") {
310
+ return value;
311
+ }
312
+ if (typeof value === "bigint") {
313
+ return Number(value);
314
+ }
315
+ if (typeof value === "string") {
316
+ const trimmed = stripBigIntSuffix(value.trim());
317
+ return Number(trimmed);
318
+ }
319
+ throw new Error("invalid number value");
320
+ }
321
+
322
+ function normalizeStealthAddress(owner: unknown): StealthAddress {
323
+ if (!owner || typeof owner !== "object") {
324
+ throw new Error("invalid note owner");
325
+ }
326
+ const asRecord = owner as Record<string, unknown>;
327
+ if (
328
+ "h1X" in asRecord &&
329
+ "h1Y" in asRecord &&
330
+ "h2X" in asRecord &&
331
+ "h2Y" in asRecord
332
+ ) {
333
+ return {
334
+ h1X: normalizeBigIntValue(asRecord.h1X),
335
+ h1Y: normalizeBigIntValue(asRecord.h1Y),
336
+ h2X: normalizeBigIntValue(asRecord.h2X),
337
+ h2Y: normalizeBigIntValue(asRecord.h2Y),
338
+ };
339
+ }
340
+ if ("h1" in asRecord && "h2" in asRecord) {
341
+ return StealthAddressTrait.decompress({
342
+ h1: normalizeBigIntValue(asRecord.h1),
343
+ h2: normalizeBigIntValue(asRecord.h2),
344
+ });
345
+ }
346
+ throw new Error("invalid note owner shape");
347
+ }
348
+
349
+ export function normalizeIncludedNoteForSync(note: IncludedNote): IncludedNote {
350
+ const owner = normalizeStealthAddress(note.owner);
351
+ const asset = note.asset as unknown as {
352
+ assetType: unknown;
353
+ assetAddr: unknown;
354
+ id: unknown;
355
+ };
356
+ return {
357
+ ...note,
358
+ owner,
359
+ nonce: normalizeBigIntValue(note.nonce),
360
+ value: normalizeBigIntValue(note.value),
361
+ merkleIndex: normalizeNumberValue(note.merkleIndex),
362
+ asset: {
363
+ assetType: normalizeNumberValue(asset.assetType),
364
+ assetAddr: String(asset.assetAddr),
365
+ id: normalizeBigIntValue(asset.id),
366
+ },
367
+ };
368
+ }