@@ -6,7 +6,11 @@ use serde_big_array::BigArray;
6
6
use cosmwasm_std:: { to_binary, Api , Binary , CanonicalAddr , StdError , StdResult , Storage } ;
7
7
use secret_toolkit:: storage:: { AppendStore , Item } ;
8
8
9
- use crate :: { msg:: QueryAnswer , state:: { safe_add, safe_add_u64, BalancesStore , } , transaction_history:: { Tx , TRANSACTIONS } } ;
9
+ use crate :: {
10
+ msg:: QueryAnswer ,
11
+ state:: { safe_add, safe_add_u64, BalancesStore , } ,
12
+ transaction_history:: { Tx , TRANSACTIONS } ,
13
+ } ;
10
14
11
15
pub const KEY_DWB : & [ u8 ] = b"dwb" ;
12
16
pub const KEY_TX_NODES_COUNT : & [ u8 ] = b"dwb-node-cnt" ;
@@ -261,6 +265,7 @@ impl DelayedWriteBuffer {
261
265
262
266
const U16_BYTES : usize = 2 ;
263
267
const U64_BYTES : usize = 8 ;
268
+ const U128_BYTES : usize = 16 ;
264
269
265
270
#[ cfg( test) ]
266
271
const DWB_RECIPIENT_BYTES : usize = 54 ; // because mock_api creates rando canonical addr that is 54 bytes long
@@ -270,6 +275,10 @@ const DWB_AMOUNT_BYTES: usize = 8; // Max 16 (u128)
270
275
const DWB_HEAD_NODE_BYTES : usize = 5 ; // Max 8 (u64)
271
276
const DWB_LIST_LEN_BYTES : usize = 2 ; // u16
272
277
278
+ const_assert ! ( DWB_AMOUNT_BYTES <= U128_BYTES ) ;
279
+ const_assert ! ( DWB_HEAD_NODE_BYTES <= U64_BYTES ) ;
280
+ const_assert ! ( DWB_LIST_LEN_BYTES <= U16_BYTES ) ;
281
+
273
282
const DWB_ENTRY_BYTES : usize = DWB_RECIPIENT_BYTES + DWB_AMOUNT_BYTES + DWB_HEAD_NODE_BYTES + DWB_LIST_LEN_BYTES ;
274
283
275
284
pub const ZERO_ADDR : [ u8 ; DWB_RECIPIENT_BYTES ] = [ 0u8 ; DWB_RECIPIENT_BYTES ] ;
@@ -308,11 +317,11 @@ impl DelayedWriteBufferEntry {
308
317
} )
309
318
}
310
319
311
- fn recipient_slice ( & self ) -> & [ u8 ] {
320
+ pub fn recipient_slice ( & self ) -> & [ u8 ] {
312
321
& self . 0 [ ..DWB_RECIPIENT_BYTES ]
313
322
}
314
323
315
- fn recipient ( & self ) -> StdResult < CanonicalAddr > {
324
+ pub fn recipient ( & self ) -> StdResult < CanonicalAddr > {
316
325
let result = CanonicalAddr :: try_from ( self . recipient_slice ( ) )
317
326
. or ( Err ( StdError :: generic_err ( "Get dwb recipient error" ) ) ) ?;
318
327
Ok ( result)
@@ -340,9 +349,6 @@ impl DelayedWriteBufferEntry {
340
349
fn set_amount ( & mut self , val : u64 ) -> StdResult < ( ) > {
341
350
let start = DWB_RECIPIENT_BYTES ;
342
351
let end = start + DWB_AMOUNT_BYTES ;
343
- if DWB_AMOUNT_BYTES != U64_BYTES {
344
- return Err ( StdError :: generic_err ( "Set dwb amount error" ) ) ;
345
- }
346
352
self . 0 [ start..end] . copy_from_slice ( & val. to_be_bytes ( ) ) ;
347
353
Ok ( ( ) )
348
354
}
@@ -352,9 +358,6 @@ impl DelayedWriteBufferEntry {
352
358
let end = start + DWB_HEAD_NODE_BYTES ;
353
359
let head_node_slice = & self . 0 [ start..end] ;
354
360
let mut result = [ 0u8 ; U64_BYTES ] ;
355
- if DWB_HEAD_NODE_BYTES > U64_BYTES {
356
- return Err ( StdError :: generic_err ( "Get dwb head node error" ) ) ;
357
- }
358
361
result[ U64_BYTES - DWB_HEAD_NODE_BYTES ..] . copy_from_slice ( head_node_slice) ;
359
362
Ok ( u64:: from_be_bytes ( result) )
360
363
}
@@ -383,9 +386,6 @@ impl DelayedWriteBufferEntry {
383
386
fn set_list_len ( & mut self , val : u16 ) -> StdResult < ( ) > {
384
387
let start = DWB_RECIPIENT_BYTES + DWB_AMOUNT_BYTES + DWB_HEAD_NODE_BYTES ;
385
388
let end = start + DWB_LIST_LEN_BYTES ;
386
- if DWB_LIST_LEN_BYTES != U16_BYTES {
387
- return Err ( StdError :: generic_err ( "Set dwb amount error" ) ) ;
388
- }
389
389
self . 0 [ start..end] . copy_from_slice ( & val. to_be_bytes ( ) ) ;
390
390
Ok ( ( ) )
391
391
}
0 commit comments