tradingkit 0.1.0

Exchange-agnostic trading library for equities and crypto
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use std::error::Error;

use base64::{Engine, engine::general_purpose::STANDARD as base64};

use hmac::{Hmac, Mac};
use sha2::Sha256;

pub fn encode_base64(payload: &[u8]) -> Result<String, Box<dyn Error>> {
    Ok(base64.encode(payload))
}

pub fn encrypt_hmac_sha_256(secret_key: &str, payload: &str) -> Result<Vec<u8>, Box<dyn Error>> {
    let mut mac = Hmac::<Sha256>::new_from_slice(secret_key.as_bytes())?;
    mac.update(payload.as_bytes());

    Ok(mac.finalize().into_bytes().to_vec())
}