#[cfg(feature = "runtime")]
mod dkg;
mod messages;
#[cfg(feature = "runtime")]
mod refresh;
#[cfg(feature = "runtime")]
pub use dkg::run_dkg;
pub use messages::{DkgRound1Message, DkgRound2Message};
#[cfg(feature = "runtime")]
pub use refresh::refresh_shares;
use crate::{AgentKeyShare, Result};
#[derive(Debug)]
pub struct KeygenResult {
pub share: AgentKeyShare,
pub public_key: Vec<u8>,
pub eth_address: String,
}
impl KeygenResult {
pub fn new(share: AgentKeyShare) -> Result<Self> {
let eth_address = share.eth_address()?;
let public_key = share.public_key.clone();
Ok(Self {
share,
public_key,
eth_address,
})
}
}