diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..3cf3c69 --- /dev/null +++ b/.env.example @@ -0,0 +1,5 @@ +REMOTE_DB_HOST= +REMOTE_DB_PORT= +REMOTE_DB_NAME= +REMOTE_DB_USER= +REMOTE_DB_PASSWORD= \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dc74b0f --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +tracker_db +db +.vscode +.idx +.env \ No newline at end of file diff --git a/internal/store/pg.go b/internal/store/pg.go index fe5be91..a6928f2 100644 --- a/internal/store/pg.go +++ b/internal/store/pg.go @@ -23,6 +23,7 @@ type ( } Pg struct { + logg *slog.Logger db *pgxpool.Pool queries *queries } @@ -62,6 +63,7 @@ func NewPgStore(o PgOpts) (Store, error) { o.Logg.Info("migrations ran successfully") return &Pg{ + logg: o.Logg, db: dbPool, queries: queries, }, nil @@ -69,20 +71,21 @@ func NewPgStore(o PgOpts) (Store, error) { func (pg *Pg) InsertTokenTransfer(ctx context.Context, eventPayload event.Event) error { return pg.executeTransaction(ctx, func(tx pgx.Tx) error { - var addressExists bool + // var addressExists bool - if err := tx.QueryRow( - ctx, - pg.queries.CheckAddressExists, - eventPayload.Payload["from"].(string), - eventPayload.Payload["to"].(string), - ).Scan(&addressExists); err != nil { - return err - } + // if err := tx.QueryRow( + // ctx, + // pg.queries.CheckAddressExists, + // eventPayload.Payload["from"].(string), + // eventPayload.Payload["to"].(string), + // ).Scan(&addressExists); err != nil { + // return err + // } - if !addressExists { - return nil - } + // if !addressExists { + // return nil + // } + // pg.logg.Debug("transfer address exists", "hash", eventPayload.TxHash) txID, err := pg.insertTx(ctx, tx, eventPayload) if err != nil { @@ -278,7 +281,7 @@ func runMigrations(ctx context.Context, dbPool *pgxpool.Pool, migrationsPath str } } - const migratorTimeout = 5 * time.Second + const migratorTimeout = 15 * time.Second ctx, cancel := context.WithTimeout(ctx, migratorTimeout) defer cancel() diff --git a/internal/sub/jetstream.go b/internal/sub/jetstream.go index c37d982..2fa7edb 100644 --- a/internal/sub/jetstream.go +++ b/internal/sub/jetstream.go @@ -55,9 +55,8 @@ func NewJetStreamSub(o JetStreamOpts) (Sub, error) { } consumer, err := stream.CreateOrUpdateConsumer(ctx, jetstream.ConsumerConfig{ - Durable: o.JetStreamID, - AckPolicy: jetstream.AckExplicitPolicy, - FilterSubject: pullStream, + Durable: o.JetStreamID, + AckPolicy: jetstream.AckExplicitPolicy, }) if err != nil { return nil, err diff --git a/migrations/001_indexer_base.sql b/migrations/001_indexer_base.sql index ddc481a..71f79cc 100644 --- a/migrations/001_indexer_base.sql +++ b/migrations/001_indexer_base.sql @@ -4,9 +4,9 @@ CREATE EXTENSION IF NOT EXISTS postgres_fdw; -- link sarafu_network db CREATE SCHEMA IF NOT EXISTS sarafu_network; CREATE SERVER IF NOT EXISTS sarafu_network_remote FOREIGN DATA WRAPPER postgres_fdw OPTIONS - (host '{{.remote_db_host }}', port '{{.remote_db_port }}', dbname '{{.remote_db_name }}'); + (host '{{env "REMOTE_DB_HOST" }}', port '{{env "REMOTE_DB_PORT" }}', dbname '{{env "REMOTE_DB_NAME" }}'); CREATE USER MAPPING IF NOT EXISTS FOR postgres SERVER sarafu_network_remote OPTIONS - (user '{{.remote_db_user }}', password '{{.remote_db_password }}'); + (user '{{env "REMOTE_DB_USER" }}', password '{{env "REMOTE_DB_PASSWORD" }}'); IMPORT FOREIGN SCHEMA public LIMIT TO (accounts) FROM SERVER sarafu_network_remote INTO sarafu_network; -- diff --git a/migrations/tern.conf b/migrations/tern.conf deleted file mode 100644 index bec725f..0000000 --- a/migrations/tern.conf +++ /dev/null @@ -1,6 +0,0 @@ -[data] -remote_db_host = {{env "REMOTE_DB_HOST"}} -remote_db_port = {{env "REMOTE_DB_PORT"}} -remote_db_name = {{env "REMOTE_DB_NAME"}} -remote_db_user = {{env "REMOTE_DB_USER"}} -remote_db_password = {{env "REMOTE_DB_PASSWORD"}} \ No newline at end of file diff --git a/queries.sql b/queries.sql index 6ebe71c..8ac51a3 100644 --- a/queries.sql +++ b/queries.sql @@ -104,7 +104,7 @@ INSERT INTO pool_deposit( INSERT INTO price_index_updates( tx_id, token, - exchange_rate, + exchange_rate ) VALUES($1, $2, $3) ON CONFLICT DO NOTHING --name: address-exists