starknet-crypto 0.8.1

Low-level cryptography utilities for Starknet
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use starknet_types_core::felt::Felt;

pub fn field_element_from_be_hex(hex: &str) -> Felt {
    let decoded = hex::decode(hex.trim_start_matches("0x")).unwrap();

    if decoded.len() > 32 {
        panic!("hex string too long");
    }

    let mut buffer = [0u8; 32];
    buffer[(32 - decoded.len())..].copy_from_slice(&decoded[..]);

    Felt::from_bytes_be(&buffer)
}