@aztec/stdlib 0.86.0-nightly.20250513 → 0.86.0-nightly.20250515
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/abi/contract_artifact.js +3 -16
- package/dest/contract/artifact_hash.d.ts.map +1 -1
- package/dest/contract/artifact_hash.js +3 -2
- package/dest/file-store/http.d.ts +1 -0
- package/dest/file-store/http.d.ts.map +1 -1
- package/dest/file-store/http.js +32 -16
- package/dest/interfaces/aztec-node.d.ts +1 -1
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +2 -1
- package/dest/interfaces/configs.d.ts +5 -0
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +1 -0
- package/dest/messaging/inbox_leaf.d.ts +5 -0
- package/dest/messaging/inbox_leaf.d.ts.map +1 -1
- package/dest/messaging/inbox_leaf.js +11 -0
- package/dest/p2p/block_attestation.d.ts +1 -1
- package/dest/p2p/block_attestation.d.ts.map +1 -1
- package/dest/p2p/block_attestation.js +1 -1
- package/dest/p2p/block_proposal.d.ts +5 -2
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +2 -2
- package/dest/p2p/gossipable.d.ts +14 -2
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/p2p/gossipable.js +43 -0
- package/dest/p2p/topic_type.d.ts.map +1 -1
- package/dest/p2p/topic_type.js +5 -0
- package/dest/tx/tx.d.ts +1 -1
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +1 -1
- package/package.json +9 -7
- package/src/abi/contract_artifact.ts +3 -17
- package/src/contract/artifact_hash.ts +4 -2
- package/src/file-store/http.ts +23 -17
- package/src/interfaces/aztec-node.ts +2 -0
- package/src/interfaces/configs.ts +3 -0
- package/src/messaging/inbox_leaf.ts +10 -0
- package/src/p2p/block_attestation.ts +1 -1
- package/src/p2p/block_proposal.ts +7 -3
- package/src/p2p/gossipable.ts +40 -2
- package/src/p2p/topic_type.ts +2 -0
- package/src/tx/tx.ts +1 -1
|
@@ -166,29 +166,16 @@ import { AZTEC_INITIALIZER_ATTRIBUTE, AZTEC_INTERNAL_ATTRIBUTE, AZTEC_PRIVATE_AT
|
|
|
166
166
|
};
|
|
167
167
|
}
|
|
168
168
|
function getFunctionType(fn) {
|
|
169
|
-
if (fn.custom_attributes.
|
|
169
|
+
if (fn.custom_attributes.includes(AZTEC_PRIVATE_ATTRIBUTE)) {
|
|
170
170
|
return FunctionType.PRIVATE;
|
|
171
|
-
} else if (fn.custom_attributes.
|
|
171
|
+
} else if (fn.custom_attributes.includes(AZTEC_PUBLIC_ATTRIBUTE)) {
|
|
172
172
|
return FunctionType.PUBLIC;
|
|
173
|
-
} else if (fn.custom_attributes.
|
|
173
|
+
} else if (fn.custom_attributes.includes(AZTEC_UTILITY_ATTRIBUTE)) {
|
|
174
174
|
return FunctionType.UTILITY;
|
|
175
175
|
} else {
|
|
176
176
|
throw new Error(`Invalid function type for a noir contract function ${fn.name}`);
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
|
-
// TODO(https://github.com/noir-lang/noir/issues/7912): Replace the above function with this one once the linked issue
|
|
180
|
-
// is fixed.
|
|
181
|
-
// function getFunctionType(fn: NoirCompiledContractFunction): FunctionType {
|
|
182
|
-
// if (fn.custom_attributes.includes(AZTEC_PRIVATE_ATTRIBUTE)) {
|
|
183
|
-
// return FunctionType.PRIVATE;
|
|
184
|
-
// } else if (fn.custom_attributes.includes(AZTEC_PUBLIC_ATTRIBUTE)) {
|
|
185
|
-
// return FunctionType.PUBLIC;
|
|
186
|
-
// } else if (fn.custom_attributes.includes(AZTEC_UTILITY_ATTRIBUTE)) {
|
|
187
|
-
// return FunctionType.UTILITY;
|
|
188
|
-
// } else {
|
|
189
|
-
// throw new Error(`Invalid function type for a noir contract function ${fn.name}`);
|
|
190
|
-
// }
|
|
191
|
-
// }
|
|
192
179
|
/**
|
|
193
180
|
* Returns true if the first parameter is kernel function inputs.
|
|
194
181
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact_hash.d.ts","sourceRoot":"","sources":["../../src/contract/artifact_hash.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,EAAE,EAAY,MAAM,0BAA0B,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAwB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"artifact_hash.d.ts","sourceRoot":"","sources":["../../src/contract/artifact_hash.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,EAAE,EAAY,MAAM,0BAA0B,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAwB,MAAM,yBAAyB,CAAC;AAI3E,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAS/G;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,gBAAgB,GAAG;IAAE,mBAAmB,EAAE,EAAE,CAAC;IAAC,mBAAmB,EAAE,EAAE,CAAC;IAAC,YAAY,EAAE,EAAE,CAAA;CAAE,GAClG,OAAO,CAAC,EAAE,CAAC,CAWb;AAED,wBAAsB,2BAA2B,CAAC,QAAQ,EAAE,gBAAgB;;;;GAK3E;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,gBAAgB,MAErE;AAED,wBAAsB,+BAA+B,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,YAAY,eAGrG;AAED,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CASjC;AAYD,wBAAsB,2BAA2B,CAC/C,EAAE,EACE,gBAAgB,GAChB,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAAG;IAAE,oBAAoB,EAAE,EAAE,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,CAAC,eAOpG;AAED,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,gBAAgB,MAE/D;AAMD,wBAAgB,2BAA2B,QAC9B,MAAM,KAAK,MAAM,qBAC7B"}
|
|
@@ -3,6 +3,7 @@ import { Fr, reduceFn } from '@aztec/foundation/fields';
|
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { numToUInt8 } from '@aztec/foundation/serialize';
|
|
5
5
|
import { MerkleTreeCalculator } from '@aztec/foundation/trees';
|
|
6
|
+
import deterministicStringify from 'json-stringify-deterministic';
|
|
6
7
|
import { FunctionSelector, FunctionType } from '../abi/index.js';
|
|
7
8
|
const VERSION = 1;
|
|
8
9
|
// TODO(miranda): Artifact and artifact metadata hashes are currently the only SHAs not truncated by a byte.
|
|
@@ -62,7 +63,7 @@ export async function computeArtifactHashPreimage(artifact) {
|
|
|
62
63
|
};
|
|
63
64
|
}
|
|
64
65
|
export function computeArtifactMetadataHash(artifact) {
|
|
65
|
-
return sha256Fr(Buffer.from(
|
|
66
|
+
return sha256Fr(Buffer.from(deterministicStringify({
|
|
66
67
|
name: artifact.name,
|
|
67
68
|
outputs: artifact.outputs
|
|
68
69
|
}), 'utf-8'));
|
|
@@ -101,7 +102,7 @@ export async function computeFunctionArtifactHash(fn) {
|
|
|
101
102
|
]));
|
|
102
103
|
}
|
|
103
104
|
export function computeFunctionMetadataHash(fn) {
|
|
104
|
-
return sha256Fr(Buffer.from(
|
|
105
|
+
return sha256Fr(Buffer.from(deterministicStringify(fn.returnTypes), 'utf8'));
|
|
105
106
|
}
|
|
106
107
|
function getLogger() {
|
|
107
108
|
return createLogger('circuits:artifact_hash');
|
|
@@ -5,6 +5,7 @@ import type { ReadOnlyFileStore } from './interface.js';
|
|
|
5
5
|
export declare class HttpFileStore implements ReadOnlyFileStore {
|
|
6
6
|
private readonly baseUrl;
|
|
7
7
|
private readonly log;
|
|
8
|
+
private readonly axiosInstance;
|
|
8
9
|
private readonly fetch;
|
|
9
10
|
constructor(baseUrl: string, log?: Logger);
|
|
10
11
|
read(pathOrUrl: string): Promise<Buffer>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/file-store/http.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/file-store/http.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAUlE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,qBAAa,aAAc,YAAW,iBAAiB;IAIzC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAAU,OAAO,CAAC,QAAQ,CAAC,GAAG;IAHlE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+D;gBAExD,OAAO,EAAE,MAAM,EAAmB,GAAG,GAAE,MAA+C;IAatG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUxC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW5D,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUxD,OAAO,CAAC,MAAM;CAGf"}
|
package/dest/file-store/http.js
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
2
|
import { makeBackoff, retry } from '@aztec/foundation/retry';
|
|
3
|
+
import axios from 'axios';
|
|
3
4
|
import { createWriteStream } from 'fs';
|
|
4
5
|
import { mkdir } from 'fs/promises';
|
|
5
6
|
import { dirname } from 'path';
|
|
6
|
-
import { Readable } from 'stream';
|
|
7
7
|
import { finished } from 'stream/promises';
|
|
8
8
|
export class HttpFileStore {
|
|
9
9
|
baseUrl;
|
|
10
10
|
log;
|
|
11
|
+
axiosInstance;
|
|
11
12
|
fetch;
|
|
12
13
|
constructor(baseUrl, log = createLogger('stdlib:http-file-store')){
|
|
13
14
|
this.baseUrl = baseUrl;
|
|
14
15
|
this.log = log;
|
|
15
|
-
this.
|
|
16
|
-
|
|
16
|
+
this.axiosInstance = axios.create();
|
|
17
|
+
this.fetch = async (config)=>{
|
|
18
|
+
return await retry(()=>this.axiosInstance.request(config), `Fetching ${config.url}`, makeBackoff([
|
|
17
19
|
1,
|
|
18
20
|
1,
|
|
19
21
|
3
|
|
@@ -22,30 +24,44 @@ export class HttpFileStore {
|
|
|
22
24
|
}
|
|
23
25
|
async read(pathOrUrl) {
|
|
24
26
|
const url = this.getUrl(pathOrUrl);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
try {
|
|
28
|
+
const response = await this.fetch({
|
|
29
|
+
url,
|
|
30
|
+
method: 'GET',
|
|
31
|
+
responseType: 'arraybuffer'
|
|
32
|
+
});
|
|
33
|
+
return Buffer.from(response.data);
|
|
34
|
+
} catch (error) {
|
|
35
|
+
throw new Error(`Error fetching file from ${url}: ${error instanceof Error ? error.message : String(error)}`);
|
|
30
36
|
}
|
|
31
37
|
}
|
|
32
38
|
async download(pathOrUrl, destPath) {
|
|
33
39
|
const url = this.getUrl(pathOrUrl);
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
try {
|
|
41
|
+
const response = await this.fetch({
|
|
42
|
+
url,
|
|
43
|
+
method: 'GET',
|
|
44
|
+
responseType: 'stream'
|
|
45
|
+
});
|
|
36
46
|
await mkdir(dirname(destPath), {
|
|
37
47
|
recursive: true
|
|
38
48
|
});
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
throw new Error(`Error fetching file from ${url}: ${response.statusText}`);
|
|
49
|
+
await finished(response.data.pipe(createWriteStream(destPath)));
|
|
50
|
+
} catch (error) {
|
|
51
|
+
throw new Error(`Error fetching file from ${url}: ${error instanceof Error ? error.message : String(error)}`);
|
|
43
52
|
}
|
|
44
53
|
}
|
|
45
54
|
async exists(pathOrUrl) {
|
|
46
55
|
const url = this.getUrl(pathOrUrl);
|
|
47
|
-
|
|
48
|
-
|
|
56
|
+
try {
|
|
57
|
+
await this.fetch({
|
|
58
|
+
url,
|
|
59
|
+
method: 'HEAD'
|
|
60
|
+
});
|
|
61
|
+
return true;
|
|
62
|
+
} catch (error) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
49
65
|
}
|
|
50
66
|
getUrl(path) {
|
|
51
67
|
return URL.canParse(path) ? path : `${this.baseUrl.replace(/\/$/, '')}/${path}`;
|
|
@@ -314,5 +314,5 @@ export interface AztecNode extends Pick<L2BlockSource, 'getBlocks' | 'getPublish
|
|
|
314
314
|
getEncodedEnr(): Promise<string | undefined>;
|
|
315
315
|
}
|
|
316
316
|
export declare const AztecNodeApiSchema: ApiSchemaFor<AztecNode>;
|
|
317
|
-
export declare function createAztecNodeClient(url: string, versions?: Partial<ComponentsVersions>, fetch?: typeof import("@aztec/foundation/json-rpc/client").defaultFetch): AztecNode;
|
|
317
|
+
export declare function createAztecNodeClient(url: string, versions?: Partial<ComponentsVersions>, fetch?: typeof import("@aztec/foundation/json-rpc/client").defaultFetch, batchWindowMS?: number): AztecNode;
|
|
318
318
|
//# sourceMappingURL=aztec-node.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aztec-node.d.ts","sourceRoot":"","sources":["../../src/interfaces/aztec-node.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"aztec-node.d.ts","sourceRoot":"","sources":["../../src/interfaces/aztec-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -83,10 +83,11 @@ export function createAztecNodeClient(url, versions = {}, fetch = makeFetch([
|
|
|
83
83
|
1,
|
|
84
84
|
2,
|
|
85
85
|
3
|
|
86
|
-
], false)) {
|
|
86
|
+
], false), batchWindowMS = 25) {
|
|
87
87
|
return createSafeJsonRpcClient(url, AztecNodeApiSchema, {
|
|
88
88
|
namespaceMethods: 'node',
|
|
89
89
|
fetch,
|
|
90
|
+
batchWindowMS,
|
|
90
91
|
onResponse: getVersioningResponseHandler(versions)
|
|
91
92
|
});
|
|
92
93
|
}
|
|
@@ -13,6 +13,8 @@ export interface SequencerConfig {
|
|
|
13
13
|
maxTxsPerBlock?: number;
|
|
14
14
|
/** The minimum number of txs to include in a block. */
|
|
15
15
|
minTxsPerBlock?: number;
|
|
16
|
+
/** Whether to publish txs with the block proposals */
|
|
17
|
+
publishTxsWithProposals?: boolean;
|
|
16
18
|
/** The maximum L2 block gas. */
|
|
17
19
|
maxL2BlockGas?: number;
|
|
18
20
|
/** The maximum DA block gas. */
|
|
@@ -41,6 +43,7 @@ export declare const SequencerConfigSchema: z.ZodObject<{
|
|
|
41
43
|
maxTxsPerBlock: z.ZodOptional<z.ZodNumber>;
|
|
42
44
|
minTxsPerBlock: z.ZodOptional<z.ZodNumber>;
|
|
43
45
|
maxL2BlockGas: z.ZodOptional<z.ZodNumber>;
|
|
46
|
+
publishTxsWithProposals: z.ZodOptional<z.ZodBoolean>;
|
|
44
47
|
maxDABlockGas: z.ZodOptional<z.ZodNumber>;
|
|
45
48
|
coinbase: z.ZodOptional<ZodFor<EthAddress>>;
|
|
46
49
|
feeRecipient: z.ZodOptional<ZodFor<AztecAddress>>;
|
|
@@ -88,6 +91,7 @@ export declare const SequencerConfigSchema: z.ZodObject<{
|
|
|
88
91
|
maxTxsPerBlock?: number | undefined;
|
|
89
92
|
minTxsPerBlock?: number | undefined;
|
|
90
93
|
maxL2BlockGas?: number | undefined;
|
|
94
|
+
publishTxsWithProposals?: boolean | undefined;
|
|
91
95
|
maxDABlockGas?: number | undefined;
|
|
92
96
|
acvmWorkingDirectory?: string | undefined;
|
|
93
97
|
acvmBinaryPath?: string | undefined;
|
|
@@ -113,6 +117,7 @@ export declare const SequencerConfigSchema: z.ZodObject<{
|
|
|
113
117
|
maxTxsPerBlock?: number | undefined;
|
|
114
118
|
minTxsPerBlock?: number | undefined;
|
|
115
119
|
maxL2BlockGas?: number | undefined;
|
|
120
|
+
publishTxsWithProposals?: boolean | undefined;
|
|
116
121
|
maxDABlockGas?: number | undefined;
|
|
117
122
|
acvmWorkingDirectory?: string | undefined;
|
|
118
123
|
acvmBinaryPath?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../src/interfaces/configs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,sBAAsB,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,0DAA0D;IAC1D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kCAAkC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,sBAAsB,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1C,qBAAqB;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,yBAAyB,CAAC,EAAE,UAAU,CAAC;IACvC,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gFAAgF;IAChF,4BAA4B,CAAC,EAAE,MAAM,CAAC;CACvC;AAED,eAAO,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../src/interfaces/configs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,sBAAsB,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,0DAA0D;IAC1D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kCAAkC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,sBAAsB,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1C,qBAAqB;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,yBAAyB,CAAC,EAAE,UAAU,CAAC;IACvC,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gFAAgF;IAChF,4BAA4B,CAAC,EAAE,MAAM,CAAC;CACvC;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBE,CAAC"}
|
|
@@ -6,6 +6,7 @@ export const SequencerConfigSchema = z.object({
|
|
|
6
6
|
maxTxsPerBlock: z.number().optional(),
|
|
7
7
|
minTxsPerBlock: z.number().optional(),
|
|
8
8
|
maxL2BlockGas: z.number().optional(),
|
|
9
|
+
publishTxsWithProposals: z.boolean().optional(),
|
|
9
10
|
maxDABlockGas: z.number().optional(),
|
|
10
11
|
coinbase: schemas.EthAddress.optional(),
|
|
11
12
|
feeRecipient: schemas.AztecAddress.optional(),
|
|
@@ -15,5 +15,10 @@ export declare class InboxLeaf {
|
|
|
15
15
|
toBuffer(): Buffer;
|
|
16
16
|
fromBuffer(buffer: Buffer | BufferReader): InboxLeaf;
|
|
17
17
|
static smallestIndexFromL2Block(l2block: bigint): bigint;
|
|
18
|
+
/**
|
|
19
|
+
* Returns the range of valid indices for a given L2 block.
|
|
20
|
+
* Start index is inclusive, end index is exclusive.
|
|
21
|
+
*/
|
|
22
|
+
static indexRangeFromL2Block(l2block: bigint): [bigint, bigint];
|
|
18
23
|
}
|
|
19
24
|
//# sourceMappingURL=inbox_leaf.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox_leaf.d.ts","sourceRoot":"","sources":["../../src/messaging/inbox_leaf.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,qBAAa,SAAS;IAElB,2CAA2C;aAC3B,KAAK,EAAE,MAAM;IAC7B,wCAAwC;aACxB,IAAI,EAAE,EAAE;;IAHxB,2CAA2C;IAC3B,KAAK,EAAE,MAAM;IAC7B,wCAAwC;IACxB,IAAI,EAAE,EAAE;IAG1B,QAAQ,IAAI,MAAM;IAIlB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAOpD,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"inbox_leaf.d.ts","sourceRoot":"","sources":["../../src/messaging/inbox_leaf.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,qBAAa,SAAS;IAElB,2CAA2C;aAC3B,KAAK,EAAE,MAAM;IAC7B,wCAAwC;aACxB,IAAI,EAAE,EAAE;;IAHxB,2CAA2C;IAC3B,KAAK,EAAE,MAAM;IAC7B,wCAAwC;IACxB,IAAI,EAAE,EAAE;IAG1B,QAAQ,IAAI,MAAM;IAIlB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAOpD,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIxD;;;OAGG;IACH,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;CAKhE"}
|
|
@@ -24,4 +24,15 @@ export class InboxLeaf {
|
|
|
24
24
|
static smallestIndexFromL2Block(l2block) {
|
|
25
25
|
return (l2block - BigInt(INITIAL_L2_BLOCK_NUM)) * BigInt(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
26
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Returns the range of valid indices for a given L2 block.
|
|
29
|
+
* Start index is inclusive, end index is exclusive.
|
|
30
|
+
*/ static indexRangeFromL2Block(l2block) {
|
|
31
|
+
const start = this.smallestIndexFromL2Block(l2block);
|
|
32
|
+
const end = start + BigInt(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
33
|
+
return [
|
|
34
|
+
start,
|
|
35
|
+
end
|
|
36
|
+
];
|
|
37
|
+
}
|
|
27
38
|
}
|
|
@@ -35,7 +35,7 @@ export declare class BlockAttestation extends Gossipable {
|
|
|
35
35
|
/** The signature of the block attester */
|
|
36
36
|
signature: Signature);
|
|
37
37
|
static get schema(): ZodFor<BlockAttestation>;
|
|
38
|
-
|
|
38
|
+
generateP2PMessageIdentifier(): Promise<Buffer32>;
|
|
39
39
|
get archive(): Fr;
|
|
40
40
|
get slotNumber(): Fr;
|
|
41
41
|
/**Get sender
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block_attestation.d.ts","sourceRoot":"","sources":["../../src/p2p/block_attestation.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAI9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,oBAAqB,SAAQ,QAAQ;gBACpC,IAAI,EAAE,MAAM;CAGzB;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAM5C,2CAA2C;aAC3B,WAAW,EAAE,EAAE;IAE/B,iEAAiE;aACjD,OAAO,EAAE,gBAAgB;IAEzC,0CAA0C;aAC1B,SAAS,EAAE,SAAS;IAZtC,OAAgB,QAAQ,YAA+B;IAEvD,OAAO,CAAC,MAAM,CAAyB;;IAGrC,2CAA2C;IAC3B,WAAW,EAAE,EAAE;IAE/B,iEAAiE;IACjD,OAAO,EAAE,gBAAgB;IAEzC,0CAA0C;IAC1B,SAAS,EAAE,SAAS;IAKtC,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAQ5C;IAEQ,
|
|
1
|
+
{"version":3,"file":"block_attestation.d.ts","sourceRoot":"","sources":["../../src/p2p/block_attestation.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAI9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,oBAAqB,SAAQ,QAAQ;gBACpC,IAAI,EAAE,MAAM;CAGzB;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAM5C,2CAA2C;aAC3B,WAAW,EAAE,EAAE;IAE/B,iEAAiE;aACjD,OAAO,EAAE,gBAAgB;IAEzC,0CAA0C;aAC1B,SAAS,EAAE,SAAS;IAZtC,OAAgB,QAAQ,YAA+B;IAEvD,OAAO,CAAC,MAAM,CAAyB;;IAGrC,2CAA2C;IAC3B,WAAW,EAAE,EAAE;IAE/B,iEAAiE;IACjD,OAAO,EAAE,gBAAgB;IAEzC,0CAA0C;IAC1B,SAAS,EAAE,SAAS;IAKtC,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAQ5C;IAEQ,4BAA4B,IAAI,OAAO,CAAC,QAAQ,CAAC;IAI1D,IAAI,OAAO,IAAI,EAAE,CAEhB;IAED,IAAI,UAAU,IAAI,EAAE,CAEnB;IAED;;;;OAIG;IACH,SAAS,IAAI,UAAU;IAWvB,UAAU,IAAI,MAAM;IAIpB,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB;IAS/D,MAAM,CAAC,KAAK,IAAI,gBAAgB;IAIhC,OAAO,IAAI,MAAM;CAGlB"}
|
|
@@ -34,7 +34,7 @@ export class BlockAttestationHash extends Buffer32 {
|
|
|
34
34
|
signature: Signature.schema
|
|
35
35
|
}).transform((obj)=>new BlockAttestation(obj.blockNumber, obj.payload, obj.signature));
|
|
36
36
|
}
|
|
37
|
-
|
|
37
|
+
generateP2PMessageIdentifier() {
|
|
38
38
|
return Promise.resolve(new BlockAttestationHash(keccak256(this.signature.toBuffer())));
|
|
39
39
|
}
|
|
40
40
|
get archive() {
|
|
@@ -12,6 +12,9 @@ import { TopicType } from './topic_type.js';
|
|
|
12
12
|
export declare class BlockProposalHash extends Buffer32 {
|
|
13
13
|
constructor(hash: Buffer);
|
|
14
14
|
}
|
|
15
|
+
export type BlockProposalOptions = {
|
|
16
|
+
publishFullTxs: boolean;
|
|
17
|
+
};
|
|
15
18
|
/**
|
|
16
19
|
* BlockProposal
|
|
17
20
|
*
|
|
@@ -38,10 +41,10 @@ export declare class BlockProposal extends Gossipable {
|
|
|
38
41
|
signature: Signature,
|
|
39
42
|
/** The transactions in the block */
|
|
40
43
|
txs?: Tx[] | undefined);
|
|
41
|
-
|
|
44
|
+
generateP2PMessageIdentifier(): Promise<Buffer32>;
|
|
42
45
|
get archive(): Fr;
|
|
43
46
|
get slotNumber(): Fr;
|
|
44
|
-
static createProposalFromSigner(blockNumber: Fr, payload: ConsensusPayload, txs: Tx[], payloadSigner: (payload: Buffer32) => Promise<Signature>): Promise<BlockProposal>;
|
|
47
|
+
static createProposalFromSigner(blockNumber: Fr, payload: ConsensusPayload, txs: Tx[] | undefined, payloadSigner: (payload: Buffer32) => Promise<Signature>): Promise<BlockProposal>;
|
|
45
48
|
/**Get Sender
|
|
46
49
|
* Lazily evaluate the sender of the proposal; result is cached
|
|
47
50
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block_proposal.d.ts","sourceRoot":"","sources":["../../src/p2p/block_proposal.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,iBAAkB,SAAQ,QAAQ;gBACjC,IAAI,EAAE,MAAM;CAGzB;AAED;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAMzC,8BAA8B;aACd,WAAW,EAAE,EAAE;IAE/B,iEAAiE;aACjD,OAAO,EAAE,gBAAgB;IAEzC,sEAAsE;aACtD,SAAS,EAAE,SAAS;IAGpC,oCAAoC;aACpB,GAAG,CAAC;IAhBtB,OAAgB,QAAQ,YAA4B;IAEpD,OAAO,CAAC,MAAM,CAAyB;;IAGrC,8BAA8B;IACd,WAAW,EAAE,EAAE;IAE/B,iEAAiE;IACjD,OAAO,EAAE,gBAAgB;IAEzC,sEAAsE;IACtD,SAAS,EAAE,SAAS;IAGpC,oCAAoC;IACpB,GAAG,CAAC,kBAAM;IAKnB,
|
|
1
|
+
{"version":3,"file":"block_proposal.d.ts","sourceRoot":"","sources":["../../src/p2p/block_proposal.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,iBAAkB,SAAQ,QAAQ;gBACjC,IAAI,EAAE,MAAM;CAGzB;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAMzC,8BAA8B;aACd,WAAW,EAAE,EAAE;IAE/B,iEAAiE;aACjD,OAAO,EAAE,gBAAgB;IAEzC,sEAAsE;aACtD,SAAS,EAAE,SAAS;IAGpC,oCAAoC;aACpB,GAAG,CAAC;IAhBtB,OAAgB,QAAQ,YAA4B;IAEpD,OAAO,CAAC,MAAM,CAAyB;;IAGrC,8BAA8B;IACd,WAAW,EAAE,EAAE;IAE/B,iEAAiE;IACjD,OAAO,EAAE,gBAAgB;IAEzC,sEAAsE;IACtD,SAAS,EAAE,SAAS;IAGpC,oCAAoC;IACpB,GAAG,CAAC,kBAAM;IAKnB,4BAA4B,IAAI,OAAO,CAAC,QAAQ,CAAC;IAI1D,IAAI,OAAO,IAAI,EAAE,CAEhB;IAED,IAAI,UAAU,IAAI,EAAE,CAEnB;WAEY,wBAAwB,CACnC,WAAW,EAAE,EAAE,EACf,OAAO,EAAE,gBAAgB,EAEzB,GAAG,EAAE,EAAE,EAAE,GAAG,SAAS,EACrB,aAAa,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,SAAS,CAAC;IAQ1D;;OAEG;IACH,SAAS;IAUT,UAAU;IAIV,QAAQ,IAAI,MAAM;IASlB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa;IAe5D,OAAO,IAAI,MAAM;CAQlB"}
|
|
@@ -29,7 +29,7 @@ export class BlockProposalHash extends Buffer32 {
|
|
|
29
29
|
/** The transactions in the block */ txs){
|
|
30
30
|
super(), this.blockNumber = blockNumber, this.payload = payload, this.signature = signature, this.txs = txs;
|
|
31
31
|
}
|
|
32
|
-
|
|
32
|
+
generateP2PMessageIdentifier() {
|
|
33
33
|
return Promise.resolve(new BlockProposalHash(keccak256(this.signature.toBuffer())));
|
|
34
34
|
}
|
|
35
35
|
get archive() {
|
|
@@ -38,7 +38,7 @@ export class BlockProposalHash extends Buffer32 {
|
|
|
38
38
|
get slotNumber() {
|
|
39
39
|
return this.payload.header.slotNumber;
|
|
40
40
|
}
|
|
41
|
-
static async createProposalFromSigner(blockNumber, payload, // Note(md): Provided
|
|
41
|
+
static async createProposalFromSigner(blockNumber, payload, // Note(md): Provided separately to tx hashes such that this function can be optional
|
|
42
42
|
txs, payloadSigner) {
|
|
43
43
|
const hashed = getHashedSignaturePayload(payload, SignatureDomainSeparator.blockProposal);
|
|
44
44
|
const sig = await payloadSigner(hashed);
|
package/dest/p2p/gossipable.d.ts
CHANGED
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
-
import
|
|
3
|
+
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
4
4
|
import type { TopicType } from './topic_type.js';
|
|
5
|
+
export declare class P2PMessage {
|
|
6
|
+
readonly publishTime: Date;
|
|
7
|
+
readonly id: Buffer32;
|
|
8
|
+
readonly payload: Buffer;
|
|
9
|
+
constructor(publishTime: Date, id: Buffer32, payload: Buffer);
|
|
10
|
+
static fromGossipable(message: Gossipable): Promise<P2PMessage>;
|
|
11
|
+
static fromMessageData(messageData: Buffer): P2PMessage;
|
|
12
|
+
toMessageData(): Buffer;
|
|
13
|
+
}
|
|
5
14
|
/**
|
|
6
15
|
* Gossipable
|
|
7
16
|
*
|
|
8
17
|
* Any class which extends gossipable will be able to be Gossiped over the p2p network
|
|
9
18
|
*/
|
|
10
19
|
export declare abstract class Gossipable {
|
|
20
|
+
private cachedId;
|
|
11
21
|
/** p2p Topic
|
|
12
22
|
*
|
|
13
23
|
* - The p2p topic identifier, this determines how the message is handled
|
|
@@ -17,12 +27,14 @@ export declare abstract class Gossipable {
|
|
|
17
27
|
*
|
|
18
28
|
* - A digest of the message information, this key is used for deduplication
|
|
19
29
|
*/
|
|
20
|
-
|
|
30
|
+
p2pMessageIdentifier(): Promise<Buffer32>;
|
|
31
|
+
abstract generateP2PMessageIdentifier(): Promise<Buffer32>;
|
|
21
32
|
/** To Buffer
|
|
22
33
|
*
|
|
23
34
|
* - Serialization method
|
|
24
35
|
*/
|
|
25
36
|
abstract toBuffer(): Buffer;
|
|
37
|
+
toMessage(): Buffer;
|
|
26
38
|
/**
|
|
27
39
|
* Get the size of the gossipable object.
|
|
28
40
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gossipable.d.ts","sourceRoot":"","sources":["../../src/p2p/gossipable.ts"],"names":[],"mappings":";;AAAA,OAAO,
|
|
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,WAAW,EAAE,IAAI;aAAkB,EAAE,EAAE,QAAQ;aAAkB,OAAO,EAAE,MAAM;gBAAhF,WAAW,EAAE,IAAI,EAAkB,EAAE,EAAE,QAAQ,EAAkB,OAAO,EAAE,MAAM;WAE/F,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAIrE,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU;IAQvD,aAAa,IAAI,MAAM;CAOxB;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,10 +1,53 @@
|
|
|
1
|
+
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
|
+
import { BufferReader, bigintToUInt64BE, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
3
|
+
export class P2PMessage {
|
|
4
|
+
publishTime;
|
|
5
|
+
id;
|
|
6
|
+
payload;
|
|
7
|
+
constructor(publishTime, id, payload){
|
|
8
|
+
this.publishTime = publishTime;
|
|
9
|
+
this.id = id;
|
|
10
|
+
this.payload = payload;
|
|
11
|
+
}
|
|
12
|
+
static async fromGossipable(message) {
|
|
13
|
+
return new P2PMessage(new Date(), await message.p2pMessageIdentifier(), message.toBuffer());
|
|
14
|
+
}
|
|
15
|
+
static fromMessageData(messageData) {
|
|
16
|
+
const reader = new BufferReader(messageData);
|
|
17
|
+
const publishTime = reader.readUInt64();
|
|
18
|
+
const id = Buffer32.fromBuffer(reader);
|
|
19
|
+
const payload = reader.readBuffer();
|
|
20
|
+
return new P2PMessage(new Date(Number(publishTime)), id, payload);
|
|
21
|
+
}
|
|
22
|
+
toMessageData() {
|
|
23
|
+
return serializeToBuffer([
|
|
24
|
+
bigintToUInt64BE(BigInt(this.publishTime.getTime())),
|
|
25
|
+
this.id,
|
|
26
|
+
serializeToBuffer(this.payload.length, this.payload)
|
|
27
|
+
]);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
1
30
|
/**
|
|
2
31
|
* Gossipable
|
|
3
32
|
*
|
|
4
33
|
* Any class which extends gossipable will be able to be Gossiped over the p2p network
|
|
5
34
|
*/ export class Gossipable {
|
|
35
|
+
cachedId;
|
|
6
36
|
/** p2p Topic
|
|
7
37
|
*
|
|
8
38
|
* - The p2p topic identifier, this determines how the message is handled
|
|
9
39
|
*/ static p2pTopic;
|
|
40
|
+
/** p2p Message Identifier
|
|
41
|
+
*
|
|
42
|
+
* - A digest of the message information, this key is used for deduplication
|
|
43
|
+
*/ async p2pMessageIdentifier() {
|
|
44
|
+
if (this.cachedId) {
|
|
45
|
+
return this.cachedId;
|
|
46
|
+
}
|
|
47
|
+
this.cachedId = await this.generateP2PMessageIdentifier();
|
|
48
|
+
return this.cachedId;
|
|
49
|
+
}
|
|
50
|
+
toMessage() {
|
|
51
|
+
return this.toBuffer();
|
|
52
|
+
}
|
|
10
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topic_type.d.ts","sourceRoot":"","sources":["../../src/p2p/topic_type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAE9E;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,EAAE,OAAO;IACT,cAAc,mBAAmB;IACjC,iBAAiB,sBAAsB;CACxC;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"topic_type.d.ts","sourceRoot":"","sources":["../../src/p2p/topic_type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAE9E;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,EAAE,OAAO;IACT,cAAc,mBAAmB;IACjC,iBAAiB,sBAAsB;CACxC;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,aAAa,eAOlE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,uBAO9D"}
|
package/dest/p2p/topic_type.js
CHANGED
|
@@ -18,6 +18,11 @@ import { P2PClientType } from './client_type.js';
|
|
|
18
18
|
export function getTopicTypeForClientType(clientType) {
|
|
19
19
|
if (clientType === P2PClientType.Full) {
|
|
20
20
|
return Object.values(TopicType);
|
|
21
|
+
} else if (clientType === P2PClientType.Prover) {
|
|
22
|
+
return [
|
|
23
|
+
"tx",
|
|
24
|
+
"block_proposal"
|
|
25
|
+
];
|
|
21
26
|
}
|
|
22
27
|
return [
|
|
23
28
|
"tx"
|
package/dest/tx/tx.d.ts
CHANGED
|
@@ -61,7 +61,7 @@ export declare class Tx extends Gossipable {
|
|
|
61
61
|
* An array of calldata for the enqueued public function calls and the teardown function call.
|
|
62
62
|
*/
|
|
63
63
|
publicFunctionCalldata: HashedValues[]);
|
|
64
|
-
|
|
64
|
+
generateP2PMessageIdentifier(): Promise<Buffer32>;
|
|
65
65
|
hasPublicCalls(): boolean;
|
|
66
66
|
numberOfPublicCalls(): number;
|
|
67
67
|
getNonRevertiblePublicCallRequestsWithCalldata(): PublicCallRequestWithCalldata[];
|
package/dest/tx/tx.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../src/tx/tx.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAyD,MAAM,6BAA6B,CAAC;AAClH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAIxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,oCAAoC,EAAE,MAAM,wDAAwD,CAAC;AAC9G,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;GAEG;AACH,qBAAa,EAAG,SAAQ,UAAU;;IAO9B;;OAEG;aACa,IAAI,EAAE,oCAAoC;IAC1D;;;OAGG;aACa,cAAc,EAAE,cAAc;IAC9C;;OAEG;IACI,iBAAiB,EAAE,sBAAsB,EAAE;IAClD;;OAEG;IACI,sBAAsB,EAAE,YAAY,EAAE;IAtB/C,OAAgB,QAAQ,YAAgB;IAExC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,WAAW,CAAgC;;IAGjD;;OAEG;IACa,IAAI,EAAE,oCAAoC;IAC1D;;;OAGG;IACa,cAAc,EAAE,cAAc;IAC9C;;OAEG;IACI,iBAAiB,EAAE,sBAAsB,EAAE;IAClD;;OAEG;IACI,sBAAsB,EAAE,YAAY,EAAE;IAMhC,
|
|
1
|
+
{"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../src/tx/tx.ts"],"names":[],"mappings":"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"}
|
package/dest/tx/tx.js
CHANGED
|
@@ -35,7 +35,7 @@ import { TxHash } from './tx_hash.js';
|
|
|
35
35
|
super(), this.data = data, this.clientIvcProof = clientIvcProof, this.contractClassLogs = contractClassLogs, this.publicFunctionCalldata = publicFunctionCalldata;
|
|
36
36
|
}
|
|
37
37
|
// Gossipable method
|
|
38
|
-
async
|
|
38
|
+
async generateP2PMessageIdentifier() {
|
|
39
39
|
return new Buffer32((await this.getTxHash()).toBuffer());
|
|
40
40
|
}
|
|
41
41
|
hasPublicCalls() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/stdlib",
|
|
3
|
-
"version": "0.86.0-nightly.
|
|
3
|
+
"version": "0.86.0-nightly.20250515",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"inherits": [
|
|
6
6
|
"../package.common.json",
|
|
@@ -66,13 +66,15 @@
|
|
|
66
66
|
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
|
|
67
67
|
},
|
|
68
68
|
"dependencies": {
|
|
69
|
-
"@aztec/bb.js": "0.86.0-nightly.
|
|
70
|
-
"@aztec/blob-lib": "0.86.0-nightly.
|
|
71
|
-
"@aztec/constants": "0.86.0-nightly.
|
|
72
|
-
"@aztec/ethereum": "0.86.0-nightly.
|
|
73
|
-
"@aztec/foundation": "0.86.0-nightly.
|
|
74
|
-
"@aztec/noir-noirc_abi": "0.86.0-nightly.
|
|
69
|
+
"@aztec/bb.js": "0.86.0-nightly.20250515",
|
|
70
|
+
"@aztec/blob-lib": "0.86.0-nightly.20250515",
|
|
71
|
+
"@aztec/constants": "0.86.0-nightly.20250515",
|
|
72
|
+
"@aztec/ethereum": "0.86.0-nightly.20250515",
|
|
73
|
+
"@aztec/foundation": "0.86.0-nightly.20250515",
|
|
74
|
+
"@aztec/noir-noirc_abi": "0.86.0-nightly.20250515",
|
|
75
75
|
"@google-cloud/storage": "^7.15.0",
|
|
76
|
+
"axios": "^1.9.0",
|
|
77
|
+
"json-stringify-deterministic": "1.0.12",
|
|
76
78
|
"lodash.chunk": "^4.2.0",
|
|
77
79
|
"lodash.isequal": "^4.5.0",
|
|
78
80
|
"lodash.omit": "^4.5.0",
|
|
@@ -216,31 +216,17 @@ function generateFunctionArtifact(
|
|
|
216
216
|
}
|
|
217
217
|
|
|
218
218
|
function getFunctionType(fn: NoirCompiledContractFunction): FunctionType {
|
|
219
|
-
if (fn.custom_attributes.
|
|
219
|
+
if (fn.custom_attributes.includes(AZTEC_PRIVATE_ATTRIBUTE)) {
|
|
220
220
|
return FunctionType.PRIVATE;
|
|
221
|
-
} else if (fn.custom_attributes.
|
|
221
|
+
} else if (fn.custom_attributes.includes(AZTEC_PUBLIC_ATTRIBUTE)) {
|
|
222
222
|
return FunctionType.PUBLIC;
|
|
223
|
-
} else if (fn.custom_attributes.
|
|
223
|
+
} else if (fn.custom_attributes.includes(AZTEC_UTILITY_ATTRIBUTE)) {
|
|
224
224
|
return FunctionType.UTILITY;
|
|
225
225
|
} else {
|
|
226
226
|
throw new Error(`Invalid function type for a noir contract function ${fn.name}`);
|
|
227
227
|
}
|
|
228
228
|
}
|
|
229
229
|
|
|
230
|
-
// TODO(https://github.com/noir-lang/noir/issues/7912): Replace the above function with this one once the linked issue
|
|
231
|
-
// is fixed.
|
|
232
|
-
// function getFunctionType(fn: NoirCompiledContractFunction): FunctionType {
|
|
233
|
-
// if (fn.custom_attributes.includes(AZTEC_PRIVATE_ATTRIBUTE)) {
|
|
234
|
-
// return FunctionType.PRIVATE;
|
|
235
|
-
// } else if (fn.custom_attributes.includes(AZTEC_PUBLIC_ATTRIBUTE)) {
|
|
236
|
-
// return FunctionType.PUBLIC;
|
|
237
|
-
// } else if (fn.custom_attributes.includes(AZTEC_UTILITY_ATTRIBUTE)) {
|
|
238
|
-
// return FunctionType.UTILITY;
|
|
239
|
-
// } else {
|
|
240
|
-
// throw new Error(`Invalid function type for a noir contract function ${fn.name}`);
|
|
241
|
-
// }
|
|
242
|
-
// }
|
|
243
|
-
|
|
244
230
|
/**
|
|
245
231
|
* Returns true if the first parameter is kernel function inputs.
|
|
246
232
|
*
|
|
@@ -4,6 +4,8 @@ import { createLogger } from '@aztec/foundation/log';
|
|
|
4
4
|
import { numToUInt8 } from '@aztec/foundation/serialize';
|
|
5
5
|
import { MerkleTree, MerkleTreeCalculator } from '@aztec/foundation/trees';
|
|
6
6
|
|
|
7
|
+
import deterministicStringify from 'json-stringify-deterministic';
|
|
8
|
+
|
|
7
9
|
import { type ContractArtifact, type FunctionArtifact, FunctionSelector, FunctionType } from '../abi/index.js';
|
|
8
10
|
|
|
9
11
|
const VERSION = 1;
|
|
@@ -58,7 +60,7 @@ export async function computeArtifactHashPreimage(artifact: ContractArtifact) {
|
|
|
58
60
|
}
|
|
59
61
|
|
|
60
62
|
export function computeArtifactMetadataHash(artifact: ContractArtifact) {
|
|
61
|
-
return sha256Fr(Buffer.from(
|
|
63
|
+
return sha256Fr(Buffer.from(deterministicStringify({ name: artifact.name, outputs: artifact.outputs }), 'utf-8'));
|
|
62
64
|
}
|
|
63
65
|
|
|
64
66
|
export async function computeArtifactFunctionTreeRoot(artifact: ContractArtifact, fnType: FunctionType) {
|
|
@@ -103,7 +105,7 @@ export async function computeFunctionArtifactHash(
|
|
|
103
105
|
}
|
|
104
106
|
|
|
105
107
|
export function computeFunctionMetadataHash(fn: FunctionArtifact) {
|
|
106
|
-
return sha256Fr(Buffer.from(
|
|
108
|
+
return sha256Fr(Buffer.from(deterministicStringify(fn.returnTypes), 'utf8'));
|
|
107
109
|
}
|
|
108
110
|
|
|
109
111
|
function getLogger() {
|
package/src/file-store/http.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
2
2
|
import { makeBackoff, retry } from '@aztec/foundation/retry';
|
|
3
3
|
|
|
4
|
+
import axios, { type AxiosInstance, type AxiosRequestConfig, type AxiosResponse } from 'axios';
|
|
4
5
|
import { createWriteStream } from 'fs';
|
|
5
6
|
import { mkdir } from 'fs/promises';
|
|
6
7
|
import { dirname } from 'path';
|
|
@@ -10,13 +11,15 @@ import { finished } from 'stream/promises';
|
|
|
10
11
|
import type { ReadOnlyFileStore } from './interface.js';
|
|
11
12
|
|
|
12
13
|
export class HttpFileStore implements ReadOnlyFileStore {
|
|
13
|
-
private readonly
|
|
14
|
+
private readonly axiosInstance: AxiosInstance;
|
|
15
|
+
private readonly fetch: <T>(config: AxiosRequestConfig) => Promise<AxiosResponse<T>>;
|
|
14
16
|
|
|
15
17
|
constructor(private readonly baseUrl: string, private readonly log: Logger = createLogger('stdlib:http-file-store')) {
|
|
16
|
-
this.
|
|
18
|
+
this.axiosInstance = axios.create();
|
|
19
|
+
this.fetch = async <T>(config: AxiosRequestConfig) => {
|
|
17
20
|
return await retry(
|
|
18
|
-
() =>
|
|
19
|
-
`Fetching ${
|
|
21
|
+
() => this.axiosInstance.request<T>(config),
|
|
22
|
+
`Fetching ${config.url}`,
|
|
20
23
|
makeBackoff([1, 1, 3]),
|
|
21
24
|
this.log,
|
|
22
25
|
/*failSilently=*/ true,
|
|
@@ -26,30 +29,33 @@ export class HttpFileStore implements ReadOnlyFileStore {
|
|
|
26
29
|
|
|
27
30
|
public async read(pathOrUrl: string): Promise<Buffer> {
|
|
28
31
|
const url = this.getUrl(pathOrUrl);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
return Buffer.from(
|
|
32
|
-
}
|
|
33
|
-
throw new Error(`Error fetching file from ${url}: ${
|
|
32
|
+
try {
|
|
33
|
+
const response = await this.fetch<ArrayBuffer>({ url, method: 'GET', responseType: 'arraybuffer' });
|
|
34
|
+
return Buffer.from(response.data);
|
|
35
|
+
} catch (error) {
|
|
36
|
+
throw new Error(`Error fetching file from ${url}: ${error instanceof Error ? error.message : String(error)}`);
|
|
34
37
|
}
|
|
35
38
|
}
|
|
36
39
|
|
|
37
40
|
public async download(pathOrUrl: string, destPath: string): Promise<void> {
|
|
38
41
|
const url = this.getUrl(pathOrUrl);
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
try {
|
|
43
|
+
const response = await this.fetch<Readable>({ url, method: 'GET', responseType: 'stream' });
|
|
41
44
|
await mkdir(dirname(destPath), { recursive: true });
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
throw new Error(`Error fetching file from ${url}: ${response.statusText}`);
|
|
45
|
+
await finished(response.data.pipe(createWriteStream(destPath)));
|
|
46
|
+
} catch (error) {
|
|
47
|
+
throw new Error(`Error fetching file from ${url}: ${error instanceof Error ? error.message : String(error)}`);
|
|
46
48
|
}
|
|
47
49
|
}
|
|
48
50
|
|
|
49
51
|
public async exists(pathOrUrl: string): Promise<boolean> {
|
|
50
52
|
const url = this.getUrl(pathOrUrl);
|
|
51
|
-
|
|
52
|
-
|
|
53
|
+
try {
|
|
54
|
+
await this.fetch<unknown>({ url, method: 'HEAD' });
|
|
55
|
+
return true;
|
|
56
|
+
} catch (error) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
53
59
|
}
|
|
54
60
|
|
|
55
61
|
private getUrl(path: string): string {
|
|
@@ -552,10 +552,12 @@ export function createAztecNodeClient(
|
|
|
552
552
|
url: string,
|
|
553
553
|
versions: Partial<ComponentsVersions> = {},
|
|
554
554
|
fetch = makeFetch([1, 2, 3], false),
|
|
555
|
+
batchWindowMS = 25,
|
|
555
556
|
): AztecNode {
|
|
556
557
|
return createSafeJsonRpcClient<AztecNode>(url, AztecNodeApiSchema, {
|
|
557
558
|
namespaceMethods: 'node',
|
|
558
559
|
fetch,
|
|
560
|
+
batchWindowMS,
|
|
559
561
|
onResponse: getVersioningResponseHandler(versions),
|
|
560
562
|
});
|
|
561
563
|
}
|
|
@@ -16,6 +16,8 @@ export interface SequencerConfig {
|
|
|
16
16
|
maxTxsPerBlock?: number;
|
|
17
17
|
/** The minimum number of txs to include in a block. */
|
|
18
18
|
minTxsPerBlock?: number;
|
|
19
|
+
/** Whether to publish txs with the block proposals */
|
|
20
|
+
publishTxsWithProposals?: boolean;
|
|
19
21
|
/** The maximum L2 block gas. */
|
|
20
22
|
maxL2BlockGas?: number;
|
|
21
23
|
/** The maximum DA block gas. */
|
|
@@ -45,6 +47,7 @@ export const SequencerConfigSchema = z.object({
|
|
|
45
47
|
maxTxsPerBlock: z.number().optional(),
|
|
46
48
|
minTxsPerBlock: z.number().optional(),
|
|
47
49
|
maxL2BlockGas: z.number().optional(),
|
|
50
|
+
publishTxsWithProposals: z.boolean().optional(),
|
|
48
51
|
maxDABlockGas: z.number().optional(),
|
|
49
52
|
coinbase: schemas.EthAddress.optional(),
|
|
50
53
|
feeRecipient: schemas.AztecAddress.optional(),
|
|
@@ -25,4 +25,14 @@ export class InboxLeaf {
|
|
|
25
25
|
static smallestIndexFromL2Block(l2block: bigint): bigint {
|
|
26
26
|
return (l2block - BigInt(INITIAL_L2_BLOCK_NUM)) * BigInt(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
27
27
|
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Returns the range of valid indices for a given L2 block.
|
|
31
|
+
* Start index is inclusive, end index is exclusive.
|
|
32
|
+
*/
|
|
33
|
+
static indexRangeFromL2Block(l2block: bigint): [bigint, bigint] {
|
|
34
|
+
const start = this.smallestIndexFromL2Block(l2block);
|
|
35
|
+
const end = start + BigInt(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
36
|
+
return [start, end];
|
|
37
|
+
}
|
|
28
38
|
}
|
|
@@ -53,7 +53,7 @@ export class BlockAttestation extends Gossipable {
|
|
|
53
53
|
.transform(obj => new BlockAttestation(obj.blockNumber, obj.payload, obj.signature));
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
override
|
|
56
|
+
override generateP2PMessageIdentifier(): Promise<Buffer32> {
|
|
57
57
|
return Promise.resolve(new BlockAttestationHash(keccak256(this.signature.toBuffer())));
|
|
58
58
|
}
|
|
59
59
|
|
|
@@ -21,6 +21,10 @@ export class BlockProposalHash extends Buffer32 {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
export type BlockProposalOptions = {
|
|
25
|
+
publishFullTxs: boolean;
|
|
26
|
+
};
|
|
27
|
+
|
|
24
28
|
/**
|
|
25
29
|
* BlockProposal
|
|
26
30
|
*
|
|
@@ -49,7 +53,7 @@ export class BlockProposal extends Gossipable {
|
|
|
49
53
|
super();
|
|
50
54
|
}
|
|
51
55
|
|
|
52
|
-
override
|
|
56
|
+
override generateP2PMessageIdentifier(): Promise<Buffer32> {
|
|
53
57
|
return Promise.resolve(new BlockProposalHash(keccak256(this.signature.toBuffer())));
|
|
54
58
|
}
|
|
55
59
|
|
|
@@ -64,8 +68,8 @@ export class BlockProposal extends Gossipable {
|
|
|
64
68
|
static async createProposalFromSigner(
|
|
65
69
|
blockNumber: Fr,
|
|
66
70
|
payload: ConsensusPayload,
|
|
67
|
-
// Note(md): Provided
|
|
68
|
-
txs: Tx[],
|
|
71
|
+
// Note(md): Provided separately to tx hashes such that this function can be optional
|
|
72
|
+
txs: Tx[] | undefined,
|
|
69
73
|
payloadSigner: (payload: Buffer32) => Promise<Signature>,
|
|
70
74
|
) {
|
|
71
75
|
const hashed = getHashedSignaturePayload(payload, SignatureDomainSeparator.blockProposal);
|
package/src/p2p/gossipable.ts
CHANGED
|
@@ -1,13 +1,39 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
|
+
import { BufferReader, bigintToUInt64BE, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
2
3
|
|
|
3
4
|
import type { TopicType } from './topic_type.js';
|
|
4
5
|
|
|
6
|
+
export class P2PMessage {
|
|
7
|
+
constructor(public readonly publishTime: Date, public readonly id: Buffer32, public readonly payload: Buffer) {}
|
|
8
|
+
|
|
9
|
+
static async fromGossipable(message: Gossipable): Promise<P2PMessage> {
|
|
10
|
+
return new P2PMessage(new Date(), await message.p2pMessageIdentifier(), message.toBuffer());
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
static fromMessageData(messageData: Buffer): P2PMessage {
|
|
14
|
+
const reader = new BufferReader(messageData);
|
|
15
|
+
const publishTime = reader.readUInt64();
|
|
16
|
+
const id = Buffer32.fromBuffer(reader);
|
|
17
|
+
const payload = reader.readBuffer();
|
|
18
|
+
return new P2PMessage(new Date(Number(publishTime)), id, payload);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
toMessageData(): Buffer {
|
|
22
|
+
return serializeToBuffer([
|
|
23
|
+
bigintToUInt64BE(BigInt(this.publishTime.getTime())),
|
|
24
|
+
this.id,
|
|
25
|
+
serializeToBuffer(this.payload.length, this.payload),
|
|
26
|
+
]);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
5
30
|
/**
|
|
6
31
|
* Gossipable
|
|
7
32
|
*
|
|
8
33
|
* Any class which extends gossipable will be able to be Gossiped over the p2p network
|
|
9
34
|
*/
|
|
10
35
|
export abstract class Gossipable {
|
|
36
|
+
private cachedId: Buffer32 | undefined;
|
|
11
37
|
/** p2p Topic
|
|
12
38
|
*
|
|
13
39
|
* - The p2p topic identifier, this determines how the message is handled
|
|
@@ -18,7 +44,15 @@ export abstract class Gossipable {
|
|
|
18
44
|
*
|
|
19
45
|
* - A digest of the message information, this key is used for deduplication
|
|
20
46
|
*/
|
|
21
|
-
|
|
47
|
+
async p2pMessageIdentifier(): Promise<Buffer32> {
|
|
48
|
+
if (this.cachedId) {
|
|
49
|
+
return this.cachedId;
|
|
50
|
+
}
|
|
51
|
+
this.cachedId = await this.generateP2PMessageIdentifier();
|
|
52
|
+
return this.cachedId;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
abstract generateP2PMessageIdentifier(): Promise<Buffer32>;
|
|
22
56
|
|
|
23
57
|
/** To Buffer
|
|
24
58
|
*
|
|
@@ -26,6 +60,10 @@ export abstract class Gossipable {
|
|
|
26
60
|
*/
|
|
27
61
|
abstract toBuffer(): Buffer;
|
|
28
62
|
|
|
63
|
+
toMessage(): Buffer {
|
|
64
|
+
return this.toBuffer();
|
|
65
|
+
}
|
|
66
|
+
|
|
29
67
|
/**
|
|
30
68
|
* Get the size of the gossipable object.
|
|
31
69
|
*
|
package/src/p2p/topic_type.ts
CHANGED
|
@@ -22,6 +22,8 @@ export enum TopicType {
|
|
|
22
22
|
export function getTopicTypeForClientType(clientType: P2PClientType) {
|
|
23
23
|
if (clientType === P2PClientType.Full) {
|
|
24
24
|
return Object.values(TopicType);
|
|
25
|
+
} else if (clientType === P2PClientType.Prover) {
|
|
26
|
+
return [TopicType.tx, TopicType.block_proposal];
|
|
25
27
|
}
|
|
26
28
|
return [TopicType.tx];
|
|
27
29
|
}
|
package/src/tx/tx.ts
CHANGED
|
@@ -54,7 +54,7 @@ export class Tx extends Gossipable {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
// Gossipable method
|
|
57
|
-
override async
|
|
57
|
+
override async generateP2PMessageIdentifier(): Promise<Buffer32> {
|
|
58
58
|
return new Buffer32((await this.getTxHash()).toBuffer());
|
|
59
59
|
}
|
|
60
60
|
|