레지스트리에 계약 적하목록 업로드

Blockchain App Builder를 사용하여 선택한 Hardhat 프로젝트에서 계약 레지스트리 서비스로 배포 메타데이터를 검증하고 게시할 수 있습니다.

계약 적하목록 업로드 도구는 프로젝트 소유의 hardhat-upload-contract-artefacts 플러그인을 실행하고 레지스트리 끝점을 런타임 값으로 전달합니다. 프로젝트의 Hardhat 변수는 수정하지 않습니다.

매니페스트 업로드는 저장된 Oracle Blockchain Platform Besu 환경에 대해서만 사용할 수 있습니다.

전제 조건

  • 성공적으로 배포된 임포트되거나 구성된 Hardhat 프로젝트를 선택합니다.
  • 프로젝트에 package.json 파일에 hardhat-upload-contract-artefacts 패키지가 포함되어 있는지 확인하고, hardhat.config.ts 또는 hardhat.config.js에 플러그인을 임포트하고, uploadContractManifest 구성을 정의합니다.
  • 올바른 체인 ID 및 RPC 프록시 인증을 사용하여 Oracle Blockchain Platform Besu 환경을 생성하거나 선택하십시오.
  • 선택한 업로드 모드에 대해 필요한 로컬 배포 레코드가 있는지 확인합니다.

다음 업로드 모드가 지원됩니다.

업로드 모드 필요한 로컬 레코드 레지스트리 대상
둘 다 OpenZeppelin 매니페스트, ERC-7201 배포 계약 JSON 및 SOLC 배포 계약 JSON 두 레지스트리 끝점
ERC-7201 / 업그레이드 가능 OpenZeppelin 매니페스트 및 ERC-7201 배포-계약 JSON ERC-7201 레지스트리 끝점
변경 불가능/SOLC SOLC 배포 계약 JSON SOLC 레지스트리 끝점

Blockchain App Builder에서 생성 된 사전 패키지 된 수입 프로젝트 또는 디지털 자산 계약의 경우 일반적으로 ERC-7201 모드로 충분합니다.

체인 ID 1500의 경우 기본 경로는 다음과 같습니다.
./.openzeppelin/unknown-1500.json
./.obp-da/.erc7201/deployedContracts-1500.json
./.obp-da/.solc/deployedContracts-1500.json
프로젝트가 배포 레코드를 다른 곳에 저장하는 경우 경로를 조정합니다.
  1. 개발자 도구를 열고 계약 적하목록 업로드를 선택합니다.
  2. Hardhat 프로젝트 및 Oracle Blockchain Platform Besu 환경을 선택합니다.
  3. 업로드 모드를 선택합니다.
  4. 필요한 레지스트리 끝점 URL 또는 URL 입력:
    • 업그레이드 가능한 레코드의 경우 ERC-7201 매니페스트 업로드 레지스트리 끝점
    • 변경할 수 없는 레코드의 경우 SOLC 매니페스트 업로드 레지스트리 끝점
    .
  5. OpenZeppelin 및 배치된 계약 파일 경로를 확인합니다. 선택적으로 시간 초과 및 상세 정보 표시 출력을 설정합니다.
  6. 검증을 선택합니다. 플러그인이 실행되고 레지스트리 데이터를 게시하지 않습니다.
  7. 검증이 성공하면 검증을 지우고 업로드를 선택합니다.

문제 해결

조건 해결
사용 가능한 환경이 없습니다. 저장된 Oracle Blockchain Platform Besu 환경을 생성합니다. EVM 및 Hardhat 로컬 노드는 매니페스트 업로드에 적합한 환경이 아닙니다.
레지스트리 끝점이 부적합합니다. 선택한 모드에 필요한 모든 끝점에 대해 전체 HTTP 또는 HTTPS 레지스트리 URL을 입력합니다.
필수 파일을 찾을 수 없음 관련 계약을 컴파일 및 배포하거나 배포된 계약의 프로젝트 상대 적하목록 및 파일 경로를 수정합니다.
플러그인 또는 구성이 누락되었습니다. hardhat-upload-contract-artefacts를 설치 또는 임포트하고 도구의 프리플라이트 지침에 표시된 uploadContractManifest 구성을 추가합니다.
dry run 성공 후 업로드 실패 레지스트리 서비스 인증, 가용성, 끝점 정책 및 전체 플러그인 출력을 검토합니다. dry run은 로컬 입력을 검증하지만 레지스트리 수락을 보장하지 않습니다.