Просмотр исходного кода

sdk/db: Constant error codes for db

parazyd 3 лет назад
Родитель
Сommit
17e5d01b18
2 измененных файлов с 66 добавлено и 52 удалено
  1. 45 39
      src/runtime/import/db.rs
  2. 21 13
      src/sdk/src/db.rs

+ 45 - 39
src/runtime/import/db.rs

@@ -18,7 +18,13 @@
 
 
 use std::io::Cursor;
 use std::io::Cursor;
 
 
-use darkfi_sdk::crypto::ContractId;
+use darkfi_sdk::{
+    crypto::ContractId,
+    db::{
+        CALLER_ACCESS_DENIED, DB_CONTAINS_KEY_FAILED, DB_GET_FAILED, DB_INIT_FAILED,
+        DB_LOOKUP_FAILED, DB_SET_FAILED, DB_SUCCESS,
+    },
+};
 use darkfi_serial::Decodable;
 use darkfi_serial::Decodable;
 use log::{debug, error};
 use log::{debug, error};
 use wasmer::{FunctionEnvMut, WasmPtr};
 use wasmer::{FunctionEnvMut, WasmPtr};
@@ -73,13 +79,13 @@ pub(crate) fn db_init(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) -> i
 
 
             let Ok(mem_slice) = ptr.slice(&memory_view, len) else {
             let Ok(mem_slice) = ptr.slice(&memory_view, len) else {
                 error!(target: "wasm_runtime::db_init", "Failed to make slice from ptr");
                 error!(target: "wasm_runtime::db_init", "Failed to make slice from ptr");
-                return -2
+                return DB_INIT_FAILED
             };
             };
 
 
             let mut buf = vec![0_u8; len as usize];
             let mut buf = vec![0_u8; len as usize];
             if let Err(e) = mem_slice.read_slice(&mut buf) {
             if let Err(e) = mem_slice.read_slice(&mut buf) {
                 error!(target: "wasm_runtime::db_init", "Failed to read from memory slice: {}", e);
                 error!(target: "wasm_runtime::db_init", "Failed to read from memory slice: {}", e);
-                return -2
+                return DB_INIT_FAILED
             };
             };
 
 
             let mut buf_reader = Cursor::new(buf);
             let mut buf_reader = Cursor::new(buf);
@@ -88,7 +94,7 @@ pub(crate) fn db_init(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) -> i
                 Ok(v) => v,
                 Ok(v) => v,
                 Err(e) => {
                 Err(e) => {
                     error!(target: "wasm_runtime::db_init", "Failed to decode ContractId: {}", e);
                     error!(target: "wasm_runtime::db_init", "Failed to decode ContractId: {}", e);
-                    return -2
+                    return DN_INIT_FAILED
                 }
                 }
             };
             };
 
 
@@ -96,7 +102,7 @@ pub(crate) fn db_init(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) -> i
                 Ok(v) => v,
                 Ok(v) => v,
                 Err(e) => {
                 Err(e) => {
                     error!(target: "wasm_runtime::db_init", "Failed to decode db_name: {}", e);
                     error!(target: "wasm_runtime::db_init", "Failed to decode db_name: {}", e);
-                    return -2
+                    return DB_INIT_FAILED
                 }
                 }
             };
             };
 
 
@@ -104,14 +110,14 @@ pub(crate) fn db_init(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) -> i
 
 
             if &cid != contract_id {
             if &cid != contract_id {
                 error!(target: "wasm_runtime::db_init", "Unauthorized ContractId for db_init");
                 error!(target: "wasm_runtime::db_init", "Unauthorized ContractId for db_init");
-                return -1
+                return CALLER_ACCESS_DENIED
             }
             }
 
 
             let tree_handle = match contracts.init(db, &cid, &db_name) {
             let tree_handle = match contracts.init(db, &cid, &db_name) {
                 Ok(v) => v,
                 Ok(v) => v,
                 Err(e) => {
                 Err(e) => {
                     error!(target: "wasm_runtime:db_lookup", "Failed to init db: {}", e);
                     error!(target: "wasm_runtime:db_lookup", "Failed to init db: {}", e);
-                    return -2
+                    return DB_INIT_FAILED
                 }
                 }
             };
             };
 
 
@@ -129,7 +135,7 @@ pub(crate) fn db_init(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) -> i
         }
         }
         _ => {
         _ => {
             error!(target: "wasm_runtime::db_init", "db_init called in unauthorized section");
             error!(target: "wasm_runtime::db_init", "db_init called in unauthorized section");
-            -1
+            CALLER_ACCESS_DENIED
         }
         }
     }
     }
 }
 }
@@ -148,13 +154,13 @@ pub(crate) fn db_lookup(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) ->
 
 
             let Ok(mem_slice) = ptr.slice(&memory_view, len) else {
             let Ok(mem_slice) = ptr.slice(&memory_view, len) else {
                 error!(target: "wasm_runtime::db_lookup", "Failed to make slice from ptr");
                 error!(target: "wasm_runtime::db_lookup", "Failed to make slice from ptr");
-                return -2
+                return DB_LOOKUP_FAILED
             };
             };
 
 
             let mut buf = vec![0_u8; len as usize];
             let mut buf = vec![0_u8; len as usize];
             if let Err(e) = mem_slice.read_slice(&mut buf) {
             if let Err(e) = mem_slice.read_slice(&mut buf) {
                 error!(target: "wasm_runtime::db_lookup", "Failed to read from memory slice: {}", e);
                 error!(target: "wasm_runtime::db_lookup", "Failed to read from memory slice: {}", e);
-                return -2
+                return DB_LOOKUP_FAILED
             };
             };
 
 
             let mut buf_reader = Cursor::new(buf);
             let mut buf_reader = Cursor::new(buf);
@@ -163,7 +169,7 @@ pub(crate) fn db_lookup(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) ->
                 Ok(v) => v,
                 Ok(v) => v,
                 Err(e) => {
                 Err(e) => {
                     error!(target: "wasm_runtime::db_lookup", "Failed to decode ContractId: {}", e);
                     error!(target: "wasm_runtime::db_lookup", "Failed to decode ContractId: {}", e);
-                    return -2
+                    return DB_LOOKUP_FAILED
                 }
                 }
             };
             };
 
 
@@ -171,7 +177,7 @@ pub(crate) fn db_lookup(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) ->
                 Ok(v) => v,
                 Ok(v) => v,
                 Err(e) => {
                 Err(e) => {
                     error!(target: "wasm_runtime::db_lookup", "Failed to decode db_name: {}", e);
                     error!(target: "wasm_runtime::db_lookup", "Failed to decode db_name: {}", e);
-                    return -2
+                    return DB_LOOKUP_FAILED
                 }
                 }
             };
             };
 
 
@@ -181,7 +187,7 @@ pub(crate) fn db_lookup(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) ->
                 Ok(v) => v,
                 Ok(v) => v,
                 Err(e) => {
                 Err(e) => {
                     error!(target: "wasm_runtime:db_lookup", "Failed to lookup db: {}", e);
                     error!(target: "wasm_runtime:db_lookup", "Failed to lookup db: {}", e);
-                    return -2
+                    return DB_LOOKUP_FAILED
                 }
                 }
             };
             };
 
 
@@ -199,7 +205,7 @@ pub(crate) fn db_lookup(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) ->
         }
         }
         _ => {
         _ => {
             error!(target: "wasm_runtime::db_lookup", "db_lookup called in unauthorized section");
             error!(target: "wasm_runtime::db_lookup", "db_lookup called in unauthorized section");
-            -1
+            CALLER_ACCESS_DENIED
         }
         }
     }
     }
 }
 }
@@ -213,13 +219,13 @@ pub(crate) fn db_set(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) -> i3
 
 
             let Ok(mem_slice) = ptr.slice(&memory_view, len) else {
             let Ok(mem_slice) = ptr.slice(&memory_view, len) else {
                 error!(target: "wasm_runtime::db_set", "Failed to make slice from ptr");
                 error!(target: "wasm_runtime::db_set", "Failed to make slice from ptr");
-                return -2
+                return DB_SET_FAILED
             };
             };
 
 
             let mut buf = vec![0_u8; len as usize];
             let mut buf = vec![0_u8; len as usize];
             if let Err(e) = mem_slice.read_slice(&mut buf) {
             if let Err(e) = mem_slice.read_slice(&mut buf) {
                 error!(target: "wasm_runtime:db_set", "Failed to read from memory slice: {}", e);
                 error!(target: "wasm_runtime:db_set", "Failed to read from memory slice: {}", e);
-                return -2
+                return DB_SET_FAILED
             };
             };
 
 
             let mut buf_reader = Cursor::new(buf);
             let mut buf_reader = Cursor::new(buf);
@@ -229,7 +235,7 @@ pub(crate) fn db_set(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) -> i3
                 Ok(v) => v,
                 Ok(v) => v,
                 Err(e) => {
                 Err(e) => {
                     error!(target: "wasm_runtime::db_set", "Failed to decode DbHandle: {}", e);
                     error!(target: "wasm_runtime::db_set", "Failed to decode DbHandle: {}", e);
-                    return -2
+                    return DB_SET_FAILED
                 }
                 }
             };
             };
             let db_handle = db_handle as usize;
             let db_handle = db_handle as usize;
@@ -238,7 +244,7 @@ pub(crate) fn db_set(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) -> i3
                 Ok(v) => v,
                 Ok(v) => v,
                 Err(e) => {
                 Err(e) => {
                     error!(target: "wasm_runtime::db_set", "Failed to decode key vec: {}", e);
                     error!(target: "wasm_runtime::db_set", "Failed to decode key vec: {}", e);
-                    return -2
+                    return DB_SET_FAILED
                 }
                 }
             };
             };
 
 
@@ -246,7 +252,7 @@ pub(crate) fn db_set(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) -> i3
                 Ok(v) => v,
                 Ok(v) => v,
                 Err(e) => {
                 Err(e) => {
                     error!(target: "wasm_runtime::db_set", "Failed to decode value vec: {}", e);
                     error!(target: "wasm_runtime::db_set", "Failed to decode value vec: {}", e);
-                    return -2
+                    return DB_SET_FAILED
                 }
                 }
             };
             };
 
 
@@ -257,7 +263,7 @@ pub(crate) fn db_set(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) -> i3
 
 
             if db_handles.len() <= db_handle || db_batches.len() <= db_handle {
             if db_handles.len() <= db_handle || db_batches.len() <= db_handle {
                 error!(target: "wasm_runtime::db_set", "Requested DbHandle that is out of bounds");
                 error!(target: "wasm_runtime::db_set", "Requested DbHandle that is out of bounds");
-                return -2
+                return DB_SET_FAILED
             }
             }
 
 
             let handle_idx = db_handle;
             let handle_idx = db_handle;
@@ -266,14 +272,14 @@ pub(crate) fn db_set(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) -> i3
 
 
             if db_handle.contract_id != env.contract_id {
             if db_handle.contract_id != env.contract_id {
                 error!(target: "wasm_runtime::db_set", "Unauthorized to write to DbHandle");
                 error!(target: "wasm_runtime::db_set", "Unauthorized to write to DbHandle");
-                return -1
+                return CALLER_ACCESS_DENIED
             }
             }
 
 
             db_batch.insert(key, value);
             db_batch.insert(key, value);
 
 
-            0
+            DB_SUCCESS
         }
         }
-        _ => -1,
+        _ => CALLER_ACCESS_DENIED,
     }
     }
 }
 }
 
 
@@ -286,13 +292,13 @@ pub(crate) fn db_get(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) -> i6
 
 
             let Ok(mem_slice) = ptr.slice(&memory_view, len) else {
             let Ok(mem_slice) = ptr.slice(&memory_view, len) else {
                 error!(target: "wasm_runtime::db_get", "Failed to make slice from ptr");
                 error!(target: "wasm_runtime::db_get", "Failed to make slice from ptr");
-                return -2
+                return DB_GET_FAILED
             };
             };
 
 
             let mut buf = vec![0_u8; len as usize];
             let mut buf = vec![0_u8; len as usize];
             if let Err(e) = mem_slice.read_slice(&mut buf) {
             if let Err(e) = mem_slice.read_slice(&mut buf) {
                 error!(target: "wasm_runtime::db_get", "Failed to read from memory slice: {}", e);
                 error!(target: "wasm_runtime::db_get", "Failed to read from memory slice: {}", e);
-                return -2
+                return DB_GET_FAILED
             };
             };
 
 
             let mut buf_reader = Cursor::new(buf);
             let mut buf_reader = Cursor::new(buf);
@@ -302,7 +308,7 @@ pub(crate) fn db_get(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) -> i6
                 Ok(v) => v,
                 Ok(v) => v,
                 Err(e) => {
                 Err(e) => {
                     error!(target: "wasm_runtime::db_get", "Failed to decode DbHandle: {}", e);
                     error!(target: "wasm_runtime::db_get", "Failed to decode DbHandle: {}", e);
-                    return -2
+                    return DB_GET_FAILED
                 }
                 }
             };
             };
             let db_handle = db_handle as usize;
             let db_handle = db_handle as usize;
@@ -311,7 +317,7 @@ pub(crate) fn db_get(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) -> i6
                 Ok(v) => v,
                 Ok(v) => v,
                 Err(e) => {
                 Err(e) => {
                     error!(target: "wasm_runtime::db_get", "Failed to decode key from vec: {}", e);
                     error!(target: "wasm_runtime::db_get", "Failed to decode key from vec: {}", e);
-                    return -2
+                    return DB_GET_FAILED
                 }
                 }
             };
             };
 
 
@@ -321,7 +327,7 @@ pub(crate) fn db_get(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) -> i6
 
 
             if db_handles.len() <= db_handle {
             if db_handles.len() <= db_handle {
                 error!(target: "wasm_runtime::db_get", "Requested DbHandle that is out of bounds");
                 error!(target: "wasm_runtime::db_get", "Requested DbHandle that is out of bounds");
-                return -2
+                return DB_GET_FAILED
             }
             }
 
 
             let handle_idx = db_handle;
             let handle_idx = db_handle;
@@ -331,13 +337,13 @@ pub(crate) fn db_get(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) -> i6
                 Ok(v) => v,
                 Ok(v) => v,
                 Err(e) => {
                 Err(e) => {
                     error!(target: "wasm_runtime::db_get", "Internal error getting from tree: {}", e);
                     error!(target: "wasm_runtime::db_get", "Internal error getting from tree: {}", e);
-                    return -2
+                    return DB_GET_FAILED
                 }
                 }
             };
             };
 
 
             let Some(return_data) = ret else {
             let Some(return_data) = ret else {
                 debug!("returned empty vec");
                 debug!("returned empty vec");
-                return -3
+                return -127
             };
             };
 
 
             // Copy Vec<u8> to the VM
             // Copy Vec<u8> to the VM
@@ -345,7 +351,7 @@ pub(crate) fn db_get(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) -> i6
             objects.push(return_data);
             objects.push(return_data);
             (objects.len() - 1) as i64
             (objects.len() - 1) as i64
         }
         }
-        _ => -1,
+        _ => CALLER_ACCESS_DENIED,
     }
     }
 }
 }
 
 
@@ -361,13 +367,13 @@ pub(crate) fn db_contains_key(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u
 
 
             let Ok(mem_slice) = ptr.slice(&memory_view, len) else {
             let Ok(mem_slice) = ptr.slice(&memory_view, len) else {
                 error!(target: "wasm_runtime::db_contains_key", "Failed to make slice from ptr");
                 error!(target: "wasm_runtime::db_contains_key", "Failed to make slice from ptr");
-                return -2
+                return DB_CONTAINS_KEY_FAILED
             };
             };
 
 
             let mut buf = vec![0_u8; len as usize];
             let mut buf = vec![0_u8; len as usize];
             if let Err(e) = mem_slice.read_slice(&mut buf) {
             if let Err(e) = mem_slice.read_slice(&mut buf) {
                 error!(target: "wasm_runtime:db_contains_key", "Failed to read from memory slice: {}", e);
                 error!(target: "wasm_runtime:db_contains_key", "Failed to read from memory slice: {}", e);
-                return -2
+                return DB_CONTAINS_KEY_FAILED
             };
             };
 
 
             let mut buf_reader = Cursor::new(buf);
             let mut buf_reader = Cursor::new(buf);
@@ -377,7 +383,7 @@ pub(crate) fn db_contains_key(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u
                 Ok(v) => v,
                 Ok(v) => v,
                 Err(e) => {
                 Err(e) => {
                     error!(target: "wasm_runtime::db_contains_key", "Failed to decode DbHandle: {}", e);
                     error!(target: "wasm_runtime::db_contains_key", "Failed to decode DbHandle: {}", e);
-                    return -2
+                    return DB_CONTAINS_KEY_FAILED
                 }
                 }
             };
             };
             let db_handle = db_handle as usize;
             let db_handle = db_handle as usize;
@@ -386,7 +392,7 @@ pub(crate) fn db_contains_key(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u
                 Ok(v) => v,
                 Ok(v) => v,
                 Err(e) => {
                 Err(e) => {
                     error!(target: "wasm_runtime::db_contains_key", "Failed to decode key vec: {}", e);
                     error!(target: "wasm_runtime::db_contains_key", "Failed to decode key vec: {}", e);
-                    return -2
+                    return DB_CONTAINS_KEY_FAILED
                 }
                 }
             };
             };
 
 
@@ -396,7 +402,7 @@ pub(crate) fn db_contains_key(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u
 
 
             if db_handles.len() <= db_handle {
             if db_handles.len() <= db_handle {
                 error!(target: "wasm_runtime::db_contains_key", "Requested DbHandle that is out of bounds");
                 error!(target: "wasm_runtime::db_contains_key", "Requested DbHandle that is out of bounds");
-                return -2
+                return DB_CONTAINS_KEY_FAILED
             }
             }
 
 
             let handle_idx = db_handle;
             let handle_idx = db_handle;
@@ -405,14 +411,14 @@ pub(crate) fn db_contains_key(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u
             match db_handle.contains_key(&key) {
             match db_handle.contains_key(&key) {
                 Ok(v) => {
                 Ok(v) => {
                     if v {
                     if v {
-                        return 1
+                        return 1 // true
                     } else {
                     } else {
-                        return 0
+                        return 0 // false
                     }
                     }
                 }
                 }
                 Err(e) => {
                 Err(e) => {
                     error!(target: "wasm_runtime::db_contains_key", "sled.tree.contains_key failed: {}", e);
                     error!(target: "wasm_runtime::db_contains_key", "sled.tree.contains_key failed: {}", e);
-                    return -2
+                    return DB_CONTAINS_KEY_FAILED
                 }
                 }
             }
             }
         }
         }

+ 21 - 13
src/sdk/src/db.rs

@@ -26,6 +26,14 @@ use super::{
 
 
 pub type DbHandle = u32;
 pub type DbHandle = u32;
 
 
+pub const DB_SUCCESS: i32 = 0;
+pub const CALLER_ACCESS_DENIED: i32 = -1;
+pub const DB_INIT_FAILED: i32 = -2;
+pub const DB_LOOKUP_FAILED: i32 = -3;
+pub const DB_GET_FAILED: i32 = -4;
+pub const DB_CONTAINS_KEY_FAILED: i32 = -5;
+pub const DB_SET_FAILED: i32 = -6;
+
 /// Only deploy() can call this. Creates a new database instance for this contract.
 /// Only deploy() can call this. Creates a new database instance for this contract.
 ///
 ///
 /// ```
 /// ```
@@ -43,8 +51,8 @@ pub fn db_init(contract_id: ContractId, db_name: &str) -> GenericResult<DbHandle
 
 
         if ret < 0 {
         if ret < 0 {
             match ret {
             match ret {
-                -1 => return Err(ContractError::CallerAccessDenied),
-                -2 => return Err(ContractError::DbInitFailed),
+                CALLER_ACCESS_DENIED => return Err(ContractError::CallerAccessDenied),
+                DB_INIT_FAILED => return Err(ContractError::DbInitFailed),
                 _ => unimplemented!(),
                 _ => unimplemented!(),
             }
             }
         }
         }
@@ -64,8 +72,8 @@ pub fn db_lookup(contract_id: ContractId, db_name: &str) -> GenericResult<DbHand
 
 
         if ret < 0 {
         if ret < 0 {
             match ret {
             match ret {
-                -1 => return Err(ContractError::CallerAccessDenied),
-                -2 => return Err(ContractError::DbLookupFailed),
+                CALLER_ACCESS_DENIED => return Err(ContractError::CallerAccessDenied),
+                DB_LOOKUP_FAILED => return Err(ContractError::DbLookupFailed),
                 _ => unimplemented!(),
                 _ => unimplemented!(),
             }
             }
         }
         }
@@ -88,10 +96,10 @@ pub fn db_get(db_handle: DbHandle, key: &[u8]) -> GenericResult<Option<Vec<u8>>>
     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 {
     if ret < 0 {
-        match ret {
-            -1 => return Err(ContractError::CallerAccessDenied),
-            -2 => return Err(ContractError::DbGetFailed),
-            -3 => return Ok(None),
+        match ret as i32 {
+            CALLER_ACCESS_DENIED => return Err(ContractError::CallerAccessDenied),
+            DB_GET_FAILED => return Err(ContractError::DbGetFailed),
+            -127 => return Ok(None),
             _ => unimplemented!(),
             _ => unimplemented!(),
         }
         }
     }
     }
@@ -120,10 +128,10 @@ pub fn db_contains_key(db_handle: DbHandle, key: &[u8]) -> GenericResult<bool> {
     let ret = unsafe { db_contains_key_(buf.as_ptr(), len as u32) };
     let ret = unsafe { db_contains_key_(buf.as_ptr(), len as u32) };
 
 
     match ret {
     match ret {
+        CALLER_ACCESS_DENIED => return Err(ContractError::CallerAccessDenied),
+        DB_CONTAINS_KEY_FAILED => return Err(ContractError::DbContainsKeyFailed),
         0 => return Ok(false),
         0 => return Ok(false),
         1 => return Ok(true),
         1 => return Ok(true),
-        -1 => return Err(ContractError::CallerAccessDenied),
-        -2 => return Err(ContractError::DbContainsKeyFailed),
         _ => unimplemented!(),
         _ => unimplemented!(),
     }
     }
 }
 }
@@ -143,9 +151,9 @@ pub fn db_set(db_handle: DbHandle, key: &[u8], value: &[u8]) -> GenericResult<()
         len += value.to_vec().encode(&mut buf)?;
         len += value.to_vec().encode(&mut buf)?;
 
 
         match db_set_(buf.as_ptr(), len as u32) {
         match db_set_(buf.as_ptr(), len as u32) {
-            0 => Ok(()),
-            -1 => Err(ContractError::CallerAccessDenied),
-            -2 => Err(ContractError::DbSetFailed),
+            CALLER_ACCESS_DENIED => Err(ContractError::CallerAccessDenied),
+            DB_SET_FAILED => Err(ContractError::DbSetFailed),
+            DB_SUCCESS => Ok(()),
             _ => unreachable!(),
             _ => unreachable!(),
         }
         }
     }
     }