use super::RoutingMsg;
pub use ed25519_dalek::{Keypair, Signature, Verifier};
use serde::{Deserialize, Serialize};
use threshold_crypto::PublicKey as BlsPublicKey;
use xor_name::XorName;
#[derive(Debug, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash, Clone)]
pub struct RelocateDetails {
pub pub_id: XorName,
pub destination: XorName,
pub destination_key: BlsPublicKey,
pub age: u8,
}
#[derive(Clone, Eq, PartialEq, Debug, Serialize, Deserialize)]
pub struct SignedRelocateDetails {
pub signed_msg: RoutingMsg,
}
#[derive(Clone, Eq, PartialEq, Serialize, Deserialize)]
pub struct RelocatePayload {
pub details: SignedRelocateDetails,
pub signature_of_new_name_with_old_key: Signature,
}
#[derive(Copy, Clone, Eq, PartialEq, Hash, Debug, Serialize, Deserialize)]
pub struct RelocatePromise {
pub name: XorName,
pub destination: XorName,
}