안녕하세요. piatoss입니다. Ethernaut 문제를 계속 푸는 와중에 Dex(Decentralized Exchange) 관련 문제가 나와서 찾아보다가 'Damn Vulnerable DeFi'라는 문제 사이트를 발견해서 그것도 조금 풀어보려는데 무슨 소리인지 하나도 안 들어오더라고요. 그래서 solidity를 계속 공부하려면 근본적으로 DEX가 무엇이고 어떻게 돌아가는지 이해가 필요할 것 같아서 Uniswap V2를 들고 와 봤습니다. V2면 V1도 있을 텐데 왜 V2부터 하냐고 물어보신다면, V1은 solidity가 아닌 vyper로 작성되어 있기 때문에 제가 읽을 수가 없습니다. 그래서 굳이 V1부터 시작하기보다는 가장 유명하고 여러 개선점들도 돋보이는 V2를 기준으로 시작해 볼까 합니다. 이론..
Foundry는 Solidity를 사용해 테스트를 작성합니다. 이 점에서 Javascript를 사용해야 하는 Truffle, Hardhat같은 툴체인과 차별점이 있습니다. 일반적으로 테스트는 'test' 디렉터리에 저장되며, '.t.sol' 확장자를 가집니다. 테스트 함수가 revert되면 테스트는 실패하는 것이고, 그 반대에는 테스트가 성공한 것으로 간주됩니다. 테스트 예제 Foundry 테스트는 Forge 표준 라이브러리의 'Test' 컨트랙트를 사용하여 작성할 수 있습니다. Test 컨트랙트는 기본적인 로깅과 어설션(assertion)을 제공합니다. pragma solidity ^0.8.13; import "forge-std/Test.sol"; contract ContractBTest is Test..
✨ Foundry 프로젝트 관련 명령어 프로젝트 생성 forge init 이미 git 저장소가 초기화되어 있는 디렉터리 안에서 Foundry 프로젝트를 생성하는 경우, '--no-commit' 플래그를 사용하여 자동으로 커밋을 실행하지 않거나, '--no-git' 플래그를 사용하여 git 저장소를 생성하지 않을 수 있습니다. $ forge init hello_foundry 생성된 프로젝트 디렉터리 구조는 다음과 같습니다. $ cd hello_foundry $ tree . -d -L 1 . ├── lib ├── script ├── src └── test 4 directories 프로젝트 빌드 forge build $ forge build [⠢] Compiling... [⠃] Compiling 22 file..
🔨 Foundry Foundry는 스마트 컨트랙트 개발 툴체인입니다. Foundry는 컨트랙트 의존성 관리, 컴파일, 테스트 실행, 배포를 도와주며, Solidity 스크립트와 커맨드 라인을 통한 블록체인과의 상호작용을 돕습니다. 🎁 설치 1. 사전에 컴파일된 바이너리 파일 사용하기 https://github.com/foundry-rs/foundry/releases 2. Foundryup 사용하기 1) Foundryup 설치 $ curl -L https://foundry.paradigm.xyz | bash 2) Foundryup 실행 최신 바이너리 파일 설치 (forge, cast, anvil, chisel) $ foundryup .xOx.xOx.xOx.xOx.xOx.xOx.xOx.xOx.xOx.xOx...