Technical Activity Report

September 2024

September 2024 focused on building blockchain resource management functionality for Unicove, including staking, RAM management, and CPU/NET rent interfaces. Supporting work included mobile Android wallet maintenance (version 2.2.0) and WharfKit plugin updates for server-side rendering compatibility.

Key Achievements:

  • Implemented comprehensive resource management in Unicove (staking, RAM, CPU/NET rent)
  • Released Anchor Mobile Android version 2.2.0 with display and UI improvements
  • Updated WharfKit wallet plugins for server-side rendering compatibility

Technical Significance: September established complete resource management capabilities in Unicove, making complex blockchain operations accessible through user-friendly interfaces. WharfKit plugin updates ensured compatibility with modern web development tools.


Table of Contents


Cross-Repository Insights

WharfKit Wallet Plugins - Server-Side Rendering Compatibility

Three WharfKit wallet plugins updated with coordinated changes for server-side rendering (SSR) compatibility:

Integration Stack:

  1. wharfkit/wallet-plugin-wombat - Wombat wallet integration

    • #18: SSR compatibility implementation
    • #19: Session kit dependency updates
    • #20: Scatter peer dependency configuration
  2. wharfkit/wallet-plugin-tokenpocket - TokenPocket wallet integration

    • #10: Dynamic Scatter protocol import
  3. wharfkit/wallet-plugin-scatter - Scatter wallet integration

    • #11: Dynamic Scatter protocol loading

Technical Relationship: All three plugins implemented the same architectural pattern for SSR compatibility:

  • Problem: Wallet plugins contained browser-specific code that broke server-side rendering
  • Solution: Changed to dynamic imports for wallet-specific code
  • Pattern: import() statements load wallet code on-demand rather than at application startup
  • Result: Plugins work in SSR frameworks (SvelteKit, Next.js) without modification

Technical Details: Dynamic imports prevent SSR failures by deferring browser-specific code execution until client-side. This also enables better code splitting with smaller initial bundles.

Impact: Enables WharfKit-based applications (like Unicove) to use these wallet plugins in modern SSR frameworks. Coordinated updates ensure consistent patterns across the wallet plugin ecosystem.


greymass/unicove

Repository: https://github.com/greymass/unicove
Activity: 24 PRs merged

Overview

Unicove is a block explorer and web wallet for Antelope blockchains. September development focused heavily on blockchain resource management features, enabling users to manage RAM, CPU, NET, and staking operations through comprehensive interfaces. Additional work included component library development, architectural refactoring, and CI/CD automation.

Technology Stack: SvelteKit, TypeScript, WharfKit

Pull Requests

Major Changes

#96 - feat: staking (link)
Merged: 2024-09-09 | Discussion: 33 total comments (3 issue comments, 30 review comments)

Description: Implemented staking functionality for Antelope blockchain resource management. Staking allows users to lock tokens to gain CPU and NET resources for transaction execution.

Discussion: The most-discussed PR in September 2024. Staking is a fundamental blockchain operation involving user funds and resources, requiring careful implementation for safe handling. The 33-comment discussion reflects the importance and complexity of this feature.

Impact: Enables users to stake tokens for resources directly through Unicove interface, a core functionality for blockchain interaction.


#89 - add resources overview page and cpu/net rent (link)
Merged: 2024-09-09 | Discussion: 32 total comments (2 issue comments, 30 review comments)

Description: Implemented resources overview page displaying RAM, CPU, and NET state with links to buy/sell RAM operations. Added CPU/NET rent overview page integrating powerup/REX/staking rent functionality.

Discussion: Major feature addition creating comprehensive resource management interfaces. The extensive discussion (32 comments) indicates significant architectural decisions about presenting complex blockchain resource concepts accessibly to users.

Impact: Provides centralized resource management dashboard, making blockchain resource concepts more approachable for end users.


#85 - RAM forms followup (link)
Merged: 2024-09-05 | Discussion: 32 total comments (2 issue comments, 30 review comments)

Description: Follow-up refinements to RAM management forms based on initial implementation feedback.

Discussion: The extensive review discussion (32 comments) indicates significant attention to UI/UX details and implementation quality for resource management features.

Impact: Improved RAM management interface usability and polish.


#137 - Reworks (link)
Merged: 2024-09-26 | Discussion: 19 total comments (1 issue comment, 18 review comments)

Description: Architectural refactoring of resource calculations and feature detection. Moved calculateValue utility to shared utils file. Implemented network.supports('featureType') method for cleaner feature detection, replacing direct property checks like network.config.features.staking with shorter network.supports('staking'). Removed powerupprice and stakingprice from NetworkState since these values vary between CPU and NET, moving calculations into components.

Discussion: Important architectural decisions reflected in 19-comment discussion. Establishes cleaner patterns for feature detection and resource price calculations.

Impact: Improved code organization and maintainability. Establishes consistent patterns for feature detection across the application.

Technical Details:

  • Before: if (network.config.features.staking) { ... }
  • After: if (network.supports('staking')) { ... }
  • Decentralized price calculations from global state to component-level logic
  • Improved separation of concerns between network configuration and runtime calculations

#146 - fix: type errors (link)
Merged: 2024-09-23 | Discussion: 9 total comments (1 issue comment, 8 review comments)

Description: TypeScript type error fixes across the codebase.

Discussion: Ongoing work to maintain type safety as the codebase grows.

Impact: Improved type safety and developer experience.


#97 - Adding account RAM page (link)
Merged: 2024-09-11 | Discussion: 7 total comments (2 issue comments, 5 review comments)

Description: Added dedicated RAM management page for accounts, providing detailed view of RAM usage and management options.

Impact: Provides focused interface for RAM operations separate from general resources overview.


#18 - Checkbox component (link)
Merged: 2024-09-06 | Discussion: 31 total comments (1 issue comment, 30 review comments)

Description: Implemented reusable checkbox component for the Unicove component library.

Discussion: Substantial 31-comment discussion around implementing a foundational UI component, showing focus on building solid, reusable component foundation.

Impact: Establishes reusable UI component for use across Unicove interface.

Minor Changes

  • #148: Testing peer dependency versions (link)
  • #145: Adding updated wallet plugins using Scatter protocol (link)
  • #144: Refactor token select (link)
  • #143: ci: add tsc to github actions (link) - Added TypeScript compilation check to CI pipeline
  • #142: ci: add code format check gh action (link) - Added code formatting validation to CI pipeline
  • #141: refactor: use index in token select value (link)
  • #140: Style updates (link)
  • #139: refactor: rename extended select option type (link)
  • #136: Darkmode toggle component (link)
  • #132: David/refactor/context (link)
  • #131: Balance loading fix (link)
  • #130: Reworks (link)
  • #129: Network page (link)
  • #94: Add table component (link)
  • #90: Homepage (link)
  • #88: Contracts (link)
  • #14: Chartjs charts (link)

greymass/anchor-mobile-android

Repository: https://github.com/greymass/anchor-mobile-android
Activity: 8 PRs merged

Overview

Native Android wallet for Antelope blockchains. September focused on releasing version 2.2.0 with bug fixes and improving release automation.

Pull Requests

Version 2.2.0 Release

  • #658: Release Prep 2.2.0 (link)
  • #657: Staging Release 2.2.0 (link)
  • #656: Staging Release 2.2.0 (link)

Bug Fixes

  • #655: fix: bug with slider scrolldown (link) - Fixed slider component scrolling behavior
  • #652: fix: image scaling on smaller displays (link) - Resolved image scaling issues on smaller Android devices

Development Infrastructure

  • #654: Add script to update website on release (link) - Automated website updates during release process
  • #639: Updating SDK version & dependencies (link) - Updated Android SDK and dependencies
  • #638: chore: added migration to set updatedUI to true (link) - Database migration to enable updated UI features

greymass/unicove-v1

Repository: https://github.com/greymass/unicove-v1
Activity: 3 PRs merged

Overview

Legacy version of Unicove in maintenance mode. September updates included component improvements and bug fixes.

Pull Requests

#198 - Adjust and optimize the slider component (link)
Merged: 2024-09-10 | Discussion: 7 total comments (1 issue comment, 6 review comments)

Description: Converted slider component to TypeScript, changed progressbar thumb design, and added dark mode adapter for better theme compatibility.

Impact: Improved slider component with TypeScript type safety and dark mode support.

Additional PRs

  • #210: Release (link)
  • #209: Fix staking claimable value (link) - Fixed calculation of claimable staking rewards

greymass/account-creation-portal

Repository: https://github.com/greymass/account-creation-portal
Activity: 1 PR merged

Pull Request

#8 - fix design (link)
Merged: 2024-09-23

Description: Design fixes for the account creation portal interface.


greymass/website

Repository: https://github.com/greymass/website
Activity: 1 PR merged

Pull Request

#78 - Update anchor version and various fixes (link)
Merged: 2024-09-10

Description: Updated Anchor wallet version information displayed on the website and applied various fixes.


wharfkit/wallet-plugin-wombat

Repository: https://github.com/wharfkit/wallet-plugin-wombat
Activity: 3 PRs merged

Overview

WharfKit wallet plugin for Wombat wallet integration. September focused on enabling server-side rendering (SSR) compatibility and dependency updates.

Pull Requests

#18 - Making the plugin usable in SSR (link)
Merged: 2024-09-17

Description: Modified the plugin to be compatible with server-side rendering (SSR) environments, enabling use in modern web frameworks like SvelteKit and Next.js.

Impact: Enables use of Wombat wallet plugin in SSR applications, expanding compatibility with modern web frameworks.

Technical Context: SSR requires careful handling of browser-specific APIs that don’t exist in Node.js server environment. This PR likely added conditional loading or dynamic imports to prevent SSR-breaking code.

Additional PRs

  • #19: Cleanup and updated session kit (link) - Code cleanup and session kit dependency update
  • #20: Scatter peer dependency (link) - Updated Scatter protocol peer dependency configuration

wharfkit/web-renderer

Repository: https://github.com/wharfkit/web-renderer
Activity: 2 PRs merged

Pull Requests

  • #147: 1.4.1 (link) - Version 1.4.1 release
  • #148: Updating autocorrect plugin (link) - Updated autocorrect plugin for improved transaction handling

wharfkit/wallet-plugin-tokenpocket

Repository: https://github.com/wharfkit/wallet-plugin-tokenpocket
Activity: 1 PR merged

Pull Request

#5 - Loading scatter protocol dynamically (link)
Merged: 2024-09-26

Description: Changed Scatter protocol loading to dynamic import for better compatibility with SSR and bundling.

Impact: Improves SSR compatibility and reduces initial bundle size through code splitting.

Technical Details: Dynamic imports allow code to be loaded on-demand rather than at application startup. This prevents SSR failures from browser-specific Scatter protocol code and enables better code splitting for smaller initial bundles.


wharfkit/wallet-plugin-scatter

Repository: https://github.com/wharfkit/wallet-plugin-scatter
Activity: 1 PR merged

Pull Request

#11 - Loading scatter protocol dynamically (link)
Merged: 2024-09-26

Description: Changed Scatter protocol loading to dynamic import for better compatibility with SSR and bundling.

Impact: Consistent with TokenPocket plugin changes - enables SSR compatibility and code splitting benefits.


New Repositories

greymass/spring

Created: 2024-09-18
Repository: https://github.com/greymass/spring
Last Push: 2024-09-18

Description: C++ implementation of the Antelope protocol with Savanna consensus.

Purpose: Fork of the Antelope protocol implementation with support for the new Savanna consensus mechanism. Spring is blockchain node software containing the core protocol implementation and supporting tools for developers and node operators.

Technology Stack:

  • Language: C++
  • Protocol: Antelope
  • Consensus: Savanna
  • Platforms: Ubuntu 22.04, 20.04, Unix derivatives (macOS)
  • Distribution: .deb packages and source builds

Significance: This fork represents adoption of the Savanna consensus upgrade, a significant evolution of the Antelope protocol. By forking and maintaining Spring, the team ensures continued operation and development of blockchain infrastructure aligned with the latest protocol advancements.

Technical Context: Savanna consensus is a major upgrade to Antelope’s block production and finality mechanism. Maintaining a fork allows for customization, testing, and independent development while tracking upstream changes. This is common practice for blockchain infrastructure providers who need control over their node software.

From README: Spring provides blockchain node software and supporting tools for developers and node operators. Binary installation is available via .deb packages, or the software can be built from source. The repository includes documentation for installation, building, and operating nodes.