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 *NewTxArgs) UnmarshalJSON(b []byte) (err error) { var obj []json.RawMessage var ext struct { From string To string Nonce interface{} 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()) } if len(ext.From) == 0 { return shared.NewValidationError("from", "is required") } args.From = ext.From args.To = ext.To args.Data = ext.Data var num *big.Int if ext.Nonce != nil { num, err = numString(ext.Nonce) if err != nil { return err } } args.Nonce = num if ext.Value == nil { num = big.NewInt(0) } else { num, err = numString(ext.Value) if err != nil { return err } } args.Value = num num = nil if ext.Gas != nil { if num, err = numString(ext.Gas); err != nil { return err } } args.Gas = num num = nil if ext.GasPrice != nil { if num, err = numString(ext.GasPrice); err != nil { return err } } args.GasPrice = num // 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 }