๐ DEVLOPMENT ENVIRONMENTS
Page Map
๐ A - INTRODUCTION
This section will have all the development environments which I am going to focus on. These might be few. They maybe directly or indirectly related to web3.
๐ B - PRIMARY FOCUS
%%{init: {'theme':'dark', 'themeVariables':{'textColor':'#FBB454', 'nodeBorder':'#00D7FF', 'lineColor':'#00FFAB'}}}%%
graph LR
A[Development<br>Environments]-->A1(Foundry <br> CLI)
A-->A2(Tenderly<br>WebApp)
A-->A3(RemixIDE <br> Browser Based)
%% A1 Breakdown
A1-->A11(forge <br> Testing Framework)
A1-->A12(cast <br> POST/GET Onchain Data)
A1-->A13(anvil <br> Local Ethereum Node)
%% A2 Tenderly Breakdown
A2-->A21(Explorer <br> Transaction Analysis)
A2-->A22(Simulator <br> Simulating Transactions)
A2-->A23(Sandbox <br> WebApp for smart contract testing <br> with javascript)
%% Clicks
click A1 href "https://github.com/foundry-rs/foundry" "Click" _blank
click A2 href "https://tenderly.co/" "Click" _blank
click A3 href "https://remix.ethereum.org" "Click" _blank
Currently learning these tools based on all usecases related to web3 security. I.e, POCโs, testing
๐ B1 - Foundry
- Completely CLI based but can be used with Remix
- Has been gaining a lot of momentum recently.
- Written in rust and its quite fast.
- Has this concept of cheat codes which can alter the state of the chain for advanced testing
- The big persuading factor for Foundry is all the tests are also written in Solidity. So there is no context switching (need for writing tests in another language)
๐ B2 - Tenderly
- Prior to Foundy, this was the goto development environment after hardhat
- It has excellent in browser simulation and forking functions
- Recently they added a sandbox functionality, where you can run tests in the browser. But this requires tests to be written in JavaScript.
๐ B3 - Remix IDE
- The original browser based development environment used for solidity development. It has been used for many large projects.
- Doesโnt require any setup. Which is its big plus point.
- Recently they have also released a desktop version.