|
1 | | -use common::RollupBoostTestHarnessBuilder; |
| 1 | +use common::{RollupBoostTestHarnessBuilder, proxy::ProxyHandler}; |
| 2 | +use futures::FutureExt as _; |
| 3 | +use serde_json::Value; |
| 4 | +use std::pin::Pin; |
| 5 | +use std::sync::{Arc, Mutex}; |
2 | 6 |
|
3 | 7 | mod common; |
4 | 8 |
|
| 9 | +#[derive(Debug, Clone, Default)] |
| 10 | +struct MaxDaSizeHandler { |
| 11 | + found_max_da_value: Arc<Mutex<u64>>, |
| 12 | +} |
| 13 | + |
| 14 | +impl MaxDaSizeHandler { |
| 15 | + fn get_found_max_da_value(&self) -> u64 { |
| 16 | + *self.found_max_da_value.lock().unwrap() |
| 17 | + } |
| 18 | +} |
| 19 | + |
| 20 | +impl ProxyHandler for MaxDaSizeHandler { |
| 21 | + fn handle( |
| 22 | + &self, |
| 23 | + method: String, |
| 24 | + params: Value, |
| 25 | + _result: Value, |
| 26 | + ) -> Pin<Box<dyn Future<Output = Option<Value>> + Send>> { |
| 27 | + println!("method: {:?}", method); |
| 28 | + if method == "miner_setMaxDASize" { |
| 29 | + // decode the params |
| 30 | + let params: Vec<u64> = serde_json::from_value(params).unwrap(); |
| 31 | + assert_eq!(params.len(), 2); |
| 32 | + println!("params: {:?}", params); |
| 33 | + *self.found_max_da_value.lock().unwrap() = params[0]; |
| 34 | + } |
| 35 | + async move { None }.boxed() |
| 36 | + } |
| 37 | +} |
| 38 | + |
5 | 39 | #[tokio::test] |
6 | 40 | async fn miner_set_max_da_size() -> eyre::Result<()> { |
7 | | - let harness = RollupBoostTestHarnessBuilder::new("miner set max da size") |
8 | | - .with_isthmus_block(5) |
| 41 | + let handler = Arc::new(MaxDaSizeHandler::default()); |
| 42 | + |
| 43 | + let harness = RollupBoostTestHarnessBuilder::new("miner_set_max_da_size") |
| 44 | + .with_isthmus_block(0) |
| 45 | + .proxy_handler(handler.clone()) |
9 | 46 | .build() |
10 | 47 | .await?; |
11 | 48 | let mut block_generator = harness.block_generator().await?; |
12 | | - block_generator.generate_builder_blocks(10).await?; |
| 49 | + block_generator.generate_builder_blocks(1).await?; |
| 50 | + |
| 51 | + let engine_api = harness.engine_api().await?; |
| 52 | + |
| 53 | + // send a max da size request |
| 54 | + let res = engine_api.set_max_da_size(1000000, 1000000).await?; |
| 55 | + println!("res: {:?}", res); |
| 56 | + let found = handler.get_found_max_da_value(); |
| 57 | + println!("found: {}", found); |
13 | 58 |
|
14 | 59 | Ok(()) |
15 | 60 | } |
0 commit comments