Skip to content
This repository was archived by the owner on Sep 1, 2023. It is now read-only.

Commit 79c2d56

Browse files
committed
feat(jsonrpc): add Subnets VM versions HashMap
1 parent 8a4df4e commit 79c2d56

File tree

1 file changed

+26
-54
lines changed

1 file changed

+26
-54
lines changed

src/jsonrpc/info.rs

+26-54
Original file line numberDiff line numberDiff line change
@@ -348,93 +348,65 @@ pub struct GetNodeVersionResponse {
348348
}
349349

350350
/// ref. <https://docs.avax.network/build/avalanchego-apis/info/#infogetnodeversion>
351-
#[derive(Debug, Serialize, Deserialize, Eq, PartialEq, Clone)]
351+
#[derive(Default, Debug, Serialize, Deserialize, Eq, PartialEq, Clone)]
352352
#[serde(rename_all = "camelCase")]
353353
pub struct GetNodeVersionResult {
354354
pub version: String,
355355
pub database_version: String,
356356
pub git_commit: String,
357357
pub vm_versions: VmVersions,
358-
}
359-
360-
impl Default for GetNodeVersionResult {
361-
fn default() -> Self {
362-
Self::default()
363-
}
364-
}
365-
366-
impl GetNodeVersionResult {
367-
pub fn default() -> Self {
368-
Self {
369-
version: String::new(),
370-
database_version: String::new(),
371-
git_commit: String::new(),
372-
vm_versions: VmVersions::default(),
373-
}
374-
}
358+
pub rpc_protocol_version: String,
375359
}
376360

377361
/// ref. <https://docs.avax.network/build/avalanchego-apis/info/#infogetnodeversion>
378-
#[derive(Debug, Serialize, Deserialize, Eq, PartialEq, Clone)]
362+
#[derive(Default, Debug, Serialize, Deserialize, Eq, PartialEq, Clone)]
379363
#[serde(rename_all = "camelCase")]
380364
pub struct VmVersions {
381365
pub avm: String,
382366
pub evm: String,
383367
pub platform: String,
384-
}
385-
386-
impl Default for VmVersions {
387-
fn default() -> Self {
388-
Self::default()
389-
}
390-
}
391-
392-
impl VmVersions {
393-
pub fn default() -> Self {
394-
Self {
395-
avm: String::new(),
396-
evm: String::new(),
397-
platform: String::new(),
398-
}
399-
}
368+
#[serde(flatten)]
369+
pub subnets: HashMap<String, String>,
400370
}
401371

402372
/// RUST_LOG=debug cargo test --package avalanche-types --lib -- jsonrpc::info::test_get_node_version --exact --show-output
403373
#[test]
404374
fn test_get_node_version() {
405375
let resp: GetNodeVersionResponse = serde_json::from_str(
406-
"
407-
376+
r#"
408377
{
409-
\"jsonrpc\": \"2.0\",
410-
\"result\": {
411-
\"version\": \"avalanche/1.4.10\",
412-
\"databaseVersion\": \"v1.4.5\",
413-
\"gitCommit\": \"a3930fe3fa115c018e71eb1e97ca8cec34db67f1\",
414-
\"vmVersions\": {
415-
\"avm\": \"v1.4.10\",
416-
\"evm\": \"v0.5.5-rc.1\",
417-
\"platform\": \"v1.4.10\"
378+
"jsonrpc": "2.0",
379+
"result": {
380+
"version": "avalanche/1.10.1",
381+
"databaseVersion": "v1.4.5",
382+
"rpcProtocolVersion": "26",
383+
"gitCommit": "ef6a2a2f7facd8fbefd5fb2ac9c4908c2bcae3e2",
384+
"vmVersions": {
385+
"avm": "v1.10.1",
386+
"evm": "v0.12.1",
387+
"platform": "v1.10.1",
388+
"subnet-evm": "v0.5.1"
418389
}
419390
},
420-
\"id\": 1
391+
"id": 1
421392
}
422-
423-
",
393+
"#,
424394
)
425395
.unwrap();
426396
let expected = GetNodeVersionResponse {
427397
jsonrpc: "2.0".to_string(),
428398
id: 1,
429399
result: Some(GetNodeVersionResult {
430-
version: String::from("avalanche/1.4.10"),
400+
version: String::from("avalanche/1.10.1"),
431401
database_version: String::from("v1.4.5"),
432-
git_commit: String::from("a3930fe3fa115c018e71eb1e97ca8cec34db67f1"),
402+
git_commit: String::from("ef6a2a2f7facd8fbefd5fb2ac9c4908c2bcae3e2"),
433403
vm_versions: VmVersions {
434-
avm: String::from("v1.4.10"),
435-
evm: String::from("v0.5.5-rc.1"),
436-
platform: String::from("v1.4.10"),
404+
avm: String::from("v1.10.1"),
405+
evm: String::from("v0.12.1"),
406+
platform: String::from("v1.10.1"),
407+
subnets: HashMap::from([(String::from("subnet-evm"), String::from("v0.5.1"))]),
437408
},
409+
rpc_protocol_version: String::from("26"),
438410
}),
439411
error: None,
440412
};

0 commit comments

Comments
 (0)