Move loadGuardianKey and ethLockupProcessor out of main.go
This commit is contained in:
parent
7903402fa6
commit
760d5541b7
|
@ -0,0 +1,30 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"crypto/ecdsa"
|
||||||
|
"encoding/hex"
|
||||||
|
|
||||||
|
"go.uber.org/zap"
|
||||||
|
|
||||||
|
"github.com/certusone/wormhole/bridge/pkg/common"
|
||||||
|
"github.com/certusone/wormhole/bridge/pkg/supervisor"
|
||||||
|
)
|
||||||
|
|
||||||
|
func ethLockupProcessor(ec chan *common.ChainLock, gk *ecdsa.PrivateKey) func(ctx context.Context) error {
|
||||||
|
return func(ctx context.Context) error {
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-ctx.Done():
|
||||||
|
return ctx.Err()
|
||||||
|
case k := <-ec:
|
||||||
|
supervisor.Logger(ctx).Info("lockup confirmed",
|
||||||
|
zap.String("source", hex.EncodeToString(k.SourceAddress[:])),
|
||||||
|
zap.String("target", hex.EncodeToString(k.TargetAddress[:])),
|
||||||
|
zap.String("amount", k.Amount.String()),
|
||||||
|
zap.String("hash", hex.EncodeToString(k.Hash())),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,7 +3,6 @@ package main
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"crypto/ecdsa"
|
"crypto/ecdsa"
|
||||||
"encoding/hex"
|
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
@ -57,6 +56,28 @@ func rootLoggerName() string {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func loadGuardianKey(logger *zap.Logger) *ecdsa.PrivateKey {
|
||||||
|
var gk *ecdsa.PrivateKey
|
||||||
|
|
||||||
|
if *unsafeDevMode {
|
||||||
|
// Figure out our devnet index
|
||||||
|
idx, err := getDevnetIndex()
|
||||||
|
if err != nil {
|
||||||
|
logger.Fatal("Failed to parse hostname - are we running in devnet?")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Generate guardian key
|
||||||
|
gk = deterministicKeyByIndex(crypto.S256(), uint64(idx))
|
||||||
|
} else {
|
||||||
|
panic("not implemented") // TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.Info("Loaded guardian key", zap.String(
|
||||||
|
"address", crypto.PubkeyToAddress(gk.PublicKey).String()))
|
||||||
|
|
||||||
|
return gk
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
|
@ -94,24 +115,8 @@ func main() {
|
||||||
|
|
||||||
ethContractAddr := eth_common.HexToAddress(*ethContract)
|
ethContractAddr := eth_common.HexToAddress(*ethContract)
|
||||||
|
|
||||||
// Guardian key initialization
|
// Guardian key
|
||||||
var gk *ecdsa.PrivateKey
|
gk := loadGuardianKey(logger)
|
||||||
|
|
||||||
if *unsafeDevMode {
|
|
||||||
// Figure out our devnet index
|
|
||||||
idx, err := getDevnetIndex()
|
|
||||||
if err != nil {
|
|
||||||
logger.Fatal("Failed to parse hostname - are we running in devnet?")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Generate guardian key
|
|
||||||
gk = deterministicKeyByIndex(crypto.S256(), uint64(idx))
|
|
||||||
} else {
|
|
||||||
panic("not implemented") // TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
logger.Info("Loaded guardian key", zap.String(
|
|
||||||
"address", crypto.PubkeyToAddress(gk.PublicKey).String()))
|
|
||||||
|
|
||||||
// Node's main lifecycle context.
|
// Node's main lifecycle context.
|
||||||
rootCtx, rootCtxCancel = context.WithCancel(context.Background())
|
rootCtx, rootCtxCancel = context.WithCancel(context.Background())
|
||||||
|
@ -131,21 +136,7 @@ func main() {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := supervisor.Run(ctx, "lockups", func(ctx context.Context) error {
|
if err := supervisor.Run(ctx, "lockups", ethLockupProcessor(ec, gk)); err != nil {
|
||||||
for {
|
|
||||||
select {
|
|
||||||
case <-ctx.Done():
|
|
||||||
return ctx.Err()
|
|
||||||
case k := <-ec:
|
|
||||||
supervisor.Logger(ctx).Info("lockup confirmed",
|
|
||||||
zap.String("source", hex.EncodeToString(k.SourceAddress[:])),
|
|
||||||
zap.String("target", hex.EncodeToString(k.TargetAddress[:])),
|
|
||||||
zap.String("amount", k.Amount.String()),
|
|
||||||
zap.String("hash", hex.EncodeToString(k.Hash())),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}); err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -164,3 +155,4 @@ func main() {
|
||||||
// TODO: wait for things to shut down gracefully
|
// TODO: wait for things to shut down gracefully
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue