@@ -22,22 +22,10 @@ impl RpcFilterType {
22
22
MemcmpEncoding :: Binary => {
23
23
use MemcmpEncodedBytes :: * ;
24
24
match & compare. bytes {
25
- Binary ( bytes) if bytes. len ( ) > MAX_DATA_BASE58_SIZE => {
26
- Err ( RpcFilterError :: Base58DataTooLarge )
27
- }
28
- Base58 ( bytes) if bytes. len ( ) > MAX_DATA_BASE58_SIZE => {
29
- Err ( RpcFilterError :: DataTooLarge )
30
- }
31
- Base64 ( bytes) if bytes. len ( ) > MAX_DATA_BASE64_SIZE => {
32
- Err ( RpcFilterError :: DataTooLarge )
33
- }
34
- Bytes ( bytes) if bytes. len ( ) > MAX_DATA_SIZE => {
35
- Err ( RpcFilterError :: DataTooLarge )
36
- }
37
- _ => Ok ( ( ) ) ,
38
- } ?;
39
- match & compare. bytes {
40
- Binary ( bytes) => {
25
+ Binary ( bytes) => { // DEPRECATED
26
+ if bytes. len ( ) > MAX_DATA_BASE58_SIZE {
27
+ return Err ( RpcFilterError :: Base58DataTooLarge ) ;
28
+ }
41
29
let bytes = bs58:: decode ( & bytes)
42
30
. into_vec ( )
43
31
. map_err ( RpcFilterError :: DecodeError ) ?;
@@ -48,6 +36,9 @@ impl RpcFilterType {
48
36
}
49
37
}
50
38
Base58 ( bytes) => {
39
+ if bytes. len ( ) > MAX_DATA_BASE58_SIZE {
40
+ return Err ( RpcFilterError :: DataTooLarge ) ;
41
+ }
51
42
let bytes = bs58:: decode ( & bytes) . into_vec ( ) ?;
52
43
if bytes. len ( ) > MAX_DATA_SIZE {
53
44
Err ( RpcFilterError :: DataTooLarge )
@@ -56,14 +47,22 @@ impl RpcFilterType {
56
47
}
57
48
}
58
49
Base64 ( bytes) => {
50
+ if bytes. len ( ) > MAX_DATA_BASE64_SIZE {
51
+ return Err ( RpcFilterError :: DataTooLarge ) ;
52
+ }
59
53
let bytes = base64:: decode ( & bytes) ?;
60
54
if bytes. len ( ) > MAX_DATA_SIZE {
61
55
Err ( RpcFilterError :: DataTooLarge )
62
56
} else {
63
57
Ok ( ( ) )
64
58
}
65
59
}
66
- Bytes ( _) => Ok ( ( ) ) ,
60
+ Bytes ( bytes) => {
61
+ if bytes. len ( ) > MAX_DATA_SIZE {
62
+ return Err ( RpcFilterError :: DataTooLarge ) ;
63
+ }
64
+ Ok ( ( ) )
65
+ }
67
66
}
68
67
}
69
68
}
0 commit comments