Technical Activity Report

August 2024

August 2024 focused on building core wallet functionality in Unicove including account management, token transfers, and resource operations. Supporting work established MetaMask Snap integration across the stack, updated Android mobile wallet infrastructure, and enhanced WharfKit development tools.

Key Achievements:

  • Built core wallet features in Unicove (account management, token transfers, RAM operations)
  • Established complete MetaMask Snap integration across four repositories
  • Updated Android mobile wallet for Play Store compliance
  • Developed reusable component library for consistent UI

Technical Significance: August established foundational wallet capabilities and component architecture that enabled subsequent feature development. MetaMask integration provided alternative onboarding pathway through familiar Web3 tooling.


Table of Contents


Cross-Repository Insights

MetaMask Snap Integration Stack

Complete account creation and signing workflow established across four repositories:

Integration Stack:

  1. greymass/antelope-snap - Core MetaMask Snap implementation

    • #4: Account creation plugin integration
    • #5: Documentation with warnings
    • #6: Updated branding
  2. wharfkit/wallet-plugin-metamask - WharfKit wallet integration layer

    • #3: Exposed helper methods for Snap interaction
    • #4: Configurable Snap origin for testing
    • #5: User guidance to installation page
  3. wharfkit/account-creation-plugin-metamask - Account creation workflow

    • #1: Build tooling improvements
  4. greymass/unicove - Frontend interface integration

    • #29: Signup and MetaMask pages

Technical Relationship: These repositories form a complete integration stack:

  • Snap layer: antelope-snap manages keys and signs transactions in MetaMask
  • Plugin layer: wallet-plugin-metamask bridges WharfKit applications with the Snap
  • Creation layer: account-creation-plugin-metamask handles account creation workflow
  • Interface layer: Unicove provides user-facing signup pages and installation guidance

User Flow:

  1. User visits Unicove signup page
  2. Unicove uses wharfkit/wallet-plugin-metamask to connect
  3. Plugin checks for antelope-snap installation
  4. If missing, directs to Unicove installation page
  5. Once installed, account-creation-plugin-metamask handles account creation
  6. Snap manages keys and signs transactions in MetaMask

Impact: Provides familiar onboarding path for users already using MetaMask, reducing friction for crypto-experienced users entering Antelope ecosystem.


greymass/unicove

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

Overview

Unicove is a block explorer and web wallet for Antelope blockchains built with SvelteKit. August 2024 focused on establishing foundational wallet features, account management, resource operations, and user interface components. Development progressed from core infrastructure through to features like token transfers and RAM management.

Technology Stack: SvelteKit, TypeScript, WharfKit

Development Focus: Core wallet functionality, component architecture, multi-chain support infrastructure, user onboarding

Pull Requests

Major Feature Areas

Account Management & State (Early August)

#17 - Account State - Balances, delegations, rex (link)
Merged: 2024-08-09

Description: Implemented comprehensive account state tracking including token balances, resource delegations, and REX (Resource Exchange) integration. This work established the data layer for displaying account information throughout the interface.

Impact: Provides foundation for all account-related features in Unicove by tracking balances, resource allocations, and REX positions.


#11 - Adding network state (link)
Merged: 2024-08-02

Description: Implemented network state management to handle blockchain-specific configurations and features across different Antelope chains. The network state tracks which features are available on each chain (RAM trading, REX, staking mechanisms) and manages chain-specific parameters.

Impact: Enables multi-chain support by abstracting chain-specific differences into configurable network state.

Technical Details: Network state provides unified interface for querying chain capabilities and configurations, allowing components to adapt behavior based on the connected blockchain.


#25 - Account kit (link)
Merged: 2024-08-09

Description: Integrated WharfKit account management functionality for handling blockchain accounts. WharfKit provides session management, wallet integrations, and transaction signing capabilities.

Impact: Establishes connection between Unicove interface and blockchain account operations through WharfKit’s account management library.


#26 - Add account switcher (link)
Merged: 2024-08-09

Description: Implemented account switcher component enabling users to manage and switch between multiple blockchain accounts within the interface.

Impact: Enables multi-account management, a common requirement for blockchain power users.


Token Transfer Features (Mid August)

#31 - Send (link)
Merged: 2024-08-21

Description: Implemented core token transfer functionality, enabling users to send tokens between accounts. This includes transfer form, recipient validation, amount input with balance checks, and transaction signing integration.

Impact: Delivers fundamental wallet operation - the ability to transfer tokens between accounts.


#38 - Send input fixes (link)
Merged: 2024-08-23

Description: Refinements to token transfer input handling and validation.


#40 - Send part two (link)
Merged: 2024-08-23

Description: Additional token transfer features and improvements building on initial send functionality.


Resource Management (Late August)

#61 - Ram sell and buy pages (link)
Merged: 2024-08-26

Description: Implemented RAM marketplace pages allowing users to buy and sell RAM allocations. On Antelope blockchains, RAM is a tradable resource required for storing data on-chain. Users can buy RAM when they need to store data or sell excess RAM back to the market.

Impact: Enables users to manage RAM resources directly through the interface, a critical operation for blockchain account management.

Technical Context: Antelope chains use a market-based RAM allocation system where price fluctuates based on supply and demand. These pages provide interface for interacting with the RAM market.


#69 - Ram additions (link)
Merged: 2024-08-27

Description: Extended RAM management functionality with additional features and operations beyond basic buy/sell.


Architecture & API (Mid August)

#21 - Reorganized files so everything has a network prefix (link)
Merged: 2024-08-09

Description: Major refactoring of file structure to use network prefixes for better organization across multi-chain support. This architectural decision establishes patterns for organizing chain-specific code and configuration.

Impact: Improved code organization for managing multiple blockchain networks with different configurations and features.


#27 - Internal API improvements (link)
Merged: 2024-08-13

Description: Enhanced internal API architecture for better data management and component communication patterns.


#28 - API refinement and URL restructuring (link)
Merged: 2024-08-15

Description: Refined API patterns and restructured URLs for cleaner routing and more intuitive navigation paths. This work established URL patterns for accessing accounts, transactions, and blockchain data.

Impact: Creates consistent, predictable URL structure for navigation and bookmarking.


Onboarding & MetaMask Integration (Late August)

#29 - Signup & Metamask pages (link)
Merged: 2024-08-27

Description: Created signup workflow pages and MetaMask Snap integration for account creation. This work coordinates with WharfKit wallet-plugin-metamask and account-creation-plugin-metamask development happening in parallel across repositories.

Impact: Establishes account creation pathway through MetaMask Snap, enabling users to create Antelope accounts using familiar MetaMask interface.

Technical Context: MetaMask Snaps extend MetaMask with custom blockchain support. This integration allows MetaMask users to create and manage Antelope blockchain accounts without downloading separate wallet software.


Search & Discovery (Late August)

#83 - Initial search box (link)
Merged: 2024-08-30

Description: Implemented search functionality for finding accounts, transactions, and blockchain data within the explorer interface.

Impact: Provides core block explorer functionality for discovering blockchain data.


#87 - Search layout changes (link)
Merged: 2024-08-30

Description: Layout improvements to search interface.


Settings & Configuration

#39 - Adding initial settings concept (link)
Merged: 2024-08-24

Description: Introduced settings functionality for user preferences and configuration options.

Impact: Provides infrastructure for user customization of the interface.


Component Library Development

Reusable UI components building the design system for Unicove:

Form Components

  • #15: Create switch bindings (link) - Merged: 2024-08-05 - Toggle switches with Svelte bindings
  • #20: style: switch background (link) - Merged: 2024-08-08 - Switch background styling
  • #22: Language select component (link) - Merged: 2024-08-09 - Language selector for internationalization
  • #24: Fix asset input (link) - Merged: 2024-08-09 - Token amount input component
  • #36: Name input (link) - Merged: 2024-08-22 - Account name input with validation
  • #41: Add form select with images (link) - Merged: 2024-08-23 - Select dropdown supporting images

UI Elements

  • #23: Add disabled styles to buttons (link) - Merged: 2024-08-09 - Button disabled states
  • #33: Side navigation (link) - Merged: 2024-08-21 - Navigation sidebar component
  • #35: Add progress indicator (link) - Merged: 2024-08-22 - Loading/progress indicators
  • #34: Add favicon (link) - Merged: 2024-08-22 - Site favicon

Initial Styling

  • #10: Add some styling to /account (link) - Merged: 2024-08-02 - Initial account page styling

Additional Work

Development Tooling

  • #12: Add prettier and typescript plugins (link) - Merged: 2024-08-05 - Code formatting and TypeScript tooling
  • #16: Fixing component types (link) - Merged: 2024-08-06 - TypeScript type fixes
  • #32: Expose dev server to local network (link) - Merged: 2024-08-21 - Development server configuration
  • #37: Honor env file in codegen (link) - Merged: 2024-08-22 - Environment configuration for code generation

Block Explorer Features

  • #88: Contracts (link) - Merged: 2024-09-03 - Smart contract display functionality
  • #90: Homepage (link) - Merged: 2024-09-04 - Homepage layout and features
  • #129: Network page (link) - Merged: 2024-09-18 - Network overview page
  • #14: Chartjs charts (link) - Merged: 2024-09-06 - Chart.js integration for data visualization

greymass/anchor-mobile-android

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

Overview

Native Android wallet application for Antelope blockchains. August work focused on SDK updates, bug fixes, and Play Store compliance, with all PRs merged on August 28.

Technology Stack: React Native, Android SDK, Java/Kotlin

Pull Requests

#636 - Increased the SDK target version to 34 (link)
Merged: 2024-08-28

Description: Updated Android SDK target to version 34 (Android 14) for Play Store compliance and access to latest platform features.

Impact: Required for Play Store submission. Google mandates apps target recent SDK versions to ensure compatibility with current Android security and privacy features.


#628 - Updated billing SDK (link)
Merged: 2024-08-28

Description: Updated Google Play billing SDK to latest version for in-app purchase functionality.

Impact: Maintains compatibility with Google Play billing infrastructure and ensures continued operation of in-app purchases.


#633 - Native prompt activity fix (link)
Merged: 2024-08-28

Description: Fixed issues with native prompt activity handling for improved transaction signing experience.

Impact: Resolves user experience issues during transaction signing prompts.


#629 - Double activity redirection solution (link)
Merged: 2024-08-28

Description: Resolved issue where activities were being launched twice, causing navigation problems and poor user experience.

Impact: Fixes navigation flow bug that was causing confusion and app instability.


#632 - style: fix background in account list (link)
Merged: 2024-08-28

Description: Visual fix for account list background styling.

Impact: UI polish for account list display.


greymass/antelope-snap

Repository: https://github.com/greymass/antelope-snap
Activity: 3 PRs merged

Overview

MetaMask Snap for Antelope blockchains enabling account creation and transaction signing through MetaMask. This work establishes the core Snap functionality that integrates with Unicove’s account creation flow and WharfKit’s wallet plugins.

Technology Stack: TypeScript, MetaMask Snaps API

Technical Context: MetaMask Snaps extend MetaMask wallet with custom blockchain protocol support. This Snap enables MetaMask users to interact with Antelope blockchains without downloading separate wallet software.

Pull Requests

#4 - Adding account creation plugin + cleanup (link)
Merged: 2024-08-14

Description: Integrated account creation plugin functionality and performed code cleanup. This work enables account creation flows through MetaMask Snap, allowing users to create new Antelope accounts using MetaMask as the interface.

Impact: Establishes account creation capability within the Snap, coordinating with wharfkit/account-creation-plugin-metamask and Unicove signup pages.


#5 - Added warning to readme (link)
Merged: 2024-08-14

Description: Documentation update adding important warnings to the README about Snap usage, limitations, and security considerations.

Impact: Improves developer and user documentation with necessary disclaimers about Snap capabilities and constraints.


#6 - Updating logo (link)
Merged: 2024-08-14

Description: Updated branding with new logo for the MetaMask Snap.

Impact: Consistent branding across Snap interface.


greymass/unicove-v1

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

Overview

Legacy version of Unicove in maintenance mode. August received targeted bug fixes addressing account switching and UI layout issues.

Technology Stack: Vue.js (legacy stack)

Pull Requests

#208 - fix: Earn module withdrawable value error when switch account (#207) (link)
Merged: 2024-08-29

Description: Fixed calculation error in earn module when switching between accounts, ensuring correct withdrawable values are displayed. Previously, switching accounts would show incorrect or cached withdrawal values.

Impact: Resolves data integrity issue affecting multi-account users.


#204 - fix: Fixed right shift of ‘Add another account’ button (#203) (link)
Merged: 2024-08-29

Description: Corrected button positioning issue where “Add another account” button was misaligned due to CSS layout problems.

Impact: UI polish fixing layout bug.


wharfkit/wallet-plugin-metamask

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

Overview

WharfKit wallet plugin enabling MetaMask Snap integration. This plugin allows applications using WharfKit Session Kit to connect with users’ MetaMask wallets through the Antelope Snap.

Technology Stack: TypeScript, WharfKit, MetaMask Snaps API

Technical Context: WharfKit’s plugin architecture allows wallet providers to integrate with the ecosystem. This plugin bridges MetaMask Snap with WharfKit-based applications like Unicove.

Pull Requests

#3 - Exposing metamask helper methods (link)
Merged: 2024-08-16

Description: Exposed helper methods for MetaMask Snap interaction, improving developer experience and enabling more granular control over wallet operations. These methods provide access to Snap-specific functionality beyond standard wallet operations.

Impact: Enables developers to access MetaMask Snap capabilities directly, supporting advanced integration scenarios.


#4 - Allowing snap origin arg on plugin initialization (link)
Merged: 2024-08-22

Description: Added configuration option to specify custom Snap origin during plugin initialization, supporting different deployment environments and testing scenarios. The Snap origin identifies which MetaMask Snap to load (production, development, local testing).

Impact: Enables testing and development workflows by allowing developers to specify which version of the Snap to connect to.

Technical Details: MetaMask Snaps are identified by origin URL. This change allows developers to configure the plugin to use development/staging Snaps instead of only production versions.


#5 - Displaying link to unicove /metamask when snap is not installed (link)
Merged: 2024-08-22

Description: Improved user experience by providing direct link to Unicove’s MetaMask Snap installation page when the Snap is not detected. When users attempt to connect with MetaMask but don’t have the Antelope Snap installed, they’re directed to Unicove’s installation page.

Impact: Reduces friction in onboarding flow by guiding users directly to Snap installation when needed. Coordinates with Unicove PR #29 (Signup & Metamask pages).


wharfkit/cli

Repository: https://github.com/wharfkit/cli
Activity: 2 PRs merged

Overview

Command-line tools for WharfKit development. The CLI generates TypeScript types and interfaces from smart contract ABIs, enabling type-safe contract interactions.

Technology Stack: TypeScript, Node.js

Pull Requests

#37 - Fixing generated Structs (link)
Merged: 2024-08-06

Description: Fixed issues with struct generation from smart contract ABIs. The CLI parses contract ABIs and generates TypeScript type definitions, but was producing incorrect struct definitions for certain contract patterns.

Impact: Improved code generation quality, ensuring generated TypeScript types accurately match contract structs.


#39 - Generating structs with correct boolean types (link)
Merged: 2024-08-29

Description: Corrected boolean type generation in structs. Previously, boolean fields in contracts were being generated as incorrect TypeScript types, causing type safety issues.

Impact: Fixes type safety when working with contract data containing boolean fields.


wharfkit/account

Repository: https://github.com/wharfkit/account
Activity: 1 PR merged

Overview

WharfKit library for account management operations. Provides utilities for querying and managing Antelope blockchain accounts.

Technology Stack: TypeScript, Antelope APIs

Pull Request

#21 - Data Fixes (link)
Merged: 2024-08-07

Description: Fixed data handling issues in the account management library, improving reliability of account operations. These fixes addressed edge cases in account data parsing and processing.

Impact: Improved reliability of account management operations. This library is used by Unicove for account operations (referenced in Unicove PR #25).


wharfkit/account-creation-plugin-metamask

Repository: https://github.com/wharfkit/account-creation-plugin-metamask
Activity: 1 PR merged

Overview

WharfKit plugin for creating Antelope accounts via MetaMask Snap. This plugin integrates with WharfKit’s account creation flow to enable MetaMask-based account creation.

Technology Stack: TypeScript, WharfKit, MetaMask Snaps API

Pull Request

#1 - Update Makefile (link)
Merged: 2024-08-08

Description: Added support for alternative bash locations in the Makefile, improving portability across different development environments (macOS, Linux distributions with different bash installations).

Impact: Improves developer experience by making build tooling work across different Unix environments.

Technical Context: Different Unix systems install bash in different locations (/bin/bash vs /usr/bin/bash). This change makes the Makefile work regardless of bash location.


New Repositories

greymass/2nicove-worker

Created: 2024-08-27
Repository: https://github.com/greymass/2nicove-worker
Last Push: 2024-10-29

Description: Experimental API platform for 2nicove.

Purpose: Backend worker service for the experimental 2nicove platform. The project provides API infrastructure with InfluxDB v2 integration for time-series data storage and querying. Represents experimental work on next-generation infrastructure for Unicove-related services.

Technology Stack:

  • Runtime: Bun (fast JavaScript runtime)
  • Database: InfluxDB v2 (time-series database)
  • Configuration: Environment-based (API endpoints, tokens, organization settings)
  • Build: Make for dependency management
  • Deployment: Compiles to standalone binary

Technical Context: Time-series databases like InfluxDB are optimized for storing and querying sequential data with timestamps (blockchain events, account activity, resource usage over time). Bun provides significantly faster performance than Node.js for JavaScript workloads.

From README: The service requires external InfluxDB configuration and uses environment variables for connection settings including API endpoints, tokens, and organization details. It can compile to a standalone binary for production deployment alongside InfluxDB.

Significance: This repository represents experimental work on next-generation infrastructure using modern tooling (Bun) and specialized databases (time-series) for improved performance and scalability. The “2nicove” naming suggests evolution of the Unicove platform.