hop-sdk 0.1.0

Client SDK for the Polkadot HOP protocol
Documentation
use super::crypto::SignatureScheme;

fn variant_byte(scheme: SignatureScheme) -> u8 {
    match scheme {
        SignatureScheme::Ed25519 => 0x00,
        SignatureScheme::Sr25519 => 0x01,
        SignatureScheme::Ecdsa => 0x02,
        SignatureScheme::Eth => 0x03,
    }
}

pub fn encode_multi_signer(pubkey: &[u8], scheme: SignatureScheme) -> Vec<u8> {
    let mut out = Vec::with_capacity(1 + pubkey.len());
    out.push(variant_byte(scheme));
    out.extend_from_slice(pubkey);
    out
}

pub fn encode_multi_signature(sig: &[u8], scheme: SignatureScheme) -> Vec<u8> {
    let mut out = Vec::with_capacity(1 + sig.len());
    out.push(variant_byte(scheme));
    out.extend_from_slice(sig);
    out
}