@aztec/ethereum 3.0.0-nightly.20251217 → 3.0.0-nightly.20251219
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/contracts/empire_base.d.ts +2 -1
- package/dest/contracts/empire_base.d.ts.map +1 -1
- package/dest/contracts/empire_slashing_proposer.d.ts +2 -1
- package/dest/contracts/empire_slashing_proposer.d.ts.map +1 -1
- package/dest/contracts/empire_slashing_proposer.js +9 -0
- package/dest/contracts/governance_proposer.d.ts +2 -1
- package/dest/contracts/governance_proposer.d.ts.map +1 -1
- package/dest/contracts/governance_proposer.js +9 -0
- package/dest/deploy_aztec_l1_contracts.d.ts +2 -2
- package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -1
- package/dest/deploy_aztec_l1_contracts.js +114 -145
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +4 -2
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/readonly_l1_tx_utils.js +5 -0
- package/package.json +5 -5
- package/src/contracts/empire_base.ts +1 -1
- package/src/contracts/empire_slashing_proposer.ts +6 -1
- package/src/contracts/governance_proposer.ts +6 -1
- package/src/deploy_aztec_l1_contracts.ts +119 -142
- package/src/l1_tx_utils/readonly_l1_tx_utils.ts +6 -0
|
@@ -8,6 +8,7 @@ export interface IEmpireBase {
|
|
|
8
8
|
getRoundInfo(rollupAddress: Hex, round: bigint): Promise<{
|
|
9
9
|
lastSignalSlot: SlotNumber;
|
|
10
10
|
payloadWithMostSignals: Hex;
|
|
11
|
+
quorumReached: boolean;
|
|
11
12
|
executed: boolean;
|
|
12
13
|
}>;
|
|
13
14
|
computeRound(slot: SlotNumber): Promise<bigint>;
|
|
@@ -26,4 +27,4 @@ export declare function encodeSignalWithSignature(payload: Hex, signature: Signa
|
|
|
26
27
|
* @returns The EIP-712 signature
|
|
27
28
|
*/
|
|
28
29
|
export declare function signSignalWithSig(signer: (msg: TypedDataDefinition) => Promise<Hex>, payload: Hex, slot: SlotNumber, instance: Hex, verifyingContract: Hex, chainId: number): Promise<Signature>;
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1waXJlX2Jhc2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdHMvZW1waXJlX2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzVELE9BQU8sRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLG1CQUFtQixFQUFzQixNQUFNLE1BQU0sQ0FBQztBQUU5RSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUzRCxNQUFNLFdBQVcsV0FBVztJQUMxQixJQUFJLE9BQU8sSUFBSSxVQUFVLENBQUM7SUFDMUIsWUFBWSxDQUNWLGFBQWEsRUFBRSxHQUFHLEVBQ2xCLEtBQUssRUFBRSxNQUFNLEdBQ1osT0FBTyxDQUFDO1FBQUUsY0FBYyxFQUFFLFVBQVUsQ0FBQztRQUFDLHNCQUFzQixFQUFFLEdBQUcsQ0FBQztRQUFDLGFBQWEsRUFBRSxPQUFPLENBQUM7UUFBQyxRQUFRLEVBQUUsT0FBTyxDQUFBO0tBQUUsQ0FBQyxDQUFDO0lBQ25ILFlBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRCxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLFdBQVcsQ0FBQztJQUMvQyxnQ0FBZ0MsQ0FDOUIsT0FBTyxFQUFFLEdBQUcsRUFDWixJQUFJLEVBQUUsVUFBVSxFQUNoQixPQUFPLEVBQUUsTUFBTSxFQUNmLGFBQWEsRUFBRSxHQUFHLEVBQ2xCLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQ2pELE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztDQUN6QjtBQUVELHdCQUFnQixZQUFZLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBTTlDO0FBRUQsd0JBQWdCLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsaUJBTTNFO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBc0IsaUJBQWlCLENBQ3JDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQ1osSUFBSSxFQUFFLFVBQVUsRUFDaEIsUUFBUSxFQUFFLEdBQUcsRUFDYixpQkFBaUIsRUFBRSxHQUFHLEVBQ3RCLE9BQU8sRUFBRSxNQUFNLEdBQ2QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQThCcEIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empire_base.d.ts","sourceRoot":"","sources":["../../src/contracts/empire_base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,mBAAmB,EAAsB,MAAM,MAAM,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,WAAW,WAAW;IAC1B,IAAI,OAAO,IAAI,UAAU,CAAC;IAC1B,YAAY,CACV,aAAa,EAAE,GAAG,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,cAAc,EAAE,UAAU,CAAC;QAAC,sBAAsB,EAAE,GAAG,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"empire_base.d.ts","sourceRoot":"","sources":["../../src/contracts/empire_base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,mBAAmB,EAAsB,MAAM,MAAM,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,WAAW,WAAW;IAC1B,IAAI,OAAO,IAAI,UAAU,CAAC;IAC1B,YAAY,CACV,aAAa,EAAE,GAAG,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,cAAc,EAAE,UAAU,CAAC;QAAC,sBAAsB,EAAE,GAAG,CAAC;QAAC,aAAa,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACnH,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,mBAAmB,CAAC,OAAO,EAAE,GAAG,GAAG,WAAW,CAAC;IAC/C,gCAAgC,CAC9B,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,GAAG,EAClB,MAAM,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,GACjD,OAAO,CAAC,WAAW,CAAC,CAAC;CACzB;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,CAM9C;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,iBAM3E;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,EAClD,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,GAAG,EACb,iBAAiB,EAAE,GAAG,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,CAAC,CA8BpB"}
|
|
@@ -25,6 +25,7 @@ export declare class EmpireSlashingProposerContract extends EventEmitter impleme
|
|
|
25
25
|
getRoundInfo(rollupAddress: Hex, round: bigint): Promise<{
|
|
26
26
|
lastSignalSlot: SlotNumber;
|
|
27
27
|
payloadWithMostSignals: Hex;
|
|
28
|
+
quorumReached: boolean;
|
|
28
29
|
executed: boolean;
|
|
29
30
|
}>;
|
|
30
31
|
getPayloadSignals(rollupAddress: Hex, round: bigint, payload: Hex): Promise<bigint>;
|
|
@@ -63,4 +64,4 @@ export declare class EmpireSlashingProposerContract extends EventEmitter impleme
|
|
|
63
64
|
waitForRound(round: bigint, pollingIntervalSeconds?: number): Promise<boolean>;
|
|
64
65
|
executeRound(txUtils: L1TxUtils, round: bigint | number): ReturnType<typeof txUtils.sendAndMonitorTransaction>;
|
|
65
66
|
}
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1waXJlX3NsYXNoaW5nX3Byb3Bvc2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL2VtcGlyZV9zbGFzaGluZ19wcm9wb3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSzNELE9BQU8sWUFBWSxNQUFNLFFBQVEsQ0FBQztBQUNsQyxPQUFPLEVBR0wsS0FBSyxHQUFHLEVBQ1IsS0FBSyxHQUFHLEVBQ1IsS0FBSyxtQkFBbUIsRUFHekIsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBOEQsTUFBTSxrQkFBa0IsQ0FBQztBQUVoSCxxQkFBYSw0QkFBNkIsU0FBUSxLQUFLO0lBQ3JELFlBQVksS0FBSyxFQUFFLE1BQU0sRUFFeEI7Q0FDRjtBQUVELHFCQUFhLDhCQUErQixTQUFRLFlBQWEsWUFBVyxXQUFXO2FBT25FLE1BQU0sRUFBRSxVQUFVO0lBTnBDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUErRDtJQUN0RixPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBc0U7SUFFL0YsU0FBZ0IsSUFBSSxXQUFxQjtJQUV6QyxZQUNrQixNQUFNLEVBQUUsVUFBVSxFQUNsQyxPQUFPLEVBQUUsR0FBRyxHQUFHLFVBQVUsRUFRMUI7SUFFRCxJQUFXLE9BQU8sZUFFakI7SUFFTSxhQUFhLG9CQUVuQjtJQUVNLFlBQVksb0JBRWxCO0lBRU0sbUJBQW1CLG9CQUV6QjtJQUVNLHlCQUF5QixvQkFFL0I7SUFFTSxlQUFlLG9CQUVyQjtJQUVNLFlBQVksQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFckQ7SUFFTSxXQUFXLDJCQUVqQjtJQUVZLFlBQVksQ0FDdkIsYUFBYSxFQUFFLEdBQUcsRUFDbEIsS0FBSyxFQUFFLE1BQU0sR0FDWixPQUFPLENBQUM7UUFBRSxjQUFjLEVBQUUsVUFBVSxDQUFDO1FBQUMsc0JBQXNCLEVBQUUsR0FBRyxDQUFDO1FBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQztRQUFDLFFBQVEsRUFBRSxPQUFPLENBQUE7S0FBRSxDQUFDLENBWWpIO0lBRU0saUJBQWlCLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUV6RjtJQUVNLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsV0FBVyxDQUtwRDtJQUVZLGdDQUFnQyxDQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUNaLElBQUksRUFBRSxVQUFVLEVBQ2hCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsYUFBYSxFQUFFLEdBQUcsRUFDbEIsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLG1CQUFtQixLQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FDakQsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQWF0QjtJQUVNLDJCQUEyQixDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRTtRQUFFLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEtBQUssT0FBTywrQ0FleEc7SUFFTSx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUU7UUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDO1FBQUMsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUE7S0FBRSxLQUFLLE9BQU8sK0NBY3JHO0lBRU0sb0JBQW9CLENBQ3pCLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRTtRQUFFLEtBQUssRUFBRSxNQUFNLENBQUM7UUFBQyxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUFDLFFBQVEsRUFBRSxLQUFLLE1BQU0sRUFBRSxDQUFBO0tBQUUsS0FBSyxPQUFPLCtDQWVoRztJQUVELDZFQUE2RTtJQUN0RSx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLFdBQVcsQ0FTMUQ7SUFFRCxxRUFBcUU7SUFDOUQsK0JBQStCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTs7Ozs7O2tCQUVqRDtJQUVEOzs7Ozs7T0FNRztJQUNJLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLHNCQUFzQixHQUFFLE1BQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBYXZGO0lBRVksWUFBWSxDQUN2QixPQUFPLEVBQUUsU0FBUyxFQUNsQixLQUFLLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FDckIsVUFBVSxDQUFDLE9BQU8sT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBZ0R0RDtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empire_slashing_proposer.d.ts","sourceRoot":"","sources":["../../src/contracts/empire_slashing_proposer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAK3D,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAGL,KAAK,GAAG,EACR,KAAK,GAAG,EACR,KAAK,mBAAmB,EAGzB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,KAAK,WAAW,EAA8D,MAAM,kBAAkB,CAAC;AAEhH,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,YAAY,KAAK,EAAE,MAAM,EAExB;CACF;AAED,qBAAa,8BAA+B,SAAQ,YAAa,YAAW,WAAW;aAOnE,MAAM,EAAE,UAAU;IANpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+D;IACtF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsE;IAE/F,SAAgB,IAAI,WAAqB;IAEzC,YACkB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU,EAQ1B;IAED,IAAW,OAAO,eAEjB;IAEM,aAAa,oBAEnB;IAEM,YAAY,oBAElB;IAEM,mBAAmB,oBAEzB;IAEM,yBAAyB,oBAE/B;IAEM,eAAe,oBAErB;IAEM,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAErD;IAEM,WAAW,2BAEjB;IAEY,YAAY,CACvB,aAAa,EAAE,GAAG,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,cAAc,EAAE,UAAU,CAAC;QAAC,sBAAsB,EAAE,GAAG,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"empire_slashing_proposer.d.ts","sourceRoot":"","sources":["../../src/contracts/empire_slashing_proposer.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,9 +56,18 @@ export class EmpireSlashingProposerContract extends EventEmitter {
|
|
|
56
56
|
rollupAddress,
|
|
57
57
|
round
|
|
58
58
|
]);
|
|
59
|
+
const [signalCount, quorum] = await Promise.all([
|
|
60
|
+
this.proposer.read.signalCount([
|
|
61
|
+
rollupAddress,
|
|
62
|
+
round,
|
|
63
|
+
result.payloadWithMostSignals
|
|
64
|
+
]),
|
|
65
|
+
this.getQuorumSize()
|
|
66
|
+
]);
|
|
59
67
|
return {
|
|
60
68
|
lastSignalSlot: SlotNumber.fromBigInt(result.lastSignalSlot),
|
|
61
69
|
payloadWithMostSignals: result.payloadWithMostSignals,
|
|
70
|
+
quorumReached: signalCount >= quorum,
|
|
62
71
|
executed: result.executed
|
|
63
72
|
};
|
|
64
73
|
}
|
|
@@ -18,6 +18,7 @@ export declare class GovernanceProposerContract implements IEmpireBase {
|
|
|
18
18
|
getRoundInfo(rollupAddress: Hex, round: bigint): Promise<{
|
|
19
19
|
lastSignalSlot: SlotNumber;
|
|
20
20
|
payloadWithMostSignals: Hex;
|
|
21
|
+
quorumReached: boolean;
|
|
21
22
|
executed: boolean;
|
|
22
23
|
}>;
|
|
23
24
|
getPayloadSignals(rollupAddress: Hex, round: bigint, payload: Hex): Promise<bigint>;
|
|
@@ -28,4 +29,4 @@ export declare class GovernanceProposerContract implements IEmpireBase {
|
|
|
28
29
|
proposalId: bigint;
|
|
29
30
|
}>;
|
|
30
31
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ292ZXJuYW5jZV9wcm9wb3Nlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0cy9nb3Zlcm5hbmNlX3Byb3Bvc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHM0QsT0FBTyxFQUVMLEtBQUssR0FBRyxFQUNSLEtBQUssa0JBQWtCLEVBQ3ZCLEtBQUssbUJBQW1CLEVBR3pCLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEVBQUUsS0FBSyxXQUFXLEVBQThELE1BQU0sa0JBQWtCLENBQUM7QUFHaEgscUJBQWEsMEJBQTJCLFlBQVcsV0FBVzthQUkxQyxNQUFNLEVBQUUsVUFBVTtJQUhwQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBa0U7SUFFM0YsWUFDa0IsTUFBTSxFQUFFLFVBQVUsRUFDbEMsT0FBTyxFQUFFLEdBQUcsR0FBRyxVQUFVLEVBTTFCO0lBRUQsSUFBVyxPQUFPLGVBRWpCO0lBRVksZ0JBQWdCLHdCQUU1QjtJQUdZLGtCQUFrQix3QkFFOUI7SUFFTSxhQUFhLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUV0QztJQUVNLFlBQVksSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBRXJDO0lBRU0sV0FBVywyQkFFakI7SUFFTSxZQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBRXJEO0lBRVksWUFBWSxDQUN2QixhQUFhLEVBQUUsR0FBRyxFQUNsQixLQUFLLEVBQUUsTUFBTSxHQUNaLE9BQU8sQ0FBQztRQUFFLGNBQWMsRUFBRSxVQUFVLENBQUM7UUFBQyxzQkFBc0IsRUFBRSxHQUFHLENBQUM7UUFBQyxhQUFhLEVBQUUsT0FBTyxDQUFDO1FBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQTtLQUFFLENBQUMsQ0FZakg7SUFFTSxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBRXpGO0lBRU0sbUJBQW1CLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxXQUFXLENBS3BEO0lBRVksZ0NBQWdDLENBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQ1osSUFBSSxFQUFFLFVBQVUsRUFDaEIsT0FBTyxFQUFFLE1BQU0sRUFDZixhQUFhLEVBQUUsR0FBRyxFQUNsQixNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLEtBQUssT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUNqRCxPQUFPLENBQUMsV0FBVyxDQUFDLENBYXRCO0lBRVksaUJBQWlCLENBQzVCLEtBQUssRUFBRSxNQUFNLEVBQ2IsU0FBUyxFQUFFLFNBQVMsR0FDbkIsT0FBTyxDQUFDO1FBQ1QsT0FBTyxFQUFFLGtCQUFrQixDQUFDO1FBQzVCLFVBQVUsRUFBRSxNQUFNLENBQUM7S0FDcEIsQ0FBQyxDQVdEO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"governance_proposer.d.ts","sourceRoot":"","sources":["../../src/contracts/governance_proposer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAGzB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,KAAK,WAAW,EAA8D,MAAM,kBAAkB,CAAC;AAGhH,qBAAa,0BAA2B,YAAW,WAAW;aAI1C,MAAM,EAAE,UAAU;IAHpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkE;IAE3F,YACkB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU,EAM1B;IAED,IAAW,OAAO,eAEjB;IAEY,gBAAgB,wBAE5B;IAGY,kBAAkB,wBAE9B;IAEM,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAEtC;IAEM,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAErC;IAEM,WAAW,2BAEjB;IAEM,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAErD;IAEY,YAAY,CACvB,aAAa,EAAE,GAAG,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,cAAc,EAAE,UAAU,CAAC;QAAC,sBAAsB,EAAE,GAAG,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"governance_proposer.d.ts","sourceRoot":"","sources":["../../src/contracts/governance_proposer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAGzB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,KAAK,WAAW,EAA8D,MAAM,kBAAkB,CAAC;AAGhH,qBAAa,0BAA2B,YAAW,WAAW;aAI1C,MAAM,EAAE,UAAU;IAHpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkE;IAE3F,YACkB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU,EAM1B;IAED,IAAW,OAAO,eAEjB;IAEY,gBAAgB,wBAE5B;IAGY,kBAAkB,wBAE9B;IAEM,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAEtC;IAEM,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAErC;IAEM,WAAW,2BAEjB;IAEM,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAErD;IAEY,YAAY,CACvB,aAAa,EAAE,GAAG,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,cAAc,EAAE,UAAU,CAAC;QAAC,sBAAsB,EAAE,GAAG,CAAC;QAAC,aAAa,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAYjH;IAEM,iBAAiB,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAEzF;IAEM,mBAAmB,CAAC,OAAO,EAAE,GAAG,GAAG,WAAW,CAKpD;IAEY,gCAAgC,CAC3C,OAAO,EAAE,GAAG,EACZ,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,GAAG,EAClB,MAAM,EAAE,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,GACjD,OAAO,CAAC,WAAW,CAAC,CAatB;IAEY,iBAAiB,CAC5B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC;QACT,OAAO,EAAE,kBAAkB,CAAC;QAC5B,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAWD;CACF"}
|
|
@@ -53,9 +53,18 @@ export class GovernanceProposerContract {
|
|
|
53
53
|
rollupAddress,
|
|
54
54
|
round
|
|
55
55
|
]);
|
|
56
|
+
const [signalCount, quorum] = await Promise.all([
|
|
57
|
+
this.proposer.read.signalCount([
|
|
58
|
+
rollupAddress,
|
|
59
|
+
round,
|
|
60
|
+
result.payloadWithMostSignals
|
|
61
|
+
]),
|
|
62
|
+
this.getQuorumSize()
|
|
63
|
+
]);
|
|
56
64
|
return {
|
|
57
65
|
lastSignalSlot: SlotNumber.fromBigInt(result.lastSignalSlot),
|
|
58
66
|
payloadWithMostSignals: result.payloadWithMostSignals,
|
|
67
|
+
quorumReached: signalCount >= quorum,
|
|
59
68
|
executed: result.executed
|
|
60
69
|
};
|
|
61
70
|
}
|
|
@@ -86,7 +86,7 @@ export interface ForgeL1ContractsDeployResult extends ForgeRollupUpgradeResult {
|
|
|
86
86
|
* @param options - Additional deployment options (all optional with sensible defaults)
|
|
87
87
|
* @returns The deployment result with all contract addresses and an l1Client
|
|
88
88
|
*/
|
|
89
|
-
export declare function deployAztecL1Contracts(rpcUrl: string, privateKey: `0x${string}`, chainId: number, args: DeployAztecL1ContractsArgs
|
|
89
|
+
export declare function deployAztecL1Contracts(rpcUrl: string, privateKey: `0x${string}`, chainId: number, args: DeployAztecL1ContractsArgs): Promise<DeployAztecL1ContractsReturnType>;
|
|
90
90
|
export declare const DEPLOYER_ADDRESS: Hex;
|
|
91
91
|
export type Operator = {
|
|
92
92
|
attester: EthAddress;
|
|
@@ -242,4 +242,4 @@ export declare const deployRollupForUpgrade: (privateKey: `0x${string}`, rpcUrl:
|
|
|
242
242
|
rollup: RollupContract;
|
|
243
243
|
slashFactoryAddress: `0x${string}`;
|
|
244
244
|
}>;
|
|
245
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2F6dGVjX2wxX2NvbnRyYWN0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RlcGxveV9henRlY19sMV9jb250cmFjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBd0IsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJM0QsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJcEQsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUkzQyxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLaEMsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFnRTNELE1BQU0sV0FBVyxXQUFXO0lBQzFCLEVBQUUsRUFBRSxNQUFNLENBQUM7SUFDWCxFQUFFLEVBQUUsTUFBTSxDQUFDO0lBQ1gsRUFBRSxFQUFFLE1BQU0sQ0FBQztJQUNYLEVBQUUsRUFBRSxNQUFNLENBQUM7Q0FDWjtBQUVEOzs7R0FHRztBQUNILE1BQU0sV0FBVyxhQUFhO0lBQzVCLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixxQ0FBcUM7SUFDckMsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixrRUFBa0U7SUFDbEUsYUFBYSxFQUFFLFdBQVcsQ0FBQztDQUM1QjtBQUVEOztHQUVHO0FBQ0gsd0JBQWdCLGtCQUFrQixJQUFJLE1BQU0sQ0FPM0M7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxRQUFRLEdBQUcsYUFBYSxDQW9CdEU7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxzQkFBc0I7SUFDckMsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixlQUFlLEVBQUUsTUFBTSxDQUFDO0lBQ3hCLG1CQUFtQixFQUFFLE1BQU0sQ0FBQztJQUM1QixZQUFZLEVBQUUsTUFBTSxDQUFDO0lBQ3JCLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0lBQzlCLGFBQWEsRUFBRSxNQUFNLENBQUM7Q0FDdkI7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyx3QkFBd0I7SUFDdkMsYUFBYSxFQUFFLEdBQUcsQ0FBQztJQUNuQixlQUFlLEVBQUUsR0FBRyxDQUFDO0lBQ3JCLG1CQUFtQixFQUFFLEdBQUcsQ0FBQztJQUN6QixZQUFZLEVBQUUsR0FBRyxDQUFDO0lBQ2xCLGFBQWEsRUFBRSxHQUFHLENBQUM7SUFDbkIscUJBQXFCLEVBQUUsR0FBRyxDQUFDO0lBQzNCLGFBQWEsRUFBRSxNQUFNLENBQUM7Q0FDdkI7QUFFRCxNQUFNLFdBQVcsNEJBQTZCLFNBQVEsd0JBQXdCO0lBQzVFLGVBQWUsRUFBRSxHQUFHLENBQUM7SUFDckIsZUFBZSxFQUFFLEdBQUcsQ0FBQztJQUNyQixtQkFBbUIsRUFBRSxHQUFHLENBQUM7SUFDekIsVUFBVSxDQUFDLEVBQUUsR0FBRyxDQUFDO0lBQ2pCLHdCQUF3QixFQUFFLEdBQUcsQ0FBQztJQUM5QixpQkFBaUIsRUFBRSxHQUFHLENBQUM7SUFDdkIseUJBQXlCLEVBQUUsR0FBRyxDQUFDO0lBQy9CLGlCQUFpQixFQUFFLEdBQUcsQ0FBQztJQUN2Qix1QkFBdUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQztJQUM5QixzQkFBc0IsQ0FBQyxFQUFFLEdBQUcsQ0FBQztJQUM3QiwwQkFBMEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQztJQUNqQyx5QkFBeUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQztDQUNqQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsd0JBQXNCLHNCQUFzQixDQUMxQyxNQUFNLEVBQUUsTUFBTSxFQUNkLFVBQVUsRUFBRSxLQUFLLE1BQU0sRUFBRSxFQUN6QixPQUFPLEVBQUUsTUFBTSxFQUNmLElBQUksRUFBRSwwQkFBMEIsR0FDL0IsT0FBTyxDQUFDLGdDQUFnQyxDQUFDLENBMEkzQztBQUVELGVBQU8sTUFBTSxnQkFBZ0IsRUFBRSxHQUFrRCxDQUFDO0FBRWxGLE1BQU0sTUFBTSxRQUFRLEdBQUc7SUFDckIsUUFBUSxFQUFFLFVBQVUsQ0FBQztJQUNyQixVQUFVLEVBQUUsVUFBVSxDQUFDO0lBQ3ZCLGNBQWMsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7Q0FDckMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGdDQUFnQyxHQUFHO0lBQzdDLG1DQUFtQztJQUNuQyxRQUFRLEVBQUUsd0JBQXdCLENBQUM7SUFDbkMsbURBQW1EO0lBQ25ELG1CQUFtQixFQUFFLG1CQUFtQixDQUFDO0lBQ3pDLDhDQUE4QztJQUM5QyxhQUFhLEVBQUUsTUFBTSxDQUFDO0NBQ3ZCLENBQUM7QUFFRixNQUFNLFdBQVcsY0FBYztJQUM3QixDQUFDLFFBQVEsRUFBRSxNQUFNLEdBQUc7UUFDbEIsQ0FBQyxZQUFZLEVBQUUsTUFBTSxHQUFHLGFBQWEsQ0FBQztZQUNwQyxLQUFLLEVBQUUsTUFBTSxDQUFDO1lBQ2QsTUFBTSxFQUFFLE1BQU0sQ0FBQztTQUNoQixDQUFDLENBQUM7S0FDSixDQUFDO0NBQ0g7QUFFRCxNQUFNLFdBQVcsU0FBUztJQUN4QixjQUFjLEVBQUUsY0FBYyxDQUFDO0lBQy9CLFdBQVcsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLGlCQUFpQixDQUFDLENBQUM7Q0FDaEQ7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxpQkFBaUIsQ0FBQyxJQUFJLFNBQVMsR0FBRyxHQUFHLFNBQVMsT0FBTyxFQUFFLEdBQUcsR0FBRztJQUM1RTs7T0FFRztJQUNILElBQUksRUFBRSxNQUFNLENBQUM7SUFDYjs7T0FFRztJQUNILFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUI7O09BRUc7SUFDSCxnQkFBZ0IsRUFBRSxHQUFHLENBQUM7SUFDdEI7O09BRUc7SUFDSCxTQUFTLENBQUMsRUFBRSxTQUFTLENBQUM7Q0FDdkI7QUFFRCxNQUFNLE1BQU0sd0JBQXdCLEdBQUc7SUFDckMsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsT0FBTyxFQUFFLE1BQU0sQ0FBQztDQUNqQixDQUFDO0FBRUYsTUFBTSxNQUFNLGtCQUFrQixHQUFHO0lBQy9CLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLGtCQUFrQixFQUFFLEdBQUcsQ0FBQztJQUN4QixTQUFTLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQztDQUN2QyxDQUFDO0FBRUYsTUFBTSxXQUFXLDBCQUEyQixTQUFRLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztJQUNoRyx3QkFBd0I7SUFDeEIsVUFBVSxFQUFFLEVBQUUsQ0FBQztJQUNmLDBDQUEwQztJQUMxQyxxQkFBcUIsRUFBRSxFQUFFLENBQUM7SUFDMUIsNENBQTRDO0lBQzVDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQztJQUN2QixzREFBc0Q7SUFDdEQsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUMvQixpSEFBaUg7SUFDakgsNEJBQTRCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdEMsK0RBQStEO0lBQy9ELFlBQVksQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUN2QiwyQkFBMkI7SUFDM0IsY0FBYyxDQUFDLEVBQUUsY0FBYyxDQUFDO0lBQ2hDLHFGQUFxRjtJQUNyRixvQkFBb0IsQ0FBQyxFQUFFLFVBQVUsQ0FBQztDQUNuQztBQUVELE1BQU0sV0FBVyxjQUFjO0lBQzdCLDBDQUEwQztJQUMxQyxnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUMxQixxREFBcUQ7SUFDckQsZUFBZSxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQzFCO0FBR0Qsd0JBQWdCLGdDQUFnQyxDQUFDLElBQUksRUFBRSwwQkFBMEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFXaEY7QUFHRCx3QkFBZ0IsZ0NBQWdDLENBQzlDLElBQUksRUFBRSxJQUFJLENBQ1IsMEJBQTBCLEVBQ3hCLDBCQUEwQixHQUMxQiw2QkFBNkIsR0FDN0IsbUJBQW1CLEdBQ25CLHFCQUFxQixHQUNyQixtQkFBbUIsQ0FDdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWdDRjtBQUVEOztHQUVHO0FBQ0gsZUFBTyxNQUFNLHNCQUFzQjs7O0VBdURsQyxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy_aztec_l1_contracts.d.ts","sourceRoot":"","sources":["../src/deploy_aztec_l1_contracts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAwB,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAI3D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAIpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy_aztec_l1_contracts.d.ts","sourceRoot":"","sources":["../src/deploy_aztec_l1_contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,11 +7,9 @@ import { promiseWithResolvers } from '@aztec/foundation/promise';
|
|
|
7
7
|
import { fileURLToPath } from '@aztec/foundation/url';
|
|
8
8
|
import { bn254 } from '@noble/curves/bn254';
|
|
9
9
|
import { spawn } from 'child_process';
|
|
10
|
-
import {
|
|
11
|
-
import { tmpdir } from 'os';
|
|
12
|
-
import { dirname, join, resolve } from 'path';
|
|
10
|
+
import { dirname, resolve } from 'path';
|
|
13
11
|
import readline from 'readline';
|
|
14
|
-
import { foundry, mainnet } from 'viem/chains';
|
|
12
|
+
import { foundry, mainnet, sepolia } from 'viem/chains';
|
|
15
13
|
import { createEthereumChain, isAnvilTestChain } from './chain.js';
|
|
16
14
|
import { createExtendedL1Client } from './client.js';
|
|
17
15
|
import { deployMulticall3 } from './contracts/multicall.js';
|
|
@@ -64,17 +62,6 @@ const JSON_DEPLOY_RESULT_PREFIX = 'JSON DEPLOY RESULT:';
|
|
|
64
62
|
});
|
|
65
63
|
return promise;
|
|
66
64
|
}
|
|
67
|
-
/**
|
|
68
|
-
* Copies the foundry cache folder to a temporary location to avoid conflicts when running forge in parallel.
|
|
69
|
-
* The cache folder is small metadata that links to the out folder, so this is a fast operation.
|
|
70
|
-
*/ async function copyFoundryCacheToTemp(l1ContractsPath) {
|
|
71
|
-
const cacheFolder = join(l1ContractsPath, 'cache');
|
|
72
|
-
const tempCacheFolder = await mkdtemp(join(tmpdir(), 'foundry-cache-'));
|
|
73
|
-
await cp(cacheFolder, tempCacheFolder, {
|
|
74
|
-
recursive: true
|
|
75
|
-
});
|
|
76
|
-
return tempCacheFolder;
|
|
77
|
-
}
|
|
78
65
|
// Covers an edge where where we may have a cached BlobLib that is not meant for production.
|
|
79
66
|
// Despite the profile apparently sometimes cached code remains (so says Lasse after his ignition-monorepo arc).
|
|
80
67
|
async function maybeForgeForceProductionBuild(l1ContractsPath, script, chainId) {
|
|
@@ -133,7 +120,7 @@ async function maybeForgeForceProductionBuild(l1ContractsPath, script, chainId)
|
|
|
133
120
|
* @param privateKey - The private key for the deployer (with 0x prefix)
|
|
134
121
|
* @param options - Additional deployment options (all optional with sensible defaults)
|
|
135
122
|
* @returns The deployment result with all contract addresses and an l1Client
|
|
136
|
-
*/ export async function deployAztecL1Contracts(rpcUrl, privateKey, chainId, args
|
|
123
|
+
*/ export async function deployAztecL1Contracts(rpcUrl, privateKey, chainId, args) {
|
|
137
124
|
logger.info(`Deploying L1 contracts with config: ${jsonStringify(args)}`);
|
|
138
125
|
if (args.initialValidators && args.initialValidators.length > 0 && args.existingTokenAddress) {
|
|
139
126
|
throw new Error('Cannot deploy with both initialValidators and existingTokenAddress. ' + 'Initial validator funding requires minting tokens, which is not possible with an external token.');
|
|
@@ -172,99 +159,92 @@ async function maybeForgeForceProductionBuild(l1ContractsPath, script, chainId)
|
|
|
172
159
|
const l1ContractsPath = resolve(currentDir, '..', '..', '..', 'l1-contracts');
|
|
173
160
|
const FORGE_SCRIPT = 'script/deploy/DeployAztecL1Contracts.s.sol';
|
|
174
161
|
await maybeForgeForceProductionBuild(l1ContractsPath, FORGE_SCRIPT, chainId);
|
|
175
|
-
//
|
|
176
|
-
const
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
162
|
+
// Verify contracts on Etherscan when on mainnet/sepolia and ETHERSCAN_API_KEY is available.
|
|
163
|
+
const isVerifiableChain = chainId === mainnet.id || chainId === sepolia.id;
|
|
164
|
+
const shouldVerify = isVerifiableChain && !!process.env.ETHERSCAN_API_KEY;
|
|
165
|
+
if (isVerifiableChain && !process.env.ETHERSCAN_API_KEY) {
|
|
166
|
+
logger.warn(`Deploying to chain ${chainId} (${chainId === mainnet.id ? 'mainnet' : 'sepolia'}) without ETHERSCAN_API_KEY. ` + `Contracts will NOT be verified on Etherscan. Set ETHERSCAN_API_KEY environment variable to enable verification.`);
|
|
167
|
+
}
|
|
168
|
+
// From heuristic testing. More caused issues with anvil.
|
|
169
|
+
const MAGIC_ANVIL_BATCH_SIZE = 12;
|
|
170
|
+
// Anvil seems to stall with unbounded batch size. Otherwise no max batch size is desirable.
|
|
171
|
+
const forgeArgs = [
|
|
172
|
+
'script',
|
|
173
|
+
FORGE_SCRIPT,
|
|
174
|
+
'--sig',
|
|
175
|
+
'run()',
|
|
176
|
+
'--private-key',
|
|
177
|
+
privateKey,
|
|
178
|
+
'--rpc-url',
|
|
179
|
+
rpcUrl,
|
|
180
|
+
'--broadcast',
|
|
181
|
+
...chainId === foundry.id ? [
|
|
182
|
+
'--batch-size',
|
|
183
|
+
MAGIC_ANVIL_BATCH_SIZE.toString()
|
|
184
|
+
] : [],
|
|
185
|
+
...shouldVerify ? [
|
|
186
|
+
'--verify'
|
|
187
|
+
] : []
|
|
188
|
+
];
|
|
189
|
+
const forgeEnv = {
|
|
190
|
+
// Env vars required by l1-contracts/script/deploy/DeploymentConfiguration.sol.
|
|
191
|
+
NETWORK: getActiveNetworkName(),
|
|
192
|
+
FOUNDRY_PROFILE: chainId === mainnet.id ? 'production' : undefined,
|
|
193
|
+
...getDeployAztecL1ContractsEnvVars(args)
|
|
194
|
+
};
|
|
195
|
+
const result = await runProcess('forge', forgeArgs, forgeEnv, l1ContractsPath);
|
|
196
|
+
if (!result) {
|
|
197
|
+
throw new Error('Forge script did not output deployment result');
|
|
198
|
+
}
|
|
199
|
+
logger.info(`Deployed L1 contracts with L1 addresses: ${jsonStringify(result)}`);
|
|
200
|
+
const rollup = new RollupContract(l1Client, result.rollupAddress);
|
|
201
|
+
if (isAnvilTestChain(chainId)) {
|
|
202
|
+
// @note We make a time jump PAST the very first slot to not have to deal with the edge case of the first slot.
|
|
203
|
+
// The edge case being that the genesis block is already occupying slot 0, so we cannot have another block.
|
|
204
|
+
try {
|
|
205
|
+
// Need to get the time
|
|
206
|
+
const currentSlot = await rollup.getSlotNumber();
|
|
207
|
+
if (currentSlot === 0) {
|
|
208
|
+
const ts = Number(await rollup.getTimestampForSlot(SlotNumber(1)));
|
|
209
|
+
await rpcCall('evm_setNextBlockTimestamp', [
|
|
210
|
+
ts
|
|
211
|
+
]);
|
|
212
|
+
await rpcCall('hardhat_mine', [
|
|
213
|
+
1
|
|
214
|
+
]);
|
|
220
215
|
const currentSlot = await rollup.getSlotNumber();
|
|
221
|
-
if (currentSlot
|
|
222
|
-
|
|
223
|
-
await rpcCall('evm_setNextBlockTimestamp', [
|
|
224
|
-
ts
|
|
225
|
-
]);
|
|
226
|
-
await rpcCall('hardhat_mine', [
|
|
227
|
-
1
|
|
228
|
-
]);
|
|
229
|
-
const currentSlot = await rollup.getSlotNumber();
|
|
230
|
-
if (currentSlot !== 1) {
|
|
231
|
-
throw new Error(`Error jumping time: current slot is ${currentSlot}`);
|
|
232
|
-
}
|
|
233
|
-
logger.info(`Jumped to slot 1`);
|
|
216
|
+
if (currentSlot !== 1) {
|
|
217
|
+
throw new Error(`Error jumping time: current slot is ${currentSlot}`);
|
|
234
218
|
}
|
|
235
|
-
|
|
236
|
-
throw new Error(`Error jumping time: ${e}`);
|
|
219
|
+
logger.info(`Jumped to slot 1`);
|
|
237
220
|
}
|
|
221
|
+
} catch (e) {
|
|
222
|
+
throw new Error(`Error jumping time: ${e}`);
|
|
238
223
|
}
|
|
239
|
-
return {
|
|
240
|
-
l1Client,
|
|
241
|
-
rollupVersion: result.rollupVersion,
|
|
242
|
-
l1ContractAddresses: {
|
|
243
|
-
rollupAddress: EthAddress.fromString(result.rollupAddress),
|
|
244
|
-
registryAddress: EthAddress.fromString(result.registryAddress),
|
|
245
|
-
inboxAddress: EthAddress.fromString(result.inboxAddress),
|
|
246
|
-
outboxAddress: EthAddress.fromString(result.outboxAddress),
|
|
247
|
-
feeJuiceAddress: EthAddress.fromString(result.feeAssetAddress),
|
|
248
|
-
feeJuicePortalAddress: EthAddress.fromString(result.feeJuicePortalAddress),
|
|
249
|
-
coinIssuerAddress: EthAddress.fromString(result.coinIssuerAddress),
|
|
250
|
-
rewardDistributorAddress: EthAddress.fromString(result.rewardDistributorAddress),
|
|
251
|
-
governanceProposerAddress: EthAddress.fromString(result.governanceProposerAddress),
|
|
252
|
-
governanceAddress: EthAddress.fromString(result.governanceAddress),
|
|
253
|
-
stakingAssetAddress: EthAddress.fromString(result.stakingAssetAddress),
|
|
254
|
-
slashFactoryAddress: result.slashFactoryAddress ? EthAddress.fromString(result.slashFactoryAddress) : undefined,
|
|
255
|
-
feeAssetHandlerAddress: result.feeAssetHandlerAddress ? EthAddress.fromString(result.feeAssetHandlerAddress) : undefined,
|
|
256
|
-
stakingAssetHandlerAddress: result.stakingAssetHandlerAddress ? EthAddress.fromString(result.stakingAssetHandlerAddress) : undefined,
|
|
257
|
-
zkPassportVerifierAddress: result.zkPassportVerifierAddress ? EthAddress.fromString(result.zkPassportVerifierAddress) : undefined,
|
|
258
|
-
gseAddress: result.gseAddress ? EthAddress.fromString(result.gseAddress) : undefined,
|
|
259
|
-
dateGatedRelayerAddress: result.dateGatedRelayerAddress ? EthAddress.fromString(result.dateGatedRelayerAddress) : undefined
|
|
260
|
-
}
|
|
261
|
-
};
|
|
262
|
-
} finally{
|
|
263
|
-
await rm(tempCachePath, {
|
|
264
|
-
recursive: true,
|
|
265
|
-
force: true
|
|
266
|
-
});
|
|
267
224
|
}
|
|
225
|
+
return {
|
|
226
|
+
l1Client,
|
|
227
|
+
rollupVersion: result.rollupVersion,
|
|
228
|
+
l1ContractAddresses: {
|
|
229
|
+
rollupAddress: EthAddress.fromString(result.rollupAddress),
|
|
230
|
+
registryAddress: EthAddress.fromString(result.registryAddress),
|
|
231
|
+
inboxAddress: EthAddress.fromString(result.inboxAddress),
|
|
232
|
+
outboxAddress: EthAddress.fromString(result.outboxAddress),
|
|
233
|
+
feeJuiceAddress: EthAddress.fromString(result.feeAssetAddress),
|
|
234
|
+
feeJuicePortalAddress: EthAddress.fromString(result.feeJuicePortalAddress),
|
|
235
|
+
coinIssuerAddress: EthAddress.fromString(result.coinIssuerAddress),
|
|
236
|
+
rewardDistributorAddress: EthAddress.fromString(result.rewardDistributorAddress),
|
|
237
|
+
governanceProposerAddress: EthAddress.fromString(result.governanceProposerAddress),
|
|
238
|
+
governanceAddress: EthAddress.fromString(result.governanceAddress),
|
|
239
|
+
stakingAssetAddress: EthAddress.fromString(result.stakingAssetAddress),
|
|
240
|
+
slashFactoryAddress: result.slashFactoryAddress ? EthAddress.fromString(result.slashFactoryAddress) : undefined,
|
|
241
|
+
feeAssetHandlerAddress: result.feeAssetHandlerAddress ? EthAddress.fromString(result.feeAssetHandlerAddress) : undefined,
|
|
242
|
+
stakingAssetHandlerAddress: result.stakingAssetHandlerAddress ? EthAddress.fromString(result.stakingAssetHandlerAddress) : undefined,
|
|
243
|
+
zkPassportVerifierAddress: result.zkPassportVerifierAddress ? EthAddress.fromString(result.zkPassportVerifierAddress) : undefined,
|
|
244
|
+
gseAddress: result.gseAddress ? EthAddress.fromString(result.gseAddress) : undefined,
|
|
245
|
+
dateGatedRelayerAddress: result.dateGatedRelayerAddress ? EthAddress.fromString(result.dateGatedRelayerAddress) : undefined
|
|
246
|
+
}
|
|
247
|
+
};
|
|
268
248
|
}
|
|
269
249
|
export const DEPLOYER_ADDRESS = '0x4e59b44847b379578588920cA78FbF26c0B4956C';
|
|
270
250
|
// picked up by l1-contracts DeploymentConfiguration.sol
|
|
@@ -321,46 +301,35 @@ export function getDeployRollupForUpgradeEnvVars(args) {
|
|
|
321
301
|
const l1ContractsPath = resolve(currentDir, '..', '..', '..', 'l1-contracts');
|
|
322
302
|
const FORGE_SCRIPT = 'script/deploy/DeployRollupForUpgrade.s.sol';
|
|
323
303
|
await maybeForgeForceProductionBuild(l1ContractsPath, FORGE_SCRIPT, chainId);
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
...getDeployRollupForUpgradeEnvVars(args)
|
|
346
|
-
};
|
|
347
|
-
const result = await runProcess('forge', forgeArgs, forgeEnv, l1ContractsPath);
|
|
348
|
-
if (!result) {
|
|
349
|
-
throw new Error('Forge script did not output deployment result');
|
|
350
|
-
}
|
|
351
|
-
const extendedClient = createExtendedL1Client([
|
|
352
|
-
rpcUrl
|
|
353
|
-
], privateKey);
|
|
354
|
-
// Create RollupContract wrapper for the deployed rollup
|
|
355
|
-
const rollup = new RollupContract(extendedClient, result.rollupAddress);
|
|
356
|
-
return {
|
|
357
|
-
rollup,
|
|
358
|
-
slashFactoryAddress: result.slashFactoryAddress
|
|
359
|
-
};
|
|
360
|
-
} finally{
|
|
361
|
-
await rm(tempCachePath, {
|
|
362
|
-
recursive: true,
|
|
363
|
-
force: true
|
|
364
|
-
});
|
|
304
|
+
const forgeArgs = [
|
|
305
|
+
'script',
|
|
306
|
+
FORGE_SCRIPT,
|
|
307
|
+
'--sig',
|
|
308
|
+
'run()',
|
|
309
|
+
'--private-key',
|
|
310
|
+
privateKey,
|
|
311
|
+
'--rpc-url',
|
|
312
|
+
rpcUrl,
|
|
313
|
+
'--broadcast'
|
|
314
|
+
];
|
|
315
|
+
const forgeEnv = {
|
|
316
|
+
FOUNDRY_PROFILE: chainId === mainnet.id ? 'production' : undefined,
|
|
317
|
+
// Env vars required by l1-contracts/script/deploy/RollupConfiguration.sol.
|
|
318
|
+
REGISTRY_ADDRESS: registryAddress.toString(),
|
|
319
|
+
NETWORK: getActiveNetworkName(),
|
|
320
|
+
...getDeployRollupForUpgradeEnvVars(args)
|
|
321
|
+
};
|
|
322
|
+
const result = await runProcess('forge', forgeArgs, forgeEnv, l1ContractsPath);
|
|
323
|
+
if (!result) {
|
|
324
|
+
throw new Error('Forge script did not output deployment result');
|
|
365
325
|
}
|
|
326
|
+
const extendedClient = createExtendedL1Client([
|
|
327
|
+
rpcUrl
|
|
328
|
+
], privateKey);
|
|
329
|
+
// Create RollupContract wrapper for the deployed rollup
|
|
330
|
+
const rollup = new RollupContract(extendedClient, result.rollupAddress);
|
|
331
|
+
return {
|
|
332
|
+
rollup,
|
|
333
|
+
slashFactoryAddress: result.slashFactoryAddress
|
|
334
|
+
};
|
|
366
335
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
1
2
|
import { type Logger } from '@aztec/foundation/log';
|
|
2
3
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
3
|
-
import { type Abi, type Account, type BlockOverrides, type Hex, type StateOverride } from 'viem';
|
|
4
|
+
import { type Abi, type Account, type BlockOverrides, type GetCodeReturnType, type Hex, type StateOverride } from 'viem';
|
|
4
5
|
import type { ViemClient } from '../types.js';
|
|
5
6
|
import { type L1TxUtilsConfig } from './config.js';
|
|
6
7
|
import type { GasPrice, L1BlobInputs, L1TxRequest, TransactionStats } from './types.js';
|
|
@@ -44,6 +45,7 @@ export declare class ReadOnlyL1TxUtils {
|
|
|
44
45
|
transactions: `0x${string}`[];
|
|
45
46
|
}>;
|
|
46
47
|
getBlockNumber(): Promise<bigint>;
|
|
48
|
+
getCode(address: EthAddress): Promise<GetCodeReturnType>;
|
|
47
49
|
/**
|
|
48
50
|
* Gets the current gas price with bounds checking
|
|
49
51
|
*/
|
|
@@ -82,4 +84,4 @@ export declare class ReadOnlyL1TxUtils {
|
|
|
82
84
|
*/
|
|
83
85
|
private tryTwice;
|
|
84
86
|
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHlfbDFfdHhfdXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sMV90eF91dGlscy9yZWFkb25seV9sMV90eF91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSXZELE9BQU8sRUFDTCxLQUFLLEdBQUcsRUFDUixLQUFLLE9BQU8sRUFFWixLQUFLLGNBQWMsRUFFbkIsS0FBSyxpQkFBaUIsRUFDdEIsS0FBSyxHQUFHLEVBR1IsS0FBSyxhQUFhLEVBS25CLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBbUQsTUFBTSxhQUFhLENBQUM7QUFTcEcsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFNeEYscUJBQWEsaUJBQWlCO0lBS25CLE1BQU0sRUFBRSxVQUFVO0lBQ3pCLFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTTthQUNSLFlBQVksRUFBRSxZQUFZO0lBRTFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPO0lBUjlCLE1BQU0sRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekMsU0FBUyxDQUFDLFdBQVcsVUFBUztJQUU5QixZQUNTLE1BQU0sRUFBRSxVQUFVLEVBQ2YsTUFBTSxvQkFBcUQsRUFDckQsWUFBWSxFQUFFLFlBQVksRUFDMUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUN2QixnQkFBZ0IsR0FBRSxPQUFlLEVBRzVDO0lBRU0sU0FBUyxTQUVmO0lBRU0sT0FBTyxTQUViO0lBRU0sUUFBUTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQUVkO0lBRU0sY0FBYyxvQkFFcEI7SUFFTSxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FFOUQ7SUFFRDs7T0FFRztJQUNVLFdBQVcsQ0FDdEIsa0JBQWtCLENBQUMsRUFBRSxlQUFlLEVBQ3BDLFFBQVEsR0FBRSxPQUFlLEVBQ3pCLE9BQU8sR0FBRSxNQUFVLEVBQ25CLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxPQUFPLFNBQVMsQ0FBQyxHQUFHLEtBQUssR0FBRyxRQUFRLEdBQzdELE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FtTG5CO0lBRUQ7O09BRUc7SUFDVSxXQUFXLENBQ3RCLE9BQU8sRUFBRSxPQUFPLEdBQUcsR0FBRyxFQUN0QixPQUFPLEVBQUUsV0FBVyxFQUNwQixVQUFVLENBQUMsRUFBRSxlQUFlLEVBQzVCLFdBQVcsQ0FBQyxFQUFFLFlBQVksR0FDekIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQXdCakI7SUFFSyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsQ0FZL0U7SUFFWSx5QkFBeUIsQ0FDcEMsSUFBSSxFQUFFLEdBQUcsRUFDVCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNyQixZQUFZLEVBQUUsTUFBTSxDQUFDO1FBQ3JCLEdBQUcsRUFBRSxHQUFHLENBQUM7UUFDVCxPQUFPLEVBQUUsR0FBRyxDQUFDO0tBQ2QsRUFDRCxVQUFVLEVBQUUsQ0FBQyxZQUFZLEdBQUc7UUFBRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDLEdBQUcsU0FBUyxFQUNyRSxhQUFhLEdBQUUsYUFBa0IsK0JBZ0RsQztJQUVZLFFBQVEsQ0FDbkIsT0FBTyxFQUFFLFdBQVcsR0FBRztRQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQTtLQUFFLEVBQ25ELGNBQWMsR0FBRSxjQUFjLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBTSxFQUNuRCxjQUFjLEdBQUUsYUFBa0IsRUFDbEMsR0FBRyxHQUFFLEdBQWUsRUFDcEIsVUFBVSxDQUFDLEVBQUUsZUFBZSxHQUFHO1FBQUUsbUJBQW1CLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxHQUM5RCxPQUFPLENBQUM7UUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQUMsTUFBTSxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUE7S0FBRSxDQUFDLENBVXJEO0lBRUQsVUFBZ0IsU0FBUyxDQUN2QixJQUFJLEVBQUUsR0FBRyxFQUNULGNBQWMsNENBQXFDLEVBQ25ELGNBQWMsMkJBQW9CLEVBQ2xDLFNBQVMsRUFBRSxlQUFlLEdBQUc7UUFBRSxtQkFBbUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEVBQzdELEdBQUcsRUFBRSxHQUFHOzs7T0FvQ1Q7SUFFTSxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxlQUFlLEdBQUcsTUFBTSxDQVcxRTtJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLFFBQVE7Q0FHakIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readonly_l1_tx_utils.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/readonly_l1_tx_utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAIvD,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EAEZ,KAAK,cAAc,EAEnB,KAAK,GAAG,EAGR,KAAK,aAAa,EAKnB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,KAAK,eAAe,EAAmD,MAAM,aAAa,CAAC;AASpG,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMxF,qBAAa,iBAAiB;IAKnB,MAAM,EAAE,UAAU;IACzB,SAAS,CAAC,MAAM,EAAE,MAAM;aACR,YAAY,EAAE,YAAY;IAE1C,SAAS,CAAC,gBAAgB,EAAE,OAAO;IAR9B,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzC,SAAS,CAAC,WAAW,UAAS;IAE9B,YACS,MAAM,EAAE,UAAU,EACf,MAAM,oBAAqD,EACrD,YAAY,EAAE,YAAY,EAC1C,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,EACvB,gBAAgB,GAAE,OAAe,EAG5C;IAEM,SAAS,SAEf;IAEM,OAAO,SAEb;IAEM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAEd;IAEM,cAAc,oBAEpB;IAED;;OAEG;IACU,WAAW,CACtB,kBAAkB,CAAC,EAAE,eAAe,EACpC,QAAQ,GAAE,OAAe,EACzB,OAAO,GAAE,MAAU,EACnB,gBAAgB,CAAC,EAAE,OAAO,OAAO,SAAS,CAAC,GAAG,KAAK,GAAG,QAAQ,GAC7D,OAAO,CAAC,QAAQ,CAAC,CAmLnB;IAED;;OAEG;IACU,WAAW,CACtB,OAAO,EAAE,OAAO,GAAG,GAAG,EACtB,OAAO,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,eAAe,EAC5B,WAAW,CAAC,EAAE,YAAY,GACzB,OAAO,CAAC,MAAM,CAAC,CAwBjB;IAEK,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAY/E;IAEY,yBAAyB,CACpC,IAAI,EAAE,GAAG,EACT,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS,GAAG,EAAE,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,GAAG,EAAE,GAAG,CAAC;QACT,OAAO,EAAE,GAAG,CAAC;KACd,EACD,UAAU,EAAE,CAAC,YAAY,GAAG;QAAE,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,EACrE,aAAa,GAAE,aAAkB,+BAgDlC;IAEY,QAAQ,CACnB,OAAO,EAAE,WAAW,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAE,EACnD,cAAc,GAAE,cAAc,CAAC,MAAM,EAAE,MAAM,CAAM,EACnD,cAAc,GAAE,aAAkB,EAClC,GAAG,GAAE,GAAe,EACpB,UAAU,CAAC,EAAE,eAAe,GAAG;QAAE,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9D,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,KAAK,MAAM,EAAE,CAAA;KAAE,CAAC,CAUrD;IAED,UAAgB,SAAS,CACvB,IAAI,EAAE,GAAG,EACT,cAAc,4CAAqC,EACnD,cAAc,2BAAoB,EAClC,SAAS,EAAE,eAAe,GAAG;QAAE,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,EAC7D,GAAG,EAAE,GAAG;;;OAoCT;IAEM,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,eAAe,GAAG,MAAM,CAW1E;IAED;;OAEG;IACH,OAAO,CAAC,QAAQ;CAGjB"}
|
|
1
|
+
{"version":3,"file":"readonly_l1_tx_utils.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/readonly_l1_tx_utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,11 @@ export class ReadOnlyL1TxUtils {
|
|
|
37
37
|
getBlockNumber() {
|
|
38
38
|
return this.client.getBlockNumber();
|
|
39
39
|
}
|
|
40
|
+
getCode(address) {
|
|
41
|
+
return this.client.getCode({
|
|
42
|
+
address: address.toString()
|
|
43
|
+
});
|
|
44
|
+
}
|
|
40
45
|
/**
|
|
41
46
|
* Gets the current gas price with bounds checking
|
|
42
47
|
*/ async getGasPrice(gasConfigOverrides, isBlobTx = false, attempt = 0, previousGasPrice) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/ethereum",
|
|
3
|
-
"version": "3.0.0-nightly.
|
|
3
|
+
"version": "3.0.0-nightly.20251219",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./account": "./dest/account.js",
|
|
@@ -49,10 +49,10 @@
|
|
|
49
49
|
"../package.common.json"
|
|
50
50
|
],
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@aztec/blob-lib": "3.0.0-nightly.
|
|
53
|
-
"@aztec/constants": "3.0.0-nightly.
|
|
54
|
-
"@aztec/foundation": "3.0.0-nightly.
|
|
55
|
-
"@aztec/l1-artifacts": "3.0.0-nightly.
|
|
52
|
+
"@aztec/blob-lib": "3.0.0-nightly.20251219",
|
|
53
|
+
"@aztec/constants": "3.0.0-nightly.20251219",
|
|
54
|
+
"@aztec/foundation": "3.0.0-nightly.20251219",
|
|
55
|
+
"@aztec/l1-artifacts": "3.0.0-nightly.20251219",
|
|
56
56
|
"@viem/anvil": "^0.0.10",
|
|
57
57
|
"dotenv": "^16.0.3",
|
|
58
58
|
"lodash.chunk": "^4.2.0",
|
|
@@ -12,7 +12,7 @@ export interface IEmpireBase {
|
|
|
12
12
|
getRoundInfo(
|
|
13
13
|
rollupAddress: Hex,
|
|
14
14
|
round: bigint,
|
|
15
|
-
): Promise<{ lastSignalSlot: SlotNumber; payloadWithMostSignals: Hex; executed: boolean }>;
|
|
15
|
+
): Promise<{ lastSignalSlot: SlotNumber; payloadWithMostSignals: Hex; quorumReached: boolean; executed: boolean }>;
|
|
16
16
|
computeRound(slot: SlotNumber): Promise<bigint>;
|
|
17
17
|
createSignalRequest(payload: Hex): L1TxRequest;
|
|
18
18
|
createSignalRequestWithSignature(
|
|
@@ -79,11 +79,16 @@ export class EmpireSlashingProposerContract extends EventEmitter implements IEmp
|
|
|
79
79
|
public async getRoundInfo(
|
|
80
80
|
rollupAddress: Hex,
|
|
81
81
|
round: bigint,
|
|
82
|
-
): Promise<{ lastSignalSlot: SlotNumber; payloadWithMostSignals: Hex; executed: boolean }> {
|
|
82
|
+
): Promise<{ lastSignalSlot: SlotNumber; payloadWithMostSignals: Hex; quorumReached: boolean; executed: boolean }> {
|
|
83
83
|
const result = await this.proposer.read.getRoundData([rollupAddress, round]);
|
|
84
|
+
const [signalCount, quorum] = await Promise.all([
|
|
85
|
+
this.proposer.read.signalCount([rollupAddress, round, result.payloadWithMostSignals]),
|
|
86
|
+
this.getQuorumSize(),
|
|
87
|
+
]);
|
|
84
88
|
return {
|
|
85
89
|
lastSignalSlot: SlotNumber.fromBigInt(result.lastSignalSlot),
|
|
86
90
|
payloadWithMostSignals: result.payloadWithMostSignals,
|
|
91
|
+
quorumReached: signalCount >= quorum,
|
|
87
92
|
executed: result.executed,
|
|
88
93
|
};
|
|
89
94
|
}
|
|
@@ -62,11 +62,16 @@ export class GovernanceProposerContract implements IEmpireBase {
|
|
|
62
62
|
public async getRoundInfo(
|
|
63
63
|
rollupAddress: Hex,
|
|
64
64
|
round: bigint,
|
|
65
|
-
): Promise<{ lastSignalSlot: SlotNumber; payloadWithMostSignals: Hex; executed: boolean }> {
|
|
65
|
+
): Promise<{ lastSignalSlot: SlotNumber; payloadWithMostSignals: Hex; quorumReached: boolean; executed: boolean }> {
|
|
66
66
|
const result = await this.proposer.read.getRoundData([rollupAddress, round]);
|
|
67
|
+
const [signalCount, quorum] = await Promise.all([
|
|
68
|
+
this.proposer.read.signalCount([rollupAddress, round, result.payloadWithMostSignals]),
|
|
69
|
+
this.getQuorumSize(),
|
|
70
|
+
]);
|
|
67
71
|
return {
|
|
68
72
|
lastSignalSlot: SlotNumber.fromBigInt(result.lastSignalSlot),
|
|
69
73
|
payloadWithMostSignals: result.payloadWithMostSignals,
|
|
74
|
+
quorumReached: signalCount >= quorum,
|
|
70
75
|
executed: result.executed,
|
|
71
76
|
};
|
|
72
77
|
}
|
|
@@ -10,12 +10,10 @@ import { fileURLToPath } from '@aztec/foundation/url';
|
|
|
10
10
|
import { bn254 } from '@noble/curves/bn254';
|
|
11
11
|
import type { Abi, Narrow } from 'abitype';
|
|
12
12
|
import { spawn } from 'child_process';
|
|
13
|
-
import {
|
|
14
|
-
import { tmpdir } from 'os';
|
|
15
|
-
import { dirname, join, resolve } from 'path';
|
|
13
|
+
import { dirname, resolve } from 'path';
|
|
16
14
|
import readline from 'readline';
|
|
17
15
|
import type { Hex } from 'viem';
|
|
18
|
-
import { foundry, mainnet } from 'viem/chains';
|
|
16
|
+
import { foundry, mainnet, sepolia } from 'viem/chains';
|
|
19
17
|
|
|
20
18
|
import { createEthereumChain, isAnvilTestChain } from './chain.js';
|
|
21
19
|
import { createExtendedL1Client } from './client.js';
|
|
@@ -77,17 +75,6 @@ function runProcess<T>(
|
|
|
77
75
|
return promise;
|
|
78
76
|
}
|
|
79
77
|
|
|
80
|
-
/**
|
|
81
|
-
* Copies the foundry cache folder to a temporary location to avoid conflicts when running forge in parallel.
|
|
82
|
-
* The cache folder is small metadata that links to the out folder, so this is a fast operation.
|
|
83
|
-
*/
|
|
84
|
-
async function copyFoundryCacheToTemp(l1ContractsPath: string): Promise<string> {
|
|
85
|
-
const cacheFolder = join(l1ContractsPath, 'cache');
|
|
86
|
-
const tempCacheFolder = await mkdtemp(join(tmpdir(), 'foundry-cache-'));
|
|
87
|
-
await cp(cacheFolder, tempCacheFolder, { recursive: true });
|
|
88
|
-
return tempCacheFolder;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
78
|
// Covers an edge where where we may have a cached BlobLib that is not meant for production.
|
|
92
79
|
// Despite the profile apparently sometimes cached code remains (so says Lasse after his ignition-monorepo arc).
|
|
93
80
|
async function maybeForgeForceProductionBuild(l1ContractsPath: string, script: string, chainId: number) {
|
|
@@ -216,7 +203,6 @@ export async function deployAztecL1Contracts(
|
|
|
216
203
|
privateKey: `0x${string}`,
|
|
217
204
|
chainId: number,
|
|
218
205
|
args: DeployAztecL1ContractsArgs,
|
|
219
|
-
verifyContracts = false,
|
|
220
206
|
): Promise<DeployAztecL1ContractsReturnType> {
|
|
221
207
|
logger.info(`Deploying L1 contracts with config: ${jsonStringify(args)}`);
|
|
222
208
|
if (args.initialValidators && args.initialValidators.length > 0 && args.existingTokenAddress) {
|
|
@@ -260,101 +246,101 @@ export async function deployAztecL1Contracts(
|
|
|
260
246
|
const FORGE_SCRIPT = 'script/deploy/DeployAztecL1Contracts.s.sol';
|
|
261
247
|
await maybeForgeForceProductionBuild(l1ContractsPath, FORGE_SCRIPT, chainId);
|
|
262
248
|
|
|
263
|
-
//
|
|
264
|
-
const
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
FORGE_SCRIPT,
|
|
274
|
-
'--sig',
|
|
275
|
-
'run()',
|
|
276
|
-
'--private-key',
|
|
277
|
-
privateKey,
|
|
278
|
-
'--rpc-url',
|
|
279
|
-
rpcUrl,
|
|
280
|
-
'--broadcast',
|
|
281
|
-
...(chainId === foundry.id ? ['--batch-size', MAGIC_ANVIL_BATCH_SIZE.toString()] : []),
|
|
282
|
-
...(verifyContracts ? ['--verify'] : []),
|
|
283
|
-
];
|
|
284
|
-
const forgeEnv = {
|
|
285
|
-
// Protect against root leaving deployment files in docker that cannot be used later.
|
|
286
|
-
FOUNDRY_BROADCAST: process.getuid?.() === 0 ? 'broadcast-root' : tempCachePath,
|
|
287
|
-
// Env vars required by l1-contracts/script/deploy/DeploymentConfiguration.sol.
|
|
288
|
-
NETWORK: getActiveNetworkName(),
|
|
289
|
-
FOUNDRY_PROFILE: chainId === mainnet.id ? 'production' : undefined,
|
|
290
|
-
FOUNDRY_CACHE_PATH: tempCachePath,
|
|
291
|
-
...getDeployAztecL1ContractsEnvVars(args),
|
|
292
|
-
};
|
|
293
|
-
const result = await runProcess<ForgeL1ContractsDeployResult>('forge', forgeArgs, forgeEnv, l1ContractsPath);
|
|
294
|
-
if (!result) {
|
|
295
|
-
throw new Error('Forge script did not output deployment result');
|
|
296
|
-
}
|
|
297
|
-
logger.info(`Deployed L1 contracts with L1 addresses: ${jsonStringify(result)}`);
|
|
249
|
+
// Verify contracts on Etherscan when on mainnet/sepolia and ETHERSCAN_API_KEY is available.
|
|
250
|
+
const isVerifiableChain = chainId === mainnet.id || chainId === sepolia.id;
|
|
251
|
+
const shouldVerify = isVerifiableChain && !!process.env.ETHERSCAN_API_KEY;
|
|
252
|
+
|
|
253
|
+
if (isVerifiableChain && !process.env.ETHERSCAN_API_KEY) {
|
|
254
|
+
logger.warn(
|
|
255
|
+
`Deploying to chain ${chainId} (${chainId === mainnet.id ? 'mainnet' : 'sepolia'}) without ETHERSCAN_API_KEY. ` +
|
|
256
|
+
`Contracts will NOT be verified on Etherscan. Set ETHERSCAN_API_KEY environment variable to enable verification.`,
|
|
257
|
+
);
|
|
258
|
+
}
|
|
298
259
|
|
|
299
|
-
|
|
260
|
+
// From heuristic testing. More caused issues with anvil.
|
|
261
|
+
const MAGIC_ANVIL_BATCH_SIZE = 12;
|
|
262
|
+
// Anvil seems to stall with unbounded batch size. Otherwise no max batch size is desirable.
|
|
263
|
+
const forgeArgs = [
|
|
264
|
+
'script',
|
|
265
|
+
FORGE_SCRIPT,
|
|
266
|
+
'--sig',
|
|
267
|
+
'run()',
|
|
268
|
+
'--private-key',
|
|
269
|
+
privateKey,
|
|
270
|
+
'--rpc-url',
|
|
271
|
+
rpcUrl,
|
|
272
|
+
'--broadcast',
|
|
273
|
+
...(chainId === foundry.id ? ['--batch-size', MAGIC_ANVIL_BATCH_SIZE.toString()] : []),
|
|
274
|
+
...(shouldVerify ? ['--verify'] : []),
|
|
275
|
+
];
|
|
276
|
+
const forgeEnv = {
|
|
277
|
+
// Env vars required by l1-contracts/script/deploy/DeploymentConfiguration.sol.
|
|
278
|
+
NETWORK: getActiveNetworkName(),
|
|
279
|
+
FOUNDRY_PROFILE: chainId === mainnet.id ? 'production' : undefined,
|
|
280
|
+
...getDeployAztecL1ContractsEnvVars(args),
|
|
281
|
+
};
|
|
282
|
+
const result = await runProcess<ForgeL1ContractsDeployResult>('forge', forgeArgs, forgeEnv, l1ContractsPath);
|
|
283
|
+
if (!result) {
|
|
284
|
+
throw new Error('Forge script did not output deployment result');
|
|
285
|
+
}
|
|
286
|
+
logger.info(`Deployed L1 contracts with L1 addresses: ${jsonStringify(result)}`);
|
|
300
287
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
288
|
+
const rollup = new RollupContract(l1Client, result.rollupAddress);
|
|
289
|
+
|
|
290
|
+
if (isAnvilTestChain(chainId)) {
|
|
291
|
+
// @note We make a time jump PAST the very first slot to not have to deal with the edge case of the first slot.
|
|
292
|
+
// The edge case being that the genesis block is already occupying slot 0, so we cannot have another block.
|
|
293
|
+
try {
|
|
294
|
+
// Need to get the time
|
|
295
|
+
const currentSlot = await rollup.getSlotNumber();
|
|
307
296
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
297
|
+
if (currentSlot === 0) {
|
|
298
|
+
const ts = Number(await rollup.getTimestampForSlot(SlotNumber(1)));
|
|
299
|
+
await rpcCall('evm_setNextBlockTimestamp', [ts]);
|
|
300
|
+
await rpcCall('hardhat_mine', [1]);
|
|
301
|
+
const currentSlot = await rollup.getSlotNumber();
|
|
313
302
|
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
}
|
|
317
|
-
logger.info(`Jumped to slot 1`);
|
|
303
|
+
if (currentSlot !== 1) {
|
|
304
|
+
throw new Error(`Error jumping time: current slot is ${currentSlot}`);
|
|
318
305
|
}
|
|
319
|
-
|
|
320
|
-
throw new Error(`Error jumping time: ${e}`);
|
|
306
|
+
logger.info(`Jumped to slot 1`);
|
|
321
307
|
}
|
|
308
|
+
} catch (e) {
|
|
309
|
+
throw new Error(`Error jumping time: ${e}`);
|
|
322
310
|
}
|
|
323
|
-
|
|
324
|
-
return {
|
|
325
|
-
l1Client,
|
|
326
|
-
rollupVersion: result.rollupVersion,
|
|
327
|
-
l1ContractAddresses: {
|
|
328
|
-
rollupAddress: EthAddress.fromString(result.rollupAddress),
|
|
329
|
-
registryAddress: EthAddress.fromString(result.registryAddress),
|
|
330
|
-
inboxAddress: EthAddress.fromString(result.inboxAddress),
|
|
331
|
-
outboxAddress: EthAddress.fromString(result.outboxAddress),
|
|
332
|
-
feeJuiceAddress: EthAddress.fromString(result.feeAssetAddress),
|
|
333
|
-
feeJuicePortalAddress: EthAddress.fromString(result.feeJuicePortalAddress),
|
|
334
|
-
coinIssuerAddress: EthAddress.fromString(result.coinIssuerAddress),
|
|
335
|
-
rewardDistributorAddress: EthAddress.fromString(result.rewardDistributorAddress),
|
|
336
|
-
governanceProposerAddress: EthAddress.fromString(result.governanceProposerAddress),
|
|
337
|
-
governanceAddress: EthAddress.fromString(result.governanceAddress),
|
|
338
|
-
stakingAssetAddress: EthAddress.fromString(result.stakingAssetAddress),
|
|
339
|
-
slashFactoryAddress: result.slashFactoryAddress ? EthAddress.fromString(result.slashFactoryAddress) : undefined,
|
|
340
|
-
feeAssetHandlerAddress: result.feeAssetHandlerAddress
|
|
341
|
-
? EthAddress.fromString(result.feeAssetHandlerAddress)
|
|
342
|
-
: undefined,
|
|
343
|
-
stakingAssetHandlerAddress: result.stakingAssetHandlerAddress
|
|
344
|
-
? EthAddress.fromString(result.stakingAssetHandlerAddress)
|
|
345
|
-
: undefined,
|
|
346
|
-
zkPassportVerifierAddress: result.zkPassportVerifierAddress
|
|
347
|
-
? EthAddress.fromString(result.zkPassportVerifierAddress)
|
|
348
|
-
: undefined,
|
|
349
|
-
gseAddress: result.gseAddress ? EthAddress.fromString(result.gseAddress) : undefined,
|
|
350
|
-
dateGatedRelayerAddress: result.dateGatedRelayerAddress
|
|
351
|
-
? EthAddress.fromString(result.dateGatedRelayerAddress)
|
|
352
|
-
: undefined,
|
|
353
|
-
},
|
|
354
|
-
};
|
|
355
|
-
} finally {
|
|
356
|
-
await rm(tempCachePath, { recursive: true, force: true });
|
|
357
311
|
}
|
|
312
|
+
|
|
313
|
+
return {
|
|
314
|
+
l1Client,
|
|
315
|
+
rollupVersion: result.rollupVersion,
|
|
316
|
+
l1ContractAddresses: {
|
|
317
|
+
rollupAddress: EthAddress.fromString(result.rollupAddress),
|
|
318
|
+
registryAddress: EthAddress.fromString(result.registryAddress),
|
|
319
|
+
inboxAddress: EthAddress.fromString(result.inboxAddress),
|
|
320
|
+
outboxAddress: EthAddress.fromString(result.outboxAddress),
|
|
321
|
+
feeJuiceAddress: EthAddress.fromString(result.feeAssetAddress),
|
|
322
|
+
feeJuicePortalAddress: EthAddress.fromString(result.feeJuicePortalAddress),
|
|
323
|
+
coinIssuerAddress: EthAddress.fromString(result.coinIssuerAddress),
|
|
324
|
+
rewardDistributorAddress: EthAddress.fromString(result.rewardDistributorAddress),
|
|
325
|
+
governanceProposerAddress: EthAddress.fromString(result.governanceProposerAddress),
|
|
326
|
+
governanceAddress: EthAddress.fromString(result.governanceAddress),
|
|
327
|
+
stakingAssetAddress: EthAddress.fromString(result.stakingAssetAddress),
|
|
328
|
+
slashFactoryAddress: result.slashFactoryAddress ? EthAddress.fromString(result.slashFactoryAddress) : undefined,
|
|
329
|
+
feeAssetHandlerAddress: result.feeAssetHandlerAddress
|
|
330
|
+
? EthAddress.fromString(result.feeAssetHandlerAddress)
|
|
331
|
+
: undefined,
|
|
332
|
+
stakingAssetHandlerAddress: result.stakingAssetHandlerAddress
|
|
333
|
+
? EthAddress.fromString(result.stakingAssetHandlerAddress)
|
|
334
|
+
: undefined,
|
|
335
|
+
zkPassportVerifierAddress: result.zkPassportVerifierAddress
|
|
336
|
+
? EthAddress.fromString(result.zkPassportVerifierAddress)
|
|
337
|
+
: undefined,
|
|
338
|
+
gseAddress: result.gseAddress ? EthAddress.fromString(result.gseAddress) : undefined,
|
|
339
|
+
dateGatedRelayerAddress: result.dateGatedRelayerAddress
|
|
340
|
+
? EthAddress.fromString(result.dateGatedRelayerAddress)
|
|
341
|
+
: undefined,
|
|
342
|
+
},
|
|
343
|
+
};
|
|
358
344
|
}
|
|
359
345
|
|
|
360
346
|
export const DEPLOYER_ADDRESS: Hex = '0x4e59b44847b379578588920cA78FbF26c0B4956C';
|
|
@@ -534,46 +520,37 @@ export const deployRollupForUpgrade = async (
|
|
|
534
520
|
const FORGE_SCRIPT = 'script/deploy/DeployRollupForUpgrade.s.sol';
|
|
535
521
|
await maybeForgeForceProductionBuild(l1ContractsPath, FORGE_SCRIPT, chainId);
|
|
536
522
|
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
REGISTRY_ADDRESS: registryAddress.toString(),
|
|
556
|
-
NETWORK: getActiveNetworkName(),
|
|
557
|
-
FOUNDRY_CACHE_PATH: tempCachePath,
|
|
558
|
-
FOUNDRY_BROADCAST: tempCachePath,
|
|
559
|
-
...getDeployRollupForUpgradeEnvVars(args),
|
|
560
|
-
};
|
|
561
|
-
|
|
562
|
-
const result = await runProcess<ForgeRollupUpgradeResult>('forge', forgeArgs, forgeEnv, l1ContractsPath);
|
|
563
|
-
if (!result) {
|
|
564
|
-
throw new Error('Forge script did not output deployment result');
|
|
565
|
-
}
|
|
523
|
+
const forgeArgs = [
|
|
524
|
+
'script',
|
|
525
|
+
FORGE_SCRIPT,
|
|
526
|
+
'--sig',
|
|
527
|
+
'run()',
|
|
528
|
+
'--private-key',
|
|
529
|
+
privateKey,
|
|
530
|
+
'--rpc-url',
|
|
531
|
+
rpcUrl,
|
|
532
|
+
'--broadcast',
|
|
533
|
+
];
|
|
534
|
+
const forgeEnv = {
|
|
535
|
+
FOUNDRY_PROFILE: chainId === mainnet.id ? 'production' : undefined,
|
|
536
|
+
// Env vars required by l1-contracts/script/deploy/RollupConfiguration.sol.
|
|
537
|
+
REGISTRY_ADDRESS: registryAddress.toString(),
|
|
538
|
+
NETWORK: getActiveNetworkName(),
|
|
539
|
+
...getDeployRollupForUpgradeEnvVars(args),
|
|
540
|
+
};
|
|
566
541
|
|
|
567
|
-
|
|
542
|
+
const result = await runProcess<ForgeRollupUpgradeResult>('forge', forgeArgs, forgeEnv, l1ContractsPath);
|
|
543
|
+
if (!result) {
|
|
544
|
+
throw new Error('Forge script did not output deployment result');
|
|
545
|
+
}
|
|
568
546
|
|
|
569
|
-
|
|
570
|
-
const rollup = new RollupContract(extendedClient, result.rollupAddress);
|
|
547
|
+
const extendedClient = createExtendedL1Client([rpcUrl], privateKey);
|
|
571
548
|
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
}
|
|
549
|
+
// Create RollupContract wrapper for the deployed rollup
|
|
550
|
+
const rollup = new RollupContract(extendedClient, result.rollupAddress);
|
|
551
|
+
|
|
552
|
+
return {
|
|
553
|
+
rollup,
|
|
554
|
+
slashFactoryAddress: result.slashFactoryAddress,
|
|
555
|
+
};
|
|
579
556
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getKeys, merge, pick, times } from '@aztec/foundation/collection';
|
|
2
|
+
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
3
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
3
4
|
import { makeBackoff, retry } from '@aztec/foundation/retry';
|
|
4
5
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
@@ -11,6 +12,7 @@ import {
|
|
|
11
12
|
type BaseError,
|
|
12
13
|
type BlockOverrides,
|
|
13
14
|
type ContractFunctionExecutionError,
|
|
15
|
+
type GetCodeReturnType,
|
|
14
16
|
type Hex,
|
|
15
17
|
MethodNotFoundRpcError,
|
|
16
18
|
MethodNotSupportedRpcError,
|
|
@@ -67,6 +69,10 @@ export class ReadOnlyL1TxUtils {
|
|
|
67
69
|
return this.client.getBlockNumber();
|
|
68
70
|
}
|
|
69
71
|
|
|
72
|
+
public getCode(address: EthAddress): Promise<GetCodeReturnType> {
|
|
73
|
+
return this.client.getCode({ address: address.toString() });
|
|
74
|
+
}
|
|
75
|
+
|
|
70
76
|
/**
|
|
71
77
|
* Gets the current gas price with bounds checking
|
|
72
78
|
*/
|