build(svm): support Solana instruction 3.4#419
Conversation
Greptile SummaryThis PR upgrades
Confidence Score: 5/5Safe to merge. The change is well-scoped: only the send boundary is touched, the v3 signing pipeline is preserved, and a signed round-trip test validates JSON schema compatibility between the two Transaction versions. All logic changes are in send_transaction.rs and the associated Cargo.toml. The JSON bridge between v3 and v4 Transaction types is directly validated by the updated test. CI toolchain pinning is consolidated cleanly via rust-toolchain. No error-handling regressions, no dropped fields, no auth boundary changes. No files require special attention. Important Files Changed
Sequence Diagram%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
participant Runner as Runbook Runner
participant ST as send_transaction.rs
participant JSON as JSON bytes (stored in ValueStore)
participant V4 as solana-transaction-rpc v4 (Transaction alias)
participant RPC as Solana RPC Client v4.1
Runner->>ST: send_transaction_background_task(inputs)
ST->>JSON: get_buffer_bytes_result()
Note over JSON: Bytes previously serialized from v3 Transaction via serde_json
ST->>ST: deserialize_transaction(bytes)
JSON->>V4: serde_json::from_slice(bytes)
Note over V4: v3 JSON schema is compatible with v4 Transaction serde
ST->>RPC: "rpc_client.send_and_confirm_transaction(&transaction)"
RPC-->>ST: Signature
ST-->>Runner: Ok(signature)
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
participant Runner as Runbook Runner
participant ST as send_transaction.rs
participant JSON as JSON bytes (stored in ValueStore)
participant V4 as solana-transaction-rpc v4 (Transaction alias)
participant RPC as Solana RPC Client v4.1
Runner->>ST: send_transaction_background_task(inputs)
ST->>JSON: get_buffer_bytes_result()
Note over JSON: Bytes previously serialized from v3 Transaction via serde_json
ST->>ST: deserialize_transaction(bytes)
JSON->>V4: serde_json::from_slice(bytes)
Note over V4: v3 JSON schema is compatible with v4 Transaction serde
ST->>RPC: "rpc_client.send_and_confirm_transaction(&transaction)"
RPC-->>ST: Signature
ST-->>Runner: Ok(signature)
Reviews (3): Last reviewed commit: "build(svm): support Solana instruction 3..." | Re-trigger Greptile |
adef09c to
c4f5b56
Compare
c4f5b56 to
398a42d
Compare
Context
This is the prerequisite txtx release for Surfpool 1.5: LiteSVM 0.14 requires Solana instruction 3.4, which conflicts with the addon’s current exact 3.2 pin.
Summary
Test plan
Breaking changes
None.