aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rpc/args.go34
1 files changed, 20 insertions, 14 deletions
diff --git a/rpc/args.go b/rpc/args.go
index 9ec2ed8a4..fee44c4e0 100644
--- a/rpc/args.go
+++ b/rpc/args.go
@@ -359,23 +359,29 @@ func (args *FilterOptions) UnmarshalJSON(b []byte) (err error) {
}
fromstr, ok := obj[0].FromBlock.(string)
- if ok {
- if fromstr == "latest" {
- args.Earliest = 0
- } else {
- args.Earliest = int64(common.Big(obj[0].FromBlock.(string)).Int64())
- }
+ if !ok {
+ return NewDecodeParamError("FromBlock is not a string")
+ }
+
+ switch fromstr {
+ case "latest":
+ args.Earliest = 0
+ default:
+ args.Earliest = int64(common.Big(obj[0].FromBlock.(string)).Int64())
}
tostr, ok := obj[0].ToBlock.(string)
- if ok {
- if tostr == "latest" {
- args.Latest = 0
- } else if tostr == "pending" {
- args.Latest = -1
- } else {
- args.Latest = int64(common.Big(obj[0].ToBlock.(string)).Int64())
- }
+ if !ok {
+ return NewDecodeParamError("ToBlock is not a string")
+ }
+
+ switch tostr {
+ case "latest":
+ args.Latest = 0
+ case "pending":
+ args.Latest = -1
+ default:
+ args.Latest = int64(common.Big(obj[0].ToBlock.(string)).Int64())
}
args.Max = int(common.Big(obj[0].Limit).Int64())