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
 | 
						|
	}
 | 
						|
}
 | 
						|
*/
 |