Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
19ec28c
wip: upgrade to svelte 5
yeboster Mar 26, 2026
aa99dc2
wip: upgrade to svelte 5
yeboster Mar 26, 2026
b7645a7
fix: migration to svelte 5
yeboster Mar 26, 2026
96a1da9
wip: fix deprecations
yeboster Mar 26, 2026
cff43da
Revert "wip: fix deprecations"
yeboster Mar 26, 2026
9ce4bb4
fix: wip: upgrade
yeboster Mar 26, 2026
b7b4443
chore: bump to vite8
yeboster Mar 26, 2026
2319544
fix: SMUI 8 Svelte 5 lifecycle bugs and migration cleanup
yeboster Mar 29, 2026
3d536af
chore: drop patch package
yeboster Mar 29, 2026
c1e08d9
feat: drop analytics
yeboster Mar 29, 2026
4d1009c
chore: npm audit fix
yeboster Mar 29, 2026
9e39003
chore: drop patches
yeboster Mar 29, 2026
4bed4ef
chore: update minor deps
yeboster Mar 29, 2026
da6bf04
chore: bump major deps
yeboster Mar 29, 2026
b6dc320
refactor: apply prettier
yeboster Mar 29, 2026
4eb3198
refactor: apply eslint
yeboster Mar 29, 2026
2247f09
chore: add lint on ci
yeboster Mar 29, 2026
411342d
fix: unit tests
yeboster Mar 29, 2026
88ad0a8
feat: drop proposals feature
yeboster Mar 30, 2026
b82b6b5
fix: add back sentry
yeboster Mar 30, 2026
cf3505d
feat: drop eslint
yeboster Mar 30, 2026
398c331
refactor: format with prettier
yeboster Mar 30, 2026
7991d1a
fix: ledger deps resolution
yeboster Mar 30, 2026
8515faa
feat: add back private key connect
yeboster Mar 30, 2026
1079432
fix: private key login
yeboster Mar 30, 2026
3471bac
chore: drop and ignore coverage files
yeboster Mar 30, 2026
9e49408
chore: drop jules files
yeboster Mar 30, 2026
2af7f09
Revert "feat: drop eslint"
yeboster Mar 30, 2026
48c5336
refactor: format package
yeboster Mar 30, 2026
1bc0be7
refactor: apply format
yeboster Mar 30, 2026
212ccbc
chore: add mise
yeboster Mar 30, 2026
ac7604a
chore: drop yarn.lock
yeboster Mar 30, 2026
2a41a77
fix: theme deprecations
yeboster Mar 30, 2026
57596ea
chore: drop useless test
yeboster Mar 30, 2026
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
4 changes: 0 additions & 4 deletions .Jules/palette.md

This file was deleted.

22 changes: 20 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,29 @@ name: CI

on:
push:
branches: [main, integration-tests]
branches: [main, staging]
pull_request:
branches: [main, integration-tests]

jobs:
lint:
name: Lint
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Run prettier and eslint
run: npm run lint

unit-tests:
name: Unit Tests
runs-on: ubuntu-latest
Expand Down
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,4 @@ vite.config.ts.timestamp-*

# Sentry Config File
.sentryclirc
coverage/
test-results/
coverage/*
11 changes: 0 additions & 11 deletions .jules/bolt.md

This file was deleted.

3 changes: 0 additions & 3 deletions .jules/palette.md

This file was deleted.

118 changes: 59 additions & 59 deletions TESTING_PLAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,99 +7,99 @@

## Feature 1: Domain Search & Validation (3 stories)

| ID | Story | Acceptance Criteria |
|----|-------|---------------------|
| 1.1 | Search for domain name on homepage | Search input accepts domain name, results appear, available/taken status |
| 1.2 | Validate domain names before registration | Invalid names show error, valid names proceed, supports subdomains |
| 1.3 | See domain availability status | Shows Available/Taken, parent domain status for subdomains |
| ID | Story | Acceptance Criteria |
| --- | ----------------------------------------- | ------------------------------------------------------------------------ |
| 1.1 | Search for domain name on homepage | Search input accepts domain name, results appear, available/taken status |
| 1.2 | Validate domain names before registration | Invalid names show error, valid names proceed, supports subdomains |
| 1.3 | See domain availability status | Shows Available/Taken, parent domain status for subdomains |

---

## Feature 2: Wallet Connection (5 stories)

| ID | Story | Acceptance Criteria |
|----|-------|---------------------|
| 2.1 | Connect Partisia Wallet | Opens wallet, shows address, persists |
| 2.2 | Connect via MetaMask | Opens MetaMask, shows address, supports Snap |
| 2.3 | Connect via Ledger | Opens Ledger, shows address |
| 2.4 | Disconnect wallet | Clears session, updates UI |
| 2.5 | See account balance | Shows MPC and gas balance |
| ID | Story | Acceptance Criteria |
| --- | ----------------------- | -------------------------------------------- |
| 2.1 | Connect Partisia Wallet | Opens wallet, shows address, persists |
| 2.2 | Connect via MetaMask | Opens MetaMask, shows address, supports Snap |
| 2.3 | Connect via Ledger | Opens Ledger, shows address |
| 2.4 | Disconnect wallet | Clears session, updates UI |
| 2.5 | See account balance | Shows MPC and gas balance |

---

## Feature 3: Domain Registration (5 stories)

| ID | Story | Acceptance Criteria |
|----|-------|---------------------|
| 3.1 | Register available domain | Validated domain, connected wallet, BYOC payment, transaction |
| 3.2 | Choose BYOC token | Support USDT/USDC/etc, fee calculation shown |
| 3.3 | Choose registration duration | 1-5 years, price updates |
| 3.4 | Register subdomain | Parent domain required, owned by user |
| 3.5 | See registration confirmation | Success message, redirect, analytics |
| ID | Story | Acceptance Criteria |
| --- | ----------------------------- | ------------------------------------------------------------- |
| 3.1 | Register available domain | Validated domain, connected wallet, BYOC payment, transaction |
| 3.2 | Choose BYOC token | Support USDT/USDC/etc, fee calculation shown |
| 3.3 | Choose registration duration | 1-5 years, price updates |
| 3.4 | Register subdomain | Parent domain required, owned by user |
| 3.5 | See registration confirmation | Success message, redirect, analytics |

---

## Feature 4: Domain Management (4 stories)

| ID | Story | Acceptance Criteria |
|----|-------|---------------------|
| 4.1 | View domain details | Name, owner, creation date, expiration, records |
| 4.2 | View domain records | Lists DNS records with type and value |
| 4.3 | See if I'm the owner | Ownership via connected wallet |
| 4.4 | Navigate to owner | Click owner address → profile/owner view |
| ID | Story | Acceptance Criteria |
| --- | -------------------- | ----------------------------------------------- |
| 4.1 | View domain details | Name, owner, creation date, expiration, records |
| 4.2 | View domain records | Lists DNS records with type and value |
| 4.3 | See if I'm the owner | Ownership via connected wallet |
| 4.4 | Navigate to owner | Click owner address → profile/owner view |

---

## Feature 5: Domain Renewal (2 stories)

| ID | Story | Acceptance Criteria |
|----|-------|---------------------|
| 5.1 | Renew domain | Current expiration, select years, payment, confirmation |
| 5.2 | See renewal fees | Fee calculation, MPC and BYOC support |
| ID | Story | Acceptance Criteria |
| --- | ---------------- | ------------------------------------------------------- |
| 5.1 | Renew domain | Current expiration, select years, payment, confirmation |
| 5.2 | See renewal fees | Fee calculation, MPC and BYOC support |

---

## Feature 6: Domain Transfer (2 stories)

| ID | Story | Acceptance Criteria |
|----|-------|---------------------|
| 6.1 | Transfer domain | Input recipient, validate, confirm, success message |
| 6.2 | Validate recipient address | Partisia address format validation |
| ID | Story | Acceptance Criteria |
| --- | -------------------------- | --------------------------------------------------- |
| 6.1 | Transfer domain | Input recipient, validate, confirm, success message |
| 6.2 | Validate recipient address | Partisia address format validation |

---

## Feature 7: DNS Records (4 stories)

| ID | Story | Acceptance Criteria |
|----|-------|---------------------|
| 7.1 | Add DNS record | A/AAAA/CNAME/TXT, validate, transaction |
| 7.2 | Edit DNS record | Pre-fill, validate, transaction |
| 7.3 | Delete DNS record | Confirmation dialog, transaction |
| ID | Story | Acceptance Criteria |
| --- | ---------------------- | ----------------------------------------- |
| 7.1 | Add DNS record | A/AAAA/CNAME/TXT, validate, transaction |
| 7.2 | Edit DNS record | Pre-fill, validate, transaction |
| 7.3 | Delete DNS record | Confirmation dialog, transaction |
| 7.4 | Validate record values | A=IPv4, AAAA=IPv6, CNAME=domain, TXT=text |

---

## Feature 8: User Profile (3 stories)

| ID | Story | Acceptance Criteria |
|----|-------|---------------------|
| 8.1 | View profile | Wallet address, owned domains, domain count |
| 8.2 | Search domains | Filter by name, real-time |
| 8.3 | Access domain from profile | Click domain → domain page |
| ID | Story | Acceptance Criteria |
| --- | -------------------------- | ------------------------------------------- |
| 8.1 | View profile | Wallet address, owned domains, domain count |
| 8.2 | Search domains | Filter by name, real-time |
| 8.3 | Access domain from profile | Click domain → domain page |

---

## Feature 9: API Endpoints (7 endpoints)

| Endpoint | Description |
|----------|-------------|
| GET /api/domains/{name}/check | Check availability |
| GET /api/domains/{name} | Get domain details |
| GET /api/domains/recent | Get recent domains |
| GET /api/domains/stats | Get stats |
| GET /api/register/{name}/fees/{coin} | Get fees |
| POST /api/proposals/voters/add | Add voters (admin) |
| POST /api/proposals/voters/remove | Remove voters (admin) |
| Endpoint | Description |
| ------------------------------------ | --------------------- |
| GET /api/domains/{name}/check | Check availability |
| GET /api/domains/{name} | Get domain details |
| GET /api/domains/recent | Get recent domains |
| GET /api/domains/stats | Get stats |
| GET /api/register/{name}/fees/{coin} | Get fees |
| POST /api/proposals/voters/add | Add voters (admin) |
| POST /api/proposals/voters/remove | Remove voters (admin) |

---

Expand All @@ -111,13 +111,13 @@ Button, Input, Card, Dialog, Select, Chip, CircularProgress, Radio, DomainSearch

## Feature 12: Utility Functions (4+ functions)

| Function | Description |
|----------|-------------|
| validAddress | Validate Partisia address format |
| isValidURL | Validate URL format |
| removeHTTPIfPresent | Strip protocol prefix |
| formatDate | Format date to readable string |
| formatDateToRelativeDate | Format to relative time |
| Function | Description |
| ------------------------ | -------------------------------- |
| validAddress | Validate Partisia address format |
| isValidURL | Validate URL format |
| removeHTTPIfPresent | Strip protocol prefix |
| formatDate | Format date to readable string |
| formatDateToRelativeDate | Format to relative time |

---

Expand Down
Loading
Loading