54 lines
1.1 KiB
Go
54 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"strconv"
|
|
"strings"
|
|
"time"
|
|
|
|
"github.com/wormhole-foundation/wormhole-explorer/fly/storage"
|
|
"github.com/wormhole-foundation/wormhole/sdk/vaa"
|
|
)
|
|
|
|
func workerTxHash(ctx context.Context, repo *storage.Repository, line string) error {
|
|
tokens := strings.Split(line, ",")
|
|
if len(tokens) != 4 {
|
|
return fmt.Errorf("invalid line: %s", line)
|
|
}
|
|
|
|
intChainID, err := strconv.ParseInt(tokens[0], 10, 64)
|
|
if err != nil {
|
|
return fmt.Errorf("error parsing chain id: %v\n", err)
|
|
}
|
|
|
|
//remove 0x from txhash
|
|
if len(tokens[3]) < 3 {
|
|
return fmt.Errorf("invalid txhash: %s", tokens[3])
|
|
}
|
|
// if token starts with 0x remove it
|
|
if tokens[3][:2] == "0x" {
|
|
tokens[3] = tokens[3][2:]
|
|
}
|
|
|
|
txHash := strings.ToLower(tokens[3])
|
|
|
|
now := time.Now()
|
|
|
|
vaaTxHash := storage.VaaIdTxHashUpdate{
|
|
ChainID: vaa.ChainID(intChainID),
|
|
Emitter: tokens[1],
|
|
Sequence: tokens[2],
|
|
TxHash: txHash,
|
|
UpdatedAt: &now,
|
|
}
|
|
|
|
err = repo.UpsertTxHash(ctx, vaaTxHash)
|
|
if err != nil {
|
|
return fmt.Errorf("error upserting vaa: %v\n", err)
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|