Skip to content

feat: implement Solana chain module (#22)#31

Open
zeroknowledge0x wants to merge 1 commit into
kcolbchain:mainfrom
zeroknowledge0x:feat/solana-chain-module
Open

feat: implement Solana chain module (#22)#31
zeroknowledge0x wants to merge 1 commit into
kcolbchain:mainfrom
zeroknowledge0x:feat/solana-chain-module

Conversation

@zeroknowledge0x

Copy link
Copy Markdown

Summary

Implements the Solana chain module as requested in #22. Adds Solana connectivity, SOL/SPL token operations, and well-known token constants.

Closes #22

What's Implemented

New: chain/solana_connector.rs

  • SolanaConnector — Solana RPC client with the same ergonomic pattern as ChainConnector
  • mainnet(), devnet(), with_rpc() constructors
  • balance(address) — SOL balance in lamports
  • balance_sol(address) — SOL balance as f64
  • spl_balance(mint, owner) — SPL token balance
  • transfer_sol(from, to, lamports) — SOL transfer
  • transfer_spl(from, mint, to, amount) — SPL token transfer with auto-ATA creation
  • slot() — current slot (equivalent to block height)
  • account_info(address) — raw account data

New: chains/solana.rs

  • SolanaConstants — well-known program IDs and token mints:
    • System Program, SPL Token Program, Associated Token Account Program
    • USDC, USDT, WSOL, BONK, JTO, JUP, mSOL
  • SplTokenClient — typed client for SPL token operations:
    • usdc(), usdt(), bonk() constructors with correct decimals
    • balance(), balance_ui(), transfer() methods

Updated

  • Chain enum: Added Solana and SolanaDevnet variants with is_solana() helper
  • chain/mod.rs: Solana RPC URLs, explorer URLs, native token (SOL)
  • chains/mod.rs: Expose solana module
  • examples/multi_chain.rs: Solana devnet queries alongside EVM chains
  • lib.rs: Prelude exports for SolanaConstants and SplTokenClient
  • Cargo.toml: solana-sdk, solana-client, spl-token, spl-associated-token-account
  • README.md: Solana status updated from "Planned" to "MVP"

Acceptance Criteria

  • New module chain/solana.rs (implemented as chain/solana_connector.rs + chains/solana.rs)
  • Support: connection (mainnet/devnet/custom RPC)
  • Support: balance check (SOL + SPL tokens)
  • Support: SOL transfer
  • Support: SPL token transfer
  • Uses solana-client crate
  • Tests (unit tests for mint parsing, client construction, address validation)
  • Update examples/multi_chain.rs
  • README updated

Notes

  • Solana uses different primitives (Pubkey, lamports) than EVM (Address, U256), so a separate SolanaConnector was created alongside the existing EVM ChainConnector
  • SPL transfers automatically create Associated Token Accounts for recipients if they don't exist
  • solana-test-validator integration tests require a running local validator — unit tests are provided for offline validation

Payment

Wallet EVM: 0x036E525f4569865DA76A0ef758304b309740aeef

New module: chain/solana_connector.rs
- SolanaConnector: RPC connection, SOL balance, SOL/SPL transfers
- Support for mainnet, devnet, custom RPC endpoints
- SPL token operations (balance, transfer with auto-ATA creation)

New module: chains/solana.rs
- SolanaConstants: well-known program IDs and token mints (USDC, USDT, BONK, JTO, JUP, MSOL)
- SplTokenClient: typed client for SPL token operations
- Unit tests for mint parsing and client construction

Updated:
- Chain enum: added Solana, SolanaDevnet variants
- chain/mod.rs: is_solana() helper, explorer URLs
- chains/mod.rs: expose solana module
- examples/multi_chain.rs: Solana devnet queries alongside EVM chains
- lib.rs: prelude exports for Solana types
- Cargo.toml: solana-sdk, solana-client, spl-token, spl-associated-token-account
- README.md: Solana status updated from Planned to MVP

Closes kcolbchain#22
@abhicris

abhicris commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Welcome to kcolbchain, @zeroknowledge0x — glad you're here. 🌱

Here's what happens from this PR:

  1. Our automated review looks for obvious issues (tests, secrets, size) within a couple of hours.
  2. If it's clean and CI passes, we merge without back-and-forth.
  3. If we need changes, we'll leave a specific comment — not a generic nit. Push another commit and we re-review.

While you wait:

  • Run the repo's tests locally (see the repo README.md).
  • Keep the PR scoped to one concern — bigger PRs land slower.
  • Don't commit tokens or .env contents.

What happens after your first merge

Thanks for writing the code. We're building this to last.

@abhicris

abhicris commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

🤖 Audit verdict: safe

Legitimate Solana blockchain integration with clean code, proper error handling, no credentials, no malicious payloads, and all dependencies are official Solana packages.

Audited by the kcolbchain PR pipeline. See pipeline docs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

L2: Implement Solana chain module

2 participants