Skip to content

Commit 217e0f5

Browse files
authored
chore: update all dependencies from 14 Dependabot PRs (#115)
CI Actions: - docker/setup-buildx-action v3 → v4 - docker/build-push-action v6 → v7 - docker/setup-qemu-action v3 → v4 - docker/login-action v3 → v4 - docker/metadata-action v5 → v6 Rust dependencies: - anchor-lang 0.32 → 1.0 (breaking: remove explicit enum discriminants, CpiContext takes Pubkey, Context single lifetime) - anchor-spl 0.32 → 1.0 - solana-program 3.0 → 4.0 - solana-sdk 3.0 → 4.0 - tokio-tungstenite 0.28 → 0.29 - axum-test 18.7 → 20.0 - deadpool-redis 0.22 → 0.23 - anchor-cli 0.32.1 → 1.0.0 (CI) TypeScript SDK: - @eslint/js 9.39.2 → 10.0.1 - eslint 9.39.2 → 10.0.0 - @types/node 25.2.0 → 25.5.0 - typescript-eslint 8.54.0 → 8.57.0 - vitest 4.0.18 → 4.1.0 - Remove redundant @typescript-eslint/eslint-plugin and @typescript-eslint/parser Closes #98 #100 #101 #102 #104 #105 #106 #107 #108 #110 #111 #112 #113 #114
1 parent 710e39e commit 217e0f5

53 files changed

Lines changed: 5829 additions & 1472 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ jobs:
122122
123123
- name: Install Anchor CLI
124124
run: |
125-
cargo install anchor-cli@0.32.1 --force
125+
cargo install anchor-cli@1.0.0 --force
126126
127127
- name: Cache cargo registry
128128
uses: actions/cache@v5
@@ -189,10 +189,10 @@ jobs:
189189
- uses: actions/checkout@v6
190190

191191
- name: Set up Docker Buildx
192-
uses: docker/setup-buildx-action@v3
192+
uses: docker/setup-buildx-action@v4
193193

194194
- name: Build Docker image
195-
uses: docker/build-push-action@v6
195+
uses: docker/build-push-action@v7
196196
with:
197197
context: .
198198
file: ./Docker/${{ matrix.service }}.Dockerfile

.github/workflows/release.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,21 +50,21 @@ jobs:
5050
- uses: actions/checkout@v6
5151

5252
- name: Set up QEMU
53-
uses: docker/setup-qemu-action@v3
53+
uses: docker/setup-qemu-action@v4
5454

5555
- name: Set up Docker Buildx
56-
uses: docker/setup-buildx-action@v3
56+
uses: docker/setup-buildx-action@v4
5757

5858
- name: Log in to Container Registry
59-
uses: docker/login-action@v3
59+
uses: docker/login-action@v4
6060
with:
6161
registry: ${{ env.REGISTRY }}
6262
username: ${{ github.actor }}
6363
password: ${{ secrets.GITHUB_TOKEN }}
6464

6565
- name: Extract metadata
6666
id: meta
67-
uses: docker/metadata-action@v5
67+
uses: docker/metadata-action@v6
6868
with:
6969
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-${{ matrix.service }}
7070
tags: |
@@ -74,7 +74,7 @@ jobs:
7474
type=sha
7575
7676
- name: Build and push
77-
uses: docker/build-push-action@v6
77+
uses: docker/build-push-action@v7
7878
with:
7979
context: .
8080
file: ./Docker/${{ matrix.service }}.Dockerfile

.github/workflows/security.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,10 @@ jobs:
116116
- uses: actions/checkout@v6
117117

118118
- name: Set up Docker Buildx
119-
uses: docker/setup-buildx-action@v3
119+
uses: docker/setup-buildx-action@v4
120120

121121
- name: Build image for scanning
122-
uses: docker/build-push-action@v6
122+
uses: docker/build-push-action@v7
123123
with:
124124
context: .
125125
file: ./Docker/${{ matrix.service }}.Dockerfile

.windsurf/issue-plan.md

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
# Matchbook GitHub Issue Plan
2+
3+
> **WARNING**: This file must NEVER be committed to the repository.
4+
5+
## Labels
6+
7+
| Label | Color | Description |
8+
|-------|-------|-------------|
9+
| on-chain | 7B68EE | Solana program |
10+
| off-chain | 4682B4 | Backend services |
11+
| sdk | 20B2AA | Client SDKs |
12+
| infra | 708090 | Deployment and ops |
13+
| docs | 0075ca | Documentation |
14+
| testing | d4c5f9 | Tests |
15+
16+
## Milestones
17+
18+
| Milestone | Description |
19+
|-----------|-------------|
20+
| M1: On-Chain Core | Core program with all instructions |
21+
| M2: Off-Chain Services | Indexer, API, Crank |
22+
| M3: Client SDKs | Rust and TypeScript SDKs |
23+
| M4: Production Ready | Deployment, monitoring, docs |
24+
25+
## Issue Breakdown
26+
27+
### Milestone 1: On-Chain Core (16 issues)
28+
29+
| # | Title | Dependencies | Labels |
30+
|---|-------|--------------|--------|
31+
| 1 | Project scaffolding | - | on-chain, infra |
32+
| 2 | State: Market account | #1 | on-chain |
33+
| 3 | State: OrderBook accounts (B+ tree) | #1 | on-chain |
34+
| 4 | State: EventQueue account | #1 | on-chain |
35+
| 5 | State: OpenOrders account | #1 | on-chain |
36+
| 6 | Error types | #1 | on-chain |
37+
| 7 | Instruction: CreateMarket | #2, #3, #4, #6 | on-chain |
38+
| 8 | Instruction: CreateOpenOrders | #5, #6 | on-chain |
39+
| 9 | Instruction: Deposit | #5, #7 | on-chain |
40+
| 10 | Instruction: Withdraw | #5, #7 | on-chain |
41+
| 11 | Instruction: PlaceOrder | #3, #4, #5, #7 | on-chain |
42+
| 12 | Instruction: CancelOrder | #3, #4, #5, #11 | on-chain |
43+
| 13 | Instruction: CancelAllOrders | #12 | on-chain |
44+
| 14 | Instruction: MatchOrders (Crank) | #3, #4, #11 | on-chain |
45+
| 15 | Instruction: ConsumeEvents | #4, #5, #14 | on-chain |
46+
| 16 | Integration tests + Devnet deployment | #7-#15 | on-chain, testing |
47+
48+
### Milestone 2: Off-Chain Services (9 issues)
49+
50+
| # | Title | Dependencies | Labels |
51+
|---|-------|--------------|--------|
52+
| 17 | Database schema (PostgreSQL + TimescaleDB) | M1 complete | off-chain, infra |
53+
| 18 | Indexer: Geyser listener | M1 complete | off-chain |
54+
| 19 | Indexer: Account parser | #18 | off-chain |
55+
| 20 | Indexer: Book builder | #19 | off-chain |
56+
| 21 | Indexer: Event processor | #19 | off-chain |
57+
| 22 | API: REST endpoints | #17, #20, #21 | off-chain |
58+
| 23 | API: WebSocket server | #20, #21 | off-chain |
59+
| 24 | Crank service | M1 complete | off-chain |
60+
| 25 | Redis integration | #22, #23 | off-chain |
61+
62+
### Milestone 3: Client SDKs (7 issues)
63+
64+
| # | Title | Dependencies | Labels |
65+
|---|-------|--------------|--------|
66+
| 26 | Rust SDK: Core types | M1 complete | sdk |
67+
| 27 | Rust SDK: Instruction builders | #26 | sdk |
68+
| 28 | Rust SDK: HTTP client | #22, #26 | sdk |
69+
| 29 | Rust SDK: WebSocket client | #23, #26 | sdk |
70+
| 30 | TypeScript SDK: Types | M1 complete | sdk |
71+
| 31 | TypeScript SDK: Client | #22, #23, #30 | sdk |
72+
| 32 | SDK examples | #27, #28, #29, #31 | sdk, docs |
73+
74+
### Milestone 4: Production Ready (7 issues)
75+
76+
| # | Title | Dependencies | Labels |
77+
|---|-------|--------------|--------|
78+
| 33 | Docker configuration | M2 complete | infra |
79+
| 34 | Kubernetes manifests | #33 | infra |
80+
| 35 | CI/CD pipeline | #33 | infra |
81+
| 36 | Monitoring setup (Prometheus + Grafana) | #34 | infra |
82+
| 37 | Alerting rules | #36 | infra |
83+
| 38 | Operational runbooks | #36, #37 | infra, docs |
84+
| 39 | README and public documentation | M1, M2, M3 complete | docs |
85+
86+
## Issue Tracking
87+
88+
| Issue # | GitHub # | Created | Title |
89+
|---------|----------|---------|-------|
90+
| 1 | [#1](https://github.com/joaquinbejar/matchbook/issues/1) || Project scaffolding |
91+
| 2 | [#2](https://github.com/joaquinbejar/matchbook/issues/2) || State: Market account |
92+
| 3 | [#3](https://github.com/joaquinbejar/matchbook/issues/3) || State: OrderBook accounts |
93+
| 4 | [#4](https://github.com/joaquinbejar/matchbook/issues/4) || State: EventQueue account |
94+
| 5 | [#5](https://github.com/joaquinbejar/matchbook/issues/5) || State: OpenOrders account |
95+
| 6 | [#6](https://github.com/joaquinbejar/matchbook/issues/6) || Error types |
96+
| 7 | [#7](https://github.com/joaquinbejar/matchbook/issues/7) || Instruction: CreateMarket |
97+
| 8 | [#8](https://github.com/joaquinbejar/matchbook/issues/8) || Instruction: CreateOpenOrders |
98+
| 9 | [#9](https://github.com/joaquinbejar/matchbook/issues/9) || Instruction: Deposit |
99+
| 10 | [#10](https://github.com/joaquinbejar/matchbook/issues/10) || Instruction: Withdraw |
100+
| 11 | [#11](https://github.com/joaquinbejar/matchbook/issues/11) || Instruction: PlaceOrder |
101+
| 12 | [#12](https://github.com/joaquinbejar/matchbook/issues/12) || Instruction: CancelOrder |
102+
| 13 | [#13](https://github.com/joaquinbejar/matchbook/issues/13) || Instruction: CancelAllOrders |
103+
| 14 | [#14](https://github.com/joaquinbejar/matchbook/issues/14) || Instruction: MatchOrders |
104+
| 15 | [#15](https://github.com/joaquinbejar/matchbook/issues/15) || Instruction: ConsumeEvents |
105+
| 16 | [#16](https://github.com/joaquinbejar/matchbook/issues/16) || Integration tests + Devnet deployment |
106+
| 17 | [#17](https://github.com/joaquinbejar/matchbook/issues/17) || Database schema |
107+
| 18 | [#18](https://github.com/joaquinbejar/matchbook/issues/18) || Indexer: Geyser listener |
108+
| 19 | [#19](https://github.com/joaquinbejar/matchbook/issues/19) || Indexer: Account parser |
109+
| 20 | [#20](https://github.com/joaquinbejar/matchbook/issues/20) || Indexer: Book builder |
110+
| 21 | [#21](https://github.com/joaquinbejar/matchbook/issues/21) || Indexer: Event processor |
111+
| 22 | [#22](https://github.com/joaquinbejar/matchbook/issues/22) || API: REST endpoints |
112+
| 23 | [#23](https://github.com/joaquinbejar/matchbook/issues/23) || API: WebSocket server |
113+
| 24 | [#24](https://github.com/joaquinbejar/matchbook/issues/24) || Crank service |
114+
| 25 | [#25](https://github.com/joaquinbejar/matchbook/issues/25) || Redis integration |
115+
| 26 | [#26](https://github.com/joaquinbejar/matchbook/issues/26) || Rust SDK: Core types |
116+
| 27 | [#27](https://github.com/joaquinbejar/matchbook/issues/27) || Rust SDK: Instruction builders |
117+
| 28 | [#28](https://github.com/joaquinbejar/matchbook/issues/28) || Rust SDK: HTTP client |
118+
| 29 | [#29](https://github.com/joaquinbejar/matchbook/issues/29) || Rust SDK: WebSocket client |
119+
| 30 | [#30](https://github.com/joaquinbejar/matchbook/issues/30) || TypeScript SDK: Types |
120+
| 31 | [#31](https://github.com/joaquinbejar/matchbook/issues/31) || TypeScript SDK: Client |
121+
| 32 | [#32](https://github.com/joaquinbejar/matchbook/issues/32) || SDK examples |
122+
| 33 | [#33](https://github.com/joaquinbejar/matchbook/issues/33) || Docker configuration |
123+
| 34 | [#34](https://github.com/joaquinbejar/matchbook/issues/34) || Kubernetes manifests |
124+
| 35 | [#35](https://github.com/joaquinbejar/matchbook/issues/35) || CI/CD pipeline |
125+
| 36 | [#36](https://github.com/joaquinbejar/matchbook/issues/36) || Monitoring setup |
126+
| 37 | [#37](https://github.com/joaquinbejar/matchbook/issues/37) || Alerting rules |
127+
| 38 | [#38](https://github.com/joaquinbejar/matchbook/issues/38) || Operational runbooks |
128+
| 39 | [#39](https://github.com/joaquinbejar/matchbook/issues/39) || README and public documentation |

.windsurf/issues/M1-issue-1.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# M1 Issue #1: Project Scaffolding
2+
3+
## Overview
4+
5+
Set up the foundational project structure for the Matchbook on-chain program, including Cargo workspace configuration, Anchor framework setup, and basic CI pipeline.
6+
7+
## Acceptance Criteria
8+
9+
- [ ] Cargo workspace configured with `program/` member
10+
- [ ] Anchor.toml configured for devnet and mainnet
11+
- [ ] Basic `lib.rs` with program ID placeholder
12+
- [ ] `Cargo.toml` with required dependencies (anchor-lang, anchor-spl, solana-program)
13+
- [ ] GitHub Actions workflow for `cargo build` and `cargo test`
14+
- [ ] `rustfmt.toml` and `.clippy.toml` for code style
15+
- [ ] Basic README with build instructions
16+
17+
## Technical Approach
18+
19+
### 1. Project Structure
20+
21+
```
22+
matchbook/
23+
├── Cargo.toml # Workspace root (update)
24+
├── Anchor.toml # Anchor configuration (new)
25+
├── program/ # On-chain program (new)
26+
│ ├── Cargo.toml
27+
│ └── src/
28+
│ └── lib.rs
29+
├── .github/
30+
│ └── workflows/
31+
│ └── ci.yml # CI workflow (new)
32+
├── rustfmt.toml # Formatting config (new)
33+
└── .clippy.toml # Clippy config (new)
34+
```
35+
36+
### 2. Dependencies
37+
38+
Based on `.internalDoc/03-onchain-design.md`:
39+
- `anchor-lang = "0.30"` - Anchor framework
40+
- `anchor-spl = "0.30"` - SPL token integration
41+
- `solana-program = "2.0"` - Solana runtime
42+
43+
### 3. Linting Configuration
44+
45+
Based on `.internalDoc/09-rust-guidelines.md`:
46+
- Deny `unwrap_used`, `expect_used`, `panic` in clippy
47+
- Warn on `missing_docs`, `indexing_slicing`
48+
- Configure cognitive complexity threshold
49+
50+
### 4. CI Pipeline
51+
52+
GitHub Actions workflow:
53+
- Trigger on push/PR to main
54+
- Run `cargo fmt --check`
55+
- Run `cargo clippy -- -D warnings`
56+
- Run `cargo test`
57+
- Build with `anchor build`
58+
59+
## Files to Create/Modify
60+
61+
| File | Action | Description |
62+
|------|--------|-------------|
63+
| `Cargo.toml` | Modify | Add `program` to workspace members, add workspace dependencies |
64+
| `program/Cargo.toml` | Create | Program crate configuration |
65+
| `program/src/lib.rs` | Create | Program entry point with placeholder |
66+
| `Anchor.toml` | Create | Anchor configuration |
67+
| `.github/workflows/ci.yml` | Create | CI workflow |
68+
| `rustfmt.toml` | Create | Formatting configuration |
69+
| `.clippy.toml` | Create | Clippy configuration |
70+
71+
## Tests Needed
72+
73+
- Basic compilation test (implicit via CI)
74+
- Program builds successfully with `anchor build`
75+
76+
## Notes
77+
78+
- Program ID will be generated on first `anchor build`
79+
- Edition 2024 requires Rust 1.85+ (current stable is 1.84), will use 2021 for compatibility
80+
- Anchor 0.30 is the latest stable version

0 commit comments

Comments
 (0)