Skip to content

Repository files navigation

drox coding assessment

A Solana Anchor program for interacting with Marinade Finance, enabling users to:

  • Deposit SOL and receive mSOL
  • Liquid unstake mSOL for SOL
  • Order delayed unstake tickets
  • Claim SOL from completed tickets

Features

  • Deposit SOL: Stake SOL via Marinade and receive mSOL
  • Liquid Unstake: Instantly swap mSOL for SOL
  • Order Unstake: Start a delayed unstake (ticket-based)
  • Claim: Claim SOL from a completed unstake ticket

Getting Started

Prerequisites

Install Dependencies

yarn install

Build the Program

anchor build

Run Tests

anchor test

Example Transactions

Below are example transactions for each main function, executed on Solana devnet:

1. Deposit SOL

2. Liquid Unstake

3. Order Unstake

4. Claim

Project Structure

drox_project/
├── programs/
│   └── drox_project/
│       ├── src/
│       │   ├── instructions/
│       │   │   ├── claim.rs           # Claim SOL from completed ticket
│       │   │   ├── deposit_sol.rs     # Deposit SOL and receive mSOL
│       │   │   ├── liquid_unstake.rs  # Liquid unstake mSOL for SOL
│       │   │   ├── order_unstake.rs   # Order delayed unstake ticket
│       │   │   └── mod.rs             # Instruction module declarations
│       │   ├── constants.rs           # Important public keys and addresses
│       │   ├── error.rs               # Custom error codes
│       │   └── lib.rs                 # Program entrypoint and handlers
│       ├── Cargo.toml                 # Rust crate manifest
│       └── Xargo.toml                 # Xargo config (if needed)
├── tests/
│   ├── drox_project.ts                # TypeScript integration tests
│   └── constant.ts                    # Test constants (public keys, etc.)
├── migrations/
│   └── deploy.ts                      # Anchor deployment script
├── Anchor.toml                        # Anchor project config
├── Cargo.toml                         # Workspace manifest
├── package.json                       # Node.js dependencies
├── tsconfig.json                      # TypeScript config
├── yarn.lock                          # Yarn lockfile
└── README.md                          # Project documentation
  • programs/drox_project/src/instructions/: All instruction handlers for the Anchor program
  • programs/drox_project/src/constants.rs: Important public keys and addresses
  • programs/drox_project/src/error.rs: Custom error codes for the program
  • programs/drox_project/src/lib.rs: Main program entrypoint and instruction routing
  • tests/: TypeScript integration tests and test constants
  • migrations/: Anchor deployment scripts
  • Anchor.toml, Cargo.toml, package.json, etc.: Project configuration files

License

MIT

About

Anchor-based Solana program integrating with Marinade Finance for staking and unstaking SOL (mSOL) using CPI calls. Supports deposit, liquid unstake, and delayed unstake functionality with clean modular structure and TypeScript test coverage.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages