@@ -48,31 +48,35 @@ fn do_init_cache(config: ByteSliceView) -> Result<*mut Cache<GoApi, GoStorage, G
4848}
4949
5050#[ no_mangle]
51- pub extern "C" fn save_wasm (
51+ pub extern "C" fn store_code (
5252 cache : * mut cache_t ,
5353 wasm : ByteSliceView ,
54- unchecked : bool ,
54+ checked : bool ,
55+ persist : bool ,
5556 error_msg : Option < & mut UnmanagedVector > ,
5657) -> UnmanagedVector {
5758 let r = match to_cache ( cache) {
58- Some ( c) => catch_unwind ( AssertUnwindSafe ( move || do_save_wasm ( c, wasm, unchecked) ) )
59- . unwrap_or_else ( |err| {
60- handle_vm_panic ( "do_save_wasm" , err) ;
61- Err ( Error :: panic ( ) )
62- } ) ,
59+ Some ( c) => catch_unwind ( AssertUnwindSafe ( move || {
60+ do_store_code ( c, wasm, checked, persist)
61+ } ) )
62+ . unwrap_or_else ( |err| {
63+ handle_vm_panic ( "do_store_code" , err) ;
64+ Err ( Error :: panic ( ) )
65+ } ) ,
6366 None => Err ( Error :: unset_arg ( CACHE_ARG ) ) ,
6467 } ;
6568 let checksum = handle_c_error_binary ( r, error_msg) ;
6669 UnmanagedVector :: new ( Some ( checksum) )
6770}
6871
69- fn do_save_wasm (
72+ fn do_store_code (
7073 cache : & mut Cache < GoApi , GoStorage , GoQuerier > ,
7174 wasm : ByteSliceView ,
72- unchecked : bool ,
75+ checked : bool ,
76+ persist : bool ,
7377) -> Result < Checksum , Error > {
7478 let wasm = wasm. read ( ) . ok_or_else ( || Error :: unset_arg ( WASM_ARG ) ) ?;
75- Ok ( cache. store_code ( wasm, !unchecked , true ) ?)
79+ Ok ( cache. store_code ( wasm, checked , persist ) ?)
7680}
7781
7882#[ no_mangle]
@@ -518,10 +522,11 @@ mod tests {
518522 let _ = error_msg. consume ( ) ;
519523
520524 let mut error_msg = UnmanagedVector :: default ( ) ;
521- save_wasm (
525+ store_code (
522526 cache_ptr,
523527 ByteSliceView :: new ( HACKATOM ) ,
524528 false ,
529+ true ,
525530 Some ( & mut error_msg) ,
526531 ) ;
527532 assert ! ( error_msg. is_none( ) ) ;
@@ -548,10 +553,11 @@ mod tests {
548553 let _ = error_msg. consume ( ) ;
549554
550555 let mut error_msg = UnmanagedVector :: default ( ) ;
551- let checksum = save_wasm (
556+ let checksum = store_code (
552557 cache_ptr,
553558 ByteSliceView :: new ( HACKATOM ) ,
554559 false ,
560+ true ,
555561 Some ( & mut error_msg) ,
556562 ) ;
557563 assert ! ( error_msg. is_none( ) ) ;
@@ -604,10 +610,11 @@ mod tests {
604610 let _ = error_msg. consume ( ) ;
605611
606612 let mut error_msg = UnmanagedVector :: default ( ) ;
607- let checksum = save_wasm (
613+ let checksum = store_code (
608614 cache_ptr,
609615 ByteSliceView :: new ( HACKATOM ) ,
610616 false ,
617+ true ,
611618 Some ( & mut error_msg) ,
612619 ) ;
613620 assert ! ( error_msg. is_none( ) ) ;
@@ -646,10 +653,11 @@ mod tests {
646653 let _ = error_msg. consume ( ) ;
647654
648655 let mut error_msg = UnmanagedVector :: default ( ) ;
649- let checksum = save_wasm (
656+ let checksum = store_code (
650657 cache_ptr,
651658 ByteSliceView :: new ( HACKATOM ) ,
652659 false ,
660+ true ,
653661 Some ( & mut error_msg) ,
654662 ) ;
655663 assert ! ( error_msg. is_none( ) ) ;
@@ -696,10 +704,11 @@ mod tests {
696704 let _ = error_msg. consume ( ) ;
697705
698706 let mut error_msg = UnmanagedVector :: default ( ) ;
699- let checksum = save_wasm (
707+ let checksum = store_code (
700708 cache_ptr,
701709 ByteSliceView :: new ( HACKATOM ) ,
702710 false ,
711+ true ,
703712 Some ( & mut error_msg) ,
704713 ) ;
705714 assert ! ( error_msg. is_none( ) ) ;
@@ -755,21 +764,23 @@ mod tests {
755764 let _ = error_msg. consume ( ) ;
756765
757766 let mut error_msg = UnmanagedVector :: default ( ) ;
758- let checksum_hackatom = save_wasm (
767+ let checksum_hackatom = store_code (
759768 cache_ptr,
760769 ByteSliceView :: new ( HACKATOM ) ,
761770 false ,
771+ true ,
762772 Some ( & mut error_msg) ,
763773 ) ;
764774 assert ! ( error_msg. is_none( ) ) ;
765775 let _ = error_msg. consume ( ) ;
766776 let checksum_hackatom = checksum_hackatom. consume ( ) . unwrap_or_default ( ) ;
767777
768778 let mut error_msg = UnmanagedVector :: default ( ) ;
769- let checksum_ibc_reflect = save_wasm (
779+ let checksum_ibc_reflect = store_code (
770780 cache_ptr,
771781 ByteSliceView :: new ( IBC_REFLECT ) ,
772782 false ,
783+ true ,
773784 Some ( & mut error_msg) ,
774785 ) ;
775786 assert ! ( error_msg. is_none( ) ) ;
@@ -955,10 +966,11 @@ mod tests {
955966
956967 // Save wasm
957968 let mut error_msg = UnmanagedVector :: default ( ) ;
958- let checksum_hackatom = save_wasm (
969+ let checksum_hackatom = store_code (
959970 cache_ptr,
960971 ByteSliceView :: new ( HACKATOM ) ,
961972 false ,
973+ true ,
962974 Some ( & mut error_msg) ,
963975 ) ;
964976 assert ! ( error_msg. is_none( ) ) ;
0 commit comments