@aztec/ethereum 4.0.0-nightly.20250907 → 4.0.0-nightly.20260107
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/account.d.ts +1 -1
- package/dest/chain.d.ts +1 -1
- package/dest/client.d.ts +2 -2
- package/dest/client.d.ts.map +1 -1
- package/dest/client.js +6 -2
- package/dest/config.d.ts +18 -46
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +40 -285
- package/dest/constants.d.ts +1 -1
- package/dest/contracts/empire_base.d.ts +8 -6
- package/dest/contracts/empire_base.d.ts.map +1 -1
- package/dest/contracts/empire_base.js +1 -1
- package/dest/contracts/empire_slashing_proposer.d.ts +8 -6
- package/dest/contracts/empire_slashing_proposer.d.ts.map +1 -1
- package/dest/contracts/empire_slashing_proposer.js +18 -3
- package/dest/contracts/errors.d.ts +1 -1
- package/dest/contracts/errors.d.ts.map +1 -1
- package/dest/contracts/fee_asset_handler.d.ts +4 -4
- package/dest/contracts/fee_asset_handler.d.ts.map +1 -1
- package/dest/contracts/fee_juice.d.ts +1 -1
- package/dest/contracts/fee_juice.d.ts.map +1 -1
- package/dest/contracts/governance.d.ts +16 -16
- package/dest/contracts/governance.d.ts.map +1 -1
- package/dest/contracts/governance.js +7 -3
- package/dest/contracts/governance_proposer.d.ts +7 -6
- package/dest/contracts/governance_proposer.d.ts.map +1 -1
- package/dest/contracts/governance_proposer.js +400 -12
- package/dest/contracts/gse.d.ts +1 -1
- package/dest/contracts/gse.d.ts.map +1 -1
- package/dest/contracts/inbox.d.ts +7 -3
- package/dest/contracts/inbox.d.ts.map +1 -1
- package/dest/contracts/inbox.js +4 -0
- package/dest/contracts/index.d.ts +1 -1
- package/dest/contracts/multicall.d.ts +5 -7
- package/dest/contracts/multicall.d.ts.map +1 -1
- package/dest/contracts/multicall.js +6 -4
- package/dest/contracts/registry.d.ts +1 -1
- package/dest/contracts/registry.d.ts.map +1 -1
- package/dest/contracts/rollup.d.ts +168 -117
- package/dest/contracts/rollup.d.ts.map +1 -1
- package/dest/contracts/rollup.js +712 -241
- package/dest/contracts/slasher_contract.d.ts +11 -1
- 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 +15 -7
- package/dest/contracts/tally_slashing_proposer.d.ts.map +1 -1
- package/dest/contracts/tally_slashing_proposer.js +15 -5
- package/dest/contracts/utils.d.ts +1 -1
- package/dest/deploy_aztec_l1_contracts.d.ts +247 -0
- package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -0
- package/dest/deploy_aztec_l1_contracts.js +336 -0
- package/dest/deploy_l1_contract.d.ts +68 -0
- package/dest/deploy_l1_contract.d.ts.map +1 -0
- package/dest/deploy_l1_contract.js +312 -0
- package/dest/eth-signer/eth-signer.d.ts +1 -1
- package/dest/eth-signer/index.d.ts +1 -1
- package/dest/forwarder_proxy.d.ts +32 -0
- package/dest/forwarder_proxy.d.ts.map +1 -0
- package/dest/forwarder_proxy.js +93 -0
- package/dest/l1_artifacts.d.ts +17698 -6245
- package/dest/l1_artifacts.d.ts.map +1 -1
- package/dest/l1_artifacts.js +10 -5
- package/dest/l1_contract_addresses.d.ts +8 -4
- package/dest/l1_contract_addresses.d.ts.map +1 -1
- package/dest/l1_contract_addresses.js +5 -4
- package/dest/l1_reader.d.ts +4 -2
- package/dest/l1_reader.d.ts.map +1 -1
- package/dest/l1_reader.js +7 -1
- 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 +96 -0
- package/dest/l1_tx_utils/constants.d.ts +12 -0
- package/dest/l1_tx_utils/constants.d.ts.map +1 -0
- package/dest/l1_tx_utils/constants.js +39 -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/fee-strategies/index.d.ts +10 -0
- package/dest/l1_tx_utils/fee-strategies/index.d.ts.map +1 -0
- package/dest/l1_tx_utils/fee-strategies/index.js +12 -0
- package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts +8 -0
- package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts.map +1 -0
- package/dest/l1_tx_utils/fee-strategies/p75_competitive.js +129 -0
- package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts +23 -0
- package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts.map +1 -0
- package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.js +191 -0
- package/dest/l1_tx_utils/fee-strategies/types.d.ts +51 -0
- package/dest/l1_tx_utils/fee-strategies/types.d.ts.map +1 -0
- package/dest/l1_tx_utils/fee-strategies/types.js +3 -0
- package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts +41 -0
- package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts.map +1 -0
- package/dest/l1_tx_utils/forwarder_l1_tx_utils.js +48 -0
- package/dest/l1_tx_utils/index-blobs.d.ts +3 -0
- package/dest/l1_tx_utils/index-blobs.d.ts.map +1 -0
- package/dest/l1_tx_utils/index-blobs.js +2 -0
- package/dest/l1_tx_utils/index.d.ts +12 -0
- package/dest/l1_tx_utils/index.d.ts.map +1 -0
- package/dest/l1_tx_utils/index.js +12 -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_fee_analyzer.d.ts +233 -0
- package/dest/l1_tx_utils/l1_fee_analyzer.d.ts.map +1 -0
- package/dest/l1_tx_utils/l1_fee_analyzer.js +506 -0
- package/dest/l1_tx_utils/l1_tx_utils.d.ts +94 -0
- package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -0
- package/dest/l1_tx_utils/l1_tx_utils.js +623 -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 +83 -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 +323 -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/l1_types.d.ts +1 -1
- package/dest/publisher_manager.d.ts +8 -3
- package/dest/publisher_manager.d.ts.map +1 -1
- package/dest/publisher_manager.js +36 -8
- package/dest/queries.d.ts +1 -1
- package/dest/queries.d.ts.map +1 -1
- package/dest/queries.js +20 -14
- package/dest/test/chain_monitor.d.ts +29 -22
- package/dest/test/chain_monitor.d.ts.map +1 -1
- package/dest/test/chain_monitor.js +81 -38
- package/dest/test/delayed_tx_utils.d.ts +3 -3
- 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 +36 -14
- package/dest/test/eth_cheat_codes.d.ts.map +1 -1
- package/dest/test/eth_cheat_codes.js +126 -31
- package/dest/test/eth_cheat_codes_with_state.d.ts +1 -1
- package/dest/test/eth_cheat_codes_with_state.d.ts.map +1 -1
- package/dest/test/index.d.ts +1 -1
- package/dest/test/rollup_cheat_codes.d.ts +23 -20
- package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
- package/dest/test/rollup_cheat_codes.js +82 -43
- package/dest/test/start_anvil.d.ts +4 -1
- package/dest/test/start_anvil.d.ts.map +1 -1
- package/dest/test/start_anvil.js +2 -1
- package/dest/test/tx_delayer.d.ts +1 -1
- package/dest/test/tx_delayer.d.ts.map +1 -1
- package/dest/test/tx_delayer.js +4 -3
- package/dest/test/upgrade_utils.d.ts +1 -1
- package/dest/test/upgrade_utils.d.ts.map +1 -1
- package/dest/test/upgrade_utils.js +3 -2
- package/dest/types.d.ts +57 -2
- package/dest/types.d.ts.map +1 -1
- package/dest/utils.d.ts +15 -3
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +28 -161
- package/dest/zkPassportVerifierAddress.d.ts +1 -1
- package/dest/zkPassportVerifierAddress.js +1 -1
- package/package.json +33 -14
- package/src/client.ts +3 -3
- package/src/config.ts +49 -358
- package/src/contracts/empire_base.ts +7 -6
- package/src/contracts/empire_slashing_proposer.ts +23 -8
- package/src/contracts/fee_asset_handler.ts +1 -1
- package/src/contracts/governance.ts +3 -3
- package/src/contracts/governance_proposer.ts +19 -9
- package/src/contracts/inbox.ts +7 -2
- package/src/contracts/multicall.ts +12 -10
- package/src/contracts/rollup.ts +373 -235
- package/src/contracts/slasher_contract.ts +22 -0
- package/src/contracts/tally_slashing_proposer.ts +21 -9
- package/src/deploy_aztec_l1_contracts.ts +557 -0
- package/src/deploy_l1_contract.ts +362 -0
- package/src/forwarder_proxy.ts +108 -0
- package/src/l1_artifacts.ts +14 -6
- package/src/l1_contract_addresses.ts +24 -20
- package/src/l1_reader.ts +10 -2
- package/src/l1_tx_utils/README.md +177 -0
- package/src/l1_tx_utils/config.ts +161 -0
- package/src/l1_tx_utils/constants.ts +29 -0
- package/src/l1_tx_utils/factory.ts +64 -0
- package/src/l1_tx_utils/fee-strategies/index.ts +22 -0
- package/src/l1_tx_utils/fee-strategies/p75_competitive.ts +163 -0
- package/src/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.ts +245 -0
- package/src/l1_tx_utils/fee-strategies/types.ts +56 -0
- package/src/l1_tx_utils/forwarder_l1_tx_utils.ts +119 -0
- package/src/l1_tx_utils/index-blobs.ts +2 -0
- package/src/l1_tx_utils/index.ts +14 -0
- package/src/l1_tx_utils/interfaces.ts +86 -0
- package/src/l1_tx_utils/l1_fee_analyzer.ts +803 -0
- package/src/l1_tx_utils/l1_tx_utils.ts +738 -0
- package/src/l1_tx_utils/l1_tx_utils_with_blobs.ts +77 -0
- package/src/l1_tx_utils/readonly_l1_tx_utils.ts +419 -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 +24 -10
- package/src/test/chain_monitor.ts +102 -44
- package/src/test/delayed_tx_utils.ts +2 -2
- package/src/test/eth_cheat_codes.ts +150 -31
- package/src/test/rollup_cheat_codes.ts +95 -53
- package/src/test/start_anvil.ts +4 -0
- package/src/test/tx_delayer.ts +5 -3
- package/src/test/upgrade_utils.ts +3 -2
- package/src/types.ts +62 -0
- package/src/utils.ts +41 -184
- package/src/zkPassportVerifierAddress.ts +1 -1
- package/dest/deploy_l1_contracts.d.ts +0 -211
- package/dest/deploy_l1_contracts.d.ts.map +0 -1
- package/dest/deploy_l1_contracts.js +0 -1267
- package/dest/index.d.ts +0 -18
- package/dest/index.d.ts.map +0 -1
- package/dest/index.js +0 -17
- 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/deploy_l1_contracts.ts +0 -1596
- package/src/index.ts +0 -17
- package/src/l1_tx_utils.ts +0 -1105
- package/src/l1_tx_utils_with_blobs.ts +0 -144
|
@@ -1,33 +1,61 @@
|
|
|
1
|
+
import { pick } from '@aztec/foundation/collection';
|
|
1
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
|
-
import { TxUtilsState } from './l1_tx_utils.js';
|
|
3
|
+
import { TxUtilsState } from './l1_tx_utils/index.js';
|
|
4
|
+
// Defines the order in which we prioritise publishers based on their state (first is better)
|
|
3
5
|
const sortOrder = [
|
|
6
|
+
// Always prefer sending from idle publishers
|
|
4
7
|
TxUtilsState.IDLE,
|
|
5
|
-
|
|
8
|
+
// Then from publishers that have sent a tx and it got mined
|
|
9
|
+
TxUtilsState.MINED,
|
|
10
|
+
// Then from publishers that have sent a tx but it's in-flight
|
|
11
|
+
TxUtilsState.SPEED_UP,
|
|
12
|
+
TxUtilsState.SENT,
|
|
13
|
+
// We leave cancelled and not-mined states for last, since these represent failures to mines and could be problematic
|
|
14
|
+
TxUtilsState.CANCELLED,
|
|
15
|
+
TxUtilsState.NOT_MINED
|
|
6
16
|
];
|
|
7
|
-
|
|
17
|
+
// Which states represent a busy publisher that we should avoid if possible
|
|
18
|
+
const busyStates = [
|
|
8
19
|
TxUtilsState.SENT,
|
|
9
20
|
TxUtilsState.SPEED_UP,
|
|
10
21
|
TxUtilsState.CANCELLED,
|
|
11
22
|
TxUtilsState.NOT_MINED
|
|
12
|
-
];
|
|
23
|
+
];
|
|
13
24
|
export class PublisherManager {
|
|
14
25
|
publishers;
|
|
15
26
|
log;
|
|
16
|
-
|
|
27
|
+
config;
|
|
28
|
+
constructor(publishers, config){
|
|
17
29
|
this.publishers = publishers;
|
|
18
|
-
this.log = createLogger('
|
|
30
|
+
this.log = createLogger('publisher:manager');
|
|
19
31
|
this.log.info(`PublisherManager initialized with ${publishers.length} publishers.`);
|
|
20
32
|
this.publishers = publishers;
|
|
33
|
+
this.config = pick(config, 'publisherAllowInvalidStates');
|
|
34
|
+
}
|
|
35
|
+
/** Loads the state of all publishers and resumes monitoring any pending txs */ async loadState() {
|
|
36
|
+
await Promise.all(this.publishers.map((pub)=>pub.loadStateAndResumeMonitoring()));
|
|
21
37
|
}
|
|
22
38
|
// Finds and prioritises available publishers based on
|
|
23
39
|
// 1. Validity as per the provided filter function
|
|
24
40
|
// 2. Validity based on the state the publisher is in
|
|
25
|
-
// 3. Priority based on state as defined
|
|
41
|
+
// 3. Priority based on state as defined by sortOrder
|
|
26
42
|
// 4. Then priority based on highest balance
|
|
27
43
|
// 5. Then priority based on least recently used
|
|
28
44
|
async getAvailablePublisher(filter = ()=>true) {
|
|
45
|
+
this.log.debug(`Getting available publisher`, {
|
|
46
|
+
publishers: this.publishers.map((p)=>({
|
|
47
|
+
address: p.getSenderAddress(),
|
|
48
|
+
state: p.state,
|
|
49
|
+
lastMined: p.lastMinedAtBlockNumber
|
|
50
|
+
}))
|
|
51
|
+
});
|
|
29
52
|
// Extract the valid publishers
|
|
30
|
-
|
|
53
|
+
let validPublishers = this.publishers.filter((pub)=>!busyStates.includes(pub.state) && filter(pub));
|
|
54
|
+
// If none found but we allow invalid (busy) states, try again including them
|
|
55
|
+
if (validPublishers.length === 0 && this.config.publisherAllowInvalidStates) {
|
|
56
|
+
this.log.warn(`No valid publishers found. Trying again including invalid states.`);
|
|
57
|
+
validPublishers = this.publishers.filter((pub)=>filter(pub));
|
|
58
|
+
}
|
|
31
59
|
// Error if none found
|
|
32
60
|
if (validPublishers.length === 0) {
|
|
33
61
|
throw new Error(`Failed to find an available publisher.`);
|
package/dest/queries.d.ts
CHANGED
|
@@ -11,4 +11,4 @@ export declare function getL1ContractsConfig(publicClient: ViemPublicClient, add
|
|
|
11
11
|
rollupVersion: number;
|
|
12
12
|
genesisArchiveTreeRoot: `0x${string}`;
|
|
13
13
|
}>;
|
|
14
|
-
//# sourceMappingURL=
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3F1ZXJpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBS3JELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRW5ELHFEQUFxRDtBQUNyRCx3QkFBc0Isb0JBQW9CLENBQ3hDLFlBQVksRUFBRSxnQkFBZ0IsRUFDOUIsU0FBUyxFQUFFO0lBQUUsaUJBQWlCLEVBQUUsVUFBVSxDQUFDO0lBQUMsYUFBYSxDQUFDLEVBQUUsVUFBVSxDQUFBO0NBQUUsR0FDdkUsT0FBTyxDQUNSLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxzQkFBc0IsQ0FBQyxHQUFHO0lBQ2hELFlBQVksRUFBRSxNQUFNLENBQUM7SUFDckIsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixhQUFhLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLHNCQUFzQixFQUFFLEtBQUssTUFBTSxFQUFFLENBQUM7Q0FDdkMsQ0FDRixDQXFHQSJ9
|
package/dest/queries.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../src/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../src/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,qDAAqD;AACrD,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE;IAAE,iBAAiB,EAAE,UAAU,CAAC;IAAC,aAAa,CAAC,EAAE,UAAU,CAAA;CAAE,GACvE,OAAO,CACR,IAAI,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,GAAG;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,KAAK,MAAM,EAAE,CAAC;CACvC,CACF,CAqGA"}
|
package/dest/queries.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
-
import { SlasherAbi } from '@aztec/l1-artifacts/SlasherAbi';
|
|
3
|
-
import { getContract } from 'viem';
|
|
4
2
|
import { ReadOnlyGovernanceContract } from './contracts/governance.js';
|
|
5
3
|
import { GovernanceProposerContract } from './contracts/governance_proposer.js';
|
|
4
|
+
import { InboxContract } from './contracts/inbox.js';
|
|
6
5
|
import { RollupContract } from './contracts/rollup.js';
|
|
7
6
|
/** Reads the L1ContractsConfig from L1 contracts. */ export async function getL1ContractsConfig(publicClient, addresses) {
|
|
8
7
|
const governance = new ReadOnlyGovernanceContract(addresses.governanceAddress.toString(), publicClient);
|
|
@@ -11,21 +10,22 @@ import { RollupContract } from './contracts/rollup.js';
|
|
|
11
10
|
const rollupAddress = addresses.rollupAddress ?? await governanceProposer.getRollupAddress();
|
|
12
11
|
const rollup = new RollupContract(publicClient, rollupAddress.toString());
|
|
13
12
|
const slasherProposer = await rollup.getSlashingProposer();
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
client: publicClient
|
|
19
|
-
});
|
|
20
|
-
const [l1StartBlock, l1GenesisTime, aztecEpochDuration, aztecSlotDuration, aztecProofSubmissionEpochs, aztecTargetCommitteeSize, activationThreshold, ejectionThreshold, governanceProposerQuorum, governanceProposerRoundSize, slashingQuorum, slashingRoundSize, slashingLifetimeInRounds, slashingExecutionDelayInRounds, slashingOffsetInRounds, slashingAmounts, slashingVetoer, manaTarget, provingCostPerMana, rollupVersion, genesisArchiveTreeRoot, exitDelay] = await Promise.all([
|
|
13
|
+
const slasher = await rollup.getSlasherContract();
|
|
14
|
+
const rollupAddresses = await rollup.getRollupAddresses();
|
|
15
|
+
const inboxContract = new InboxContract(publicClient, rollupAddresses.inboxAddress.toString());
|
|
16
|
+
const [l1StartBlock, l1GenesisTime, aztecEpochDuration, aztecSlotDuration, aztecProofSubmissionEpochs, aztecTargetCommitteeSize, lagInEpochsForValidatorSet, lagInEpochsForRandao, inboxLag, activationThreshold, ejectionThreshold, localEjectionThreshold, governanceProposerQuorum, governanceProposerRoundSize, slashingQuorum, slashingRoundSize, slashingLifetimeInRounds, slashingExecutionDelayInRounds, slashingOffsetInRounds, slashingAmounts, slashingVetoer, slashingDisableDuration, manaTarget, provingCostPerMana, rollupVersion, genesisArchiveTreeRoot, exitDelay] = await Promise.all([
|
|
21
17
|
rollup.getL1StartBlock(),
|
|
22
18
|
rollup.getL1GenesisTime(),
|
|
23
19
|
rollup.getEpochDuration(),
|
|
24
20
|
rollup.getSlotDuration(),
|
|
25
21
|
rollup.getProofSubmissionEpochs(),
|
|
26
22
|
rollup.getTargetCommitteeSize(),
|
|
23
|
+
rollup.getLagInEpochsForValidatorSet(),
|
|
24
|
+
rollup.getLagInEpochsForRandao(),
|
|
25
|
+
inboxContract.getLag(),
|
|
27
26
|
rollup.getActivationThreshold(),
|
|
28
27
|
rollup.getEjectionThreshold(),
|
|
28
|
+
rollup.getLocalEjectionThreshold(),
|
|
29
29
|
governanceProposer.getQuorumSize(),
|
|
30
30
|
governanceProposer.getRoundSize(),
|
|
31
31
|
slasherProposer?.getQuorumSize() ?? 0n,
|
|
@@ -38,7 +38,8 @@ import { RollupContract } from './contracts/rollup.js';
|
|
|
38
38
|
0n,
|
|
39
39
|
0n
|
|
40
40
|
],
|
|
41
|
-
slasher
|
|
41
|
+
slasher?.getVetoer() ?? EthAddress.ZERO,
|
|
42
|
+
slasher?.getSlashingDisableDuration() ?? 0,
|
|
42
43
|
rollup.getManaTarget(),
|
|
43
44
|
rollup.getProvingCostPerMana(),
|
|
44
45
|
rollup.getVersion(),
|
|
@@ -52,19 +53,24 @@ import { RollupContract } from './contracts/rollup.js';
|
|
|
52
53
|
aztecSlotDuration: Number(aztecSlotDuration),
|
|
53
54
|
aztecProofSubmissionEpochs: Number(aztecProofSubmissionEpochs),
|
|
54
55
|
aztecTargetCommitteeSize: Number(aztecTargetCommitteeSize),
|
|
56
|
+
lagInEpochsForValidatorSet: Number(lagInEpochsForValidatorSet),
|
|
57
|
+
lagInEpochsForRandao: Number(lagInEpochsForRandao),
|
|
58
|
+
inboxLag: Number(inboxLag),
|
|
55
59
|
governanceProposerQuorum: Number(governanceProposerQuorum),
|
|
56
60
|
governanceProposerRoundSize: Number(governanceProposerRoundSize),
|
|
57
61
|
activationThreshold,
|
|
58
62
|
ejectionThreshold,
|
|
63
|
+
localEjectionThreshold,
|
|
59
64
|
slashingQuorum: Number(slashingQuorum),
|
|
60
|
-
slashingRoundSizeInEpochs: Number(slashingRoundSize / aztecEpochDuration),
|
|
65
|
+
slashingRoundSizeInEpochs: Number(Number(slashingRoundSize) / aztecEpochDuration),
|
|
61
66
|
slashingLifetimeInRounds: Number(slashingLifetimeInRounds),
|
|
62
67
|
slashingExecutionDelayInRounds: Number(slashingExecutionDelayInRounds),
|
|
63
|
-
slashingVetoer
|
|
64
|
-
|
|
68
|
+
slashingVetoer,
|
|
69
|
+
slashingDisableDuration,
|
|
70
|
+
manaTarget,
|
|
65
71
|
provingCostPerMana: provingCostPerMana,
|
|
66
72
|
rollupVersion: Number(rollupVersion),
|
|
67
|
-
genesisArchiveTreeRoot,
|
|
73
|
+
genesisArchiveTreeRoot: genesisArchiveTreeRoot.toString(),
|
|
68
74
|
exitDelaySeconds: Number(exitDelay),
|
|
69
75
|
slasherFlavor: slasherProposer?.type ?? 'tally',
|
|
70
76
|
slashingOffsetInRounds: Number(slashingOffsetInRounds),
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { RollupContract } from '@aztec/ethereum/contracts';
|
|
2
|
+
import { CheckpointNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
3
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
4
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
4
5
|
import { EventEmitter } from 'events';
|
|
@@ -7,13 +8,16 @@ export type ChainMonitorEventMap = {
|
|
|
7
8
|
l1BlockNumber: number;
|
|
8
9
|
timestamp: bigint;
|
|
9
10
|
}];
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
checkpoint: [
|
|
12
|
+
{
|
|
13
|
+
checkpointNumber: CheckpointNumber;
|
|
14
|
+
l1BlockNumber: number;
|
|
15
|
+
l2SlotNumber: SlotNumber;
|
|
16
|
+
timestamp: bigint;
|
|
17
|
+
}
|
|
18
|
+
];
|
|
19
|
+
'checkpoint-proven': [{
|
|
20
|
+
provenCheckpointNumber: CheckpointNumber;
|
|
17
21
|
l1BlockNumber: number;
|
|
18
22
|
timestamp: bigint;
|
|
19
23
|
}];
|
|
@@ -22,12 +26,12 @@ export type ChainMonitorEventMap = {
|
|
|
22
26
|
l1BlockNumber: number;
|
|
23
27
|
}];
|
|
24
28
|
'l2-epoch': [{
|
|
25
|
-
l2EpochNumber:
|
|
29
|
+
l2EpochNumber: EpochNumber;
|
|
26
30
|
timestamp: bigint;
|
|
27
31
|
committee: EthAddress[] | undefined;
|
|
28
32
|
}];
|
|
29
33
|
'l2-slot': [{
|
|
30
|
-
l2SlotNumber:
|
|
34
|
+
l2SlotNumber: SlotNumber;
|
|
31
35
|
timestamp: bigint;
|
|
32
36
|
}];
|
|
33
37
|
};
|
|
@@ -43,26 +47,29 @@ export declare class ChainMonitor extends EventEmitter<ChainMonitorEventMap> {
|
|
|
43
47
|
private running;
|
|
44
48
|
/** Current L1 block number */
|
|
45
49
|
l1BlockNumber: number;
|
|
46
|
-
/** Current
|
|
47
|
-
|
|
48
|
-
/** Current
|
|
49
|
-
|
|
50
|
-
/** L1 timestamp for the current
|
|
51
|
-
|
|
52
|
-
/** L1 timestamp for the proven
|
|
53
|
-
|
|
50
|
+
/** Current checkpoint number */
|
|
51
|
+
checkpointNumber: CheckpointNumber;
|
|
52
|
+
/** Current proven checkpoint number */
|
|
53
|
+
provenCheckpointNumber: CheckpointNumber;
|
|
54
|
+
/** L1 timestamp for the current checkpoint */
|
|
55
|
+
checkpointTimestamp: bigint;
|
|
56
|
+
/** L1 timestamp for the proven checkpoint */
|
|
57
|
+
provenCheckpointTimestamp: bigint;
|
|
54
58
|
/** Total number of L2 messages pushed into the Inbox */
|
|
55
59
|
totalL2Messages: number;
|
|
56
60
|
/** Current L2 epoch number */
|
|
57
|
-
l2EpochNumber:
|
|
61
|
+
l2EpochNumber: EpochNumber;
|
|
58
62
|
/** Current L2 slot number */
|
|
59
|
-
l2SlotNumber:
|
|
63
|
+
l2SlotNumber: SlotNumber;
|
|
60
64
|
constructor(rollup: RollupContract, dateProvider?: DateProvider, logger?: import("@aztec/foundation/log").Logger, intervalMs?: number);
|
|
61
65
|
start(): this;
|
|
62
66
|
stop(): Promise<void>;
|
|
63
67
|
private getInbox;
|
|
64
68
|
protected safeRun(): void;
|
|
65
69
|
run(force?: boolean): Promise<this>;
|
|
66
|
-
waitUntilL2Slot(slot:
|
|
70
|
+
waitUntilL2Slot(slot: SlotNumber): Promise<void>;
|
|
71
|
+
waitUntilL1Block(block: number | bigint): Promise<void>;
|
|
72
|
+
waitUntilL1Timestamp(timestamp: number | bigint): Promise<void>;
|
|
73
|
+
waitUntilCheckpoint(checkpointNumber: CheckpointNumber): Promise<void>;
|
|
67
74
|
}
|
|
68
|
-
//# sourceMappingURL=
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW5fbW9uaXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QvY2hhaW5fbW9uaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUczRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUl0QyxNQUFNLE1BQU0sb0JBQW9CLEdBQUc7SUFDakMsVUFBVSxFQUFFLENBQUM7UUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDO1FBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQTtLQUFFLENBQUMsQ0FBQztJQUMzRCxVQUFVLEVBQUU7UUFDVjtZQUFFLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO1lBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztZQUFDLFlBQVksRUFBRSxVQUFVLENBQUM7WUFBQyxTQUFTLEVBQUUsTUFBTSxDQUFBO1NBQUU7S0FDM0csQ0FBQztJQUNGLG1CQUFtQixFQUFFLENBQUM7UUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsQ0FBQztRQUFDLGFBQWEsRUFBRSxNQUFNLENBQUM7UUFBQyxTQUFTLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0FBQyxDQUFDO0lBQzlHLGFBQWEsRUFBRSxDQUFDO1FBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQztRQUFDLGFBQWEsRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDLENBQUM7SUFDcEUsVUFBVSxFQUFFLENBQUM7UUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDO1FBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztRQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FBRyxTQUFTLENBQUE7S0FBRSxDQUFDLENBQUM7SUFDckcsU0FBUyxFQUFFLENBQUM7UUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDO1FBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQTtLQUFFLENBQUMsQ0FBQztDQUM5RCxDQUFDO0FBRUYsOEdBQThHO0FBQzlHLHFCQUFhLFlBQWEsU0FBUSxZQUFZLENBQUMsb0JBQW9CLENBQUM7SUF5QmhFLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTtJQUN2QixPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVk7SUFDN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNO0lBQ3ZCLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVTtJQTNCN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQWE7SUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBNEI7SUFDekMsT0FBTyxDQUFDLE1BQU0sQ0FBNkI7SUFFM0MsT0FBTyxDQUFDLE9BQU8sQ0FBaUM7SUFFaEQsOEJBQThCO0lBQ3ZCLGFBQWEsRUFBRyxNQUFNLENBQUM7SUFDOUIsZ0NBQWdDO0lBQ3pCLGdCQUFnQixFQUFHLGdCQUFnQixDQUFDO0lBQzNDLHVDQUF1QztJQUNoQyxzQkFBc0IsRUFBRyxnQkFBZ0IsQ0FBQztJQUNqRCw4Q0FBOEM7SUFDdkMsbUJBQW1CLEVBQUcsTUFBTSxDQUFDO0lBQ3BDLDZDQUE2QztJQUN0Qyx5QkFBeUIsRUFBRyxNQUFNLENBQUM7SUFDMUMsd0RBQXdEO0lBQ2pELGVBQWUsRUFBRSxNQUFNLENBQUs7SUFDbkMsOEJBQThCO0lBQ3ZCLGFBQWEsRUFBRyxXQUFXLENBQUM7SUFDbkMsNkJBQTZCO0lBQ3RCLFlBQVksRUFBRyxVQUFVLENBQUM7SUFFakMsWUFDbUIsTUFBTSxFQUFFLGNBQWMsRUFDdEIsWUFBWSxHQUFFLFlBQWlDLEVBQy9DLE1BQU0seUNBQThDLEVBQ3BELFVBQVUsU0FBTSxFQUlsQztJQUVELEtBQUssU0FNSjtJQUVLLElBQUksa0JBV1Q7WUFFYSxRQUFRO0lBUXRCLFNBQVMsQ0FBQyxPQUFPLFNBWWhCO0lBRUssR0FBRyxDQUFDLEtBQUssVUFBUSxpQkFnRnRCO0lBRU0sZUFBZSxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWF0RDtJQUVNLGdCQUFnQixDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FjN0Q7SUFFTSxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBY3JFO0lBRU0sbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWE1RTtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain_monitor.d.ts","sourceRoot":"","sources":["../../src/test/chain_monitor.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"chain_monitor.d.ts","sourceRoot":"","sources":["../../src/test/chain_monitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { InboxContract } from '@aztec/ethereum/contracts';
|
|
2
|
-
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
3
|
import { promiseWithResolvers } from '@aztec/foundation/promise';
|
|
5
4
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
@@ -15,10 +14,10 @@ import { EventEmitter } from 'events';
|
|
|
15
14
|
// eslint-disable-next-line aztec-custom/no-non-primitive-in-collections
|
|
16
15
|
running;
|
|
17
16
|
/** Current L1 block number */ l1BlockNumber;
|
|
18
|
-
/** Current
|
|
19
|
-
/** Current
|
|
20
|
-
/** L1 timestamp for the current
|
|
21
|
-
/** L1 timestamp for the proven
|
|
17
|
+
/** Current checkpoint number */ checkpointNumber;
|
|
18
|
+
/** Current proven checkpoint number */ provenCheckpointNumber;
|
|
19
|
+
/** L1 timestamp for the current checkpoint */ checkpointTimestamp;
|
|
20
|
+
/** L1 timestamp for the proven checkpoint */ provenCheckpointTimestamp;
|
|
22
21
|
/** Total number of L2 messages pushed into the Inbox */ totalL2Messages;
|
|
23
22
|
/** Current L2 epoch number */ l2EpochNumber;
|
|
24
23
|
/** Current L2 slot number */ l2SlotNumber;
|
|
@@ -72,37 +71,42 @@ import { EventEmitter } from 'events';
|
|
|
72
71
|
return this;
|
|
73
72
|
}
|
|
74
73
|
this.l1BlockNumber = newL1BlockNumber;
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
74
|
+
const [l2SlotNumber, l2Epoch, l1block] = await Promise.all([
|
|
75
|
+
this.rollup.getSlotNumber(),
|
|
76
|
+
this.rollup.getCurrentEpoch(),
|
|
77
|
+
this.l1Client.getBlock({
|
|
78
|
+
blockNumber: BigInt(newL1BlockNumber),
|
|
79
|
+
includeTransactions: false
|
|
80
|
+
})
|
|
81
|
+
]);
|
|
82
|
+
const timestamp = l1block.timestamp;
|
|
80
83
|
const timestampString = new Date(Number(timestamp) * 1000).toTimeString().split(' ')[0];
|
|
81
84
|
this.emit('l1-block', {
|
|
82
85
|
l1BlockNumber: newL1BlockNumber,
|
|
83
86
|
timestamp
|
|
84
87
|
});
|
|
85
88
|
let msg = `L1 block ${newL1BlockNumber} mined at ${timestampString}`;
|
|
86
|
-
const
|
|
87
|
-
if (this.
|
|
88
|
-
const epochNumber = await this.rollup.
|
|
89
|
-
msg += ` with new
|
|
90
|
-
this.
|
|
91
|
-
this.
|
|
92
|
-
this.emit('
|
|
93
|
-
|
|
89
|
+
const newCheckpointNumber = await this.rollup.getCheckpointNumber();
|
|
90
|
+
if (this.checkpointNumber !== newCheckpointNumber) {
|
|
91
|
+
const epochNumber = await this.rollup.getEpochNumberForCheckpoint(newCheckpointNumber);
|
|
92
|
+
msg += ` with new checkpoint ${newCheckpointNumber} for epoch ${epochNumber}`;
|
|
93
|
+
this.checkpointNumber = newCheckpointNumber;
|
|
94
|
+
this.checkpointTimestamp = timestamp;
|
|
95
|
+
this.emit('checkpoint', {
|
|
96
|
+
checkpointNumber: newCheckpointNumber,
|
|
94
97
|
l1BlockNumber: newL1BlockNumber,
|
|
98
|
+
l2SlotNumber,
|
|
95
99
|
timestamp
|
|
96
100
|
});
|
|
97
101
|
}
|
|
98
|
-
const
|
|
99
|
-
if (this.
|
|
100
|
-
const epochNumber = await this.rollup.
|
|
101
|
-
msg += ` with proof up to
|
|
102
|
-
this.
|
|
103
|
-
this.
|
|
104
|
-
this.emit('
|
|
105
|
-
|
|
102
|
+
const newProvenCheckpointNumber = await this.rollup.getProvenCheckpointNumber();
|
|
103
|
+
if (this.provenCheckpointNumber !== newProvenCheckpointNumber) {
|
|
104
|
+
const epochNumber = await this.rollup.getEpochNumberForCheckpoint(newProvenCheckpointNumber);
|
|
105
|
+
msg += ` with proof up to checkpoint ${newProvenCheckpointNumber} for epoch ${epochNumber}`;
|
|
106
|
+
this.provenCheckpointNumber = newProvenCheckpointNumber;
|
|
107
|
+
this.provenCheckpointTimestamp = timestamp;
|
|
108
|
+
this.emit('checkpoint-proven', {
|
|
109
|
+
provenCheckpointNumber: newProvenCheckpointNumber,
|
|
106
110
|
l1BlockNumber: newL1BlockNumber,
|
|
107
111
|
timestamp
|
|
108
112
|
});
|
|
@@ -117,16 +121,12 @@ import { EventEmitter } from 'events';
|
|
|
117
121
|
l1BlockNumber: newL1BlockNumber
|
|
118
122
|
});
|
|
119
123
|
}
|
|
120
|
-
const [l2SlotNumber, l2Epoch] = await Promise.all([
|
|
121
|
-
this.rollup.getSlotNumber(),
|
|
122
|
-
this.rollup.getCurrentEpoch()
|
|
123
|
-
]);
|
|
124
124
|
let committee;
|
|
125
125
|
if (l2Epoch !== this.l2EpochNumber) {
|
|
126
126
|
this.l2EpochNumber = l2Epoch;
|
|
127
|
-
committee =
|
|
127
|
+
committee = await this.rollup.getCurrentEpochCommittee();
|
|
128
128
|
this.emit('l2-epoch', {
|
|
129
|
-
l2EpochNumber:
|
|
129
|
+
l2EpochNumber: l2Epoch,
|
|
130
130
|
timestamp,
|
|
131
131
|
committee
|
|
132
132
|
});
|
|
@@ -135,7 +135,7 @@ import { EventEmitter } from 'events';
|
|
|
135
135
|
if (l2SlotNumber !== this.l2SlotNumber) {
|
|
136
136
|
this.l2SlotNumber = l2SlotNumber;
|
|
137
137
|
this.emit('l2-slot', {
|
|
138
|
-
l2SlotNumber
|
|
138
|
+
l2SlotNumber,
|
|
139
139
|
timestamp
|
|
140
140
|
});
|
|
141
141
|
}
|
|
@@ -145,21 +145,20 @@ import { EventEmitter } from 'events';
|
|
|
145
145
|
l1BlockNumber: this.l1BlockNumber,
|
|
146
146
|
l2SlotNumber,
|
|
147
147
|
l2Epoch,
|
|
148
|
-
|
|
149
|
-
|
|
148
|
+
checkpointNumber: this.checkpointNumber,
|
|
149
|
+
provenCheckpointNumber: this.provenCheckpointNumber,
|
|
150
150
|
totalL2Messages: this.totalL2Messages,
|
|
151
151
|
committee
|
|
152
152
|
});
|
|
153
153
|
return this;
|
|
154
154
|
}
|
|
155
155
|
waitUntilL2Slot(slot) {
|
|
156
|
-
|
|
157
|
-
if (this.l2SlotNumber >= targetSlot) {
|
|
156
|
+
if (this.l2SlotNumber >= slot) {
|
|
158
157
|
return Promise.resolve();
|
|
159
158
|
}
|
|
160
159
|
return new Promise((resolve)=>{
|
|
161
160
|
const listener = (data)=>{
|
|
162
|
-
if (data.l2SlotNumber >=
|
|
161
|
+
if (data.l2SlotNumber >= slot) {
|
|
163
162
|
this.off('l2-slot', listener);
|
|
164
163
|
resolve();
|
|
165
164
|
}
|
|
@@ -167,4 +166,48 @@ import { EventEmitter } from 'events';
|
|
|
167
166
|
this.on('l2-slot', listener);
|
|
168
167
|
});
|
|
169
168
|
}
|
|
169
|
+
waitUntilL1Block(block) {
|
|
170
|
+
const targetBlock = typeof block === 'bigint' ? block.valueOf() : block;
|
|
171
|
+
if (this.l1BlockNumber >= targetBlock) {
|
|
172
|
+
return Promise.resolve();
|
|
173
|
+
}
|
|
174
|
+
return new Promise((resolve)=>{
|
|
175
|
+
const listener = (data)=>{
|
|
176
|
+
if (data.l1BlockNumber >= targetBlock) {
|
|
177
|
+
this.off('l1-block', listener);
|
|
178
|
+
resolve();
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
this.on('l1-block', listener);
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
waitUntilL1Timestamp(timestamp) {
|
|
185
|
+
const targetTimestamp = typeof timestamp === 'bigint' ? timestamp.valueOf() : timestamp;
|
|
186
|
+
if (this.l1BlockNumber >= targetTimestamp) {
|
|
187
|
+
return Promise.resolve();
|
|
188
|
+
}
|
|
189
|
+
return new Promise((resolve)=>{
|
|
190
|
+
const listener = (data)=>{
|
|
191
|
+
if (data.timestamp >= targetTimestamp) {
|
|
192
|
+
this.off('l1-block', listener);
|
|
193
|
+
resolve();
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
this.on('l1-block', listener);
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
waitUntilCheckpoint(checkpointNumber) {
|
|
200
|
+
if (this.checkpointNumber >= checkpointNumber) {
|
|
201
|
+
return Promise.resolve();
|
|
202
|
+
}
|
|
203
|
+
return new Promise((resolve)=>{
|
|
204
|
+
const listener = (data)=>{
|
|
205
|
+
if (data.checkpointNumber >= checkpointNumber) {
|
|
206
|
+
this.off('checkpoint', listener);
|
|
207
|
+
resolve();
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
this.on('checkpoint', listener);
|
|
211
|
+
});
|
|
212
|
+
}
|
|
170
213
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Logger } from '@aztec/foundation/log';
|
|
2
2
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
3
|
-
import { type L1TxUtilsConfig } from '../l1_tx_utils.js';
|
|
4
|
-
import { L1TxUtilsWithBlobs } from '../l1_tx_utils_with_blobs.js';
|
|
3
|
+
import { type L1TxUtilsConfig } from '../l1_tx_utils/index.js';
|
|
4
|
+
import { L1TxUtilsWithBlobs } from '../l1_tx_utils/l1_tx_utils_with_blobs.js';
|
|
5
5
|
import type { ExtendedViemWalletClient } from '../types.js';
|
|
6
6
|
import { type Delayer } from './tx_delayer.js';
|
|
7
7
|
export declare class DelayedTxUtils extends L1TxUtilsWithBlobs {
|
|
@@ -10,4 +10,4 @@ export declare class DelayedTxUtils extends L1TxUtilsWithBlobs {
|
|
|
10
10
|
enableDelayer(ethereumSlotDuration: number): void;
|
|
11
11
|
}
|
|
12
12
|
export declare function createDelayedL1TxUtilsFromViemWallet(client: ExtendedViemWalletClient, logger?: Logger, dateProvider?: DateProvider, config?: Partial<L1TxUtilsConfig>, debugMaxGasLimit?: boolean): DelayedTxUtils;
|
|
13
|
-
//# sourceMappingURL=
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsYXllZF90eF91dGlscy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QvZGVsYXllZF90eF91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXZELE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBb0IsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1RCxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1RCxxQkFBYSxjQUFlLFNBQVEsa0JBQWtCO0lBQzdDLE9BQU8sRUFBRSxPQUFPLEdBQUcsU0FBUyxDQUFDO0lBRXBDLE9BQWMsYUFBYSxDQUN6QixTQUFTLEVBQUUsa0JBQWtCLEVBQzdCLG9CQUFvQixFQUFFLE1BQU0sRUFDNUIsTUFBTSxFQUFFLHdCQUF3QixrQkFTakM7SUFFTSxhQUFhLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxRQU1oRDtDQUNGO0FBRUQsd0JBQWdCLG9DQUFvQyxDQUNsRCxNQUFNLEVBQUUsd0JBQXdCLEVBQ2hDLE1BQU0sR0FBRSxNQUFrQyxFQUMxQyxZQUFZLEdBQUUsWUFBaUMsRUFDL0MsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUNqQyxnQkFBZ0IsR0FBRSxPQUFlLGtCQVdsQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delayed_tx_utils.d.ts","sourceRoot":"","sources":["../../src/test/delayed_tx_utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,
|
|
1
|
+
{"version":3,"file":"delayed_tx_utils.d.ts","sourceRoot":"","sources":["../../src/test/delayed_tx_utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,KAAK,eAAe,EAAoB,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,KAAK,OAAO,EAAe,MAAM,iBAAiB,CAAC;AAE5D,qBAAa,cAAe,SAAQ,kBAAkB;IAC7C,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAEpC,OAAc,aAAa,CACzB,SAAS,EAAE,kBAAkB,EAC7B,oBAAoB,EAAE,MAAM,EAC5B,MAAM,EAAE,wBAAwB,kBASjC;IAEM,aAAa,CAAC,oBAAoB,EAAE,MAAM,QAMhD;CACF;AAED,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,wBAAwB,EAChC,MAAM,GAAE,MAAkC,EAC1C,YAAY,GAAE,YAAiC,EAC/C,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,EACjC,gBAAgB,GAAE,OAAe,kBAWlC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
3
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
4
|
-
import { createViemSigner } from '../l1_tx_utils.js';
|
|
5
|
-
import { L1TxUtilsWithBlobs } from '../l1_tx_utils_with_blobs.js';
|
|
4
|
+
import { createViemSigner } from '../l1_tx_utils/index.js';
|
|
5
|
+
import { L1TxUtilsWithBlobs } from '../l1_tx_utils/l1_tx_utils_with_blobs.js';
|
|
6
6
|
import { withDelayer } from './tx_delayer.js';
|
|
7
7
|
export class DelayedTxUtils extends L1TxUtilsWithBlobs {
|
|
8
8
|
delayer;
|
|
@@ -1,30 +1,35 @@
|
|
|
1
1
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
-
import type { TestDateProvider } from '@aztec/foundation/timer';
|
|
3
|
-
import { type Hex } from 'viem';
|
|
2
|
+
import type { DateProvider, TestDateProvider } from '@aztec/foundation/timer';
|
|
3
|
+
import { type Chain, type Hex, type Transaction } from 'viem';
|
|
4
4
|
import type { ViemPublicClient } from '../types.js';
|
|
5
5
|
/**
|
|
6
6
|
* A class that provides utility functions for interacting with ethereum (L1).
|
|
7
7
|
*/
|
|
8
8
|
export declare class EthCheatCodes {
|
|
9
|
-
/**
|
|
10
|
-
* The RPC URL to use for interacting with the chain
|
|
11
|
-
*/
|
|
12
9
|
rpcUrls: string[];
|
|
13
|
-
|
|
14
|
-
* The logger to use for the eth cheatcodes
|
|
15
|
-
*/
|
|
10
|
+
dateProvider: DateProvider | TestDateProvider;
|
|
16
11
|
logger: import("@aztec/foundation/log").Logger;
|
|
12
|
+
chain: Chain;
|
|
17
13
|
readonly publicClient: ViemPublicClient;
|
|
18
14
|
constructor(
|
|
19
15
|
/**
|
|
20
16
|
* The RPC URL to use for interacting with the chain
|
|
21
17
|
*/
|
|
22
18
|
rpcUrls: string[],
|
|
19
|
+
/**
|
|
20
|
+
* The date provider to use for time operations
|
|
21
|
+
*/
|
|
22
|
+
dateProvider: DateProvider | TestDateProvider,
|
|
23
23
|
/**
|
|
24
24
|
* The logger to use for the eth cheatcodes
|
|
25
25
|
*/
|
|
26
|
-
logger?: import("@aztec/foundation/log").Logger
|
|
26
|
+
logger?: import("@aztec/foundation/log").Logger,
|
|
27
|
+
/**
|
|
28
|
+
* The chain configuration provided to Anvil
|
|
29
|
+
*/
|
|
30
|
+
chain?: Chain);
|
|
27
31
|
rpcCall(method: string, params: any[]): Promise<any>;
|
|
32
|
+
private doRpcCall;
|
|
28
33
|
/**
|
|
29
34
|
* Get the auto mine status of the underlying chain
|
|
30
35
|
* @returns True if automine is on, false otherwise
|
|
@@ -104,13 +109,12 @@ export declare class EthCheatCodes {
|
|
|
104
109
|
/**
|
|
105
110
|
* Set the next block timestamp and mines the block.
|
|
106
111
|
* Optionally resets interval mining so the next block is mined in `blockInterval` seconds from now.
|
|
107
|
-
*
|
|
112
|
+
* Always updates the injected date provider to follow L1 time.
|
|
108
113
|
* @param timestamp - The timestamp to set the next block to
|
|
109
114
|
*/
|
|
110
115
|
warp(timestamp: number | bigint, opts?: {
|
|
111
116
|
silent?: boolean;
|
|
112
117
|
resetBlockInterval?: boolean;
|
|
113
|
-
updateDateProvider?: TestDateProvider;
|
|
114
118
|
}): Promise<void>;
|
|
115
119
|
/**
|
|
116
120
|
* Load the value at a storage slot of a contract address on eth
|
|
@@ -125,7 +129,9 @@ export declare class EthCheatCodes {
|
|
|
125
129
|
* @param slot - The storage slot
|
|
126
130
|
* @param value - The value to set the storage slot to
|
|
127
131
|
*/
|
|
128
|
-
store(contract: EthAddress, slot: bigint, value: bigint
|
|
132
|
+
store(contract: EthAddress, slot: bigint, value: bigint, opts?: {
|
|
133
|
+
silent?: boolean;
|
|
134
|
+
}): Promise<void>;
|
|
129
135
|
/**
|
|
130
136
|
* Computes the slot value for a given map and key.
|
|
131
137
|
* @param baseSlot - The base slot of the map (specified in Aztec.nr contract)
|
|
@@ -190,6 +196,22 @@ export declare class EthCheatCodes {
|
|
|
190
196
|
value?: number | bigint;
|
|
191
197
|
})[][]): Promise<void>;
|
|
192
198
|
traceTransaction(txHash: Hex): Promise<any>;
|
|
193
|
-
|
|
199
|
+
getTxPoolStatus(): Promise<{
|
|
200
|
+
pending: number;
|
|
201
|
+
queued: number;
|
|
202
|
+
}>;
|
|
203
|
+
getTxPoolContents(): Promise<TxPoolTransaction[]>;
|
|
204
|
+
/**
|
|
205
|
+
* Mines an empty block by temporarily removing all pending transactions from the mempool,
|
|
206
|
+
* mining a block, and then re-adding the transactions back to the pool.
|
|
207
|
+
*/
|
|
208
|
+
mineEmptyBlock(blockCount?: number): Promise<void>;
|
|
209
|
+
execWithPausedAnvil<T>(fn: () => Promise<T>): Promise<T>;
|
|
210
|
+
syncDateProvider(): Promise<void>;
|
|
194
211
|
}
|
|
195
|
-
|
|
212
|
+
type TxPoolState = 'pending' | 'queued';
|
|
213
|
+
export type TxPoolTransaction = Transaction & {
|
|
214
|
+
poolState: TxPoolState;
|
|
215
|
+
};
|
|
216
|
+
export {};
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX2NoZWF0X2NvZGVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9ldGhfY2hlYXRfY29kZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSTNELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlFLE9BQU8sRUFBRSxLQUFLLEtBQUssRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLFdBQVcsRUFBbUQsTUFBTSxNQUFNLENBQUM7QUFHL0csT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEQ7O0dBRUc7QUFDSCxxQkFBYSxhQUFhO0lBTWYsT0FBTyxFQUFFLE1BQU0sRUFBRTtJQUlqQixZQUFZLEVBQUUsWUFBWSxHQUFHLGdCQUFnQjtJQUk3QyxNQUFNO0lBSU4sS0FBSyxFQUFFLEtBQUs7SUFqQnJCLFNBQWdCLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQztJQUMvQztJQUNFOztPQUVHO0lBQ0ksT0FBTyxFQUFFLE1BQU0sRUFBRTtJQUN4Qjs7T0FFRztJQUNJLFlBQVksRUFBRSxZQUFZLEdBQUcsZ0JBQWdCO0lBQ3BEOztPQUVHO0lBQ0ksTUFBTSx5Q0FBdUM7SUFDcEQ7O09BRUc7SUFDSSxLQUFLLEdBQUUsS0FBZSxFQU05QjtJQUVNLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsZ0JBRzNDO1lBRWEsU0FBUztJQU92Qjs7O09BR0c7SUFDVSxZQUFZLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQVE1QztJQUVEOzs7T0FHRztJQUNVLFdBQVcsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBRzFDO0lBRUQ7OztPQUdHO0lBQ1UsT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FHdEM7SUFFRDs7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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eth_cheat_codes.d.ts","sourceRoot":"","sources":["../../src/test/eth_cheat_codes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"eth_cheat_codes.d.ts","sourceRoot":"","sources":["../../src/test/eth_cheat_codes.ts"],"names":[],"mappings":"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"}
|