Skip to content

Commit 70fbd21

Browse files
committed
TimelordApiStub
1 parent 0dc30a6 commit 70fbd21

File tree

4 files changed

+44
-4
lines changed

4 files changed

+44
-4
lines changed

chia/apis/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@
22

33
from chia.apis.api_protocol_registry import ApiProtocolRegistry
44
from chia.apis.harvester_stub import HarvesterApiStub
5+
from chia.apis.timelord_stub import TimelordApiStub
56

6-
__all__ = ["ApiProtocolRegistry", "HarvesterApiStub"]
7+
__all__ = ["ApiProtocolRegistry", "HarvesterApiStub", "TimelordApiStub"]

chia/apis/api_protocol_registry.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
from __future__ import annotations
22

33
from chia.apis.harvester_stub import HarvesterApiStub
4+
from chia.apis.timelord_stub import TimelordApiStub
45
from chia.farmer.farmer_api import FarmerAPI
56
from chia.full_node.full_node_api import FullNodeAPI
67
from chia.introducer.introducer_api import IntroducerAPI
78
from chia.protocols.outbound_message import NodeType
89
from chia.server.api_protocol import ApiProtocol
9-
from chia.timelord.timelord_api import TimelordAPI
1010
from chia.wallet.wallet_node_api import WalletNodeAPI
1111

1212
ApiProtocolRegistry: dict[NodeType, type[ApiProtocol]] = {
1313
NodeType.FULL_NODE: FullNodeAPI,
1414
NodeType.WALLET: WalletNodeAPI,
1515
NodeType.INTRODUCER: IntroducerAPI,
16-
NodeType.TIMELORD: TimelordAPI,
16+
NodeType.TIMELORD: TimelordApiStub,
1717
NodeType.FARMER: FarmerAPI,
1818
NodeType.HARVESTER: HarvesterApiStub,
1919
}

chia/apis/timelord_stub.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
from __future__ import annotations
2+
3+
import logging
4+
from typing import TYPE_CHECKING, ClassVar, cast
5+
6+
if TYPE_CHECKING:
7+
from chia.server.api_protocol import ApiProtocol
8+
9+
# Minimal imports to avoid circular dependencies
10+
from chia.protocols import timelord_protocol
11+
from chia.protocols.timelord_protocol import NewPeakTimelord
12+
from chia.server.api_protocol import ApiMetadata
13+
14+
15+
class TimelordApiStub:
16+
"""Lightweight API stub for TimelordAPI to break circular dependencies."""
17+
18+
if TYPE_CHECKING:
19+
_protocol_check: ClassVar[ApiProtocol] = cast("TimelordApiStub", None)
20+
21+
log: logging.Logger
22+
metadata: ClassVar[ApiMetadata] = ApiMetadata()
23+
24+
def ready(self) -> bool:
25+
"""Check if the timelord is ready."""
26+
return True
27+
28+
@metadata.request()
29+
async def new_peak_timelord(self, new_peak: NewPeakTimelord) -> None:
30+
"""Handle new peak from full node."""
31+
32+
@metadata.request()
33+
async def new_unfinished_block_timelord(
34+
self, new_unfinished_block: timelord_protocol.NewUnfinishedBlockTimelord
35+
) -> None:
36+
"""Handle new unfinished block from full node."""
37+
38+
@metadata.request()
39+
async def request_compact_proof_of_time(self, vdf_info: timelord_protocol.RequestCompactProofOfTime) -> None:
40+
"""Handle request for compact proof of time."""

tach.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ depends_on = [
9292
{ path = "chia.introducer", deprecated = false },
9393
{ path = "chia.wallet", deprecated = false },
9494
{ path = "chia.full_node", deprecated = false },
95-
{ path = "chia.timelord", deprecated = false },
9695
{ path = "chia.protocols", deprecated = false },
9796
{ path = "chia.server", deprecated = false },
9897
]

0 commit comments

Comments
 (0)