Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
18 changes: 18 additions & 0 deletions .github/workflows/security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,24 @@ jobs:
run: cargo audit
working-directory: contracts

- name: Setup Rust toolchain for contract audit
uses: dtolnay/rust-toolchain@stable

- name: Cache cargo-audit
id: cargo-audit-cache
uses: actions/cache@v4
with:
path: ~/.cargo/bin/cargo-audit
key: cargo-audit-${{ runner.os }}-0.22.0

- name: Install cargo-audit
if: steps.cargo-audit-cache.outputs.cache-hit != 'true'
run: cargo install cargo-audit --version 0.22.0 --locked

- name: Check for known vulnerabilities in smart contracts (cargo audit)
run: cargo audit
working-directory: contracts

- name: Verify security setup
run: npm run verify-security

Expand Down
9 changes: 8 additions & 1 deletion frontend/src/components/NotificationDropdown.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,13 @@ export const NotificationDropdown: React.FC<NotificationDropdownProps> = ({ publ

return (
<div className="relative" ref={containerRef}>
<span
aria-live="polite"
aria-busy="false"
className="sr-only"
>
{unreadCount} new notifications
</span>
<button
onClick={handleDropdownOpen}
aria-label={`Notifications${unreadCount > 0 ? `, ${unreadCount} unread` : ""}`}
Expand All @@ -184,7 +191,7 @@ export const NotificationDropdown: React.FC<NotificationDropdownProps> = ({ publ
strokeLinejoin="round"
strokeWidth="2"
d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"
/>
/>
</svg>

{unreadCount > 0 && (
Expand Down
Loading