|
|
|
@ -497,24 +497,39 @@ func (args *BlockFilterArgs) UnmarshalJSON(b []byte) (err error) { |
|
|
|
|
type DbArgs struct { |
|
|
|
|
Database string |
|
|
|
|
Key string |
|
|
|
|
Value string |
|
|
|
|
Value []byte |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (args *DbArgs) UnmarshalJSON(b []byte) (err error) { |
|
|
|
|
var obj []interface{} |
|
|
|
|
r := bytes.NewReader(b) |
|
|
|
|
if err := json.NewDecoder(r).Decode(&obj); err != nil { |
|
|
|
|
if err := json.Unmarshal(b, &obj); err != nil { |
|
|
|
|
return NewDecodeParamError(err.Error()) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if len(obj) < 2 { |
|
|
|
|
return NewInsufficientParamsError(len(obj), 2) |
|
|
|
|
} |
|
|
|
|
args.Database = obj[0].(string) |
|
|
|
|
args.Key = obj[1].(string) |
|
|
|
|
|
|
|
|
|
var objstr string |
|
|
|
|
var ok bool |
|
|
|
|
|
|
|
|
|
if objstr, ok = obj[0].(string); !ok { |
|
|
|
|
return NewDecodeParamError("Database is not a string") |
|
|
|
|
} |
|
|
|
|
args.Database = objstr |
|
|
|
|
|
|
|
|
|
if objstr, ok = obj[1].(string); !ok { |
|
|
|
|
return NewDecodeParamError("Key is not a string") |
|
|
|
|
} |
|
|
|
|
args.Key = objstr |
|
|
|
|
|
|
|
|
|
if len(obj) > 2 { |
|
|
|
|
args.Value = obj[2].(string) |
|
|
|
|
objstr, ok = obj[2].(string) |
|
|
|
|
if !ok { |
|
|
|
|
return NewDecodeParamError("Value is not a string") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
args.Value = []byte(objstr) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return nil |
|
|
|
@ -530,6 +545,57 @@ func (a *DbArgs) requirements() error { |
|
|
|
|
return nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
type DbHexArgs struct { |
|
|
|
|
Database string |
|
|
|
|
Key string |
|
|
|
|
Value []byte |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (args *DbHexArgs) UnmarshalJSON(b []byte) (err error) { |
|
|
|
|
var obj []interface{} |
|
|
|
|
if err := json.Unmarshal(b, &obj); err != nil { |
|
|
|
|
return NewDecodeParamError(err.Error()) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if len(obj) < 2 { |
|
|
|
|
return NewInsufficientParamsError(len(obj), 2) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var objstr string |
|
|
|
|
var ok bool |
|
|
|
|
|
|
|
|
|
if objstr, ok = obj[0].(string); !ok { |
|
|
|
|
return NewDecodeParamError("Database is not a string") |
|
|
|
|
} |
|
|
|
|
args.Database = objstr |
|
|
|
|
|
|
|
|
|
if objstr, ok = obj[1].(string); !ok { |
|
|
|
|
return NewDecodeParamError("Key is not a string") |
|
|
|
|
} |
|
|
|
|
args.Key = objstr |
|
|
|
|
|
|
|
|
|
if len(obj) > 2 { |
|
|
|
|
objstr, ok = obj[2].(string) |
|
|
|
|
if !ok { |
|
|
|
|
return NewDecodeParamError("Value is not a string") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
args.Value = common.FromHex(objstr) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (a *DbHexArgs) requirements() error { |
|
|
|
|
if len(a.Database) == 0 { |
|
|
|
|
return NewValidationError("Database", "cannot be blank") |
|
|
|
|
} |
|
|
|
|
if len(a.Key) == 0 { |
|
|
|
|
return NewValidationError("Key", "cannot be blank") |
|
|
|
|
} |
|
|
|
|
return nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
type WhisperMessageArgs struct { |
|
|
|
|
Payload string |
|
|
|
|
To string |
|
|
|
|