bitfinex 0.5.0

Rust Library for the Bitfinex API
Documentation
use errors::*;
use hex::encode;
use ring::hmac;
use std::time::{SystemTime, UNIX_EPOCH};

pub fn sign_payload(secret: &[u8], payload: &[u8]) -> Result<String> {
    let signed_key = hmac::Key::new(hmac::HMAC_SHA384, secret);
    let signature = encode(hmac::sign(&signed_key, payload).as_ref());

    Ok(signature)
}

pub fn generate_nonce() -> Result<String> {
    let start = SystemTime::now();
    let since_epoch = start.duration_since(UNIX_EPOCH)?;

    let timestamp = since_epoch.as_secs() * 1000 + since_epoch.subsec_nanos() as u64 / 1_000_000;

    Ok((timestamp + 1).to_string())
}