2022-07-13 06:48:11 +00:00
|
|
|
use std::{marker::Send, io::Cursor, collections::HashMap};
|
2022-05-28 23:56:59 +00:00
|
|
|
|
2022-05-26 08:36:19 +00:00
|
|
|
use async_trait::async_trait;
|
|
|
|
use thiserror::Error;
|
2022-05-28 23:56:59 +00:00
|
|
|
|
2022-06-24 23:53:41 +00:00
|
|
|
use frost::{curve::Curve, FrostError};
|
2022-06-05 19:10:50 +00:00
|
|
|
|
2022-10-16 03:21:43 +00:00
|
|
|
pub use serai_coin as coin;
|
2022-10-16 04:17:51 +00:00
|
|
|
use coin::CoinError;
|
2022-10-16 03:21:43 +00:00
|
|
|
|
2022-05-28 23:56:59 +00:00
|
|
|
mod wallet;
|
2022-05-26 08:36:19 +00:00
|
|
|
|
|
|
|
#[cfg(test)]
|
|
|
|
mod tests;
|
|
|
|
|
2022-06-09 06:48:53 +00:00
|
|
|
#[derive(Clone, Error, Debug)]
|
|
|
|
pub enum NetworkError {}
|
|
|
|
|
|
|
|
#[async_trait]
|
|
|
|
pub trait Network: Send {
|
2022-07-13 06:48:11 +00:00
|
|
|
async fn round(&mut self, data: Vec<u8>) -> Result<HashMap<u16, Cursor<Vec<u8>>>, NetworkError>;
|
2022-06-09 06:48:53 +00:00
|
|
|
}
|
|
|
|
|
2022-06-24 23:53:41 +00:00
|
|
|
#[derive(Clone, Error, Debug)]
|
|
|
|
pub enum SignError {
|
|
|
|
#[error("FROST had an error {0}")]
|
|
|
|
FrostError(FrostError),
|
|
|
|
#[error("coin had an error {0}")]
|
|
|
|
CoinError(CoinError),
|
|
|
|
#[error("network had an error {0}")]
|
2022-07-15 05:26:07 +00:00
|
|
|
NetworkError(NetworkError),
|
2022-05-28 23:56:59 +00:00
|
|
|
}
|