Add custodial registration handler
This commit is contained in:
parent
7c10a881fe
commit
cab491f0d9
31
event/custodial_registration.go
Normal file
31
event/custodial_registration.go
Normal file
@ -0,0 +1,31 @@
|
||||
package event
|
||||
|
||||
import (
|
||||
geEvent "github.com/grassrootseconomics/eth-tracker/pkg/event"
|
||||
)
|
||||
|
||||
const (
|
||||
evReg = "CUSTODIAL_REGISTRATION"
|
||||
)
|
||||
|
||||
type eventCustodialRegistration struct {
|
||||
account string
|
||||
}
|
||||
|
||||
func asCustodialRegistrationEvent(gev *geEvent.Event) (*eventCustodialRegistration, bool) {
|
||||
var ok bool
|
||||
var ev eventCustodialRegistration
|
||||
if gev.TxType != evReg {
|
||||
return nil, false
|
||||
}
|
||||
pl := gev.Payload
|
||||
ev.account, ok = pl["account"].(string)
|
||||
if !ok {
|
||||
return nil, false
|
||||
}
|
||||
return &ev, true
|
||||
}
|
||||
|
||||
func handleCustodialRegistration(ev *eventCustodialRegistration) error {
|
||||
return nil
|
||||
}
|
@ -3,24 +3,19 @@ package nats
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"log/slog"
|
||||
"os"
|
||||
|
||||
nats "github.com/nats-io/nats.go"
|
||||
"github.com/nats-io/nats.go/jetstream"
|
||||
|
||||
"git.defalsify.org/vise.git/logging"
|
||||
|
||||
geEvent "github.com/grassrootseconomics/eth-tracker/pkg/event"
|
||||
|
||||
"git.grassecon.net/term/event"
|
||||
)
|
||||
|
||||
const (
|
||||
evGive = "TRACKER.FAUCET_GIVE"
|
||||
evReg = "TRACKER.CUSTODIAL_REGISTRATION"
|
||||
)
|
||||
|
||||
var (
|
||||
logg = logging.NewVanilla().WithDomain("nats")
|
||||
logg = slog.New(slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{Level: slog.LevelDebug}))
|
||||
)
|
||||
|
||||
type NatsSubscription struct {
|
||||
@ -75,31 +70,31 @@ func(n *NatsSubscription) Close() error {
|
||||
func fail(m jetstream.Msg) {
|
||||
err := m.Nak()
|
||||
if err != nil {
|
||||
logg.Errorf("nats nak fail", "err", err)
|
||||
logg.Error("nats nak fail", "err", err)
|
||||
}
|
||||
}
|
||||
|
||||
func(n *NatsSubscription) handleEvent(m jetstream.Msg) {
|
||||
var ev geEvent.Event
|
||||
|
||||
logg.Tracef("have msg", "err", m)
|
||||
logg.Debug("have msg", "err", m)
|
||||
b := m.Data()
|
||||
err := json.Unmarshal(b, &ev)
|
||||
if err != nil {
|
||||
logg.Errorf("nats msg deserialize fail", "err", err)
|
||||
fail(m)
|
||||
return
|
||||
logg.Error("nats msg deserialize fail", "err", err)
|
||||
//fail(m)
|
||||
} else {
|
||||
err = n.Route(&ev)
|
||||
if err != nil {
|
||||
logg.Error("handler route fail", "err", err)
|
||||
fail(m)
|
||||
return
|
||||
}
|
||||
}
|
||||
err = n.Route(&ev)
|
||||
err = m.Term()
|
||||
if err != nil {
|
||||
logg.Errorf("handler route fail", "err", err)
|
||||
fail(m)
|
||||
return
|
||||
}
|
||||
err = m.Ack()
|
||||
// err = m.DoubleAck(n.ctx)
|
||||
if err != nil {
|
||||
logg.Errorf("ack fail", "err", err)
|
||||
panic("ack fail")
|
||||
logg.Error("term fail", "err", err)
|
||||
panic("term fail")
|
||||
}
|
||||
logg.Debug("handle msg complete")
|
||||
}
|
||||
|
@ -1,12 +1,30 @@
|
||||
package event
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log/slog"
|
||||
"os"
|
||||
|
||||
geEvent "github.com/grassrootseconomics/eth-tracker/pkg/event"
|
||||
)
|
||||
|
||||
// TODO: this vocabulary should be public in and provided by the eth-tracker repo
|
||||
const (
|
||||
evGive = "FAUCET_GIVE"
|
||||
)
|
||||
|
||||
var (
|
||||
logg = slog.New(slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{Level: slog.LevelDebug}))
|
||||
)
|
||||
|
||||
type Router struct {
|
||||
}
|
||||
|
||||
func(r *Router) Route(ev *geEvent.Event) error {
|
||||
return nil
|
||||
func(r *Router) Route(gev *geEvent.Event) error {
|
||||
logg.Debug("have event", "ev", gev)
|
||||
evCC, ok := asCustodialRegistrationEvent(gev)
|
||||
if !ok {
|
||||
return handleCustodialRegistration(evCC)
|
||||
}
|
||||
return fmt.Errorf("unexpected message")
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user