디지털 자산 프로젝트 생성 및 작성

Blockchain App Builder를 사용하여 스마트 계약 프로젝트를 만들고 작성하여 디지털 자산으로 작업 할 수 있습니다.

Blockchain App Builder For Besu는 ERC-20 또는 ERC-1155 토큰에 대한 자체 포함 된 Hardhat 프로젝트를 생성합니다. 확장에서 토큰 표준 및 지원되는 기능을 선택합니다. Blockchain App Builder의 작곡가 함수는 일치하는 SDK를 복사하고 구체적인 UUPS(Universal Upgradeable Proxy Standard) 토큰 계약을 생성하며 스마트 계약을 배포하고 업그레이드하는 스크립트를 추가합니다.

작성기 함수를 사용하여 토큰 ABI 및 계정 계약이 명시적 기능 프로파일에서 파생되는 프로젝트를 생성합니다. 프로젝트를 생성할 때 토큰을 배치하지 않으며 npm install 명령을 자동으로 실행하지 않습니다.

디지털 자산 프로젝트를 생성 및 배포하려면 먼저 Blockchain App Builder for Besu 확장을 설치하고 Visual Studio Code 작업 영역을 열어야 합니다. 생성된 프로젝트를 배치하려면 Node.js 및 npm을 설치해야 합니다. 또한 접근 가능한 Hardhat 또는 Besu 네트워크, 계약을 배포 할 수있는 계정, 기존 거버넌스 계약 및 거버넌스 UUID가 필요합니다.

생성된 배포 스크립트에는 GOVERNANCE_ADDRESS 및 GOVERNANCE_UUID 환경 변수가 필요합니다. 편집기 함수는 이 거버넌스 컨텍스트를 생성된 계정 및 토큰 프록시에 연결합니다. 배포 활성화는 구성된 거버넌스 워크플로우에 따라 유지됩니다.

프로젝트 생성

  1. Blockchain App Builder For Besu 작업 표시줄에서 모듈 보기를 엽니다.
  2. 모듈 작성기 열기를 선택한 다음 모듈 작성기 탭을 선택합니다.
  3. 새 Hardhat 프로젝트 생성에서 프로젝트 이름을 입력하고 상위 폴더를 선택합니다. coompose 함수는 <parent_folder>/<project_name> 디렉토리 구조를 사용하여 프로젝트를 생성합니다.

    프로젝트 이름에는 문자, 숫자, 마침표, 하이픈 및 밑줄이 포함될 수 있지만 이중 마침표(..)는 포함할 수 없습니다. 프로젝트 이름은 문자 또는 밑줄로 시작해야 하고 문자, 숫자 및 밑줄만 포함할 수 있습니다. 대상은 비워 두어야 합니다. compose 함수는 비어 있지 않은 프로젝트 폴더를 덮어쓰지 않습니다.

  4. 다음 절에 설명된 토큰 표준, 구성 모드 및 기능을 선택합니다.
  5. Solidity 계약 이름을 입력합니다. 예를 들어, DepositToken을 입력합니다.
  6. 생성된 구성 미리보기를 검토한 다음 패키지 생성을 선택합니다.

프로젝트 생성이 성공하면 확장에서 프로젝트를 계약 보기로 임포트합니다.

구성 모드

기본적으로 작성 함수는 엄격한 작성 모드를 사용합니다. 두 모드 모두 토큰 표준에 대해 지원됩니다.
  • 엄격한 구성 모드: 생성된 토큰은 선택된 선택적 기능만 노출하는 기준을 상속합니다. 구성 중 선택되지 않은 기능을 추가하려면 구현 업그레이드가 필요합니다.
  • 생성된 토큰은 전체 표면 호환성 기준을 상속합니다. 런타임 구성은 적용 가능한 동작을 제어하지만 더 넓은 메소드 표면은 ABI에 남아 있습니다.

ERC-20 프로젝트 작성

필요한 ID 권한 모듈 하나를 선택합니다.
  • ERC-5892: 표준 액세스 제어 백엔드.
  • ERC-6617: 비트 기반 액세스 제어 백엔드.

그런 다음 다음 다음 표에 설명된 기능을 구성합니다.

입력 값 노트
주조 사용 안함, 직접, 승인 필요 승인이 필요하면 요청/승인 워크플로우가 추가됩니다.
불타는 사용 안함, 직접, 승인 필요 승인이 필요하면 요청/승인 워크플로우가 추가됩니다.
보류 가능 켜기 또는 끄기 보류 워크플로우를 지원합니다.
역할 켜기 또는 끄기 승인 연동, 승인 연소 또는 보류 가능한 워크플로우에 대해 NOTARY 승인이 필요하므로 자동으로 사용으로 설정됩니다.
일일 한도 켜기 또는 끄기 일별 제한 적용이 있거나 없는 계정 변형을 선택합니다.
다중 레벨 승인 켜기 또는 끄기 계정 및 승인 정책과 승인 후 보류 실행을 사용으로 설정합니다. 보류 가능한 기능을 자동으로 활성화합니다.

이전 가능한 동작, 위임된 작업, 일시 중지 가능한 동작 및 거버넌스 승인 플로우와 같은 동작은 항상 ERC-20에서 생성된 프로파일의 일부입니다. 역할은 작성 함수에서 자동으로 사용으로 설정한 경우에도 프로파일의 일부입니다.

예를 들어, 보류가 없는 직접 민트 직접 번 토큰은 엄격한 기본 ERC20DirectMintBurnUpgradeable를 생성합니다. 다중 레벨 승인을 사용으로 설정하면 대신 보류 가능한 다중 레벨 승인 기준이 선택되고 추가 ERC20MultiLevelApprovalHelperLib 라이브러리가 배치됩니다.

ERC-1155 프로젝트 작성

ERC-1155 프로젝트는 기본적으로 ERC-5982 액세스 제어 백엔드를 사용합니다. 하나의 자산 유형 선택:

  • Fungible token: 대체 가능한 공급이 있는 토큰 클래스입니다.
  • 전체 NFT: 비소수 NFT 클래스.
  • 분수 NFT: 소수 소유권이 있는 NFT 클래스입니다.
  • 정 피곤와 관련검색글로벌 네트워크어디서나Get다운로드 전자 Combined fungible and non-fungible tokens: Classes for both fungible tokens and NFTs ,가필요니다.

직접 조폐 및 레코딩을 사용 또는 사용 안함으로 구성합니다. ERC-1155에 대해서는 승인으로 연동 및 연소가 지원되지 않습니다. 작성 기능에는 항상 전송 가능한 동작, 위임된 운영자 승인(setApprovalForAll 및 isApprovedForAll), 일시 중지 가능한 동작, 거버넌스 및 ERC-5982 액세스 제어가 포함됩니다.

롤을 활성화할 수 있습니다. NFT 자산 유형의 경우 잠금 가능 NFT를 사용으로 설정할 수도 있습니다. 고정은 대체 가능한 토큰에 사용할 수 없으며 민팅 및 레코딩이 모두 사용 안함으로 설정된 경우 사용 안함으로 설정됩니다. 분할 가능/분할 가능 동작은 개별적으로 입력되지 않은 선택된 자산 유형에서 파생됩니다. 일별 제한, 보류 가능한 동작 및 다중 레벨 승인은 지원되지 않습니다.

결합된 ERC-1155 프로파일은 엄격한 구성을 선택하는 경우에도 전체 표면 ERC1155CombinedTokenUpgradeable 베이스를 사용합니다. 기타 엄격한 프로파일에는 자산 유형 및 민트/번별 기준이 사용됩니다.

생성된 프로젝트 콘텐츠

작성 함수는 다음과 같은 프로젝트 구조를 작성합니다.

<project>/
├── contracts/
│   ├── obp-sdk/                         # copied ERC-20 or ERC-1155 SDK source
│   └── <ContractName>/
│       ├── <ContractName>Upgradeable.sol
│       └── generated.manifest.json      # selected profile and generated paths
├── scripts/
│   ├── deploy/<contract-name>/deploy-<contract-name>.ts
│   └── upgrade/
│       ├── upgrade-<contract-name>.ts
│       └── upgrade-<contract-name>-account.ts
├── .obp-bap/
│   ├── plugins/                         # bundled Hardhat plugin archives
│   └── project.json                     # Composer project metadata
├── config/hardhat-env.ts
├── hardhat.config.ts
├── package.json
└── README.md

contracts/obp-sdk/ 아래에 있는 SDK는 생성된 프로젝트로 복사되며 생성 후 프로젝트가 소유합니다. 매니페스트는 토큰 표준, 컴포지션 모드, 선택된 기본 및 계정 계약 및 전체 정규화된 기능 프로파일을 기록합니다.

생성 오류 문제 해결

메시지 또는 조건 해결
Select one identity-permission module ERC-20의 경우 ERC-5982 또는 ERC-6617을 선택합니다.
Contract name must start with a letter/underscore 유효한 솔리드 식별자를 사용합니다.
Project name is required 또는 안전하지 않은 이름 경로 구분자 또는 이중 마침표(..) 없이 단순 프로젝트 이름을 제공합니다.
Choose a parent folder 컴포저에서 절대 상위 폴더를 선택합니다.
대상 폴더가 존재하며 비어 있지 않습니다. 새 프로젝트 이름 또는 빈 대상을 선택합니다. compose 함수는 프로젝트를 덮어쓰지 않습니다.
ERC-1155 승인 기반 조폐 또는 레코딩은 지원되지 않습니다. ERC-1155 연동 및 레코딩의 경우 사용 안함 또는 직접을 선택합니다.
GOVERNANCE_ADDRESS and GOVERNANCE_UUID are required 생성된 배포 스크립트를 실행하기 전에 두 값을 모두 구성합니다.

계약 프로젝트를 생성한 후 임포트된 프로젝트를 계약 보기에서 사용하여 배포 또는 실행 양식을 컴파일, 배포 및 열 수 있습니다. 생성된 매니페스트를 계약에 유지합니다. 확장 도구는 매니페스트를 사용하여 생성된 토큰 및 계정 ABI를 선택한 편집기 프로파일과 쌍을 이룹니다.