1use ergo_lib_c_core::{address::AddressPtr, secret_key::*, Error};
2use paste::paste;
3
4use crate::{delete_ptr, ErrorPtr};
5
6#[no_mangle]
8pub unsafe extern "C" fn ergo_lib_secret_key_from_bytes(
9 bytes_ptr: *const u8,
10 secret_key_out: *mut SecretKeyPtr,
11) -> ErrorPtr {
12 let res = secret_key_from_bytes(bytes_ptr, secret_key_out);
13 Error::c_api_from(res)
14}
15
16#[no_mangle]
18pub unsafe extern "C" fn ergo_lib_secret_key_generate_random(secret_key_out: *mut SecretKeyPtr) {
19 #[allow(clippy::unwrap_used)]
20 secret_key_generate_random(secret_key_out).unwrap();
21}
22
23#[no_mangle]
25pub unsafe extern "C" fn ergo_lib_secret_key_get_address(
26 secret_key_ptr: ConstSecretKeyPtr,
27 address_out: *mut AddressPtr,
28) {
29 #[allow(clippy::unwrap_used)]
30 secret_key_get_address(secret_key_ptr, address_out).unwrap();
31}
32
33#[no_mangle]
36pub unsafe extern "C" fn ergo_lib_secret_key_to_bytes(
37 secret_key_ptr: ConstSecretKeyPtr,
38 output: *mut u8,
39) {
40 #[allow(clippy::unwrap_used)]
41 secret_key_to_bytes(secret_key_ptr, output).unwrap();
42}
43
44#[no_mangle]
46pub unsafe extern "C" fn ergo_lib_secret_key_delete(ptr: SecretKeyPtr) {
47 delete_ptr(ptr)
48}
49
50make_collection!(SecretKeys, SecretKey);