#![allow(dead_code)]
use super::constants::VERIFICATION_KEY_LENGTH;
#[cfg(not(feature = "wasm"))]
use codec::alloc::vec::Vec;
use codec::{Decode, Encode, MaxEncodedLen};
use scale_info::TypeInfo;
#[cfg(any(feature = "std", feature = "wasm"))]
use serde::{Deserialize, Serialize};
#[cfg(feature = "wasm-no-std")]
use sp_runtime::RuntimeDebug;
#[cfg(feature = "std")]
use strum_macros::EnumIter;
pub type X25519PublicKey = [u8; 32];
pub type BlockNumber = u32;
#[cfg_attr(not(feature = "wasm-no-std"), derive(Debug))]
#[cfg_attr(feature = "wasm-no-std", derive(RuntimeDebug))]
#[cfg_attr(feature = "std", derive(serde::Serialize, serde::Deserialize))]
#[derive(Copy, Clone, PartialEq, Eq, Encode, Decode, TypeInfo, MaxEncodedLen)]
pub enum KeyVisibility {
Public,
Private(X25519PublicKey),
}
#[cfg_attr(not(feature = "wasm"), derive(sp_runtime::Serialize, sp_runtime::Deserialize))]
#[derive(Clone, Encode, Decode, Debug, Eq, PartialEq, TypeInfo)]
pub struct ValidatorInfo {
pub x25519_public_key: X25519PublicKey,
pub ip_address: codec::alloc::vec::Vec<u8>,
pub tss_account: codec::alloc::vec::Vec<u8>,
}
#[cfg(not(feature = "wasm"))]
#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
#[derive(Clone, Encode, Decode, Debug, Eq, PartialEq, TypeInfo)]
pub struct OcwMessageDkg {
pub block_number: BlockNumber,
pub sig_request_accounts: Vec<Vec<u8>>,
pub validators_info: Vec<ValidatorInfo>,
}
#[cfg(not(feature = "wasm"))]
#[derive(
Clone,
Encode,
Decode,
Debug,
Eq,
PartialEq,
TypeInfo,
sp_runtime::Serialize,
sp_runtime::Deserialize,
)]
pub struct OcwMessageProactiveRefresh {
pub block_number: BlockNumber,
pub validators_info: Vec<ValidatorInfo>,
pub proactive_refresh_keys: Vec<Vec<u8>>,
}
#[cfg_attr(any(feature = "wasm", feature = "std"), derive(Serialize, Deserialize))]
#[cfg_attr(feature = "std", derive(EnumIter))]
#[derive(Clone, Debug, Eq, PartialEq)]
#[cfg_attr(feature = "std", serde(rename = "hash"))]
#[cfg_attr(feature = "std", serde(rename_all = "lowercase"))]
#[non_exhaustive]
pub enum HashingAlgorithm {
Sha1,
Sha2,
Sha3,
Keccak,
Blake2_256,
Custom(usize),
}
pub type EncodedVerifyingKey = [u8; VERIFICATION_KEY_LENGTH as usize];