func (args *NewSigArgs) UnmarshalJSON(b []byte) (err error) { var obj []interface{} if err := json.Unmarshal(b, &obj); err != nil { return shared.NewDecodeParamError(err.Error()) } // Check for sufficient params if len(obj) < 1 { return shared.NewInsufficientParamsError(len(obj), 1) } from, ok := obj[0].(string) if !ok { return shared.NewInvalidTypeError("from", "not a string") } args.From = from if len(args.From) == 0 { return shared.NewValidationError("from", "is required") } data, ok := obj[1].(string) if !ok { return shared.NewInvalidTypeError("data", "not a string") } args.Data = data if len(args.Data) == 0 { return shared.NewValidationError("data", "is required") } return nil }
func (a *DbArgs) requirements() error { if len(a.Database) == 0 { return shared.NewValidationError("Database", "cannot be blank") } if len(a.Key) == 0 { return shared.NewValidationError("Key", "cannot be blank") } return nil }
func (self *minerApi) MakeDAG(req *shared.Request) (interface{}, error) { args := new(MakeDAGArgs) if err := self.codec.Decode(req.Params, &args); err != nil { return nil, err } if args.BlockNumber < 0 { return false, shared.NewValidationError("BlockNumber", "BlockNumber must be positive") } err := ethash.MakeDAG(uint64(args.BlockNumber), "") if err == nil { return true, nil } return false, err }
func (args *FilterStringArgs) UnmarshalJSON(b []byte) (err error) { var obj []interface{} if err := json.Unmarshal(b, &obj); err != nil { return shared.NewDecodeParamError(err.Error()) } if len(obj) < 1 { return shared.NewInsufficientParamsError(len(obj), 1) } var argstr string argstr, ok := obj[0].(string) if !ok { return shared.NewInvalidTypeError("filter", "not a string") } switch argstr { case "latest", "pending": break default: return shared.NewValidationError("Word", "Must be `latest` or `pending`") } args.Word = argstr return nil }
func (args *CallArgs) UnmarshalJSON(b []byte) (err error) { var obj []json.RawMessage var ext struct { From string To string Value interface{} Gas interface{} GasPrice interface{} Data string } // Decode byte slice to array of RawMessages if err := json.Unmarshal(b, &obj); err != nil { return shared.NewDecodeParamError(err.Error()) } // Check for sufficient params if len(obj) < 1 { return shared.NewInsufficientParamsError(len(obj), 1) } // Decode 0th RawMessage to temporary struct if err := json.Unmarshal(obj[0], &ext); err != nil { return shared.NewDecodeParamError(err.Error()) } args.From = ext.From if len(ext.To) == 0 { return shared.NewValidationError("to", "is required") } args.To = ext.To var num *big.Int if ext.Value == nil { num = big.NewInt(0) } else { if num, err = numString(ext.Value); err != nil { return err } } args.Value = num if ext.Gas != nil { if num, err = numString(ext.Gas); err != nil { return err } } else { num = nil } args.Gas = num if ext.GasPrice != nil { if num, err = numString(ext.GasPrice); err != nil { return err } } else { num = nil } args.GasPrice = num args.Data = ext.Data // Check for optional BlockNumber param if len(obj) > 1 { if err := blockHeightFromJson(obj[1], &args.BlockNumber); err != nil { return err } } else { args.BlockNumber = -1 } return nil }