Skip to content

feat: improve scenario#555

Open
lgalabru wants to merge 8 commits intomainfrom
feat/revisit-scenario
Open

feat: improve scenario#555
lgalabru wants to merge 8 commits intomainfrom
feat/revisit-scenario

Conversation

@lgalabru
Copy link
Collaborator

@lgalabru lgalabru commented Mar 5, 2026

With this PR, we're bringing Scenario a bit closer to the finish line, but we still have a lot of remaining work to wrap up this epic.

@lgalabru lgalabru force-pushed the feat/revisit-scenario branch from 6e73a76 to 3ad3607 Compare March 10, 2026 15:12
Replace the large verified_tokens.json (49k lines) with a compact CSV
format, reducing file size significantly and simplifying token parsing.
Rework scenario type definitions and registry to support new protocol
configurations, improved override handling, and generation scripts.
Add Raydium v4, SPL Token, and Switchboard v2 protocol support. Update
overrides for Kamino, Pyth v2, Raydium v3, and Whirlpool. Include
generation scripts for Pyth price feeds and Raydium markets, and add
a Kamino liquidation arbitrage example.
@lgalabru lgalabru changed the title feat: revisit scenario feat: improve scenario Mar 10, 2026
Update SVM runtime, locker, and cheatcodes to support the new scenario
protocol configurations and override processing.
Adapt MCP server tools and handlers to work with the updated scenario
types and protocol configurations.
Add CLI support for revised scenario commands and update workspace
dependency versions.
@lgalabru lgalabru force-pushed the feat/revisit-scenario branch from 3ad3607 to 9cb2398 Compare March 10, 2026 17:26
@lgalabru lgalabru requested a review from MicaiahReid March 10, 2026 17:27
@lgalabru lgalabru marked this pull request as ready for review March 10, 2026 17:27
- id: "sol-pippin"
label: "SOL/pippin"
value: "4Zm2A7VUfuvudpVpQkJyrg2DiZTcw6ckwbKP9LvizAkx"
description: "SOL/pippin AMM v4 pool (30d vol: $593.1M)"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All of the (30d vol: ) comments I think are not useful/relevant here

let resolved_path = super::resolve_path(snapshot_path);
let path_str = resolved_path.to_string_lossy();
info!("Restoring state from snapshot: {}", path_str);
match surfnet_svm.restore_from_snapshot(&path_str) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have a very similar code path to surfnet_svm.restore_from_snapshot at https://github.com/txtx/surfpool/blob/9cb2398b2cf5caf1969aa9715bcb5a45e7c4c49e/crates/core/src/surfnet/locker.rs#L481

It is initialized a few lines below this (line 89 of this file) where the snapshot file contents are processed and stored on the simnet config.

That one does a few extra things - allowing useres to provide <pubkey>: null in their snapshot to fetch from remote.

Is this current loop causing a double import? Do we want to go with just one of these approaches?

// SWITCHBOARD_ON_DEMAND_OVERRIDES_CONTENT,
// "switchboard-v2",
// );
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove?

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.

2 participants