1
- use foundry_test_utils:: util:: OutputExt ;
2
- use std:: path:: Path ;
3
-
4
1
casttest ! ( error_decode_with_sourcify, |prj, cmd| {
5
2
prj. clear_cache( ) ;
6
3
cmd. args( [ "decode-error" , "0x7a0e198500000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000064" ] ) . assert_success( ) . stdout_eq( str ![ [ r#"
@@ -14,6 +11,7 @@ ValueTooHigh(uint256,uint256)
14
11
casttest ! ( fourbyte, |_prj, cmd| {
15
12
cmd. args( [ "4byte" , "0xa9059cbb" ] ) . assert_success( ) . stdout_eq( str ![ [ r#"
16
13
transfer(address,uint256)
14
+ _____$_$__$___$$$___$$___$__$$(address,uint256)
17
15
18
16
"# ] ] ) ;
19
17
} ) ;
@@ -39,6 +37,7 @@ casttest!(fourbyte_calldata, |_prj, cmd| {
39
37
casttest ! ( fourbyte_calldata_only_selector, |_prj, cmd| {
40
38
cmd. args( [ "4byte-calldata" , "0xa9059cbb" ] ) . assert_success( ) . stdout_eq( str ![ [ r#"
41
39
transfer(address,uint256)
40
+ _____$_$__$___$$$___$$___$__$$(address,uint256)
42
41
43
42
"# ] ] ) ;
44
43
} ) ;
@@ -70,66 +69,6 @@ canCall(address,address,bytes4)
70
69
"# ] ] ) ;
71
70
} ) ;
72
71
73
- casttest ! ( upload_signatures, |_prj, cmd| {
74
- // test no prefix is accepted as function
75
- let output = cmd
76
- . args( [ "upload-signature" , "transfer(address,uint256)" ] )
77
- . assert_success( )
78
- . get_output( )
79
- . stdout_lossy( ) ;
80
- assert!( output. contains( "Function transfer(address,uint256): 0xa9059cbb" ) , "{}" , output) ;
81
-
82
- // test event prefix
83
- cmd. args( [ "upload-signature" , "event Transfer(address,uint256)" ] ) ;
84
- let output = cmd. assert_success( ) . get_output( ) . stdout_lossy( ) ;
85
- assert!( output. contains( "Event Transfer(address,uint256): 0x69ca02dd4edd7bf0a4abb9ed3b7af3f14778db5d61921c7dc7cd545266326de2" ) , "{}" , output) ;
86
-
87
- // test error prefix
88
- cmd. args( [ "upload-signature" , "error ERC20InsufficientBalance(address,uint256,uint256)" ] ) ;
89
- let output = cmd. assert_success( ) . get_output( ) . stdout_lossy( ) ;
90
- assert!(
91
- output. contains( "Function ERC20InsufficientBalance(address,uint256,uint256): 0xe450d38c" ) ,
92
- "{}" ,
93
- output
94
- ) ; // Custom error is interpreted as function
95
-
96
- // test multiple sigs
97
- cmd. args( [
98
- "upload-signature" ,
99
- "event Transfer(address,uint256)" ,
100
- "transfer(address,uint256)" ,
101
- "approve(address,uint256)" ,
102
- ] ) ;
103
- let output = cmd. assert_success( ) . get_output( ) . stdout_lossy( ) ;
104
- assert!( output. contains( "Event Transfer(address,uint256): 0x69ca02dd4edd7bf0a4abb9ed3b7af3f14778db5d61921c7dc7cd545266326de2" ) , "{}" , output) ;
105
- assert!( output. contains( "Function transfer(address,uint256): 0xa9059cbb" ) , "{}" , output) ;
106
- assert!( output. contains( "Function approve(address,uint256): 0x095ea7b3" ) , "{}" , output) ;
107
-
108
- // test abi
109
- cmd. args( [
110
- "upload-signature" ,
111
- "event Transfer(address,uint256)" ,
112
- "transfer(address,uint256)" ,
113
- "error ERC20InsufficientBalance(address,uint256,uint256)" ,
114
- Path :: new( env!( "CARGO_MANIFEST_DIR" ) )
115
- . join( "tests/fixtures/ERC20Artifact.json" )
116
- . as_os_str( )
117
- . to_str( )
118
- . unwrap( ) ,
119
- ] ) ;
120
- let output = cmd. assert_success( ) . get_output( ) . stdout_lossy( ) ;
121
- assert!( output. contains( "Event Transfer(address,uint256): 0x69ca02dd4edd7bf0a4abb9ed3b7af3f14778db5d61921c7dc7cd545266326de2" ) , "{}" , output) ;
122
- assert!( output. contains( "Function transfer(address,uint256): 0xa9059cbb" ) , "{}" , output) ;
123
- assert!( output. contains( "Function approve(address,uint256): 0x095ea7b3" ) , "{}" , output) ;
124
- assert!( output. contains( "Function decimals(): 0x313ce567" ) , "{}" , output) ;
125
- assert!( output. contains( "Function allowance(address,address): 0xdd62ed3e" ) , "{}" , output) ;
126
- assert!(
127
- output. contains( "Function ERC20InsufficientBalance(address,uint256,uint256): 0xe450d38c" ) ,
128
- "{}" ,
129
- output
130
- ) ;
131
- } ) ;
132
-
133
72
// tests cast can decode event with provided signature
134
73
casttest ! ( event_decode_with_sig, |_prj, cmd| {
135
74
cmd. args( [ "decode-event" , "--sig" , "MyEvent(uint256,address)" , "0x000000000000000000000000000000000000000000000000000000000000004e0000000000000000000000000000000000000000000000000000000000d0004f" ] ) . assert_success( ) . stdout_eq( str ![ [ r#"
0 commit comments