forked from cerc-io/ipld-eth-server
Add topics type
This commit is contained in:
@@ -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
@@ -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
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user