forked from cerc-io/ipld-eth-server
Add fk constraint on logs
This commit is contained in:
@@ -5,6 +5,8 @@ import (
|
||||
|
||||
"strings"
|
||||
|
||||
"log"
|
||||
|
||||
"github.com/8thlight/vulcanizedb/pkg/core"
|
||||
"github.com/8thlight/vulcanizedb/pkg/geth/node"
|
||||
"github.com/ethereum/go-ethereum"
|
||||
@@ -25,7 +27,10 @@ type Blockchain struct {
|
||||
|
||||
func NewBlockchain(ipcPath string) *Blockchain {
|
||||
blockchain := Blockchain{}
|
||||
rpcClient, _ := rpc.Dial(ipcPath)
|
||||
rpcClient, err := rpc.Dial(ipcPath)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
client := ethclient.NewClient(rpcClient)
|
||||
blockchain.node = node.Info(rpcClient)
|
||||
if infura := isInfuraNode(ipcPath); infura {
|
||||
@@ -57,7 +62,7 @@ func (blockchain *Blockchain) GetLogs(contract core.Contract, startingBlockNumbe
|
||||
if err != nil {
|
||||
return []core.Log{}, err
|
||||
}
|
||||
logs := LogsToCoreLogs(gethLogs)
|
||||
logs := ToCoreLogs(gethLogs)
|
||||
return logs, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -9,16 +9,16 @@ import (
|
||||
"github.com/ethereum/go-ethereum/core/types"
|
||||
)
|
||||
|
||||
func LogsToCoreLogs(gethLogs []types.Log) []core.Log {
|
||||
func ToCoreLogs(gethLogs []types.Log) []core.Log {
|
||||
var logs []core.Log
|
||||
for _, log := range gethLogs {
|
||||
log := LogToCoreLog(log)
|
||||
log := ToCoreLog(log)
|
||||
logs = append(logs, log)
|
||||
}
|
||||
return logs
|
||||
}
|
||||
|
||||
func MakeTopics(topics []common.Hash) core.Topics {
|
||||
func makeTopics(topics []common.Hash) core.Topics {
|
||||
var hexTopics core.Topics
|
||||
for i, topic := range topics {
|
||||
hexTopics[i] = topic.Hex()
|
||||
@@ -26,9 +26,9 @@ func MakeTopics(topics []common.Hash) core.Topics {
|
||||
return hexTopics
|
||||
}
|
||||
|
||||
func LogToCoreLog(gethLog types.Log) core.Log {
|
||||
func ToCoreLog(gethLog types.Log) core.Log {
|
||||
topics := gethLog.Topics
|
||||
hexTopics := MakeTopics(topics)
|
||||
hexTopics := makeTopics(topics)
|
||||
return core.Log{
|
||||
Address: strings.ToLower(gethLog.Address.Hex()),
|
||||
|
||||
@@ -37,6 +37,5 @@ func LogToCoreLog(gethLog types.Log) core.Log {
|
||||
TxHash: gethLog.TxHash.Hex(),
|
||||
Index: int64(gethLog.Index),
|
||||
Data: hexutil.Encode(gethLog.Data),
|
||||
Removed: gethLog.Removed,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,6 @@ var _ = Describe("Conversion of GethLog to core.Log", func() {
|
||||
common.HexToHash("0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"),
|
||||
common.HexToHash("0x00000000000000000000000080b2c9d7cbbf30a1b0fc8983c647d754c6525615"),
|
||||
},
|
||||
Removed: true,
|
||||
}
|
||||
|
||||
expected := core.Log{
|
||||
@@ -37,18 +36,16 @@ var _ = Describe("Conversion of GethLog to core.Log", func() {
|
||||
TxHash: gethLog.TxHash.Hex(),
|
||||
Index: 2,
|
||||
Topics: core.Topics{
|
||||
0: common.HexToHash("0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef").Hex(),
|
||||
1: common.HexToHash("0x00000000000000000000000080b2c9d7cbbf30a1b0fc8983c647d754c6525615").Hex(),
|
||||
gethLog.Topics[0].Hex(),
|
||||
gethLog.Topics[1].Hex(),
|
||||
},
|
||||
Removed: gethLog.Removed,
|
||||
}
|
||||
|
||||
coreLog := geth.LogToCoreLog(gethLog)
|
||||
coreLog := geth.ToCoreLog(gethLog)
|
||||
|
||||
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,10 +81,10 @@ var _ = Describe("Conversion of GethLog to core.Log", func() {
|
||||
},
|
||||
}
|
||||
|
||||
expectedOne := geth.LogToCoreLog(gethLogOne)
|
||||
expectedTwo := geth.LogToCoreLog(gethLogTwo)
|
||||
expectedOne := geth.ToCoreLog(gethLogOne)
|
||||
expectedTwo := geth.ToCoreLog(gethLogTwo)
|
||||
|
||||
coreLogs := geth.LogsToCoreLogs([]types.Log{gethLogOne, gethLogTwo})
|
||||
coreLogs := geth.ToCoreLogs([]types.Log{gethLogOne, gethLogTwo})
|
||||
|
||||
Expect(len(coreLogs)).To(Equal(2))
|
||||
Expect(coreLogs[0]).To(Equal(expectedOne))
|
||||
|
||||
@@ -49,7 +49,7 @@ func setContractAddress(gethReceipt *types.Receipt) string {
|
||||
func dereferenceLogs(gethReceipt *types.Receipt) []core.Log {
|
||||
logs := []core.Log{}
|
||||
for _, log := range gethReceipt.Logs {
|
||||
logs = append(logs, LogToCoreLog(*log))
|
||||
logs = append(logs, ToCoreLog(*log))
|
||||
}
|
||||
return logs
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user