@@ -10,6 +10,7 @@ use cairo_vm::{
10
10
} ,
11
11
} ;
12
12
use num_traits:: { Num , One , Zero } ;
13
+ use pretty_assertions_sorted:: { assert_eq, assert_eq_sorted} ;
13
14
use starknet_in_rust:: {
14
15
definitions:: {
15
16
block_context:: { BlockContext , StarknetChainId } ,
@@ -170,8 +171,8 @@ fn test_contract<'a>(
170
171
accessed_storage_keys. collect( )
171
172
) ;
172
173
assert_eq ! ( result. calldata, calldata) ;
173
- assert_eq ! ( result. retdata, return_data. into( ) ) ;
174
- assert_eq ! ( result. internal_calls, internal_calls. into( ) ) ;
174
+ assert_eq_sorted ! ( result. retdata, return_data. into( ) ) ;
175
+ assert_eq_sorted ! ( result. internal_calls, internal_calls. into( ) ) ;
175
176
assert_eq ! ( result. execution_resources, execution_resources) ;
176
177
177
178
assert_eq ! ( result. gas_consumed, 0 ) ;
@@ -906,13 +907,20 @@ fn deploy_with_constructor_syscall() {
906
907
10 ,
907
908
)
908
909
. unwrap ( ) ;
910
+ let entry_point_selector = Felt252 :: from_str_radix (
911
+ "1159040026212278395030414237414753050475174923702621880048416706425641521556" ,
912
+ 10 ,
913
+ )
914
+ . unwrap ( ) ;
909
915
910
916
let deploy_class_hash = [ 2u8 ; 32 ] ;
917
+ let caller_address = Address ( 11111 . into ( ) ) ;
918
+
911
919
test_contract (
912
920
"starknet_programs/syscalls.json" ,
913
921
"test_deploy_with_constructor" ,
914
922
[ 1 ; 32 ] ,
915
- Address ( 11111 . into ( ) ) ,
923
+ caller_address . clone ( ) ,
916
924
Address ( 0 . into ( ) ) ,
917
925
BlockContext :: default ( ) ,
918
926
None ,
@@ -931,7 +939,26 @@ fn deploy_with_constructor_syscall() {
931
939
0 . into ( ) ,
932
940
550 . into ( ) ,
933
941
] ,
934
- [ ] ,
942
+ [ CallInfo {
943
+ caller_address,
944
+ call_type : Some ( CallType :: Call ) ,
945
+ contract_address : Address ( deploy_address. clone ( ) ) ,
946
+ class_hash : Some ( deploy_class_hash) ,
947
+ entry_point_selector : Some ( entry_point_selector) ,
948
+ entry_point_type : Some ( EntryPointType :: Constructor ) ,
949
+ calldata : [ 550 . into ( ) ] . to_vec ( ) ,
950
+ execution_resources : ExecutionResources {
951
+ n_steps : 40 ,
952
+ n_memory_holes : 0 ,
953
+ ..Default :: default ( )
954
+ } ,
955
+ accessed_storage_keys : HashSet :: < [ u8 ; 32 ] > :: from ( [ [
956
+ 2 , 63 , 76 , 85 , 114 , 157 , 43 , 172 , 36 , 175 , 107 , 126 , 158 , 121 , 114 , 77 , 194 , 27 ,
957
+ 162 , 147 , 169 , 199 , 107 , 53 , 94 , 246 , 206 , 221 , 169 , 114 , 215 , 255 ,
958
+ ] ] ) ,
959
+ storage_read_values : [ 0 . into ( ) ] . to_vec ( ) ,
960
+ ..Default :: default ( )
961
+ } ] ,
935
962
[ deploy_address] ,
936
963
ExecutionResources {
937
964
n_steps : 84 ,
@@ -982,86 +1009,113 @@ fn test_deploy_and_call_contract_syscall() {
982
1009
new_constant. clone ( ) ,
983
1010
] ,
984
1011
[
985
- // Invoke storage_var_and_constructor.cairo mult_constant function
986
- CallInfo {
987
- caller_address : Address ( 11111 . into ( ) ) ,
988
- call_type : Some ( CallType :: Call ) ,
989
- contract_address : deploy_address. clone ( ) ,
990
- code_address : None ,
991
- class_hash : Some ( deploy_class_hash) ,
992
- entry_point_selector : Some (
993
- Felt252 :: from_str_radix (
994
- "1576037374104670872807053137865113122553607263175471701007015754752102201893" ,
995
- 10 ,
996
- )
997
- . unwrap ( ) ,
998
- ) ,
999
- entry_point_type : Some ( EntryPointType :: External ) ,
1000
- calldata : vec ! [ 4 . into( ) ] ,
1001
- retdata : vec ! [ ( constructor_constant. clone( ) * Felt252 :: new( 4 ) ) ] ,
1002
- storage_read_values : vec ! [ constructor_constant. clone( ) ] ,
1003
- accessed_storage_keys : HashSet :: from ( [ constant_storage_key] ) ,
1004
- execution_resources : ExecutionResources {
1005
- n_steps : 52 ,
1012
+ // constructor
1013
+ CallInfo {
1014
+ caller_address : Address ( 11111 . into ( ) ) ,
1015
+ call_type : Some ( CallType :: Call ) ,
1016
+ contract_address : deploy_address. clone ( ) ,
1017
+ code_address : None ,
1018
+ class_hash : Some ( deploy_class_hash) ,
1019
+ entry_point_selector : Some (
1020
+ Felt252 :: from_str_radix (
1021
+ "1159040026212278395030414237414753050475174923702621880048416706425641521556" ,
1022
+ 10 ,
1023
+ )
1024
+ . unwrap ( ) ,
1025
+ ) ,
1026
+ entry_point_type : Some ( EntryPointType :: Constructor ) ,
1027
+ calldata : vec ! [ 550 . into( ) ] ,
1028
+ retdata : vec ! [ ] ,
1029
+ storage_read_values : vec ! [ 0 . into( ) ] ,
1030
+ accessed_storage_keys : HashSet :: from ( [ constant_storage_key] ) ,
1031
+ execution_resources : ExecutionResources {
1032
+ n_steps : 40 ,
1033
+ ..Default :: default ( )
1034
+ } ,
1006
1035
..Default :: default ( )
1007
1036
} ,
1008
- .. Default :: default ( )
1009
- } ,
1010
- // Invoke storage_var_and_constructor.cairo set_constant function
1011
- CallInfo {
1012
- caller_address : Address ( 11111 . into ( ) ) ,
1013
- call_type : Some ( CallType :: Call ) ,
1014
- contract_address : deploy_address . clone ( ) ,
1015
- code_address : None ,
1016
- class_hash : Some ( deploy_class_hash ) ,
1017
- entry_point_selector : Some (
1018
- Felt252 :: from_str_radix (
1019
- "1201037417712951658445715615949920673423990292207294106968654696818998525373" ,
1020
- 10 ,
1021
- )
1022
- . unwrap ( ) ,
1023
- ) ,
1024
- entry_point_type : Some ( EntryPointType :: External ) ,
1025
- calldata : vec ! [ new_constant . clone( ) ] ,
1026
- retdata : vec ! [ ] ,
1027
- storage_read_values : vec ! [ constructor_constant ] ,
1028
- accessed_storage_keys : HashSet :: from ( [ constant_storage_key ] ) ,
1029
- execution_resources : ExecutionResources {
1030
- n_steps : 40 ,
1037
+ // Invoke storage_var_and_constructor.cairo mult_constant function
1038
+ CallInfo {
1039
+ caller_address : Address ( 11111 . into ( ) ) ,
1040
+ call_type : Some ( CallType :: Call ) ,
1041
+ contract_address : deploy_address . clone ( ) ,
1042
+ code_address : None ,
1043
+ class_hash : Some ( deploy_class_hash ) ,
1044
+ entry_point_selector : Some (
1045
+ Felt252 :: from_str_radix (
1046
+ "1576037374104670872807053137865113122553607263175471701007015754752102201893" ,
1047
+ 10 ,
1048
+ )
1049
+ . unwrap ( ) ,
1050
+ ) ,
1051
+ entry_point_type : Some ( EntryPointType :: External ) ,
1052
+ calldata : vec ! [ 4 . into ( ) ] ,
1053
+ retdata : vec ! [ ( constructor_constant . clone ( ) * Felt252 :: new ( 4 ) ) ] ,
1054
+ storage_read_values : vec ! [ constructor_constant . clone( ) ] ,
1055
+ accessed_storage_keys : HashSet :: from ( [ constant_storage_key ] ) ,
1056
+ execution_resources : ExecutionResources {
1057
+ n_steps : 52 ,
1058
+ .. Default :: default ( )
1059
+ } ,
1031
1060
..Default :: default ( )
1032
1061
} ,
1033
- .. Default :: default ( )
1034
- } ,
1035
- // Invoke storage_var_and_constructor.cairo get_constant function
1036
- CallInfo {
1037
- caller_address : Address ( 11111 . into ( ) ) ,
1038
- call_type : Some ( CallType :: Call ) ,
1039
- contract_address : deploy_address ,
1040
- code_address : None ,
1041
- class_hash : Some ( deploy_class_hash ) ,
1042
- entry_point_selector : Some (
1043
- Felt252 :: from_str_radix (
1044
- "915547745133109687566886827729966789818200062539892992518817034473866315209" ,
1045
- 10 ,
1046
- )
1047
- . unwrap ( ) ,
1048
- ) ,
1049
- entry_point_type : Some ( EntryPointType :: External ) ,
1050
- calldata : vec ! [ ] ,
1051
- retdata : vec ! [ new_constant . clone ( ) ] ,
1052
- storage_read_values : vec ! [ new_constant . clone ( ) ] ,
1053
- accessed_storage_keys : HashSet :: from ( [ constant_storage_key ] ) ,
1054
- execution_resources : ExecutionResources {
1055
- n_steps : 46 ,
1062
+ // Invoke storage_var_and_constructor.cairo set_constant function
1063
+ CallInfo {
1064
+ caller_address : Address ( 11111 . into ( ) ) ,
1065
+ call_type : Some ( CallType :: Call ) ,
1066
+ contract_address : deploy_address . clone ( ) ,
1067
+ code_address : None ,
1068
+ class_hash : Some ( deploy_class_hash ) ,
1069
+ entry_point_selector : Some (
1070
+ Felt252 :: from_str_radix (
1071
+ "1201037417712951658445715615949920673423990292207294106968654696818998525373" ,
1072
+ 10 ,
1073
+ )
1074
+ . unwrap ( ) ,
1075
+ ) ,
1076
+ entry_point_type : Some ( EntryPointType :: External ) ,
1077
+ calldata : vec ! [ new_constant . clone ( ) ] ,
1078
+ retdata : vec ! [ ] ,
1079
+ storage_read_values : vec ! [ constructor_constant ] ,
1080
+ accessed_storage_keys : HashSet :: from ( [ constant_storage_key ] ) ,
1081
+ execution_resources : ExecutionResources {
1082
+ n_steps : 40 ,
1083
+ .. Default :: default ( )
1084
+ } ,
1056
1085
..Default :: default ( )
1057
1086
} ,
1058
- ..Default :: default ( )
1059
- } ] ,
1087
+ // Invoke storage_var_and_constructor.cairo get_constant function
1088
+ CallInfo {
1089
+ caller_address : Address ( 11111 . into ( ) ) ,
1090
+ call_type : Some ( CallType :: Call ) ,
1091
+ contract_address : deploy_address,
1092
+ code_address : None ,
1093
+ class_hash : Some ( deploy_class_hash) ,
1094
+ entry_point_selector : Some (
1095
+ Felt252 :: from_str_radix (
1096
+ "915547745133109687566886827729966789818200062539892992518817034473866315209" ,
1097
+ 10 ,
1098
+ )
1099
+ . unwrap ( ) ,
1100
+ ) ,
1101
+ entry_point_type : Some ( EntryPointType :: External ) ,
1102
+ calldata : vec ! [ ] ,
1103
+ retdata : vec ! [ new_constant. clone( ) ] ,
1104
+ storage_read_values : vec ! [ new_constant. clone( ) ] ,
1105
+ accessed_storage_keys : HashSet :: from ( [ constant_storage_key] ) ,
1106
+ execution_resources : ExecutionResources {
1107
+ n_steps : 46 ,
1108
+ ..Default :: default ( )
1109
+ } ,
1110
+ ..Default :: default ( )
1111
+ }
1112
+ ] ,
1060
1113
[ new_constant] ,
1061
1114
ExecutionResources {
1062
1115
n_steps : 325 ,
1063
1116
n_memory_holes : 2 ,
1064
- builtin_instance_counter : HashMap :: default ( ) } ,
1117
+ builtin_instance_counter : HashMap :: default ( )
1118
+ } ,
1065
1119
) ;
1066
1120
}
1067
1121
0 commit comments