76 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package rpc
 | |
| 
 | |
| /*
 | |
| func pack(id int, v ...interface{}) Message {
 | |
| 	return Message{Data: v, Id: id}
 | |
| }
 | |
| 
 | |
| func WriteOn(msg *Message, writer io.Writer) {
 | |
| 	//msg := &Message{Seed: seed, Data: data}
 | |
| 
 | |
| 	switch msg.Call {
 | |
| 	case "compile":
 | |
| 		data := ethutil.NewValue(msg.Args)
 | |
| 		bcode, err := ethutil.Compile(data.Get(0).Str(), false)
 | |
| 		if err != nil {
 | |
| 			JSON.Send(writer, pack(msg.Id, err.Error()))
 | |
| 		}
 | |
| 
 | |
| 		code := ethutil.Bytes2Hex(bcode)
 | |
| 
 | |
| 		JSON.Send(writer, pack(msg.Id, code, nil))
 | |
| 	case "block":
 | |
| 		args := msg.Arguments()
 | |
| 
 | |
| 		block := pipe.BlockByNumber(int32(args.Get(0).Uint()))
 | |
| 
 | |
| 		JSON.Send(writer, pack(msg.Id, block))
 | |
| 	case "transact":
 | |
| 		if mp, ok := msg.Args[0].(map[string]interface{}); ok {
 | |
| 			object := mapToTxParams(mp)
 | |
| 			JSON.Send(
 | |
| 				writer,
 | |
| 				pack(msg.Id, args(pipe.Transact(object["from"], object["to"], object["value"], object["gas"], object["gasPrice"], object["data"]))),
 | |
| 			)
 | |
| 
 | |
| 		}
 | |
| 	case "coinbase":
 | |
| 		JSON.Send(writer, pack(msg.Id, pipe.CoinBase(), msg.Seed))
 | |
| 
 | |
| 	case "listening":
 | |
| 		JSON.Send(writer, pack(msg.Id, pipe.IsListening()))
 | |
| 
 | |
| 	case "mining":
 | |
| 		JSON.Send(writer, pack(msg.Id, pipe.IsMining()))
 | |
| 
 | |
| 	case "peerCoint":
 | |
| 		JSON.Send(writer, pack(msg.Id, pipe.PeerCount()))
 | |
| 
 | |
| 	case "countAt":
 | |
| 		args := msg.Arguments()
 | |
| 
 | |
| 		JSON.Send(writer, pack(msg.Id, pipe.TxCountAt(args.Get(0).Str())))
 | |
| 
 | |
| 	case "codeAt":
 | |
| 		args := msg.Arguments()
 | |
| 
 | |
| 		JSON.Send(writer, pack(msg.Id, len(pipe.CodeAt(args.Get(0).Str()))))
 | |
| 
 | |
| 	case "stateAt":
 | |
| 		args := msg.Arguments()
 | |
| 
 | |
| 		JSON.Send(writer, pack(msg.Id, pipe.StorageAt(args.Get(0).Str(), args.Get(1).Str())))
 | |
| 
 | |
| 	case "balanceAt":
 | |
| 		args := msg.Arguments()
 | |
| 
 | |
| 		JSON.Send(writer, pack(msg.Id, pipe.BalanceAt(args.Get(0).Str())))
 | |
| 
 | |
| 	case "newFilter":
 | |
| 	case "newFilterString":
 | |
| 	case "messages":
 | |
| 		// TODO
 | |
| 	}
 | |
| }
 | |
| */
 |