|
@ -16,9 +16,23 @@ lazy_static! { |
|
|
static ref LIGHTCLIENT: Mutex<RefCell<Option<LightClient>>> = Mutex::new(RefCell::new(None)); |
|
|
static ref LIGHTCLIENT: Mutex<RefCell<Option<LightClient>>> = Mutex::new(RefCell::new(None)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Check if there is an existing wallet
|
|
|
|
|
|
#[no_mangle] |
|
|
|
|
|
pub extern fn litelib_wallet_exists(chain_name: *const c_char) -> bool { |
|
|
|
|
|
let chain_name_str = unsafe { |
|
|
|
|
|
assert!(!chain_name.is_null()); |
|
|
|
|
|
|
|
|
|
|
|
CStr::from_ptr(chain_name).to_string_lossy().into_owned() |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
let config = LightClientConfig::create_unconnected(chain_name_str); |
|
|
|
|
|
|
|
|
|
|
|
config.wallet_exists() |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// Initialize a new lightclient and store its value
|
|
|
// Initialize a new lightclient and store its value
|
|
|
#[no_mangle] |
|
|
#[no_mangle] |
|
|
pub extern fn litelib_initialze(dangerous: bool, server: *const c_char) -> *mut c_char { |
|
|
pub extern fn litelib_initialze_existing(dangerous: bool, server: *const c_char) -> *mut c_char { |
|
|
let server_str = unsafe { |
|
|
let server_str = unsafe { |
|
|
assert!(!server.is_null()); |
|
|
assert!(!server.is_null()); |
|
|
|
|
|
|
|
@ -34,7 +48,7 @@ pub extern fn litelib_initialze(dangerous: bool, server: *const c_char) -> *mut |
|
|
} |
|
|
} |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
let lightclient = match LightClient::new(None, &config, latest_block_height) { |
|
|
let lightclient = match LightClient::read_from_disk(&config) { |
|
|
Ok(l) => l, |
|
|
Ok(l) => l, |
|
|
Err(e) => { |
|
|
Err(e) => { |
|
|
let e_str = CString::new(format!("Error: {}", e)).unwrap(); |
|
|
let e_str = CString::new(format!("Error: {}", e)).unwrap(); |
|
|