Skip to main content

ecopay2/
lib.rs

1pub mod contract;
2pub mod msg;
3pub mod state;
4
5#[cfg(target_arch = "wasm32")]
6mod wasm {
7    use super::contract;
8    use cosmwasm::{exports, imports};
9    use std::ffi::c_void;
10
11    #[no_mangle]
12    extern "C" fn init(params_ptr: *mut c_void, msg_ptr: *mut c_void) -> *mut c_void {
13        exports::do_init(
14            &contract::init::<imports::ExternalStorage, imports::ExternalApi>,
15            params_ptr,
16            msg_ptr,
17        )
18    }
19
20    #[no_mangle]
21    extern "C" fn handle(params_ptr: *mut c_void, msg_ptr: *mut c_void) -> *mut c_void {
22        exports::do_handle(
23            &contract::handle::<imports::ExternalStorage, imports::ExternalApi>,
24            params_ptr,
25            msg_ptr,
26        )
27    }
28
29    #[no_mangle]
30    extern "C" fn query(msg_ptr: *mut c_void) -> *mut c_void {
31        exports::do_query(
32            &contract::query::<imports::ExternalStorage, imports::ExternalApi>,
33            msg_ptr,
34        )
35    }
36
37    // Other C externs like cosmwasm_api_0_6, allocate, deallocate are available
38    // automatically because we `use cosmwasm`.
39}