Skip to content

Commit 85747e9

Browse files
authored
Fetch multiple stake table events in one rpc call (#3585)
* get all the events in one rpc call * fix log * use decode_raw_log() * fix comment * remove StakeTableEvents type * skip if authentication fails * sort events when fetching * add commission updated event
1 parent 4af2f26 commit 85747e9

File tree

5 files changed

+175
-391
lines changed

5 files changed

+175
-391
lines changed

sequencer/src/api.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2117,7 +2117,6 @@ mod test {
21172117
};
21182118
use espresso_types::{
21192119
config::PublicHotShotConfig,
2120-
sparse_mt::KeccakNode,
21212120
traits::{NullEventConsumer, PersistenceOptions},
21222121
v0_3::{Fetcher, RewardAmount, COMMISSION_BASIS_POINTS, REWARD_MERKLE_TREE_V1_ARITY},
21232122
v0_4::REWARD_MERKLE_TREE_V2_ARITY,
@@ -3496,14 +3495,13 @@ mod test {
34963495
}
34973496
let l1_block = header.l1_finalized().expect("l1 block not found");
34983497

3499-
let events = Fetcher::fetch_events_from_contract(
3498+
let sorted_events = Fetcher::fetch_events_from_contract(
35003499
l1_client.clone(),
35013500
stake_table,
35023501
None,
35033502
l1_block.number(),
35043503
)
3505-
.await;
3506-
let sorted_events = events.sort_events().expect("failed to sort");
3504+
.await?;
35073505

35083506
let mut sorted_dedup_removed = sorted_events.clone();
35093507
sorted_dedup_removed.dedup();
@@ -5967,6 +5965,8 @@ mod test {
59675965
wait_until_block_height(&client, "reward-state-v2/block-height", height).await;
59685966

59695967
for (address, _) in validated_state.reward_merkle_tree_v2.iter() {
5968+
use espresso_types::sparse_mt::KeccakNode;
5969+
59705970
let (_, expected_proof) = validated_state
59715971
.reward_merkle_tree_v2
59725972
.lookup(*address)

sequencer/src/persistence.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1272,8 +1272,7 @@ mod tests {
12721272
None,
12731273
block,
12741274
)
1275-
.await
1276-
.sort_events()?;
1275+
.await?;
12771276
assert_eq!(
12781277
contract_events, events,
12791278
"Events from contract and persistence do not match"
@@ -1546,6 +1545,7 @@ mod tests {
15461545
for _i in 0..10 {
15471546
// Wait for more than update interval to assert that persistence was updated
15481547
// L1 update interval is 7s in this test
1548+
15491549
tokio::time::sleep(std::time::Duration::from_secs(8)).await;
15501550

15511551
let block = anvil_provider
@@ -1567,8 +1567,7 @@ mod tests {
15671567

15681568
let contract_events =
15691569
Fetcher::fetch_events_from_contract(l1_client.clone(), st_addr, None, l1_block)
1570-
.await
1571-
.sort_events()?;
1570+
.await?;
15721571
assert_eq!(persisted_events, contract_events);
15731572

15741573
prev_l1_block = l1_block;

staking-cli/src/registration.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -340,8 +340,7 @@ mod test {
340340
Some(0),
341341
receipt.block_number.unwrap(),
342342
)
343-
.await
344-
.sort_events()?;
343+
.await?;
345344

346345
// verify that we only have the first RegisterV2 event
347346
assert_eq!(events.len(), 1);
@@ -402,8 +401,7 @@ mod test {
402401
Some(0),
403402
receipt.block_number.unwrap(),
404403
)
405-
.await
406-
.sort_events()?;
404+
.await?;
407405

408406
// verify that we only have the RegisterV2 event
409407
assert_eq!(events.len(), 1);

0 commit comments

Comments
 (0)