Skip to content

Commit 6566b62

Browse files
committed
feat: Klever Bridge transparency dashboard
A real-time transparency dashboard for the Klever Bridge that verifies wrapped tokens on KleverChain are fully backed by assets locked on source chains. Features: - Real-time TVL tracking with animated counters and chain distribution - Multi-chain balance verification (Ethereum, with BSC/Polygon/Arbitrum/Tron ready) - Token cards displaying locked vs minted amounts with backing ratios - Interactive cross-chain flow visualization (Sankey-style diagram) - Live USD price integration via CoinGecko API - On-chain verification links to block explorers - Responsive glassmorphic UI with Klever brand colors - Confetti celebration when assets are fully backed - Search, sort, and filter functionality for tokens - WCAG 2.1 AA accessible with keyboard navigation - Dark mode with optional light mode support Tech stack: - Next.js 15 with App Router and React 19 - TypeScript with strict mode - Tailwind CSS v4 with custom Klever theme - wagmi + viem for EVM contract reads - TanStack Query for data fetching - Framer Motion for animations - Zod for runtime validation
1 parent 4035da1 commit 6566b62

Some content is hidden

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

67 files changed

+15234
-0
lines changed

.env.example

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# KleverChain API
2+
NEXT_PUBLIC_KLEVER_API_URL=https://api.mainnet.klever.org
3+
4+
# RPC URLs (optional - wagmi uses public RPCs by default)
5+
# For production, consider using dedicated RPC providers for better reliability
6+
NEXT_PUBLIC_ETHEREUM_RPC_URL=https://ethereum-rpc.publicnode.com
7+
NEXT_PUBLIC_POLYGON_RPC_URL=https://polygon-bor-rpc.publicnode.com
8+
NEXT_PUBLIC_BSC_RPC_URL=https://bsc-testnet-rpc.publicnode.com
9+
NEXT_PUBLIC_ARBITRUM_RPC_URL=https://arbitrum-one-rpc.publicnode.com
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
name: Bug Report
2+
description: Report a bug or unexpected behavior
3+
title: "[Bug]: "
4+
labels: ["bug", "triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for taking the time to report a bug! Please fill out the form below.
10+
11+
- type: checkboxes
12+
id: existing-issue
13+
attributes:
14+
label: Is there an existing issue for this?
15+
description: Please search to see if an issue already exists for this bug.
16+
options:
17+
- label: I have searched the existing issues
18+
required: true
19+
20+
- type: textarea
21+
id: description
22+
attributes:
23+
label: Bug Description
24+
description: A clear and concise description of what the bug is.
25+
placeholder: Tell us what you see!
26+
validations:
27+
required: true
28+
29+
- type: textarea
30+
id: steps
31+
attributes:
32+
label: Steps to Reproduce
33+
description: Steps to reproduce the behavior.
34+
placeholder: |
35+
1. Go to '...'
36+
2. Click on '...'
37+
3. Scroll down to '...'
38+
4. See error
39+
validations:
40+
required: true
41+
42+
- type: textarea
43+
id: expected
44+
attributes:
45+
label: Expected Behavior
46+
description: What did you expect to happen?
47+
validations:
48+
required: true
49+
50+
- type: textarea
51+
id: actual
52+
attributes:
53+
label: Actual Behavior
54+
description: What actually happened?
55+
validations:
56+
required: true
57+
58+
- type: textarea
59+
id: screenshots
60+
attributes:
61+
label: Screenshots
62+
description: If applicable, add screenshots to help explain your problem.
63+
64+
- type: dropdown
65+
id: browser
66+
attributes:
67+
label: Browser
68+
description: What browser are you using?
69+
options:
70+
- Chrome
71+
- Firefox
72+
- Safari
73+
- Edge
74+
- Brave
75+
- Other
76+
validations:
77+
required: true
78+
79+
- type: input
80+
id: browser-version
81+
attributes:
82+
label: Browser Version
83+
placeholder: e.g., 120.0.6099.109
84+
85+
- type: dropdown
86+
id: os
87+
attributes:
88+
label: Operating System
89+
options:
90+
- Windows
91+
- macOS
92+
- Linux
93+
- iOS
94+
- Android
95+
- Other
96+
validations:
97+
required: true
98+
99+
- type: textarea
100+
id: additional
101+
attributes:
102+
label: Additional Context
103+
description: Add any other context about the problem here.

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Security Vulnerability
4+
url: https://github.com/klever-io/klv-bridge-assets/security/policy
5+
about: Please report security vulnerabilities through our security policy
6+
- name: Questions & Discussions
7+
url: https://github.com/klever-io/klv-bridge-assets/discussions
8+
about: Ask questions and discuss ideas in GitHub Discussions
9+
- name: Discord Community
10+
url: https://discord.gg/klever
11+
about: Join our Discord for real-time community support
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: Feature Request
2+
description: Suggest a new feature or enhancement
3+
title: "[Feature]: "
4+
labels: ["enhancement", "triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for suggesting a feature! Please fill out the form below.
10+
11+
- type: checkboxes
12+
id: existing-issue
13+
attributes:
14+
label: Is there an existing request for this?
15+
description: Please search to see if a request already exists for this feature.
16+
options:
17+
- label: I have searched the existing issues
18+
required: true
19+
20+
- type: textarea
21+
id: problem
22+
attributes:
23+
label: Problem Statement
24+
description: Is your feature request related to a problem? Please describe.
25+
placeholder: A clear description of what the problem is. Ex. I'm always frustrated when [...]
26+
validations:
27+
required: true
28+
29+
- type: textarea
30+
id: solution
31+
attributes:
32+
label: Proposed Solution
33+
description: Describe the solution you'd like.
34+
placeholder: A clear and concise description of what you want to happen.
35+
validations:
36+
required: true
37+
38+
- type: textarea
39+
id: alternatives
40+
attributes:
41+
label: Alternatives Considered
42+
description: Describe any alternative solutions or features you've considered.
43+
44+
- type: dropdown
45+
id: category
46+
attributes:
47+
label: Feature Category
48+
options:
49+
- UI/UX Improvement
50+
- New Chain Support
51+
- New Token Support
52+
- Data Display
53+
- Performance
54+
- Accessibility
55+
- Documentation
56+
- Other
57+
validations:
58+
required: true
59+
60+
- type: textarea
61+
id: mockups
62+
attributes:
63+
label: Mockups / Examples
64+
description: If applicable, add mockups, screenshots, or links to similar features.
65+
66+
- type: textarea
67+
id: additional
68+
attributes:
69+
label: Additional Context
70+
description: Add any other context about the feature request here.
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
name: Token Listing Request
2+
description: Request a new token to be added to the dashboard
3+
title: "[Token]: "
4+
labels: ["token-request", "triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Request a new token to be added to the Klever Bridge transparency dashboard.
10+
11+
- type: checkboxes
12+
id: existing-issue
13+
attributes:
14+
label: Is there an existing request for this token?
15+
description: Please search to see if a request already exists for this token.
16+
options:
17+
- label: I have searched the existing issues
18+
required: true
19+
20+
- type: input
21+
id: symbol
22+
attributes:
23+
label: Token Symbol
24+
placeholder: e.g., USDT, USDC, WBTC
25+
validations:
26+
required: true
27+
28+
- type: input
29+
id: name
30+
attributes:
31+
label: Token Name
32+
placeholder: e.g., Tether USD, USD Coin
33+
validations:
34+
required: true
35+
36+
- type: input
37+
id: decimals
38+
attributes:
39+
label: Token Decimals
40+
placeholder: e.g., 6, 18
41+
validations:
42+
required: true
43+
44+
- type: input
45+
id: klever-token-id
46+
attributes:
47+
label: KleverChain Base Token ID
48+
description: The KDA ID for the wrapped token on KleverChain
49+
placeholder: e.g., USDT-1A2B
50+
validations:
51+
required: true
52+
53+
- type: textarea
54+
id: liquidity-tokens
55+
attributes:
56+
label: Liquidity Token IDs
57+
description: List the per-chain liquidity token KDA IDs
58+
placeholder: |
59+
Ethereum: ETHUSDT-XXXX
60+
BSC: BSCUSDT-XXXX
61+
validations:
62+
required: true
63+
64+
- type: textarea
65+
id: source-chains
66+
attributes:
67+
label: Source Chain Details
68+
description: Provide details for each source chain
69+
placeholder: |
70+
Chain: Ethereum
71+
Token Contract: 0x...
72+
Bridge Contract: 0x...
73+
Decimals: 6
74+
validations:
75+
required: true
76+
77+
- type: input
78+
id: logo-url
79+
attributes:
80+
label: Token Logo URL
81+
description: URL to a high-quality token logo (PNG, transparent background)
82+
placeholder: https://...
83+
84+
- type: textarea
85+
id: additional
86+
attributes:
87+
label: Additional Information
88+
description: Any other relevant information about the token

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
## Description
2+
3+
<!-- Provide a brief description of the changes in this PR -->
4+
5+
## Type of Change
6+
7+
<!-- Mark the relevant option with an "x" -->
8+
9+
- [ ] Bug fix (non-breaking change which fixes an issue)
10+
- [ ] New feature (non-breaking change which adds functionality)
11+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
12+
- [ ] Documentation update
13+
- [ ] Code refactoring
14+
- [ ] Performance improvement
15+
- [ ] New token/chain support
16+
17+
## Related Issues
18+
19+
<!-- Link any related issues using "Fixes #123" or "Relates to #123" -->
20+
21+
Fixes #
22+
23+
## Changes Made
24+
25+
<!-- List the specific changes made in this PR -->
26+
27+
-
28+
-
29+
-
30+
31+
## Screenshots
32+
33+
<!-- If applicable, add screenshots to demonstrate the changes -->
34+
35+
## Testing
36+
37+
<!-- Describe how you tested the changes -->
38+
39+
- [ ] Tested locally with `pnpm dev`
40+
- [ ] Verified on multiple browsers
41+
- [ ] Tested responsive design (mobile/tablet/desktop)
42+
- [ ] Tested accessibility (keyboard navigation, screen reader)
43+
44+
## Checklist
45+
46+
<!-- Mark completed items with an "x" -->
47+
48+
- [ ] My code follows the project's coding standards
49+
- [ ] I have run `pnpm lint` and fixed any issues
50+
- [ ] I have run `pnpm type-check` and fixed any errors
51+
- [ ] I have run `pnpm build` successfully
52+
- [ ] I have updated documentation (if needed)
53+
- [ ] I have added/updated tests (if applicable)
54+
- [ ] My changes don't introduce new warnings
55+
- [ ] I have checked my code for security vulnerabilities
56+
57+
## Additional Notes
58+
59+
<!-- Any additional information that reviewers should know -->

.github/dependabot.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "npm"
4+
directory: "/"
5+
schedule:
6+
interval: "weekly"
7+
day: "monday"
8+
open-pull-requests-limit: 10
9+
groups:
10+
next:
11+
patterns:
12+
- "next"
13+
- "next-*"
14+
- "@next/*"
15+
react:
16+
patterns:
17+
- "react"
18+
- "react-dom"
19+
- "@types/react"
20+
- "@types/react-dom"
21+
eslint:
22+
patterns:
23+
- "eslint"
24+
- "eslint-*"
25+
- "@eslint/*"
26+
- "@typescript-eslint/*"
27+
tailwind:
28+
patterns:
29+
- "tailwindcss"
30+
- "@tailwindcss/*"
31+
web3:
32+
patterns:
33+
- "wagmi"
34+
- "viem"
35+
- "@wagmi/*"
36+
- "@tanstack/react-query"
37+
38+
- package-ecosystem: "github-actions"
39+
directory: "/"
40+
schedule:
41+
interval: "weekly"
42+
day: "monday"

0 commit comments

Comments
 (0)