@@ -48,31 +48,35 @@ fn do_init_cache(config: ByteSliceView) -> Result<*mut Cache<GoApi, GoStorage, G
48
48
}
49
49
50
50
#[ no_mangle]
51
- pub extern "C" fn save_wasm (
51
+ pub extern "C" fn store_code (
52
52
cache : * mut cache_t ,
53
53
wasm : ByteSliceView ,
54
- unchecked : bool ,
54
+ checked : bool ,
55
+ persist : bool ,
55
56
error_msg : Option < & mut UnmanagedVector > ,
56
57
) -> UnmanagedVector {
57
58
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
+ } ) ,
63
66
None => Err ( Error :: unset_arg ( CACHE_ARG ) ) ,
64
67
} ;
65
68
let checksum = handle_c_error_binary ( r, error_msg) ;
66
69
UnmanagedVector :: new ( Some ( checksum) )
67
70
}
68
71
69
- fn do_save_wasm (
72
+ fn do_store_code (
70
73
cache : & mut Cache < GoApi , GoStorage , GoQuerier > ,
71
74
wasm : ByteSliceView ,
72
- unchecked : bool ,
75
+ checked : bool ,
76
+ persist : bool ,
73
77
) -> Result < Checksum , Error > {
74
78
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 ) ?)
76
80
}
77
81
78
82
#[ no_mangle]
@@ -518,10 +522,11 @@ mod tests {
518
522
let _ = error_msg. consume ( ) ;
519
523
520
524
let mut error_msg = UnmanagedVector :: default ( ) ;
521
- save_wasm (
525
+ store_code (
522
526
cache_ptr,
523
527
ByteSliceView :: new ( HACKATOM ) ,
524
528
false ,
529
+ true ,
525
530
Some ( & mut error_msg) ,
526
531
) ;
527
532
assert ! ( error_msg. is_none( ) ) ;
@@ -548,10 +553,11 @@ mod tests {
548
553
let _ = error_msg. consume ( ) ;
549
554
550
555
let mut error_msg = UnmanagedVector :: default ( ) ;
551
- let checksum = save_wasm (
556
+ let checksum = store_code (
552
557
cache_ptr,
553
558
ByteSliceView :: new ( HACKATOM ) ,
554
559
false ,
560
+ true ,
555
561
Some ( & mut error_msg) ,
556
562
) ;
557
563
assert ! ( error_msg. is_none( ) ) ;
@@ -604,10 +610,11 @@ mod tests {
604
610
let _ = error_msg. consume ( ) ;
605
611
606
612
let mut error_msg = UnmanagedVector :: default ( ) ;
607
- let checksum = save_wasm (
613
+ let checksum = store_code (
608
614
cache_ptr,
609
615
ByteSliceView :: new ( HACKATOM ) ,
610
616
false ,
617
+ true ,
611
618
Some ( & mut error_msg) ,
612
619
) ;
613
620
assert ! ( error_msg. is_none( ) ) ;
@@ -646,10 +653,11 @@ mod tests {
646
653
let _ = error_msg. consume ( ) ;
647
654
648
655
let mut error_msg = UnmanagedVector :: default ( ) ;
649
- let checksum = save_wasm (
656
+ let checksum = store_code (
650
657
cache_ptr,
651
658
ByteSliceView :: new ( HACKATOM ) ,
652
659
false ,
660
+ true ,
653
661
Some ( & mut error_msg) ,
654
662
) ;
655
663
assert ! ( error_msg. is_none( ) ) ;
@@ -696,10 +704,11 @@ mod tests {
696
704
let _ = error_msg. consume ( ) ;
697
705
698
706
let mut error_msg = UnmanagedVector :: default ( ) ;
699
- let checksum = save_wasm (
707
+ let checksum = store_code (
700
708
cache_ptr,
701
709
ByteSliceView :: new ( HACKATOM ) ,
702
710
false ,
711
+ true ,
703
712
Some ( & mut error_msg) ,
704
713
) ;
705
714
assert ! ( error_msg. is_none( ) ) ;
@@ -755,21 +764,23 @@ mod tests {
755
764
let _ = error_msg. consume ( ) ;
756
765
757
766
let mut error_msg = UnmanagedVector :: default ( ) ;
758
- let checksum_hackatom = save_wasm (
767
+ let checksum_hackatom = store_code (
759
768
cache_ptr,
760
769
ByteSliceView :: new ( HACKATOM ) ,
761
770
false ,
771
+ true ,
762
772
Some ( & mut error_msg) ,
763
773
) ;
764
774
assert ! ( error_msg. is_none( ) ) ;
765
775
let _ = error_msg. consume ( ) ;
766
776
let checksum_hackatom = checksum_hackatom. consume ( ) . unwrap_or_default ( ) ;
767
777
768
778
let mut error_msg = UnmanagedVector :: default ( ) ;
769
- let checksum_ibc_reflect = save_wasm (
779
+ let checksum_ibc_reflect = store_code (
770
780
cache_ptr,
771
781
ByteSliceView :: new ( IBC_REFLECT ) ,
772
782
false ,
783
+ true ,
773
784
Some ( & mut error_msg) ,
774
785
) ;
775
786
assert ! ( error_msg. is_none( ) ) ;
@@ -955,10 +966,11 @@ mod tests {
955
966
956
967
// Save wasm
957
968
let mut error_msg = UnmanagedVector :: default ( ) ;
958
- let checksum_hackatom = save_wasm (
969
+ let checksum_hackatom = store_code (
959
970
cache_ptr,
960
971
ByteSliceView :: new ( HACKATOM ) ,
961
972
false ,
973
+ true ,
962
974
Some ( & mut error_msg) ,
963
975
) ;
964
976
assert ! ( error_msg. is_none( ) ) ;
0 commit comments