#![allow(clippy::new_without_default)] use fixed_codec_derive::RlpFixedCodec; use muta_protocol::fixed_codec::{FixedCodec, FixedCodecError}; use muta_protocol::{Bytes, ProtocolResult}; use rand::random; const HASH_LEN: usize = 32; type JsonString = String; #[derive(Clone, Debug, RlpFixedCodec, PartialEq, Eq, Copy)] pub struct Hash([u8; HASH_LEN]); impl Hash { pub fn new() -> Self { let bytes = (0..32).map(|_| random::()).collect::>(); let mut out = [0u8; HASH_LEN]; out.copy_from_slice(&bytes); Hash(out) } } #[derive(Clone, Debug, RlpFixedCodec, PartialEq, Eq)] pub struct Hex(String); impl Hex { pub fn new() -> Self { let temp = "0x".to_owned() + &String::from("muta-dev"); Self(temp) } } #[derive(Clone, Debug, RlpFixedCodec, PartialEq, Eq)] pub struct SignedTransaction { raw: JsonString, tx_hash: Hash, pubkey: Bytes, signature: Bytes, } impl SignedTransaction { pub fn new() -> Self { SignedTransaction { raw: JsonString::from("muta-dev"), tx_hash: Hash::new(), pubkey: random_bytes(32), signature: random_bytes(64), } } } fn random_bytes(len: usize) -> Bytes { let temp = (0..len).map(|_| random::()).collect::>(); Bytes::from(temp) }