Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Trident SVM support #234

Merged
merged 14 commits into from
Jan 11, 2025
Merged

Trident SVM support #234

merged 14 commits into from
Jan 11, 2025

Conversation

lukacan
Copy link
Collaborator

@lukacan lukacan commented Jan 9, 2025

Description

This PR contains work that was done during the previous several weeks. It contains multiple improvements, refactorings and adjustments to the source code. Namely

Major Architectural Changes

  • Migrated from ProgramTest to standalone TridentSVM implementation, improving fuzzing performance
  • Updated to solana-sdk ~2.0 while maintaining compatibility with Anchor 0.29+ programs

Codebase Organization

  • Split TridentSVM into a standalone crate
  • Created dedicated crates for:
    • Custom IDL specification
    • Trident.toml configuration
    • Fuzz Test template generation

New Features

  • Added AFL fuzzer support with seed configuration in Trident.toml
  • Implemented custom IDL specification to handle different Anchor versions (0.29, 0.30.1)
  • Custom string message for FuzzingError

Additional Improvements

  • Enhanced IXOps with new methods
  • Simplified Snapshots implementation

Related Tickets & Documents

  • Related Issue #

  • Closes #

  • I clicked on "Allow edits from maintainers"

@lukacan lukacan merged commit 01e560e into develop Jan 11, 2025
9 checks passed
@lukacan lukacan deleted the trident-svm branch January 11, 2025 15:26
lukacan added a commit that referenced this pull request Jan 15, 2025
* Trident SVM support (#234)

* ✨ WIP: Trident SVM

* 🔥 Cleanup + migrate trident svm

* Simplify and update Trident config (#230)

* ✨ Update config + update initial programs and accounts for Trident SVM

* ✨ Resolve some additional issues with workspace / cargo paths + simplify config

* ✨ Update metaplex cpi example

* ✨ Code quality

* ⚡️ Pipeline update

* ✨ Update example

* ⚡️ Initialize Trident SVM with syscall stubs + add mazes

* ✨ Update handling with Clock Sysvar

* 🧪 Update simple-cpi-6 and workflow

* 🎨 If ix discriminator is not present derive it

* ⚡️ Update Fuzz Client implementation for TridentSVM

* ✨ Separate fuzz test template generator, update generator logic and update tests

* 🔥 Remove necessity to have anchor as dep in trident tests

* ✨ Add fuzzingError with custom string message

* ✨ Convert instruction name from IDL into snake case

* 📝 Add changelog

* ✨ Fix timeout -> runtime

* ✨ First iteration of docs updates

* 🔥 Remove solana-svm dep and migrate process into trident svm

* 🚀 Released related crates

* 🔥 Remove unnecessary function in the test_fuzz.rs

* ✨ Simplify possible errors, transaction error handler contains transaction error

* 💚 Add support for composite accounts

* ✨ Rename config to TridentConfig as the old name was causing issues

* Update examples

* ✨ Resolve comments

* 📝 Inform to change direcotry before fuzz start

* 🔖 Bump versions

---------

Co-authored-by: hyckomatej <[email protected]>
lukacan added a commit that referenced this pull request Jan 15, 2025
* ✨ WIP: Trident SVM

* 🔥 Cleanup + migrate trident svm

* Simplify and update Trident config (#230)

* ✨ Update config + update initial programs and accounts for Trident SVM

* ✨ Resolve some additional issues with workspace / cargo paths + simplify config

* ✨ Update metaplex cpi example

* ✨ Code quality

* ⚡️ Pipeline update

* ✨ Update example

* ⚡️ Initialize Trident SVM with syscall stubs + add mazes

* ✨ Update handling with Clock Sysvar

* 🧪 Update simple-cpi-6 and workflow

* 🎨 If ix discriminator is not present derive it

* ⚡️ Update Fuzz Client implementation for TridentSVM

* ✨ Separate fuzz test template generator, update generator logic and update tests

* 🔥 Remove necessity to have anchor as dep in trident tests

* ✨ Add fuzzingError with custom string message

* ✨ Convert instruction name from IDL into snake case

* 📝 Add changelog
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