use crate::networking::{OneShotTaskResult, PeerQuoteWithStorageProof};
use ant_evm::{merkle_payments::MerklePaymentCandidateNode, PaymentQuote};
use ant_protocol::storage::DataTypes;
use ant_protocol::NetworkAddress;
use libp2p::{
kad::{PeerInfo, Quorum, Record},
PeerId,
};
use std::num::NonZeroUsize;
#[derive(custom_debug::Debug)]
pub(super) enum NetworkTask {
GetClosestPeers {
addr: NetworkAddress,
#[debug(skip)]
resp: OneShotTaskResult<Vec<PeerInfo>>,
n: NonZeroUsize,
},
GetRecord {
addr: NetworkAddress,
quorum: Quorum,
#[debug(skip)]
resp: OneShotTaskResult<(Option<Record>, Vec<PeerId>)>,
},
#[allow(dead_code)]
PutRecordKad {
#[debug(skip)]
record: Record,
to: Vec<PeerInfo>,
quorum: Quorum,
#[debug(skip)]
resp: OneShotTaskResult<()>,
},
PutRecordReq {
#[debug(skip)]
record: Record,
to: PeerInfo,
#[debug(skip)]
resp: OneShotTaskResult<()>,
},
GetQuote {
addr: NetworkAddress,
peer: PeerInfo,
data_type: u32,
data_size: usize,
#[debug(skip)]
resp: OneShotTaskResult<Option<(PeerInfo, PaymentQuote)>>,
},
GetVersion {
peer: PeerInfo,
#[debug(skip)]
resp: OneShotTaskResult<String>,
},
GetRecordFromPeer {
addr: NetworkAddress,
peer: PeerInfo,
#[debug(skip)]
resp: OneShotTaskResult<Option<Record>>,
},
GetStorageProofsFromPeer {
addr: NetworkAddress,
peer: PeerInfo,
nonce: u64,
difficulty: usize,
data_type: DataTypes,
data_size: usize,
#[debug(skip)]
resp: OneShotTaskResult<PeerQuoteWithStorageProof>,
},
GetClosestPeersFromPeer {
addr: NetworkAddress,
peer: PeerInfo,
num_of_peers: Option<usize>,
#[debug(skip)]
resp: OneShotTaskResult<Vec<(NetworkAddress, Vec<libp2p::Multiaddr>)>>,
},
ConnectionsMade {
#[debug(skip)]
resp: OneShotTaskResult<usize>,
},
GetMerkleCandidateQuote {
addr: NetworkAddress,
peer: PeerInfo,
data_type: u32,
data_size: usize,
merkle_payment_timestamp: u64,
#[debug(skip)]
resp: OneShotTaskResult<MerklePaymentCandidateNode>,
},
}