@aztec/pxe 0.42.0 → 0.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dest/database/deferred_note_dao.d.ts +2 -2
  2. package/dest/database/deferred_note_dao.d.ts.map +1 -1
  3. package/dest/database/deferred_note_dao.js +2 -2
  4. package/dest/database/incoming_note_dao.d.ts +73 -0
  5. package/dest/database/incoming_note_dao.d.ts.map +1 -0
  6. package/dest/database/incoming_note_dao.js +92 -0
  7. package/dest/database/kv_pxe_database.d.ts +10 -7
  8. package/dest/database/kv_pxe_database.d.ts.map +1 -1
  9. package/dest/database/kv_pxe_database.js +149 -78
  10. package/dest/database/{note_dao.d.ts → outgoing_note_dao.d.ts} +7 -12
  11. package/dest/database/outgoing_note_dao.d.ts.map +1 -0
  12. package/dest/database/outgoing_note_dao.js +83 -0
  13. package/dest/database/pxe_database.d.ts +21 -9
  14. package/dest/database/pxe_database.d.ts.map +1 -1
  15. package/dest/database/pxe_database_test_suite.d.ts.map +1 -1
  16. package/dest/database/pxe_database_test_suite.js +71 -24
  17. package/dest/kernel_oracle/index.d.ts +1 -1
  18. package/dest/note_processor/note_processor.d.ts +23 -20
  19. package/dest/note_processor/note_processor.d.ts.map +1 -1
  20. package/dest/note_processor/note_processor.js +123 -76
  21. package/dest/note_processor/produce_note_dao.d.ts +13 -4
  22. package/dest/note_processor/produce_note_dao.d.ts.map +1 -1
  23. package/dest/note_processor/produce_note_dao.js +88 -31
  24. package/dest/pxe_service/create_pxe_service.d.ts.map +1 -1
  25. package/dest/pxe_service/create_pxe_service.js +3 -1
  26. package/dest/pxe_service/pxe_service.d.ts +9 -4
  27. package/dest/pxe_service/pxe_service.d.ts.map +1 -1
  28. package/dest/pxe_service/pxe_service.js +106 -28
  29. package/dest/simulator_oracle/index.js +2 -2
  30. package/dest/synchronizer/synchronizer.d.ts +2 -2
  31. package/dest/synchronizer/synchronizer.d.ts.map +1 -1
  32. package/dest/synchronizer/synchronizer.js +37 -36
  33. package/package.json +14 -14
  34. package/src/database/deferred_note_dao.ts +1 -1
  35. package/src/database/{note_dao.ts → incoming_note_dao.ts} +10 -7
  36. package/src/database/kv_pxe_database.ts +127 -29
  37. package/src/database/outgoing_note_dao.ts +90 -0
  38. package/src/database/pxe_database.ts +23 -9
  39. package/src/database/pxe_database_test_suite.ts +93 -29
  40. package/src/note_processor/note_processor.ts +191 -121
  41. package/src/note_processor/produce_note_dao.ts +164 -50
  42. package/src/pxe_service/create_pxe_service.ts +2 -0
  43. package/src/pxe_service/pxe_service.ts +170 -42
  44. package/src/simulator_oracle/index.ts +1 -1
  45. package/src/synchronizer/synchronizer.ts +48 -52
  46. package/dest/database/note_dao.d.ts.map +0 -1
  47. package/dest/database/note_dao.js +0 -89
@@ -8,7 +8,7 @@ import { BufferReader } from '@aztec/foundation/serialize';
8
8
  * So keep the state that we need to decode it later.
9
9
  */
10
10
  export declare class DeferredNoteDao {
11
- /** The public key associated with this note */
11
+ /** IvpkM or OvpkM (depending on if incoming or outgoing) the note was encrypted with. */
12
12
  publicKey: PublicKey;
13
13
  /** The note as emitted from the Noir contract. */
14
14
  note: Note;
@@ -25,7 +25,7 @@ export declare class DeferredNoteDao {
25
25
  /** The next available leaf index for the note hash tree for this transaction */
26
26
  dataStartIndexForTx: number;
27
27
  constructor(
28
- /** The public key associated with this note */
28
+ /** IvpkM or OvpkM (depending on if incoming or outgoing) the note was encrypted with. */
29
29
  publicKey: PublicKey,
30
30
  /** The note as emitted from the Noir contract. */
31
31
  note: Note,
@@ -1 +1 @@
1
- {"version":3,"file":"deferred_note_dao.d.ts","sourceRoot":"","sources":["../../src/database/deferred_note_dao.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,EAAE,EAAS,KAAK,SAAS,EAAU,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E;;;;GAIG;AACH,qBAAa,eAAe;IAExB,+CAA+C;IACxC,SAAS,EAAE,SAAS;IAC3B,kDAAkD;IAC3C,IAAI,EAAE,IAAI;IACjB,oDAAoD;IAC7C,eAAe,EAAE,YAAY;IACpC,iEAAiE;IAC1D,WAAW,EAAE,EAAE;IACtB,+CAA+C;IACxC,UAAU,EAAE,EAAE;IACrB,+EAA+E;IACxE,MAAM,EAAE,MAAM;IACrB,6EAA6E;IACtE,aAAa,EAAE,EAAE,EAAE;IAC1B,gFAAgF;IACzE,mBAAmB,EAAE,MAAM;;IAflC,+CAA+C;IACxC,SAAS,EAAE,SAAS;IAC3B,kDAAkD;IAC3C,IAAI,EAAE,IAAI;IACjB,oDAAoD;IAC7C,eAAe,EAAE,YAAY;IACpC,iEAAiE;IAC1D,WAAW,EAAE,EAAE;IACtB,+CAA+C;IACxC,UAAU,EAAE,EAAE;IACrB,+EAA+E;IACxE,MAAM,EAAE,MAAM;IACrB,6EAA6E;IACtE,aAAa,EAAE,EAAE,EAAE;IAC1B,gFAAgF;IACzE,mBAAmB,EAAE,MAAM;IAGpC,QAAQ,IAAI,MAAM;IAYlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;CAahD"}
1
+ {"version":3,"file":"deferred_note_dao.d.ts","sourceRoot":"","sources":["../../src/database/deferred_note_dao.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,EAAE,EAAS,KAAK,SAAS,EAAU,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E;;;;GAIG;AACH,qBAAa,eAAe;IAExB,yFAAyF;IAClF,SAAS,EAAE,SAAS;IAC3B,kDAAkD;IAC3C,IAAI,EAAE,IAAI;IACjB,oDAAoD;IAC7C,eAAe,EAAE,YAAY;IACpC,iEAAiE;IAC1D,WAAW,EAAE,EAAE;IACtB,+CAA+C;IACxC,UAAU,EAAE,EAAE;IACrB,+EAA+E;IACxE,MAAM,EAAE,MAAM;IACrB,6EAA6E;IACtE,aAAa,EAAE,EAAE,EAAE;IAC1B,gFAAgF;IACzE,mBAAmB,EAAE,MAAM;;IAflC,yFAAyF;IAClF,SAAS,EAAE,SAAS;IAC3B,kDAAkD;IAC3C,IAAI,EAAE,IAAI;IACjB,oDAAoD;IAC7C,eAAe,EAAE,YAAY;IACpC,iEAAiE;IAC1D,WAAW,EAAE,EAAE;IACtB,+CAA+C;IACxC,UAAU,EAAE,EAAE;IACrB,+EAA+E;IACxE,MAAM,EAAE,MAAM;IACrB,6EAA6E;IACtE,aAAa,EAAE,EAAE,EAAE;IAC1B,gFAAgF;IACzE,mBAAmB,EAAE,MAAM;IAGpC,QAAQ,IAAI,MAAM;IAYlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;CAahD"}
@@ -8,7 +8,7 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
8
8
  */
9
9
  export class DeferredNoteDao {
10
10
  constructor(
11
- /** The public key associated with this note */
11
+ /** IvpkM or OvpkM (depending on if incoming or outgoing) the note was encrypted with. */
12
12
  publicKey,
13
13
  /** The note as emitted from the Noir contract. */
14
14
  note,
@@ -41,4 +41,4 @@ export class DeferredNoteDao {
41
41
  return new DeferredNoteDao(reader.readObject(Point), reader.readObject(Note), reader.readObject(AztecAddress), reader.readObject(Fr), reader.readObject(Fr), reader.readObject(TxHash), reader.readVector(Fr), reader.readNumber());
42
42
  }
43
43
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmZXJyZWRfbm90ZV9kYW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YWJhc2UvZGVmZXJyZWRfbm90ZV9kYW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQWtCLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU5RTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFDMUI7SUFDRSwrQ0FBK0M7SUFDeEMsU0FBb0I7SUFDM0Isa0RBQWtEO0lBQzNDLElBQVU7SUFDakIsb0RBQW9EO0lBQzdDLGVBQTZCO0lBQ3BDLGlFQUFpRTtJQUMxRCxXQUFlO0lBQ3RCLCtDQUErQztJQUN4QyxVQUFjO0lBQ3JCLCtFQUErRTtJQUN4RSxNQUFjO0lBQ3JCLDZFQUE2RTtJQUN0RSxhQUFtQjtJQUMxQixnRkFBZ0Y7SUFDekUsbUJBQTJCO1FBZDNCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFFcEIsU0FBSSxHQUFKLElBQUksQ0FBTTtRQUVWLG9CQUFlLEdBQWYsZUFBZSxDQUFjO1FBRTdCLGdCQUFXLEdBQVgsV0FBVyxDQUFJO1FBRWYsZUFBVSxHQUFWLFVBQVUsQ0FBSTtRQUVkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFFZCxrQkFBYSxHQUFiLGFBQWEsQ0FBTTtRQUVuQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQVE7SUFDakMsQ0FBQztJQUVKLFFBQVE7UUFDTixPQUFPLGlCQUFpQixDQUN0QixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxJQUFJLEVBQ1QsSUFBSSxDQUFDLGVBQWUsRUFDcEIsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDOUIsSUFBSSxDQUFDLG1CQUFtQixDQUN6QixDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBNkI7UUFDN0MsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxPQUFPLElBQUksZUFBZSxDQUN4QixNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUN4QixNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUN2QixNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUMvQixNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUNyQixNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUNyQixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUN6QixNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUNyQixNQUFNLENBQUMsVUFBVSxFQUFFLENBQ3BCLENBQUM7SUFDSixDQUFDO0NBQ0YifQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmZXJyZWRfbm90ZV9kYW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YWJhc2UvZGVmZXJyZWRfbm90ZV9kYW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQWtCLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU5RTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFDMUI7SUFDRSx5RkFBeUY7SUFDbEYsU0FBb0I7SUFDM0Isa0RBQWtEO0lBQzNDLElBQVU7SUFDakIsb0RBQW9EO0lBQzdDLGVBQTZCO0lBQ3BDLGlFQUFpRTtJQUMxRCxXQUFlO0lBQ3RCLCtDQUErQztJQUN4QyxVQUFjO0lBQ3JCLCtFQUErRTtJQUN4RSxNQUFjO0lBQ3JCLDZFQUE2RTtJQUN0RSxhQUFtQjtJQUMxQixnRkFBZ0Y7SUFDekUsbUJBQTJCO1FBZDNCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFFcEIsU0FBSSxHQUFKLElBQUksQ0FBTTtRQUVWLG9CQUFlLEdBQWYsZUFBZSxDQUFjO1FBRTdCLGdCQUFXLEdBQVgsV0FBVyxDQUFJO1FBRWYsZUFBVSxHQUFWLFVBQVUsQ0FBSTtRQUVkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFFZCxrQkFBYSxHQUFiLGFBQWEsQ0FBTTtRQUVuQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQVE7SUFDakMsQ0FBQztJQUVKLFFBQVE7UUFDTixPQUFPLGlCQUFpQixDQUN0QixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxJQUFJLEVBQ1QsSUFBSSxDQUFDLGVBQWUsRUFDcEIsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDOUIsSUFBSSxDQUFDLG1CQUFtQixDQUN6QixDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBNkI7UUFDN0MsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxPQUFPLElBQUksZUFBZSxDQUN4QixNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUN4QixNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUN2QixNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUMvQixNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUNyQixNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUNyQixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUN6QixNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUNyQixNQUFNLENBQUMsVUFBVSxFQUFFLENBQ3BCLENBQUM7SUFDSixDQUFDO0NBQ0YifQ==
@@ -0,0 +1,73 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { Note, TxHash } from '@aztec/circuit-types';
3
+ import { AztecAddress, Fr, type PublicKey } from '@aztec/circuits.js';
4
+ import { BufferReader } from '@aztec/foundation/serialize';
5
+ import { type NoteData } from '@aztec/simulator';
6
+ /**
7
+ * A note with contextual data which was decrypted as incoming.
8
+ */
9
+ export declare class IncomingNoteDao implements NoteData {
10
+ /** The note as emitted from the Noir contract. */
11
+ note: Note;
12
+ /** The contract address this note is created in. */
13
+ contractAddress: AztecAddress;
14
+ /** The specific storage location of the note on the contract. */
15
+ storageSlot: Fr;
16
+ /** The note type identifier for the contract. */
17
+ noteTypeId: Fr;
18
+ /** The hash of the tx the note was created in. */
19
+ txHash: TxHash;
20
+ /** The nonce of the note. */
21
+ nonce: Fr;
22
+ /**
23
+ * Inner note hash of the note. This is customizable by the app circuit.
24
+ * We can use this value to compute siloedNoteHash and uniqueSiloedNoteHash.
25
+ */
26
+ innerNoteHash: Fr;
27
+ /**
28
+ * The nullifier of the note (siloed by contract address).
29
+ * Note: Might be set as 0 if the note was added to PXE as nullified.
30
+ */
31
+ siloedNullifier: Fr;
32
+ /** The location of the relevant note in the note hash tree. */
33
+ index: bigint;
34
+ /** The public key with which the note was encrypted. */
35
+ ivpkM: PublicKey;
36
+ constructor(
37
+ /** The note as emitted from the Noir contract. */
38
+ note: Note,
39
+ /** The contract address this note is created in. */
40
+ contractAddress: AztecAddress,
41
+ /** The specific storage location of the note on the contract. */
42
+ storageSlot: Fr,
43
+ /** The note type identifier for the contract. */
44
+ noteTypeId: Fr,
45
+ /** The hash of the tx the note was created in. */
46
+ txHash: TxHash,
47
+ /** The nonce of the note. */
48
+ nonce: Fr,
49
+ /**
50
+ * Inner note hash of the note. This is customizable by the app circuit.
51
+ * We can use this value to compute siloedNoteHash and uniqueSiloedNoteHash.
52
+ */
53
+ innerNoteHash: Fr,
54
+ /**
55
+ * The nullifier of the note (siloed by contract address).
56
+ * Note: Might be set as 0 if the note was added to PXE as nullified.
57
+ */
58
+ siloedNullifier: Fr,
59
+ /** The location of the relevant note in the note hash tree. */
60
+ index: bigint,
61
+ /** The public key with which the note was encrypted. */
62
+ ivpkM: PublicKey);
63
+ toBuffer(): Buffer;
64
+ static fromBuffer(buffer: Buffer | BufferReader): IncomingNoteDao;
65
+ toString(): string;
66
+ static fromString(str: string): IncomingNoteDao;
67
+ /**
68
+ * Returns the size in bytes of the Note Dao.
69
+ * @returns - Its size in bytes.
70
+ */
71
+ getSize(): number;
72
+ }
73
+ //# sourceMappingURL=incoming_note_dao.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incoming_note_dao.d.ts","sourceRoot":"","sources":["../../src/database/incoming_note_dao.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,EAAE,EAAS,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE7E,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;GAEG;AACH,qBAAa,eAAgB,YAAW,QAAQ;IAE5C,kDAAkD;IAC3C,IAAI,EAAE,IAAI;IACjB,oDAAoD;IAC7C,eAAe,EAAE,YAAY;IACpC,iEAAiE;IAC1D,WAAW,EAAE,EAAE;IACtB,iDAAiD;IAC1C,UAAU,EAAE,EAAE;IACrB,kDAAkD;IAC3C,MAAM,EAAE,MAAM;IACrB,6BAA6B;IACtB,KAAK,EAAE,EAAE;IAChB;;;OAGG;IACI,aAAa,EAAE,EAAE;IACxB;;;OAGG;IACI,eAAe,EAAE,EAAE;IAC1B,+DAA+D;IACxD,KAAK,EAAE,MAAM;IACpB,wDAAwD;IACjD,KAAK,EAAE,SAAS;;IAzBvB,kDAAkD;IAC3C,IAAI,EAAE,IAAI;IACjB,oDAAoD;IAC7C,eAAe,EAAE,YAAY;IACpC,iEAAiE;IAC1D,WAAW,EAAE,EAAE;IACtB,iDAAiD;IAC1C,UAAU,EAAE,EAAE;IACrB,kDAAkD;IAC3C,MAAM,EAAE,MAAM;IACrB,6BAA6B;IACtB,KAAK,EAAE,EAAE;IAChB;;;OAGG;IACI,aAAa,EAAE,EAAE;IACxB;;;OAGG;IACI,eAAe,EAAE,EAAE;IAC1B,+DAA+D;IACxD,KAAK,EAAE,MAAM;IACpB,wDAAwD;IACjD,KAAK,EAAE,SAAS;IAGzB,QAAQ,IAAI,MAAM;IAclB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IA4B/C,QAAQ;IAIR,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAK7B;;;OAGG;IACI,OAAO;CAKf"}
@@ -0,0 +1,92 @@
1
+ import { Note, TxHash } from '@aztec/circuit-types';
2
+ import { AztecAddress, Fr, Point } from '@aztec/circuits.js';
3
+ import { toBigIntBE } from '@aztec/foundation/bigint-buffer';
4
+ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
5
+ /**
6
+ * A note with contextual data which was decrypted as incoming.
7
+ */
8
+ export class IncomingNoteDao {
9
+ constructor(
10
+ /** The note as emitted from the Noir contract. */
11
+ note,
12
+ /** The contract address this note is created in. */
13
+ contractAddress,
14
+ /** The specific storage location of the note on the contract. */
15
+ storageSlot,
16
+ /** The note type identifier for the contract. */
17
+ noteTypeId,
18
+ /** The hash of the tx the note was created in. */
19
+ txHash,
20
+ /** The nonce of the note. */
21
+ nonce,
22
+ /**
23
+ * Inner note hash of the note. This is customizable by the app circuit.
24
+ * We can use this value to compute siloedNoteHash and uniqueSiloedNoteHash.
25
+ */
26
+ innerNoteHash,
27
+ /**
28
+ * The nullifier of the note (siloed by contract address).
29
+ * Note: Might be set as 0 if the note was added to PXE as nullified.
30
+ */
31
+ siloedNullifier,
32
+ /** The location of the relevant note in the note hash tree. */
33
+ index,
34
+ /** The public key with which the note was encrypted. */
35
+ ivpkM) {
36
+ this.note = note;
37
+ this.contractAddress = contractAddress;
38
+ this.storageSlot = storageSlot;
39
+ this.noteTypeId = noteTypeId;
40
+ this.txHash = txHash;
41
+ this.nonce = nonce;
42
+ this.innerNoteHash = innerNoteHash;
43
+ this.siloedNullifier = siloedNullifier;
44
+ this.index = index;
45
+ this.ivpkM = ivpkM;
46
+ }
47
+ toBuffer() {
48
+ return serializeToBuffer([
49
+ this.note,
50
+ this.contractAddress,
51
+ this.storageSlot,
52
+ this.noteTypeId,
53
+ this.txHash.buffer,
54
+ this.nonce,
55
+ this.innerNoteHash,
56
+ this.siloedNullifier,
57
+ this.index,
58
+ this.ivpkM,
59
+ ]);
60
+ }
61
+ static fromBuffer(buffer) {
62
+ const reader = BufferReader.asReader(buffer);
63
+ const note = Note.fromBuffer(reader);
64
+ const contractAddress = AztecAddress.fromBuffer(reader);
65
+ const storageSlot = Fr.fromBuffer(reader);
66
+ const noteTypeId = Fr.fromBuffer(reader);
67
+ const txHash = new TxHash(reader.readBytes(TxHash.SIZE));
68
+ const nonce = Fr.fromBuffer(reader);
69
+ const innerNoteHash = Fr.fromBuffer(reader);
70
+ const siloedNullifier = Fr.fromBuffer(reader);
71
+ const index = toBigIntBE(reader.readBytes(32));
72
+ const publicKey = Point.fromBuffer(reader);
73
+ return new IncomingNoteDao(note, contractAddress, storageSlot, noteTypeId, txHash, nonce, innerNoteHash, siloedNullifier, index, publicKey);
74
+ }
75
+ toString() {
76
+ return '0x' + this.toBuffer().toString('hex');
77
+ }
78
+ static fromString(str) {
79
+ const hex = str.replace(/^0x/, '');
80
+ return IncomingNoteDao.fromBuffer(Buffer.from(hex, 'hex'));
81
+ }
82
+ /**
83
+ * Returns the size in bytes of the Note Dao.
84
+ * @returns - Its size in bytes.
85
+ */
86
+ getSize() {
87
+ const indexSize = Math.ceil(Math.log2(Number(this.index)));
88
+ const noteSize = 4 + this.note.items.length * Fr.SIZE_IN_BYTES;
89
+ return noteSize + AztecAddress.SIZE_IN_BYTES + Fr.SIZE_IN_BYTES * 4 + TxHash.SIZE + Point.SIZE_IN_BYTES + indexSize;
90
+ }
91
+ }
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jb21pbmdfbm90ZV9kYW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YWJhc2UvaW5jb21pbmdfbm90ZV9kYW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQWtCLE1BQU0sb0JBQW9CLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUc5RTs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQzFCO0lBQ0Usa0RBQWtEO0lBQzNDLElBQVU7SUFDakIsb0RBQW9EO0lBQzdDLGVBQTZCO0lBQ3BDLGlFQUFpRTtJQUMxRCxXQUFlO0lBQ3RCLGlEQUFpRDtJQUMxQyxVQUFjO0lBQ3JCLGtEQUFrRDtJQUMzQyxNQUFjO0lBQ3JCLDZCQUE2QjtJQUN0QixLQUFTO0lBQ2hCOzs7T0FHRztJQUNJLGFBQWlCO0lBQ3hCOzs7T0FHRztJQUNJLGVBQW1CO0lBQzFCLCtEQUErRDtJQUN4RCxLQUFhO0lBQ3BCLHdEQUF3RDtJQUNqRCxLQUFnQjtRQXhCaEIsU0FBSSxHQUFKLElBQUksQ0FBTTtRQUVWLG9CQUFlLEdBQWYsZUFBZSxDQUFjO1FBRTdCLGdCQUFXLEdBQVgsV0FBVyxDQUFJO1FBRWYsZUFBVSxHQUFWLFVBQVUsQ0FBSTtRQUVkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFFZCxVQUFLLEdBQUwsS0FBSyxDQUFJO1FBS1Qsa0JBQWEsR0FBYixhQUFhLENBQUk7UUFLakIsb0JBQWUsR0FBZixlQUFlLENBQUk7UUFFbkIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUViLFVBQUssR0FBTCxLQUFLLENBQVc7SUFDdEIsQ0FBQztJ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
@@ -1,11 +1,12 @@
1
- import { type NoteFilter, type PublicKey } from '@aztec/circuit-types';
1
+ import { type IncomingNotesFilter, type OutgoingNotesFilter, type PublicKey } from '@aztec/circuit-types';
2
2
  import { AztecAddress, CompleteAddress, Header } from '@aztec/circuits.js';
3
3
  import { type ContractArtifact } from '@aztec/foundation/abi';
4
4
  import { Fr, type Point } from '@aztec/foundation/fields';
5
5
  import { type AztecKVStore } from '@aztec/kv-store';
6
6
  import { type ContractInstanceWithAddress } from '@aztec/types/contracts';
7
7
  import { DeferredNoteDao } from './deferred_note_dao.js';
8
- import { NoteDao } from './note_dao.js';
8
+ import { IncomingNoteDao } from './incoming_note_dao.js';
9
+ import { OutgoingNoteDao } from './outgoing_note_dao.js';
9
10
  import { type PxeDatabase } from './pxe_database.js';
10
11
  /**
11
12
  * A PXE database backed by LMDB.
@@ -24,8 +25,8 @@ export declare class KVPxeDatabase implements PxeDatabase {
24
25
  getAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
25
26
  addCapsule(capsule: Fr[]): Promise<void>;
26
27
  popCapsule(): Promise<Fr[] | undefined>;
27
- addNote(note: NoteDao): Promise<void>;
28
- addNotes(notes: NoteDao[]): Promise<void>;
28
+ addNote(note: IncomingNoteDao): Promise<void>;
29
+ addNotes(incomingNotes: IncomingNoteDao[], outgoingNotes: OutgoingNoteDao[]): Promise<void>;
29
30
  addDeferredNotes(deferredNotes: DeferredNoteDao[]): Promise<void>;
30
31
  getDeferredNotesByContract(contractAddress: AztecAddress): Promise<DeferredNoteDao[]>;
31
32
  /**
@@ -34,8 +35,10 @@ export declare class KVPxeDatabase implements PxeDatabase {
34
35
  * @returns an array of the removed deferred notes
35
36
  */
36
37
  removeDeferredNotesByContract(contractAddress: AztecAddress): Promise<DeferredNoteDao[]>;
37
- getNotes(filter: NoteFilter): Promise<NoteDao[]>;
38
- removeNullifiedNotes(nullifiers: Fr[], account: PublicKey): Promise<NoteDao[]>;
38
+ getIncomingNotes(filter: IncomingNotesFilter): Promise<IncomingNoteDao[]>;
39
+ getOutgoingNotes(filter: OutgoingNotesFilter): Promise<OutgoingNoteDao[]>;
40
+ removeNullifiedNotes(nullifiers: Fr[], account: PublicKey): Promise<IncomingNoteDao[]>;
41
+ addNullifiedNote(note: IncomingNoteDao): Promise<void>;
39
42
  setHeader(header: Header): Promise<void>;
40
43
  getBlockNumber(): number | undefined;
41
44
  getHeader(): Header;
@@ -44,6 +47,6 @@ export declare class KVPxeDatabase implements PxeDatabase {
44
47
  getCompleteAddresses(): Promise<CompleteAddress[]>;
45
48
  getSynchedBlockNumberForPublicKey(publicKey: Point): number | undefined;
46
49
  setSynchedBlockNumberForPublicKey(publicKey: Point, blockNumber: number): Promise<void>;
47
- estimateSize(): number;
50
+ estimateSize(): Promise<number>;
48
51
  }
49
52
  //# sourceMappingURL=kv_pxe_database.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kv_pxe_database.d.ts","sourceRoot":"","sources":["../../src/database/kv_pxe_database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,UAAU,EAAc,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,EAAE,EAAE,KAAK,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAEL,KAAK,YAAY,EAIlB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,KAAK,2BAA2B,EAAgC,MAAM,wBAAwB,CAAC;AAExG,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,qBAAa,aAAc,YAAW,WAAW;;IAwBnC,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;IAiCvB,WAAW,CACtB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,CAAC,2BAA2B,GAAG,gBAAgB,CAAC,GAAG,SAAS,CAAC;IAS3D,mBAAmB,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5E,mBAAmB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAMnE,mBAAmB,CAAC,QAAQ,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/E,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;IAK5F,qBAAqB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAI1C,cAAc,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnE,cAAc,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC;IAKpD,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,UAAU,IAAI,OAAO,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC;IAKvC,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBnC,gBAAgB,CAAC,aAAa,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQvE,0BAA0B,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAgBrF;;;;OAIG;IACH,6BAA6B,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA0FxF,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAIhD,oBAAoB,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAgDxE,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,cAAc,IAAI,MAAM,GAAG,SAAS;IASpC,SAAS,IAAI,MAAM;IASnB,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAmCtE,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAI/E,oBAAoB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAIlD,iCAAiC,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS;IAIvE,iCAAiC,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvF,YAAY,IAAI,MAAM;CAWvB"}
1
+ {"version":3,"file":"kv_pxe_database.d.ts","sourceRoot":"","sources":["../../src/database/kv_pxe_database.ts"],"names":[],"mappings":"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"}