Skip to content

Commit 8d5dc8e

Browse files
committed
Resolve conflicts: merge main into PR #239 (combine both changes)
2 parents 59fd298 + dfa0c10 commit 8d5dc8e

File tree

156 files changed

+27284
-3635
lines changed

Some content is hidden

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

156 files changed

+27284
-3635
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
## Bug Report
2+
3+
### Description
4+
Describe the issue clearly.
5+
6+
---
7+
8+
### Steps to Reproduce
9+
1.
10+
2.
11+
3.
12+
13+
---
14+
15+
### Expected Behavior
16+
What should happen?
17+
18+
---
19+
20+
### Actual Behavior
21+
What actually happens?
22+
23+
---
24+
25+
### Environment
26+
- OS:
27+
- Node version:
28+
- Browser:
29+
30+
---
31+
32+
### Additional Context
33+
Logs, screenshots, or extra details.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
## Feature Request
2+
3+
### Description
4+
What feature would you like to see?
5+
6+
---
7+
8+
### Problem
9+
What problem does this solve?
10+
11+
---
12+
13+
### Proposed Solution
14+
Describe your idea.
15+
16+
---
17+
18+
### Alternatives Considered
19+
Any other approaches?
20+
21+
---
22+
23+
### Additional Context
24+
Add extra details if needed.

.github/pull_request_template.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
2+
## Description
3+
4+
Briefly describe what this PR does.
5+
6+
---
7+
8+
## Related Issue
9+
10+
Closes #
11+
12+
---
13+
14+
## Test Plan
15+
16+
- [ ] Tested locally
17+
- [ ] Verified expected behavior
18+
- [ ] No regressions introduced
19+
20+
---
21+
22+
## Screenshots (if applicable)
23+
24+
---
25+
26+
## Checklist
27+
28+
- [ ] Code builds successfully
29+
- [ ] Tests pass
30+
- [ ] Follows project conventions
31+
- [ ] No sensitive data exposed

.github/workflows/contracts.yml

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: Contracts
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths:
7+
- "contracts/**"
8+
pull_request:
9+
branches: [main]
10+
paths:
11+
- "contracts/**"
12+
13+
permissions:
14+
contents: read
15+
16+
concurrency:
17+
group: contracts-${{ github.workflow }}-${{ github.ref }}
18+
cancel-in-progress: true
19+
20+
jobs:
21+
build-contracts:
22+
runs-on: ubuntu-latest
23+
timeout-minutes: 20
24+
defaults:
25+
run:
26+
working-directory: contracts
27+
28+
steps:
29+
- uses: actions/checkout@v4
30+
31+
- name: Install Rust
32+
uses: dtolnay/rust-toolchain@stable
33+
with:
34+
targets: wasm32-unknown-unknown
35+
36+
- name: Cache Rust dependencies
37+
uses: Swatinem/rust-cache@v2
38+
with:
39+
workspaces: contracts
40+
41+
- name: Build contracts
42+
run: cargo build --target wasm32-unknown-unknown --release
43+
44+
- name: Run contract tests
45+
run: cargo test
46+
47+
- name: Check contract sizes
48+
shell: bash
49+
run: |
50+
set -euo pipefail
51+
shopt -s nullglob
52+
53+
wasm_files=(target/wasm32-unknown-unknown/release/*.wasm)
54+
55+
if [ ${#wasm_files[@]} -eq 0 ]; then
56+
echo "No WASM artifacts found in target/wasm32-unknown-unknown/release"
57+
exit 1
58+
fi
59+
60+
for wasm in "${wasm_files[@]}"; do
61+
size=$(wc -c < "$wasm")
62+
echo "$wasm: ${size} bytes"
63+
64+
if [ "$size" -gt 65536 ]; then
65+
echo "WARNING: Contract exceeds 64KB limit"
66+
fi
67+
done

.github/workflows/e2e.yml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: E2E Tests
2+
3+
on:
4+
pull_request:
5+
branches: [main]
6+
7+
jobs:
8+
playwright:
9+
name: Playwright E2E (Desktop + Mobile)
10+
runs-on: ubuntu-latest
11+
timeout-minutes: 30
12+
13+
steps:
14+
- name: Checkout repository
15+
uses: actions/checkout@v4
16+
17+
- name: Set up Node.js
18+
uses: actions/setup-node@v4
19+
with:
20+
node-version: '20'
21+
cache: 'npm'
22+
cache-dependency-path: client/package-lock.json
23+
24+
- name: Install dependencies
25+
working-directory: client
26+
run: npm ci
27+
28+
- name: Install Playwright browsers
29+
working-directory: client
30+
run: npx playwright install --with-deps
31+
32+
- name: Verify preview deployment URL is available
33+
env:
34+
E2E_BASE_URL: ${{ secrets.E2E_BASE_URL }}
35+
run: |
36+
if [ -z "$E2E_BASE_URL" ]; then
37+
echo "Missing E2E_BASE_URL secret. Set it to your Vercel preview deployment URL pattern for PR testing."
38+
exit 1
39+
fi
40+
41+
- name: Run Playwright tests
42+
working-directory: client
43+
env:
44+
CI: true
45+
E2E_BASE_URL: ${{ secrets.E2E_BASE_URL }}
46+
run: npx playwright test
47+
48+
- name: Upload Playwright report
49+
if: always()
50+
uses: actions/upload-artifact@v4
51+
with:
52+
name: playwright-report
53+
path: client/playwright-report/
54+
retention-days: 14
55+
56+
- name: Upload failure screenshots and traces
57+
if: failure()
58+
uses: actions/upload-artifact@v4
59+
with:
60+
name: playwright-test-results
61+
path: client/test-results/
62+
retention-days: 14

.github/workflows/lint.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Lint
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
lint-backend:
11+
runs-on: ubuntu-latest
12+
defaults:
13+
run:
14+
working-directory: backend
15+
steps:
16+
- uses: actions/checkout@v4
17+
- uses: actions/setup-node@v4
18+
with:
19+
node-version: '20'
20+
cache: npm
21+
cache-dependency-path: backend/package-lock.json
22+
- run: npm ci
23+
- run: npx eslint src --ext .ts --max-warnings 0
24+
25+
lint-client:
26+
runs-on: ubuntu-latest
27+
defaults:
28+
run:
29+
working-directory: client
30+
steps:
31+
- uses: actions/checkout@v4
32+
- uses: actions/setup-node@v4
33+
with:
34+
node-version: '20'
35+
cache: npm
36+
cache-dependency-path: client/package-lock.json
37+
- run: npm ci
38+
- run: npx next lint

.github/workflows/soroban_tests.yml

Lines changed: 0 additions & 29 deletions
This file was deleted.

.github/workflows/test.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Tests
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
test-backend:
11+
runs-on: ubuntu-latest
12+
defaults:
13+
run:
14+
working-directory: backend
15+
env:
16+
NODE_ENV: test
17+
SUPABASE_URL: ${{ secrets.SUPABASE_URL }}
18+
SUPABASE_SERVICE_ROLE_KEY: ${{ secrets.SUPABASE_SERVICE_ROLE_KEY }}
19+
JWT_SECRET: test-secret
20+
ADMIN_API_KEY: test-admin-key
21+
steps:
22+
- uses: actions/checkout@v4
23+
- uses: actions/setup-node@v4
24+
with:
25+
node-version: '20'
26+
cache: 'npm'
27+
cache-dependency-path: backend/package-lock.json
28+
- run: npm ci
29+
- run: npm test -- --coverage --ci
30+
- uses: actions/upload-artifact@v4
31+
if: always()
32+
with:
33+
name: coverage-report
34+
path: backend/coverage/

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,4 +100,4 @@ coverage/
100100
*.claude
101101
CLAUDE.md
102102

103-
backend/package-lock.json
103+
!backend/package-lock.json
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"specId": "7fce59ae-4f86-43e1-b223-34de74af24d0", "workflowType": "requirements-first", "specType": "feature"}

0 commit comments

Comments
 (0)