Closed
Description
Hi! I'm having an issue with the library (which is great btw). I'm unable to pass Integer
from Java to Rust, as it panics. I'm running this on Android btw, in an emulator on a Macbook Pro m1, with Java 11.
This are some simplified versions of the code I'm using:
public class Rust {
private static native Instance fnSign(Instance<String> message, Instance<String> key, Instance<Integer> parties, Instance<String> address);
public Signature sign(String message, String key, String address) {
Integer parties = Integer.valueOf(55);
Instance instance = fnSign(
Java2RustUtils.createInstance(message),
Java2RustUtils.createInstance(key),
Java2RustUtils.createInstance(parties),
Java2RustUtils.createInstance(address));
return Java2RustUtils.getObjectCasted(instance);
}
}
#[call_from_java("expo.modules.multipartyecdsa.Rust.fnSign")]
fn sign(
message: Instance,
key: Instance,
parties: Instance,
address: Instance,
) -> Result<Instance> {
let jvm = Jvm::attach_thread()?;
let message: String = jvm.to_rust(message)?;
let key: String = jvm.to_rust(key)?;
let parties: i32 = jvm.to_rust(parties).unwrap();
let address: String = jvm.to_rust(address)?;
let signature = Signature {
r: format!("message: {}, key: {}, address: {}", message, key, address),
s: format!("parties: {:?}", parties),
v: 1,
};
let ia = InvocationArg::new(&signature, "expo.modules.multipartyecdsa.Signature");
let instance = Instance::try_from(ia)?;
Ok(instance)
}
Something interesting that happens is that if I pass it as an array int[]
it works.
If you have any further thing I can try or if you need any other information I'm all ears. Thanks!
Metadata
Metadata
Assignees
Labels
No labels