Skip to content

Commit 1c19ec9

Browse files
Merge rust-bitcoin/corepc#196: Implement setban method and test
7579c309bfdb0a3f93ee59d9054de565a50f7271 Implement setban method and test (GideonBature) Pull request description: Going by the conversations with tcharding for PR [#116 ](rust-bitcoin/corepc#116) on implementing one method at a time for easier review: This is another method under network section, setban which is a specific type that returns a (json null). Once this is approved, I’ll proceed with the next one. ACKs for top commit: tcharding: ACK 7579c309bfdb0a3f93ee59d9054de565a50f7271 Tree-SHA512: abe19120103d1c6985e24d0bb6806f7042f7ab980b28ae14d2e15a84afe751a60168f146f4d8542d885628502d759748df4b885a9e4053c2c134ddbe69723176
2 parents 145b682 + e917fd3 commit 1c19ec9

File tree

15 files changed

+84
-17
lines changed

15 files changed

+84
-17
lines changed

client/src/client_sync/v17/mod.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ crate::impl_client_v17__getaddednodeinfo!();
7676
crate::impl_client_v17__getnettotals!();
7777
crate::impl_client_v17__getnetworkinfo!();
7878
crate::impl_client_v17__getpeerinfo!();
79+
crate::impl_client_v17__setban!();
7980

8081
// == Rawtransactions ==
8182
crate::impl_client_v17__combinepsbt!();
@@ -224,3 +225,11 @@ pub enum AddNodeCommand {
224225
Remove,
225226
OneTry,
226227
}
228+
229+
/// Args for the `setban` method
230+
#[derive(Clone, Copy, Debug, Deserialize, Serialize)]
231+
#[serde(rename_all = "lowercase")]
232+
pub enum SetBanCommand {
233+
Add,
234+
Remove,
235+
}

client/src/client_sync/v17/network.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,3 +74,19 @@ macro_rules! impl_client_v17__getpeerinfo {
7474
}
7575
};
7676
}
77+
78+
/// Implements Bitcoin Core JSON-RPC API method `setban`
79+
#[macro_export]
80+
macro_rules! impl_client_v17__setban {
81+
() => {
82+
impl Client {
83+
pub fn set_ban(&self, subnet: &str, command: SetBanCommand) -> Result<()> {
84+
match self.call("setban", &[into_json(subnet)?, into_json(command)?]) {
85+
Ok(serde_json::Value::Null) => Ok(()),
86+
Ok(res) => Err(Error::Returned(res.to_string())),
87+
Err(err) => Err(err.into()),
88+
}
89+
}
90+
}
91+
};
92+
}

client/src/client_sync/v18/mod.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ use crate::types::v18::*;
2020
#[rustfmt::skip] // Keep public re-exports separate.
2121
pub use crate::client_sync::{
2222
v17::{
23-
AddNodeCommand, AddressType, Input, Output, TemplateRequest, TemplateRules,
24-
WalletCreateFundedPsbtInput
23+
AddNodeCommand, AddressType, Input, Output, SetBanCommand, TemplateRequest,
24+
TemplateRules, WalletCreateFundedPsbtInput
2525
},
2626
};
2727

@@ -81,6 +81,7 @@ crate::impl_client_v17__getnettotals!();
8181
crate::impl_client_v17__getnetworkinfo!();
8282
crate::impl_client_v18__getnodeaddresses!();
8383
crate::impl_client_v17__getpeerinfo!();
84+
crate::impl_client_v17__setban!();
8485

8586
// == Rawtransactions ==
8687
crate::impl_client_v18__analyzepsbt!();

client/src/client_sync/v19/mod.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ use crate::types::v19::*;
1919
#[rustfmt::skip] // Keep public re-exports separate.
2020
pub use crate::client_sync::{
2121
v17::{
22-
AddNodeCommand, AddressType, Input, Output, TemplateRequest, TemplateRules,
23-
WalletCreateFundedPsbtInput
22+
AddNodeCommand, AddressType, Input, Output, SetBanCommand, TemplateRequest,
23+
TemplateRules, WalletCreateFundedPsbtInput
2424
},
2525
};
2626

@@ -79,6 +79,7 @@ crate::impl_client_v17__getnettotals!();
7979
crate::impl_client_v17__getnetworkinfo!();
8080
crate::impl_client_v18__getnodeaddresses!();
8181
crate::impl_client_v17__getpeerinfo!();
82+
crate::impl_client_v17__setban!();
8283

8384
// == Rawtransactions ==
8485
crate::impl_client_v18__analyzepsbt!();

client/src/client_sync/v20.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@ use crate::types::v20::*;
1515

1616
#[rustfmt::skip] // Keep public re-exports separate.
1717
pub use crate::client_sync::{
18-
v17::{AddressType, AddNodeCommand, Input, Output, TemplateRequest, TemplateRules, WalletCreateFundedPsbtInput},
18+
v17::{
19+
AddressType, AddNodeCommand, Input, Output, SetBanCommand, TemplateRequest, TemplateRules,
20+
WalletCreateFundedPsbtInput
21+
},
1922
};
2023

2124
crate::define_jsonrpc_minreq_client!("v20");
@@ -73,6 +76,7 @@ crate::impl_client_v17__getnettotals!();
7376
crate::impl_client_v17__getnetworkinfo!();
7477
crate::impl_client_v18__getnodeaddresses!();
7578
crate::impl_client_v17__getpeerinfo!();
79+
crate::impl_client_v17__setban!();
7680

7781
// == Rawtransactions ==
7882
crate::impl_client_v18__analyzepsbt!();

client/src/client_sync/v21/mod.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ use crate::types::v21::*;
1818
#[rustfmt::skip] // Keep public re-exports separate.
1919
pub use crate::client_sync::{
2020
v17::{
21-
AddNodeCommand, AddressType, Input, Output, TemplateRequest, TemplateRules,
22-
WalletCreateFundedPsbtInput
21+
AddNodeCommand, AddressType, Input, Output, SetBanCommand, TemplateRequest,
22+
TemplateRules, WalletCreateFundedPsbtInput
2323
},
2424
};
2525

@@ -78,6 +78,7 @@ crate::impl_client_v17__getnettotals!();
7878
crate::impl_client_v17__getnetworkinfo!();
7979
crate::impl_client_v18__getnodeaddresses!();
8080
crate::impl_client_v17__getpeerinfo!();
81+
crate::impl_client_v17__setban!();
8182

8283
// == Rawtransactions ==
8384
crate::impl_client_v18__analyzepsbt!();

client/src/client_sync/v22/mod.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ use crate::types::v22::*;
1818
#[rustfmt::skip] // Keep public re-exports separate.
1919
pub use crate::client_sync::{
2020
v17::{
21-
AddNodeCommand, AddressType, Input, Output, TemplateRequest, TemplateRules,
22-
WalletCreateFundedPsbtInput
21+
AddNodeCommand, AddressType, Input, Output, SetBanCommand, TemplateRequest,
22+
TemplateRules, WalletCreateFundedPsbtInput
2323
},
2424
};
2525

@@ -78,6 +78,7 @@ crate::impl_client_v17__getnettotals!();
7878
crate::impl_client_v17__getnetworkinfo!();
7979
crate::impl_client_v18__getnodeaddresses!();
8080
crate::impl_client_v17__getpeerinfo!();
81+
crate::impl_client_v17__setban!();
8182

8283
// == Rawtransactions ==
8384
crate::impl_client_v18__analyzepsbt!();

client/src/client_sync/v23/mod.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@ use crate::types::v23::*;
1919

2020
#[rustfmt::skip] // Keep public re-exports separate.
2121
pub use crate::client_sync::{
22-
v17::{AddNodeCommand, Input, Output, TemplateRequest, TemplateRules, WalletCreateFundedPsbtInput},
22+
v17::{
23+
AddNodeCommand, Input, Output, SetBanCommand, TemplateRequest, TemplateRules,
24+
WalletCreateFundedPsbtInput
25+
},
2326
};
2427

2528
crate::define_jsonrpc_minreq_client!("v23");
@@ -77,6 +80,7 @@ crate::impl_client_v17__getnettotals!();
7780
crate::impl_client_v17__getnetworkinfo!();
7881
crate::impl_client_v18__getnodeaddresses!();
7982
crate::impl_client_v17__getpeerinfo!();
83+
crate::impl_client_v17__setban!();
8084

8185
// == Rawtransactions ==
8286
crate::impl_client_v18__analyzepsbt!();

client/src/client_sync/v24.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@ use crate::types::v24::*;
1515

1616
#[rustfmt::skip] // Keep public re-exports separate.
1717
pub use crate::client_sync::{
18-
v17::{AddNodeCommand, Input, Output, TemplateRequest, TemplateRules, WalletCreateFundedPsbtInput},
18+
v17::{
19+
AddNodeCommand, Input, Output, SetBanCommand, TemplateRequest, TemplateRules,
20+
WalletCreateFundedPsbtInput
21+
},
1922
v23::AddressType,
2023
};
2124

@@ -74,6 +77,7 @@ crate::impl_client_v17__getnettotals!();
7477
crate::impl_client_v17__getnetworkinfo!();
7578
crate::impl_client_v18__getnodeaddresses!();
7679
crate::impl_client_v17__getpeerinfo!();
80+
crate::impl_client_v17__setban!();
7781

7882
// == Rawtransactions ==
7983
crate::impl_client_v18__analyzepsbt!();

client/src/client_sync/v25.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@ use crate::types::v25::*;
1515

1616
#[rustfmt::skip] // Keep public re-exports separate.
1717
pub use crate::client_sync::{
18-
v17::{AddNodeCommand, Input, Output, TemplateRequest, TemplateRules, WalletCreateFundedPsbtInput},
18+
v17::{
19+
AddNodeCommand, Input, Output, SetBanCommand, TemplateRequest, TemplateRules,
20+
WalletCreateFundedPsbtInput
21+
},
1922
v23::AddressType,
2023
};
2124

@@ -74,6 +77,7 @@ crate::impl_client_v17__getnettotals!();
7477
crate::impl_client_v17__getnetworkinfo!();
7578
crate::impl_client_v18__getnodeaddresses!();
7679
crate::impl_client_v17__getpeerinfo!();
80+
crate::impl_client_v17__setban!();
7781

7882
// == Rawtransactions ==
7983
crate::impl_client_v18__analyzepsbt!();

0 commit comments

Comments
 (0)