Skip to content

Commit 863acb4

Browse files
Add some missing bindings to WASM and FFI
1 parent 7030c44 commit 863acb4

File tree

4 files changed

+47
-5
lines changed

4 files changed

+47
-5
lines changed

keyvault-wasm/src/id.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,12 @@ impl JsSecpKeyId {
5858
let inner = SecpKeyId::from_p2pkh_addr(address, network).map_err_to_js()?;
5959
Ok(inner.into())
6060
}
61+
62+
#[wasm_bindgen(js_name=toAddress)]
63+
pub fn to_p2pkh_addr(&self, network: &str) -> Result<String, JsValue> {
64+
let network = Networks::by_name(network).map_err_to_js()?;
65+
Ok(self.inner.to_p2pkh_addr(network.p2pkh_addr()))
66+
}
6167
}
6268

6369
impl From<SecpKeyId> for JsSecpKeyId {

sdk-ffi/src/hydra/private.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ pub extern "C" fn HydraPrivate_key(
7575
) -> CPtrResult<Bip44Key<Secp256k1>> {
7676
let fun = || {
7777
let private = unsafe { convert::borrow_mut_in(private) };
78-
let key = private.key(idx)?;
78+
let key = private.key_mut(idx)?;
7979
Ok(convert::move_out(key))
8080
};
8181
cresult(fun())

sdk-ffi/src/keyvault/secp/id.rs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,37 @@ use super::*;
44
pub extern "C" fn delete_SecpKeyId(secp_id: *mut SecpKeyId) {
55
delete(secp_id)
66
}
7+
8+
#[no_mangle]
9+
pub extern "C" fn SecpKeyId_from_address(
10+
address: *mut raw::c_char, network: *mut raw::c_char,
11+
) -> CPtrResult<SecpKeyId> {
12+
let fun = || {
13+
let address = unsafe { convert::str_in(address)? };
14+
let network = unsafe { convert::str_in(network)? };
15+
16+
let network = Networks::by_name(network)?;
17+
let id = SecpKeyId::from_p2pkh_addr(address, network)?;
18+
19+
let id = convert::move_out(id);
20+
Ok(id)
21+
};
22+
cresult(fun())
23+
}
24+
25+
#[no_mangle]
26+
pub extern "C" fn SecpKeyId_to_address(
27+
secp_id: *const SecpKeyId, network: *const raw::c_char,
28+
) -> CPtrResult<raw::c_char> {
29+
let secp_id = unsafe { convert::borrow_in(secp_id) };
30+
let fun = || {
31+
let network = unsafe { convert::str_in(network)? };
32+
33+
let network = Networks::by_name(network)?;
34+
let address = secp_id.to_p2pkh_addr(network.p2pkh_addr());
35+
36+
let address = convert::string_out(address);
37+
Ok(address)
38+
};
39+
cresult(fun())
40+
}

sdk-ffi/src/keyvault/secp/pk.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ pub extern "C" fn delete_SecpPublicKey(secp_pk: *mut SecpPublicKey) {
66
}
77

88
#[no_mangle]
9-
pub extern "C" fn SecpPublicKey_fromString(hex: *mut raw::c_char) -> CPtrResult<SecpPublicKey> {
9+
pub extern "C" fn SecpPublicKey_fromString(hex: *const raw::c_char) -> CPtrResult<SecpPublicKey> {
1010
let fun = || {
1111
let hex = unsafe { convert::str_in(hex) }?;
1212
let secp_pk = SecpPublicKey::from_str(hex)?;
@@ -16,7 +16,9 @@ pub extern "C" fn SecpPublicKey_fromString(hex: *mut raw::c_char) -> CPtrResult<
1616
}
1717

1818
#[no_mangle]
19-
pub extern "C" fn SecpPublicKey_to_string(secp_pk: *mut SecpPublicKey) -> CPtrResult<raw::c_char> {
19+
pub extern "C" fn SecpPublicKey_to_string(
20+
secp_pk: *const SecpPublicKey,
21+
) -> CPtrResult<raw::c_char> {
2022
let secp_pk = unsafe { convert::borrow_in(secp_pk) };
2123
let fun = || {
2224
let hex = secp_pk.to_string();
@@ -26,13 +28,13 @@ pub extern "C" fn SecpPublicKey_to_string(secp_pk: *mut SecpPublicKey) -> CPtrRe
2628
}
2729

2830
#[no_mangle]
29-
pub extern "C" fn SecpPublicKey_key_id(secp_pk: *mut SecpPublicKey) -> *mut SecpKeyId {
31+
pub extern "C" fn SecpPublicKey_key_id(secp_pk: *const SecpPublicKey) -> *mut SecpKeyId {
3032
let secp_pk = unsafe { convert::borrow_in(secp_pk) };
3133
convert::move_out(secp_pk.key_id())
3234
}
3335

3436
#[no_mangle]
35-
pub extern "C" fn SecpPublicKey_ark_key_id(secp_pk: *mut SecpPublicKey) -> *mut SecpKeyId {
37+
pub extern "C" fn SecpPublicKey_ark_key_id(secp_pk: *const SecpPublicKey) -> *mut SecpKeyId {
3638
let secp_pk = unsafe { convert::borrow_in(secp_pk) };
3739
convert::move_out(secp_pk.ark_key_id())
3840
}

0 commit comments

Comments
 (0)