aboutsummaryrefslogtreecommitdiffstats
path: root/xeth/whisper_message.go
diff options
context:
space:
mode:
Diffstat (limited to 'xeth/whisper_message.go')
-rw-r--r--xeth/whisper_message.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/xeth/whisper_message.go b/xeth/whisper_message.go
new file mode 100644
index 000000000..14796cfbc
--- /dev/null
+++ b/xeth/whisper_message.go
@@ -0,0 +1,31 @@
+// Contains the external API representation of a whisper message.
+
+package xeth
+
+import (
+ "github.com/ethereum/go-ethereum/common"
+ "github.com/ethereum/go-ethereum/crypto"
+ "github.com/ethereum/go-ethereum/whisper"
+)
+
+// WhisperMessage is the external API representation of a whisper.Message.
+type WhisperMessage struct {
+ ref *whisper.Message
+
+ Payload string `json:"payload"`
+ To string `json:"to"`
+ From string `json:"from"`
+ Sent int64 `json:"sent"`
+}
+
+// NewWhisperMessage converts an internal message into an API version.
+func NewWhisperMessage(message *whisper.Message) WhisperMessage {
+ return WhisperMessage{
+ ref: message,
+
+ Payload: common.ToHex(message.Payload),
+ From: common.ToHex(crypto.FromECDSAPub(message.Recover())),
+ To: common.ToHex(crypto.FromECDSAPub(message.To)),
+ Sent: message.Sent,
+ }
+}