Foundry 및 Thirdweb과 스마트 계약 개발 설정
소개
이 가이드에서는 Foundry 및 ThirdWeb과 스타터 스마트 계약을 설정하는 방법을 배우게 됩니다. Foundry는 Solidity로 스마트 계약을 테스트하는 가장 빠른 방법을 제공합니다. 반면에 Thirdweb3는 재사용 가능하고 안전한 스마트 계약의 Solidity 라이브러리와 같은 확장 기능을 제공합니다. 이 계약이 구축되면 이를 배포하고 상호 작용하는 데 도움이 되는 대시보드를 얻을 수 있습니다. 마지막으로 중요한 것은 ThirdWeb을 통해 계약서를 작성하고 팀 또는 모든 사람과 공유할 수 있다는 것입니다.
설정
첫 번째 단계는 스타터의 저장소를 다운로드하는 것입니다.
https://github.com/thirdweb-example/forge-starter
종속성 설치
npm i @openzeppelin/contracts @openzeppelin/contracts-upgradeable
npm i @thirdweb-dev/contracts
올바른 오류 강조 표시를 위해 vscode 확장 견고성이
remappings.txt
에서 다시 매핑을 찾는 데 문제가 있기 때문에 foundry.toml의 리매핑에 추가하거나 foundry.toml
를 생성합니다.forge remappings
@thirdweb-dev/=node_modules/@thirdweb-dev/
@openzeppelin=node_modules/@openzeppelin/
forge-std/=lib/forge-std/src/
ds-test/=lib/forge-std/lib/ds-test/src/
초기 예제를 만들 수 있습니다. ThirdWeb은 두 가지 유형의 확장 기능을 제공합니다.
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;
import "@thirdweb-dev/contracts/token/TokenERC20.sol";
contract Contract is TokenERC20 {
constructor() {}
fallback() external payable {}
receive() external payable {}
function mintWithFee() public payable {
_mint(msg.sender, msg.value);
}
}
존재하지 않는 함수가 호출되거나 함수 호출과 함께 제공된 데이터가 없을 때 폴백 및 수신 함수가 각각 실행됩니다.
모든 것이 예상대로 작동하는지 확인하는 테스트를 만듭니다.
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;
import "forge-std/Test.sol";
import {Contract} from "src/Contract.sol";
contract ContractTest is Test {
Contract myContract;
function setUp() public {
myContract = new Contract();
}
function testExample() public {
myContract.mintWithWei{value: 1 wei}();
assertEq(myContract.balanceOf(address(this)), 1 wei);
}
}
전개
forge test
를 실행하여 테스트하십시오.npm run deploy
를 실행하여 Thirdweb 대시보드에 배포합니다.npm run release
를 실행하여 모든 사람이 찾고 사용할 수 있도록 프로필에 계약서를 업로드합니다.유용한 링크
https://book.getfoundry.sh/
https://github.com/thirdweb-example/forge-starter
https://github.com/thirdweb-dev/contracts
https://portal.thirdweb.com/extensions
https://thirdweb.com/deployer.thirdweb.eth/TokenERC20
Reference
이 문제에 관하여(Foundry 및 Thirdweb과 스마트 계약 개발 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aeither/setup-smart-contract-development-with-foundry-and-thirdweb-2a15텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)