Skip to content

Commit d3ec820

Browse files
committed
optional fields in LogsParams
1 parent 8ce8d87 commit d3ec820

2 files changed

Lines changed: 12 additions & 10 deletions

File tree

src/ethereum-json-rpc-client/src/lib.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,8 @@ impl<C: Client> EthJsonRcpClient<C> {
326326
#[derive(Debug, Clone, Serialize, Deserialize)]
327327
pub struct EthGetLogsParams {
328328
/// Addresses of contracts to filter logs for.
329-
pub address: Vec<H160>,
329+
#[serde(skip_serializing_if = "Option::is_none")]
330+
pub address: Option<Vec<H160>>,
330331

331332
/// Start search logs from this block number.
332333
#[serde(rename = "fromBlock")]
@@ -337,7 +338,8 @@ pub struct EthGetLogsParams {
337338
pub to_block: BlockNumber,
338339

339340
/// Filter logs by topics.
340-
pub topics: Vec<H256>,
341+
#[serde(skip_serializing_if = "Option::is_none")]
342+
pub topics: Option<Vec<H256>>,
341343
}
342344

343345
pub trait Client: Clone + Send + Sync {
@@ -356,12 +358,12 @@ mod tests {
356358
#[test]
357359
fn test_eth_get_logs_params_serialization() {
358360
let get_logs_params = EthGetLogsParams {
359-
address: vec!["0xb59f67a8bff5d8cd03f6ac17265c550ed8f33907"
361+
address: Some(vec!["0xb59f67a8bff5d8cd03f6ac17265c550ed8f33907"
360362
.parse()
361-
.unwrap()],
363+
.unwrap()]),
362364
from_block: BlockNumber::Number(42u64.into()),
363365
to_block: BlockNumber::Latest,
364-
topics: vec![
366+
topics: Some(vec![
365367
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
366368
.parse()
367369
.unwrap(),
@@ -371,7 +373,7 @@ mod tests {
371373
"0x00000000000000000000000054a2d42a40f51259dedd1978f6c118a0f0eff078"
372374
.parse()
373375
.unwrap(),
374-
],
376+
]),
375377
};
376378

377379
let json = serde_json::to_string(&get_logs_params).unwrap();

src/ethereum-json-rpc-client/tests/reqwest/mod.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,12 +105,12 @@ async fn should_get_full_blocks_by_number() {
105105
#[tokio::test]
106106
async fn should_get_logs() {
107107
let params = EthGetLogsParams {
108-
address: vec!["0xb59f67a8bff5d8cd03f6ac17265c550ed8f33907"
108+
address: Some(vec!["0xb59f67a8bff5d8cd03f6ac17265c550ed8f33907"
109109
.parse()
110-
.unwrap()],
110+
.unwrap()]),
111111
from_block: "0x429d3b".parse().unwrap(),
112112
to_block: BlockNumber::Latest,
113-
topics: vec![
113+
topics: Some(vec![
114114
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
115115
.parse()
116116
.unwrap(),
@@ -120,7 +120,7 @@ async fn should_get_logs() {
120120
"0x00000000000000000000000054a2d42a40f51259dedd1978f6c118a0f0eff078"
121121
.parse()
122122
.unwrap(),
123-
],
123+
]),
124124
};
125125

126126
let result = reqwest_client().get_logs(params).await.unwrap();

0 commit comments

Comments
 (0)