본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 윈도우즈 유틸

Contract Package Manager

0

Contract Package Manager(CPM)는 CityOfZion에서 개발한 스마트 계약 개발 및 상호작용을 위한 명령줄 도구입니다.

SDK 생성명령줄 도구블록체인 개발스마트 계약

소개

Contract Package Manager(CPM)는 CityOfZion에서 개발한 스마트 계약 개발 및 상호작용을 위한 명령줄 도구입니다. 타깃 네트워크(예: MainNet)에서 스마트 계약과 상태를 다운로드하여 neo-express 네트워크에 현실적인 테스트 환경을 생성할 수 있습니다. 또한 스마트 계약 매니페스트를 기반으로 C#, Golang, Java, Python 및 TypeScript용 온체인 및 오프체인 SDK를 생성할 수 있습니다.

상세정보

프로그램 소개/무엇인지

Contract Package Manager(CPM)는 스마트 계약 개발 워크플로를 자동화하는 명령줄 도구입니다. 타깃 블록체인 네트워크에서 계약 데이터를 가져오고, 이를 기반으로 다양한 프로그래밍 언어를 위한 SDK를 생성하여 개발 및 테스트 과정을 지원합니다.

주요 기능

스마트 계약 및 상태 다운로드

CPM은 타깃 네트워크(MainNet 등)에서 스마트 계약과 해당 상태를 다운로드하여 로컬 neo-express 네트워크에 주입함으로써 현실적인 테스트 환경을 구축할 수 있습니다.

SDK 자동 생성

스마트 계약 매니페스트를 분석하여 C#, Golang, Java, Python 및 TypeScript용 온체인 및 오프체인 SDK를 생성합니다. 생성된 SDK는 /cpm_out/ 디렉터리 내 언어 및 타입별 폴더에 저장됩니다.

다운로드·설치 방법

Windows 사용자는 Chocolatey를 통해 CPM을 설치할 수 있습니다. 공식 배포 페이지에서 바이너리를 다운로드하여 PATH에 추가하는 방법도 지원됩니다.

Chocolatey를 통한 설치

관리자 권한으로 PowerShell 또는 명령 프롬프트를 열고 다음 명령을 실행합니다:

choco install cpm

수동 설치

GitHub 릴리스 페이지에서 최신 바이너리를 다운로드하고, 시스템 PATH에 포함된 디렉터리에 배치합니다.

기본 사용법/명령어

CPM은 cpm.yaml 파일을 프로젝트 설정 파일로 사용합니다. 이 파일은 docs/config.md에서 자세히 확인할 수 있습니다.

도움말 확인

사용 가능한 모든 명령어와 옵션을 보려면 다음 명령을 실행합니다:

cpm -h

모든 계약 다운로드

cpm.yaml에 나열된 모든 계약을 neo-express 네트워크로 다운로드하려면:

cpm --log-level DEBUG run

단일 계약 또는 매니페스트 다운로드

특정 계약 주소를 지정하여 다운로드할 수 있습니다. 네트워크 주소는 노드 엔드포인트로 지정합니다:

cpm download contract -c 0x4380f2c1de98bb267d3ea821897ec571a04fe3e0 -n mainnet

cpm download manifest -c 0x4380f2c1de98bb267d3ea821897ec571a04fe3e0 -N https://mainnet1.neo.coz.io:443

SDK 생성

로컬 매니페스트 파일로부터 특정 언어의 SDK를 생성합니다. 온체인 또는 오프체인 타입을 선택할 수 있습니다:

cpm generate python -m samplecontract.manifest.json -t offchain

cpm generate go -m samplecontract.manifest.json -t onchain

지원 환경·시스템 요구사항

CPM은 Windows, macOS 및 macOS에서 실행 가능하며, Go 언어로 작성되어 있습니다. Windows에서는 Chocolatey 패키지 관리자를 통해 간편히 설치할 수 있습니다.

최신 버전·업데이트

현재 버전은 1.1.4이며, 최신 소스 코드 및 릴리스 정보는 공식 GitHub 저장소에서 확인할 수 있습니다.

시스템 요구사항

별도의 시스템 요구사항이 등록되지 않았습니다.