DRY up the use of fromHex and put it in ethutil
This commit is contained in:
		
							parent
							
								
									b927c29469
								
							
						
					
					
						commit
						991993357c
					
				| @ -64,6 +64,19 @@ func DefaultDataDir() string { | |||||||
| 		return path.Join(usr.HomeDir, ".ethereum") | 		return path.Join(usr.HomeDir, ".ethereum") | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | func FromHex(s string) []byte { | ||||||
|  | 	if len(s) > 1 { | ||||||
|  | 		if s[0:2] == "0x" { | ||||||
|  | 			s = s[2:] | ||||||
|  | 		} | ||||||
|  | 		if len(s)%2 == 1 { | ||||||
|  | 			s = "0" + s | ||||||
|  | 		} | ||||||
|  | 		return Hex2Bytes(s) | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
| func IsWindows() bool { | func IsWindows() bool { | ||||||
| 	return runtime.GOOS == "windows" | 	return runtime.GOOS == "windows" | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,8 +1,10 @@ | |||||||
| package ethutil | package ethutil | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
|  | 	"bytes" | ||||||
| 	"math/big" | 	"math/big" | ||||||
| 	"os" | 	"os" | ||||||
|  | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	checker "gopkg.in/check.v1" | 	checker "gopkg.in/check.v1" | ||||||
| ) | ) | ||||||
| @ -66,3 +68,22 @@ func (s *CommonSuite) TestLarge(c *checker.C) { | |||||||
| 	c.Assert(adalarge, checker.Equals, "10000E7 Einstein") | 	c.Assert(adalarge, checker.Equals, "10000E7 Einstein") | ||||||
| 	c.Assert(weilarge, checker.Equals, "100 Babbage") | 	c.Assert(weilarge, checker.Equals, "100 Babbage") | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | //fromHex
 | ||||||
|  | func TestFromHex(t *testing.T) { | ||||||
|  | 	input := "0x01" | ||||||
|  | 	expected := []byte{1} | ||||||
|  | 	result := FromHex(input) | ||||||
|  | 	if bytes.Compare(expected, result) != 0 { | ||||||
|  | 		t.Errorf("Expected % x got % x", expected, result) | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func TestFromHexOddLength(t *testing.T) { | ||||||
|  | 	input := "0x1" | ||||||
|  | 	expected := []byte{1} | ||||||
|  | 	result := FromHex(input) | ||||||
|  | 	if bytes.Compare(expected, result) != 0 { | ||||||
|  | 		t.Errorf("Expected % x got % x", expected, result) | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | |||||||
							
								
								
									
										14
									
								
								rpc/api.go
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								rpc/api.go
									
									
									
									
									
								
							| @ -241,7 +241,7 @@ func (p *EthereumApi) Transact(args *NewTxArgs, reply *interface{}) (err error) | |||||||
| 	//	p.register[args.From] = append(p.register[args.From], args)
 | 	//	p.register[args.From] = append(p.register[args.From], args)
 | ||||||
| 	//} else {
 | 	//} else {
 | ||||||
| 	/* | 	/* | ||||||
| 		account := accounts.Get(fromHex(args.From)) | 		account := accounts.Get(ethutil.FromHex(args.From)) | ||||||
| 		if account != nil { | 		if account != nil { | ||||||
| 			if account.Unlocked() { | 			if account.Unlocked() { | ||||||
| 				if !unlockAccount(account) { | 				if !unlockAccount(account) { | ||||||
| @ -249,7 +249,7 @@ func (p *EthereumApi) Transact(args *NewTxArgs, reply *interface{}) (err error) | |||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			result, _ := account.Transact(fromHex(args.To), fromHex(args.Value), fromHex(args.Gas), fromHex(args.GasPrice), fromHex(args.Data)) | 			result, _ := account.Transact(ethutil.FromHex(args.To), ethutil.FromHex(args.Value), ethutil.FromHex(args.Gas), ethutil.FromHex(args.GasPrice), ethutil.FromHex(args.Data)) | ||||||
| 			if len(result) > 0 { | 			if len(result) > 0 { | ||||||
| 				*reply = toHex(result) | 				*reply = toHex(result) | ||||||
| 			} | 			} | ||||||
| @ -480,7 +480,7 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error | |||||||
| 		if err := json.Unmarshal(req.Params, &args); err != nil { | 		if err := json.Unmarshal(req.Params, &args); err != nil { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 		*reply = toHex(crypto.Sha3(fromHex(args.Data))) | 		*reply = toHex(crypto.Sha3(ethutil.FromHex(args.Data))) | ||||||
| 	case "web3_clientVersion": | 	case "web3_clientVersion": | ||||||
| 		*reply = p.xeth().Backend().Version() | 		*reply = p.xeth().Backend().Version() | ||||||
| 	case "net_version": | 	case "net_version": | ||||||
| @ -815,12 +815,12 @@ func toFilterOptions(options *FilterOptions) core.FilterOptions { | |||||||
| 
 | 
 | ||||||
| 	// Convert optional address slice/string to byte slice
 | 	// Convert optional address slice/string to byte slice
 | ||||||
| 	if str, ok := options.Address.(string); ok { | 	if str, ok := options.Address.(string); ok { | ||||||
| 		opts.Address = [][]byte{fromHex(str)} | 		opts.Address = [][]byte{ethutil.FromHex(str)} | ||||||
| 	} else if slice, ok := options.Address.([]interface{}); ok { | 	} else if slice, ok := options.Address.([]interface{}); ok { | ||||||
| 		bslice := make([][]byte, len(slice)) | 		bslice := make([][]byte, len(slice)) | ||||||
| 		for i, addr := range slice { | 		for i, addr := range slice { | ||||||
| 			if saddr, ok := addr.(string); ok { | 			if saddr, ok := addr.(string); ok { | ||||||
| 				bslice[i] = fromHex(saddr) | 				bslice[i] = ethutil.FromHex(saddr) | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		opts.Address = bslice | 		opts.Address = bslice | ||||||
| @ -834,11 +834,11 @@ func toFilterOptions(options *FilterOptions) core.FilterOptions { | |||||||
| 		if slice, ok := topicDat.([]interface{}); ok { | 		if slice, ok := topicDat.([]interface{}); ok { | ||||||
| 			topics[i] = make([][]byte, len(slice)) | 			topics[i] = make([][]byte, len(slice)) | ||||||
| 			for j, topic := range slice { | 			for j, topic := range slice { | ||||||
| 				topics[i][j] = fromHex(topic.(string)) | 				topics[i][j] = ethutil.FromHex(topic.(string)) | ||||||
| 			} | 			} | ||||||
| 		} else if str, ok := topicDat.(string); ok { | 		} else if str, ok := topicDat.(string); ok { | ||||||
| 			topics[i] = make([][]byte, 1) | 			topics[i] = make([][]byte, 1) | ||||||
| 			topics[i][0] = fromHex(str) | 			topics[i][0] = ethutil.FromHex(str) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	opts.Topics = topics | 	opts.Topics = topics | ||||||
|  | |||||||
							
								
								
									
										13
									
								
								rpc/util.go
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								rpc/util.go
									
									
									
									
									
								
							| @ -128,19 +128,6 @@ func toHex(b []byte) string { | |||||||
| 	return "0x" + hex | 	return "0x" + hex | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func fromHex(s string) []byte { |  | ||||||
| 	if len(s) > 1 { |  | ||||||
| 		if s[0:2] == "0x" { |  | ||||||
| 			s = s[2:] |  | ||||||
| 		} |  | ||||||
| 		if len(s)%2 == 1 { |  | ||||||
| 			s = "0" + s |  | ||||||
| 		} |  | ||||||
| 		return ethutil.Hex2Bytes(s) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func i2hex(n int) string { | func i2hex(n int) string { | ||||||
| 	return toHex(big.NewInt(int64(n)).Bytes()) | 	return toHex(big.NewInt(int64(n)).Bytes()) | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,25 +0,0 @@ | |||||||
| package rpc |  | ||||||
| 
 |  | ||||||
| import ( |  | ||||||
| 	"bytes" |  | ||||||
| 	"testing" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| //fromHex
 |  | ||||||
| func TestFromHex(t *testing.T) { |  | ||||||
| 	input := "0x01" |  | ||||||
| 	expected := []byte{1} |  | ||||||
| 	result := fromHex(input) |  | ||||||
| 	if bytes.Compare(expected, result) != 0 { |  | ||||||
| 		t.Errorf("Expected % x got % x", expected, result) |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func TestFromHexOddLength(t *testing.T) { |  | ||||||
| 	input := "0x1" |  | ||||||
| 	expected := []byte{1} |  | ||||||
| 	result := fromHex(input) |  | ||||||
| 	if bytes.Compare(expected, result) != 0 { |  | ||||||
| 		t.Errorf("Expected % x got % x", expected, result) |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @ -13,12 +13,6 @@ import ( | |||||||
| 
 | 
 | ||||||
| var qlogger = logger.NewLogger("QSHH") | var qlogger = logger.NewLogger("QSHH") | ||||||
| 
 | 
 | ||||||
| func fromHex(s string) []byte { |  | ||||||
| 	if len(s) > 1 { |  | ||||||
| 		return ethutil.Hex2Bytes(s[2:]) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| func toHex(b []byte) string { return "0x" + ethutil.Bytes2Hex(b) } | func toHex(b []byte) string { return "0x" + ethutil.Bytes2Hex(b) } | ||||||
| 
 | 
 | ||||||
| type Whisper struct { | type Whisper struct { | ||||||
| @ -39,15 +33,15 @@ func (self *Whisper) SetView(view qml.Object) { | |||||||
| func (self *Whisper) Post(payload []string, to, from string, topics []string, priority, ttl uint32) { | func (self *Whisper) Post(payload []string, to, from string, topics []string, priority, ttl uint32) { | ||||||
| 	var data []byte | 	var data []byte | ||||||
| 	for _, d := range payload { | 	for _, d := range payload { | ||||||
| 		data = append(data, fromHex(d)...) | 		data = append(data, ethutil.FromHex(d)...) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	pk := crypto.ToECDSAPub(fromHex(from)) | 	pk := crypto.ToECDSAPub(ethutil.FromHex(from)) | ||||||
| 	if key := self.Whisper.GetIdentity(pk); key != nil { | 	if key := self.Whisper.GetIdentity(pk); key != nil { | ||||||
| 		msg := whisper.NewMessage(data) | 		msg := whisper.NewMessage(data) | ||||||
| 		envelope, err := msg.Seal(time.Duration(priority*100000), whisper.Opts{ | 		envelope, err := msg.Seal(time.Duration(priority*100000), whisper.Opts{ | ||||||
| 			Ttl:    time.Duration(ttl) * time.Second, | 			Ttl:    time.Duration(ttl) * time.Second, | ||||||
| 			To:     crypto.ToECDSAPub(fromHex(to)), | 			To:     crypto.ToECDSAPub(ethutil.FromHex(to)), | ||||||
| 			From:   key, | 			From:   key, | ||||||
| 			Topics: whisper.TopicsFromString(topics...), | 			Topics: whisper.TopicsFromString(topics...), | ||||||
| 		}) | 		}) | ||||||
| @ -76,7 +70,7 @@ func (self *Whisper) NewIdentity() string { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (self *Whisper) HasIdentity(key string) bool { | func (self *Whisper) HasIdentity(key string) bool { | ||||||
| 	return self.Whisper.HasIdentity(crypto.ToECDSAPub(fromHex(key))) | 	return self.Whisper.HasIdentity(crypto.ToECDSAPub(ethutil.FromHex(key))) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (self *Whisper) Watch(opts map[string]interface{}, view *qml.Common) int { | func (self *Whisper) Watch(opts map[string]interface{}, view *qml.Common) int { | ||||||
| @ -106,10 +100,10 @@ func (self *Whisper) Messages(id int) (messages *ethutil.List) { | |||||||
| 
 | 
 | ||||||
| func filterFromMap(opts map[string]interface{}) (f whisper.Filter) { | func filterFromMap(opts map[string]interface{}) (f whisper.Filter) { | ||||||
| 	if to, ok := opts["to"].(string); ok { | 	if to, ok := opts["to"].(string); ok { | ||||||
| 		f.To = crypto.ToECDSAPub(fromHex(to)) | 		f.To = crypto.ToECDSAPub(ethutil.FromHex(to)) | ||||||
| 	} | 	} | ||||||
| 	if from, ok := opts["from"].(string); ok { | 	if from, ok := opts["from"].(string); ok { | ||||||
| 		f.From = crypto.ToECDSAPub(fromHex(from)) | 		f.From = crypto.ToECDSAPub(ethutil.FromHex(from)) | ||||||
| 	} | 	} | ||||||
| 	if topicList, ok := opts["topics"].(*qml.List); ok { | 	if topicList, ok := opts["topics"].(*qml.List); ok { | ||||||
| 		var topics []string | 		var topics []string | ||||||
|  | |||||||
| @ -1,6 +1,9 @@ | |||||||
| package xeth | package xeth | ||||||
| 
 | 
 | ||||||
| import "github.com/ethereum/go-ethereum/state" | import ( | ||||||
|  | 	"github.com/ethereum/go-ethereum/ethutil" | ||||||
|  | 	"github.com/ethereum/go-ethereum/state" | ||||||
|  | ) | ||||||
| 
 | 
 | ||||||
| type State struct { | type State struct { | ||||||
| 	xeth  *XEth | 	xeth  *XEth | ||||||
| @ -16,7 +19,7 @@ func (self *State) State() *state.StateDB { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (self *State) Get(addr string) *Object { | func (self *State) Get(addr string) *Object { | ||||||
| 	return &Object{self.state.GetStateObject(fromHex(addr))} | 	return &Object{self.state.GetStateObject(ethutil.FromHex(addr))} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (self *State) SafeGet(addr string) *Object { | func (self *State) SafeGet(addr string) *Object { | ||||||
| @ -24,9 +27,9 @@ func (self *State) SafeGet(addr string) *Object { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (self *State) safeGet(addr string) *state.StateObject { | func (self *State) safeGet(addr string) *state.StateObject { | ||||||
| 	object := self.state.GetStateObject(fromHex(addr)) | 	object := self.state.GetStateObject(ethutil.FromHex(addr)) | ||||||
| 	if object == nil { | 	if object == nil { | ||||||
| 		object = state.NewStateObject(fromHex(addr), self.xeth.eth.StateDb()) | 		object = state.NewStateObject(ethutil.FromHex(addr), self.xeth.eth.StateDb()) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return object | 	return object | ||||||
|  | |||||||
| @ -17,15 +17,6 @@ import ( | |||||||
| func toHex(b []byte) string { | func toHex(b []byte) string { | ||||||
| 	return "0x" + ethutil.Bytes2Hex(b) | 	return "0x" + ethutil.Bytes2Hex(b) | ||||||
| } | } | ||||||
| func fromHex(s string) []byte { |  | ||||||
| 	if len(s) > 1 { |  | ||||||
| 		if s[0:2] == "0x" { |  | ||||||
| 			s = s[2:] |  | ||||||
| 		} |  | ||||||
| 		return ethutil.Hex2Bytes(s) |  | ||||||
| 	} |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| type Object struct { | type Object struct { | ||||||
| 	*state.StateObject | 	*state.StateObject | ||||||
| @ -123,7 +114,7 @@ func (self *Block) ToString() string { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (self *Block) GetTransaction(hash string) *Transaction { | func (self *Block) GetTransaction(hash string) *Transaction { | ||||||
| 	tx := self.ref.Transaction(fromHex(hash)) | 	tx := self.ref.Transaction(ethutil.FromHex(hash)) | ||||||
| 	if tx == nil { | 	if tx == nil { | ||||||
| 		return nil | 		return nil | ||||||
| 	} | 	} | ||||||
|  | |||||||
| @ -5,6 +5,7 @@ import ( | |||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	"github.com/ethereum/go-ethereum/crypto" | 	"github.com/ethereum/go-ethereum/crypto" | ||||||
|  | 	"github.com/ethereum/go-ethereum/ethutil" | ||||||
| 	"github.com/ethereum/go-ethereum/logger" | 	"github.com/ethereum/go-ethereum/logger" | ||||||
| 	"github.com/ethereum/go-ethereum/whisper" | 	"github.com/ethereum/go-ethereum/whisper" | ||||||
| ) | ) | ||||||
| @ -28,12 +29,12 @@ func (self *Whisper) Post(payload string, to, from string, topics []string, prio | |||||||
| 		ttl = 100 | 		ttl = 100 | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	pk := crypto.ToECDSAPub(fromHex(from)) | 	pk := crypto.ToECDSAPub(ethutil.FromHex(from)) | ||||||
| 	if key := self.Whisper.GetIdentity(pk); key != nil || len(from) == 0 { | 	if key := self.Whisper.GetIdentity(pk); key != nil || len(from) == 0 { | ||||||
| 		msg := whisper.NewMessage(fromHex(payload)) | 		msg := whisper.NewMessage(ethutil.FromHex(payload)) | ||||||
| 		envelope, err := msg.Seal(time.Duration(priority*100000), whisper.Opts{ | 		envelope, err := msg.Seal(time.Duration(priority*100000), whisper.Opts{ | ||||||
| 			Ttl:    time.Duration(ttl) * time.Second, | 			Ttl:    time.Duration(ttl) * time.Second, | ||||||
| 			To:     crypto.ToECDSAPub(fromHex(to)), | 			To:     crypto.ToECDSAPub(ethutil.FromHex(to)), | ||||||
| 			From:   key, | 			From:   key, | ||||||
| 			Topics: whisper.TopicsFromString(topics...), | 			Topics: whisper.TopicsFromString(topics...), | ||||||
| 		}) | 		}) | ||||||
| @ -59,13 +60,13 @@ func (self *Whisper) NewIdentity() string { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (self *Whisper) HasIdentity(key string) bool { | func (self *Whisper) HasIdentity(key string) bool { | ||||||
| 	return self.Whisper.HasIdentity(crypto.ToECDSAPub(fromHex(key))) | 	return self.Whisper.HasIdentity(crypto.ToECDSAPub(ethutil.FromHex(key))) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (self *Whisper) Watch(opts *Options) int { | func (self *Whisper) Watch(opts *Options) int { | ||||||
| 	filter := whisper.Filter{ | 	filter := whisper.Filter{ | ||||||
| 		To:     crypto.ToECDSAPub(fromHex(opts.To)), | 		To:     crypto.ToECDSAPub(ethutil.FromHex(opts.To)), | ||||||
| 		From:   crypto.ToECDSAPub(fromHex(opts.From)), | 		From:   crypto.ToECDSAPub(ethutil.FromHex(opts.From)), | ||||||
| 		Topics: whisper.TopicsFromString(opts.Topics...), | 		Topics: whisper.TopicsFromString(opts.Topics...), | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										26
									
								
								xeth/xeth.go
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								xeth/xeth.go
									
									
									
									
									
								
							| @ -116,21 +116,21 @@ func (self *XEth) State() *State { return self.state } | |||||||
| func (self *XEth) Whisper() *Whisper { return self.whisper } | func (self *XEth) Whisper() *Whisper { return self.whisper } | ||||||
| 
 | 
 | ||||||
| func (self *XEth) BlockByHash(strHash string) *Block { | func (self *XEth) BlockByHash(strHash string) *Block { | ||||||
| 	hash := fromHex(strHash) | 	hash := ethutil.FromHex(strHash) | ||||||
| 	block := self.chainManager.GetBlock(hash) | 	block := self.chainManager.GetBlock(hash) | ||||||
| 
 | 
 | ||||||
| 	return NewBlock(block) | 	return NewBlock(block) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (self *XEth) EthBlockByHash(strHash string) *types.Block { | func (self *XEth) EthBlockByHash(strHash string) *types.Block { | ||||||
| 	hash := fromHex(strHash) | 	hash := ethutil.FromHex(strHash) | ||||||
| 	block := self.chainManager.GetBlock(hash) | 	block := self.chainManager.GetBlock(hash) | ||||||
| 
 | 
 | ||||||
| 	return block | 	return block | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (self *XEth) EthTransactionByHash(hash string) *types.Transaction { | func (self *XEth) EthTransactionByHash(hash string) *types.Transaction { | ||||||
| 	data, _ := self.eth.ExtraDb().Get(fromHex(hash)) | 	data, _ := self.eth.ExtraDb().Get(ethutil.FromHex(hash)) | ||||||
| 	if len(data) != 0 { | 	if len(data) != 0 { | ||||||
| 		return types.NewTransactionFromBytes(data) | 		return types.NewTransactionFromBytes(data) | ||||||
| 	} | 	} | ||||||
| @ -233,7 +233,7 @@ func (self *XEth) IsContract(address string) bool { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (self *XEth) SecretToAddress(key string) string { | func (self *XEth) SecretToAddress(key string) string { | ||||||
| 	pair, err := crypto.NewKeyPairFromSec(fromHex(key)) | 	pair, err := crypto.NewKeyPairFromSec(ethutil.FromHex(key)) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return "" | 		return "" | ||||||
| 	} | 	} | ||||||
| @ -273,7 +273,7 @@ func (self *XEth) FromAscii(str string) string { | |||||||
| 		str = str[2:] | 		str = str[2:] | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return string(bytes.Trim(fromHex(str), "\x00")) | 	return string(bytes.Trim(ethutil.FromHex(str), "\x00")) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (self *XEth) FromNumber(str string) string { | func (self *XEth) FromNumber(str string) string { | ||||||
| @ -281,11 +281,11 @@ func (self *XEth) FromNumber(str string) string { | |||||||
| 		str = str[2:] | 		str = str[2:] | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return ethutil.BigD(fromHex(str)).String() | 	return ethutil.BigD(ethutil.FromHex(str)).String() | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (self *XEth) PushTx(encodedTx string) (string, error) { | func (self *XEth) PushTx(encodedTx string) (string, error) { | ||||||
| 	tx := types.NewTransactionFromBytes(fromHex(encodedTx)) | 	tx := types.NewTransactionFromBytes(ethutil.FromHex(encodedTx)) | ||||||
| 	err := self.eth.TxPool().Add(tx) | 	err := self.eth.TxPool().Add(tx) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return "", err | 		return "", err | ||||||
| @ -306,12 +306,12 @@ var ( | |||||||
| func (self *XEth) Call(fromStr, toStr, valueStr, gasStr, gasPriceStr, dataStr string) (string, error) { | func (self *XEth) Call(fromStr, toStr, valueStr, gasStr, gasPriceStr, dataStr string) (string, error) { | ||||||
| 	statedb := self.State().State() //self.chainManager.TransState()
 | 	statedb := self.State().State() //self.chainManager.TransState()
 | ||||||
| 	msg := callmsg{ | 	msg := callmsg{ | ||||||
| 		from:     statedb.GetOrNewStateObject(fromHex(fromStr)), | 		from:     statedb.GetOrNewStateObject(ethutil.FromHex(fromStr)), | ||||||
| 		to:       fromHex(toStr), | 		to:       ethutil.FromHex(toStr), | ||||||
| 		gas:      ethutil.Big(gasStr), | 		gas:      ethutil.Big(gasStr), | ||||||
| 		gasPrice: ethutil.Big(gasPriceStr), | 		gasPrice: ethutil.Big(gasPriceStr), | ||||||
| 		value:    ethutil.Big(valueStr), | 		value:    ethutil.Big(valueStr), | ||||||
| 		data:     fromHex(dataStr), | 		data:     ethutil.FromHex(dataStr), | ||||||
| 	} | 	} | ||||||
| 	if msg.gas.Cmp(big.NewInt(0)) == 0 { | 	if msg.gas.Cmp(big.NewInt(0)) == 0 { | ||||||
| 		msg.gas = defaultGas | 		msg.gas = defaultGas | ||||||
| @ -339,9 +339,9 @@ func (self *XEth) Transact(fromStr, toStr, valueStr, gasStr, gasPriceStr, codeSt | |||||||
| 		contractCreation bool | 		contractCreation bool | ||||||
| 	) | 	) | ||||||
| 
 | 
 | ||||||
| 	from = fromHex(fromStr) | 	from = ethutil.FromHex(fromStr) | ||||||
| 	data = fromHex(codeStr) | 	data = ethutil.FromHex(codeStr) | ||||||
| 	to = fromHex(toStr) | 	to = ethutil.FromHex(toStr) | ||||||
| 	if len(to) == 0 { | 	if len(to) == 0 { | ||||||
| 		contractCreation = true | 		contractCreation = true | ||||||
| 	} | 	} | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user