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


  • 계약을 가져올 때 계약이 존재하지 않는다고 표시된 경우 Visual Studio 코드를 새로 고칩니다.

  • 올바른 오류 강조 표시를 위해 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

    좋은 웹페이지 즐겨찾기