@aztec/foundation 0.0.1-commit.88e6f9396 → 0.0.1-commit.8c0b8ff
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/branded-types/slot.d.ts +4 -1
- package/dest/branded-types/slot.d.ts.map +1 -1
- package/dest/branded-types/slot.js +3 -0
- package/dest/collection/array.d.ts +3 -1
- package/dest/collection/array.d.ts.map +1 -1
- package/dest/collection/array.js +15 -0
- package/dest/config/env_var.d.ts +2 -2
- package/dest/config/env_var.d.ts.map +1 -1
- package/dest/config/network_config.d.ts +6 -6
- package/dest/config/network_config.js +2 -2
- package/dest/config/network_name.d.ts +2 -2
- package/dest/config/network_name.d.ts.map +1 -1
- package/dest/config/network_name.js +0 -2
- package/dest/crypto/poseidon/index.d.ts +1 -1
- package/dest/crypto/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/poseidon/index.js +40 -33
- package/dest/curves/grumpkin/point.d.ts +4 -4
- package/dest/curves/grumpkin/point.d.ts.map +1 -1
- package/dest/curves/grumpkin/point.js +7 -4
- package/dest/jest/setup.js +0 -24
- package/dest/schemas/api.d.ts +2 -2
- package/dest/schemas/api.d.ts.map +1 -1
- package/dest/serialize/buffer_reader.d.ts +20 -7
- package/dest/serialize/buffer_reader.d.ts.map +1 -1
- package/dest/serialize/buffer_reader.js +18 -5
- package/dest/serialize/field_reader.d.ts +13 -5
- package/dest/serialize/field_reader.d.ts.map +1 -1
- package/dest/serialize/field_reader.js +13 -0
- package/dest/sleep/index.d.ts +1 -2
- package/dest/sleep/index.d.ts.map +1 -1
- package/dest/sleep/index.js +1 -10
- package/dest/timer/date.d.ts +1 -3
- package/dest/timer/date.d.ts.map +1 -1
- package/dest/timer/date.js +0 -4
- package/package.json +2 -2
- package/src/branded-types/slot.ts +5 -0
- package/src/collection/array.ts +14 -0
- package/src/config/env_var.ts +2 -5
- package/src/config/network_config.ts +1 -1
- package/src/config/network_name.ts +1 -4
- package/src/crypto/poseidon/index.ts +42 -34
- package/src/curves/grumpkin/point.ts +6 -3
- package/src/jest/setup.mjs +0 -27
- package/src/schemas/api.ts +4 -1
- package/src/serialize/buffer_reader.ts +29 -6
- package/src/serialize/field_reader.ts +22 -4
- package/src/sleep/index.ts +1 -10
- package/src/timer/date.ts +0 -6
- package/src/trees/membership_witness.ts +2 -2
|
@@ -169,12 +169,30 @@ export class FieldReader {
|
|
|
169
169
|
* @param itemDeserializer - An object with a 'fromFields' method to deserialize individual elements of type T.
|
|
170
170
|
* @returns An array of instances of type T.
|
|
171
171
|
*/
|
|
172
|
-
|
|
172
|
+
/**
|
|
173
|
+
* Read an array from the field array using lazy allocation (new Array + loop).
|
|
174
|
+
* Safe for use with untrusted sizes.
|
|
175
|
+
*/
|
|
176
|
+
public readArray<T>(
|
|
177
|
+
size: number,
|
|
178
|
+
itemDeserializer: {
|
|
179
|
+
fromFields: (reader: FieldReader) => T;
|
|
180
|
+
},
|
|
181
|
+
): T[] {
|
|
182
|
+
const result = new Array<T>(size);
|
|
183
|
+
for (let i = 0; i < size; i++) {
|
|
184
|
+
result[i] = itemDeserializer.fromFields(this);
|
|
185
|
+
}
|
|
186
|
+
return result;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Read a fixed-size tuple from the field array using dense allocation (Array.from).
|
|
191
|
+
* Only use with compile-time constant sizes — the size parameter MUST NOT come from untrusted input.
|
|
192
|
+
*/
|
|
193
|
+
public readTuple<T, N extends number>(
|
|
173
194
|
size: N,
|
|
174
195
|
itemDeserializer: {
|
|
175
|
-
/**
|
|
176
|
-
* A function for deserializing data from a FieldReader instance.
|
|
177
|
-
*/
|
|
178
196
|
fromFields: (reader: FieldReader) => T;
|
|
179
197
|
},
|
|
180
198
|
): Tuple<T, N> {
|
package/src/sleep/index.ts
CHANGED
|
@@ -22,7 +22,6 @@ import { InterruptError } from '../error/index.js';
|
|
|
22
22
|
*/
|
|
23
23
|
export class InterruptibleSleep {
|
|
24
24
|
private interrupts: Array<(shouldThrow: boolean) => void> = [];
|
|
25
|
-
private timeoutIds: NodeJS.Timeout[] = [];
|
|
26
25
|
|
|
27
26
|
/**
|
|
28
27
|
* Sleep for a specified amount of time in milliseconds.
|
|
@@ -39,15 +38,9 @@ export class InterruptibleSleep {
|
|
|
39
38
|
this.interrupts.push(resolve);
|
|
40
39
|
});
|
|
41
40
|
|
|
42
|
-
|
|
43
|
-
const timeoutPromise = new Promise<boolean>(resolve => {
|
|
44
|
-
timeoutId = setTimeout(() => resolve(false), ms);
|
|
45
|
-
this.timeoutIds.push(timeoutId);
|
|
46
|
-
});
|
|
41
|
+
const timeoutPromise = new Promise<boolean>(resolve => setTimeout(() => resolve(false), ms));
|
|
47
42
|
const shouldThrow = await Promise.race([interruptPromise, timeoutPromise]);
|
|
48
43
|
|
|
49
|
-
clearTimeout(timeoutId!);
|
|
50
|
-
this.timeoutIds = this.timeoutIds.filter(id => id !== timeoutId);
|
|
51
44
|
this.interrupts = this.interrupts.filter(res => res !== interruptResolve);
|
|
52
45
|
|
|
53
46
|
if (shouldThrow) {
|
|
@@ -65,8 +58,6 @@ export class InterruptibleSleep {
|
|
|
65
58
|
public interrupt(sleepShouldThrow = false): void {
|
|
66
59
|
this.interrupts.forEach(resolve => resolve(sleepShouldThrow));
|
|
67
60
|
this.interrupts = [];
|
|
68
|
-
this.timeoutIds.forEach(id => clearTimeout(id));
|
|
69
|
-
this.timeoutIds = [];
|
|
70
61
|
}
|
|
71
62
|
}
|
|
72
63
|
|
package/src/timer/date.ts
CHANGED
|
@@ -32,12 +32,6 @@ export class TestDateProvider extends DateProvider {
|
|
|
32
32
|
this.logger.warn(`Time set to ${new Date(timeMs).toISOString()}`, { offset: this.offset, timeMs });
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
/** Resets the time back to real time (offset = 0). */
|
|
36
|
-
public reset() {
|
|
37
|
-
this.offset = 0;
|
|
38
|
-
this.logger.warn('Time reset to real time');
|
|
39
|
-
}
|
|
40
|
-
|
|
41
35
|
/** Advances the time by the given number of seconds. */
|
|
42
36
|
public advanceTime(seconds: number) {
|
|
43
37
|
this.offset += seconds * 1000;
|
|
@@ -94,7 +94,7 @@ export class MembershipWitness<N extends number> {
|
|
|
94
94
|
static fromBuffer<N extends number>(buffer: Buffer | BufferReader, size: N): MembershipWitness<N> {
|
|
95
95
|
const reader = BufferReader.asReader(buffer);
|
|
96
96
|
const leafIndex = toBigIntBE(reader.readBytes(32));
|
|
97
|
-
const siblingPath = reader.readArray(size, Fr)
|
|
97
|
+
const siblingPath = reader.readArray(size, Fr) as Tuple<Fr, N>;
|
|
98
98
|
return new MembershipWitness(size, leafIndex, siblingPath);
|
|
99
99
|
}
|
|
100
100
|
|
|
@@ -108,7 +108,7 @@ export class MembershipWitness<N extends number> {
|
|
|
108
108
|
fromBuffer: (buffer: Buffer | BufferReader) => {
|
|
109
109
|
const reader = BufferReader.asReader(buffer);
|
|
110
110
|
const leafIndex = toBigIntBE(reader.readBytes(32));
|
|
111
|
-
const siblingPath = reader.readArray(size, Fr)
|
|
111
|
+
const siblingPath = reader.readArray(size, Fr) as Tuple<Fr, N>;
|
|
112
112
|
return new MembershipWitness(size, leafIndex, siblingPath);
|
|
113
113
|
},
|
|
114
114
|
};
|