forked from cerc-io/ipld-eth-server
a68f277066
* Save logs to database * Save multiple logs to db * Add block number parameter to `FindLogs`
45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
|
|
"flag"
|
|
|
|
"github.com/8thlight/vulcanizedb/cmd"
|
|
"github.com/8thlight/vulcanizedb/pkg/core"
|
|
"github.com/8thlight/vulcanizedb/pkg/geth"
|
|
)
|
|
|
|
func main() {
|
|
environment := flag.String("environment", "", "Environment name")
|
|
contractHash := flag.String("contract-hash", "", "Contract hash to show summary")
|
|
_blockNumber := flag.Int64("block-number", -1, "Block number of summary")
|
|
flag.Parse()
|
|
|
|
config := cmd.LoadConfig(*environment)
|
|
blockchain := geth.NewGethBlockchain(config.Client.IPCPath)
|
|
repository := cmd.LoadPostgres(config.Database, blockchain.Node())
|
|
blockNumber := cmd.RequestedBlockNumber(_blockNumber)
|
|
|
|
logs, err := blockchain.GetLogs(core.Contract{Hash: *contractHash}, blockNumber)
|
|
if err != nil {
|
|
log.Fatalln(err)
|
|
}
|
|
repository.CreateLogs(logs)
|
|
for _, l := range logs {
|
|
fmt.Println("\tAddress: ", l.Address)
|
|
fmt.Println("\tTxHash: ", l.TxHash)
|
|
fmt.Println("\tBlockNumber ", l.BlockNumber)
|
|
fmt.Println("\tIndex ", l.Index)
|
|
fmt.Println("\tTopics: ")
|
|
for i, topic := range l.Topics {
|
|
fmt.Printf("\t\tTopic %d: %s\n", i, topic)
|
|
}
|
|
fmt.Printf("\tData: %s", l.Data)
|
|
fmt.Print("\n\n")
|
|
|
|
}
|
|
|
|
}
|