aboutsummaryrefslogtreecommitdiffstats
path: root/rpc/api/admin_args.go
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2015-07-07 17:55:23 +0800
committerJeffrey Wilcke <jeffrey@ethereum.org>2015-07-07 17:55:23 +0800
commit916d1554675974adb92af4046e1b04ad3b26dca3 (patch)
tree6ab24e55a8b4bd14b3a9c25917d440c03b875bfc /rpc/api/admin_args.go
parentd764bd058457cd9eb91d205d1ac187d40c4866d6 (diff)
parentc5cb6e8e70339b6641b7ce46cda04b83936213b3 (diff)
downloaddexon-916d1554675974adb92af4046e1b04ad3b26dca3.tar
dexon-916d1554675974adb92af4046e1b04ad3b26dca3.tar.gz
dexon-916d1554675974adb92af4046e1b04ad3b26dca3.tar.bz2
dexon-916d1554675974adb92af4046e1b04ad3b26dca3.tar.lz
dexon-916d1554675974adb92af4046e1b04ad3b26dca3.tar.xz
dexon-916d1554675974adb92af4046e1b04ad3b26dca3.tar.zst
dexon-916d1554675974adb92af4046e1b04ad3b26dca3.zip
Merge pull request #1429 from obscuren/rebase-registrar
Rebase registrar
Diffstat (limited to 'rpc/api/admin_args.go')
-rw-r--r--rpc/api/admin_args.go333
1 files changed, 329 insertions, 4 deletions
diff --git a/rpc/api/admin_args.go b/rpc/api/admin_args.go
index 5437971ca..532907905 100644
--- a/rpc/api/admin_args.go
+++ b/rpc/api/admin_args.go
@@ -3,6 +3,7 @@ package api
import (
"encoding/json"
+ "github.com/ethereum/go-ethereum/common/compiler"
"github.com/ethereum/go-ethereum/rpc/shared"
)
@@ -113,7 +114,7 @@ func (args *StartRPCArgs) UnmarshalJSON(b []byte) (err error) {
args.ListenPort = 8545
args.Apis = "net,eth,web3"
- if len(obj) >= 1 {
+ if len(obj) >= 1 && obj[0] != nil {
if addr, ok := obj[0].(string); ok {
args.ListenAddress = addr
} else {
@@ -121,7 +122,7 @@ func (args *StartRPCArgs) UnmarshalJSON(b []byte) (err error) {
}
}
- if len(obj) >= 2 {
+ if len(obj) >= 2 && obj[1] != nil {
if port, ok := obj[1].(float64); ok && port >= 0 && port <= 64*1024 {
args.ListenPort = uint(port)
} else {
@@ -129,7 +130,7 @@ func (args *StartRPCArgs) UnmarshalJSON(b []byte) (err error) {
}
}
- if len(obj) >= 3 {
+ if len(obj) >= 3 && obj[2] != nil {
if corsDomain, ok := obj[2].(string); ok {
args.CorsDomain = corsDomain
} else {
@@ -137,7 +138,7 @@ func (args *StartRPCArgs) UnmarshalJSON(b []byte) (err error) {
}
}
- if len(obj) >= 4 {
+ if len(obj) >= 4 && obj[3] != nil {
if apis, ok := obj[3].(string); ok {
args.Apis = apis
} else {
@@ -147,3 +148,327 @@ func (args *StartRPCArgs) UnmarshalJSON(b []byte) (err error) {
return nil
}
+
+type SleepArgs struct {
+ S int
+}
+
+func (args *SleepArgs) 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 {
+ if obj[0] != nil {
+ if n, err := numString(obj[0]); err == nil {
+ args.S = int(n.Int64())
+ } else {
+ return shared.NewInvalidTypeError("N", "not an integer: "+err.Error())
+ }
+ } else {
+ return shared.NewInsufficientParamsError(0, 1)
+ }
+ }
+ return nil
+}
+
+type SleepBlocksArgs struct {
+ N int64
+ Timeout int64
+}
+
+func (args *SleepBlocksArgs) UnmarshalJSON(b []byte) (err error) {
+
+ var obj []interface{}
+ if err := json.Unmarshal(b, &obj); err != nil {
+ return shared.NewDecodeParamError(err.Error())
+ }
+
+ args.N = 1
+ args.Timeout = 0
+ if len(obj) >= 1 && obj[0] != nil {
+ if n, err := numString(obj[0]); err == nil {
+ args.N = n.Int64()
+ } else {
+ return shared.NewInvalidTypeError("N", "not an integer: "+err.Error())
+ }
+ }
+
+ if len(obj) >= 2 && obj[1] != nil {
+ if n, err := numString(obj[1]); err == nil {
+ args.Timeout = n.Int64()
+ } else {
+ return shared.NewInvalidTypeError("Timeout", "not an integer: "+err.Error())
+ }
+ }
+
+ return nil
+}
+
+type SetGlobalRegistrarArgs struct {
+ NameReg string
+ ContractAddress string
+}
+
+func (args *SetGlobalRegistrarArgs) UnmarshalJSON(b []byte) (err error) {
+ var obj []interface{}
+ if err := json.Unmarshal(b, &obj); err != nil {
+ return shared.NewDecodeParamError(err.Error())
+ }
+
+ if len(obj) == 0 {
+ return shared.NewDecodeParamError("Expected namereg address")
+ }
+
+ if len(obj) >= 1 {
+ if namereg, ok := obj[0].(string); ok {
+ args.NameReg = namereg
+ } else {
+ return shared.NewInvalidTypeError("NameReg", "not a string")
+ }
+ }
+
+ if len(obj) >= 2 && obj[1] != nil {
+ if addr, ok := obj[1].(string); ok {
+ args.ContractAddress = addr
+ } else {
+ return shared.NewInvalidTypeError("ContractAddress", "not a string")
+ }
+ }
+
+ return nil
+}
+
+type SetHashRegArgs struct {
+ HashReg string
+ Sender string
+}
+
+func (args *SetHashRegArgs) 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 && obj[0] != nil {
+ if hashreg, ok := obj[0].(string); ok {
+ args.HashReg = hashreg
+ } else {
+ return shared.NewInvalidTypeError("HashReg", "not a string")
+ }
+ }
+
+ if len(obj) >= 2 && obj[1] != nil {
+ if sender, ok := obj[1].(string); ok {
+ args.Sender = sender
+ } else {
+ return shared.NewInvalidTypeError("Sender", "not a string")
+ }
+ }
+
+ return nil
+}
+
+type SetUrlHintArgs struct {
+ UrlHint string
+ Sender string
+}
+
+func (args *SetUrlHintArgs) 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 && obj[0] != nil {
+ if urlhint, ok := obj[0].(string); ok {
+ args.UrlHint = urlhint
+ } else {
+ return shared.NewInvalidTypeError("UrlHint", "not a string")
+ }
+ }
+
+ if len(obj) >= 2 && obj[1] != nil {
+ if sender, ok := obj[1].(string); ok {
+ args.Sender = sender
+ } else {
+ return shared.NewInvalidTypeError("Sender", "not a string")
+ }
+ }
+
+ return nil
+}
+
+type SaveInfoArgs struct {
+ ContractInfo compiler.ContractInfo
+ Filename string
+}
+
+func (args *SaveInfoArgs) UnmarshalJSON(b []byte) (err error) {
+ var obj []interface{}
+ if err := json.Unmarshal(b, &obj); err != nil {
+ return shared.NewDecodeParamError(err.Error())
+ }
+
+ if len(obj) < 2 {
+ return shared.NewInsufficientParamsError(len(obj), 2)
+ }
+
+ if jsonraw, err := json.Marshal(obj[0]); err == nil {
+ if err = json.Unmarshal(jsonraw, &args.ContractInfo); err != nil {
+ return err
+ }
+ } else {
+ return err
+ }
+
+ if filename, ok := obj[1].(string); ok {
+ args.Filename = filename
+ } else {
+ return shared.NewInvalidTypeError("Filename", "not a string")
+ }
+
+ return nil
+}
+
+type RegisterArgs struct {
+ Sender string
+ Address string
+ ContentHashHex string
+}
+
+func (args *RegisterArgs) UnmarshalJSON(b []byte) (err error) {
+ var obj []interface{}
+ if err := json.Unmarshal(b, &obj); err != nil {
+ return shared.NewDecodeParamError(err.Error())
+ }
+
+ if len(obj) < 3 {
+ return shared.NewInsufficientParamsError(len(obj), 3)
+ }
+
+ if len(obj) >= 1 {
+ if sender, ok := obj[0].(string); ok {
+ args.Sender = sender
+ } else {
+ return shared.NewInvalidTypeError("Sender", "not a string")
+ }
+ }
+
+ if len(obj) >= 2 {
+ if address, ok := obj[1].(string); ok {
+ args.Address = address
+ } else {
+ return shared.NewInvalidTypeError("Address", "not a string")
+ }
+ }
+
+ if len(obj) >= 3 {
+ if hex, ok := obj[2].(string); ok {
+ args.ContentHashHex = hex
+ } else {
+ return shared.NewInvalidTypeError("ContentHashHex", "not a string")
+ }
+ }
+
+ return nil
+}
+
+type RegisterUrlArgs struct {
+ Sender string
+ ContentHash string
+ Url string
+}
+
+func (args *RegisterUrlArgs) 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 {
+ if sender, ok := obj[0].(string); ok {
+ args.Sender = sender
+ } else {
+ return shared.NewInvalidTypeError("Sender", "not a string")
+ }
+ }
+
+ if len(obj) >= 2 {
+ if sender, ok := obj[1].(string); ok {
+ args.ContentHash = sender
+ } else {
+ return shared.NewInvalidTypeError("ContentHash", "not a string")
+ }
+ }
+
+ if len(obj) >= 3 {
+ if sender, ok := obj[2].(string); ok {
+ args.Url = sender
+ } else {
+ return shared.NewInvalidTypeError("Url", "not a string")
+ }
+ }
+
+ return nil
+}
+
+type GetContractInfoArgs struct {
+ Contract string
+}
+
+func (args *GetContractInfoArgs) 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)
+ }
+
+ if len(obj) >= 1 {
+ if contract, ok := obj[0].(string); ok {
+ args.Contract = contract
+ } else {
+ return shared.NewInvalidTypeError("Contract", "not a string")
+ }
+ }
+
+ return nil
+}
+
+type HttpGetArgs struct {
+ Uri string
+ Path string
+}
+
+func (args *HttpGetArgs) 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)
+ }
+
+ if len(obj) >= 1 {
+ if uri, ok := obj[0].(string); ok {
+ args.Uri = uri
+ } else {
+ return shared.NewInvalidTypeError("Uri", "not a string")
+ }
+ }
+
+ if len(obj) >= 2 && obj[1] != nil {
+ if path, ok := obj[1].(string); ok {
+ args.Path = path
+ } else {
+ return shared.NewInvalidTypeError("Path", "not a string")
+ }
+ }
+
+ return nil
+}