Compare commits

..

No commits in common. "master" and "lash/dbtx" have entirely different histories.

15 changed files with 178 additions and 260 deletions

View File

@ -1,9 +0,0 @@
/**
!/cmd
!/config
!/event
!/internal
!/lookup
!/LICENSE
!/go.*
!/.env.example

View File

@ -1,56 +0,0 @@
name: release
on:
push:
tags:
- "v*"
jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Check out repo
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Cache Docker layers
uses: actions/cache@v3
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Login to GHCR Docker registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set outputs
run: |
echo "RELEASE_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV \
&& echo "RELEASE_SHORT_COMMIT=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
- name: Build and push image
uses: docker/build-push-action@v2
with:
context: ./
file: ./Dockerfile
platforms: linux/amd64
push: true
build-args: |
BUILD=${{ env.RELEASE_SHORT_COMMIT }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
tags: |
ghcr.io/grassrootseconomics/sarafu-vise-events:latest
ghcr.io/grassrootseconomics/sarafu-vise-events:${{ env.RELEASE_TAG }}

View File

@ -1,38 +0,0 @@
FROM golang:1.23.4-bookworm AS build
ENV CGO_ENABLED=1
ARG BUILDPLATFORM
ARG TARGETPLATFORM
ARG BUILD=dev
WORKDIR /build
COPY . .
RUN apt-get update && apt-get install -y --no-install-recommends \
libgdbm-dev \
git \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /build
RUN echo "Building on $BUILDPLATFORM, building for $TARGETPLATFORM"
RUN go mod download
RUN go build -tags logwarn -o sarafu-vise-events -ldflags="-X main.build=${BUILD} -s -w" cmd/main.go
FROM debian:bookworm-slim
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
libgdbm-dev \
ca-certificates \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /service
COPY --from=build /build/sarafu-vise-events .
COPY --from=build /build/LICENSE .
COPY --from=build /build/.env.example .
RUN mv .env.example .env
CMD ["./sarafu-vise-events"]

View File

@ -9,12 +9,11 @@ import (
"syscall"
"git.defalsify.org/vise.git/logging"
sarafuconfig "git.grassecon.net/grassrootseconomics/sarafu-vise/config"
"git.grassecon.net/grassrootseconomics/visedriver/storage"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/config"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/event/nats"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/lookup"
viseevent "git.grassecon.net/grassrootseconomics/sarafu-vise/handlers/event"
"git.grassecon.net/grassrootseconomics/visedriver/storage"
)
var (
@ -24,16 +23,16 @@ var (
func main() {
config.LoadConfig()
override := sarafuconfig.NewOverride()
override := config.NewOverride()
flag.StringVar(&override.DbConn, "c", "?", "default connection string (replaces all unspecified strings)")
flag.StringVar(&override.ResourceConn, "resource", "?", "resource connection string")
flag.StringVar(&override.UserConn, "userdata", "?", "userdata store connection string")
flag.StringVar(&override.StateConn, "state", "?", "state store connection string")
flag.StringVar(override.DbConn, "c", "?", "default connection string (replaces all unspecified strings)")
flag.StringVar(override.ResourceConn, "resource", "?", "resource connection string")
flag.StringVar(override.UserConn, "userdata", "?", "userdata store connection string")
flag.StringVar(override.StateConn, "state", "?", "state store connection string")
flag.Parse()
sarafuconfig.Apply(override)
conns, err := sarafuconfig.GetConns()
config.Apply(&override)
conns, err := config.GetConns()
if err != nil {
fmt.Fprintf(os.Stderr, "conn specification error: %v\n", err)
os.Exit(1)

View File

@ -2,6 +2,7 @@ package config
import (
viseconfig "git.grassecon.net/grassrootseconomics/visedriver/config"
apiconfig "git.grassecon.net/grassrootseconomics/sarafu-api/config"
"git.grassecon.net/grassrootseconomics/sarafu-vise/config"
"git.grassecon.net/grassrootseconomics/visedriver/env"
)
@ -19,7 +20,11 @@ const (
)
func LoadConfig() error {
err := config.LoadConfig()
err := viseconfig.LoadConfig()
if err != nil {
return err
}
err = apiconfig.LoadConfig()
if err != nil {
return err
}
@ -31,3 +36,7 @@ func LoadConfig() error {
func Language() string {
return viseconfig.DefaultLanguage
}
func NewOverride() config.Override {
return config.Override{}
}

View File

@ -1,8 +1,8 @@
package event
import (
apievent "git.grassecon.net/grassrootseconomics/sarafu-api/event"
geEvent "github.com/grassrootseconomics/eth-tracker/pkg/event"
apievent "git.grassecon.net/grassrootseconomics/sarafu-api/event"
)
const (

View File

@ -4,19 +4,20 @@ import (
"context"
"testing"
"git.defalsify.org/vise.git/cache"
"git.defalsify.org/vise.git/db"
"git.defalsify.org/vise.git/state"
"git.grassecon.net/grassrootseconomics/common/hex"
apievent "git.grassecon.net/grassrootseconomics/sarafu-api/event"
"git.grassecon.net/grassrootseconomics/sarafu-api/remote/http"
apimocks "git.grassecon.net/grassrootseconomics/sarafu-api/testutil/mocks"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/config"
viseevent "git.grassecon.net/grassrootseconomics/sarafu-vise/handlers/event"
storedb "git.grassecon.net/grassrootseconomics/sarafu-vise/store/db"
"git.defalsify.org/vise.git/cache"
"git.grassecon.net/grassrootseconomics/visedriver/testutil/mocks"
"git.grassecon.net/grassrootseconomics/sarafu-api/remote/http"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/config"
"git.grassecon.net/grassrootseconomics/common/hex"
storedb "git.grassecon.net/grassrootseconomics/sarafu-vise/store/db"
apievent "git.grassecon.net/grassrootseconomics/sarafu-api/event"
apimocks "git.grassecon.net/grassrootseconomics/sarafu-api/testutil/mocks"
viseevent "git.grassecon.net/grassrootseconomics/sarafu-vise/handlers/event"
)
func TestCustodialRegistration(t *testing.T) {
err := config.LoadConfig()
if err != nil {

View File

@ -5,13 +5,13 @@ import (
"encoding/json"
"fmt"
"git.defalsify.org/vise.git/logging"
apievent "git.grassecon.net/grassrootseconomics/sarafu-api/event"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/config"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/event"
geEvent "github.com/grassrootseconomics/eth-tracker/pkg/event"
nats "github.com/nats-io/nats.go"
"github.com/nats-io/nats.go/jetstream"
geEvent "github.com/grassrootseconomics/eth-tracker/pkg/event"
"git.defalsify.org/vise.git/logging"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/event"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/config"
apievent "git.grassecon.net/grassrootseconomics/sarafu-api/event"
)
var (
@ -43,7 +43,7 @@ func NewNatsSubscription(handler *apievent.EventsHandler) *NatsSubscription {
// Fails if connection fails or the "Jetstream" consumer cannot be set up.
//
// Once connected, it will attempt to reconnect if disconnected.
func (n *NatsSubscription) Connect(ctx context.Context, connStr string) error {
func(n *NatsSubscription) Connect(ctx context.Context, connStr string) error {
var err error
// enables set ctx in test, even if the connstr is invalid (js msg handler doesnt take context)
@ -78,7 +78,7 @@ func (n *NatsSubscription) Connect(ctx context.Context, connStr string) error {
}
// Close cleanly brings down the nats and jetstream connection.
func (n *NatsSubscription) Close() error {
func(n *NatsSubscription) Close() error {
n.cctx.Stop()
select {
case <-n.cctx.Closed():
@ -88,7 +88,7 @@ func (n *NatsSubscription) Close() error {
}
// jetstream message handler and acknowledger.
func (n *NatsSubscription) handleEvent(m jetstream.Msg) {
func(n *NatsSubscription) handleEvent(m jetstream.Msg) {
var ev geEvent.Event
logg.DebugCtxf(n.ctx, "have msg", "msg", m)

View File

@ -9,21 +9,21 @@ import (
"testing"
"time"
"git.defalsify.org/vise.git/db"
"git.grassecon.net/grassrootseconomics/common/hex"
"git.grassecon.net/grassrootseconomics/sarafu-api/models"
apimocks "git.grassecon.net/grassrootseconomics/sarafu-api/testutil/mocks"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/config"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/internal/testutil"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/lookup"
"git.grassecon.net/grassrootseconomics/sarafu-vise/handlers/application"
viseevent "git.grassecon.net/grassrootseconomics/sarafu-vise/handlers/event"
"git.grassecon.net/grassrootseconomics/sarafu-vise/store"
storedb "git.grassecon.net/grassrootseconomics/sarafu-vise/store/db"
"git.grassecon.net/grassrootseconomics/visedriver/testutil/mocks"
dataserviceapi "github.com/grassrootseconomics/ussd-data-service/pkg/api"
nats "github.com/nats-io/nats.go"
"github.com/nats-io/nats.go/jetstream"
dataserviceapi "github.com/grassrootseconomics/ussd-data-service/pkg/api"
"git.defalsify.org/vise.git/db"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/config"
"git.grassecon.net/grassrootseconomics/sarafu-vise/store"
storedb "git.grassecon.net/grassrootseconomics/sarafu-vise/store/db"
"git.grassecon.net/grassrootseconomics/sarafu-api/models"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/lookup"
"git.grassecon.net/grassrootseconomics/common/hex"
apimocks "git.grassecon.net/grassrootseconomics/sarafu-api/testutil/mocks"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/internal/testutil"
"git.grassecon.net/grassrootseconomics/sarafu-vise/handlers/application"
viseevent "git.grassecon.net/grassrootseconomics/sarafu-vise/handlers/event"
"git.grassecon.net/grassrootseconomics/visedriver/testutil/mocks"
)
const (
@ -44,51 +44,51 @@ type testMsg struct {
data []byte
}
func (m *testMsg) Ack() error {
func(m *testMsg) Ack() error {
return nil
}
func (m *testMsg) Nak() error {
func(m *testMsg) Nak() error {
return nil
}
func (m *testMsg) NakWithDelay(time.Duration) error {
func(m *testMsg) NakWithDelay(time.Duration) error {
return nil
}
func (m *testMsg) Data() []byte {
func(m *testMsg) Data() []byte {
return m.data
}
func (m *testMsg) Reply() string {
func(m *testMsg) Reply() string {
return ""
}
func (m *testMsg) Subject() string {
func(m *testMsg) Subject() string {
return ""
}
func (m *testMsg) Term() error {
func(m *testMsg) Term() error {
return nil
}
func (m *testMsg) TermWithReason(string) error {
func(m *testMsg) TermWithReason(string) error {
return nil
}
func (m *testMsg) DoubleAck(ctx context.Context) error {
func(m *testMsg) DoubleAck(ctx context.Context) error {
return nil
}
func (m *testMsg) Headers() nats.Header {
func(m *testMsg) Headers() nats.Header {
return nats.Header{}
}
func (m *testMsg) InProgress() error {
func(m *testMsg) InProgress() error {
return nil
}
func (m *testMsg) Metadata() (*jetstream.MsgMetadata, error) {
func(m *testMsg) Metadata() (*jetstream.MsgMetadata, error) {
return nil, nil
}
@ -182,8 +182,8 @@ func TestHandleMsg(t *testing.T) {
t.Fatal(err)
}
fmts := fmt.Sprintf("%%1.%df", tokenDecimals)
expect := fmt.Sprintf(fmts, float64(tokenBalance)/math.Pow(10, tokenDecimals))
expect := fmt.Sprintf(fmts, float64(tokenBalance) / math.Pow(10, tokenDecimals))
//if !bytes.Equal(v, []byte(strconv.Itoa(tokenBalance))) {
if !bytes.Equal(v, []byte(expect)) {
t.Fatalf("expected '%d', got %s", tokenBalance, v)
}
@ -196,6 +196,7 @@ func TestHandleMsg(t *testing.T) {
t.Fatal("no transaction data")
}
mh, err := application.NewMenuHandlers(nil, userStore, nil, testutil.ReplaceSeparatorFunc)
if err != nil {
t.Fatal(err)
@ -209,4 +210,14 @@ func TestHandleMsg(t *testing.T) {
if rrs.Content != expect {
t.Fatalf("expected '%v', got '%v'", expect, rrs.Content)
}
// userDb.SetPrefix(event.DATATYPE_USERSUB)
// userDb.SetSession(apimocks.AliceSession)
// k := append([]byte("vouchers"), []byte("sym")...)
// v, err = userDb.Get(ctx, k)
// if err != nil {
// t.Fatal(err)
// }
// if !bytes.Contains(v, []byte(fmt.Sprintf("1:%s", tokenSymbol))) {
// t.Fatalf("expected '1:%s', got %s", tokenSymbol, v)
// }
}

View File

@ -30,7 +30,7 @@ func NewRouter(handler *apievent.EventsHandler) *Router {
//
// An error will be returned if no handler can be found, or if the resolved
// handler fails to successfully execute.
func (r *Router) Route(ctx context.Context, gev *geEvent.Event) error {
func(r *Router) Route(ctx context.Context, gev *geEvent.Event) error {
logg.DebugCtxf(ctx, "have event", "ev", gev)
evCC, ok := asCustodialRegistrationEvent(gev)
if ok {

View File

@ -34,6 +34,7 @@ func formatTransaction(tag string, idx int, item any) string {
return ""
}
// waiter to check whether object is available on dependency endpoints.
func updateWait(ctx context.Context) error {
return nil

View File

@ -9,20 +9,20 @@ import (
"testing"
"time"
dataserviceapi "github.com/grassrootseconomics/ussd-data-service/pkg/api"
"git.defalsify.org/vise.git/db"
"git.grassecon.net/grassrootseconomics/common/hex"
apievent "git.grassecon.net/grassrootseconomics/sarafu-api/event"
"git.grassecon.net/grassrootseconomics/sarafu-api/models"
apimocks "git.grassecon.net/grassrootseconomics/sarafu-api/testutil/mocks"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/config"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/internal/testutil"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/lookup"
"git.grassecon.net/grassrootseconomics/sarafu-vise/handlers/application"
viseevent "git.grassecon.net/grassrootseconomics/sarafu-vise/handlers/event"
"git.grassecon.net/grassrootseconomics/sarafu-api/models"
"git.grassecon.net/grassrootseconomics/sarafu-vise/store"
storedb "git.grassecon.net/grassrootseconomics/sarafu-vise/store/db"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/lookup"
"git.grassecon.net/grassrootseconomics/common/hex"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/internal/testutil"
apievent "git.grassecon.net/grassrootseconomics/sarafu-api/event"
apimocks "git.grassecon.net/grassrootseconomics/sarafu-api/testutil/mocks"
viseevent "git.grassecon.net/grassrootseconomics/sarafu-vise/handlers/event"
"git.grassecon.net/grassrootseconomics/visedriver/testutil/mocks"
dataserviceapi "github.com/grassrootseconomics/ussd-data-service/pkg/api"
)
const (
@ -39,6 +39,7 @@ const (
bogusSym = "/-21380u"
)
func TestTokenTransfer(t *testing.T) {
err := config.LoadConfig()
if err != nil {
@ -122,7 +123,7 @@ func TestTokenTransfer(t *testing.T) {
}
//if !bytes.Equal(v, []byte(strconv.Itoa(tokenBalance))) {
fmts := fmt.Sprintf("%%1.%df", tokenDecimals)
expect := fmt.Sprintf(fmts, float64(tokenBalance)/math.Pow(10, tokenDecimals))
expect := fmt.Sprintf(fmts, float64(tokenBalance) / math.Pow(10, tokenDecimals))
if !bytes.Equal(v, []byte(expect)) {
t.Fatalf("expected '%s', got %s", expect, v)
}
@ -186,6 +187,7 @@ func TestTokenMint(t *testing.T) {
}
lookup.Api = api
ctx := context.Background()
storageService := mocks.NewMemStorageService(ctx)
eu := viseevent.NewEventsUpdater(api, storageService)
@ -230,8 +232,8 @@ func TestTokenMint(t *testing.T) {
t.Fatal(err)
}
fmts := fmt.Sprintf("%%1.%df", tokenDecimals)
expect := fmt.Sprintf(fmts, float64(tokenBalance)/math.Pow(10, tokenDecimals))
expect := fmt.Sprintf(fmts, float64(tokenBalance) / math.Pow(10, tokenDecimals))
//if !bytes.Equal(v, []byte(strconv.Itoa(tokenBalance))) {
if !bytes.Equal(v, []byte(expect)) {
t.Fatalf("expected '%d', got %s", tokenBalance, v)
}

12
go.mod
View File

@ -3,13 +3,13 @@ module git.grassecon.net/grassrootseconomics/sarafu-vise-events
go 1.23.4
require (
git.defalsify.org/vise.git v0.3.1
git.defalsify.org/vise.git v0.2.3-0.20250120121301-10739fb4a8c9
git.grassecon.net/grassrootseconomics/common v0.0.0-20250121134736-ba8cbbccea7d
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250310093912-8145b4bd004b
git.grassecon.net/grassrootseconomics/sarafu-vise v1.0.0-rc.12.0.20250324165708-419716a2b4e9
git.grassecon.net/grassrootseconomics/visedriver v0.9.0-beta.2
github.com/grassrootseconomics/eth-tracker v1.6.1-celo-prefork-rc
github.com/grassrootseconomics/ussd-data-service v1.4.0-beta
git.grassecon.net/grassrootseconomics/sarafu-api v0.0.0-20250121135150-e0b539809805
git.grassecon.net/grassrootseconomics/sarafu-vise v0.0.0-20250121142648-4baacb325d2b
git.grassecon.net/grassrootseconomics/visedriver v0.8.0-beta.10.0.20250121134912-f7d31e4e8162
github.com/grassrootseconomics/eth-tracker v1.3.0-rc
github.com/grassrootseconomics/ussd-data-service v1.2.0-beta
github.com/nats-io/nats.go v1.37.0
)

26
go.sum
View File

@ -1,15 +1,13 @@
git.defalsify.org/vise.git v0.3.1 h1:A6FhMcur09ft/JzUPGXR+KpA17fltfeBnasyvLMZmq4=
git.defalsify.org/vise.git v0.3.1/go.mod h1:jyBMe1qTYUz3mmuoC9JQ/TvFeW0vTanCUcPu3H8p4Ck=
git.defalsify.org/vise.git v0.2.3-0.20250120121301-10739fb4a8c9 h1:sPcqXQcywxA8W3W+9qQncLPmsrgqTIlec7vmD4/7vyA=
git.defalsify.org/vise.git v0.2.3-0.20250120121301-10739fb4a8c9/go.mod h1:jyBMe1qTYUz3mmuoC9JQ/TvFeW0vTanCUcPu3H8p4Ck=
git.grassecon.net/grassrootseconomics/common v0.0.0-20250121134736-ba8cbbccea7d h1:5mzLas+jxTUtusOKx4XvU+n2QvrV/mH17MnJRy46siQ=
git.grassecon.net/grassrootseconomics/common v0.0.0-20250121134736-ba8cbbccea7d/go.mod h1:wgQJZGIS6QuNLHqDhcsvehsbn5PvgV7aziRebMnJi60=
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250310093912-8145b4bd004b h1:xiTpaqWWoF5qcnarY/9ZkT6aVdnKwqztb2gzIahJn4w=
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250310093912-8145b4bd004b/go.mod h1:gOn89ipaDcDvmQXRMQYKUqcw/sJcwVOPVt2eC6Geip8=
git.grassecon.net/grassrootseconomics/sarafu-vise v1.0.0-rc.10 h1:zUZoTdeiCr/sLfFP20lZeAb6ULD0PZwPqITC4H11T2Y=
git.grassecon.net/grassrootseconomics/sarafu-vise v1.0.0-rc.10/go.mod h1:Quy9IpkAIII/Z5xEg3Rw8xC1Ucpk31fn+cnA0Fansyw=
git.grassecon.net/grassrootseconomics/sarafu-vise v1.0.0-rc.12.0.20250324165708-419716a2b4e9 h1:BRmBC68e3yqvDfNmBJKWtNadHs6acfuHw+rKyPO1gqI=
git.grassecon.net/grassrootseconomics/sarafu-vise v1.0.0-rc.12.0.20250324165708-419716a2b4e9/go.mod h1:Quy9IpkAIII/Z5xEg3Rw8xC1Ucpk31fn+cnA0Fansyw=
git.grassecon.net/grassrootseconomics/visedriver v0.9.0-beta.2 h1:YFztSsexCUgFo6M0tbngRwYdgJd3LQV3RO/Jw09u3+k=
git.grassecon.net/grassrootseconomics/visedriver v0.9.0-beta.2/go.mod h1:6B6ByxXOiRY0NR7K02Bf3fEu7z+2c/6q8PFVNjC5G8w=
git.grassecon.net/grassrootseconomics/sarafu-api v0.0.0-20250121135150-e0b539809805 h1:deGnqf4YCsbxhXgjFEjYjTUCvciLEmI26T9IysRsQXY=
git.grassecon.net/grassrootseconomics/sarafu-api v0.0.0-20250121135150-e0b539809805/go.mod h1:9bc3d//Qqm11hz7GYRdQc1Uan+0GJIOpvRBbv8cHMu8=
git.grassecon.net/grassrootseconomics/sarafu-vise v0.0.0-20250121142648-4baacb325d2b h1:kUQW5cM4Q7TogrUfrxFjdvA/BYCescsAZBtf5teLYrY=
git.grassecon.net/grassrootseconomics/sarafu-vise v0.0.0-20250121142648-4baacb325d2b/go.mod h1:AF6qgkV+OmxamrPcrzZfsRUYTaQMZXBRejRg7dIKej4=
git.grassecon.net/grassrootseconomics/visedriver v0.8.0-beta.10.0.20250121134912-f7d31e4e8162 h1:NaPbgGQ1Nb+yYF+Qj1LSagpjYeDcSXST8iZwONg4afY=
git.grassecon.net/grassrootseconomics/visedriver v0.8.0-beta.10.0.20250121134912-f7d31e4e8162/go.mod h1:pjKp9L/ZsWW3kMB0UoIl1yv9TBIuU33mn9Aghxp7vGk=
github.com/alecthomas/assert/v2 v2.2.2 h1:Z/iVC0xZfWTaFNE6bA3z07T86hd45Xe2eLt6WVy2bbk=
github.com/alecthomas/assert/v2 v2.2.2/go.mod h1:pXcQ2Asjp247dahGEmsZ6ru0UVwnkhktn7S0bBDLxvQ=
github.com/alecthomas/participle/v2 v2.0.0 h1:Fgrq+MbuSsJwIkw3fEj9h75vDP0Er5JzepJ0/HNHv0g=
@ -27,10 +25,10 @@ github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1
github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
github.com/grassrootseconomics/eth-custodial v1.3.0-beta h1:twrMBhl89GqDUL9PlkzQxMP/6OST1BByrNDj+rqXDmU=
github.com/grassrootseconomics/eth-custodial v1.3.0-beta/go.mod h1:7uhRcdnJplX4t6GKCEFkbeDhhjlcaGJeJqevbcvGLZo=
github.com/grassrootseconomics/eth-tracker v1.6.1-celo-prefork-rc h1:btdkaeW4p/Wz/0JZto9dXvF/om0Ihuhjv5Dt3bwFKmg=
github.com/grassrootseconomics/eth-tracker v1.6.1-celo-prefork-rc/go.mod h1:ZuTo4Jcn4EchQ9OybnEZW/A8x6rM1ssiYJn9/AXAVJs=
github.com/grassrootseconomics/ussd-data-service v1.4.0-beta h1:4fMd/3h2ZIhRg4GdHQmRw5FfD3MpJvFNNJQo+Q27f5M=
github.com/grassrootseconomics/ussd-data-service v1.4.0-beta/go.mod h1:9sGnorpKaK76FmOGXoh/xv7x5siSFNYdXxQo9BKW4DI=
github.com/grassrootseconomics/eth-tracker v1.3.0-rc h1:iYe2rwCBrU5O8x0+HSJRjcPT1h68k/uGd3i/cJJQuTQ=
github.com/grassrootseconomics/eth-tracker v1.3.0-rc/go.mod h1:rLXM5u8FDHnMEdah8ACgo/wfawu4o2sljHGkky2rQKE=
github.com/grassrootseconomics/ussd-data-service v1.2.0-beta h1:fn1gwbWIwHVEBtUC2zi5OqTlfI/5gU1SMk0fgGixIXk=
github.com/grassrootseconomics/ussd-data-service v1.2.0-beta/go.mod h1:omfI0QtUwIdpu9gMcUqLMCG8O1XWjqJGBx1qUMiGWC0=
github.com/graygnuorg/go-gdbm v0.0.0-20220711140707-71387d66dce4 h1:U4kkNYryi/qfbBF8gh7Vsbuz+cVmhf5kt6pE9bYYyLo=
github.com/graygnuorg/go-gdbm v0.0.0-20220711140707-71387d66dce4/go.mod h1:zpZDgZFzeq9s0MIeB1P50NIEWDFFHSFBohI/NbaTD/Y=
github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=

View File

@ -1,8 +1,8 @@
package lookup
import (
"git.grassecon.net/grassrootseconomics/sarafu-api/remote"
"git.grassecon.net/grassrootseconomics/sarafu-api/remote/http"
"git.grassecon.net/grassrootseconomics/sarafu-api/remote"
)
var (