Increased args test coverage
This commit is contained in:
		@@ -62,7 +62,7 @@ type JSEthereum struct {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func (self *JSEthereum) Block(v interface{}) otto.Value {
 | 
					func (self *JSEthereum) Block(v interface{}) otto.Value {
 | 
				
			||||||
	if number, ok := v.(int64); ok {
 | 
						if number, ok := v.(int64); ok {
 | 
				
			||||||
		return self.toVal(&JSBlock{self.XEth.BlockByNumber(uint64(number)), self})
 | 
							return self.toVal(&JSBlock{self.XEth.BlockByNumber(number), self})
 | 
				
			||||||
	} else if hash, ok := v.(string); ok {
 | 
						} else if hash, ok := v.(string); ok {
 | 
				
			||||||
		return self.toVal(&JSBlock{self.XEth.BlockByHash(hash), self})
 | 
							return self.toVal(&JSBlock{self.XEth.BlockByHash(hash), self})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										120
									
								
								rpc/args.go
									
									
									
									
									
								
							
							
						
						
									
										120
									
								
								rpc/args.go
									
									
									
									
									
								
							@@ -33,7 +33,7 @@ func (args *GetBlockByHashArgs) UnmarshalJSON(b []byte) (err error) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type GetBlockByNumberArgs struct {
 | 
					type GetBlockByNumberArgs struct {
 | 
				
			||||||
	BlockNumber  uint64
 | 
						BlockNumber  int64
 | 
				
			||||||
	Transactions bool
 | 
						Transactions bool
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -47,7 +47,7 @@ func (args *GetBlockByNumberArgs) UnmarshalJSON(b []byte) (err error) {
 | 
				
			|||||||
	if len(obj) < 1 {
 | 
						if len(obj) < 1 {
 | 
				
			||||||
		return errArguments
 | 
							return errArguments
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	args.BlockNumber = uint64(ethutil.Big(obj[0].(string)).Int64())
 | 
						args.BlockNumber = ethutil.Big(obj[0].(string)).Int64()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if len(obj) > 1 {
 | 
						if len(obj) > 1 {
 | 
				
			||||||
		args.Transactions = obj[1].(bool)
 | 
							args.Transactions = obj[1].(bool)
 | 
				
			||||||
@@ -94,7 +94,7 @@ func (args *NewTxArgs) UnmarshalJSON(b []byte) (err error) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
type GetStorageArgs struct {
 | 
					type GetStorageArgs struct {
 | 
				
			||||||
	Address     string
 | 
						Address     string
 | 
				
			||||||
	BlockNumber uint64
 | 
						BlockNumber int64
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (args *GetStorageArgs) UnmarshalJSON(b []byte) (err error) {
 | 
					func (args *GetStorageArgs) UnmarshalJSON(b []byte) (err error) {
 | 
				
			||||||
@@ -110,7 +110,11 @@ func (args *GetStorageArgs) UnmarshalJSON(b []byte) (err error) {
 | 
				
			|||||||
	args.Address = obj[0].(string)
 | 
						args.Address = obj[0].(string)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if len(obj) > 1 {
 | 
						if len(obj) > 1 {
 | 
				
			||||||
		args.BlockNumber = uint64(ethutil.Big(obj[1].(string)).Int64())
 | 
							if obj[1].(string) == "latest" {
 | 
				
			||||||
 | 
								args.BlockNumber = -1
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								args.BlockNumber = ethutil.Big(obj[1].(string)).Int64()
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
@@ -126,7 +130,7 @@ func (args *GetStorageArgs) requirements() error {
 | 
				
			|||||||
type GetStorageAtArgs struct {
 | 
					type GetStorageAtArgs struct {
 | 
				
			||||||
	Address     string
 | 
						Address     string
 | 
				
			||||||
	Key         string
 | 
						Key         string
 | 
				
			||||||
	BlockNumber uint64
 | 
						BlockNumber int64
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (args *GetStorageAtArgs) UnmarshalJSON(b []byte) (err error) {
 | 
					func (args *GetStorageAtArgs) UnmarshalJSON(b []byte) (err error) {
 | 
				
			||||||
@@ -143,7 +147,11 @@ func (args *GetStorageAtArgs) UnmarshalJSON(b []byte) (err error) {
 | 
				
			|||||||
	args.Key = obj[1].(string)
 | 
						args.Key = obj[1].(string)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if len(obj) > 2 {
 | 
						if len(obj) > 2 {
 | 
				
			||||||
		args.BlockNumber = ethutil.BytesToNumber(fromHex(obj[2].(string)))
 | 
							if obj[2].(string) == "latest" {
 | 
				
			||||||
 | 
								args.BlockNumber = -1
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								args.BlockNumber = ethutil.Big(obj[2].(string)).Int64()
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
@@ -162,7 +170,7 @@ func (args *GetStorageAtArgs) requirements() error {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
type GetTxCountArgs struct {
 | 
					type GetTxCountArgs struct {
 | 
				
			||||||
	Address     string
 | 
						Address     string
 | 
				
			||||||
	BlockNumber uint64
 | 
						BlockNumber int64
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (args *GetTxCountArgs) UnmarshalJSON(b []byte) (err error) {
 | 
					func (args *GetTxCountArgs) UnmarshalJSON(b []byte) (err error) {
 | 
				
			||||||
@@ -179,7 +187,11 @@ func (args *GetTxCountArgs) UnmarshalJSON(b []byte) (err error) {
 | 
				
			|||||||
	args.Address = obj[0].(string)
 | 
						args.Address = obj[0].(string)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if len(obj) > 1 {
 | 
						if len(obj) > 1 {
 | 
				
			||||||
		args.BlockNumber = uint64(ethutil.Big(obj[1].(string)).Int64())
 | 
							if obj[1].(string) == "latest" {
 | 
				
			||||||
 | 
								args.BlockNumber = -1
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								args.BlockNumber = ethutil.Big(obj[1].(string)).Int64()
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
@@ -194,7 +206,7 @@ func (args *GetTxCountArgs) requirements() error {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
type GetBalanceArgs struct {
 | 
					type GetBalanceArgs struct {
 | 
				
			||||||
	Address     string
 | 
						Address     string
 | 
				
			||||||
	BlockNumber uint64
 | 
						BlockNumber int64
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (args *GetBalanceArgs) UnmarshalJSON(b []byte) (err error) {
 | 
					func (args *GetBalanceArgs) UnmarshalJSON(b []byte) (err error) {
 | 
				
			||||||
@@ -210,7 +222,11 @@ func (args *GetBalanceArgs) UnmarshalJSON(b []byte) (err error) {
 | 
				
			|||||||
	args.Address = obj[0].(string)
 | 
						args.Address = obj[0].(string)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if len(obj) > 1 {
 | 
						if len(obj) > 1 {
 | 
				
			||||||
		args.BlockNumber = uint64(ethutil.Big(obj[1].(string)).Int64())
 | 
							if obj[1].(string) == "latest" {
 | 
				
			||||||
 | 
								args.BlockNumber = -1
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								args.BlockNumber = ethutil.Big(obj[1].(string)).Int64()
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
@@ -225,7 +241,7 @@ func (args *GetBalanceArgs) requirements() error {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
type GetDataArgs struct {
 | 
					type GetDataArgs struct {
 | 
				
			||||||
	Address     string
 | 
						Address     string
 | 
				
			||||||
	BlockNumber uint64
 | 
						BlockNumber int64
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (args *GetDataArgs) UnmarshalJSON(b []byte) (err error) {
 | 
					func (args *GetDataArgs) UnmarshalJSON(b []byte) (err error) {
 | 
				
			||||||
@@ -241,7 +257,11 @@ func (args *GetDataArgs) UnmarshalJSON(b []byte) (err error) {
 | 
				
			|||||||
	args.Address = obj[0].(string)
 | 
						args.Address = obj[0].(string)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if len(obj) > 1 {
 | 
						if len(obj) > 1 {
 | 
				
			||||||
		args.BlockNumber = uint64(ethutil.Big(obj[1].(string)).Int64())
 | 
							if obj[1].(string) == "latest" {
 | 
				
			||||||
 | 
								args.BlockNumber = -1
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								args.BlockNumber = ethutil.Big(obj[1].(string)).Int64()
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
@@ -273,41 +293,41 @@ func (args *Sha3Args) UnmarshalJSON(b []byte) (err error) {
 | 
				
			|||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type FilterArgs struct {
 | 
					// type FilterArgs struct {
 | 
				
			||||||
	FromBlock uint64
 | 
					// 	FromBlock uint64
 | 
				
			||||||
	ToBlock   uint64
 | 
					// 	ToBlock   uint64
 | 
				
			||||||
	Limit     uint64
 | 
					// 	Limit     uint64
 | 
				
			||||||
	Offset    uint64
 | 
					// 	Offset    uint64
 | 
				
			||||||
	Address   string
 | 
					// 	Address   string
 | 
				
			||||||
	Topics    []string
 | 
					// 	Topics    []string
 | 
				
			||||||
}
 | 
					// }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (args *FilterArgs) UnmarshalJSON(b []byte) (err error) {
 | 
					// func (args *FilterArgs) UnmarshalJSON(b []byte) (err error) {
 | 
				
			||||||
	var obj []struct {
 | 
					// 	var obj []struct {
 | 
				
			||||||
		FromBlock string   `json:"fromBlock"`
 | 
					// 		FromBlock string   `json:"fromBlock"`
 | 
				
			||||||
		ToBlock   string   `json:"toBlock"`
 | 
					// 		ToBlock   string   `json:"toBlock"`
 | 
				
			||||||
		Limit     string   `json:"limit"`
 | 
					// 		Limit     string   `json:"limit"`
 | 
				
			||||||
		Offset    string   `json:"offset"`
 | 
					// 		Offset    string   `json:"offset"`
 | 
				
			||||||
		Address   string   `json:"address"`
 | 
					// 		Address   string   `json:"address"`
 | 
				
			||||||
		Topics    []string `json:"topics"`
 | 
					// 		Topics    []string `json:"topics"`
 | 
				
			||||||
	}
 | 
					// 	}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if err = json.Unmarshal(b, &obj); err != nil {
 | 
					// 	if err = json.Unmarshal(b, &obj); err != nil {
 | 
				
			||||||
		return errDecodeArgs
 | 
					// 		return errDecodeArgs
 | 
				
			||||||
	}
 | 
					// 	}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if len(obj) < 1 {
 | 
					// 	if len(obj) < 1 {
 | 
				
			||||||
		return errArguments
 | 
					// 		return errArguments
 | 
				
			||||||
	}
 | 
					// 	}
 | 
				
			||||||
	args.FromBlock = uint64(ethutil.Big(obj[0].FromBlock).Int64())
 | 
					// 	args.FromBlock = uint64(ethutil.Big(obj[0].FromBlock).Int64())
 | 
				
			||||||
	args.ToBlock = uint64(ethutil.Big(obj[0].ToBlock).Int64())
 | 
					// 	args.ToBlock = uint64(ethutil.Big(obj[0].ToBlock).Int64())
 | 
				
			||||||
	args.Limit = uint64(ethutil.Big(obj[0].Limit).Int64())
 | 
					// 	args.Limit = uint64(ethutil.Big(obj[0].Limit).Int64())
 | 
				
			||||||
	args.Offset = uint64(ethutil.Big(obj[0].Offset).Int64())
 | 
					// 	args.Offset = uint64(ethutil.Big(obj[0].Offset).Int64())
 | 
				
			||||||
	args.Address = obj[0].Address
 | 
					// 	args.Address = obj[0].Address
 | 
				
			||||||
	args.Topics = obj[0].Topics
 | 
					// 	args.Topics = obj[0].Topics
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return nil
 | 
					// 	return nil
 | 
				
			||||||
}
 | 
					// }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type FilterOptions struct {
 | 
					type FilterOptions struct {
 | 
				
			||||||
	Earliest int64
 | 
						Earliest int64
 | 
				
			||||||
@@ -415,8 +435,8 @@ func (args *WhisperMessageArgs) UnmarshalJSON(b []byte) (err error) {
 | 
				
			|||||||
	args.To = obj[0].To
 | 
						args.To = obj[0].To
 | 
				
			||||||
	args.From = obj[0].From
 | 
						args.From = obj[0].From
 | 
				
			||||||
	args.Topic = obj[0].Topic
 | 
						args.Topic = obj[0].Topic
 | 
				
			||||||
	args.Priority = uint32(ethutil.BytesToNumber(fromHex(obj[0].Priority)))
 | 
						args.Priority = uint32(ethutil.Big(obj[0].Priority).Int64())
 | 
				
			||||||
	args.Ttl = uint32(ethutil.BytesToNumber(fromHex(obj[0].Ttl)))
 | 
						args.Ttl = uint32(ethutil.Big(obj[0].Ttl).Int64())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -474,7 +494,7 @@ func (args *FilterIdArgs) UnmarshalJSON(b []byte) (err error) {
 | 
				
			|||||||
		return errDecodeArgs
 | 
							return errDecodeArgs
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	args.Id = int(ethutil.BytesToNumber(fromHex(obj[0])))
 | 
						args.Id = int(ethutil.Big(obj[0]).Int64())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -500,13 +520,17 @@ func (args *WhisperIdentityArgs) UnmarshalJSON(b []byte) (err error) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type WhisperFilterArgs struct {
 | 
					type WhisperFilterArgs struct {
 | 
				
			||||||
	To     string
 | 
						To     string `json:"to"`
 | 
				
			||||||
	From   string
 | 
						From   string
 | 
				
			||||||
	Topics []string
 | 
						Topics []string
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (args *WhisperFilterArgs) UnmarshalJSON(b []byte) (err error) {
 | 
					func (args *WhisperFilterArgs) UnmarshalJSON(b []byte) (err error) {
 | 
				
			||||||
	var obj []WhisperFilterArgs
 | 
						var obj []struct {
 | 
				
			||||||
 | 
							To     string
 | 
				
			||||||
 | 
							From   string
 | 
				
			||||||
 | 
							Topics []string
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if err = json.Unmarshal(b, &obj); err != nil {
 | 
						if err = json.Unmarshal(b, &obj); err != nil {
 | 
				
			||||||
		return errDecodeArgs
 | 
							return errDecodeArgs
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										309
									
								
								rpc/args_test.go
									
									
									
									
									
								
							
							
						
						
									
										309
									
								
								rpc/args_test.go
									
									
									
									
									
								
							@@ -30,6 +30,10 @@ func TestGetBalanceArgs(t *testing.T) {
 | 
				
			|||||||
		t.Error(err)
 | 
							t.Error(err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if err := args.requirements(); err != nil {
 | 
				
			||||||
 | 
							t.Error(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if args.Address != expected.Address {
 | 
						if args.Address != expected.Address {
 | 
				
			||||||
		t.Errorf("Address should be %v but is %v", expected.Address, args.Address)
 | 
							t.Errorf("Address should be %v but is %v", expected.Address, args.Address)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -123,3 +127,308 @@ func TestNewTxArgs(t *testing.T) {
 | 
				
			|||||||
		t.Errorf("Data shoud be %#v but is %#v", expected.Data, args.Data)
 | 
							t.Errorf("Data shoud be %#v but is %#v", expected.Data, args.Data)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestGetStorageArgs(t *testing.T) {
 | 
				
			||||||
 | 
						input := `["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "latest"]`
 | 
				
			||||||
 | 
						expected := new(GetStorageArgs)
 | 
				
			||||||
 | 
						expected.Address = "0x407d73d8a49eeb85d32cf465507dd71d507100c1"
 | 
				
			||||||
 | 
						expected.BlockNumber = -1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						args := new(GetStorageArgs)
 | 
				
			||||||
 | 
						if err := json.Unmarshal([]byte(input), &args); err != nil {
 | 
				
			||||||
 | 
							t.Error(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if err := args.requirements(); err != nil {
 | 
				
			||||||
 | 
							t.Error(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.Address != args.Address {
 | 
				
			||||||
 | 
							t.Errorf("Address shoud be %#v but is %#v", expected.Address, args.Address)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.BlockNumber != args.BlockNumber {
 | 
				
			||||||
 | 
							t.Errorf("BlockNumber shoud be %#v but is %#v", expected.BlockNumber, args.BlockNumber)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestGetStorageAtArgs(t *testing.T) {
 | 
				
			||||||
 | 
						input := `["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "0x0", "0x2"]`
 | 
				
			||||||
 | 
						expected := new(GetStorageAtArgs)
 | 
				
			||||||
 | 
						expected.Address = "0x407d73d8a49eeb85d32cf465507dd71d507100c1"
 | 
				
			||||||
 | 
						expected.Key = "0x0"
 | 
				
			||||||
 | 
						expected.BlockNumber = 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						args := new(GetStorageAtArgs)
 | 
				
			||||||
 | 
						if err := json.Unmarshal([]byte(input), &args); err != nil {
 | 
				
			||||||
 | 
							t.Error(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if err := args.requirements(); err != nil {
 | 
				
			||||||
 | 
							t.Error(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.Address != args.Address {
 | 
				
			||||||
 | 
							t.Errorf("Address shoud be %#v but is %#v", expected.Address, args.Address)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.Key != args.Key {
 | 
				
			||||||
 | 
							t.Errorf("Address shoud be %#v but is %#v", expected.Address, args.Address)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.BlockNumber != args.BlockNumber {
 | 
				
			||||||
 | 
							t.Errorf("BlockNumber shoud be %#v but is %#v", expected.BlockNumber, args.BlockNumber)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestGetTxCountArgs(t *testing.T) {
 | 
				
			||||||
 | 
						input := `["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "latest"]`
 | 
				
			||||||
 | 
						expected := new(GetTxCountArgs)
 | 
				
			||||||
 | 
						expected.Address = "0x407d73d8a49eeb85d32cf465507dd71d507100c1"
 | 
				
			||||||
 | 
						expected.BlockNumber = -1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						args := new(GetTxCountArgs)
 | 
				
			||||||
 | 
						if err := json.Unmarshal([]byte(input), &args); err != nil {
 | 
				
			||||||
 | 
							t.Error(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if err := args.requirements(); err != nil {
 | 
				
			||||||
 | 
							t.Error(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.Address != args.Address {
 | 
				
			||||||
 | 
							t.Errorf("Address shoud be %#v but is %#v", expected.Address, args.Address)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.BlockNumber != args.BlockNumber {
 | 
				
			||||||
 | 
							t.Errorf("BlockNumber shoud be %#v but is %#v", expected.BlockNumber, args.BlockNumber)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestGetDataArgs(t *testing.T) {
 | 
				
			||||||
 | 
						input := `["0xd5677cf67b5aa051bb40496e68ad359eb97cfbf8", "latest"]`
 | 
				
			||||||
 | 
						expected := new(GetDataArgs)
 | 
				
			||||||
 | 
						expected.Address = "0xd5677cf67b5aa051bb40496e68ad359eb97cfbf8"
 | 
				
			||||||
 | 
						expected.BlockNumber = -1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						args := new(GetDataArgs)
 | 
				
			||||||
 | 
						if err := json.Unmarshal([]byte(input), &args); err != nil {
 | 
				
			||||||
 | 
							t.Error(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if err := args.requirements(); err != nil {
 | 
				
			||||||
 | 
							t.Error(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.Address != args.Address {
 | 
				
			||||||
 | 
							t.Errorf("Address shoud be %#v but is %#v", expected.Address, args.Address)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.BlockNumber != args.BlockNumber {
 | 
				
			||||||
 | 
							t.Errorf("BlockNumber shoud be %#v but is %#v", expected.BlockNumber, args.BlockNumber)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestFilterOptions(t *testing.T) {
 | 
				
			||||||
 | 
						input := `[{
 | 
				
			||||||
 | 
					  "fromBlock": "0x1",
 | 
				
			||||||
 | 
					  "toBlock": "0x2",
 | 
				
			||||||
 | 
					  "limit": "0x3",
 | 
				
			||||||
 | 
					  "offset": "0x0",
 | 
				
			||||||
 | 
					  "address": "0xd5677cf67b5aa051bb40496e68ad359eb97cfbf8",
 | 
				
			||||||
 | 
					  "topics": ["0x12341234"]}]`
 | 
				
			||||||
 | 
						expected := new(FilterOptions)
 | 
				
			||||||
 | 
						expected.Earliest = 1
 | 
				
			||||||
 | 
						expected.Latest = 2
 | 
				
			||||||
 | 
						expected.Max = 3
 | 
				
			||||||
 | 
						expected.Skip = 0
 | 
				
			||||||
 | 
						expected.Address = "0xd5677cf67b5aa051bb40496e68ad359eb97cfbf8"
 | 
				
			||||||
 | 
						expected.Topic = []string{"0x12341234"}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						args := new(FilterOptions)
 | 
				
			||||||
 | 
						if err := json.Unmarshal([]byte(input), &args); err != nil {
 | 
				
			||||||
 | 
							t.Error(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.Earliest != args.Earliest {
 | 
				
			||||||
 | 
							t.Errorf("Earliest shoud be %#v but is %#v", expected.Earliest, args.Earliest)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.Latest != args.Latest {
 | 
				
			||||||
 | 
							t.Errorf("Latest shoud be %#v but is %#v", expected.Latest, args.Latest)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.Max != args.Max {
 | 
				
			||||||
 | 
							t.Errorf("Max shoud be %#v but is %#v", expected.Max, args.Max)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.Skip != args.Skip {
 | 
				
			||||||
 | 
							t.Errorf("Skip shoud be %#v but is %#v", expected.Skip, args.Skip)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.Address != args.Address {
 | 
				
			||||||
 | 
							t.Errorf("Address shoud be %#v but is %#v", expected.Address, args.Address)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// if expected.Topic != args.Topic {
 | 
				
			||||||
 | 
						// 	t.Errorf("Topic shoud be %#v but is %#v", expected.Topic, args.Topic)
 | 
				
			||||||
 | 
						// }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestDbArgs(t *testing.T) {
 | 
				
			||||||
 | 
						input := `["0x74657374","0x6b6579","0x6d79537472696e67"]`
 | 
				
			||||||
 | 
						expected := new(DbArgs)
 | 
				
			||||||
 | 
						expected.Database = "0x74657374"
 | 
				
			||||||
 | 
						expected.Key = "0x6b6579"
 | 
				
			||||||
 | 
						expected.Value = "0x6d79537472696e67"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						args := new(DbArgs)
 | 
				
			||||||
 | 
						if err := json.Unmarshal([]byte(input), &args); err != nil {
 | 
				
			||||||
 | 
							t.Error(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if err := args.requirements(); err != nil {
 | 
				
			||||||
 | 
							t.Error(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.Database != args.Database {
 | 
				
			||||||
 | 
							t.Errorf("Database shoud be %#v but is %#v", expected.Database, args.Database)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.Key != args.Key {
 | 
				
			||||||
 | 
							t.Errorf("Key shoud be %#v but is %#v", expected.Key, args.Key)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.Value != args.Value {
 | 
				
			||||||
 | 
							t.Errorf("Value shoud be %#v but is %#v", expected.Value, args.Value)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestWhisperMessageArgs(t *testing.T) {
 | 
				
			||||||
 | 
						input := `[{"from":"0xc931d93e97ab07fe42d923478ba2465f2",
 | 
				
			||||||
 | 
					  "topics": ["0x68656c6c6f20776f726c64"],
 | 
				
			||||||
 | 
					  "payload":"0x68656c6c6f20776f726c64",
 | 
				
			||||||
 | 
					  "ttl": "0x64",
 | 
				
			||||||
 | 
					  "priority": "0x64"}]`
 | 
				
			||||||
 | 
						expected := new(WhisperMessageArgs)
 | 
				
			||||||
 | 
						expected.From = "0xc931d93e97ab07fe42d923478ba2465f2"
 | 
				
			||||||
 | 
						expected.To = ""
 | 
				
			||||||
 | 
						expected.Payload = "0x68656c6c6f20776f726c64"
 | 
				
			||||||
 | 
						expected.Priority = 100
 | 
				
			||||||
 | 
						expected.Ttl = 100
 | 
				
			||||||
 | 
						expected.Topic = []string{"0x68656c6c6f20776f726c64"}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						args := new(WhisperMessageArgs)
 | 
				
			||||||
 | 
						if err := json.Unmarshal([]byte(input), &args); err != nil {
 | 
				
			||||||
 | 
							t.Error(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.From != args.From {
 | 
				
			||||||
 | 
							t.Errorf("From shoud be %#v but is %#v", expected.From, args.From)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.To != args.To {
 | 
				
			||||||
 | 
							t.Errorf("To shoud be %#v but is %#v", expected.To, args.To)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.Payload != args.Payload {
 | 
				
			||||||
 | 
							t.Errorf("Value shoud be %#v but is %#v", expected.Payload, args.Payload)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.Ttl != args.Ttl {
 | 
				
			||||||
 | 
							t.Errorf("Ttl shoud be %#v but is %#v", expected.Ttl, args.Ttl)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.Priority != args.Priority {
 | 
				
			||||||
 | 
							t.Errorf("Priority shoud be %#v but is %#v", expected.Priority, args.Priority)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// if expected.Topic != args.Topic {
 | 
				
			||||||
 | 
						// 	t.Errorf("Topic shoud be %#v but is %#v", expected.Topic, args.Topic)
 | 
				
			||||||
 | 
						// }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestFilterIdArgs(t *testing.T) {
 | 
				
			||||||
 | 
						input := `["0x7"]`
 | 
				
			||||||
 | 
						expected := new(FilterIdArgs)
 | 
				
			||||||
 | 
						expected.Id = 7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						args := new(FilterIdArgs)
 | 
				
			||||||
 | 
						if err := json.Unmarshal([]byte(input), &args); err != nil {
 | 
				
			||||||
 | 
							t.Error(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.Id != args.Id {
 | 
				
			||||||
 | 
							t.Errorf("Id shoud be %#v but is %#v", expected.Id, args.Id)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestWhsiperFilterArgs(t *testing.T) {
 | 
				
			||||||
 | 
						input := `[{"topics": ["0x68656c6c6f20776f726c64"], "to": "0x34ag445g3455b34"}]`
 | 
				
			||||||
 | 
						expected := new(WhisperFilterArgs)
 | 
				
			||||||
 | 
						expected.From = ""
 | 
				
			||||||
 | 
						expected.To = "0x34ag445g3455b34"
 | 
				
			||||||
 | 
						expected.Topics = []string{"0x68656c6c6f20776f726c64"}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						args := new(WhisperFilterArgs)
 | 
				
			||||||
 | 
						if err := json.Unmarshal([]byte(input), &args); err != nil {
 | 
				
			||||||
 | 
							t.Error(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.From != args.From {
 | 
				
			||||||
 | 
							t.Errorf("From shoud be %#v but is %#v", expected.From, args.From)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.To != args.To {
 | 
				
			||||||
 | 
							t.Errorf("To shoud be %#v but is %#v", expected.To, args.To)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// if expected.Topics != args.Topics {
 | 
				
			||||||
 | 
						// 	t.Errorf("Topics shoud be %#v but is %#v", expected.Topics, args.Topics)
 | 
				
			||||||
 | 
						// }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestCompileArgs(t *testing.T) {
 | 
				
			||||||
 | 
						input := `["contract test { function multiply(uint a) returns(uint d) {   return a * 7;   } }"]`
 | 
				
			||||||
 | 
						expected := new(CompileArgs)
 | 
				
			||||||
 | 
						expected.Source = `contract test { function multiply(uint a) returns(uint d) {   return a * 7;   } }`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						args := new(CompileArgs)
 | 
				
			||||||
 | 
						if err := json.Unmarshal([]byte(input), &args); err != nil {
 | 
				
			||||||
 | 
							t.Error(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.Source != args.Source {
 | 
				
			||||||
 | 
							t.Errorf("Source shoud be %#v but is %#v", expected.Source, args.Source)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestFilterStringArgs(t *testing.T) {
 | 
				
			||||||
 | 
						input := `["pending"]`
 | 
				
			||||||
 | 
						expected := new(FilterStringArgs)
 | 
				
			||||||
 | 
						expected.Word = "pending"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						args := new(FilterStringArgs)
 | 
				
			||||||
 | 
						if err := json.Unmarshal([]byte(input), &args); err != nil {
 | 
				
			||||||
 | 
							t.Error(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.Word != args.Word {
 | 
				
			||||||
 | 
							t.Errorf("Word shoud be %#v but is %#v", expected.Word, args.Word)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestWhisperIdentityArgs(t *testing.T) {
 | 
				
			||||||
 | 
						input := `["0xc931d93e97ab07fe42d923478ba2465f283"]`
 | 
				
			||||||
 | 
						expected := new(WhisperIdentityArgs)
 | 
				
			||||||
 | 
						expected.Identity = "0xc931d93e97ab07fe42d923478ba2465f283"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						args := new(WhisperIdentityArgs)
 | 
				
			||||||
 | 
						if err := json.Unmarshal([]byte(input), &args); err != nil {
 | 
				
			||||||
 | 
							t.Error(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if expected.Identity != args.Identity {
 | 
				
			||||||
 | 
							t.Errorf("Identity shoud be %#v but is %#v", expected.Identity, args.Identity)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										12
									
								
								xeth/xeth.go
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								xeth/xeth.go
									
									
									
									
									
								
							@@ -86,17 +86,21 @@ func (self *XEth) BlockByHash(strHash string) *Block {
 | 
				
			|||||||
	return NewBlock(block)
 | 
						return NewBlock(block)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (self *XEth) BlockByNumber(num uint64) *Block {
 | 
					func (self *XEth) BlockByNumber(num int64) *Block {
 | 
				
			||||||
	return NewBlock(self.chainManager.GetBlockByNumber(num))
 | 
						if num == -1 {
 | 
				
			||||||
 | 
							return NewBlock(self.chainManager.CurrentBlock())
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return NewBlock(self.chainManager.GetBlockByNumber(uint64(num)))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (self *XEth) Block(v interface{}) *Block {
 | 
					func (self *XEth) Block(v interface{}) *Block {
 | 
				
			||||||
	if n, ok := v.(int32); ok {
 | 
						if n, ok := v.(int32); ok {
 | 
				
			||||||
		return self.BlockByNumber(uint64(n))
 | 
							return self.BlockByNumber(int64(n))
 | 
				
			||||||
	} else if str, ok := v.(string); ok {
 | 
						} else if str, ok := v.(string); ok {
 | 
				
			||||||
		return self.BlockByHash(str)
 | 
							return self.BlockByHash(str)
 | 
				
			||||||
	} else if f, ok := v.(float64); ok { // Don't ask ...
 | 
						} else if f, ok := v.(float64); ok { // Don't ask ...
 | 
				
			||||||
		return self.BlockByNumber(uint64(f))
 | 
							return self.BlockByNumber(int64(f))
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user