Skip to content

openSVM/opensvm-mobile

Repository files navigation

OpenSVM Mobile

A mobile application for exploring the Solana blockchain, monitoring validators, and managing your Solana wallet.

OpenSVM Mobile

CI/CD Pipeline

Overview

OpenSVM Mobile is a comprehensive mobile application built with Expo and React Native that provides tools for interacting with the Solana blockchain. The application offers real-time monitoring of validator performance, blockchain exploration, wallet management, and an AI assistant for Solana-related queries.

Features

🔍 Blockchain Explorer

  • Search for transactions, blocks, and accounts
  • View network statistics and metrics
  • Monitor recent blocks and transactions

📊 Validator Monitoring

  • Track validator performance metrics (TPS, latency, skip rate)
  • View global validator distribution
  • Analyze validator resources (CPU, memory, disk, bandwidth)
  • Compare top validators

💰 Wallet Management

  • Connect your Solana wallet
  • View your assets and transactions
  • Copy wallet address for transactions

🤖 AI Assistant

  • Get help with Solana-related queries
  • Learn about blockchain concepts
  • Receive guidance on using the application

📝 SIMD-0228 Proposal

  • Interactive simulation of the market-based emission mechanism
  • Staking calculator to estimate rewards
  • Discussion thread for community feedback

Getting Started

React Native Project

Prerequisites

  • Node.js (v16 or higher)
  • Expo CLI
  • Yarn or npm

Installation

  1. Clone the repository
git clone https://github.com/openSVM/opensvm-mobile.git
cd opensvm-mobile
  1. Navigate to the React Native project
cd opensvm-reactnative
  1. Install dependencies
yarn install
# or
npm install
  1. Start the development server
yarn start
# or
npm start
  1. Run on your device or emulator
  • Scan the QR code with the Expo Go app (Android) or Camera app (iOS)
  • Press 'a' to run on Android emulator
  • Press 'i' to run on iOS simulator
  • Press 'w' to run in web browser

Dioxus Project

Prerequisites

  • Rust (stable channel)
  • Cargo
  • Dioxus CLI

Installation

  1. Clone the repository (if not already done)
git clone https://github.com/openSVM/opensvm-mobile.git
cd opensvm-mobile
  1. Navigate to the Dioxus project
cd opensvm-dioxus
  1. Install Rust (if not already installed)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  1. Add WASM target
rustup target add wasm32-unknown-unknown
  1. Install Dioxus CLI
cargo install dioxus-cli
  1. Start the development server
# For web development
dioxus serve --platform web

# For desktop development
dioxus serve --platform desktop

# For Android development
dioxus serve --platform android

Building for Production

The CI/CD pipeline automatically builds and releases the application for all platforms when a new tag is pushed. However, you can also build manually:

Web (WASM)

dioxus build --features web --profile wasm-release --platform web --release

Desktop

# macOS/Linux
RUSTFLAGS="-C target-cpu=native" dioxus build --features desktop --profile desktop-release --platform desktop --release

# Windows (PowerShell)
$env:RUSTFLAGS="-C target-cpu=native"
dioxus build --features desktop --profile desktop-release --platform desktop --release

Android

dioxus build --features android --platform android --profile android-release

Project Structure

This repository contains two main projects:

React Native Project

opensvm-reactnative/
├── app/                    # Main application screens and navigation
│   ├── (tabs)/             # Tab-based navigation screens
│   ├── account/            # Account-related screens
│   └── transaction/        # Transaction-related screens
├── assets/                 # Static assets (images, fonts)
├── components/             # Reusable UI components
│   └── charts/             # Chart and visualization components
├── constants/              # App constants (colors, typography)
├── hooks/                  # Custom React hooks
├── mocks/                  # Mock data for development
├── stores/                 # State management (Zustand)
├── types/                  # TypeScript type definitions
└── utils/                  # Utility functions

Dioxus Project

opensvm-dioxus/
├── src/                    # Source code directory
│   ├── app.rs              # Main application component
│   ├── main.rs             # Entry point with platform-specific configurations
│   ├── assets/             # Static assets
│   ├── components/         # Reusable UI components
│   ├── constants/          # App-wide constants
│   ├── routes/             # Application routes
│   ├── stores/             # State management
│   └── utils/              # Utility functions
└── Cargo.toml              # Project dependencies and configuration

Technologies

React Native Project

Dioxus Project

CI/CD

  • GitHub Actions: Automated build, test, and release pipeline
  • Cross-Platform Builds: Web, Desktop (Windows, macOS, Linux), Android
  • Release Automation: Automatic GitHub releases and Homebrew formula updates

CI/CD Pipeline

This repository uses GitHub Actions to automate the build, test, and release process for the OpenSVM-Dioxus project.

Workflow Overview

The CI/CD pipeline is defined in .github/workflows/ci.yml and includes the following jobs:

  1. Build & Test: Compiles and tests the application for all supported platforms
  2. Release: Creates platform-specific binaries and publishes them as GitHub releases
  3. Homebrew Formula: Updates the Homebrew formula for macOS users
  4. Android Build: Builds and optimizes the Android APK

GitHub Actions Used

The workflow uses the following GitHub Actions:

  • actions/checkout@v4: Checks out the repository
  • actions/setup-java@v4: Sets up JDK for Android builds
  • actions/cache@v4: Caches Cargo dependencies for faster builds
  • actions/upload-artifact@v4: Uploads build artifacts
  • actions/download-artifact@v4: Downloads artifacts for releases
  • actions-rs/toolchain@v1: Sets up Rust toolchain
  • actions-rs/cargo@v1: Runs Cargo commands
  • softprops/action-gh-release@v1: Creates GitHub releases
  • android-actions/setup-android@v2: Sets up Android SDK

Creating a Release

To create a new release:

  1. Create and push a new tag following semantic versioning:

    git tag v1.0.0
    git push origin v1.0.0
  2. The workflow will automatically:

    • Build all platform versions
    • Create a GitHub release with all artifacts
    • Update the Homebrew formula

Installing from Homebrew

On macOS, you can install the application using Homebrew:

# Add the tap (only needed once)
brew tap openSVM/opensvm-mobile https://github.com/openSVM/opensvm-mobile.git

# Install the application
brew install opensvm-dioxus

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors