Skip to content

Commit 7e057ca

Browse files
authored
Add get version RPC method for all services (#18366)
1 parent d260e81 commit 7e057ca

File tree

3 files changed

+26
-0
lines changed

3 files changed

+26
-0
lines changed

chia/_tests/core/test_full_node_rpc.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from chia_rs import AugSchemeMPL
88
from clvm.casts import int_to_bytes
99

10+
from chia import __version__
1011
from chia._tests.blockchain.blockchain_test_utils import _validate_and_add_block
1112
from chia._tests.conftest import ConsensusMode
1213
from chia._tests.connection_utils import connect_and_get_peer
@@ -577,6 +578,23 @@ async def test_get_network_info(one_wallet_and_one_simulator_services, self_host
577578
}
578579

579580

581+
@pytest.mark.anyio
582+
async def test_get_version(one_wallet_and_one_simulator_services, self_hostname):
583+
nodes, _, bt = one_wallet_and_one_simulator_services
584+
(full_node_service_1,) = nodes
585+
async with FullNodeRpcClient.create_as_context(
586+
self_hostname,
587+
full_node_service_1.rpc_server.listen_port,
588+
full_node_service_1.root_path,
589+
full_node_service_1.config,
590+
) as client:
591+
version = await client.fetch("get_version", {})
592+
assert version == {
593+
"success": True,
594+
"version": __version__,
595+
}
596+
597+
580598
@pytest.mark.anyio
581599
async def test_get_blockchain_state(one_wallet_and_one_simulator_services, self_hostname):
582600
num_blocks = 5

chia/_tests/util/rpc.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ async def validate_get_routes(client: RpcClient, api: RpcApiProtocol) -> None:
1616
"/close_connection",
1717
"/stop_node",
1818
"/get_routes",
19+
"/get_version",
1920
"/healthz",
2021
]
2122
assert len(routes_api) > 0

chia/rpc/rpc_server.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from aiohttp import ClientConnectorError, ClientSession, ClientWebSocketResponse, WSMsgType, web
1414
from typing_extensions import Protocol, final
1515

16+
from chia import __version__
1617
from chia.rpc.util import wrap_http_handler
1718
from chia.server.outbound_message import NodeType
1819
from chia.server.server import ChiaServer, ssl_context_for_client, ssl_context_for_server
@@ -241,6 +242,7 @@ def _get_routes(self) -> Dict[str, Endpoint]:
241242
"/close_connection": self.close_connection,
242243
"/stop_node": self.stop_node,
243244
"/get_routes": self.get_routes,
245+
"/get_version": self.get_version,
244246
"/healthz": self.healthz,
245247
}
246248

@@ -301,6 +303,11 @@ async def healthz(self, request: Dict[str, Any]) -> EndpointResult:
301303
"success": True,
302304
}
303305

306+
async def get_version(self, request: Dict[str, Any]) -> EndpointResult:
307+
return {
308+
"version": __version__,
309+
}
310+
304311
async def ws_api(self, message: WsRpcMessage) -> Optional[Dict[str, object]]:
305312
"""
306313
This function gets called when new message is received via websocket.

0 commit comments

Comments
 (0)