Compare commits
No commits in common. "master" and "v2.1.1-stable" have entirely different histories.
master
...
v2.1.1-sta
25
README.md
25
README.md
@ -2,21 +2,18 @@
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
A lightweight Postgres chain indexer designed to couple with
|
A lightweight Postgres chain indexer designed to couple with [eth-tracker](https://github.com/grassrootseconomics/eth-tracker) to index all relevant GE related blockchain data on any EVM chain.
|
||||||
[eth-tracker](https://github.com/grassrootseconomics/eth-tracker) to index all
|
|
||||||
relevant GE related blockchain data on any EVM chain.
|
|
||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
|
|
||||||
### Prerequisites
|
### Prerequisites
|
||||||
|
|
||||||
- Git
|
* Git
|
||||||
- Docker
|
* Docker
|
||||||
- Postgres server
|
* Postgres server
|
||||||
- Access to a `eth-tracker` instance
|
* Access to a `eth-tracker` instance
|
||||||
|
|
||||||
See [docker-compose.yaml](dev/docker-compose.yaml) for an example on how to run
|
See [docker-compose.yaml](dev/docker-compose.yaml) for an example on how to run and deploy a single instance.
|
||||||
and deploy a single instance.
|
|
||||||
|
|
||||||
### 1. Build the Docker image
|
### 1. Build the Docker image
|
||||||
|
|
||||||
@ -37,9 +34,7 @@ For an example, see `dev/docker-compose.postgres.yaml`.
|
|||||||
|
|
||||||
### 3. Update config values
|
### 3. Update config values
|
||||||
|
|
||||||
See `.env.example` on how to override default values defined in `config.toml`
|
See `.env.example` on how to override default values defined in `config.toml` using env variables. Alternatively, mount your own config.toml either during build time or Docker runtime.
|
||||||
using env variables. Alternatively, mount your own config.toml either during
|
|
||||||
build time or Docker runtime.
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Override only specific config values
|
# Override only specific config values
|
||||||
@ -49,10 +44,10 @@ mv .env.example .env
|
|||||||
|
|
||||||
Special env variables:
|
Special env variables:
|
||||||
|
|
||||||
- DEV=*
|
* DEV=*
|
||||||
|
|
||||||
|
Refer to [`config.toml`](config.toml) to understand different config value settings.
|
||||||
|
|
||||||
Refer to [`config.toml`](config.toml) to understand different config value
|
|
||||||
settings.
|
|
||||||
|
|
||||||
### 4. Run the indexer
|
### 4. Run the indexer
|
||||||
|
|
||||||
|
@ -12,12 +12,12 @@ import (
|
|||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/grassrootseconomics/eth-indexer/v2/internal/api"
|
"github.com/grassrootseconomics/eth-indexer/internal/api"
|
||||||
"github.com/grassrootseconomics/eth-indexer/v2/internal/cache"
|
"github.com/grassrootseconomics/eth-indexer/internal/cache"
|
||||||
"github.com/grassrootseconomics/eth-indexer/v2/internal/handler"
|
"github.com/grassrootseconomics/eth-indexer/internal/handler"
|
||||||
"github.com/grassrootseconomics/eth-indexer/v2/internal/store"
|
"github.com/grassrootseconomics/eth-indexer/internal/store"
|
||||||
"github.com/grassrootseconomics/eth-indexer/v2/internal/sub"
|
"github.com/grassrootseconomics/eth-indexer/internal/sub"
|
||||||
"github.com/grassrootseconomics/eth-indexer/v2/internal/util"
|
"github.com/grassrootseconomics/eth-indexer/internal/util"
|
||||||
"github.com/grassrootseconomics/ethutils"
|
"github.com/grassrootseconomics/ethutils"
|
||||||
"github.com/knadh/koanf/v2"
|
"github.com/knadh/koanf/v2"
|
||||||
)
|
)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/grassrootseconomics/eth-indexer/v2/internal/handler"
|
"github.com/grassrootseconomics/eth-indexer/internal/handler"
|
||||||
"github.com/grassrootseconomics/eth-indexer/v2/pkg/router"
|
"github.com/grassrootseconomics/eth-indexer/pkg/router"
|
||||||
)
|
)
|
||||||
|
|
||||||
func bootstrapRouter(handlerContainer *handler.Handler) *router.Router {
|
func bootstrapRouter(handlerContainer *handler.Handler) *router.Router {
|
||||||
@ -43,10 +43,5 @@ func bootstrapRouter(handlerContainer *handler.Handler) *router.Router {
|
|||||||
handlerContainer.IndexOwnershipChange,
|
handlerContainer.IndexOwnershipChange,
|
||||||
)
|
)
|
||||||
|
|
||||||
router.RegisterRoute(
|
|
||||||
"TRACKER.INDEX_REMOVE",
|
|
||||||
handlerContainer.IndexRemove,
|
|
||||||
)
|
|
||||||
|
|
||||||
return router
|
return router
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,8 @@ package handler
|
|||||||
import (
|
import (
|
||||||
"log/slog"
|
"log/slog"
|
||||||
|
|
||||||
"github.com/grassrootseconomics/eth-indexer/v2/internal/cache"
|
"github.com/grassrootseconomics/eth-indexer/internal/cache"
|
||||||
"github.com/grassrootseconomics/eth-indexer/v2/internal/store"
|
"github.com/grassrootseconomics/eth-indexer/internal/store"
|
||||||
"github.com/grassrootseconomics/ethutils"
|
"github.com/grassrootseconomics/ethutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
package handler
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
"github.com/grassrootseconomics/eth-tracker/pkg/event"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (h *Handler) IndexRemove(ctx context.Context, event event.Event) error {
|
|
||||||
return h.store.RemoveContractAddress(ctx, event)
|
|
||||||
}
|
|
@ -39,8 +39,6 @@ type (
|
|||||||
InsertOwnershipChange string `query:"insert-ownership-change"`
|
InsertOwnershipChange string `query:"insert-ownership-change"`
|
||||||
InsertToken string `query:"insert-token"`
|
InsertToken string `query:"insert-token"`
|
||||||
InsertPool string `query:"insert-pool"`
|
InsertPool string `query:"insert-pool"`
|
||||||
RemovePool string `query:"remove-pool"`
|
|
||||||
RemoveToken string `query:"remove-token"`
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -249,30 +247,6 @@ func (pg *Pg) InsertPool(ctx context.Context, contractAddress string, name strin
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (pg *Pg) RemoveContractAddress(ctx context.Context, eventPayload event.Event) error {
|
|
||||||
return pg.executeTransaction(ctx, func(tx pgx.Tx) error {
|
|
||||||
_, err := tx.Exec(
|
|
||||||
ctx,
|
|
||||||
pg.queries.RemovePool,
|
|
||||||
eventPayload.Payload["address"].(string),
|
|
||||||
)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = tx.Exec(
|
|
||||||
ctx,
|
|
||||||
pg.queries.RemoveToken,
|
|
||||||
eventPayload.Payload["address"].(string),
|
|
||||||
)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func (pg *Pg) insertTx(ctx context.Context, tx pgx.Tx, eventPayload event.Event) (int, error) {
|
func (pg *Pg) insertTx(ctx context.Context, tx pgx.Tx, eventPayload event.Event) (int, error) {
|
||||||
var txID int
|
var txID int
|
||||||
if err := tx.QueryRow(
|
if err := tx.QueryRow(
|
||||||
|
@ -18,7 +18,6 @@ type (
|
|||||||
InsertOwnershipChange(context.Context, event.Event) error
|
InsertOwnershipChange(context.Context, event.Event) error
|
||||||
InsertToken(context.Context, string, string, string, uint8, string) error
|
InsertToken(context.Context, string, string, string, uint8, string) error
|
||||||
InsertPool(context.Context, string, string, string) error
|
InsertPool(context.Context, string, string, string) error
|
||||||
RemoveContractAddress(context.Context, event.Event) error
|
|
||||||
Pool() *pgxpool.Pool
|
Pool() *pgxpool.Pool
|
||||||
Close()
|
Close()
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ import (
|
|||||||
"log/slog"
|
"log/slog"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/grassrootseconomics/eth-indexer/v2/pkg/router"
|
"github.com/grassrootseconomics/eth-indexer/pkg/router"
|
||||||
"github.com/nats-io/nats.go"
|
"github.com/nats-io/nats.go"
|
||||||
"github.com/nats-io/nats.go/jetstream"
|
"github.com/nats-io/nats.go/jetstream"
|
||||||
)
|
)
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
ALTER TABLE tokens
|
|
||||||
ADD COLUMN removed BOOLEAN NOT NULL DEFAULT false;
|
|
||||||
|
|
||||||
ALTER TABLE pools
|
|
||||||
ADD COLUMN removed BOOLEAN NOT NULL DEFAULT false;
|
|
@ -139,11 +139,3 @@ INSERT INTO pools(
|
|||||||
pool_name,
|
pool_name,
|
||||||
pool_symbol
|
pool_symbol
|
||||||
) VALUES ($1, $2, $3) ON CONFLICT DO NOTHING
|
) VALUES ($1, $2, $3) ON CONFLICT DO NOTHING
|
||||||
|
|
||||||
--name: remove-pool
|
|
||||||
-- $1: contract_address
|
|
||||||
UPDATE pools SET removed = true WHERE contract_address = $1
|
|
||||||
|
|
||||||
--name: remove-token
|
|
||||||
-- $1: contract_address
|
|
||||||
UPDATE tokens SET removed = true WHERE contract_address = $1
|
|
||||||
|
Loading…
Reference in New Issue
Block a user