@aztec/ethereum 0.0.1-commit.5daedc8 → 0.0.1-commit.6c91f13
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.js +6 -2
- package/dest/config.d.ts +6 -42
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +9 -327
- 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/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/rollup.d.ts +35 -19
- package/dest/contracts/rollup.d.ts.map +1 -1
- package/dest/contracts/rollup.js +30 -12
- package/dest/contracts/tally_slashing_proposer.d.ts +3 -2
- package/dest/contracts/tally_slashing_proposer.d.ts.map +1 -1
- package/dest/contracts/tally_slashing_proposer.js +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/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 +136 -98
- package/dest/l1_artifacts.d.ts.map +1 -1
- package/dest/l1_contract_addresses.d.ts +1 -1
- package/dest/l1_contract_addresses.d.ts.map +1 -1
- package/dest/l1_contract_addresses.js +3 -3
- package/dest/l1_reader.d.ts +3 -1
- package/dest/l1_reader.d.ts.map +1 -1
- package/dest/l1_reader.js +6 -0
- package/dest/l1_tx_utils/config.d.ts +3 -3
- package/dest/l1_tx_utils/config.d.ts.map +1 -1
- package/dest/l1_tx_utils/config.js +17 -3
- package/dest/l1_tx_utils/constants.d.ts +7 -1
- package/dest/l1_tx_utils/constants.d.ts.map +1 -1
- package/dest/l1_tx_utils/constants.js +25 -0
- package/dest/l1_tx_utils/fee-strategies/index.d.ts +9 -0
- package/dest/l1_tx_utils/fee-strategies/index.d.ts.map +1 -0
- package/dest/l1_tx_utils/fee-strategies/index.js +11 -0
- package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts +18 -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 +111 -0
- package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts +32 -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 +173 -0
- package/dest/l1_tx_utils/fee-strategies/types.d.ts +64 -0
- package/dest/l1_tx_utils/fee-strategies/types.d.ts.map +1 -0
- package/dest/l1_tx_utils/fee-strategies/types.js +24 -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 +3 -1
- package/dest/l1_tx_utils/index.d.ts.map +1 -1
- package/dest/l1_tx_utils/index.js +2 -0
- package/dest/l1_tx_utils/interfaces.d.ts +2 -2
- package/dest/l1_tx_utils/interfaces.d.ts.map +1 -1
- 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 +1 -1
- package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/l1_tx_utils.js +17 -4
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +4 -11
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/readonly_l1_tx_utils.js +68 -138
- package/dest/queries.d.ts +1 -1
- package/dest/queries.d.ts.map +1 -1
- package/dest/queries.js +6 -1
- package/dest/test/chain_monitor.d.ts +15 -13
- package/dest/test/chain_monitor.d.ts.map +1 -1
- package/dest/test/chain_monitor.js +6 -7
- package/dest/test/eth_cheat_codes.js +4 -2
- package/dest/test/rollup_cheat_codes.d.ts +5 -5
- package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
- package/dest/test/rollup_cheat_codes.js +14 -5
- package/dest/test/start_anvil.d.ts +3 -1
- package/dest/test/start_anvil.d.ts.map +1 -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/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 +18 -0
- package/package.json +30 -12
- package/src/client.ts +2 -2
- package/src/config.ts +10 -406
- 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/contracts/inbox.ts +7 -2
- package/src/contracts/rollup.ts +49 -25
- package/src/contracts/tally_slashing_proposer.ts +3 -1
- 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_contract_addresses.ts +22 -20
- package/src/l1_reader.ts +8 -0
- package/src/l1_tx_utils/config.ts +24 -6
- package/src/l1_tx_utils/constants.ts +11 -0
- package/src/l1_tx_utils/fee-strategies/index.ts +22 -0
- package/src/l1_tx_utils/fee-strategies/p75_competitive.ts +159 -0
- package/src/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.ts +241 -0
- package/src/l1_tx_utils/fee-strategies/types.ts +88 -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 +2 -0
- package/src/l1_tx_utils/interfaces.ts +1 -1
- package/src/l1_tx_utils/l1_fee_analyzer.ts +804 -0
- package/src/l1_tx_utils/l1_tx_utils.ts +24 -4
- package/src/l1_tx_utils/readonly_l1_tx_utils.ts +76 -176
- package/src/queries.ts +6 -0
- package/src/test/chain_monitor.ts +17 -15
- package/src/test/eth_cheat_codes.ts +2 -2
- package/src/test/rollup_cheat_codes.ts +12 -7
- package/src/test/start_anvil.ts +2 -0
- package/src/test/tx_delayer.ts +5 -3
- package/src/types.ts +62 -0
- package/src/utils.ts +30 -1
- package/dest/deploy_l1_contracts.d.ts +0 -673
- package/dest/deploy_l1_contracts.d.ts.map +0 -1
- package/dest/deploy_l1_contracts.js +0 -1491
- package/dest/index.d.ts +0 -18
- package/dest/index.d.ts.map +0 -1
- package/dest/index.js +0 -17
- package/src/deploy_l1_contracts.ts +0 -1869
- package/src/index.ts +0 -17
package/src/contracts/rollup.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
1
|
+
import { CheckpointNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
2
|
import { memoize } from '@aztec/foundation/decorators';
|
|
3
3
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
4
|
import type { ViemSignature } from '@aztec/foundation/eth-signature';
|
|
5
|
+
import { makeBackoff, retry } from '@aztec/foundation/retry';
|
|
5
6
|
import { RollupAbi } from '@aztec/l1-artifacts/RollupAbi';
|
|
6
7
|
import { RollupStorage } from '@aztec/l1-artifacts/RollupStorage';
|
|
7
8
|
|
|
@@ -19,7 +20,7 @@ import {
|
|
|
19
20
|
} from 'viem';
|
|
20
21
|
|
|
21
22
|
import { getPublicClient } from '../client.js';
|
|
22
|
-
import type {
|
|
23
|
+
import type { DeployAztecL1ContractsReturnType } from '../deploy_aztec_l1_contracts.js';
|
|
23
24
|
import type { L1ContractAddresses } from '../l1_contract_addresses.js';
|
|
24
25
|
import type { L1ReaderConfig } from '../l1_reader.js';
|
|
25
26
|
import type { L1TxRequest, L1TxUtils } from '../l1_tx_utils/index.js';
|
|
@@ -106,7 +107,7 @@ export class RollupContract {
|
|
|
106
107
|
return (RollupContract.cachedStfStorageSlot ??= keccak256(Buffer.from('aztec.stf.storage', 'utf-8')));
|
|
107
108
|
}
|
|
108
109
|
|
|
109
|
-
static getFromL1ContractsValues(deployL1ContractsValues:
|
|
110
|
+
static getFromL1ContractsValues(deployL1ContractsValues: DeployAztecL1ContractsReturnType) {
|
|
110
111
|
const {
|
|
111
112
|
l1Client,
|
|
112
113
|
l1ContractAddresses: { rollupAddress },
|
|
@@ -326,12 +327,12 @@ export class RollupContract {
|
|
|
326
327
|
return this.rollup.read.getCheckpointReward();
|
|
327
328
|
}
|
|
328
329
|
|
|
329
|
-
getCheckpointNumber() {
|
|
330
|
-
return this.rollup.read.getPendingCheckpointNumber();
|
|
330
|
+
async getCheckpointNumber(): Promise<CheckpointNumber> {
|
|
331
|
+
return CheckpointNumber.fromBigInt(await this.rollup.read.getPendingCheckpointNumber());
|
|
331
332
|
}
|
|
332
333
|
|
|
333
|
-
getProvenCheckpointNumber() {
|
|
334
|
-
return this.rollup.read.getProvenCheckpointNumber();
|
|
334
|
+
async getProvenCheckpointNumber(): Promise<CheckpointNumber> {
|
|
335
|
+
return CheckpointNumber.fromBigInt(await this.rollup.read.getProvenCheckpointNumber());
|
|
335
336
|
}
|
|
336
337
|
|
|
337
338
|
async getSlotNumber(): Promise<SlotNumber> {
|
|
@@ -416,12 +417,31 @@ export class RollupContract {
|
|
|
416
417
|
return result;
|
|
417
418
|
}
|
|
418
419
|
|
|
419
|
-
getCheckpoint(checkpointNumber:
|
|
420
|
+
getCheckpoint(checkpointNumber: CheckpointNumber) {
|
|
420
421
|
return this.rollup.read.getCheckpoint([BigInt(checkpointNumber)]);
|
|
421
422
|
}
|
|
422
423
|
|
|
423
|
-
|
|
424
|
-
|
|
424
|
+
/** Returns the pending checkpoint from the rollup contract */
|
|
425
|
+
getPendingCheckpoint() {
|
|
426
|
+
// We retry because of race conditions during prunes: we may get a pending checkpoint number which is immediately
|
|
427
|
+
// reorged out due to a prune happening, causing the subsequent getCheckpoint call to fail. So we try again in that case.
|
|
428
|
+
return retry(
|
|
429
|
+
async () => {
|
|
430
|
+
const pendingCheckpointNumber = await this.getCheckpointNumber();
|
|
431
|
+
const pendingCheckpoint = await this.getCheckpoint(pendingCheckpointNumber);
|
|
432
|
+
return pendingCheckpoint;
|
|
433
|
+
},
|
|
434
|
+
'getting pending checkpoint',
|
|
435
|
+
makeBackoff([0.5, 0.5, 0.5]),
|
|
436
|
+
);
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
async getTips(): Promise<{ pending: CheckpointNumber; proven: CheckpointNumber }> {
|
|
440
|
+
const { pending, proven } = await this.rollup.read.getTips();
|
|
441
|
+
return {
|
|
442
|
+
pending: CheckpointNumber.fromBigInt(pending),
|
|
443
|
+
proven: CheckpointNumber.fromBigInt(proven),
|
|
444
|
+
};
|
|
425
445
|
}
|
|
426
446
|
|
|
427
447
|
getTimestampForSlot(slot: SlotNumber) {
|
|
@@ -444,7 +464,7 @@ export class RollupContract {
|
|
|
444
464
|
return EpochNumber.fromBigInt(await this.rollup.read.getCurrentEpoch());
|
|
445
465
|
}
|
|
446
466
|
|
|
447
|
-
async getEpochNumberForCheckpoint(checkpointNumber:
|
|
467
|
+
async getEpochNumberForCheckpoint(checkpointNumber: CheckpointNumber): Promise<EpochNumber> {
|
|
448
468
|
return EpochNumber.fromBigInt(await this.rollup.read.getEpochForCheckpoint([BigInt(checkpointNumber)]));
|
|
449
469
|
}
|
|
450
470
|
|
|
@@ -537,8 +557,8 @@ export class RollupContract {
|
|
|
537
557
|
archive: Buffer,
|
|
538
558
|
account: `0x${string}` | Account,
|
|
539
559
|
slotDuration: number,
|
|
540
|
-
opts: { forcePendingCheckpointNumber?:
|
|
541
|
-
): Promise<{ slot: SlotNumber; checkpointNumber:
|
|
560
|
+
opts: { forcePendingCheckpointNumber?: CheckpointNumber } = {},
|
|
561
|
+
): Promise<{ slot: SlotNumber; checkpointNumber: CheckpointNumber; timeOfNextL1Slot: bigint }> {
|
|
542
562
|
const latestBlock = await this.client.getBlock();
|
|
543
563
|
const timeOfNextL1Slot = latestBlock.timestamp + BigInt(slotDuration);
|
|
544
564
|
const who = typeof account === 'string' ? account : account.address;
|
|
@@ -555,7 +575,11 @@ export class RollupContract {
|
|
|
555
575
|
stateOverride: await this.makePendingCheckpointNumberOverride(opts.forcePendingCheckpointNumber),
|
|
556
576
|
});
|
|
557
577
|
|
|
558
|
-
return {
|
|
578
|
+
return {
|
|
579
|
+
slot: SlotNumber.fromBigInt(slot),
|
|
580
|
+
checkpointNumber: CheckpointNumber.fromBigInt(checkpointNumber),
|
|
581
|
+
timeOfNextL1Slot,
|
|
582
|
+
};
|
|
559
583
|
} catch (err: unknown) {
|
|
560
584
|
throw formatViemError(err);
|
|
561
585
|
}
|
|
@@ -567,7 +591,7 @@ export class RollupContract {
|
|
|
567
591
|
* stored in the same slot. If the argument is undefined, it returns an empty override.
|
|
568
592
|
*/
|
|
569
593
|
public async makePendingCheckpointNumberOverride(
|
|
570
|
-
forcePendingCheckpointNumber:
|
|
594
|
+
forcePendingCheckpointNumber: CheckpointNumber | undefined,
|
|
571
595
|
): Promise<StateOverride> {
|
|
572
596
|
if (forcePendingCheckpointNumber === undefined) {
|
|
573
597
|
return [];
|
|
@@ -586,7 +610,7 @@ export class RollupContract {
|
|
|
586
610
|
|
|
587
611
|
/** Creates a request to Rollup#invalidateBadAttestation to be simulated or sent */
|
|
588
612
|
public buildInvalidateBadAttestationRequest(
|
|
589
|
-
checkpointNumber:
|
|
613
|
+
checkpointNumber: CheckpointNumber,
|
|
590
614
|
attestationsAndSigners: ViemCommitteeAttestations,
|
|
591
615
|
committee: EthAddress[],
|
|
592
616
|
invalidIndex: number,
|
|
@@ -608,7 +632,7 @@ export class RollupContract {
|
|
|
608
632
|
|
|
609
633
|
/** Creates a request to Rollup#invalidateInsufficientAttestations to be simulated or sent */
|
|
610
634
|
public buildInvalidateInsufficientAttestationsRequest(
|
|
611
|
-
checkpointNumber:
|
|
635
|
+
checkpointNumber: CheckpointNumber,
|
|
612
636
|
attestationsAndSigners: ViemCommitteeAttestations,
|
|
613
637
|
committee: EthAddress[],
|
|
614
638
|
): L1TxRequest {
|
|
@@ -638,9 +662,9 @@ export class RollupContract {
|
|
|
638
662
|
return SlotNumber.fromBigInt(await this.rollup.read.getSlotAt([timestamp]));
|
|
639
663
|
}
|
|
640
664
|
|
|
641
|
-
async status(checkpointNumber:
|
|
665
|
+
async status(checkpointNumber: CheckpointNumber, options?: { blockNumber?: bigint }) {
|
|
642
666
|
await checkBlockTag(options?.blockNumber, this.client);
|
|
643
|
-
return this.rollup.read.status([checkpointNumber], options);
|
|
667
|
+
return this.rollup.read.status([BigInt(checkpointNumber)], options);
|
|
644
668
|
}
|
|
645
669
|
|
|
646
670
|
async canPruneAtTime(timestamp: bigint, options?: { blockNumber?: bigint }) {
|
|
@@ -652,8 +676,8 @@ export class RollupContract {
|
|
|
652
676
|
return this.rollup.read.archive();
|
|
653
677
|
}
|
|
654
678
|
|
|
655
|
-
archiveAt(checkpointNumber:
|
|
656
|
-
return this.rollup.read.archiveAt([checkpointNumber]);
|
|
679
|
+
archiveAt(checkpointNumber: CheckpointNumber) {
|
|
680
|
+
return this.rollup.read.archiveAt([BigInt(checkpointNumber)]);
|
|
657
681
|
}
|
|
658
682
|
|
|
659
683
|
getSequencerRewards(address: Hex | EthAddress) {
|
|
@@ -695,8 +719,8 @@ export class RollupContract {
|
|
|
695
719
|
return this.rollup.read.getStatus([address]);
|
|
696
720
|
}
|
|
697
721
|
|
|
698
|
-
getBlobCommitmentsHash(checkpointNumber:
|
|
699
|
-
return this.rollup.read.getBlobCommitmentsHash([checkpointNumber]);
|
|
722
|
+
getBlobCommitmentsHash(checkpointNumber: CheckpointNumber) {
|
|
723
|
+
return this.rollup.read.getBlobCommitmentsHash([BigInt(checkpointNumber)]);
|
|
700
724
|
}
|
|
701
725
|
|
|
702
726
|
getCurrentBlobCommitmentsHash() {
|
|
@@ -752,7 +776,7 @@ export class RollupContract {
|
|
|
752
776
|
}
|
|
753
777
|
|
|
754
778
|
public listenToCheckpointInvalidated(
|
|
755
|
-
callback: (args: { checkpointNumber:
|
|
779
|
+
callback: (args: { checkpointNumber: CheckpointNumber }) => unknown,
|
|
756
780
|
): WatchContractEventReturnType {
|
|
757
781
|
return this.rollup.watchEvent.CheckpointInvalidated(
|
|
758
782
|
{},
|
|
@@ -761,7 +785,7 @@ export class RollupContract {
|
|
|
761
785
|
for (const log of logs) {
|
|
762
786
|
const args = log.args;
|
|
763
787
|
if (args.checkpointNumber !== undefined) {
|
|
764
|
-
callback({ checkpointNumber: args.checkpointNumber });
|
|
788
|
+
callback({ checkpointNumber: CheckpointNumber.fromBigInt(args.checkpointNumber) });
|
|
765
789
|
}
|
|
766
790
|
}
|
|
767
791
|
},
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { L1TxRequest } from '@aztec/ethereum/l1-tx-utils';
|
|
2
|
+
import type { ViemClient } from '@aztec/ethereum/types';
|
|
3
|
+
import { tryExtractEvent } from '@aztec/ethereum/utils';
|
|
2
4
|
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
3
5
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
4
6
|
import { EthAddress } from '@aztec/foundation/eth-address';
|