feat(runner): Solidity & Flow EVM support (Phase 1 + 2)#159
Open
feat(runner): Solidity & Flow EVM support (Phase 1 + 2)#159
Conversation
Phase 1 covers server-side Solidity LSP via WebSocket, language-aware Monaco editor, and Solidity templates. Future phases cover compilation, deployment, and cross-VM interaction. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
SolidityLSPClient spawns the @nomicfoundation/solidity-language-server over stdio and manages JSON-RPC communication, mirroring CadenceLSPClient. SolidityWorkspace creates a temp directory with a minimal foundry.toml configured for Flow EVM (London EVM version, Solidity 0.8.24). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Refactors the WebSocket server to use noServer mode with an HTTP server that routes /lsp to the existing Cadence LSP and /lsp-sol to the new Solidity LSP. The Solidity handler is simpler than Cadence (no import rewriting needed) but follows the same init/JSON-RPC forwarding pattern. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add Simple Storage and ERC-20 Token Solidity templates to the template picker. Auto-detect .sol language in createFile for proper editor support. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use colored icons to distinguish file types: blue FileCode2 for .sol, green File for .cdc. Also allow .sol extension in new file creation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3d97629 to
f02eb2d
Compare
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Update WalletButton to show both FCL (Flow) and MetaMask (EVM) wallets side by side with connect/disconnect/switch-chain controls - Wire useEvmWallet hook into App.tsx and pass state to WalletButton - Make handleRun context-aware: .sol files trigger compileSolidity + optional deploySolidityContract via MetaMask signer - Run button shows "Compile" or "Compile & Deploy" for Solidity files with orange color scheme, keeps emerald for Cadence - Mobile floating run button also adapts to active file type Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…owing Replace 'value' with 'data' in Solidity ExecutionResult objects to match the interface. Add explicit type narrowing for compileSolidity return. Resolve merge conflict in frontend txId route. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add a template showing how to call an EVM contract from Cadence, including a Solidity Counter contract and a Cadence script that calls it via EVM.run(). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/lsp-solWebSocket, language-aware Monaco editor, Solidity templates (Simple Storage, ERC-20), file type iconsPOST /compile-sol), MetaMask/EVM wallet connection via ethers.js, context-aware run button (Compile & Deploy for.sol, Run/Send for.cdc), dual wallet UI (Flow + EVM), Cross-VM template (Cadence ↔ EVM)Key changes
MonacoLspAdapterto support multiple languages (Cadence + Solidity)useEvmWallethook for MetaMask connection with Flow EVM chain switchinghandleRunroutes.solfiles through compile → deploy,.cdcthrough existing FCL pathTest plan
.cdcfile — verify existing Cadence LSP, run, wallet all work unchanged.soland.cdcfiles present🤖 Generated with Claude Code