Skip to content

feat: rewards program and dashboard as example#71

Merged
jonasXchen merged 40 commits intomainfrom
rewards-example
Mar 30, 2026
Merged

feat: rewards program and dashboard as example#71
jonasXchen merged 40 commits intomainfrom
rewards-example

Conversation

@jonasXchen
Copy link
Copy Markdown
Collaborator

@jonasXchen jonasXchen commented Mar 30, 2026

Summary by CodeRabbit

  • New Features

    • Introduced a new Solana rewards program supporting multiple reward types (SPL tokens, legacy NFTs, programmable NFTs).
    • Added a comprehensive rewards management dashboard with admin controls, reward configuration, and transaction history tracking.
    • Implemented VRF-based random reward distribution with delegation support for external execution environments.
  • Chores

    • Updated ephemeral rollups SDK dependencies to latest versions.

@vercel
Copy link
Copy Markdown

vercel bot commented Mar 30, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
er-rolldice Ready Ready Preview, Comment Mar 30, 2026 6:39am
magicblock-engine-examples Ready Ready Preview, Comment Mar 30, 2026 6:39am
magicblock-rewards-dashboard Error Error Mar 30, 2026 6:39am
spl-tokens Ready Ready Preview, Comment Mar 30, 2026 6:39am

Request Review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 30, 2026

Caution

Review failed

Pull request was closed or merged during review

Walkthrough

This PR introduces a comprehensive rewards-distribution system and updates related SDK dependencies. It adds a new Solana program (rewards-delegated-vrf) with VRF-based reward draws, delegation support, and multi-asset reward types, alongside a complete Next.js dashboard for administration. Existing magic-actions program dependencies are updated and migration to a new MagicIntentBundleBuilder API is implemented.

Changes

Cohort / File(s) Summary
Dependency Updates
magic-actions/package.json, magic-actions/programs/magic-actions/Cargo.toml
Updated @magicblock-labs/ephemeral-rollups-sdk and ephemeral-rollups-sdk versions from 0.6.5 to 0.8.5/0.8.6.
Magic Actions Program Migration
magic-actions/programs/magic-actions/src/lib.rs
Replaced MagicInstructionBuilder with MagicIntentBundleBuilder fluent API; updated imports and invocation logic in commit_and_update_leaderboard.
Magic Actions Tests
magic-actions/tests/magic-actions.ts
Reduced post-transaction sleep durations from 10s/5s to 1s/2s in delegation and leaderboard update test cases.
Rewards Program Configuration
rewards-delegated-vrf/Anchor.toml, rewards-delegated-vrf/Cargo.toml, rewards-delegated-vrf/package.json, rewards-delegated-vrf/tsconfig.json
New configuration files for Anchor workspace, Rust workspace build settings, Node package metadata, and TypeScript compilation.
Rewards Program Documentation
rewards-delegated-vrf/README.md, rewards-delegated-vrf/.gitignore, rewards-delegated-vrf/.prettierignore
Setup guide with dependency installation, build/test instructions, and ignore patterns for artifacts and dependencies.
Rewards On-Chain Program
rewards-delegated-vrf/programs/rewards-delegated-vrf/Cargo.toml, rewards-delegated-vrf/programs/rewards-delegated-vrf/src/{lib.rs,state.rs,constants.rs,errors.rs,helpers.rs}, rewards-delegated-vrf/programs/rewards-delegated-vrf/src/instructions/{...}.rs
Complete Solana Anchor program implementing reward distributor initialization, VRF-based reward drawing, delegation, and multi-asset (SPL, NFT, programmable NFT) reward transfers with validation helpers.
Dashboard Infrastructure
rewards-delegated-vrf/dashboard/{next.config.js,tailwind.config.ts,tsconfig.json,postcss.config.js,package.json}, rewards-delegated-vrf/dashboard/{app/{layout.tsx,page.tsx,globals.css,providers.tsx},next-env.d.ts}
Next.js configuration, global styling, layout templates, and core page component for the rewards dashboard.
Dashboard Components
rewards-delegated-vrf/dashboard/components/{Header.tsx,WalletConnect.tsx,WalletInfo.tsx,...,index.ts}
14 React components for wallet integration, distributor management, admin actions, delegation, NFT/token operations, transaction history, modals, and UI elements.
Dashboard Hooks & Utilities
rewards-delegated-vrf/dashboard/hooks/{useRewardData.ts,useTransaction.ts,useDiscoverDistributors.ts,useTokenMetadata.ts,useCluster.ts,useGlobalTransactionHistory.ts,index.ts}
Custom React hooks for fetching on-chain data, managing transactions, discovering distributors, handling global state, and cluster/RPC endpoint management.
Dashboard Libraries
rewards-delegated-vrf/dashboard/lib/{api.ts,clusterContext.ts,constants.ts,pda.ts,program.ts,refresh.ts,tokenAccounts.ts,types.ts,utils.ts,vrfConstants.ts}
Core utilities for PDA derivation, program client access, token account enumeration, reward validation/export, cluster configuration, explorer URLs, and type definitions.
Dashboard IDL & Environment
rewards-delegated-vrf/dashboard/idl/{rewards_delegated_vrf.json,rewards_delegated_vrf.ts}, rewards-delegated-vrf/dashboard/.env.local.example, rewards-delegated-vrf/dashboard/public/{devnet_idl.json}
IDL definitions in JSON and TypeScript, example environment variables, and public IDL for devnet configuration.
Test Suite
rewards-delegated-vrf/tests/{rewards-delegated-vrf.ts,setup.ts,helpers.ts,pdas.ts,constants.ts}, rewards-delegated-vrf/tests/fixtures/{...}.json
Comprehensive Anchor test suite with end-to-end VRF reward flows, test helpers, PDA utilities, and JSON fixtures for NFT/collection metadata and keypairs.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch rewards-example

@jonasXchen jonasXchen merged commit d4b2748 into main Mar 30, 2026
5 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant