diff --git a/libs/walproposer/libwalproposer.a b/libs/walproposer/libwalproposer.a index ffe6e6e3ac..2c0eb87e35 100644 Binary files a/libs/walproposer/libwalproposer.a and b/libs/walproposer/libwalproposer.a differ diff --git a/libs/walproposer/rust_bindings.h b/libs/walproposer/rust_bindings.h index 4f30ab9755..358731c5cf 100644 --- a/libs/walproposer/rust_bindings.h +++ b/libs/walproposer/rust_bindings.h @@ -3,4 +3,4 @@ #include #include -void rust_function(void); +void rust_function(uint32_t a); diff --git a/libs/walproposer/src/lib.rs b/libs/walproposer/src/lib.rs index ef960f83fa..40284897c6 100644 --- a/libs/walproposer/src/lib.rs +++ b/libs/walproposer/src/lib.rs @@ -8,9 +8,20 @@ pub mod bindings { pub use bindings::TestFunc; +use std::cell::RefCell; + +thread_local! { + pub static TMP_TEST: RefCell> = RefCell::new(vec![]); +} + #[no_mangle] -pub extern "C" fn rust_function() { +pub extern "C" fn rust_function(a: u32) { println!("Hello from Rust!"); + println!("a: {}", a); + TMP_TEST.with(|f| { + f.borrow_mut().push(a); + println!("TMP_TEST: {:?}", f.borrow()); + }); } #[cfg(test)] diff --git a/libs/walproposer/src/test.rs b/libs/walproposer/src/test.rs index 4fc5533c44..31efe738b9 100644 --- a/libs/walproposer/src/test.rs +++ b/libs/walproposer/src/test.rs @@ -1,4 +1,4 @@ -use crate::TestFunc; +use crate::{TestFunc, TMP_TEST}; #[test] fn run_test() { diff --git a/libs/walproposer/test.c b/libs/walproposer/test.c index 78c5557223..98a74804f2 100644 --- a/libs/walproposer/test.c +++ b/libs/walproposer/test.c @@ -4,6 +4,6 @@ int TestFunc(int a, int b) { printf("TestFunc: %d + %d = %d\n", a, b, a + b); - rust_function(); + rust_function(0); return a + b; }