Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
c0ad747
Add leveraged loop staked ether test scenario
0xSacha Aug 19, 2025
f9f90a0
Update OpenZeppelin to v3.0.0-alpha.1 and remove deprecated OZ 4626 i…
0xSacha Aug 19, 2025
6beb1d1
Refactor merkle tree generation and add json merkle creator
0xSacha Aug 19, 2025
16e22e4
rename strategy merkle tree
0xSacha Aug 20, 2025
efc129b
Add backend repository structure
0xSacha Aug 20, 2025
993f2e2
enhance backend infrastructure
0xSacha Aug 23, 2025
e354ea9
Refactor Vesu decoder and sanitizer components
0xSacha Aug 23, 2025
77f1265
Add event logging for vault allocator contract calls
0xSacha Aug 23, 2025
515fb28
Enhance AVNU middleware with rate limiting and improved swap logic
0xSacha Aug 25, 2025
fb4c9b5
Remove unused import and fix price calculation in vault packages
0xSacha Aug 26, 2025
1f1b04c
Add scripts directory and update gitignore
0xSacha Aug 26, 2025
2c87b39
Add bring_liquidity functionality and vault allocator test utilities
0xSacha Aug 26, 2025
5016478
Add uncap decoder and sanitizer
0xSacha Aug 26, 2025
9579b45
Delete constants.ts
0xSacha Aug 26, 2025
e583f6f
Add backend development infrastructure and improve configuration
0xSacha Aug 26, 2025
2e48672
Add aum component
0xSacha Sep 3, 2025
1f45b2f
Update AUM provider interfaces and implementations
0xSacha Sep 4, 2025
511fdde
Update deployment scripts and configuration
0xSacha Sep 4, 2025
efab21c
Add new SDK implementation
0xSacha Sep 4, 2025
adb354e
Refactor backend architecture and improve pending redeems logic
0xSacha Sep 4, 2025
cf09fe0
Update backend README with comprehensive status and TODOs
0xSacha Sep 4, 2025
35663e7
Update README.md
0xSacha Sep 4, 2025
38429ff
Add BringLiquidity event to vault contract
0xSacha Sep 4, 2025
aafcffe
Add GitHub workflow and Docker files
0xSacha Sep 4, 2025
7ef907c
Fix Docker build context and dockerfile paths for backend monorepo
0xSacha Sep 4, 2025
0d3ada0
Add Prisma client generation to all Dockerfiles
0xSacha Sep 4, 2025
d67e16d
Add missing Dockerfile.relayerAutomaticRedeem and update CI workflow
0xSacha Sep 4, 2025
c36822e
Update release.yml
0xSacha Sep 4, 2025
c859a5b
Fix Docker context and file paths - use root context with backend/ pr…
0xSacha Sep 4, 2025
1d0fd7e
Fix Docker configuration and add docker-compose.yml
0xSacha Sep 4, 2025
4342810
Fix missing dependencies in Docker containers
0xSacha Sep 4, 2025
05387e2
Add missing @forge/starknet dependency to indexer package.json
0xSacha Sep 4, 2025
6c6343f
Update pnpm lockfile for indexer dependency changes
0xSacha Sep 4, 2025
30bb568
Remove unnecessary @forge/starknet dependency from indexer
0xSacha Sep 4, 2025
1197088
Update indexer.module.ts
0xSacha Sep 4, 2025
b32e21a
Remove flashloan functionality from vault allocator
0xSacha Sep 10, 2025
2b3ddc8
Remove Vesu singleton dependency and update vault event structure
0xSacha Sep 10, 2025
87d6821
Add ERC721Enumerable support and new merkle tree management system
0xSacha Sep 11, 2025
dd3d34b
Update Vesu integration interface to support versioning
0xSacha Sep 11, 2025
c7cd700
fix merkle tree
0xSacha Sep 12, 2025
1d8dad8
Add upgrade functionality to AVNU middleware
0xSacha Sep 12, 2025
642714d
fix: high risk audit finding for report
0xSacha Sep 15, 2025
c620410
update hash configs
0xSacha Sep 15, 2025
bb06ebc
Add Vesu V2 specific decoder and sanitizer implementation
0xSacha Sep 16, 2025
223156d
feat: updated ERC4626LimitConfigImpl
JordyRo1 Sep 16, 2025
f598774
feat: interface
JordyRo1 Sep 16, 2025
39bf012
feat: update test error
JordyRo1 Sep 16, 2025
ce5f9bb
feat: some tests
JordyRo1 Sep 16, 2025
2aa7d43
fix: review
JordyRo1 Sep 17, 2025
a9c1fe6
Update registery.cairo
0xSacha Sep 17, 2025
29cc5ef
Merge pull request #1 from JordyRo1/feat-flexible-max-cap
0xSacha Sep 17, 2025
f180fb0
refactor: improve code formatting and add vault allocator authorization
0xSacha Sep 17, 2025
0ccbf4c
refactor: improve rate limiting implementation in AVNU middleware
0xSacha Sep 17, 2025
43c8fe4
refactor: update contract hashes and SDK package name
0xSacha Sep 18, 2025
9d3d2b4
feat: Add Defi spring (SNF Style) rewards decoder and sanitizer
akiraonstarknet Sep 18, 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
71 changes: 71 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: release-images

on:
push:
tags:
- "v*" # ex: v1.0.0

permissions:
contents: read
packages: write

jobs:
build-and-push:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- service: api
dockerfile: backend/Dockerfile.api
image: ghcr.io/forgeyields/svk-api
- service: indexer
dockerfile: backend/Dockerfile.indexer
image: ghcr.io/forgeyields/svk-indexer
- service: aum
dockerfile: backend/Dockerfile.relayerOnChainAum
image: ghcr.io/forgeyields/svk-aum
- service: relayer-redeem
dockerfile: backend/Dockerfile.relayerAutomaticRedeem
image: ghcr.io/forgeyields/svk-relayer-redeem

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Extract version
id: ver
run: |
TAG="${GITHUB_REF_NAME}"
echo "version=${TAG#v}" >> $GITHUB_OUTPUT
echo "mm=$(echo ${TAG#v} | awk -F. '{print $1"."$2}')" >> $GITHUB_OUTPUT
echo "maj=$(echo ${TAG#v} | awk -F. '{print $1}')" >> $GITHUB_OUTPUT

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Buildx
uses: docker/setup-buildx-action@v3

- name: Login GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build + Push ${{ matrix.service }}
uses: docker/build-push-action@v6
with:
context: .
file: ${{ matrix.dockerfile }}
push: true
platforms: linux/amd64
tags: |
${{ matrix.image }}:v${{ steps.ver.outputs.version }}
${{ matrix.image }}:v${{ steps.ver.outputs.mm }}
${{ matrix.image }}:latest
cache-from: type=gha
cache-to: type=gha,mode=max
provenance: false
sbom: false
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
target
.snfoundry_cache
.snfoundry_cache

# Deployment files (user-specific)
scripts/deployments.json

.env
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,12 @@ scarb build
snforge test
```

### Scripts & Backend

For deployment scripts and configuration utilities, see [scripts/README.md](scripts/README.md).

For backend services (API and indexer), see [backend/README.md](backend/README.md).

## Testing

The project includes comprehensive test suites:
Expand Down
86 changes: 43 additions & 43 deletions Scarb.lock
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ checksum = "sha256:1e08ebba0ed9f7217b8efc283d2ad41730257cf41a47ca88a94fb0fafad22

[[package]]
name = "openzeppelin"
version = "2.0.0"
source = "registry+https://scarbs.xyz/"
checksum = "sha256:5e4fdecc957cfca7854d95912dc72d9f725517c063b116512900900add29fd77"
version = "3.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts#a2bdd1bdbdf96a9291ba0f2269f1e11c451fddb9"
dependencies = [
"openzeppelin_access",
"openzeppelin_account",
"openzeppelin_finance",
"openzeppelin_governance",
"openzeppelin_interfaces",
"openzeppelin_introspection",
"openzeppelin_merkle_tree",
"openzeppelin_presets",
Expand All @@ -28,67 +28,73 @@ dependencies = [

[[package]]
name = "openzeppelin_access"
version = "2.0.0"
source = "registry+https://scarbs.xyz/"
checksum = "sha256:511681dd26d814ee2bc996d44ff8cb4aaa5ae9d14272130def7eb901cf004850"
version = "3.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts#a2bdd1bdbdf96a9291ba0f2269f1e11c451fddb9"
dependencies = [
"openzeppelin_interfaces",
"openzeppelin_introspection",
]

[[package]]
name = "openzeppelin_account"
version = "2.0.0"
source = "registry+https://scarbs.xyz/"
checksum = "sha256:fb3381c50d68b028d3801feb43df378e2bd62137b6884844f8f60aefe796188b"
version = "3.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts#a2bdd1bdbdf96a9291ba0f2269f1e11c451fddb9"
dependencies = [
"openzeppelin_interfaces",
"openzeppelin_introspection",
"openzeppelin_utils",
]

[[package]]
name = "openzeppelin_finance"
version = "2.0.0"
source = "registry+https://scarbs.xyz/"
checksum = "sha256:e9456ef69502a87c4c99bf50145351b50950f8b11244847d92935c466c4ba787"
version = "3.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts#a2bdd1bdbdf96a9291ba0f2269f1e11c451fddb9"
dependencies = [
"openzeppelin_access",
"openzeppelin_interfaces",
"openzeppelin_token",
]

[[package]]
name = "openzeppelin_governance"
version = "2.0.0"
source = "registry+https://scarbs.xyz/"
checksum = "sha256:056e6d6f3d48193b53f06283884f8a9675f986fc85425f6a40e8c1aeb3b3ecfa"
version = "3.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts#a2bdd1bdbdf96a9291ba0f2269f1e11c451fddb9"
dependencies = [
"openzeppelin_access",
"openzeppelin_account",
"openzeppelin_interfaces",
"openzeppelin_introspection",
"openzeppelin_token",
"openzeppelin_utils",
]

[[package]]
name = "openzeppelin_interfaces"
version = "2.1.0"
source = "git+https://github.com/OpenZeppelin/cairo-contracts#a2bdd1bdbdf96a9291ba0f2269f1e11c451fddb9"

[[package]]
name = "openzeppelin_introspection"
version = "2.0.0"
source = "registry+https://scarbs.xyz/"
checksum = "sha256:87773ed6cd2318f169283ecbbb161890d1996260a80302d81ec45b70ee5e54c1"
version = "3.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts#a2bdd1bdbdf96a9291ba0f2269f1e11c451fddb9"
dependencies = [
"openzeppelin_interfaces",
]

[[package]]
name = "openzeppelin_merkle_tree"
version = "2.0.0"
source = "registry+https://scarbs.xyz/"
checksum = "sha256:47f80c9ce59557774243214f8e75c5e866f30f3d8daa755855f6ffd01c89ca89"
version = "3.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts#a2bdd1bdbdf96a9291ba0f2269f1e11c451fddb9"

[[package]]
name = "openzeppelin_presets"
version = "2.0.0"
source = "registry+https://scarbs.xyz/"
checksum = "sha256:36c761ee923f1dc0887c0eab8c224b49ac242dbfe9163fbb0b08562042ab3d98"
version = "3.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts#a2bdd1bdbdf96a9291ba0f2269f1e11c451fddb9"
dependencies = [
"openzeppelin_access",
"openzeppelin_account",
"openzeppelin_finance",
"openzeppelin_interfaces",
"openzeppelin_introspection",
"openzeppelin_token",
"openzeppelin_upgrades",
Expand All @@ -97,40 +103,35 @@ dependencies = [

[[package]]
name = "openzeppelin_security"
version = "2.0.0"
source = "registry+https://scarbs.xyz/"
checksum = "sha256:902932ec296c2f400e0ac7c579edeaafd6067b6ce6d9854c1191de28e396ffe3"
version = "3.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts#a2bdd1bdbdf96a9291ba0f2269f1e11c451fddb9"
dependencies = [
"openzeppelin_interfaces",
]

[[package]]
name = "openzeppelin_token"
version = "2.0.0"
source = "registry+https://scarbs.xyz/"
checksum = "sha256:6fe61f63b5a6706018265fb7373b6e5bd3ff829bdc760b2b90296b1e708d180c"
version = "3.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts#a2bdd1bdbdf96a9291ba0f2269f1e11c451fddb9"
dependencies = [
"openzeppelin_access",
"openzeppelin_account",
"openzeppelin_interfaces",
"openzeppelin_introspection",
"openzeppelin_utils",
]

[[package]]
name = "openzeppelin_upgrades"
version = "2.0.0"
source = "registry+https://scarbs.xyz/"
checksum = "sha256:560d57a9c3f3ec5a476e82fec8963c93c8df63a4ff9ff134f64ab8383bde3c61"
version = "3.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts#a2bdd1bdbdf96a9291ba0f2269f1e11c451fddb9"

[[package]]
name = "openzeppelin_utils"
version = "2.0.0"
source = "registry+https://scarbs.xyz/"
checksum = "sha256:bf799c794139837f397975ffdf6a7ed5032d198bbf70e87a8f44f144a9dfc505"

[[package]]
name = "pragma_lib"
version = "2.11.4"
source = "git+https://github.com/astraly-labs/pragma-lib#edb55442d36565cbd99c226e38c4f8040efb774b"
version = "3.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts#a2bdd1bdbdf96a9291ba0f2269f1e11c451fddb9"
dependencies = [
"openzeppelin",
"openzeppelin_interfaces",
]

[[package]]
Expand Down Expand Up @@ -173,6 +174,5 @@ version = "0.1.0"
dependencies = [
"alexandria_math",
"openzeppelin",
"pragma_lib",
"snforge_std",
]
3 changes: 1 addition & 2 deletions Scarb.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,9 @@ keywords = [

[workspace.dependencies]
starknet = "2.12.0"
openzeppelin = "2.0.0"
openzeppelin = { git = "https://github.com/OpenZeppelin/cairo-contracts" }
snforge_std = "0.48.0"
alexandria_math = "0.6.0"
pragma_lib = { git = "https://github.com/astraly-labs/pragma-lib" }


[dependencies]
Expand Down
83 changes: 83 additions & 0 deletions backend/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Dependencies
node_modules
**/node_modules
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*

# Build outputs
dist
build
**/dist
**/build

# Development files
.env
.env.local
.env.development.local
.env.test.local
.env.production.local

# IDE and editor files
.vscode
.idea
*.swp
*.swo
*~

# OS generated files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

# Git
.git
.gitignore

# Docker
Dockerfile*
docker-compose*.yml
.dockerignore

# Logs
logs
*.log

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Dependency directories
.pnp
.pnp.js

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Prisma generated client (will be regenerated in container)
**/prisma/generated

# Temporary files
tmp/
temp/

# Documentation
*.md
docs/

# Test files
test/
tests/
**/*.test.*
**/*.spec.*
Loading