@aztec/ethereum 0.0.1-commit.dbf9cec → 0.0.1-commit.df81a97b5
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 +10 -2
- package/dest/client.d.ts.map +1 -1
- package/dest/client.js +13 -7
- package/dest/config.d.ts +3 -1
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +6 -0
- package/dest/contracts/multicall.d.ts +51 -2
- package/dest/contracts/multicall.d.ts.map +1 -1
- package/dest/contracts/multicall.js +85 -0
- package/dest/contracts/registry.d.ts +3 -1
- package/dest/contracts/registry.d.ts.map +1 -1
- package/dest/contracts/registry.js +30 -1
- package/dest/contracts/rollup.d.ts +17 -4
- package/dest/contracts/rollup.d.ts.map +1 -1
- package/dest/contracts/rollup.js +50 -10
- package/dest/l1_artifacts.d.ts +69 -69
- package/dest/l1_reader.d.ts +3 -1
- package/dest/l1_reader.d.ts.map +1 -1
- package/dest/l1_reader.js +6 -1
- package/dest/l1_tx_utils/l1_tx_utils.d.ts +3 -1
- package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/l1_tx_utils.js +12 -1
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +1 -1
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/readonly_l1_tx_utils.js +8 -4
- package/dest/publisher_manager.d.ts +21 -7
- package/dest/publisher_manager.d.ts.map +1 -1
- package/dest/publisher_manager.js +81 -7
- package/dest/test/chain_monitor.d.ts +22 -3
- package/dest/test/chain_monitor.d.ts.map +1 -1
- package/dest/test/chain_monitor.js +33 -2
- package/dest/test/eth_cheat_codes.d.ts +6 -4
- package/dest/test/eth_cheat_codes.d.ts.map +1 -1
- package/dest/test/eth_cheat_codes.js +6 -4
- package/dest/test/start_anvil.d.ts +23 -3
- package/dest/test/start_anvil.d.ts.map +1 -1
- package/dest/test/start_anvil.js +143 -29
- package/dest/utils.d.ts +1 -1
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +16 -12
- package/package.json +5 -7
- package/src/client.ts +10 -2
- package/src/config.ts +12 -0
- package/src/contracts/multicall.ts +65 -1
- package/src/contracts/registry.ts +31 -1
- package/src/contracts/rollup.ts +59 -18
- package/src/l1_reader.ts +13 -1
- package/src/l1_tx_utils/l1_tx_utils.ts +14 -1
- package/src/l1_tx_utils/readonly_l1_tx_utils.ts +8 -4
- package/src/publisher_manager.ts +105 -10
- package/src/test/chain_monitor.ts +60 -3
- package/src/test/eth_cheat_codes.ts +6 -4
- package/src/test/start_anvil.ts +177 -29
- package/src/utils.ts +17 -14
package/dest/contracts/rollup.js
CHANGED
|
@@ -499,6 +499,16 @@ export class RollupContract {
|
|
|
499
499
|
2,
|
|
500
500
|
"getGenesisArchiveTreeRoot"
|
|
501
501
|
],
|
|
502
|
+
[
|
|
503
|
+
memoize,
|
|
504
|
+
2,
|
|
505
|
+
"getVkTreeRoot"
|
|
506
|
+
],
|
|
507
|
+
[
|
|
508
|
+
memoize,
|
|
509
|
+
2,
|
|
510
|
+
"getProtocolContractsHash"
|
|
511
|
+
],
|
|
502
512
|
[
|
|
503
513
|
memoize,
|
|
504
514
|
2,
|
|
@@ -640,18 +650,35 @@ export class RollupContract {
|
|
|
640
650
|
0n
|
|
641
651
|
]));
|
|
642
652
|
}
|
|
653
|
+
async getVkTreeRoot() {
|
|
654
|
+
const slot = BigInt(RollupContract.stfStorageSlot) + 3n;
|
|
655
|
+
const value = await this.client.getStorageAt({
|
|
656
|
+
address: this.address,
|
|
657
|
+
slot: `0x${slot.toString(16)}`
|
|
658
|
+
});
|
|
659
|
+
return Fr.fromString(value ?? '0x0');
|
|
660
|
+
}
|
|
661
|
+
async getProtocolContractsHash() {
|
|
662
|
+
const slot = BigInt(RollupContract.stfStorageSlot) + 4n;
|
|
663
|
+
const value = await this.client.getStorageAt({
|
|
664
|
+
address: this.address,
|
|
665
|
+
slot: `0x${slot.toString(16)}`
|
|
666
|
+
});
|
|
667
|
+
return Fr.fromString(value ?? '0x0');
|
|
668
|
+
}
|
|
643
669
|
/**
|
|
644
670
|
* Returns rollup constants used for epoch queries.
|
|
645
671
|
* Return type is `L1RollupConstants` which is defined in stdlib,
|
|
646
672
|
* so we cant reference it until we move this contract to that package.
|
|
647
673
|
*/ async getRollupConstants() {
|
|
648
|
-
const [l1StartBlock, l1GenesisTime, slotDuration, epochDuration, proofSubmissionEpochs, targetCommitteeSize] = await Promise.all([
|
|
674
|
+
const [l1StartBlock, l1GenesisTime, slotDuration, epochDuration, proofSubmissionEpochs, targetCommitteeSize, rollupManaLimit] = await Promise.all([
|
|
649
675
|
this.getL1StartBlock(),
|
|
650
676
|
this.getL1GenesisTime(),
|
|
651
677
|
this.getSlotDuration(),
|
|
652
678
|
this.getEpochDuration(),
|
|
653
679
|
this.getProofSubmissionEpochs(),
|
|
654
|
-
this.getTargetCommitteeSize()
|
|
680
|
+
this.getTargetCommitteeSize(),
|
|
681
|
+
this.getManaLimit()
|
|
655
682
|
]);
|
|
656
683
|
return {
|
|
657
684
|
l1StartBlock,
|
|
@@ -659,7 +686,8 @@ export class RollupContract {
|
|
|
659
686
|
slotDuration,
|
|
660
687
|
epochDuration: Number(epochDuration),
|
|
661
688
|
proofSubmissionEpochs: Number(proofSubmissionEpochs),
|
|
662
|
-
targetCommitteeSize
|
|
689
|
+
targetCommitteeSize,
|
|
690
|
+
rollupManaLimit: Number(rollupManaLimit)
|
|
663
691
|
};
|
|
664
692
|
}
|
|
665
693
|
async getSlasherAddress() {
|
|
@@ -737,8 +765,9 @@ export class RollupContract {
|
|
|
737
765
|
async getCheckpointNumber() {
|
|
738
766
|
return CheckpointNumber.fromBigInt(await this.rollup.read.getPendingCheckpointNumber());
|
|
739
767
|
}
|
|
740
|
-
async getProvenCheckpointNumber() {
|
|
741
|
-
|
|
768
|
+
async getProvenCheckpointNumber(options) {
|
|
769
|
+
await checkBlockTag(options?.blockNumber, this.client);
|
|
770
|
+
return CheckpointNumber.fromBigInt(await this.rollup.read.getProvenCheckpointNumber(options));
|
|
742
771
|
}
|
|
743
772
|
async getSlotNumber() {
|
|
744
773
|
return SlotNumber.fromBigInt(await this.rollup.read.getCurrentSlot());
|
|
@@ -937,9 +966,8 @@ export class RollupContract {
|
|
|
937
966
|
* @return [slot, checkpointNumber, timeOfNextL1Slot] - If you can propose, the L2 slot number, checkpoint number and
|
|
938
967
|
* timestamp of the next L1 block
|
|
939
968
|
* @throws otherwise
|
|
940
|
-
*/ async
|
|
941
|
-
const
|
|
942
|
-
const timeOfNextL1Slot = latestBlock.timestamp + BigInt(slotDuration);
|
|
969
|
+
*/ async canProposeAt(archive, account, timestamp, opts = {}) {
|
|
970
|
+
const timeOfNextL1Slot = timestamp;
|
|
943
971
|
const who = typeof account === 'string' ? account : account.address;
|
|
944
972
|
try {
|
|
945
973
|
const { result: [slot, checkpointNumber] } = await this.client.simulateContract({
|
|
@@ -1037,6 +1065,18 @@ export class RollupContract {
|
|
|
1037
1065
|
inFeeAsset
|
|
1038
1066
|
]);
|
|
1039
1067
|
}
|
|
1068
|
+
async getManaMinFeeComponentsAt(timestamp, inFeeAsset) {
|
|
1069
|
+
const result = await this.rollup.read.getManaMinFeeComponentsAt([
|
|
1070
|
+
timestamp,
|
|
1071
|
+
inFeeAsset
|
|
1072
|
+
]);
|
|
1073
|
+
return {
|
|
1074
|
+
sequencerCost: result.sequencerCost,
|
|
1075
|
+
proverCost: result.proverCost,
|
|
1076
|
+
congestionCost: result.congestionCost,
|
|
1077
|
+
congestionMultiplier: result.congestionMultiplier
|
|
1078
|
+
};
|
|
1079
|
+
}
|
|
1040
1080
|
async getSlotAt(timestamp) {
|
|
1041
1081
|
return SlotNumber.fromBigInt(await this.rollup.read.getSlotAt([
|
|
1042
1082
|
timestamp
|
|
@@ -1086,10 +1126,10 @@ export class RollupContract {
|
|
|
1086
1126
|
prover
|
|
1087
1127
|
]);
|
|
1088
1128
|
}
|
|
1089
|
-
async getAttesters() {
|
|
1129
|
+
async getAttesters(timestamp) {
|
|
1090
1130
|
const attesterSize = await this.getActiveAttesterCount();
|
|
1091
1131
|
const gse = new GSEContract(this.client, await this.getGSE());
|
|
1092
|
-
const ts = (await this.client.getBlock()).timestamp;
|
|
1132
|
+
const ts = timestamp ?? (await this.client.getBlock()).timestamp;
|
|
1093
1133
|
const indices = Array.from({
|
|
1094
1134
|
length: attesterSize
|
|
1095
1135
|
}, (_, i)=>BigInt(i));
|
package/dest/l1_artifacts.d.ts
CHANGED
|
@@ -12032,100 +12032,100 @@ export declare const RollupArtifact: {
|
|
|
12032
12032
|
readonly start: 1538;
|
|
12033
12033
|
readonly length: 20;
|
|
12034
12034
|
}, {
|
|
12035
|
-
readonly start:
|
|
12035
|
+
readonly start: 11069;
|
|
12036
12036
|
readonly length: 20;
|
|
12037
12037
|
}, {
|
|
12038
|
-
readonly start:
|
|
12038
|
+
readonly start: 11670;
|
|
12039
12039
|
readonly length: 20;
|
|
12040
12040
|
}, {
|
|
12041
|
-
readonly start:
|
|
12041
|
+
readonly start: 11916;
|
|
12042
12042
|
readonly length: 20;
|
|
12043
12043
|
}, {
|
|
12044
|
-
readonly start:
|
|
12044
|
+
readonly start: 12333;
|
|
12045
12045
|
readonly length: 20;
|
|
12046
12046
|
}, {
|
|
12047
|
-
readonly start:
|
|
12047
|
+
readonly start: 12607;
|
|
12048
12048
|
readonly length: 20;
|
|
12049
12049
|
}, {
|
|
12050
|
-
readonly start:
|
|
12050
|
+
readonly start: 12801;
|
|
12051
12051
|
readonly length: 20;
|
|
12052
12052
|
}, {
|
|
12053
|
-
readonly start:
|
|
12053
|
+
readonly start: 12884;
|
|
12054
12054
|
readonly length: 20;
|
|
12055
12055
|
}, {
|
|
12056
|
-
readonly start:
|
|
12056
|
+
readonly start: 13131;
|
|
12057
12057
|
readonly length: 20;
|
|
12058
12058
|
}, {
|
|
12059
|
-
readonly start:
|
|
12059
|
+
readonly start: 13168;
|
|
12060
12060
|
readonly length: 20;
|
|
12061
12061
|
}, {
|
|
12062
|
-
readonly start:
|
|
12062
|
+
readonly start: 13271;
|
|
12063
12063
|
readonly length: 20;
|
|
12064
12064
|
}, {
|
|
12065
|
-
readonly start:
|
|
12065
|
+
readonly start: 13518;
|
|
12066
12066
|
readonly length: 20;
|
|
12067
12067
|
}, {
|
|
12068
|
-
readonly start:
|
|
12068
|
+
readonly start: 13711;
|
|
12069
12069
|
readonly length: 20;
|
|
12070
12070
|
}, {
|
|
12071
|
-
readonly start:
|
|
12071
|
+
readonly start: 14043;
|
|
12072
12072
|
readonly length: 20;
|
|
12073
12073
|
}, {
|
|
12074
|
-
readonly start:
|
|
12074
|
+
readonly start: 14201;
|
|
12075
12075
|
readonly length: 20;
|
|
12076
12076
|
}, {
|
|
12077
|
-
readonly start:
|
|
12077
|
+
readonly start: 14483;
|
|
12078
12078
|
readonly length: 20;
|
|
12079
12079
|
}, {
|
|
12080
|
-
readonly start:
|
|
12080
|
+
readonly start: 14885;
|
|
12081
12081
|
readonly length: 20;
|
|
12082
12082
|
}, {
|
|
12083
|
-
readonly start:
|
|
12083
|
+
readonly start: 14971;
|
|
12084
12084
|
readonly length: 20;
|
|
12085
12085
|
}, {
|
|
12086
|
-
readonly start:
|
|
12086
|
+
readonly start: 15133;
|
|
12087
12087
|
readonly length: 20;
|
|
12088
12088
|
}, {
|
|
12089
|
-
readonly start:
|
|
12089
|
+
readonly start: 16923;
|
|
12090
12090
|
readonly length: 20;
|
|
12091
12091
|
}, {
|
|
12092
|
-
readonly start:
|
|
12092
|
+
readonly start: 17048;
|
|
12093
12093
|
readonly length: 20;
|
|
12094
12094
|
}, {
|
|
12095
|
-
readonly start:
|
|
12095
|
+
readonly start: 17171;
|
|
12096
12096
|
readonly length: 20;
|
|
12097
12097
|
}, {
|
|
12098
|
-
readonly start:
|
|
12098
|
+
readonly start: 17302;
|
|
12099
12099
|
readonly length: 20;
|
|
12100
12100
|
}, {
|
|
12101
|
-
readonly start:
|
|
12101
|
+
readonly start: 17411;
|
|
12102
12102
|
readonly length: 20;
|
|
12103
12103
|
}, {
|
|
12104
|
-
readonly start:
|
|
12104
|
+
readonly start: 18353;
|
|
12105
12105
|
readonly length: 20;
|
|
12106
12106
|
}, {
|
|
12107
|
-
readonly start:
|
|
12107
|
+
readonly start: 18710;
|
|
12108
12108
|
readonly length: 20;
|
|
12109
12109
|
}];
|
|
12110
12110
|
};
|
|
12111
12111
|
readonly "src/core/libraries/rollup/RollupOperationsExtLib.sol": {
|
|
12112
12112
|
readonly RollupOperationsExtLib: readonly [{
|
|
12113
|
-
readonly start:
|
|
12113
|
+
readonly start: 12067;
|
|
12114
12114
|
readonly length: 20;
|
|
12115
12115
|
}, {
|
|
12116
|
-
readonly start:
|
|
12116
|
+
readonly start: 14773;
|
|
12117
12117
|
readonly length: 20;
|
|
12118
12118
|
}, {
|
|
12119
|
-
readonly start:
|
|
12119
|
+
readonly start: 15292;
|
|
12120
12120
|
readonly length: 20;
|
|
12121
12121
|
}, {
|
|
12122
|
-
readonly start:
|
|
12122
|
+
readonly start: 15632;
|
|
12123
12123
|
readonly length: 20;
|
|
12124
12124
|
}, {
|
|
12125
|
-
readonly start:
|
|
12125
|
+
readonly start: 15756;
|
|
12126
12126
|
readonly length: 20;
|
|
12127
12127
|
}, {
|
|
12128
|
-
readonly start:
|
|
12128
|
+
readonly start: 17238;
|
|
12129
12129
|
readonly length: 20;
|
|
12130
12130
|
}];
|
|
12131
12131
|
};
|
|
@@ -12140,118 +12140,118 @@ export declare const RollupArtifact: {
|
|
|
12140
12140
|
readonly start: 1052;
|
|
12141
12141
|
readonly length: 20;
|
|
12142
12142
|
}, {
|
|
12143
|
-
readonly start:
|
|
12143
|
+
readonly start: 10605;
|
|
12144
12144
|
readonly length: 20;
|
|
12145
12145
|
}, {
|
|
12146
|
-
readonly start:
|
|
12146
|
+
readonly start: 10749;
|
|
12147
12147
|
readonly length: 20;
|
|
12148
12148
|
}, {
|
|
12149
|
-
readonly start:
|
|
12149
|
+
readonly start: 10890;
|
|
12150
12150
|
readonly length: 20;
|
|
12151
12151
|
}, {
|
|
12152
|
-
readonly start:
|
|
12152
|
+
readonly start: 11185;
|
|
12153
12153
|
readonly length: 20;
|
|
12154
12154
|
}, {
|
|
12155
|
-
readonly start:
|
|
12155
|
+
readonly start: 11281;
|
|
12156
12156
|
readonly length: 20;
|
|
12157
12157
|
}, {
|
|
12158
|
-
readonly start:
|
|
12158
|
+
readonly start: 11386;
|
|
12159
12159
|
readonly length: 20;
|
|
12160
12160
|
}, {
|
|
12161
|
-
readonly start:
|
|
12161
|
+
readonly start: 11715;
|
|
12162
12162
|
readonly length: 20;
|
|
12163
12163
|
}, {
|
|
12164
|
-
readonly start:
|
|
12164
|
+
readonly start: 11844;
|
|
12165
12165
|
readonly length: 20;
|
|
12166
12166
|
}, {
|
|
12167
|
-
readonly start:
|
|
12167
|
+
readonly start: 12015;
|
|
12168
12168
|
readonly length: 20;
|
|
12169
12169
|
}, {
|
|
12170
|
-
readonly start:
|
|
12170
|
+
readonly start: 12213;
|
|
12171
12171
|
readonly length: 20;
|
|
12172
12172
|
}, {
|
|
12173
|
-
readonly start:
|
|
12173
|
+
readonly start: 12473;
|
|
12174
12174
|
readonly length: 20;
|
|
12175
12175
|
}, {
|
|
12176
|
-
readonly start:
|
|
12176
|
+
readonly start: 13376;
|
|
12177
12177
|
readonly length: 20;
|
|
12178
12178
|
}, {
|
|
12179
|
-
readonly start:
|
|
12179
|
+
readonly start: 13632;
|
|
12180
12180
|
readonly length: 20;
|
|
12181
12181
|
}, {
|
|
12182
|
-
readonly start:
|
|
12182
|
+
readonly start: 13819;
|
|
12183
12183
|
readonly length: 20;
|
|
12184
12184
|
}, {
|
|
12185
|
-
readonly start:
|
|
12185
|
+
readonly start: 13946;
|
|
12186
12186
|
readonly length: 20;
|
|
12187
12187
|
}, {
|
|
12188
|
-
readonly start:
|
|
12188
|
+
readonly start: 14379;
|
|
12189
12189
|
readonly length: 20;
|
|
12190
12190
|
}, {
|
|
12191
|
-
readonly start:
|
|
12191
|
+
readonly start: 14548;
|
|
12192
12192
|
readonly length: 20;
|
|
12193
12193
|
}, {
|
|
12194
|
-
readonly start:
|
|
12194
|
+
readonly start: 14584;
|
|
12195
12195
|
readonly length: 20;
|
|
12196
12196
|
}, {
|
|
12197
|
-
readonly start:
|
|
12197
|
+
readonly start: 15513;
|
|
12198
12198
|
readonly length: 20;
|
|
12199
12199
|
}, {
|
|
12200
|
-
readonly start:
|
|
12200
|
+
readonly start: 15847;
|
|
12201
12201
|
readonly length: 20;
|
|
12202
12202
|
}, {
|
|
12203
|
-
readonly start:
|
|
12203
|
+
readonly start: 16023;
|
|
12204
12204
|
readonly length: 20;
|
|
12205
12205
|
}, {
|
|
12206
|
-
readonly start:
|
|
12206
|
+
readonly start: 16170;
|
|
12207
12207
|
readonly length: 20;
|
|
12208
12208
|
}, {
|
|
12209
|
-
readonly start:
|
|
12209
|
+
readonly start: 16214;
|
|
12210
12210
|
readonly length: 20;
|
|
12211
12211
|
}, {
|
|
12212
|
-
readonly start:
|
|
12212
|
+
readonly start: 16360;
|
|
12213
12213
|
readonly length: 20;
|
|
12214
12214
|
}, {
|
|
12215
|
-
readonly start:
|
|
12215
|
+
readonly start: 16471;
|
|
12216
12216
|
readonly length: 20;
|
|
12217
12217
|
}, {
|
|
12218
|
-
readonly start:
|
|
12218
|
+
readonly start: 16677;
|
|
12219
12219
|
readonly length: 20;
|
|
12220
12220
|
}, {
|
|
12221
|
-
readonly start:
|
|
12221
|
+
readonly start: 16742;
|
|
12222
12222
|
readonly length: 20;
|
|
12223
12223
|
}, {
|
|
12224
|
-
readonly start:
|
|
12224
|
+
readonly start: 16809;
|
|
12225
12225
|
readonly length: 20;
|
|
12226
12226
|
}, {
|
|
12227
|
-
readonly start:
|
|
12227
|
+
readonly start: 16976;
|
|
12228
12228
|
readonly length: 20;
|
|
12229
12229
|
}, {
|
|
12230
|
-
readonly start:
|
|
12230
|
+
readonly start: 17489;
|
|
12231
12231
|
readonly length: 20;
|
|
12232
12232
|
}, {
|
|
12233
|
-
readonly start:
|
|
12233
|
+
readonly start: 17574;
|
|
12234
12234
|
readonly length: 20;
|
|
12235
12235
|
}, {
|
|
12236
|
-
readonly start:
|
|
12236
|
+
readonly start: 17610;
|
|
12237
12237
|
readonly length: 20;
|
|
12238
12238
|
}, {
|
|
12239
|
-
readonly start:
|
|
12239
|
+
readonly start: 17677;
|
|
12240
12240
|
readonly length: 20;
|
|
12241
12241
|
}, {
|
|
12242
|
-
readonly start:
|
|
12242
|
+
readonly start: 17791;
|
|
12243
12243
|
readonly length: 20;
|
|
12244
12244
|
}, {
|
|
12245
|
-
readonly start:
|
|
12245
|
+
readonly start: 17917;
|
|
12246
12246
|
readonly length: 20;
|
|
12247
12247
|
}, {
|
|
12248
|
-
readonly start:
|
|
12248
|
+
readonly start: 18488;
|
|
12249
12249
|
readonly length: 20;
|
|
12250
12250
|
}, {
|
|
12251
|
-
readonly start:
|
|
12251
|
+
readonly start: 18560;
|
|
12252
12252
|
readonly length: 20;
|
|
12253
12253
|
}, {
|
|
12254
|
-
readonly start:
|
|
12254
|
+
readonly start: 18667;
|
|
12255
12255
|
readonly length: 20;
|
|
12256
12256
|
}];
|
|
12257
12257
|
};
|
package/dest/l1_reader.d.ts
CHANGED
|
@@ -12,7 +12,9 @@ export interface L1ReaderConfig {
|
|
|
12
12
|
l1Contracts: L1ContractAddresses;
|
|
13
13
|
/** The polling interval viem uses in ms */
|
|
14
14
|
viemPollingIntervalMS: number;
|
|
15
|
+
/** Timeout for HTTP requests to the L1 RPC node in ms. */
|
|
16
|
+
l1HttpTimeoutMS?: number;
|
|
15
17
|
}
|
|
16
18
|
export declare const l1ReaderConfigMappings: ConfigMappingsType<L1ReaderConfig>;
|
|
17
19
|
export declare function getL1ReaderConfigFromEnv(): L1ReaderConfig;
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfcmVhZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbDFfcmVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUl4QixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFBRSxLQUFLLG1CQUFtQixFQUE4QixNQUFNLDRCQUE0QixDQUFDO0FBRWxHLDJDQUEyQztBQUMzQyxNQUFNLFdBQVcsY0FBYztJQUM3QiwwRkFBMEY7SUFDMUYsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3BCLDBFQUEwRTtJQUMxRSxjQUFjLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDekIseUNBQXlDO0lBQ3pDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIseUNBQXlDO0lBQ3pDLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQztJQUNqQywyQ0FBMkM7SUFDM0MscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0lBQzlCLDBEQUEwRDtJQUMxRCxlQUFlLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDMUI7QUFFRCxlQUFPLE1BQU0sc0JBQXNCLEVBQUUsa0JBQWtCLENBQUMsY0FBYyxDQWdDckUsQ0FBQztBQUVGLHdCQUFnQix3QkFBd0IsSUFBSSxjQUFjLENBRXpEIn0=
|
package/dest/l1_reader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l1_reader.d.ts","sourceRoot":"","sources":["../src/l1_reader.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"l1_reader.d.ts","sourceRoot":"","sources":["../src/l1_reader.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,mBAAmB,EAA8B,MAAM,4BAA4B,CAAC;AAElG,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,0FAA0F;IAC1F,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,0EAA0E;IAC1E,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,WAAW,EAAE,mBAAmB,CAAC;IACjC,2CAA2C;IAC3C,qBAAqB,EAAE,MAAM,CAAC;IAC9B,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,CAAC,cAAc,CAgCrE,CAAC;AAEF,wBAAgB,wBAAwB,IAAI,cAAc,CAEzD"}
|
package/dest/l1_reader.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
|
|
1
|
+
import { getConfigFromMappings, numberConfigHelper, optionalNumberConfigHelper } from '@aztec/foundation/config';
|
|
2
2
|
import { l1ContractAddressesMapping } from './l1_contract_addresses.js';
|
|
3
3
|
export const l1ReaderConfigMappings = {
|
|
4
4
|
l1Contracts: {
|
|
@@ -26,6 +26,11 @@ export const l1ReaderConfigMappings = {
|
|
|
26
26
|
env: 'L1_READER_VIEM_POLLING_INTERVAL_MS',
|
|
27
27
|
description: 'The polling interval viem uses in ms',
|
|
28
28
|
...numberConfigHelper(1_000)
|
|
29
|
+
},
|
|
30
|
+
l1HttpTimeoutMS: {
|
|
31
|
+
env: 'ETHEREUM_HTTP_TIMEOUT_MS',
|
|
32
|
+
description: 'Timeout for HTTP requests to the L1 RPC node in ms.',
|
|
33
|
+
...optionalNumberConfigHelper()
|
|
29
34
|
}
|
|
30
35
|
};
|
|
31
36
|
export function getL1ReaderConfigFromEnv() {
|
|
@@ -16,6 +16,8 @@ export declare class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
|
16
16
|
protected store?: IL1TxStore | undefined;
|
|
17
17
|
protected metrics?: IL1TxMetrics | undefined;
|
|
18
18
|
protected txs: L1TxState[];
|
|
19
|
+
/** Last nonce successfully sent to the chain. Used as a lower bound when a fallback RPC node returns a stale count. */
|
|
20
|
+
private lastSentNonce;
|
|
19
21
|
/** Tx delayer for testing. Only set when enableDelayer config is true. */
|
|
20
22
|
delayer?: Delayer;
|
|
21
23
|
/** KZG instance for blob operations. */
|
|
@@ -100,4 +102,4 @@ export declare class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
|
100
102
|
ethereumSlotDuration: bigint | number;
|
|
101
103
|
}, bindings: LoggerBindings): Delayer;
|
|
102
104
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfdHhfdXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sMV90eF91dGlscy9sMV90eF91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUk3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBR3ZGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUl2RCxPQUFPLEVBQ0wsS0FBSyxHQUFHLEVBQ1IsS0FBSyxjQUFjLEVBQ25CLEtBQUssR0FBRyxFQUNSLEtBQUssZ0NBQWdDLEVBQ3JDLEtBQUssYUFBYSxFQUNsQixLQUFLLGtCQUFrQixFQUl4QixNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5QyxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQTJCLE1BQU0sYUFBYSxDQUFDO0FBRTVFLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUF3QyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFFTCxLQUFLLFlBQVksRUFDakIsS0FBSyxVQUFVLEVBQ2YsS0FBSyxXQUFXLEVBQ2hCLEtBQUssU0FBUyxFQUNkLEtBQUssZUFBZSxFQUVwQixZQUFZLEVBRWIsTUFBTSxZQUFZLENBQUM7QUFJcEIscUJBQWEsU0FBVSxTQUFRLGlCQUFpQjtJQVU1QixNQUFNLEVBQUUsVUFBVTtJQUMzQixPQUFPLEVBQUUsVUFBVTtJQUMxQixTQUFTLENBQUMs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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l1_tx_utils.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/l1_tx_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAGvF,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAIvD,OAAO,EACL,KAAK,GAAG,EACR,KAAK,cAAc,EACnB,KAAK,GAAG,EACR,KAAK,gCAAgC,EACrC,KAAK,aAAa,EAClB,KAAK,kBAAkB,EAIxB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,KAAK,eAAe,EAA2B,MAAM,aAAa,CAAC;AAE5E,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAwC,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,eAAe,EAEpB,YAAY,EAEb,MAAM,YAAY,CAAC;AAIpB,qBAAa,SAAU,SAAQ,iBAAiB;
|
|
1
|
+
{"version":3,"file":"l1_tx_utils.d.ts","sourceRoot":"","sources":["../../src/l1_tx_utils/l1_tx_utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,7 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
|
22
22
|
store;
|
|
23
23
|
metrics;
|
|
24
24
|
txs;
|
|
25
|
+
/** Last nonce successfully sent to the chain. Used as a lower bound when a fallback RPC node returns a stale count. */ lastSentNonce;
|
|
25
26
|
/** Tx delayer for testing. Only set when enableDelayer config is true. */ delayer;
|
|
26
27
|
/** KZG instance for blob operations. */ kzg;
|
|
27
28
|
constructor(client, address, signer, logger = createLogger('ethereum:publisher'), dateProvider = new DateProvider(), config, debugMaxGasLimit = false, store, metrics, kzg, delayer){
|
|
@@ -59,6 +60,11 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
|
59
60
|
this.metrics?.recordMinedTx(l1TxState, new Date(l1Timestamp));
|
|
60
61
|
} else if (newState === TxUtilsState.NOT_MINED) {
|
|
61
62
|
this.metrics?.recordDroppedTx(l1TxState);
|
|
63
|
+
// The tx was dropped: the chain nonce reverted to l1TxState.nonce, so our lower bound is
|
|
64
|
+
// no longer valid. Clear it so the next send fetches the real nonce from the chain.
|
|
65
|
+
if (this.lastSentNonce === l1TxState.nonce) {
|
|
66
|
+
this.lastSentNonce = undefined;
|
|
67
|
+
}
|
|
62
68
|
}
|
|
63
69
|
// Update state in the store
|
|
64
70
|
await this.store?.saveState(sender, l1TxState).catch((err)=>this.logger.error('Failed to persist L1 tx state', err));
|
|
@@ -165,10 +171,13 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
|
165
171
|
if (gasConfig.txTimeoutAt && now > gasConfig.txTimeoutAt) {
|
|
166
172
|
throw new TimeoutError(`Transaction timed out before sending (now ${now.toISOString()} > timeoutAt ${gasConfig.txTimeoutAt.toISOString()})`);
|
|
167
173
|
}
|
|
168
|
-
const
|
|
174
|
+
const chainNonce = await this.client.getTransactionCount({
|
|
169
175
|
address: account,
|
|
170
176
|
blockTag: 'pending'
|
|
171
177
|
});
|
|
178
|
+
// If a fallback RPC node returns a stale count (lower than what we last sent), use our
|
|
179
|
+
// local lower bound to avoid sending a duplicate of an already-pending transaction.
|
|
180
|
+
const nonce = this.lastSentNonce !== undefined && chainNonce <= this.lastSentNonce ? this.lastSentNonce + 1 : chainNonce;
|
|
172
181
|
const baseState = {
|
|
173
182
|
request,
|
|
174
183
|
gasLimit,
|
|
@@ -184,6 +193,8 @@ export class L1TxUtils extends ReadOnlyL1TxUtils {
|
|
|
184
193
|
const txHash = await this.client.sendRawTransaction({
|
|
185
194
|
serializedTransaction: signedRequest
|
|
186
195
|
});
|
|
196
|
+
// Update after tx is sent successfully
|
|
197
|
+
this.lastSentNonce = nonce;
|
|
187
198
|
// Create the new state for monitoring
|
|
188
199
|
const l1TxState = {
|
|
189
200
|
...baseState,
|
|
@@ -80,4 +80,4 @@ export declare class ReadOnlyL1TxUtils {
|
|
|
80
80
|
}>;
|
|
81
81
|
bumpGasLimit(gasLimit: bigint, _gasConfig?: L1TxUtilsConfig): bigint;
|
|
82
82
|
}
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHlfbDFfdHhfdXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sMV90eF91dGlscy9yZWFkb25seV9sMV90eF91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSXZELE9BQU8sRUFDTCxLQUFLLEdBQUcsRUFDUixLQUFLLE9BQU8sRUFFWixLQUFLLGNBQWMsRUFFbkIsS0FBSyxpQkFBaUIsRUFDdEIsS0FBSyxHQUFHLEVBR1IsS0FBSyxhQUFhLEVBS25CLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBbUQsTUFBTSxhQUFhLENBQUM7QUFTcEcsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFNeEYscUJBQWEsaUJBQWlCO0lBS25CLE1BQU0sRUFBRSxVQUFVO0lBQ3pCLFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTTthQUNSLFlBQVksRUFBRSxZQUFZO0lBRTFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPO0lBUjlCLE1BQU0sRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekMsU0FBUyxDQUFDLFdBQVcsVUFBUztJQUU5QixZQUNTLE1BQU0sRUFBRSxVQUFVLEVBQ2YsTUFBTSxvQkFBcUQsRUFDckQsWUFBWSxFQUFFLFlBQVksRUFDMUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUN2QixnQkFBZ0IsR0FBRSxPQUFlLEVBRzVDO0lBRU0sU0FBUyxTQUVmO0lBRU0sT0FBTyxTQUViO0lBRU0sUUFBUTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQUVkO0lBRU0sY0FBYyxvQkFFcEI7SUFFTSxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FFOUQ7SUFFRDs7T0FFRztJQUNVLFdBQVcsQ0FDdEIsa0JBQWtCLENBQUMsRUFBRSxlQUFlLEVBQ3BDLFFBQVEsR0FBRSxPQUFlLEVBQ3pCLE9BQU8sR0FBRSxNQUFVLEVBQ25CLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxPQUFPLFNBQVMsQ0FBQyxHQUFHLEtBQUssR0FBRyxRQUFRLEdBQzdELE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FvSm5CO0lBRUQ7O09BRUc7SUFDVSxXQUFXLENBQ3RCLE9BQU8sRUFBRSxPQUFPLEdBQUcsR0FBRyxFQUN0QixPQUFPLEVBQUUsV0FBVyxFQUNwQixVQUFVLENBQUMsRUFBRSxlQUFlLEVBQzVCLFdBQVcsQ0FBQyxFQUFFLFlBQVksR0FDekIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQWlDakI7SUFFSyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsQ0FZL0U7SUFFWSx5QkFBeUIsQ0FDcEMsSUFBSSxFQUFFLEdBQUcsRUFDVCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNyQixZQUFZLEVBQUUsTUFBTSxDQUFDO1FBQ3JCLEdBQUcsRUFBRSxHQUFHLENBQUM7UUFDVCxPQUFPLEVBQUUsR0FBRyxDQUFDO0tBQ2QsRUFDRCxVQUFVLEVBQUUsQ0FBQyxZQUFZLEdBQUc7UUFBRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDLEdBQUcsU0FBUyxFQUNyRSxhQUFhLEdBQUUsYUFBa0IsK0JBZ0RsQztJQUVZLFFBQVEsQ0FDbkIsT0FBTyxFQUFFLFdBQVcsR0FBRztRQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQTtLQUFFLEVBQ25ELGNBQWMsR0FBRSxjQUFjLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBTSxFQUNuRCxjQUFjLEdBQUUsYUFBa0IsRUFDbEMsR0FBRyxHQUFFLEdBQWUsRUFDcEIsVUFBVSxDQUFDLEVBQUUsZUFBZSxHQUFHO1FBQUUsbUJBQW1CLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxHQUM5RCxPQUFPLENBQUM7UUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQUMsTUFBTSxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUE7S0FBRSxDQUFDLENBVXJEO0lBRUQsVUFBZ0IsU0FBUyxDQUN2QixJQUFJLEVBQUUsR0FBRyxFQUNULGNBQWMsNENBQXFDLEVBQ25ELGNBQWMsMkJBQW9CLEVBQ2xDLFNBQVMsRUFBRSxlQUFlLEdBQUc7UUFBRSxtQkFBbUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEVBQzdELEdBQUcsRUFBRSxHQUFHOzs7T0FvQ1Q7SUFFTSxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxlQUFlLEdBQUcsTUFBTSxDQVcxRTtDQUNGIn0=
|
|
@@ -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,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,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,iBAAiB,EACtB,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;IAEM,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAE9D;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,
|
|
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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"}
|
|
@@ -78,9 +78,10 @@ export class ReadOnlyL1TxUtils {
|
|
|
78
78
|
const numBlocks = Math.ceil(gasConfig.stallTimeMs / BLOCK_TIME_MS);
|
|
79
79
|
for(let i = 0; i < numBlocks; i++){
|
|
80
80
|
// each block can go up 12.5% from previous baseFee
|
|
81
|
-
|
|
81
|
+
// ceil, (a+b-1)/b, to avoid truncation at small values (e.g. 1 wei blob base fee)
|
|
82
|
+
maxFeePerGas = (maxFeePerGas * (1_000n + 125n) + 999n) / 1_000n;
|
|
82
83
|
// same for blob gas fee
|
|
83
|
-
maxFeePerBlobGas = maxFeePerBlobGas * (1_000n + 125n) / 1_000n;
|
|
84
|
+
maxFeePerBlobGas = (maxFeePerBlobGas * (1_000n + 125n) + 999n) / 1_000n;
|
|
84
85
|
}
|
|
85
86
|
if (attempt > 0) {
|
|
86
87
|
const configBump = gasConfig.priorityFeeRetryBumpPercentage ?? defaultL1TxUtilsConfig.priorityFeeRetryBumpPercentage;
|
|
@@ -163,13 +164,16 @@ export class ReadOnlyL1TxUtils {
|
|
|
163
164
|
};
|
|
164
165
|
let initialEstimate = 0n;
|
|
165
166
|
if (_blobInputs) {
|
|
166
|
-
// @note requests with blobs also require maxFeePerBlobGas to be set
|
|
167
|
+
// @note requests with blobs also require maxFeePerBlobGas to be set.
|
|
168
|
+
// Use 2x buffer for maxFeePerBlobGas to avoid stale fees and to pass EIP-4844 validation (even if it is a gas estimation call).
|
|
169
|
+
// 1. maxFeePerBlobGas >= blobBaseFee
|
|
170
|
+
// 2. account balance >= gas * maxFeePerGas + maxFeePerBlobGas * blobCount + value
|
|
167
171
|
const gasPrice = await this.getGasPrice(gasConfig, true, 0);
|
|
168
172
|
initialEstimate = await this.client.estimateGas({
|
|
169
173
|
account,
|
|
170
174
|
...request,
|
|
171
175
|
..._blobInputs,
|
|
172
|
-
maxFeePerBlobGas: gasPrice.maxFeePerBlobGas,
|
|
176
|
+
maxFeePerBlobGas: gasPrice.maxFeePerBlobGas * 2n,
|
|
173
177
|
gas: MAX_L1_TX_LIMIT,
|
|
174
178
|
blockTag: 'latest'
|
|
175
179
|
});
|