@aztec/stdlib 3.0.0-nightly.20250925 → 3.0.0-nightly.20250926
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/avm/avm_accumulated_data.d.ts +1 -0
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_accumulated_data.js +4 -0
- package/dest/avm/index.d.ts +0 -1
- package/dest/avm/index.d.ts.map +1 -1
- package/dest/avm/index.js +0 -1
- package/dest/file-store/factory.d.ts.map +1 -1
- package/dest/file-store/factory.js +18 -0
- package/dest/file-store/s3.d.ts +25 -0
- package/dest/file-store/s3.d.ts.map +1 -0
- package/dest/file-store/s3.js +187 -0
- package/dest/interfaces/aztec-node-admin.d.ts +6 -0
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/slasher.d.ts +4 -0
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +1 -0
- package/dest/interfaces/validator.d.ts +6 -1
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +2 -1
- package/dest/rollup/avm_proof_data.d.ts +2 -12
- package/dest/rollup/avm_proof_data.d.ts.map +1 -1
- package/dest/rollup/avm_proof_data.js +0 -24
- package/dest/rollup/base_rollup_hints.d.ts +15 -16
- package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
- package/dest/rollup/base_rollup_hints.js +24 -25
- package/dest/rollup/block_root_rollup_private_inputs.d.ts +13 -13
- package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/block_root_rollup_private_inputs.js +20 -20
- package/dest/rollup/index.d.ts +1 -1
- package/dest/rollup/index.d.ts.map +1 -1
- package/dest/rollup/index.js +1 -1
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +1 -1
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/public_tx_base_rollup_private_inputs.js +2 -2
- package/dest/rollup/{state_diff_hints.d.ts → tree_snapshot_diff_hints.d.ts} +22 -38
- package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -0
- package/dest/rollup/tree_snapshot_diff_hints.js +75 -0
- package/dest/rollup/tx_rollup_public_inputs.d.ts +4 -4
- package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/tx_rollup_public_inputs.js +7 -7
- package/dest/tests/factories.d.ts +4 -4
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +20 -25
- package/package.json +9 -8
- package/src/avm/avm_accumulated_data.ts +10 -0
- package/src/avm/index.ts +0 -1
- package/src/file-store/factory.ts +15 -0
- package/src/file-store/s3.ts +186 -0
- package/src/interfaces/slasher.ts +2 -0
- package/src/interfaces/validator.ts +5 -1
- package/src/rollup/avm_proof_data.ts +2 -31
- package/src/rollup/base_rollup_hints.ts +20 -21
- package/src/rollup/block_root_rollup_private_inputs.ts +14 -14
- package/src/rollup/index.ts +1 -1
- package/src/rollup/public_tx_base_rollup_private_inputs.ts +3 -2
- package/src/rollup/{state_diff_hints.ts → tree_snapshot_diff_hints.ts} +26 -41
- package/src/rollup/tx_rollup_public_inputs.ts +4 -4
- package/src/tests/factories.ts +25 -37
- package/dest/avm/public_data_hint.d.ts +0 -16
- package/dest/avm/public_data_hint.d.ts.map +0 -1
- package/dest/avm/public_data_hint.js +0 -27
- package/dest/rollup/state_diff_hints.d.ts.map +0 -1
- package/dest/rollup/state_diff_hints.js +0 -85
- package/src/avm/public_data_hint.ts +0 -38
|
@@ -145,6 +145,7 @@ export declare class AvmAccumulatedData {
|
|
|
145
145
|
static empty(): AvmAccumulatedData;
|
|
146
146
|
isEmpty(): boolean;
|
|
147
147
|
[inspect.custom](): string;
|
|
148
|
+
getArrayLengths(): AvmAccumulatedDataArrayLengths;
|
|
148
149
|
}
|
|
149
150
|
/**
|
|
150
151
|
* Represents the lengths of arrays in AVM accumulated data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avm_accumulated_data.d.ts","sourceRoot":"","sources":["../../src/avm/avm_accumulated_data.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,4CAA4C,EAC7C,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EACL,YAAY,EACZ,WAAW,EACX,KAAK,KAAK,EAIX,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"avm_accumulated_data.d.ts","sourceRoot":"","sources":["../../src/avm/avm_accumulated_data.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import { BufferReader, FieldReader, assertLength, serializeToBuffer, serializeTo
|
|
|
7
7
|
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
8
8
|
import { inspect } from 'util';
|
|
9
9
|
import { z } from 'zod';
|
|
10
|
+
import { countAccumulatedItems } from '../kernel/utils/index.js';
|
|
10
11
|
import { FlatPublicLogs } from '../logs/public_log.js';
|
|
11
12
|
import { ScopedL2ToL1Message } from '../messaging/l2_to_l1_message.js';
|
|
12
13
|
import { PublicDataWrite } from './public_data_write.js';
|
|
@@ -94,6 +95,9 @@ export class AvmAccumulatedData {
|
|
|
94
95
|
publicDataWrites: [${this.publicDataWrites.filter((x)=>!x.isEmpty()).map((h)=>inspect(h)).join(', ')}],
|
|
95
96
|
}`;
|
|
96
97
|
}
|
|
98
|
+
getArrayLengths() {
|
|
99
|
+
return new AvmAccumulatedDataArrayLengths(countAccumulatedItems(this.noteHashes), countAccumulatedItems(this.nullifiers), countAccumulatedItems(this.l2ToL1Msgs), countAccumulatedItems(this.publicDataWrites));
|
|
100
|
+
}
|
|
97
101
|
}
|
|
98
102
|
/**
|
|
99
103
|
* Represents the lengths of arrays in AVM accumulated data
|
package/dest/avm/index.d.ts
CHANGED
|
@@ -3,7 +3,6 @@ export * from './avm_accumulated_data.js';
|
|
|
3
3
|
export * from './avm_circuit_public_inputs.js';
|
|
4
4
|
export * from './revert_code.js';
|
|
5
5
|
export * from './public_data_write.js';
|
|
6
|
-
export * from './public_data_hint.js';
|
|
7
6
|
export * from './public_data_update_request.js';
|
|
8
7
|
export * from './contract_storage_update_request.js';
|
|
9
8
|
export * from './contract_storage_read.js';
|
package/dest/avm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/avm/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/avm/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wCAAwC,CAAC;AACvD,cAAc,0BAA0B,CAAC"}
|
package/dest/avm/index.js
CHANGED
|
@@ -3,7 +3,6 @@ export * from './avm_accumulated_data.js';
|
|
|
3
3
|
export * from './avm_circuit_public_inputs.js';
|
|
4
4
|
export * from './revert_code.js';
|
|
5
5
|
export * from './public_data_write.js';
|
|
6
|
-
export * from './public_data_hint.js';
|
|
7
6
|
export * from './public_data_update_request.js';
|
|
8
7
|
export * from './contract_storage_update_request.js';
|
|
9
8
|
export * from './contract_storage_read.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/file-store/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAIlE,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/file-store/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAIlE,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAWnE,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAC3F,wBAAsB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AA6C9F,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC3G,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC"}
|
|
@@ -2,8 +2,10 @@ import { createLogger } from '@aztec/foundation/log';
|
|
|
2
2
|
import { GoogleCloudFileStore } from './gcs.js';
|
|
3
3
|
import { HttpFileStore } from './http.js';
|
|
4
4
|
import { LocalFileStore } from './local.js';
|
|
5
|
+
import { S3FileStore } from './s3.js';
|
|
5
6
|
const supportedExamples = [
|
|
6
7
|
`gs://bucket-name/path/to/store`,
|
|
8
|
+
`s3://bucket-name/path/to/store`,
|
|
7
9
|
`file:///absolute/local/path/to/store`,
|
|
8
10
|
`https://host/path`
|
|
9
11
|
];
|
|
@@ -30,6 +32,22 @@ export async function createFileStore(config, logger = createLogger('stdlib:file
|
|
|
30
32
|
} catch {
|
|
31
33
|
throw new Error(`Invalid google cloud store definition: '${config}'.`);
|
|
32
34
|
}
|
|
35
|
+
} else if (config.startsWith('s3://')) {
|
|
36
|
+
try {
|
|
37
|
+
const url = new URL(config);
|
|
38
|
+
const bucket = url.host;
|
|
39
|
+
const path = url.pathname.replace(/^\/+/, '');
|
|
40
|
+
const endpoint = url.searchParams.get('endpoint');
|
|
41
|
+
const publicBaseUrl = url.searchParams.get('publicBaseUrl') ?? undefined;
|
|
42
|
+
logger.info(`Creating S3 file store at ${bucket} ${path}`);
|
|
43
|
+
const store = new S3FileStore(bucket, path, {
|
|
44
|
+
endpoint: endpoint ?? undefined,
|
|
45
|
+
publicBaseUrl
|
|
46
|
+
});
|
|
47
|
+
return store;
|
|
48
|
+
} catch {
|
|
49
|
+
throw new Error(`Invalid S3 store definition: '${config}'.`);
|
|
50
|
+
}
|
|
33
51
|
} else {
|
|
34
52
|
throw new Error(`Unknown file store config: '${config}'. Supported values are ${supportedExamples.join(', ')}.`);
|
|
35
53
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
2
|
+
import type { FileStore, FileStoreSaveOptions } from './interface.js';
|
|
3
|
+
export declare class S3FileStore implements FileStore {
|
|
4
|
+
private readonly bucketName;
|
|
5
|
+
private readonly basePath;
|
|
6
|
+
private readonly log;
|
|
7
|
+
private readonly s3;
|
|
8
|
+
private readonly region;
|
|
9
|
+
private readonly endpoint?;
|
|
10
|
+
private readonly publicBaseUrl?;
|
|
11
|
+
constructor(bucketName: string, basePath: string, opts: {
|
|
12
|
+
endpoint?: string;
|
|
13
|
+
publicBaseUrl?: string;
|
|
14
|
+
}, log?: Logger);
|
|
15
|
+
save(path: string, data: Buffer, opts?: FileStoreSaveOptions): Promise<string>;
|
|
16
|
+
upload(destPath: string, srcPath: string, opts?: FileStoreSaveOptions): Promise<string>;
|
|
17
|
+
read(pathOrUrlStr: string): Promise<Buffer>;
|
|
18
|
+
download(pathOrUrlStr: string, destPath: string): Promise<void>;
|
|
19
|
+
exists(pathOrUrlStr: string): Promise<boolean>;
|
|
20
|
+
private extractUserMetadata;
|
|
21
|
+
private buildReturnedUrl;
|
|
22
|
+
private getBucketAndKey;
|
|
23
|
+
private getFullPath;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=s3.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3.d.ts","sourceRoot":"","sources":["../../src/file-store/s3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAgBlE,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAMtE,qBAAa,WAAY,YAAW,SAAS;IAOzC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IATtB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAW;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;gBAGrB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EACjC,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,EAClC,GAAG,GAAE,MAA6C;IAiBxD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBlF,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB3F,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW3C,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/D,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAe3D,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,WAAW;CAKpB"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
2
|
+
import { GetObjectCommand, HeadObjectCommand, PutObjectCommand, S3Client } from '@aws-sdk/client-s3';
|
|
3
|
+
import { createReadStream, createWriteStream } from 'fs';
|
|
4
|
+
import { mkdir } from 'fs/promises';
|
|
5
|
+
import { dirname, join } from 'path';
|
|
6
|
+
import { finished } from 'stream/promises';
|
|
7
|
+
import { createGzip } from 'zlib';
|
|
8
|
+
function normalizeBasePath(path) {
|
|
9
|
+
return path?.replace(/^\/+|\/+$/g, '') ?? '';
|
|
10
|
+
}
|
|
11
|
+
export class S3FileStore {
|
|
12
|
+
bucketName;
|
|
13
|
+
basePath;
|
|
14
|
+
log;
|
|
15
|
+
s3;
|
|
16
|
+
region;
|
|
17
|
+
endpoint;
|
|
18
|
+
publicBaseUrl;
|
|
19
|
+
constructor(bucketName, basePath, opts, log = createLogger('stdlib:s3-file-store')){
|
|
20
|
+
this.bucketName = bucketName;
|
|
21
|
+
this.basePath = basePath;
|
|
22
|
+
this.log = log;
|
|
23
|
+
this.endpoint = opts.endpoint;
|
|
24
|
+
this.region = this.endpoint ? 'auto' : process.env.AWS_REGION ?? process.env.AWS_DEFAULT_REGION ?? 'us-east-1';
|
|
25
|
+
this.publicBaseUrl = opts.publicBaseUrl;
|
|
26
|
+
const clientOptions = {};
|
|
27
|
+
if (this.endpoint) {
|
|
28
|
+
clientOptions.region = 'auto';
|
|
29
|
+
clientOptions.endpoint = this.endpoint;
|
|
30
|
+
clientOptions.forcePathStyle = true;
|
|
31
|
+
} else {
|
|
32
|
+
clientOptions.region = this.region;
|
|
33
|
+
}
|
|
34
|
+
this.s3 = new S3Client(clientOptions);
|
|
35
|
+
}
|
|
36
|
+
async save(path, data, opts = {}) {
|
|
37
|
+
const key = this.getFullPath(path);
|
|
38
|
+
const shouldCompress = !opts.compress;
|
|
39
|
+
const body = shouldCompress ? (await import('zlib')).gzipSync(data) : data;
|
|
40
|
+
const put = new PutObjectCommand({
|
|
41
|
+
Bucket: this.bucketName,
|
|
42
|
+
Key: key,
|
|
43
|
+
Body: body,
|
|
44
|
+
ContentEncoding: shouldCompress ? 'gzip' : undefined,
|
|
45
|
+
CacheControl: opts.metadata?.['Cache-control'],
|
|
46
|
+
Metadata: this.extractUserMetadata(opts.metadata)
|
|
47
|
+
});
|
|
48
|
+
await this.s3.send(put);
|
|
49
|
+
return this.buildReturnedUrl(key, !!opts.public);
|
|
50
|
+
}
|
|
51
|
+
async upload(destPath, srcPath, opts = {}) {
|
|
52
|
+
const key = this.getFullPath(destPath);
|
|
53
|
+
const shouldCompress = opts.compress !== false; // default true like GCS impl
|
|
54
|
+
await mkdir(dirname(srcPath), {
|
|
55
|
+
recursive: true
|
|
56
|
+
}).catch(()=>undefined);
|
|
57
|
+
const source = createReadStream(srcPath);
|
|
58
|
+
const bodyStream = shouldCompress ? source.pipe(createGzip()) : source;
|
|
59
|
+
const put = new PutObjectCommand({
|
|
60
|
+
Bucket: this.bucketName,
|
|
61
|
+
Key: key,
|
|
62
|
+
Body: bodyStream,
|
|
63
|
+
ContentEncoding: shouldCompress ? 'gzip' : undefined,
|
|
64
|
+
CacheControl: opts.metadata?.['Cache-control'],
|
|
65
|
+
Metadata: this.extractUserMetadata(opts.metadata)
|
|
66
|
+
});
|
|
67
|
+
await this.s3.send(put);
|
|
68
|
+
return this.buildReturnedUrl(key, !!opts.public);
|
|
69
|
+
}
|
|
70
|
+
async read(pathOrUrlStr) {
|
|
71
|
+
const { bucket, key } = this.getBucketAndKey(pathOrUrlStr);
|
|
72
|
+
const out = await this.s3.send(new GetObjectCommand({
|
|
73
|
+
Bucket: bucket,
|
|
74
|
+
Key: key
|
|
75
|
+
}));
|
|
76
|
+
const stream = out.Body;
|
|
77
|
+
const chunks = [];
|
|
78
|
+
for await (const chunk of stream){
|
|
79
|
+
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
|
|
80
|
+
}
|
|
81
|
+
return Buffer.concat(chunks);
|
|
82
|
+
}
|
|
83
|
+
async download(pathOrUrlStr, destPath) {
|
|
84
|
+
const { bucket, key } = this.getBucketAndKey(pathOrUrlStr);
|
|
85
|
+
const out = await this.s3.send(new GetObjectCommand({
|
|
86
|
+
Bucket: bucket,
|
|
87
|
+
Key: key
|
|
88
|
+
}));
|
|
89
|
+
await mkdir(dirname(destPath), {
|
|
90
|
+
recursive: true
|
|
91
|
+
});
|
|
92
|
+
const write = createWriteStream(destPath);
|
|
93
|
+
await finished(out.Body.pipe(write));
|
|
94
|
+
}
|
|
95
|
+
async exists(pathOrUrlStr) {
|
|
96
|
+
try {
|
|
97
|
+
const { bucket, key } = this.getBucketAndKey(pathOrUrlStr);
|
|
98
|
+
await this.s3.send(new HeadObjectCommand({
|
|
99
|
+
Bucket: bucket,
|
|
100
|
+
Key: key
|
|
101
|
+
}));
|
|
102
|
+
return true;
|
|
103
|
+
} catch (err) {
|
|
104
|
+
const code = err?.$metadata?.httpStatusCode ?? err?.name ?? err?.Code;
|
|
105
|
+
if (code === 404 || code === 'NotFound' || code === 'NoSuchKey') {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
this.log.warn(`Error checking existence for ${pathOrUrlStr}: ${err?.message ?? String(err)}`);
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
extractUserMetadata(meta) {
|
|
113
|
+
if (!meta) {
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
const { ['Cache-control']: _ignored, ...rest } = meta;
|
|
117
|
+
return Object.keys(rest).length ? rest : undefined;
|
|
118
|
+
}
|
|
119
|
+
buildReturnedUrl(key, makePublic) {
|
|
120
|
+
if (!makePublic) {
|
|
121
|
+
return `s3://${this.bucketName}/${key}`;
|
|
122
|
+
}
|
|
123
|
+
if (this.publicBaseUrl) {
|
|
124
|
+
const base = this.publicBaseUrl.replace(/\/$/, '');
|
|
125
|
+
// key already includes basePath via getFullPath, so do not prefix basePath again
|
|
126
|
+
const full = key.replace(/^\/+/, '');
|
|
127
|
+
return `${base}/${full}`;
|
|
128
|
+
}
|
|
129
|
+
// Try to synthesize a URL from endpoint if available (works for public R2 buckets)
|
|
130
|
+
if (this.endpoint) {
|
|
131
|
+
try {
|
|
132
|
+
const url = new URL(this.endpoint);
|
|
133
|
+
return `https://${this.bucketName}.${url.host}/${key}`;
|
|
134
|
+
} catch {
|
|
135
|
+
// fallthrough
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// Fallback to AWS style URL if region looks valid
|
|
139
|
+
return `https://${this.bucketName}.s3.${this.region}.amazonaws.com/${key}`;
|
|
140
|
+
}
|
|
141
|
+
getBucketAndKey(pathOrUrlStr) {
|
|
142
|
+
if (URL.canParse(pathOrUrlStr)) {
|
|
143
|
+
const url = new URL(pathOrUrlStr);
|
|
144
|
+
if (url.protocol === 's3:') {
|
|
145
|
+
return {
|
|
146
|
+
bucket: url.host,
|
|
147
|
+
key: url.pathname.replace(/^\/+/, '')
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
// For https URLs, try to infer virtual-hosted or path-style
|
|
151
|
+
if (url.protocol === 'https:' || url.protocol === 'http:') {
|
|
152
|
+
// If the URL matches the configured publicBaseUrl host, map back to our bucket and key
|
|
153
|
+
if (this.publicBaseUrl && url.host === new URL(this.publicBaseUrl).host) {
|
|
154
|
+
return {
|
|
155
|
+
bucket: this.bucketName,
|
|
156
|
+
key: url.pathname.replace(/^\/+/, '')
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
const hostParts = url.host.split('.');
|
|
160
|
+
if (hostParts.length > 3 && (hostParts[1] === 's3' || hostParts[hostParts.length - 2] === 'r2')) {
|
|
161
|
+
// virtual hosted
|
|
162
|
+
return {
|
|
163
|
+
bucket: hostParts[0],
|
|
164
|
+
key: url.pathname.replace(/^\/+/, '')
|
|
165
|
+
};
|
|
166
|
+
} else if (this.endpoint && url.host === new URL(this.endpoint).host) {
|
|
167
|
+
// path-style at custom endpoint
|
|
168
|
+
const [bucket, ...rest] = url.pathname.replace(/^\/+/, '').split('/');
|
|
169
|
+
return {
|
|
170
|
+
bucket,
|
|
171
|
+
key: rest.join('/')
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// Treat as path
|
|
177
|
+
return {
|
|
178
|
+
bucket: this.bucketName,
|
|
179
|
+
key: this.getFullPath(pathOrUrlStr)
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
getFullPath(path) {
|
|
183
|
+
const base = normalizeBasePath(this.basePath);
|
|
184
|
+
const rel = path.replace(/^\/+/, '');
|
|
185
|
+
return base ? join(base, rel) : rel;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
@@ -121,6 +121,7 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<z.objectUtil.extend
|
|
|
121
121
|
slashMaxPayloadSize: z.ZodNumber;
|
|
122
122
|
slashGracePeriodL2Slots: z.ZodNumber;
|
|
123
123
|
slashBroadcastedInvalidBlockPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
124
|
+
slashExecuteRoundsLookBack: z.ZodNumber;
|
|
124
125
|
slashSelfAllowed: z.ZodOptional<z.ZodBoolean>;
|
|
125
126
|
}>, {
|
|
126
127
|
validatorAddresses: z.ZodOptional<z.ZodArray<z.ZodType<import("@aztec/foundation/schemas").EthAddress, any, string>, "many">>;
|
|
@@ -129,6 +130,7 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<z.objectUtil.extend
|
|
|
129
130
|
attestationPollingIntervalMs: z.ZodNumber;
|
|
130
131
|
validatorReexecute: z.ZodBoolean;
|
|
131
132
|
validatorReexecuteDeadlineMs: z.ZodNumber;
|
|
133
|
+
alwaysReexecuteBlockProposals: z.ZodOptional<z.ZodBoolean>;
|
|
132
134
|
}>, Pick<{
|
|
133
135
|
archiverPollingIntervalMS: z.ZodOptional<z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>>;
|
|
134
136
|
archiverBatchSize: z.ZodOptional<z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>>;
|
|
@@ -157,6 +159,7 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<z.objectUtil.extend
|
|
|
157
159
|
slashMaxPayloadSize: number;
|
|
158
160
|
slashGracePeriodL2Slots: number;
|
|
159
161
|
slashBroadcastedInvalidBlockPenalty: bigint;
|
|
162
|
+
slashExecuteRoundsLookBack: number;
|
|
160
163
|
realProofs: boolean;
|
|
161
164
|
proverTestDelayType: "fixed" | "realistic";
|
|
162
165
|
proverTestDelayMs: number;
|
|
@@ -204,6 +207,7 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<z.objectUtil.extend
|
|
|
204
207
|
slashSelfAllowed?: boolean | undefined;
|
|
205
208
|
nodeUrl?: string | undefined;
|
|
206
209
|
validatorAddresses?: import("@aztec/foundation/schemas").EthAddress[] | undefined;
|
|
210
|
+
alwaysReexecuteBlockProposals?: boolean | undefined;
|
|
207
211
|
}, {
|
|
208
212
|
secondsBeforeInvalidatingBlockAsCommitteeMember: number;
|
|
209
213
|
secondsBeforeInvalidatingBlockAsNonCommitteeMember: number;
|
|
@@ -223,6 +227,7 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<z.objectUtil.extend
|
|
|
223
227
|
slashMaxPayloadSize: number;
|
|
224
228
|
slashGracePeriodL2Slots: number;
|
|
225
229
|
slashBroadcastedInvalidBlockPenalty: string | number | bigint;
|
|
230
|
+
slashExecuteRoundsLookBack: number;
|
|
226
231
|
realProofs: boolean;
|
|
227
232
|
proverTestDelayType: "fixed" | "realistic";
|
|
228
233
|
proverTestDelayMs: number;
|
|
@@ -270,6 +275,7 @@ export declare const AztecNodeAdminConfigSchema: z.ZodObject<z.objectUtil.extend
|
|
|
270
275
|
slashSelfAllowed?: boolean | undefined;
|
|
271
276
|
nodeUrl?: string | undefined;
|
|
272
277
|
validatorAddresses?: string[] | undefined;
|
|
278
|
+
alwaysReexecuteBlockProposals?: boolean | undefined;
|
|
273
279
|
}>;
|
|
274
280
|
export declare const AztecNodeAdminApiSchema: ApiSchemaFor<AztecNodeAdmin>;
|
|
275
281
|
export declare function createAztecNodeAdminClient(url: string, versions?: Partial<ComponentsVersions>, fetch?: typeof defaultFetch): AztecNodeAdmin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aztec-node-admin.d.ts","sourceRoot":"","sources":["../../src/interfaces/aztec-node-admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAE1F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,KAAK,OAAO,EAAiB,KAAK,iBAAiB,EAA2B,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAAE,KAAK,kBAAkB,EAAgC,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,KAAK,sBAAsB,EAAgC,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,cAAc,CAAC;AACvE,OAAO,EAA+B,KAAK,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE7F;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE3C;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;OAGG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD;;;;OAIG;IACH,UAAU,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtE,+CAA+C;IAC/C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B,gDAAgD;IAChD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,2EAA2E;IAC3E,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEjD,2DAA2D;IAC3D,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CACzE;AAED,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,GAC1D,eAAe,GACf,YAAY,GACZ,aAAa,GACb,IAAI,CAAC,sBAAsB,EAAE,2BAA2B,GAAG,+BAA+B,GAAG,mBAAmB,CAAC,GAAG;IAClH,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEJ,eAAO,MAAM,0BAA0B
|
|
1
|
+
{"version":3,"file":"aztec-node-admin.d.ts","sourceRoot":"","sources":["../../src/interfaces/aztec-node-admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAE1F,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,KAAK,OAAO,EAAiB,KAAK,iBAAiB,EAA2B,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAAE,KAAK,kBAAkB,EAAgC,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,KAAK,sBAAsB,EAAgC,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,cAAc,CAAC;AACvE,OAAO,EAA+B,KAAK,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE7F;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE3C;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;OAGG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD;;;;OAIG;IACH,UAAU,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtE,+CAA+C;IAC/C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B,gDAAgD;IAChD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,2EAA2E;IAC3E,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEjD,2DAA2D;IAC3D,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CACzE;AAED,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,GAC1D,eAAe,GACf,YAAY,GACZ,aAAa,GACb,IAAI,CAAC,sBAAsB,EAAE,2BAA2B,GAAG,+BAA+B,GAAG,mBAAmB,CAAC,GAAG;IAClH,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEJ,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUU,CAAC;AAElD,eAAO,MAAM,uBAAuB,EAAE,YAAY,CAAC,cAAc,CAYhE,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,OAAO,CAAC,kBAAkB,CAAM,EAC1C,KAAK,sBAAe,GACnB,cAAc,CAMhB"}
|
|
@@ -20,6 +20,7 @@ export interface SlasherConfig {
|
|
|
20
20
|
slashOffenseExpirationRounds: number;
|
|
21
21
|
slashMaxPayloadSize: number;
|
|
22
22
|
slashGracePeriodL2Slots: number;
|
|
23
|
+
slashExecuteRoundsLookBack: number;
|
|
23
24
|
}
|
|
24
25
|
export declare const SlasherConfigSchema: z.ZodObject<{
|
|
25
26
|
slashOverridePayload: z.ZodOptional<z.ZodType<EthAddress, any, string>>;
|
|
@@ -39,6 +40,7 @@ export declare const SlasherConfigSchema: z.ZodObject<{
|
|
|
39
40
|
slashMaxPayloadSize: z.ZodNumber;
|
|
40
41
|
slashGracePeriodL2Slots: z.ZodNumber;
|
|
41
42
|
slashBroadcastedInvalidBlockPenalty: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
43
|
+
slashExecuteRoundsLookBack: z.ZodNumber;
|
|
42
44
|
slashSelfAllowed: z.ZodOptional<z.ZodBoolean>;
|
|
43
45
|
}, "strip", z.ZodTypeAny, {
|
|
44
46
|
slashMinPenaltyPercentage: number;
|
|
@@ -57,6 +59,7 @@ export declare const SlasherConfigSchema: z.ZodObject<{
|
|
|
57
59
|
slashMaxPayloadSize: number;
|
|
58
60
|
slashGracePeriodL2Slots: number;
|
|
59
61
|
slashBroadcastedInvalidBlockPenalty: bigint;
|
|
62
|
+
slashExecuteRoundsLookBack: number;
|
|
60
63
|
slashOverridePayload?: EthAddress | undefined;
|
|
61
64
|
slashSelfAllowed?: boolean | undefined;
|
|
62
65
|
}, {
|
|
@@ -76,6 +79,7 @@ export declare const SlasherConfigSchema: z.ZodObject<{
|
|
|
76
79
|
slashMaxPayloadSize: number;
|
|
77
80
|
slashGracePeriodL2Slots: number;
|
|
78
81
|
slashBroadcastedInvalidBlockPenalty: string | number | bigint;
|
|
82
|
+
slashExecuteRoundsLookBack: number;
|
|
79
83
|
slashOverridePayload?: string | undefined;
|
|
80
84
|
slashSelfAllowed?: boolean | undefined;
|
|
81
85
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slasher.d.ts","sourceRoot":"","sources":["../../src/interfaces/slasher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qBAAqB,EAAE,UAAU,EAAE,CAAC;IACpC,oBAAoB,EAAE,UAAU,EAAE,CAAC;IACnC,+BAA+B,EAAE,MAAM,CAAC;IACxC,wCAAwC,EAAE,MAAM,CAAC;IACjD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2BAA2B,EAAE,MAAM,CAAC;IACpC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mCAAmC,EAAE,MAAM,CAAC;IAC5C,sCAAsC,EAAE,MAAM,CAAC;IAC/C,qCAAqC,EAAE,MAAM,CAAC;IAC9C,mBAAmB,EAAE,MAAM,CAAC;IAC5B,4BAA4B,EAAE,MAAM,CAAC;IACrC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"slasher.d.ts","sourceRoot":"","sources":["../../src/interfaces/slasher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,yBAAyB,EAAE,MAAM,CAAC;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qBAAqB,EAAE,UAAU,EAAE,CAAC;IACpC,oBAAoB,EAAE,UAAU,EAAE,CAAC;IACnC,+BAA+B,EAAE,MAAM,CAAC;IACxC,wCAAwC,EAAE,MAAM,CAAC;IACjD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2BAA2B,EAAE,MAAM,CAAC;IACpC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mCAAmC,EAAE,MAAM,CAAC;IAC5C,sCAAsC,EAAE,MAAM,CAAC;IAC/C,qCAAqC,EAAE,MAAM,CAAC;IAC9C,mBAAmB,EAAE,MAAM,CAAC;IAC5B,4BAA4B,EAAE,MAAM,CAAC;IACrC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,EAAE,MAAM,CAAC;IAChC,0BAA0B,EAAE,MAAM,CAAC;CACpC;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBE,CAAC"}
|
|
@@ -18,5 +18,6 @@ export const SlasherConfigSchema = z.object({
|
|
|
18
18
|
slashMaxPayloadSize: z.number(),
|
|
19
19
|
slashGracePeriodL2Slots: z.number(),
|
|
20
20
|
slashBroadcastedInvalidBlockPenalty: schemas.BigInt,
|
|
21
|
+
slashExecuteRoundsLookBack: z.number(),
|
|
21
22
|
slashSelfAllowed: z.boolean().optional()
|
|
22
23
|
});
|
|
@@ -23,10 +23,12 @@ export interface ValidatorClientConfig {
|
|
|
23
23
|
disabledValidators: EthAddress[];
|
|
24
24
|
/** Interval between polling for new attestations from peers */
|
|
25
25
|
attestationPollingIntervalMs: number;
|
|
26
|
-
/**
|
|
26
|
+
/** Whether to re-execute transactions in a block proposal before attesting */
|
|
27
27
|
validatorReexecute: boolean;
|
|
28
28
|
/** Will re-execute until this many milliseconds are left in the slot */
|
|
29
29
|
validatorReexecuteDeadlineMs: number;
|
|
30
|
+
/** Whether to always reexecute block proposals, even for non-validator nodes or when out of the currnet committee */
|
|
31
|
+
alwaysReexecuteBlockProposals?: boolean;
|
|
30
32
|
}
|
|
31
33
|
export type ValidatorClientFullConfig = ValidatorClientConfig & Pick<SequencerConfig, 'txPublicSetupAllowList'> & Pick<SlasherConfig, 'slashBroadcastedInvalidBlockPenalty'>;
|
|
32
34
|
export declare const ValidatorClientConfigSchema: z.ZodObject<{
|
|
@@ -36,6 +38,7 @@ export declare const ValidatorClientConfigSchema: z.ZodObject<{
|
|
|
36
38
|
attestationPollingIntervalMs: z.ZodNumber;
|
|
37
39
|
validatorReexecute: z.ZodBoolean;
|
|
38
40
|
validatorReexecuteDeadlineMs: z.ZodNumber;
|
|
41
|
+
alwaysReexecuteBlockProposals: z.ZodOptional<z.ZodBoolean>;
|
|
39
42
|
}, "strip", z.ZodTypeAny, {
|
|
40
43
|
disableValidator: boolean;
|
|
41
44
|
disabledValidators: EthAddress[];
|
|
@@ -43,6 +46,7 @@ export declare const ValidatorClientConfigSchema: z.ZodObject<{
|
|
|
43
46
|
validatorReexecute: boolean;
|
|
44
47
|
validatorReexecuteDeadlineMs: number;
|
|
45
48
|
validatorAddresses?: EthAddress[] | undefined;
|
|
49
|
+
alwaysReexecuteBlockProposals?: boolean | undefined;
|
|
46
50
|
}, {
|
|
47
51
|
disableValidator: boolean;
|
|
48
52
|
disabledValidators: string[];
|
|
@@ -50,6 +54,7 @@ export declare const ValidatorClientConfigSchema: z.ZodObject<{
|
|
|
50
54
|
validatorReexecute: boolean;
|
|
51
55
|
validatorReexecuteDeadlineMs: number;
|
|
52
56
|
validatorAddresses?: string[] | undefined;
|
|
57
|
+
alwaysReexecuteBlockProposals?: boolean | undefined;
|
|
53
58
|
}>;
|
|
54
59
|
export interface Validator {
|
|
55
60
|
start(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/interfaces/validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,6EAA6E;IAC7E,oBAAoB,CAAC,EAAE,WAAW,CAAC,KAAK,MAAM,EAAE,EAAE,CAAC,CAAC;IAEpD,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC;IAElC,+BAA+B;IAC/B,gBAAgB,EAAE,OAAO,CAAC;IAE1B,6DAA6D;IAC7D,kBAAkB,EAAE,UAAU,EAAE,CAAC;IAEjC,+DAA+D;IAC/D,4BAA4B,EAAE,MAAM,CAAC;IAErC
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/interfaces/validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,6EAA6E;IAC7E,oBAAoB,CAAC,EAAE,WAAW,CAAC,KAAK,MAAM,EAAE,EAAE,CAAC,CAAC;IAEpD,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC;IAElC,+BAA+B;IAC/B,gBAAgB,EAAE,OAAO,CAAC;IAE1B,6DAA6D;IAC7D,kBAAkB,EAAE,UAAU,EAAE,CAAC;IAEjC,+DAA+D;IAC/D,4BAA4B,EAAE,MAAM,CAAC;IAErC,8EAA8E;IAC9E,kBAAkB,EAAE,OAAO,CAAC;IAE5B,wEAAwE;IACxE,4BAA4B,EAAE,MAAM,CAAC;IAErC,qHAAqH;IACrH,6BAA6B,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,MAAM,MAAM,yBAAyB,GAAG,qBAAqB,GAC3D,IAAI,CAAC,eAAe,EAAE,wBAAwB,CAAC,GAC/C,IAAI,CAAC,aAAa,EAAE,qCAAqC,CAAC,CAAC;AAE7D,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;EAQgC,CAAC;AAEzE,MAAM,WAAW,SAAS;IACxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC;IAG/D,mBAAmB,CACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,EAAE,EACX,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,EAAE,EAAE,EACT,eAAe,EAAE,UAAU,GAAG,SAAS,EACvC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IACtC,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,SAAS,CAAC,CAAC;IAEnG,sBAAsB,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC5G,0BAA0B,CACxB,sBAAsB,EAAE,+BAA+B,EACvD,QAAQ,EAAE,UAAU,GACnB,OAAO,CAAC,SAAS,CAAC,CAAC;CACvB"}
|
|
@@ -6,5 +6,6 @@ export const ValidatorClientConfigSchema = z.object({
|
|
|
6
6
|
disabledValidators: z.array(schemas.EthAddress),
|
|
7
7
|
attestationPollingIntervalMs: z.number().min(0),
|
|
8
8
|
validatorReexecute: z.boolean(),
|
|
9
|
-
validatorReexecuteDeadlineMs: z.number().min(0)
|
|
9
|
+
validatorReexecuteDeadlineMs: z.number().min(0),
|
|
10
|
+
alwaysReexecuteBlockProposals: z.boolean().optional()
|
|
10
11
|
});
|
|
@@ -1,17 +1,7 @@
|
|
|
1
1
|
import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED } from '@aztec/constants';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
-
import { BufferReader } from '@aztec/foundation/serialize';
|
|
4
3
|
import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
export declare class AvmProofData {
|
|
8
|
-
publicInputs: AvmCircuitPublicInputs;
|
|
9
|
-
proof: RecursiveProof<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>;
|
|
10
|
-
vkData: VkData;
|
|
11
|
-
constructor(publicInputs: AvmCircuitPublicInputs, proof: RecursiveProof<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>, vkData: VkData);
|
|
12
|
-
static fromBuffer(buffer: Buffer | BufferReader): AvmProofData;
|
|
13
|
-
toBuffer(): Buffer<ArrayBufferLike>;
|
|
14
|
-
static empty(): AvmProofData;
|
|
15
|
-
}
|
|
4
|
+
import type { ProofData } from '../proofs/proof_data.js';
|
|
5
|
+
export type AvmProofData = ProofData<AvmCircuitPublicInputs, typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>;
|
|
16
6
|
export declare function enhanceProofWithPiValidationFlag(proof: Fr[], skipPublicInputsValidation: boolean): Fr[];
|
|
17
7
|
//# sourceMappingURL=avm_proof_data.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avm_proof_data.d.ts","sourceRoot":"","sources":["../../src/rollup/avm_proof_data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oCAAoC,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"avm_proof_data.d.ts","sourceRoot":"","sources":["../../src/rollup/avm_proof_data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oCAAoC,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,sBAAsB,EAAE,OAAO,oCAAoC,CAAC,CAAC;AAG1G,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,0BAA0B,EAAE,OAAO,GAAG,EAAE,EAAE,CAGvG"}
|
|
@@ -1,29 +1,5 @@
|
|
|
1
1
|
import { AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED } from '@aztec/constants';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
-
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
|
-
import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
|
|
5
|
-
import { RecursiveProof, makeEmptyRecursiveProof } from '../proofs/recursive_proof.js';
|
|
6
|
-
import { VkData } from '../vks/vk_data.js';
|
|
7
|
-
export class AvmProofData {
|
|
8
|
-
publicInputs;
|
|
9
|
-
proof;
|
|
10
|
-
vkData;
|
|
11
|
-
constructor(publicInputs, proof, vkData){
|
|
12
|
-
this.publicInputs = publicInputs;
|
|
13
|
-
this.proof = proof;
|
|
14
|
-
this.vkData = vkData;
|
|
15
|
-
}
|
|
16
|
-
static fromBuffer(buffer) {
|
|
17
|
-
const reader = BufferReader.asReader(buffer);
|
|
18
|
-
return new AvmProofData(reader.readObject(AvmCircuitPublicInputs), RecursiveProof.fromBuffer(reader), reader.readObject(VkData));
|
|
19
|
-
}
|
|
20
|
-
toBuffer() {
|
|
21
|
-
return serializeToBuffer(this.publicInputs, this.proof, this.vkData);
|
|
22
|
-
}
|
|
23
|
-
static empty() {
|
|
24
|
-
return new AvmProofData(AvmCircuitPublicInputs.empty(), makeEmptyRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED), VkData.empty());
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
3
|
// TODO(#14234)[Unconditional PIs validation]: remove this function.
|
|
28
4
|
export function enhanceProofWithPiValidationFlag(proof, skipPublicInputsValidation) {
|
|
29
5
|
const skipPublicInputsField = skipPublicInputsValidation ? new Fr(1) : new Fr(0);
|
|
@@ -2,14 +2,13 @@ import { SpongeBlob } from '@aztec/blob-lib/types';
|
|
|
2
2
|
import { ARCHIVE_HEIGHT, MAX_CONTRACT_CLASS_LOGS_PER_TX } from '@aztec/constants';
|
|
3
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
4
|
import { BufferReader, type Tuple } from '@aztec/foundation/serialize';
|
|
5
|
-
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
6
5
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
7
|
-
import { PublicDataHint } from '../avm/public_data_hint.js';
|
|
8
6
|
import { ContractClassLogFields } from '../logs/index.js';
|
|
9
|
-
import { AppendOnlyTreeSnapshot } from '../trees/
|
|
7
|
+
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
8
|
+
import { PublicDataTreeLeafPreimage } from '../trees/public_data_leaf.js';
|
|
10
9
|
import { PartialStateReference } from '../tx/partial_state_reference.js';
|
|
11
10
|
import { BlockConstantData } from './block_constant_data.js';
|
|
12
|
-
import {
|
|
11
|
+
import { TreeSnapshotDiffHints } from './tree_snapshot_diff_hints.js';
|
|
13
12
|
export type BaseRollupHints = PrivateBaseRollupHints | PublicBaseRollupHints;
|
|
14
13
|
export declare class PrivateBaseRollupHints {
|
|
15
14
|
/**
|
|
@@ -23,15 +22,15 @@ export declare class PrivateBaseRollupHints {
|
|
|
23
22
|
/**
|
|
24
23
|
* Hints used while proving state diff validity.
|
|
25
24
|
*/
|
|
26
|
-
|
|
25
|
+
treeSnapshotDiffHints: TreeSnapshotDiffHints;
|
|
27
26
|
/**
|
|
28
|
-
* Public data
|
|
27
|
+
* Public data tree leaf preimage for accessing the balance of the fee payer.
|
|
29
28
|
*/
|
|
30
|
-
|
|
29
|
+
feePayerBalanceLeafPreimage: PublicDataTreeLeafPreimage;
|
|
31
30
|
/**
|
|
32
31
|
* Membership witnesses of blocks referred by each of the 2 kernels.
|
|
33
32
|
*/
|
|
34
|
-
|
|
33
|
+
anchorBlockArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>;
|
|
35
34
|
/**
|
|
36
35
|
* Preimages to the kernel's contractClassLogsHashes.
|
|
37
36
|
*/
|
|
@@ -52,15 +51,15 @@ export declare class PrivateBaseRollupHints {
|
|
|
52
51
|
/**
|
|
53
52
|
* Hints used while proving state diff validity.
|
|
54
53
|
*/
|
|
55
|
-
|
|
54
|
+
treeSnapshotDiffHints: TreeSnapshotDiffHints,
|
|
56
55
|
/**
|
|
57
|
-
* Public data
|
|
56
|
+
* Public data tree leaf preimage for accessing the balance of the fee payer.
|
|
58
57
|
*/
|
|
59
|
-
|
|
58
|
+
feePayerBalanceLeafPreimage: PublicDataTreeLeafPreimage,
|
|
60
59
|
/**
|
|
61
60
|
* Membership witnesses of blocks referred by each of the 2 kernels.
|
|
62
61
|
*/
|
|
63
|
-
|
|
62
|
+
anchorBlockArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>,
|
|
64
63
|
/**
|
|
65
64
|
* Preimages to the kernel's contractClassLogsHashes.
|
|
66
65
|
*/
|
|
@@ -70,7 +69,7 @@ export declare class PrivateBaseRollupHints {
|
|
|
70
69
|
*/
|
|
71
70
|
constants: BlockConstantData);
|
|
72
71
|
static from(fields: FieldsOf<PrivateBaseRollupHints>): PrivateBaseRollupHints;
|
|
73
|
-
static getFields(fields: FieldsOf<PrivateBaseRollupHints>): readonly [PartialStateReference, SpongeBlob,
|
|
72
|
+
static getFields(fields: FieldsOf<PrivateBaseRollupHints>): readonly [PartialStateReference, SpongeBlob, TreeSnapshotDiffHints, PublicDataTreeLeafPreimage, [Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr], [ContractClassLogFields], BlockConstantData];
|
|
74
73
|
/**
|
|
75
74
|
* Serializes the inputs to a buffer.
|
|
76
75
|
* @returns The inputs serialized to a buffer.
|
|
@@ -97,7 +96,7 @@ export declare class PublicBaseRollupHints {
|
|
|
97
96
|
/**
|
|
98
97
|
* Membership witnesses of blocks referred by each of the 2 kernels.
|
|
99
98
|
*/
|
|
100
|
-
|
|
99
|
+
anchorBlockArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>;
|
|
101
100
|
/**
|
|
102
101
|
* Preimages to the kernel's contractClassLogsHashes.
|
|
103
102
|
*/
|
|
@@ -118,7 +117,7 @@ export declare class PublicBaseRollupHints {
|
|
|
118
117
|
/**
|
|
119
118
|
* Membership witnesses of blocks referred by each of the 2 kernels.
|
|
120
119
|
*/
|
|
121
|
-
|
|
120
|
+
anchorBlockArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>,
|
|
122
121
|
/**
|
|
123
122
|
* Preimages to the kernel's contractClassLogsHashes.
|
|
124
123
|
*/
|
|
@@ -128,7 +127,7 @@ export declare class PublicBaseRollupHints {
|
|
|
128
127
|
*/
|
|
129
128
|
proverId: Fr);
|
|
130
129
|
static from(fields: FieldsOf<PublicBaseRollupHints>): PublicBaseRollupHints;
|
|
131
|
-
static getFields(fields: FieldsOf<PublicBaseRollupHints>): readonly [SpongeBlob, AppendOnlyTreeSnapshot,
|
|
130
|
+
static getFields(fields: FieldsOf<PublicBaseRollupHints>): readonly [SpongeBlob, AppendOnlyTreeSnapshot, [Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr], [ContractClassLogFields], Fr];
|
|
132
131
|
/**
|
|
133
132
|
* Serializes the inputs to a buffer.
|
|
134
133
|
* @returns The inputs serialized to a buffer.
|