@aztec/ethereum 3.0.0-canary.a9708bd → 3.0.0-devnet.2
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/client.d.ts +1 -1
- package/dest/client.d.ts.map +1 -1
- package/dest/config.d.ts +11 -6
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +124 -64
- package/dest/contracts/empire_base.d.ts +1 -1
- package/dest/contracts/empire_base.d.ts.map +1 -1
- package/dest/contracts/empire_slashing_proposer.d.ts +2 -2
- package/dest/contracts/empire_slashing_proposer.d.ts.map +1 -1
- package/dest/contracts/empire_slashing_proposer.js +1 -1
- package/dest/contracts/fee_asset_handler.d.ts +3 -3
- package/dest/contracts/fee_asset_handler.d.ts.map +1 -1
- package/dest/contracts/governance.js +7 -3
- package/dest/contracts/governance_proposer.d.ts +1 -2
- package/dest/contracts/governance_proposer.d.ts.map +1 -1
- package/dest/contracts/governance_proposer.js +1 -2
- package/dest/contracts/multicall.d.ts +3 -5
- package/dest/contracts/multicall.d.ts.map +1 -1
- package/dest/contracts/multicall.js +6 -4
- package/dest/contracts/rollup.d.ts +39 -19
- package/dest/contracts/rollup.d.ts.map +1 -1
- package/dest/contracts/rollup.js +84 -88
- package/dest/contracts/slasher_contract.d.ts +10 -0
- package/dest/contracts/slasher_contract.d.ts.map +1 -1
- package/dest/contracts/slasher_contract.js +18 -0
- package/dest/contracts/tally_slashing_proposer.d.ts +22 -3
- package/dest/contracts/tally_slashing_proposer.d.ts.map +1 -1
- package/dest/contracts/tally_slashing_proposer.js +55 -5
- package/dest/deploy_l1_contracts.d.ts +22 -7
- package/dest/deploy_l1_contracts.d.ts.map +1 -1
- package/dest/deploy_l1_contracts.js +555 -362
- package/dest/index.d.ts +1 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -1
- package/dest/l1_artifacts.d.ts +8729 -6014
- package/dest/l1_artifacts.d.ts.map +1 -1
- package/dest/l1_artifacts.js +10 -5
- package/dest/l1_contract_addresses.d.ts +5 -1
- package/dest/l1_contract_addresses.d.ts.map +1 -1
- package/dest/l1_contract_addresses.js +16 -26
- package/dest/l1_reader.d.ts +1 -1
- package/dest/l1_reader.d.ts.map +1 -1
- package/dest/l1_reader.js +8 -8
- package/dest/l1_tx_utils/config.d.ts +59 -0
- package/dest/l1_tx_utils/config.d.ts.map +1 -0
- package/dest/l1_tx_utils/config.js +73 -0
- package/dest/l1_tx_utils/constants.d.ts +6 -0
- package/dest/l1_tx_utils/constants.d.ts.map +1 -0
- package/dest/l1_tx_utils/constants.js +14 -0
- package/dest/l1_tx_utils/factory.d.ts +24 -0
- package/dest/l1_tx_utils/factory.d.ts.map +1 -0
- package/dest/l1_tx_utils/factory.js +12 -0
- package/dest/l1_tx_utils/index.d.ts +10 -0
- package/dest/l1_tx_utils/index.d.ts.map +1 -0
- package/dest/l1_tx_utils/index.js +10 -0
- package/dest/l1_tx_utils/interfaces.d.ts +76 -0
- package/dest/l1_tx_utils/interfaces.d.ts.map +1 -0
- package/dest/l1_tx_utils/interfaces.js +4 -0
- package/dest/l1_tx_utils/l1_tx_utils.d.ts +95 -0
- package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -0
- package/dest/l1_tx_utils/l1_tx_utils.js +610 -0
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts +26 -0
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts.map +1 -0
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.js +26 -0
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +81 -0
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -0
- package/dest/l1_tx_utils/readonly_l1_tx_utils.js +294 -0
- package/dest/l1_tx_utils/signer.d.ts +4 -0
- package/dest/l1_tx_utils/signer.d.ts.map +1 -0
- package/dest/l1_tx_utils/signer.js +16 -0
- package/dest/l1_tx_utils/types.d.ts +67 -0
- package/dest/l1_tx_utils/types.d.ts.map +1 -0
- package/dest/l1_tx_utils/types.js +26 -0
- package/dest/l1_tx_utils/utils.d.ts +4 -0
- package/dest/l1_tx_utils/utils.d.ts.map +1 -0
- package/dest/l1_tx_utils/utils.js +14 -0
- package/dest/publisher_manager.d.ts +7 -2
- package/dest/publisher_manager.d.ts.map +1 -1
- package/dest/publisher_manager.js +36 -8
- package/dest/queries.d.ts.map +1 -1
- package/dest/queries.js +11 -12
- package/dest/test/chain_monitor.d.ts +11 -0
- package/dest/test/chain_monitor.d.ts.map +1 -1
- package/dest/test/chain_monitor.js +81 -12
- package/dest/test/delayed_tx_utils.d.ts +2 -2
- package/dest/test/delayed_tx_utils.d.ts.map +1 -1
- package/dest/test/delayed_tx_utils.js +2 -2
- package/dest/test/eth_cheat_codes.d.ts +32 -6
- package/dest/test/eth_cheat_codes.d.ts.map +1 -1
- package/dest/test/eth_cheat_codes.js +115 -28
- package/dest/test/rollup_cheat_codes.d.ts +11 -9
- package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
- package/dest/test/rollup_cheat_codes.js +38 -6
- package/dest/test/upgrade_utils.d.ts.map +1 -1
- package/dest/test/upgrade_utils.js +3 -2
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +10 -161
- package/dest/zkPassportVerifierAddress.js +1 -1
- package/package.json +7 -7
- package/src/client.ts +1 -1
- package/src/config.ts +136 -68
- package/src/contracts/empire_base.ts +1 -1
- package/src/contracts/empire_slashing_proposer.ts +7 -3
- package/src/contracts/fee_asset_handler.ts +1 -1
- package/src/contracts/governance.ts +3 -3
- package/src/contracts/governance_proposer.ts +3 -4
- package/src/contracts/multicall.ts +12 -10
- package/src/contracts/rollup.ts +104 -106
- package/src/contracts/slasher_contract.ts +22 -0
- package/src/contracts/tally_slashing_proposer.ts +54 -6
- package/src/deploy_l1_contracts.ts +570 -328
- package/src/index.ts +1 -1
- package/src/l1_artifacts.ts +14 -6
- package/src/l1_contract_addresses.ts +17 -26
- package/src/l1_reader.ts +9 -9
- package/src/l1_tx_utils/README.md +177 -0
- package/src/l1_tx_utils/config.ts +140 -0
- package/src/l1_tx_utils/constants.ts +18 -0
- package/src/l1_tx_utils/factory.ts +64 -0
- package/src/l1_tx_utils/index.ts +12 -0
- package/src/l1_tx_utils/interfaces.ts +86 -0
- package/src/l1_tx_utils/l1_tx_utils.ts +718 -0
- package/src/l1_tx_utils/l1_tx_utils_with_blobs.ts +77 -0
- package/src/l1_tx_utils/readonly_l1_tx_utils.ts +372 -0
- package/src/l1_tx_utils/signer.ts +28 -0
- package/src/l1_tx_utils/types.ts +85 -0
- package/src/l1_tx_utils/utils.ts +16 -0
- package/src/publisher_manager.ts +51 -9
- package/src/queries.ts +13 -8
- package/src/test/chain_monitor.ts +89 -9
- package/src/test/delayed_tx_utils.ts +2 -2
- package/src/test/eth_cheat_codes.ts +142 -29
- package/src/test/rollup_cheat_codes.ts +54 -14
- package/src/test/upgrade_utils.ts +3 -2
- package/src/utils.ts +13 -185
- package/src/zkPassportVerifierAddress.ts +1 -1
- package/dest/l1_tx_utils.d.ts +0 -250
- package/dest/l1_tx_utils.d.ts.map +0 -1
- package/dest/l1_tx_utils.js +0 -826
- package/dest/l1_tx_utils_with_blobs.d.ts +0 -19
- package/dest/l1_tx_utils_with_blobs.d.ts.map +0 -1
- package/dest/l1_tx_utils_with_blobs.js +0 -85
- package/src/l1_tx_utils.ts +0 -1105
- package/src/l1_tx_utils_with_blobs.ts +0 -144
|
@@ -2,18 +2,19 @@ import { tryExtractEvent } from '@aztec/ethereum';
|
|
|
2
2
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
3
3
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
4
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
5
|
+
import { hexToBuffer } from '@aztec/foundation/string';
|
|
5
6
|
import { TallySlashingProposerAbi } from '@aztec/l1-artifacts/TallySlashingProposerAbi';
|
|
6
|
-
import EventEmitter from 'events';
|
|
7
7
|
import { encodeFunctionData, getContract } from 'viem';
|
|
8
8
|
/**
|
|
9
9
|
* Wrapper around the TallySlashingProposer contract that provides
|
|
10
10
|
* a TypeScript interface for interacting with the consensus-based slashing system.
|
|
11
|
-
*/ export class TallySlashingProposerContract
|
|
11
|
+
*/ export class TallySlashingProposerContract {
|
|
12
12
|
client;
|
|
13
13
|
contract;
|
|
14
14
|
type;
|
|
15
15
|
constructor(client, address){
|
|
16
|
-
|
|
16
|
+
this.client = client;
|
|
17
|
+
this.type = 'tally';
|
|
17
18
|
this.contract = getContract({
|
|
18
19
|
address: typeof address === 'string' ? address : address.toString(),
|
|
19
20
|
abi: TallySlashingProposerAbi,
|
|
@@ -59,15 +60,25 @@ import { encodeFunctionData, getContract } from 'viem';
|
|
|
59
60
|
* @param round - The round number to query
|
|
60
61
|
* @returns Round status information
|
|
61
62
|
*/ async getRound(round) {
|
|
62
|
-
const [isExecuted,
|
|
63
|
+
const [isExecuted, voteCount] = await this.contract.read.getRound([
|
|
63
64
|
round
|
|
64
65
|
]);
|
|
65
66
|
return {
|
|
66
67
|
isExecuted,
|
|
67
|
-
readyToExecute,
|
|
68
68
|
voteCount
|
|
69
69
|
};
|
|
70
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Check if a round is ready to execute at a given slot
|
|
73
|
+
* @param round - The round number to check
|
|
74
|
+
* @param slot - The slot number to check at
|
|
75
|
+
* @returns Whether the round is ready to execute
|
|
76
|
+
*/ async isRoundReadyToExecute(round, slot) {
|
|
77
|
+
return await this.contract.read.isRoundReadyToExecute([
|
|
78
|
+
round,
|
|
79
|
+
slot
|
|
80
|
+
]);
|
|
81
|
+
}
|
|
71
82
|
/** Returns the slash actions and payload address for a given round (zero if no slash actions) */ async getPayload(round) {
|
|
72
83
|
const { result: committees } = await this.contract.simulate.getSlashTargetCommittees([
|
|
73
84
|
round
|
|
@@ -221,6 +232,22 @@ import { encodeFunctionData, getContract } from 'viem';
|
|
|
221
232
|
})
|
|
222
233
|
};
|
|
223
234
|
}
|
|
235
|
+
/** Returns the last vote emitted for a given round */ async getLastVote(round) {
|
|
236
|
+
const { voteCount } = await this.getRound(round);
|
|
237
|
+
const validators = (await this.contract.simulate.getSlashTargetCommittees([
|
|
238
|
+
round
|
|
239
|
+
])).result.flat();
|
|
240
|
+
const vote = await this.contract.read.getVotes([
|
|
241
|
+
round,
|
|
242
|
+
voteCount - 1n
|
|
243
|
+
]);
|
|
244
|
+
const decoded = decodeSlashConsensusVotes(hexToBuffer(vote));
|
|
245
|
+
const slashAmounts = await this.getSlashingAmounts();
|
|
246
|
+
return decoded.map((units, i)=>({
|
|
247
|
+
validator: EthAddress.fromString(validators[i]),
|
|
248
|
+
slashAmount: slashAmounts[units - 1] ?? 0n
|
|
249
|
+
})).filter((v)=>v.slashAmount > 0n);
|
|
250
|
+
}
|
|
224
251
|
/**
|
|
225
252
|
* Listen for VoteCast events
|
|
226
253
|
* @param callback - Callback function to handle vote cast events
|
|
@@ -261,3 +288,26 @@ import { encodeFunctionData, getContract } from 'viem';
|
|
|
261
288
|
});
|
|
262
289
|
}
|
|
263
290
|
}
|
|
291
|
+
/**
|
|
292
|
+
* Decodes a Buffer containing slash votes back into an array of numbers.
|
|
293
|
+
* Each vote is represented as a 2-bit value (0, 1, 2, or 3) representing slashing units.
|
|
294
|
+
* @dev This should live in stdlib next to encodeSlashConsensusVotes but is here since we
|
|
295
|
+
* do not have a dependency to stdlib from the ethereum package. We need a larger refactor to fix this.
|
|
296
|
+
* @param buffer - The Buffer containing encoded slash votes
|
|
297
|
+
* @returns An array of numbers representing the slash votes
|
|
298
|
+
*/ export function decodeSlashConsensusVotes(buffer) {
|
|
299
|
+
const votes = [];
|
|
300
|
+
for(let i = 0; i < buffer.length; i++){
|
|
301
|
+
const voteByte = buffer.readUInt8(i);
|
|
302
|
+
// Decode votes from Solidity's bit order (LSB to MSB)
|
|
303
|
+
// Bits 0-1: validator at index i*4
|
|
304
|
+
// Bits 2-3: validator at index i*4+1
|
|
305
|
+
// Bits 4-5: validator at index i*4+2
|
|
306
|
+
// Bits 6-7: validator at index i*4+3
|
|
307
|
+
votes.push(voteByte >> 0 & 0x03);
|
|
308
|
+
votes.push(voteByte >> 2 & 0x03);
|
|
309
|
+
votes.push(voteByte >> 4 & 0x03);
|
|
310
|
+
votes.push(voteByte >> 6 & 0x03);
|
|
311
|
+
}
|
|
312
|
+
return votes;
|
|
313
|
+
}
|
|
@@ -8,7 +8,7 @@ import { type Chain, type ContractConstructorArgs, type HDAccount, type Hex, typ
|
|
|
8
8
|
import { type L1ContractsConfig } from './config.js';
|
|
9
9
|
import { RollupContract } from './contracts/rollup.js';
|
|
10
10
|
import type { L1ContractAddresses } from './l1_contract_addresses.js';
|
|
11
|
-
import { type GasPrice, type
|
|
11
|
+
import { type GasPrice, type L1TxConfig, type L1TxRequest, L1TxUtils, type L1TxUtilsConfig } from './l1_tx_utils/index.js';
|
|
12
12
|
import type { ExtendedViemWalletClient } from './types.js';
|
|
13
13
|
export declare const DEPLOYER_ADDRESS: Hex;
|
|
14
14
|
export type Operator = {
|
|
@@ -74,8 +74,8 @@ export type VerificationRecord = {
|
|
|
74
74
|
export interface DeployL1ContractsArgs extends Omit<L1ContractsConfig, keyof L1TxUtilsConfig> {
|
|
75
75
|
/** The vk tree root. */
|
|
76
76
|
vkTreeRoot: Fr;
|
|
77
|
-
/** The
|
|
78
|
-
|
|
77
|
+
/** The hash of the protocol contracts. */
|
|
78
|
+
protocolContractsHash: Fr;
|
|
79
79
|
/** The genesis root of the archive tree. */
|
|
80
80
|
genesisArchiveRoot: Fr;
|
|
81
81
|
/** The salt for CREATE2 deployment. */
|
|
@@ -92,6 +92,8 @@ export interface DeployL1ContractsArgs extends Omit<L1ContractsConfig, keyof L1T
|
|
|
92
92
|
realVerifier: boolean;
|
|
93
93
|
/** The zk passport args */
|
|
94
94
|
zkPassportArgs?: ZKPassportArgs;
|
|
95
|
+
/** If provided, use this token for BOTH fee and staking assets (skip deployments) */
|
|
96
|
+
existingTokenAddress?: EthAddress;
|
|
95
97
|
}
|
|
96
98
|
export interface ZKPassportArgs {
|
|
97
99
|
/** Whether to use the mock zk passport verifier */
|
|
@@ -101,6 +103,12 @@ export interface ZKPassportArgs {
|
|
|
101
103
|
/** The scope of the zk passport (personhood, etc) */
|
|
102
104
|
zkPassportScope?: string;
|
|
103
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Validates that the provided address points to a contract that resembles an ERC20 token.
|
|
108
|
+
* Checks for contract code and attempts common ERC20 view calls.
|
|
109
|
+
* Throws an error if validation fails.
|
|
110
|
+
*/
|
|
111
|
+
export declare function validateExistingErc20TokenAddress(l1Client: ExtendedViemWalletClient, tokenAddress: EthAddress, logger: Logger): Promise<void>;
|
|
104
112
|
export declare const deploySharedContracts: (l1Client: ExtendedViemWalletClient, deployer: L1Deployer, args: DeployL1ContractsArgs, logger: Logger) => Promise<{
|
|
105
113
|
feeAssetAddress: EthAddress;
|
|
106
114
|
feeAssetHandlerAddress: EthAddress | undefined;
|
|
@@ -121,8 +129,9 @@ export declare const deploySharedContracts: (l1Client: ExtendedViemWalletClient,
|
|
|
121
129
|
* @param registryAddress - The address of the registry.
|
|
122
130
|
* @param logger - The logger.
|
|
123
131
|
* @param txUtilsConfig - The L1 tx utils config.
|
|
132
|
+
* @param createVerificationJson - Optional path to write verification data for forge verify.
|
|
124
133
|
*/
|
|
125
|
-
export declare const deployRollupForUpgrade: (extendedClient: ExtendedViemWalletClient, args: Omit<DeployL1ContractsArgs, "governanceProposerQuorum" | "governanceProposerRoundSize" | "ejectionThreshold" | "activationThreshold">, registryAddress: EthAddress, logger: Logger, txUtilsConfig: L1TxUtilsConfig) => Promise<{
|
|
134
|
+
export declare const deployRollupForUpgrade: (extendedClient: ExtendedViemWalletClient, args: Omit<DeployL1ContractsArgs, "governanceProposerQuorum" | "governanceProposerRoundSize" | "ejectionThreshold" | "activationThreshold">, registryAddress: EthAddress, logger: Logger, txUtilsConfig: L1TxUtilsConfig, createVerificationJson?: string | false) => Promise<{
|
|
126
135
|
rollup: RollupContract;
|
|
127
136
|
slashFactoryAddress: EthAddress;
|
|
128
137
|
}>;
|
|
@@ -135,7 +144,9 @@ export declare const deployRollup: (extendedClient: ExtendedViemWalletClient, de
|
|
|
135
144
|
rollup: RollupContract;
|
|
136
145
|
slashFactoryAddress: EthAddress;
|
|
137
146
|
}>;
|
|
138
|
-
export declare const handoverToGovernance: (extendedClient: ExtendedViemWalletClient, deployer: L1Deployer, registryAddress: EthAddress, gseAddress: EthAddress, coinIssuerAddress: EthAddress, feeAssetAddress: EthAddress, governanceAddress: EthAddress, logger: Logger, acceleratedTestDeployments: boolean | undefined) => Promise<
|
|
147
|
+
export declare const handoverToGovernance: (extendedClient: ExtendedViemWalletClient, deployer: L1Deployer, registryAddress: EthAddress, gseAddress: EthAddress, coinIssuerAddress: EthAddress, feeAssetAddress: EthAddress, governanceAddress: EthAddress, logger: Logger, acceleratedTestDeployments: boolean | undefined, useExternalToken?: boolean) => Promise<{
|
|
148
|
+
dateGatedRelayerAddress: EthAddress;
|
|
149
|
+
}>;
|
|
139
150
|
export declare const addMultipleValidators: (extendedClient: ExtendedViemWalletClient, deployer: L1Deployer, gseAddress: Hex, rollupAddress: Hex, stakingAssetAddress: Hex, validators: Operator[], acceleratedTestDeployments: boolean | undefined, logger: Logger) => Promise<void>;
|
|
140
151
|
/**
|
|
141
152
|
* Initialize the fee asset handler and make it a minter on the fee asset.
|
|
@@ -173,9 +184,12 @@ export declare class L1Deployer {
|
|
|
173
184
|
constructor(client: ExtendedViemWalletClient, maybeSalt: number | undefined, dateProvider?: DateProvider, acceleratedTestDeployments?: boolean, logger?: Logger, txUtilsConfig?: L1TxUtilsConfig | undefined, createVerificationJson?: boolean);
|
|
174
185
|
deploy<const TAbi extends Abi>(params: ContractArtifacts<TAbi>, args?: ContractConstructorArgs<TAbi>, opts?: {
|
|
175
186
|
gasLimit?: bigint;
|
|
176
|
-
}): Promise<
|
|
187
|
+
}): Promise<{
|
|
188
|
+
address: EthAddress;
|
|
189
|
+
existed: boolean;
|
|
190
|
+
}>;
|
|
177
191
|
waitForDeployments(): Promise<void>;
|
|
178
|
-
sendTransaction(tx: L1TxRequest, options?:
|
|
192
|
+
sendTransaction(tx: L1TxRequest, options?: L1TxConfig): Promise<{
|
|
179
193
|
txHash: Hex;
|
|
180
194
|
gasLimit: bigint;
|
|
181
195
|
gasPrice: GasPrice;
|
|
@@ -202,6 +216,7 @@ export declare function deployL1Contract(extendedClient: ExtendedViemWalletClien
|
|
|
202
216
|
address: EthAddress;
|
|
203
217
|
txHash: Hex | undefined;
|
|
204
218
|
deployedLibraries?: VerificationLibraryEntry[];
|
|
219
|
+
existed: boolean;
|
|
205
220
|
}>;
|
|
206
221
|
export declare function getExpectedAddress(abi: Narrow<Abi | readonly unknown[]>, bytecode: Hex, args: readonly unknown[], salt: Hex): {
|
|
207
222
|
address: `0x${string}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy_l1_contracts.d.ts","sourceRoot":"","sources":["../src/deploy_l1_contracts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAwB,MAAM,0BAA0B,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy_l1_contracts.d.ts","sourceRoot":"","sources":["../src/deploy_l1_contracts.ts"],"names":[],"mappings":"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"}
|