From c8bc9484bb5d0bb5d4dfc756faaef4375e32fb3d Mon Sep 17 00:00:00 2001 From: parazyd Date: Sun, 6 Nov 2022 21:45:43 +0100 Subject: [PATCH] sdk: Revert architecture guards --- src/sdk/src/db.rs | 60 ++++++++++++++++++++++++++++++--------------- src/sdk/src/lib.rs | 2 -- src/sdk/src/util.rs | 33 +++++++++++++++++++------ 3 files changed, 65 insertions(+), 30 deletions(-) diff --git a/src/sdk/src/db.rs b/src/sdk/src/db.rs index d26b457f6..0ab9f33ec 100644 --- a/src/sdk/src/db.rs +++ b/src/sdk/src/db.rs @@ -7,14 +7,16 @@ use super::{ }; pub type DbHandle = u32; +type TxHandle = u32; /// Only deploy() can call this. Creates a new database instance for this contract. /// -/// ```ignore +/// ``` /// type DbHandle = u32; /// db_init(db_name) -> DbHandle /// ``` pub fn db_init(contract_id: ContractId, db_name: &str) -> GenericResult { + #[cfg(target_arch = "wasm32")] unsafe { let mut len = 0; let mut buf = vec![]; @@ -33,9 +35,13 @@ pub fn db_init(contract_id: ContractId, db_name: &str) -> GenericResult GenericResult { + #[cfg(target_arch = "wasm32")] unsafe { let mut len = 0; let mut buf = vec![]; @@ -54,45 +60,55 @@ pub fn db_lookup(contract_id: ContractId, db_name: &str) -> GenericResult GenericResult>> { - let mut len = 0; - let mut buf = vec![]; - len += db_handle.encode(&mut buf)?; - len += key.to_vec().encode(&mut buf)?; + #[cfg(target_arch = "wasm32")] + { + let mut len = 0; + let mut buf = vec![]; + len += db_handle.encode(&mut buf)?; + len += key.to_vec().encode(&mut buf)?; - let ret = unsafe { db_get_(buf.as_ptr(), len as u32) }; + let ret = unsafe { db_get_(buf.as_ptr(), len as u32) }; - if ret < 0 { - match ret { - -1 => return Err(ContractError::CallerAccessDenied), - -2 => return Err(ContractError::DbGetFailed), - -3 => return Ok(None), - _ => unimplemented!(), + if ret < 0 { + match ret { + -1 => return Err(ContractError::CallerAccessDenied), + -2 => return Err(ContractError::DbGetFailed), + -3 => return Ok(None), + _ => unimplemented!(), + } } + + let obj = ret as u32; + let obj_size = get_object_size(obj); + let mut buf = vec![0u8; obj_size as usize]; + get_object_bytes(&mut buf, obj); + + Ok(Some(buf)) } - let obj = ret as u32; - let obj_size = get_object_size(obj); - let mut buf = vec![0u8; obj_size as usize]; - get_object_bytes(&mut buf, obj); - - Ok(Some(buf)) + #[cfg(not(target_arch = "wasm32"))] + unimplemented!() } /// Only update() can call this. Set a value within the transaction. /// -/// ```ignore +/// ``` /// db_set(tx_handle, key, value); /// ``` pub fn db_set(db_handle: DbHandle, key: &[u8], value: &[u8]) -> GenericResult<()> { // Check entry for tx_handle is not None + #[cfg(target_arch = "wasm32")] unsafe { let mut len = 0; let mut buf = vec![]; @@ -107,8 +123,12 @@ pub fn db_set(db_handle: DbHandle, key: &[u8], value: &[u8]) -> GenericResult<() _ => unreachable!(), } } + + #[cfg(not(target_arch = "wasm32"))] + unimplemented!() } +#[cfg(target_arch = "wasm32")] extern "C" { fn db_init_(ptr: *const u8, len: u32) -> i32; fn db_lookup_(ptr: *const u8, len: u32) -> i32; diff --git a/src/sdk/src/lib.rs b/src/sdk/src/lib.rs index d1a280844..2c8c8bbdb 100644 --- a/src/sdk/src/lib.rs +++ b/src/sdk/src/lib.rs @@ -19,7 +19,6 @@ pub use incrementalmerkletree; pub use pasta_curves as pasta; -#[cfg(target_arch = "wasm32")] /// Database functions pub mod db; @@ -35,7 +34,6 @@ pub mod log; /// Crypto-related definitions pub mod crypto; -#[cfg(target_arch = "wasm32")] /// Merkle pub mod merkle; diff --git a/src/sdk/src/util.rs b/src/sdk/src/util.rs index dd98f6d5b..ab7133784 100644 --- a/src/sdk/src/util.rs +++ b/src/sdk/src/util.rs @@ -1,29 +1,46 @@ -#[cfg(target_arch = "wasm32")] use super::error::ContractError; -#[cfg(target_arch = "wasm32")] pub fn set_return_data(data: &[u8]) -> Result<(), ContractError> { + #[cfg(target_arch = "wasm32")] unsafe { return match set_return_data_(data.as_ptr(), data.len() as u32) { 0 => Ok(()), errcode => Err(ContractError::from(errcode)), } } + + #[cfg(not(target_arch = "wasm32"))] + unimplemented!(); } -#[cfg(target_arch = "wasm32")] pub fn put_object_bytes(data: &[u8]) -> i64 { - unsafe { return put_object_bytes_(data.as_ptr(), data.len() as u32) } + #[cfg(target_arch = "wasm32")] + unsafe { + return put_object_bytes_(data.as_ptr(), data.len() as u32) + } + + #[cfg(not(target_arch = "wasm32"))] + unimplemented!(); } -#[cfg(target_arch = "wasm32")] pub fn get_object_bytes(data: &mut [u8], object_index: u32) -> i64 { - unsafe { return get_object_bytes_(data.as_mut_ptr(), object_index as u32) } + #[cfg(target_arch = "wasm32")] + { + unsafe { return get_object_bytes_(data.as_mut_ptr(), object_index as u32) } + } + + #[cfg(not(target_arch = "wasm32"))] + unimplemented!(); } -#[cfg(target_arch = "wasm32")] pub fn get_object_size(object_index: u32) -> i64 { - unsafe { return get_object_size_(object_index as u32) } + #[cfg(target_arch = "wasm32")] + unsafe { + return get_object_size_(object_index as u32) + } + + #[cfg(not(target_arch = "wasm32"))] + unimplemented!(); } #[cfg(target_arch = "wasm32")]