web3_args.go 533 Bytes
Newer Older
Bas van Kervel's avatar
Bas van Kervel committed
1 2
package api

3 4 5 6 7 8
import (
	"encoding/json"

	"github.com/ethereum/go-ethereum/rpc/shared"
)

Bas van Kervel's avatar
Bas van Kervel committed
9 10 11
type Sha3Args struct {
	Data string
}
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

func (args *Sha3Args) 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)
	}

	argstr, ok := obj[0].(string)
	if !ok {
		return shared.NewInvalidTypeError("data", "is not a string")
	}
	args.Data = argstr
	return nil
}