설치 | 사용자 도서 | 개발자 문서 | 문서 상자 만들기
Foundry는 Rust로 작성된 Ethereum 애플리케이션 개발을 위한 매우 빠르고 휴대성이 뛰어난 모듈식 툴킷입니다.
주조소는 다음으로 구성됩니다:
Forge : Ethereum 테스트 프레임워크(Truffle, Hardhat 및 DappTools 등)
출연 : EVM 스마트 계약과 상호 작용하고, 거래를 보내고, 체인 데이터를 얻는 스위스 군용 칼입니다.
Anvil : Hardhat Network의 Ganache와 유사한 로컬 Ethereum 노드입니다.
Chisel : 빠르고 실용적이며 장황한 견고성 REPL.
Foundry를 시작하는 데 도움이 필요하십니까? ? 파운드리 북(WIP)!
책의 설치 가이드를 참조하세요.
설치하는 동안 문제가 발생하는 경우 도움말 보기 및 FAQ를 확인하세요.
빠르고 유연한 컴파일 파이프라인
자동 Solidity 컴파일러 버전 감지 및 설치
증분 컴파일 및 캐싱 : 변경된 파일만 다시 컴파일
병렬 컴파일
비표준 디렉터리 구조 지원(예: Hardhat 저장소)
테스트는 Solidity(예: DappTools)로 작성됩니다 .
입력 축소 및 반례 인쇄를 통한 빠른 퍼지 테스트
tokio와 같은 Rust의 비동기 인프라를 활용하는 빠른 원격 RPC 분기 모드
유연한 디버그 로깅
DsTest
의 방출된 로그를 사용하는 DappTools 스타일
널리 사용되는 console.sol
계약을 사용하는 안전모 스타일
휴대용(5-10MB) 및 Nix나 다른 패키지 관리자 없이도 쉽게 설치할 수 있습니다.
Foundry GitHub 작업을 통한 빠른 CI .
Forge는 컴파일(ethers-solc 활용)과 테스트 모두 매우 빠릅니다.
아래 벤치마크를 참조하세요. v0.2.0 발표 게시물과 Convex Shutdown Simulation 저장소에서 더 많은 벤치마크를 확인할 수 있습니다.
테스트 벤치마크
프로젝트 | 노 | DappTools | 속도 향상 |
---|---|---|---|
전송11/solmate | 2.8초 | 6분 34초 | 140배 |
반사 장치 연구소/geb | 0.4초 | 23초 | 57.5배 |
Rari-Capital/금고 | 0.28초 | 6.5초 | 23배 |
참고: 위 벤치마크에서는 컴파일이 항상 건너뛰었습니다.
컴파일 벤치마크
요점: Forge 컴파일은 관련된 캐싱 양에 따라 1.7~11.3배까지 지속적으로 더 빠릅니다.
Cast는 명령줄에서 Ethereum 애플리케이션과 상호 작용하기 위한 스위스 군용 칼입니다.
더 많은 문서는 캐스트 패키지에서 찾을 수 있습니다.
foundry.toml
사용 Foundry는 매우 구성 가능하도록 설계되었습니다. 프로젝트 루트나 다른 상위 디렉터리에 있는 foundry.toml
이라는 파일을 사용하여 Foundry를 구성할 수 있습니다. 사용 가능한 모든 옵션은 구성 패키지를 참조하세요.
구성은 프로필에 따라 임의로 네임스페이스를 지정할 수 있습니다. 기본 프로필의 이름은 default
입니다("기본 프로필" 참조).
FOUNDRY_PROFILE
환경 변수를 사용하여 다른 프로필을 선택할 수 있습니다. FOUNDRY_SRC
와 같이 FOUNDRY_
또는 DAPP_
접두사가 붙은 환경 변수를 사용하여 구성의 일부를 재정의할 수도 있습니다.
forge init
확장 가능한 기본 foundry.toml
파일을 생성합니다.
현재 구성을 보려면 forge config
실행하세요. 기본 옵션( forge init
로 설정)만 보려면 forge config --basic
실행하세요. 이는 forge config --basic > foundry.toml
사용하여 새 foundry.toml
파일을 생성하는 데 사용할 수 있습니다.
기본적으로 forge config
현재 선택된 Foundry 프로필과 해당 값을 표시합니다. 또한 forge build
와 동일한 인수를 허용합니다.
Foundry 도구를 사용하기 전에 source .dapprc
실행하여 .dapprc
환경 변수를 재사용할 수 있습니다.
Foundry Book에서 추가 설정 및 구성 가이드를 찾을 수 있습니다.
VSCode 설정
쉘 자동 완성
기여 지침을 참조하세요.
먼저, 질문에 대한 답을 책이나 관련 상자에서 찾을 수 있는지 확인하세요.
답변이 없는 경우:
도움을 받으려면 지원 텔레그램에 가입하세요. 또는
귀하의 질문에 대한 토론을 시작하거나
버그 문제 열기
기여하고 싶거나 기여자 토론에 참여하고 싶다면 메인 텔레그램을 사용하여 Foundry 개발에 대해 채팅할 수 있습니다!
Foundry는 테스트 프레임워크 DappTools를 클린룸으로 재작성한 것입니다. 수년간 DappHub 팀의 작업이 없었다면 이 중 어느 것도 불가능했을 것입니다.
Matthias Seitz: 컴파일 파이프라인의 중추인 ethers-solc를 만들었고 에테르, 특히 abigen
매크로에 대한 수많은 기여를 했습니다.
Rohit Narurkar: 여러 Solidity 버전을 자동 감지하고 관리하는 데 사용하는 Rust Solidity 버전 관리자 svm-rs를 만들었습니다.
Brock Elmore: VM의 치트코드를 확장하고 스마트 계약 호출 디버깅을 위한 중요한 기능인 구조화된 호출 추적을 구현합니다.
Ethers-rs 및 Foundry 저장소와 채팅방의 다른 모든 기여자입니다.