Skip to content
This repository was archived by the owner on Nov 5, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
641aa3b
chore: introduce database migrations
jtourkos Mar 18, 2025
cdf933e
feat: add support for ImmutableSplits code generation
jtourkos Mar 19, 2025
e71067b
refactor: validate app setting with zod and improve logger
jtourkos Mar 19, 2025
a0c0231
refactor: add support for indexing CreatedSplits events, add new Ecos…
jtourkos Mar 24, 2025
da5f648
feat: support nft driver metadata v6
jtourkos Mar 24, 2025
8e55442
refactor: simplify account ID types
jtourkos Mar 24, 2025
b047428
reafactor: introduce new entities to support Ecosystems
jtourkos Mar 26, 2025
979c8ca
Merge branch 'main' into db-migrations
jtourkos Mar 26, 2025
29cf144
refactor: process ecosystem metadata
jtourkos Mar 31, 2025
4202eaa
Merge branch 'main' into ecosystems
jtourkos Apr 2, 2025
c50d4bf
refactor: restructure the metadata indexing logic and introduce handl…
jtourkos Apr 3, 2025
1aff68a
refactor: refine migrations
jtourkos Apr 6, 2025
004832b
refactor: add ecosystem deployer env var
jtourkos Apr 6, 2025
46acfa7
refactor: improve logger
jtourkos Apr 6, 2025
d790aae
refactor: db associations
jtourkos Apr 6, 2025
8fb2252
refactor: rename utils funcs
jtourkos Apr 6, 2025
56f8d31
chore: update arena package
jtourkos Apr 6, 2025
32d25c3
refactor: re write indexing logic for DripLists and Projects and supp…
jtourkos Apr 6, 2025
9954044
test: fix failing tests
jtourkos Apr 8, 2025
713290a
refactor: rename ecosystem main entity
jtourkos Apr 10, 2025
9de4d00
don't re-build on migration
efstajas Apr 10, 2025
fd0e1f4
Merge branch 'main' into ecosystems
jtourkos Apr 11, 2025
ddc665a
chore: polish db migration scripts and start over db migrations
jtourkos Apr 14, 2025
8199129
docs: update DEVELOPMENT.md
jtourkos Apr 14, 2025
99e7b44
add zksync-era-sepolia config
efstajas Apr 15, 2025
53dd7d8
Merge branch 'zksync-era-sepolia' into staging
efstajas Apr 15, 2025
6027cc4
use underscores
efstajas Apr 15, 2025
bb93815
Merge branch 'zksync-era-sepolia' into staging
efstajas Apr 15, 2025
fd2f45f
fix
efstajas Apr 15, 2025
c616c02
Merge branch 'zksync-era-sepolia' into staging
efstajas Apr 15, 2025
51e2b4a
feat: stop processing OwnerUpdateRequested, OwnerUpdated and SplitsSe…
jtourkos Apr 15, 2025
eb66d62
feat: remove specific receiver types and add one generic splitsreceiver
jtourkos Apr 17, 2025
751065b
feat: change naming convention in db
jtourkos Apr 22, 2025
a24ba28
feat: improve logging and small db schema fixes
jtourkos Apr 24, 2025
4d2a1e0
feat: (re)introduce SplitsSet event handler to set an entity's isVali…
jtourkos Apr 28, 2025
0679594
refactor: remove RepoDriver metadata v6
jtourkos Apr 30, 2025
4534c72
refactor: sync concurrency and db connection pool
jtourkos Apr 30, 2025
ecaa92b
feat: make job IDs unique but deterministic to ensure no duplicate jo…
jtourkos Apr 30, 2025
b24f2be
refactor: handle all metadata versions when creating new Drip List sp…
jtourkos Apr 30, 2025
802b54f
fix: wrong project owner account ID calculation
jtourkos Apr 30, 2025
0f83e4d
refactor: leftover from commit ecaa92bd11d31ee47278f03ec35697044eedeb52
jtourkos Apr 30, 2025
f8a4bc0
refactor: minor improvements
jtourkos Apr 30, 2025
2ea43d6
refactor: remove isLatestEvent function
jtourkos Apr 30, 2025
7487067
feat: process latest Drip List data
jtourkos May 1, 2025
e188926
feat: process latest Ecosystem data
jtourkos May 1, 2025
61369a3
fix: wrong table name when reverting migrations
jtourkos May 1, 2025
ef4244e
refactor: remove util function for calculating AddressDriver IDs
jtourkos May 1, 2025
134d1ba
refactor: lock when handling metadata
jtourkos May 2, 2025
6c076a1
refactor: fine tune retry strategy
jtourkos May 2, 2025
54bece7
feat: index OwnerUpdated events
jtourkos May 2, 2025
f03d1d7
feat: process latest Project data
jtourkos May 2, 2025
7131be4
refactor: remove underscore prefix from last indexed block model name
jtourkos May 3, 2025
1cae034
refactor: fine tune retry strategy
jtourkos May 5, 2025
9aa654e
refactor: properly handle mint
jtourkos May 5, 2025
7bb81ee
feat: process Projects
jtourkos May 5, 2025
7297de3
refactor: simplify common timestamps column creation
jtourkos May 5, 2025
08e68ec
refactor: rename split receivers table
jtourkos May 5, 2025
c99d019
Merge branch 'ecosystems' into staging
jtourkos May 9, 2025
c0c0fd1
feat: integrate with RepoSubAccountDriver
jtourkos May 13, 2025
244d247
Merge branch 'reposubaccountdriver-integration' into staging
jtourkos May 13, 2025
9943fa3
fix: missing RepoSubAccountDriver ABI
jtourkos May 13, 2025
4fc8a88
fix: wrong account id in FindOrCreate
jtourkos May 13, 2025
5032d67
Merge branch 'reposubaccountdriver-integration' into staging
jtourkos May 13, 2025
c42585e
fix: wrong logic when verifying project sources
jtourkos May 13, 2025
38a225c
Merge branch 'reposubaccountdriver-integration' into staging
jtourkos May 13, 2025
4d00bc8
fix: wrong project verification logic
jtourkos May 13, 2025
833f690
Merge branch 'reposubaccountdriver-integration' into staging
jtourkos May 13, 2025
476f68c
feat: index ecosystem avatar and color
jtourkos May 14, 2025
2b5effb
refactor: make color and avatar required in ecosystems
jtourkos May 14, 2025
1d71617
fix?
efstajas May 15, 2025
c6c5156
fix: wrong `splitsToRepoDriverSubAccount` validator logic
jtourkos May 15, 2025
1e8e3f5
Merge branch 'reposubaccountdriver-integration' into staging
jtourkos May 15, 2025
69d3772
Merge branch 'staging' into zksync-era-sepolia
efstajas May 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .env.template
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ SHOULD_START_MONITORING_UI=boolean # Optional. If true, the app will start the m

VISIBILITY_THRESHOLD_BLOCK_NUMBER=number # Optional. The block number to start indexing Project and Drip List visibility data from. Defaults to 0.

ECOSYSTEM_DEPLOYER=string # Optional. The address of the ecosystem deployer. If specified, NFT transfers will not be hidden by default.

### INDEXING OPTIONS

POLLING_INTERVAL=number # Optional. The interval in milliseconds to poll the blockchain for new events. Defaults to 5000.
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# vscode
.vscode/settings.json
.vscode/*

# Generated code
contracts
Expand Down
40 changes: 40 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "💧Build Contracts",
"type": "shell",
"command": "npm run build:contracts",
"group": "build"
},
{
"label": "💧Build Project",
"type": "shell",
"command": "npm run build",
"group": "build"
},
{
"label": "💧Start Dev Server",
"type": "shell",
"command": "npm run dev",
"isBackground": true,
"problemMatcher": []
},
{
"label": "💧Start Production",
"type": "shell",
"command": "npm run start"
},
{
"label": "💧Compile",
"type": "shell",
"command": "npm run check",
"group": "build"
},
{
"label": "💧Clean Docker Volumes",
"type": "shell",
"command": "npm run docker:clean"
}
]
}
88 changes: 88 additions & 0 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# 🗂️ Database Migrations

## 🛠️ Creating a New Migration

To generate a new migration, run:

```bash
npm run db:create-migration -- --name your_migration_name
```

This will create a new file in `src/db/migrations`.

Rename the file extension from `.js` to `.ts`, and implement your migration using the following structure:

```ts
import { QueryInterface } from 'sequelize';

export async function up({ context: sequelize }: any): Promise<void> {
const queryInterface: QueryInterface = sequelize.getQueryInterface();

// Add your migration changes here.
}

export async function down({ context: sequelize }: any): Promise<void> {
const queryInterface: QueryInterface = sequelize.getQueryInterface();

// Add your revert logic here.
}
```

Sequelize does not fully support TypeScript out of the box. Manual steps like renaming and typing are required...

> ⚠️ Make sure the project is built before running this scripts, as it uses the compiled .js files under dist.

---

## 🚀 Running Migrations

Migrations do **not** run automatically. To apply them:

1. **Clean the project**

```bash
npm run clean
```

2. **Build the project**

```bash
npm run build
```

3. **Run pending migrations**

```bash
npm run db:run-migrations
```

🤓 Alternatively, use:

```bash
npm run dev:db:run-migrations
```

This runs all the above steps in one go.

## 🔁 Reverting the Last Migration

To undo the most recently applied migration:

```bash
npm run db:revert-migration
```

> ⚠️ Make sure the project is built before running this script, as it uses the compiled .js files under dist.

## 📋 Checking Migration Status

To view the status of all migrations (which ones have been applied and which are pending), run:

```bash
npm run dev:db:log-pending-migrations
```

This will output a list of migrations with their current status:

- `up` indicates the migration has been applied.
- `down` indicates the migration is still pending.
Loading