Releases: blockful/anticapture
Releases · blockful/anticapture
v1.4.0
ADDED
- Token Holders & Delegates Section: Complete implementation with filterable tables, charts, and detailed drawer views
- Balance History Feature: Charts and tables showing token holder balance changes over time
- Delegation History Tracking: Historical view of delegation changes with voting power variation graphs
- Voting Power Analytics: Charts and tables showing voting power distribution and changes
- Top Interactions Feature: Pie chart and table showing most frequent delegation interactions
- New Tooltip System: Redesigned tooltip component with better UX, mobile support, and animations
- Storybook Configuration: Added branding, dark theme, and component stories for the design system
- ENS Data Integration: ENS name and avatar resolution using Viem
- Query Parameter Persistence: Filters, tabs, and drawer states now persist in URL
CHANGED
- Table Components: Major refactor for better performance with virtualization and improved loading states
- Navigation: Sidebar buttons now show labels and improved hover states
- UI Components: Multiple design updates including progress bars, charts, badges, and icons
- Data Fetching: Improved ENS resolution with better fallback handling
- Circulating Supply: Now properly saved in the indexer for Nouns and other DAOs
- Design System: Enhanced consistency across buttons, dividers, tooltips, and other components
FIXED
- Tooltip overflow and z-index issues
- Safari mobile tooltip interactions
- Sidebar button hover states
- Table hydration errors
- Button-within-button accessibility issues
- Chart rendering for edge cases with no data
- CSV data formatting
- Countdown display formatting
- Proposal voting period calculations
REMOVED
- Old
TooltipPlaincomponent (replaced with new Tooltip system) - Unused commented code and dependencies
- Redundant filter logic
v1.3.1
v1.3.0
ADDED
- 404 Not Found Page - Comprehensive error page with custom design, animations, and user-friendly messaging including links to dashboard and bug reporting
- Dynamic URL Parameter Management - Query parameter handling for token distribution and transaction filters using
nuqslibrary - Proposal Filtering Capability - New
includeOptimisticProposalsparameter for querying proposals with configurable enum values (TRUE/FALSE) - ProposalType Tracking - New proposal type field added to schema and indexer for proposal categorization
- Interaction Analytics - Filter by address and sort by volume on the interaction endpoint
- DAO Config Enhancements - Proposal link configuration and Anticapture added as governance option for ENS DAO
CHANGED
- Query Parameter Architecture - Refactored to structured approach with
nuqsfor cleaner URL state management - Proposal Link Handling - Updated to use configurable governance platform URLs instead of hardcoded Tally links
- Button Component - Enhanced to support
asChildprop for better composition flexibility - Service Layer - Decoupled services for improved modularity
- Filter Logic - Consolidated transaction filter logic into unified
useTransactionsTableParamshook
FIXED
- Chart Rendering - Added fallback domain values to prevent crashes when chart data is empty
- Interaction Count - Corrected total count calculation in interaction queries
- Initial Metrics - Fixed metrics not being properly applied on initialization
- Self-Transfer Filtering - Moved filtering to query level for more efficient data handling
- Date Parsing - Proper parsing and handling of startDate/endDate parameters
REMOVED
- Old not-found page implementation (replaced by new unified version)
- Unused transaction parameter hook
v1.2.0
🆕 ADDED
- Security Alerts Page: New dedicated page featuring real-time governance alert integrations for Telegram and Slack
- ENS Label Support: Added ENS labels to address search functionality
- Obol Stage Assignment: Set to
NO STAGE
🔧 CHANGED
- Next.js Version: Upgraded to v15.3.6
- Turbo Dev Script: Added turbo to development workflow
- Proposal Timing Calculation: Vote timing now calculated from proposal start timestamp instead of creation timestamp, with voting delay consideration
- Badge Styling: Updated designs with improved text formatting and hover states
- Transactions Table: Disabled for all DAOs
🐛 FIXED
- Voting Power Indexing: Corrected historical voting power calculations
- Proposal Activity: Fixed missing proposals by accounting for voting period and voting delay in activity calculations
- Mobile UI Issues: Resolved menu overlay conflicts with table headers
- Icon Rendering: Fixed Nouns icon fill rule problem
v1.1.1
🆕 ADDED
- New API fields / endpoint additions for account interactions: A GraphQL query
accountInteractions(...)was added (with filters for days, limit, accountId, min/max amount) allowing retrieval of account transfer history. - Additional filters for “variations”: The update adds support for filtering by amount in API queries (e.g. for transactions / variations), giving more granular querying capabilities.
- Dashboard UI enhancements: On the transactions table, a new “metrics / supply-type” system was added — allowing users to filter by supply type (e.g. CEX, DEX, LENDING, TOTAL).
- New endpoints / controllers in the indexer backend covering a wide set of data: account balances, historical balances, assets, DAO metadata, proposals, token distributions, governance activity, voting-power history and variations. Essentially — a much richer foundation for indexing and querying DAO + token + transaction + governance data.
🔧 CHANGED
- Major refactoring / reorganization of API packages: many files have been moved / renamed or reorganized to clarify architecture and separate concerns.
- Dashboard front-end code (e.g. the transactions table) refactored: logic for supply metrics, filtering, state/props handling, and rendering now aligns with the new filtering system (simpler/cleaner supply-type handling).
- The schema of GraphQL API updated: the GraphQL schema file was extended to include new query types (accountInteractions, accountBalanceVariations, etc.), changing the overall API contract.
🐛 FIXED
- Fixes around transaction table pagination and token-distribution / supply-filtering logic in the dashboard to avoid bugs when filtering or paginating data.
- Schema / resolver fixes to ensure newly added endpoints work without error (e.g. GraphQL schema adjustments, endpoint ID reference corrections).
v1.1.0
Added
- Support for quorum logic in “nouns” DAOs (EIP-721 token-based DAOs) — enables governance for token types beyond standard fungible tokens. code
- A new token info query endpoint/UI element to surface detailed token metadata in-app. code
- Introduced a chain icon component (to visually distinguish different blockchain networks) in the UI. code
- Panel V2 UI updates (header above the panel, mobile display improvements) — improving layout and responsiveness of the dashboard. code
Changed
- Terminology for supply types in transactions was updated (e.g., “unassigned supply” label changed) for clarity. code
- Adjusted dashboard overview units and value parsing (added decimals in DAO config) — improved accuracy of metrics presentation. code
- Expanded the proposals API request limit from 100 to 1000 — better handling of high-volume governance contexts. code
Fixed
- Corrected multi-line chart capability so that all token types (including ERC-721) are properly accounted for. code
- Fixed calculations for “total” and “treasury” supplies to ensure accurate figures. code
- Handled zero-address delegation cases by treating them as self-delegation — prevents incorrect state in governance delegation flows. code
- Improved display and type checking on tokens, delegation history, mobile views, and various dashboard elements for smoother user experience across devices. code
Removed
v1.0.0
ADDED
- Dashboard enhancements: a dedicated DAO Overview section with metrics (treasury stats, token distribution chart, top accounts chart).
- Integration of a new DAO (Obol DAO) into both indexing pipeline and frontend metadata (images/icons/configs).
CHANGED
- Refactored multiple hooks, components, and layouts for better readability and performance (e.g., DAO hooks, token-data handling).
- Consolidated DAO configuration metadata (removal of redundant display names, unified naming conventions).
- Updated schema and GraphQL client code to support new requirements (e.g., token properties, indexing configs).
- Redesign of section/page structure: splitting sections into pages, limiting screen widths, improving spacing/layout.
-
- UI/UX improvements: loading skeletons for pages, charts, components; connect-wallet custom button; responsive layouts for mobile and large screens.
FIXED
- Resolved numerous mobile layout issues (tables truncating, voters tab, proposal page for other DAOs).
- Fixed data calculation issues (e.g., duplicate quorum percentage, NAN on percentages when no votes, vote summitted toast color, missing typing errors).
- Improved UI interactions: scrollbar styling, modal closing behavior, vote modal disable when no option selected.
v0.7.3
ADDED
- Nouns DAO support (ERC-721): end-to-end indexers (token, governor, auction) with proposal/vote handling, noun transfers/delegations, and auction settlement →
tokenPricerecording. - NFT price service:
NFTPriceServicethat fuses on-chain auction prices with CoinGecko ETH USD data to return historical USD series and current NFT price. - Metrics subsystem: modular metric updaters for total supply, delegated supply, circulating supply, and category supplies (CEX/DEX/Lending/Treasury) with daily bucket writes;
truncateTimestampTimeandgetCurrentDayTimestamphelpers. - Constants & wiring updates:
tokenTypeper DAO (ERC20 vs ERC721); Nouns contract addresses;TreasuryAddressesset (incl. Nouns).
CHANGED
- Environment contract:
COINGECKO_API_URLandCOINGECKO_API_KEYare now required; Dune vars remain optional. - Event flow architecture:
tokenTransfer,delegateChanged, anddelegatedVotesChangedare decoupled from metrics/flag logic.- Indexers (UNI/ENS/ARB/OP/SCR/GTC) now pass categorized address lists to compute flags and call the shared metrics updaters explicitly.
- Transactions service: simplified to use repository-level aggregate queries
FIXED
- Safer delegation counters: guards against negative
delegationsCountand uses idempotent upserts. - More reliable transaction flags: flags computed once in DAO-specific indexers using explicit address sets, reducing misclassification/double work.
- Consistent circulating supply: now always derived as
totalSupply − treasuryvia a single metric path (prevents drift across handlers).
v0.7.2
Changelog Summary
ADDED
- Scroll (SCR) DAO Integration: Full support for Scroll DAO including token indexing, governance tracking, and UI components
- Voting Power Variations API: New endpoint (
/voting-power/variations) to track and rank the biggest changes in voting power over time periods - Account Balance Variations API: New endpoint (
/account-balance/variations) to track and rank the biggest balance changes over time periods - Token Data Hook:
useTokenDatahook for fetching comprehensive token properties (supply, price, delegations) - Quorum Calculation Types: Standardized constants for different quorum calculation methods across DAOs
- Partial Delegation Support: Infrastructure to handle Scroll's partial delegation feature where users can delegate to multiple addresses with different weights
CHANGED
- Quorum Calculation System: Refactored to support DAO-specific quorum logic (Delegate Supply, Total Supply, or custom calculations like Scroll's fixed 0.21%)
- Block Time Architecture: Moved from hardcoded Ethereum block time constant to DAO-specific configuration values stored in dao-config
- Panel Section: Removed time interval selector, now shows current delegated supply without time-based filtering
- GraphQL Schema: Reorganized with better documentation, added variation tracking types, and made vote reasons optional
- Proposal Non-Voters Endpoint: Enhanced to accept address filtering via new
addressesparameter
FIXED
- Token Distribution Change Rate: Prevented division by zero errors when baseline value is zero
- Number Formatting Precision: Format function now properly respects the
fixedparameter for decimal places - Token Distribution Tooltip: Removed improper flooring that caused precision loss in displayed values
REMOVED
- Historical Block Number Utilities: Eliminated unused blockchain block calculation helpers
- Hardcoded Block Time Constants: Removed
ETHEREUM_BLOCK_TIME_SECONDSin favor of chain-specific configuration - Unused Type Definitions: Cleaned up empty
shared/types/index.tsfile
v0.7.1
ADDED
- Proposal Non-Voters Feature: New API endpoint and service layer to identify and track active delegates who didn't vote on specific proposals, including voting power variations and last vote timestamps
- Token Price Integration: Coingecko API integration for real-time token pricing with support for multiple currencies (ETH/USD)
- Token Properties API: New endpoint exposing comprehensive token metrics (total supply, delegated supply, CEX/DEX/lending supply, circulating supply, treasury)
- CSV Export System: Universal data export functionality across all tables and charts with proper serialization handling
- Historical Date Range Flexibility: Added
fromDateparameter to historical queries for arbitrary time range analysis - Voting Power Variation Tracking: Infrastructure to calculate and track changes in voting power over configurable time periods
CHANGED
- Pagination Architecture: System-wide migration from page-based pagination to cursor-based infinite scroll with
hasMore/onLoadMorepatterns - Data Fetching Strategy: Enhanced with aggressive caching, deduplication logic, and proper merge strategies in GraphQL query updates
- Storybook Infrastructure: Upgraded from v8 to v9 with new addon system and Next.js 15 compatibility fixes
- Loading State Management: Unified approach using Apollo's
NetworkStatusfor consistent loading indicators across all queries - Table Data Access Pattern: Shifted from traditional page navigation to continuous data loading with sentinel-based intersection observers
- Query Response Handling: Improved with better accumulation strategies preventing duplicate data in infinite scroll scenarios
FIXED
- Data Consistency: Resolved duplicate entries in paginated results through proper merge logic in
updateQueryhandlers - Build System: Fixed Storybook production builds failing due to circular dependencies and webpack hooks
- State Synchronization: Corrected stale closure issues in hooks causing incorrect data rendering
- Query Performance: Optimized historical data fetching with proper memoization and cache invalidation
REMOVED
- Page-Based Navigation: Eliminated
fetchPreviousPage, page counters, and total page calculations - Traditional Pagination UI: Removed pagination controls in favor of scroll-based loading
- Legacy Table System: Deprecated old table infrastructure in favor of modern implementation
- Redundant State Management: Cleaned up duplicate loading and pagination state tracking across multiple hooks
- Default Storybook Content: Removed boilerplate documentation stories