diff --git a/ship_processor.go b/ship_processor.go index 49c5e75..bd4c138 100644 --- a/ship_processor.go +++ b/ship_processor.go @@ -2,12 +2,12 @@ package main import ( "encoding/hex" - "encoding/json" log "github.com/sirupsen/logrus" "eosio-ship-trace-reader/abi" "eosio-ship-trace-reader/transport" + "eosio-ship-trace-reader/transport/message" "github.com/eoscanada/eos-go/ship" ) @@ -17,17 +17,6 @@ type ShipReader struct { publisher transport.Publisher } -func encodeMessage(v interface{}) ([]byte, bool) { - payload, err := json.Marshal(v) - if err != nil { - log.WithError(err). - WithField("v", v). - Warn("Failed to encode message to json") - return nil, false - } - return payload, true -} - func (reader *ShipReader) queueMessage(channel transport.ChannelInterface, payload []byte) bool { key := reader.ns.NewKey(channel) err := reader.publisher.Publish(key.String(), payload) @@ -39,7 +28,7 @@ func (reader *ShipReader) queueMessage(channel transport.ChannelInterface, paylo } func (reader *ShipReader) encodeQueue(channel transport.ChannelInterface, v interface{}) bool { - if payload, ok := encodeMessage(v); ok { + if payload, ok := message.Encode(v); ok { if reader.queueMessage(channel, payload) { return true } @@ -96,7 +85,7 @@ func (reader *ShipReader) processTraces(traces []*ship.TransactionTraceV0) { log.WithError(err).Errorf("Failed to get abi for contract %s", act_trace.Act.Account) } - payload, ok := encodeMessage(act) + payload, ok := message.Encode(act) if !ok { continue } diff --git a/transport/message/encoder.go b/transport/message/encoder.go new file mode 100644 index 0000000..47f9032 --- /dev/null +++ b/transport/message/encoder.go @@ -0,0 +1,18 @@ +package message + +import ( + "encoding/json" + + log "github.com/sirupsen/logrus" +) + +func Encode(v interface{}) ([]byte, bool) { + payload, err := json.Marshal(v) + if err != nil { + log.WithError(err). + WithField("v", v). + Warn("Failed to encode message to json") + return nil, false + } + return payload, true +}