parent
							
								
									47e6b2cef8
								
							
						
					
					
						commit
						a26aecdfdb
					
				| @ -33,73 +33,73 @@ func (self *WebSocketServer) Serv() { | ||||
| 			data := ethutil.NewValue(msg.Args) | ||||
| 			bcode, err := ethutil.Compile(data.Get(0).Str(), false) | ||||
| 			if err != nil { | ||||
| 				c.Write(args(nil, err.Error()), msg.Seed) | ||||
| 				c.Write(args(nil, err.Error()), msg.Id) | ||||
| 			} | ||||
| 
 | ||||
| 			code := ethutil.Bytes2Hex(bcode) | ||||
| 			c.Write(args(code, nil), msg.Seed) | ||||
| 		case "getBlockByNumber": | ||||
| 			c.Write(args(code, nil), msg.Id) | ||||
| 		case "eth_blockByNumber": | ||||
| 			args := msg.Arguments() | ||||
| 
 | ||||
| 			block := pipe.BlockByNumber(int32(args.Get(0).Uint())) | ||||
| 			c.Write(block, msg.Seed) | ||||
| 			c.Write(block, msg.Id) | ||||
| 
 | ||||
| 		case "getKey": | ||||
| 			c.Write(pipe.Key().PrivateKey, msg.Seed) | ||||
| 		case "transact": | ||||
| 		case "eth_blockByHash": | ||||
| 			args := msg.Arguments() | ||||
| 
 | ||||
| 			c.Write(pipe.BlockByHash(args.Get(0).Str()), msg.Id) | ||||
| 
 | ||||
| 		case "eth_transact": | ||||
| 			if mp, ok := msg.Args[0].(map[string]interface{}); ok { | ||||
| 				object := mapToTxParams(mp) | ||||
| 				c.Write( | ||||
| 					args(pipe.Transact(object["from"], object["to"], object["value"], object["gas"], object["gasPrice"], object["data"])), | ||||
| 					msg.Seed, | ||||
| 					args(pipe.Transact(pipe.Key().PrivateKey, object["to"], object["value"], object["gas"], object["gasPrice"], object["data"])), | ||||
| 					msg.Id, | ||||
| 				) | ||||
| 
 | ||||
| 			} | ||||
| 		case "getCoinBase": | ||||
| 			c.Write(pipe.CoinBase(), msg.Seed) | ||||
| 		case "eth_gasPrice": | ||||
| 			c.Write("10000000000000", msg.Id) | ||||
| 		case "eth_coinbase": | ||||
| 			c.Write(pipe.CoinBase(), msg.Id) | ||||
| 
 | ||||
| 		case "getIsListening": | ||||
| 			c.Write(pipe.IsListening(), msg.Seed) | ||||
| 		case "eth_listening": | ||||
| 			c.Write(pipe.IsListening(), msg.Id) | ||||
| 
 | ||||
| 		case "getIsMining": | ||||
| 			c.Write(pipe.IsMining(), msg.Seed) | ||||
| 		case "eth_mining": | ||||
| 			c.Write(pipe.IsMining(), msg.Id) | ||||
| 
 | ||||
| 		case "getPeerCoint": | ||||
| 			c.Write(pipe.PeerCount(), msg.Seed) | ||||
| 		case "eth_peerCount": | ||||
| 			c.Write(pipe.PeerCount(), msg.Id) | ||||
| 
 | ||||
| 		case "getCountAt": | ||||
| 		case "eth_countAt": | ||||
| 			args := msg.Arguments() | ||||
| 
 | ||||
| 			c.Write(pipe.TxCountAt(args.Get(0).Str()), msg.Seed) | ||||
| 			c.Write(pipe.TxCountAt(args.Get(0).Str()), msg.Id) | ||||
| 
 | ||||
| 		case "getCodeAt": | ||||
| 		case "eth_codeAt": | ||||
| 			args := msg.Arguments() | ||||
| 
 | ||||
| 			c.Write(len(pipe.CodeAt(args.Get(0).Str())), msg.Seed) | ||||
| 			c.Write(len(pipe.CodeAt(args.Get(0).Str())), msg.Id) | ||||
| 
 | ||||
| 		case "getBlockByHash": | ||||
| 		case "eth_storageAt": | ||||
| 			args := msg.Arguments() | ||||
| 
 | ||||
| 			c.Write(pipe.BlockByHash(args.Get(0).Str()), msg.Seed) | ||||
| 			c.Write(pipe.StorageAt(args.Get(0).Str(), args.Get(1).Str()), msg.Id) | ||||
| 
 | ||||
| 		case "getStorageAt": | ||||
| 		case "eth_balanceAt": | ||||
| 			args := msg.Arguments() | ||||
| 
 | ||||
| 			c.Write(pipe.StorageAt(args.Get(0).Str(), args.Get(1).Str()), msg.Seed) | ||||
| 			c.Write(pipe.BalanceAt(args.Get(0).Str()), msg.Id) | ||||
| 
 | ||||
| 		case "getBalanceAt": | ||||
| 		case "eth_secretToAddress": | ||||
| 			args := msg.Arguments() | ||||
| 
 | ||||
| 			c.Write(pipe.BalanceAt(args.Get(0).Str()), msg.Seed) | ||||
| 			c.Write(pipe.SecretToAddress(args.Get(0).Str()), msg.Id) | ||||
| 
 | ||||
| 		case "getSecretToAddress": | ||||
| 			args := msg.Arguments() | ||||
| 
 | ||||
| 			c.Write(pipe.SecretToAddress(args.Get(0).Str()), msg.Seed) | ||||
| 
 | ||||
| 		case "newFilter": | ||||
| 		case "newFilterString": | ||||
| 		case "messages": | ||||
| 		case "eth_newFilter": | ||||
| 		case "eth_newFilterString": | ||||
| 		case "eth_messages": | ||||
| 			// TODO
 | ||||
| 		} | ||||
| 
 | ||||
|  | ||||
| @ -50,8 +50,8 @@ func (c *Client) Conn() *ws.Conn { | ||||
| 	return c.ws | ||||
| } | ||||
| 
 | ||||
| func (c *Client) Write(data interface{}, seed int) { | ||||
| 	msg := &Message{Seed: seed, Data: data} | ||||
| func (c *Client) Write(data interface{}, id int) { | ||||
| 	msg := &Message{Id: id, Data: data} | ||||
| 	select { | ||||
| 	case c.ch <- msg: | ||||
| 	default: | ||||
| @ -73,7 +73,6 @@ func (c *Client) Listen() { | ||||
| 
 | ||||
| // Listen write request via chanel
 | ||||
| func (c *Client) listenWrite() { | ||||
| 	wslogger.Debugln("Listening write to client") | ||||
| 	for { | ||||
| 		select { | ||||
| 
 | ||||
| @ -93,7 +92,6 @@ func (c *Client) listenWrite() { | ||||
| 
 | ||||
| // Listen read request via chanel
 | ||||
| func (c *Client) listenRead() { | ||||
| 	wslogger.Debugln("Listening read from client") | ||||
| 	for { | ||||
| 		select { | ||||
| 
 | ||||
|  | ||||
| @ -5,7 +5,7 @@ import "github.com/ethereum/go-ethereum/ethutil" | ||||
| type Message struct { | ||||
| 	Call string        `json:"call"` | ||||
| 	Args []interface{} `json:"args"` | ||||
| 	Seed int           `json:"seed"` | ||||
| 	Id   int           `json:"_id"` | ||||
| 	Data interface{}   `json:"data"` | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -81,8 +81,6 @@ func (s *Server) MessageFunc(f MsgFunc) { | ||||
| // Listen and serve.
 | ||||
| // It serves client connection and broadcast request.
 | ||||
| func (s *Server) Listen() { | ||||
| 	wslogger.Debugln("Listening server...") | ||||
| 
 | ||||
| 	// ws handler
 | ||||
| 	onConnected := func(ws *ws.Conn) { | ||||
| 		defer func() { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user