119 ethereum hardhat : 컴파일 아티팩트

introduce
Build info files
Reading artifacts
Directory structure
hardhat Tutorials , hardhat 教程
Contact 联系方式

• 소개하다



Hardhat으로 컴파일하면 컴파일된 계약당 두 개의 파일(각각.sol 파일 아님), 즉 아티팩트 및 디버그 파일이 생성됩니다.

아티팩트에는 계약을 배포하고 상호 작용하는 데 필요한 모든 정보가 있습니다. 이들은 Truffle의 아티팩트 형식을 포함하여 대부분의 도구와 호환됩니다. 각 아티팩트는 다음 속성을 가진 json으로 구성됩니다.
  • contractName : 계약 이름이 포함된 문자열입니다.
  • abi : A JSON description of the contract's ABI .
  • bytecode : A "0x" -연결되지 않은 배포 바이트 코드의 접두사 16진수 문자열입니다. 계약을 배포할 수 없는 경우 문자열은 "0x" 입니다.
  • deployedBytecode : A "0x" -연결되지 않은 런타임/배포된 바이트코드의 접두사가 붙은 16진수 문자열입니다. 계약을 배포할 수 없는 경우 문자열은 "0x" 입니다.
  • linkReferences : 바이트 코드의 링크가 개체를 참조합니다as returned by solc. 계약을 연결할 필요가 없는 경우 이 값에는 빈 개체가 포함됩니다.
  • deployedLinkReferences : 배포된 바이트 코드의 링크가 객체를 참조합니다as returned by solc. 계약을 연결할 필요가 없는 경우 이 값에는 빈 개체가 포함됩니다.

  • 디버그 파일에는 컴파일을 재생하고 계약을 디버그하는 데 필요한 모든 정보가 있습니다. 여기에는 원본 solc 입력 및 출력, 컴파일에 사용된 solc 버전이 포함됩니다.

    • 빌드 정보 파일



    Hardhat은 한 번에 가능한 가장 작은 파일 집합을 컴파일하여 컴파일을 최적화합니다. 함께 컴파일되는 파일은 동일한 solc 입력 및 출력을 갖습니다. 각 디버그 파일에 이 정보를 포함하는 것은 의미 있는 낭비이므로 이 정보는 artifacts/build-info에 있는 빌드 정보 파일에서 중복 제거됩니다. 각 계약 디버그 파일에는 빌드 정보 파일에 대한 상대 경로가 포함되어 있으며 각 빌드 정보 파일에는 solc 입력, solc 출력 및 사용된 solc 버전이 포함되어 있습니다.

    이러한 파일과 직접 상호 작용하면 안 됩니다.

    • 아티팩트 읽기



    [HRE]에는 도우미 메서드가 있는 artifacts 개체가 있습니다. 예를 들어 hre.artifacts.getArtifactPaths() 를 호출하여 모든 아티팩트에 대한 경로가 포함된 목록을 가져올 수 있습니다.
    hre.artifacts.readArtifact("Bar") 계약에 대한 아티팩트 콘텐츠를 반환하는 Bar 를 호출하여 계약 이름을 사용하여 아티팩트를 읽을 수도 있습니다. 이것은 전체 프로젝트에서 이름이 Bar인 계약이 하나만 있는 경우에만 작동합니다. 두 개가 있으면 오류가 발생합니다. 이 사례를 명확하게 하려면 계약의 정규화된 이름(hre.artifacts.readArtifact("contracts/Bar.sol:Bar") )을 사용해야 합니다.

    • 디렉토리 구조


    artifacts/ 디렉토리에는 계약의 원래 디렉토리 구조를 따르는 구조가 있습니다. 예를 들어 계약이 다음과 같은 경우:

    contracts
    ├── Foo.sol
    ├── Bar.sol
    └── Qux.sol
    


    그러면 아티팩트 디렉토리의 구조는 다음과 같습니다.

    artifacts
    └── contracts
        ├── Foo.sol
        │   ├── Foo.json
        │   ├── Foo.dbg.json
        │   ├── Foo2.json
        │   └── Foo2.dbg.json
        ├── Bar.sol
        │   ├── Bar.json
        │   └── Bar.dbg.json
        └── Qux.sol
            ├── Foo.json
            └── Foo.dbg.json
    


    소스의 각 Solidity 파일은 아티팩트 구조의 디렉토리를 가져옵니다. 이러한 각 디렉토리에는 해당 파일의 각 계약에 대해 하나의 아티팩트( .json ) 파일과 하나의 디버그( .dbg.json ) 파일이 포함되어 있습니다. Foo.sol 예를 들어 내부에 두 개의 계약이 포함되어 있습니다.

    두 개의 Solidity 파일은 동일한 이름의 계약을 가질 수 있으며 이 구조는 이를 허용합니다.

    • hardhat 자습서 , hardhat 教程



    CN 중국어 Github hardhat 教程 : github.com/565ee/hardhat_CN
    CN 중국어 CSDNhardhat 教程 : blog.csdn.net/wx468116118
    EN 英文 Github hardhat Tutorials : github.com/565ee/hardhat_EN

    • 연락처 联系方式



    홈페이지 : 565.ee
    GitHub : github.com/565ee
    이메일 : [email protected]
    페이스북 : facebook.com/565.ee
    트위터 :
    텔레그램 : t.me/ee_565

    좋은 웹페이지 즐겨찾기