Add topics type

This commit is contained in:
Matt Krump
2018-01-15 14:49:29 -06:00
parent 50f00b80c1
commit 9ee13e715d
8 changed files with 80 additions and 64 deletions
+1 -1
View File
@@ -57,7 +57,7 @@ func (blockchain *Blockchain) GetLogs(contract core.Contract, startingBlockNumbe
if err != nil {
return []core.Log{}, err
}
logs := GethLogsToCoreLogs(gethLogs)
logs := LogsToCoreLogs(gethLogs)
return logs, nil
}
+19 -12
View File
@@ -4,16 +4,31 @@ import (
"strings"
"github.com/8thlight/vulcanizedb/pkg/core"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common/hexutil"
"github.com/ethereum/go-ethereum/core/types"
)
func LogToCoreLog(gethLog types.Log) core.Log {
topics := gethLog.Topics
var hexTopics = make(map[int]string)
func LogsToCoreLogs(gethLogs []types.Log) []core.Log {
var logs []core.Log
for _, log := range gethLogs {
log := LogToCoreLog(log)
logs = append(logs, log)
}
return logs
}
func MakeTopics(topics []common.Hash) core.Topics {
var hexTopics core.Topics
for i, topic := range topics {
hexTopics[i] = topic.Hex()
}
return hexTopics
}
func LogToCoreLog(gethLog types.Log) core.Log {
topics := gethLog.Topics
hexTopics := MakeTopics(topics)
return core.Log{
Address: strings.ToLower(gethLog.Address.Hex()),
@@ -22,14 +37,6 @@ func LogToCoreLog(gethLog types.Log) core.Log {
TxHash: gethLog.TxHash.Hex(),
Index: int64(gethLog.Index),
Data: hexutil.Encode(gethLog.Data),
Removed: gethLog.Removed,
}
}
func GethLogsToCoreLogs(gethLogs []types.Log) []core.Log {
var logs []core.Log
for _, log := range gethLogs {
log := LogToCoreLog(log)
logs = append(logs, log)
}
return logs
}
+5 -2
View File
@@ -27,6 +27,7 @@ var _ = Describe("Conversion of GethLog to core.Log", func() {
common.HexToHash("0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"),
common.HexToHash("0x00000000000000000000000080b2c9d7cbbf30a1b0fc8983c647d754c6525615"),
},
Removed: true,
}
expected := core.Log{
@@ -35,10 +36,11 @@ var _ = Describe("Conversion of GethLog to core.Log", func() {
Data: hexutil.Encode(gethLog.Data),
TxHash: gethLog.TxHash.Hex(),
Index: 2,
Topics: map[int]string{
Topics: core.Topics{
0: common.HexToHash("0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef").Hex(),
1: common.HexToHash("0x00000000000000000000000080b2c9d7cbbf30a1b0fc8983c647d754c6525615").Hex(),
},
Removed: gethLog.Removed,
}
coreLog := geth.LogToCoreLog(gethLog)
@@ -46,6 +48,7 @@ var _ = Describe("Conversion of GethLog to core.Log", func() {
Expect(coreLog.Address).To(Equal(expected.Address))
Expect(coreLog.BlockNumber).To(Equal(expected.BlockNumber))
Expect(coreLog.Data).To(Equal(expected.Data))
Expect(coreLog.Removed).To(Equal(expected.Removed))
Expect(coreLog.Index).To(Equal(expected.Index))
Expect(coreLog.Topics[0]).To(Equal(expected.Topics[0]))
Expect(coreLog.Topics[1]).To(Equal(expected.Topics[1]))
@@ -84,7 +87,7 @@ var _ = Describe("Conversion of GethLog to core.Log", func() {
expectedOne := geth.LogToCoreLog(gethLogOne)
expectedTwo := geth.LogToCoreLog(gethLogTwo)
coreLogs := geth.GethLogsToCoreLogs([]types.Log{gethLogOne, gethLogTwo})
coreLogs := geth.LogsToCoreLogs([]types.Log{gethLogOne, gethLogTwo})
Expect(len(coreLogs)).To(Equal(2))
Expect(coreLogs[0]).To(Equal(expectedOne))