@aztec/stdlib 3.0.0-nightly.20251009 → 3.0.0-nightly.20251011
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/dest/kernel/nullifier.d.ts +2 -2
- package/dest/kernel/nullifier.d.ts.map +1 -1
- package/dest/kernel/nullifier.js +11 -11
- package/dest/p2p/gossipable.d.ts +2 -4
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/p2p/gossipable.js +5 -14
- package/dest/tests/factories.js +1 -1
- package/dest/tests/mocks.js +2 -2
- package/package.json +8 -8
- package/src/kernel/nullifier.ts +8 -8
- package/src/p2p/gossipable.ts +6 -16
- package/src/tests/factories.ts +1 -1
- package/src/tests/mocks.ts +2 -2
|
@@ -4,9 +4,9 @@ import { AztecAddress } from '../aztec-address/index.js';
|
|
|
4
4
|
import type { Ordered } from './utils/interfaces.js';
|
|
5
5
|
export declare class Nullifier implements Ordered {
|
|
6
6
|
value: Fr;
|
|
7
|
-
counter: number;
|
|
8
7
|
noteHash: Fr;
|
|
9
|
-
|
|
8
|
+
counter: number;
|
|
9
|
+
constructor(value: Fr, noteHash: Fr, counter: number);
|
|
10
10
|
toFields(): Fr[];
|
|
11
11
|
static fromFields(fields: Fr[] | FieldReader): Nullifier;
|
|
12
12
|
isEmpty(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nullifier.d.ts","sourceRoot":"","sources":["../../src/kernel/nullifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,6BAA6B,CAAC;AAE3F,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAa,SAAU,YAAW,OAAO;IAE9B,KAAK,EAAE,EAAE;IACT,
|
|
1
|
+
{"version":3,"file":"nullifier.d.ts","sourceRoot":"","sources":["../../src/kernel/nullifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,6BAA6B,CAAC;AAE3F,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,qBAAa,SAAU,YAAW,OAAO;IAE9B,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,MAAM;gBAFf,KAAK,EAAE,EAAE,EACT,QAAQ,EAAE,EAAE,EACZ,OAAO,EAAE,MAAM;IAGxB,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C,OAAO;IAIP,MAAM,CAAC,KAAK;IAIZ,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,QAAQ,IAAI,MAAM;IAIlB,KAAK,CAAC,eAAe,EAAE,YAAY;CAGpC;AAED,qBAAa,eAAgB,YAAW,OAAO;IAEpC,SAAS,EAAE,SAAS;IACpB,eAAe,EAAE,YAAY;gBAD7B,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,YAAY;IAGtC,IAAI,OAAO,WAEV;IAED,IAAI,KAAK,OAER;IAED,IAAI,iBAAiB,OAEpB;IAED,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C,OAAO;IAIP,MAAM,CAAC,KAAK;IAIZ,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,QAAQ,IAAI,MAAM;CAGnB"}
|
package/dest/kernel/nullifier.js
CHANGED
|
@@ -3,39 +3,39 @@ import { BufferReader, FieldReader, serializeToBuffer } from '@aztec/foundation/
|
|
|
3
3
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
4
4
|
export class Nullifier {
|
|
5
5
|
value;
|
|
6
|
-
counter;
|
|
7
6
|
noteHash;
|
|
8
|
-
|
|
7
|
+
counter;
|
|
8
|
+
constructor(value, noteHash, counter){
|
|
9
9
|
this.value = value;
|
|
10
|
-
this.counter = counter;
|
|
11
10
|
this.noteHash = noteHash;
|
|
11
|
+
this.counter = counter;
|
|
12
12
|
}
|
|
13
13
|
toFields() {
|
|
14
14
|
return [
|
|
15
15
|
this.value,
|
|
16
|
-
|
|
17
|
-
this.
|
|
16
|
+
this.noteHash,
|
|
17
|
+
new Fr(this.counter)
|
|
18
18
|
];
|
|
19
19
|
}
|
|
20
20
|
static fromFields(fields) {
|
|
21
21
|
const reader = FieldReader.asReader(fields);
|
|
22
|
-
return new Nullifier(reader.readField(), reader.
|
|
22
|
+
return new Nullifier(reader.readField(), reader.readField(), reader.readU32());
|
|
23
23
|
}
|
|
24
24
|
isEmpty() {
|
|
25
|
-
return this.value.isZero() &&
|
|
25
|
+
return this.value.isZero() && this.noteHash.isZero() && !this.counter;
|
|
26
26
|
}
|
|
27
27
|
static empty() {
|
|
28
|
-
return new Nullifier(Fr.zero(),
|
|
28
|
+
return new Nullifier(Fr.zero(), Fr.zero(), 0);
|
|
29
29
|
}
|
|
30
30
|
toBuffer() {
|
|
31
|
-
return serializeToBuffer(this.value, this.
|
|
31
|
+
return serializeToBuffer(this.value, this.noteHash, this.counter);
|
|
32
32
|
}
|
|
33
33
|
static fromBuffer(buffer) {
|
|
34
34
|
const reader = BufferReader.asReader(buffer);
|
|
35
|
-
return new Nullifier(Fr.fromBuffer(reader),
|
|
35
|
+
return new Nullifier(Fr.fromBuffer(reader), Fr.fromBuffer(reader), reader.readNumber());
|
|
36
36
|
}
|
|
37
37
|
toString() {
|
|
38
|
-
return `value=${this.value}
|
|
38
|
+
return `value=${this.value} noteHash=${this.noteHash} counter=${this.counter}`;
|
|
39
39
|
}
|
|
40
40
|
scope(contractAddress) {
|
|
41
41
|
return new ScopedNullifier(this, contractAddress);
|
package/dest/p2p/gossipable.d.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
2
|
import type { TopicType } from './topic_type.js';
|
|
3
3
|
export declare class P2PMessage {
|
|
4
|
-
readonly publishTime: Date;
|
|
5
|
-
readonly id: Buffer32;
|
|
6
4
|
readonly payload: Buffer;
|
|
7
|
-
constructor(
|
|
8
|
-
static fromGossipable(message: Gossipable):
|
|
5
|
+
constructor(payload: Buffer);
|
|
6
|
+
static fromGossipable(message: Gossipable): P2PMessage;
|
|
9
7
|
static fromMessageData(messageData: Buffer): P2PMessage;
|
|
10
8
|
toMessageData(): Buffer;
|
|
11
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gossipable.d.ts","sourceRoot":"","sources":["../../src/p2p/gossipable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,UAAU;
|
|
1
|
+
{"version":3,"file":"gossipable.d.ts","sourceRoot":"","sources":["../../src/p2p/gossipable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,UAAU;aACO,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;IAE3C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU;IAItD,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU;IAMvD,aAAa,IAAI,MAAM;CAGxB;AAED;;;;GAIG;AACH,8BAAsB,UAAU;IAC9B,OAAO,CAAC,QAAQ,CAAuB;IACvC;;;OAGG;IACH,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;IAE3B;;;OAGG;IACG,oBAAoB,IAAI,OAAO,CAAC,QAAQ,CAAC;IAQ/C,QAAQ,CAAC,4BAA4B,IAAI,OAAO,CAAC,QAAQ,CAAC;IAE1D;;;OAGG;IACH,QAAQ,CAAC,QAAQ,IAAI,MAAM;IAE3B,SAAS,IAAI,MAAM;IAInB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,IAAI,MAAM;CAC3B"}
|
package/dest/p2p/gossipable.js
CHANGED
|
@@ -1,28 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { BufferReader, bigintToUInt64BE, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
1
|
+
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
3
2
|
export class P2PMessage {
|
|
4
|
-
publishTime;
|
|
5
|
-
id;
|
|
6
3
|
payload;
|
|
7
|
-
constructor(
|
|
8
|
-
this.publishTime = publishTime;
|
|
9
|
-
this.id = id;
|
|
4
|
+
constructor(payload){
|
|
10
5
|
this.payload = payload;
|
|
11
6
|
}
|
|
12
|
-
static
|
|
13
|
-
return new P2PMessage(
|
|
7
|
+
static fromGossipable(message) {
|
|
8
|
+
return new P2PMessage(message.toBuffer());
|
|
14
9
|
}
|
|
15
10
|
static fromMessageData(messageData) {
|
|
16
11
|
const reader = new BufferReader(messageData);
|
|
17
|
-
const publishTime = reader.readUInt64();
|
|
18
|
-
const id = Buffer32.fromBuffer(reader);
|
|
19
12
|
const payload = reader.readBuffer();
|
|
20
|
-
return new P2PMessage(
|
|
13
|
+
return new P2PMessage(payload);
|
|
21
14
|
}
|
|
22
15
|
toMessageData() {
|
|
23
16
|
return serializeToBuffer([
|
|
24
|
-
bigintToUInt64BE(BigInt(this.publishTime.getTime())),
|
|
25
|
-
this.id,
|
|
26
17
|
serializeToBuffer(this.payload.length, this.payload)
|
|
27
18
|
]);
|
|
28
19
|
}
|
package/dest/tests/factories.js
CHANGED
|
@@ -97,7 +97,7 @@ function makeNoteHash(seed) {
|
|
|
97
97
|
return new NoteHash(fr(seed), seed + 1);
|
|
98
98
|
}
|
|
99
99
|
function makeNullifier(seed) {
|
|
100
|
-
return new Nullifier(fr(seed), seed + 1,
|
|
100
|
+
return new Nullifier(fr(seed), fr(seed + 1), seed + 2);
|
|
101
101
|
}
|
|
102
102
|
function makePrivateLog(seed) {
|
|
103
103
|
return new PrivateLog(makeTuple(PRIVATE_LOG_SIZE_IN_FIELDS, fr, seed), PRIVATE_LOG_SIZE_IN_FIELDS);
|
package/dest/tests/mocks.js
CHANGED
|
@@ -40,7 +40,7 @@ export const mockTx = async (seed = 1, { numberOfNonRevertiblePublicCallRequests
|
|
|
40
40
|
const totalPublicCallRequests = numberOfNonRevertiblePublicCallRequests + numberOfRevertiblePublicCallRequests + (hasPublicTeardownCallRequest ? 1 : 0);
|
|
41
41
|
const isForPublic = totalPublicCallRequests > 0;
|
|
42
42
|
const data = PrivateKernelTailCircuitPublicInputs.empty();
|
|
43
|
-
const firstNullifier = new Nullifier(new Fr(seed + 1),
|
|
43
|
+
const firstNullifier = new Nullifier(new Fr(seed + 1), Fr.ZERO, 0);
|
|
44
44
|
data.constants.txContext.gasSettings = GasSettings.default({
|
|
45
45
|
maxFeesPerGas: new GasFees(10, 10),
|
|
46
46
|
maxPriorityFeesPerGas
|
|
@@ -72,7 +72,7 @@ export const mockTx = async (seed = 1, { numberOfNonRevertiblePublicCallRequests
|
|
|
72
72
|
}
|
|
73
73
|
data.forPublic.nonRevertibleAccumulatedData = nonRevertibleBuilder.pushNullifier(firstNullifier.value).withPublicCallRequests(publicCallRequests.slice(numberOfRevertiblePublicCallRequests)).build();
|
|
74
74
|
for(let i = 0; i < numberOfRevertibleNullifiers; i++){
|
|
75
|
-
const revertibleNullifier = new Nullifier(new Fr(seed + 2 + i),
|
|
75
|
+
const revertibleNullifier = new Nullifier(new Fr(seed + 2 + i), Fr.ZERO, 0);
|
|
76
76
|
revertibleBuilder.pushNullifier(revertibleNullifier.value);
|
|
77
77
|
}
|
|
78
78
|
data.forPublic.revertibleAccumulatedData = revertibleBuilder.withPublicCallRequests(publicCallRequests.slice(0, numberOfRevertiblePublicCallRequests)).build();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/stdlib",
|
|
3
|
-
"version": "3.0.0-nightly.
|
|
3
|
+
"version": "3.0.0-nightly.20251011",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"inherits": [
|
|
6
6
|
"../package.common.json",
|
|
@@ -70,13 +70,13 @@
|
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
72
|
"@aws-sdk/client-s3": "^3.892.0",
|
|
73
|
-
"@aztec/bb.js": "3.0.0-nightly.
|
|
74
|
-
"@aztec/blob-lib": "3.0.0-nightly.
|
|
75
|
-
"@aztec/constants": "3.0.0-nightly.
|
|
76
|
-
"@aztec/ethereum": "3.0.0-nightly.
|
|
77
|
-
"@aztec/foundation": "3.0.0-nightly.
|
|
78
|
-
"@aztec/l1-artifacts": "3.0.0-nightly.
|
|
79
|
-
"@aztec/noir-noirc_abi": "3.0.0-nightly.
|
|
73
|
+
"@aztec/bb.js": "3.0.0-nightly.20251011",
|
|
74
|
+
"@aztec/blob-lib": "3.0.0-nightly.20251011",
|
|
75
|
+
"@aztec/constants": "3.0.0-nightly.20251011",
|
|
76
|
+
"@aztec/ethereum": "3.0.0-nightly.20251011",
|
|
77
|
+
"@aztec/foundation": "3.0.0-nightly.20251011",
|
|
78
|
+
"@aztec/l1-artifacts": "3.0.0-nightly.20251011",
|
|
79
|
+
"@aztec/noir-noirc_abi": "3.0.0-nightly.20251011",
|
|
80
80
|
"@google-cloud/storage": "^7.15.0",
|
|
81
81
|
"axios": "^1.12.0",
|
|
82
82
|
"json-stringify-deterministic": "1.0.12",
|
package/src/kernel/nullifier.ts
CHANGED
|
@@ -7,38 +7,38 @@ import type { Ordered } from './utils/interfaces.js';
|
|
|
7
7
|
export class Nullifier implements Ordered {
|
|
8
8
|
constructor(
|
|
9
9
|
public value: Fr,
|
|
10
|
-
public counter: number,
|
|
11
10
|
public noteHash: Fr,
|
|
11
|
+
public counter: number,
|
|
12
12
|
) {}
|
|
13
13
|
|
|
14
14
|
toFields(): Fr[] {
|
|
15
|
-
return [this.value, new Fr(this.counter)
|
|
15
|
+
return [this.value, this.noteHash, new Fr(this.counter)];
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
static fromFields(fields: Fr[] | FieldReader) {
|
|
19
19
|
const reader = FieldReader.asReader(fields);
|
|
20
|
-
return new Nullifier(reader.readField(), reader.
|
|
20
|
+
return new Nullifier(reader.readField(), reader.readField(), reader.readU32());
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
isEmpty() {
|
|
24
|
-
return this.value.isZero() &&
|
|
24
|
+
return this.value.isZero() && this.noteHash.isZero() && !this.counter;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
static empty() {
|
|
28
|
-
return new Nullifier(Fr.zero(),
|
|
28
|
+
return new Nullifier(Fr.zero(), Fr.zero(), 0);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
toBuffer(): Buffer {
|
|
32
|
-
return serializeToBuffer(this.value, this.
|
|
32
|
+
return serializeToBuffer(this.value, this.noteHash, this.counter);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
36
36
|
const reader = BufferReader.asReader(buffer);
|
|
37
|
-
return new Nullifier(Fr.fromBuffer(reader),
|
|
37
|
+
return new Nullifier(Fr.fromBuffer(reader), Fr.fromBuffer(reader), reader.readNumber());
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
toString(): string {
|
|
41
|
-
return `value=${this.value}
|
|
41
|
+
return `value=${this.value} noteHash=${this.noteHash} counter=${this.counter}`;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
scope(contractAddress: AztecAddress) {
|
package/src/p2p/gossipable.ts
CHANGED
|
@@ -1,33 +1,23 @@
|
|
|
1
1
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
|
-
import { BufferReader,
|
|
2
|
+
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
3
3
|
|
|
4
4
|
import type { TopicType } from './topic_type.js';
|
|
5
5
|
|
|
6
6
|
export class P2PMessage {
|
|
7
|
-
constructor(
|
|
8
|
-
public readonly publishTime: Date,
|
|
9
|
-
public readonly id: Buffer32,
|
|
10
|
-
public readonly payload: Buffer,
|
|
11
|
-
) {}
|
|
7
|
+
constructor(public readonly payload: Buffer) {}
|
|
12
8
|
|
|
13
|
-
static
|
|
14
|
-
return new P2PMessage(
|
|
9
|
+
static fromGossipable(message: Gossipable): P2PMessage {
|
|
10
|
+
return new P2PMessage(message.toBuffer());
|
|
15
11
|
}
|
|
16
12
|
|
|
17
13
|
static fromMessageData(messageData: Buffer): P2PMessage {
|
|
18
14
|
const reader = new BufferReader(messageData);
|
|
19
|
-
const publishTime = reader.readUInt64();
|
|
20
|
-
const id = Buffer32.fromBuffer(reader);
|
|
21
15
|
const payload = reader.readBuffer();
|
|
22
|
-
return new P2PMessage(
|
|
16
|
+
return new P2PMessage(payload);
|
|
23
17
|
}
|
|
24
18
|
|
|
25
19
|
toMessageData(): Buffer {
|
|
26
|
-
return serializeToBuffer([
|
|
27
|
-
bigintToUInt64BE(BigInt(this.publishTime.getTime())),
|
|
28
|
-
this.id,
|
|
29
|
-
serializeToBuffer(this.payload.length, this.payload),
|
|
30
|
-
]);
|
|
20
|
+
return serializeToBuffer([serializeToBuffer(this.payload.length, this.payload)]);
|
|
31
21
|
}
|
|
32
22
|
}
|
|
33
23
|
|
package/src/tests/factories.ts
CHANGED
|
@@ -193,7 +193,7 @@ function makeNoteHash(seed: number) {
|
|
|
193
193
|
}
|
|
194
194
|
|
|
195
195
|
function makeNullifier(seed: number) {
|
|
196
|
-
return new Nullifier(fr(seed), seed + 1,
|
|
196
|
+
return new Nullifier(fr(seed), fr(seed + 1), seed + 2);
|
|
197
197
|
}
|
|
198
198
|
|
|
199
199
|
function makePrivateLog(seed: number) {
|
package/src/tests/mocks.ts
CHANGED
|
@@ -109,7 +109,7 @@ export const mockTx = async (
|
|
|
109
109
|
(hasPublicTeardownCallRequest ? 1 : 0);
|
|
110
110
|
const isForPublic = totalPublicCallRequests > 0;
|
|
111
111
|
const data = PrivateKernelTailCircuitPublicInputs.empty();
|
|
112
|
-
const firstNullifier = new Nullifier(new Fr(seed + 1),
|
|
112
|
+
const firstNullifier = new Nullifier(new Fr(seed + 1), Fr.ZERO, 0);
|
|
113
113
|
data.constants.txContext.gasSettings = GasSettings.default({
|
|
114
114
|
maxFeesPerGas: new GasFees(10, 10),
|
|
115
115
|
maxPriorityFeesPerGas,
|
|
@@ -151,7 +151,7 @@ export const mockTx = async (
|
|
|
151
151
|
.build();
|
|
152
152
|
|
|
153
153
|
for (let i = 0; i < numberOfRevertibleNullifiers; i++) {
|
|
154
|
-
const revertibleNullifier = new Nullifier(new Fr(seed + 2 + i),
|
|
154
|
+
const revertibleNullifier = new Nullifier(new Fr(seed + 2 + i), Fr.ZERO, 0);
|
|
155
155
|
revertibleBuilder.pushNullifier(revertibleNullifier.value);
|
|
156
156
|
}
|
|
157
157
|
|