View source of deployed Ethereum smart contracts in VS Code
While on Etherscan, change .io
to .deth.net
and browse contracts comfortably in ephemeral VS Code instance
💸 Enjoy using DethCode? Consider funding development via GitCoin 💸
While browsing smart contract code on Etherscan just
change URL from .io
to .deth.net
. This will open Visual Studio Code instance
and fetch the verified code using Etherscan API.
Or save the following code snippet as a bookmarklet to quickly go from any supported chain explorer to DethCode.
javascript: location.href = location.href.replace(/\.\w+(\/)/, ".deth.net/")
- frictionless - just tweak URL while browsing etherscan
.io
->deth.net
- proxy support - automatically follows proxies and displays implementation source code
- multichain - supports different etherscan instances: testnets, L2s, L1s (all supported chains)
Browsing contracts directly on etherscan sucks! Browsing multi-file contracts on etherscan sucks even more. Limited search, weird syntax highlighting, and many, many more. Finally, it's often impossible to just git clone repository and browse source code locally because it's hard to find the exact commit that matches onchain code.
DethCode was born out of frustration, and it's here to fix all of these issues. In addition, it improves the experience by automatically following the implementation of proxies and so on.
- Arbitrum ERC20 Gateway on mainnet: dethcode | etherscan
- Arbitrum ERC20 Gateway on arbitrum: dethcode | arbiscan
- Optimism L1CrossDomainMessenger: dethcode | etherscan
- Dai Stablecoin: dethcode | etherscan
The repository contains two packages, ethereum-viewer
extension and the VSCode
compilation meant for hosting it online.
All packages (currently one) except of @dethcrypto/ethereum-viewer-vscode-host
located in packages/vscode-host
are managed by pnpm
. As VSCode depends on
Yarn, our vscode-host
also needs Yarn.
# You need to create dummy certs using mkcert - https://github.com/FiloSottile/mkcert
cd ./certs
mkcert localhost
mkcert -install
cd ..
# install deps
pnpm install
# install vscode deps
cd packages/vscode-host/
yarn
cd ../../
pnpm build # this builds whole vscode and can take A LOT of time
pnpm serve
-
pnpm install
- Installs dependencies for the workspace,ethereum-viewer
extension, and triggersyarn install
forvscode-host
through thepostinstall
script. -
pnpm build
- Builds all packages. -
pnpm watch
- Starts webpack forethereum-extension
in watch mode. -
pnpm serve
- Starts HTTP server withvscode-host
. -
pnpm dev
- Copiesethereum-extension
and servesvscode-host
. Run alongsidepnpm watch
.
DethCode's is a VSCode Web Extension using FileSystemProvider API to show sources of deployed Ethereum smart contracts. The following links might be provide some insight, if you're not familiar with some of the aforementioned terms.