pozk_utils/
message.rs

1use ethers::prelude::{Address, LocalWallet};
2use tokio::sync::{
3    mpsc::{unbounded_channel, UnboundedReceiver, UnboundedSender},
4    oneshot::Sender,
5};
6
7pub enum ServiceMessage {
8    /// tid, prover, inputs, publics
9    CreateTask(u64, Address, Vec<u8>, Vec<u8>),
10    /// tid, overtime, is_me
11    AcceptTask(u64, i64, bool),
12    /// prover, version, overtime
13    ApproveProver(Address, u64, u64),
14    /// tid, proof
15    UploadProof(String, Vec<u8>),
16    /// controller wallet and sk bytes
17    ChangeController(LocalWallet, Vec<u8>),
18    /// pull prover, tag, name and overtime
19    PullProver(Address, String, String, u64),
20    /// remove prover
21    RemoveProver(Address),
22    /// test id, prover, overtime, inputs, publics
23    MinerTest(u64, Address, i64, Vec<u8>, Vec<u8>),
24    /// task from player service
25    ApiTask(String, Option<Sender<Vec<u8>>>),
26    /// Heartbeat for cleanup task
27    TaskHeartbeat,
28}
29
30pub fn new_service_channel() -> (
31    UnboundedSender<ServiceMessage>,
32    UnboundedReceiver<ServiceMessage>,
33) {
34    unbounded_channel()
35}