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 (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"log/slog"
|
||||||
|
"os"
|
||||||
|
|
||||||
nats "github.com/nats-io/nats.go"
|
nats "github.com/nats-io/nats.go"
|
||||||
"github.com/nats-io/nats.go/jetstream"
|
"github.com/nats-io/nats.go/jetstream"
|
||||||
|
|
||||||
"git.defalsify.org/vise.git/logging"
|
|
||||||
|
|
||||||
geEvent "github.com/grassrootseconomics/eth-tracker/pkg/event"
|
geEvent "github.com/grassrootseconomics/eth-tracker/pkg/event"
|
||||||
|
|
||||||
"git.grassecon.net/term/event"
|
"git.grassecon.net/term/event"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
|
||||||
evGive = "TRACKER.FAUCET_GIVE"
|
|
||||||
evReg = "TRACKER.CUSTODIAL_REGISTRATION"
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
var (
|
||||||
logg = logging.NewVanilla().WithDomain("nats")
|
logg = slog.New(slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{Level: slog.LevelDebug}))
|
||||||
)
|
)
|
||||||
|
|
||||||
type NatsSubscription struct {
|
type NatsSubscription struct {
|
||||||
@ -75,31 +70,31 @@ func(n *NatsSubscription) Close() error {
|
|||||||
func fail(m jetstream.Msg) {
|
func fail(m jetstream.Msg) {
|
||||||
err := m.Nak()
|
err := m.Nak()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logg.Errorf("nats nak fail", "err", err)
|
logg.Error("nats nak fail", "err", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func(n *NatsSubscription) handleEvent(m jetstream.Msg) {
|
func(n *NatsSubscription) handleEvent(m jetstream.Msg) {
|
||||||
var ev geEvent.Event
|
var ev geEvent.Event
|
||||||
|
|
||||||
logg.Tracef("have msg", "err", m)
|
logg.Debug("have msg", "err", m)
|
||||||
b := m.Data()
|
b := m.Data()
|
||||||
err := json.Unmarshal(b, &ev)
|
err := json.Unmarshal(b, &ev)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logg.Errorf("nats msg deserialize fail", "err", err)
|
logg.Error("nats msg deserialize fail", "err", err)
|
||||||
fail(m)
|
//fail(m)
|
||||||
return
|
} 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 {
|
if err != nil {
|
||||||
logg.Errorf("handler route fail", "err", err)
|
logg.Error("term fail", "err", err)
|
||||||
fail(m)
|
panic("term fail")
|
||||||
return
|
|
||||||
}
|
|
||||||
err = m.Ack()
|
|
||||||
// err = m.DoubleAck(n.ctx)
|
|
||||||
if err != nil {
|
|
||||||
logg.Errorf("ack fail", "err", err)
|
|
||||||
panic("ack fail")
|
|
||||||
}
|
}
|
||||||
|
logg.Debug("handle msg complete")
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,30 @@
|
|||||||
package event
|
package event
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
"log/slog"
|
||||||
|
"os"
|
||||||
|
|
||||||
geEvent "github.com/grassrootseconomics/eth-tracker/pkg/event"
|
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 {
|
type Router struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func(r *Router) Route(ev *geEvent.Event) error {
|
func(r *Router) Route(gev *geEvent.Event) error {
|
||||||
return nil
|
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