1
- use dkn_p2p:: { libp2p:: PeerId , DriaNetworkType , DriaNodes } ;
1
+ use dkn_p2p:: {
2
+ libp2p:: { Multiaddr , PeerId } ,
3
+ DriaNetworkType , DriaNodes ,
4
+ } ;
2
5
use dkn_utils:: parse_vec;
3
6
use eyre:: Result ;
4
7
@@ -8,7 +11,7 @@ pub async fn refresh_dria_nodes(nodes: &mut DriaNodes) -> Result<()> {
8
11
struct DriaNodesApiResponse {
9
12
pub rpcs : Vec < String > ,
10
13
#[ serde( rename = "rpcAddrs" ) ]
11
- pub rpc_addrs : Vec < String > ,
14
+ pub rpc_addrs : Vec < Multiaddr > ,
12
15
}
13
16
14
17
// url to be used is determined by the network type
@@ -22,12 +25,7 @@ pub async fn refresh_dria_nodes(nodes: &mut DriaNodes) -> Result<()> {
22
25
let response = reqwest:: get ( url) . await ?;
23
26
let response_body = response. json :: < DriaNodesApiResponse > ( ) . await ?;
24
27
25
- nodes
26
- . rpc_nodes
27
- . extend ( parse_vec ( response_body. rpc_addrs ) . unwrap_or_else ( |e| {
28
- log:: error!( "Failed to parse rpc nodes: {}" , e) ;
29
- vec ! [ ]
30
- } ) ) ;
28
+ nodes. rpc_addrs . extend ( response_body. rpc_addrs ) ;
31
29
nodes
32
30
. rpc_peerids
33
31
. extend ( parse_vec :: < PeerId > ( response_body. rpcs ) . unwrap_or_else ( |e| {
@@ -46,12 +44,12 @@ mod tests {
46
44
async fn test_refresh_dria_nodes ( ) {
47
45
let mut nodes = DriaNodes :: new ( DriaNetworkType :: Community ) ;
48
46
refresh_dria_nodes ( & mut nodes) . await . unwrap ( ) ;
49
- assert ! ( !nodes. rpc_nodes . is_empty( ) ) ;
47
+ assert ! ( !nodes. rpc_addrs . is_empty( ) ) ;
50
48
assert ! ( !nodes. rpc_peerids. is_empty( ) ) ;
51
49
52
50
let mut nodes = DriaNodes :: new ( DriaNetworkType :: Pro ) ;
53
51
refresh_dria_nodes ( & mut nodes) . await . unwrap ( ) ;
54
- assert ! ( !nodes. rpc_nodes . is_empty( ) ) ;
52
+ assert ! ( !nodes. rpc_addrs . is_empty( ) ) ;
55
53
assert ! ( !nodes. rpc_peerids. is_empty( ) ) ;
56
54
}
57
55
}
0 commit comments