> 기술 주변기기 > IT산업 > 계약을 평평하게하고 리믹스로 디버깅

계약을 평평하게하고 리믹스로 디버깅

Lisa Kudrow
풀어 주다: 2025-02-16 12:47:17
원래의
569명이 탐색했습니다.
Solidity Smart Contract Debging and Flattening : Remix IDE 및 Truffle 사용

이 기사에서는 리믹스 IDE를 사용하여 견고성 스마트 계약을 디버깅하는 방법을 설명하고 트러플 평평한 플랫 계약 코드를 사용하여 쉽게 디버깅 및 검증을합니다.

키 포인트 :

Flattening Contracts and Debugging with Remix 계약 아파트 : 다중 견고성 파일을 하나의 파일로 병합하고 수동 검토, Etherscan Verification 및 Remix IDE 디버깅을 용이하게하기 위해 가져 오기 문을 제거합니다 (리믹스 IDE는 현재 가져 오기를 지원하지 않습니다).

리믹스 IDE :

강력한 견고성 IDE에는 타임 트레이스 백, 단계 스위칭, 로컬 변수 및 상태 탐색, 중단 점 설정 및 기타 기능을 지원하는 훌륭한 단계별 디버거가 있습니다. 송로 버섯 및 OpenZeppelin : 맞춤형 토큰을 구축하기위한 도구. Truffle Flattener는 견고성 파일 및 트러플 프로젝트의 종속성을 평평하게하는 NPM 도구입니다.

리믹스 IDE 디버깅 방법 :
    사용 케이스에 따라 두 가지 디버깅 방법이 있습니다. 디버거 기능은 오류를 도입하고 Safemath의
  • 기능을 사용하여 규칙을 강제하고 계약의 문제를 식별하여 테스트 할 수 있습니다. 이더 리움 메인 네트워크에서 스마트 계약은 실제 돈을 사용하므로 오류가없는 스마트 계약을 구축하는 것이 중요하며 디버거와 같은 특수 도구가 필요합니다. 리믹스 IDE는 가장 포괄적 인 견고성 IDE이며, 단계별 디버거가 있습니다. 시간 역 추적, 현재 단계 변경, 다양한 패널을 확장하여 로컬 변수 및 현재 상태를 탐색하고 코드의 다른 지점 사이를 이동하도록 중단 점을 설정하는 것과 같은 다양한 작업을 수행 할 수 있습니다. 터미널을 사용하여 리믹스에서 실행 된 트랜잭션을 표시하고 디버깅 할 수도 있습니다.
  • 이 튜토리얼은 Truffle과 Openzeppelin을 사용하여 간단한 사용자 정의 토큰을 구축하고 계약을 평평하게하는 이유와 방법을 설명하고 마지막으로 Remix IDE를 사용하여 계약을 디버깅하기 시작합니다.
  • 왜 평평한 스마트 계약입니까? 계약 아파트는 모든 Soldy Code를 여러 소스 파일이 아닌 하나의 파일로 병합하여 가져 오기 문이 필요하지 않으며 가져온 코드가 동일한 파일에 포함됩니다. 계약 검토, Etherscan의 계약 확인 또는 Remix IDE를 사용하여 계약을 디버깅하는 등의 스마트 계약을 평평하게 해야하는 이유는 여러 가지가 있습니다 (현재 수입을 지원하지 않기 때문에).
  • 송로 버섯과 OpenZeppelin을 사용하여 간단한 토큰을 쓰십시오 Remix IDE는 공식적으로 소규모 계약 또는 학습 견고성을 구축하는 데 권장되지만 더 큰 계약을 구축하거나 고급 컴파일 옵션이 필요할 때 Truffle과 같은 Solidity Compiler 또는 기타 도구/프레임 워크를 사용해야합니다. 오류없는 계약 외에도 보안은 스마트 계약 구축의 핵심 부분입니다. 이러한 이유로, OpenZeppelin과 같은 전투 테스트 프레임 워크를 사용하여 DAPP의 취약점을 줄이는 데 도움이되는 재사용 가능하고 잘 테스트하고 커뮤니티 평가 된 스마트 계약을 제공합니다.

    OpenZeppelin의 표준 토큰을 연장하는 Truffle 및 OpenZeppelin을 사용하여 간단한 맞춤형 토큰을 만드는 방법을 살펴 보겠습니다.

    전제 조건

    이 튜토리얼을 사용하려면 송로 버섯, 이더 리움 및 견고성에 대한 지식이 필요합니다. 블록 체인 및 이더 리움을 시작하기위한 튜토리얼을 읽을 수 있습니다.

    시스템에 Node.js 5.0 및 NPM을 설치해야합니다. 지침은 다운로드 페이지를 참조하십시오. 설치 트러플 터미널을 사용하고 다음 명령을 실행하여 송로 버섯을 설치하십시오.

    새로운 송로 버섯 프로젝트를 만듭니다

    먼저 프로젝트를위한 새 디렉토리를 만듭니다. 이름을 로 여기 봅시다 :

    이 명령은 및

    와 같은 여러 폴더와 계약을 블록 체인에 배포 할 때 사용될 파일을 생성합니다. 다음은 OpenZeppelin : 를 설치합니다

    간단한 토큰 계약을 만듭니다 라는 파일을 만들고 다음을 추가하십시오.

    이것은 우리가 평평하게하고 디버그 할 계약입니다. 우리는 OpenZeppelin

    계약을 수입하고 계약을 선언하고 운영자를 사용하여
    npm install -g truffle
    로그인 후 복사
    를 연장합니다.

    계약은 많은 변수와 기능을 상속받을 것이며 계약을 사용자 정의하기 위해 이러한 변수와 기능을 무시해야합니다. 프로젝트의 폴더에서 트러플 프로젝트를 완료하려면 <🎜 🎜>라는 파일을 만들고 다음을 추가하십시오.

    이 파일을 사용하여 스마트 계약을 블록 체인에 배포/마이그레이션 할 수 있지만이 예제에는 리믹스 IDE를 사용하여 평평한 후 스마트 계약을 배포하기 때문에 실제로이 파일이 필요하지 않습니다.

    simpletoken <<> 송로 버섯 평면 평평한 평평한 <🎜 🎜> <🎜 🎜>를 사용하십시오 송로 버섯 플랫 텐너는 트러플 아래에서 개발 된 견고성 파일과 모든 종속성을 올바른 순서로 결합하는 NPM 유틸리티입니다.

    먼저, 다음 명령을 사용하여 NPM에서 전 세계적으로 Truffle-Flattener를 설치하십시오.
    mkdir simpletoken
    cd simpletoken
    truffle init
    로그인 후 복사
    다음으로 송로 버섯 프로젝트에서 다음 명령을 실행하여

    파일을 평평하게합니다. contracts/ 표준 출력 또는 터미널에 대한 평평한 계약을 출력합니다. 연산자를 사용하여 출력을 현재 폴더의 migrations/ 파일에 저장합니다.

    리믹스 IDE를 사용하여 계약을 컴파일하고 배포합니다 파일에서 플랫 스마트 계약에 액세스 할 수 있습니다. 파일을 열고 내용을 복사하십시오.

    다음으로 FlattenedSimpleToken.sol 오류 메시지가 표시되면

    모의 컴파일러 : 소스를 찾을 수 없습니다 새로운 컴파일러 버전 드롭 다운 메뉴

    새로운 컴파일러 버전. autocompilation 가 비활성화 된 경우

    패널에서 컴파일 버튼을 클릭하십시오. 다음으로, 패널을 실행하는 것을 활성화하십시오. 먼저 환경에 대해

    JavaScript vm

    를 선택했는지 확인하십시오. 두 번째 상자에서 드롭 다운 메뉴에서 simpletoken 계약을 선택하고 드롭 다운 메뉴 아래에 버튼을 배치하는 빨간색을 클릭하십시오. 계약은 블록 체인을 모방하는 JavaScript VM에 배치되어 실행됩니다. 이제 다른 방식으로 디버깅을 시작할 수 있습니다. 디버그 사용자 정의 토큰 계약 계약을 디버깅하는 방법을 이해하려면 먼저 몇 가지 오류가 발생합니다. 사용 케이스에 따라 두 가지 다른 방법으로 리믹스 IDE에서 스마트 계약을 디버깅 할 수 있습니다. 처음으로 스마트 계약을 배포하거나 트랜잭션을 실행할 때 일부 정보는 터미널에 기록되며 로그 옆에있는 흰색 디버그

    버튼에서 디버깅을 시작할 수 있습니다. 그것이 실제로 어떻게 작동하는지 봅시다.

    assert () 를 사용하십시오 Safemath는 OpenZeppelin에서 오류를 던지는 보안 검사를 위해 사용하는 수학 라이브러리입니다. 함수는 두 개의 숫자를 빼고 서명되지 않은 숫자를 반환합니다. 첫 번째 매개 변수는 항상 양수를 얻을 수 있도록 두 번째 매개 변수보다 크기가 높아야합니다. 이 함수는 함수를 사용 하여이 규칙을 시행합니다. 이것은 함수의 코드입니다 : 검증 조건의 값을 제공하는 한 및 >의 실행은 아무런 문제없이 계속되지만 , 더 큰 값을 제공하면 실행이 계속됩니다. 🎜> 함수는 오류가 발생합니다. 따라서 매개 변수 오류와 함께 계약에서 에 호출을 추가하겠습니다. 계약을 재배치하면 터미널에서 유효하지 않은 OPCODE 오류가 표시됩니다.

    버튼을 클릭 한 후 코드 디버깅을 시작할 수있는 패널이 입력됩니다.

    코드 편집기에서 첫 번째 줄/명령이 강조 표시되어 코드의 현재 위치를 표시합니다.

    Flattening Contracts and Debugging with Remix 버튼을 밟아 단계를 클릭하여 코드를 통과하십시오.

    예외 버튼으로 스킵을 사용하여 예외로 직접 점프 할 수도 있습니다.

    Flattening Contracts and Debugging with Remix 사용 방법이든, 디버거는 문제를 일으키는 코드로 이동 한 다음 중지합니다.

    현재 단계에서 로컬 변수의 상태를 확인할 수 있습니다.

    Soludity 로컬 변수 Flattening Contracts and Debugging with Remix 패널에는 현재 컨텍스트와 관련된 로컬 변수가 표시됩니다.

    소스 코드와

    Solidity Local 변수 에서 문제의 루트가

    메소드와 관련이 있고 Flattening Contracts and Debugging with Remix 의 값이 .

    디버깅 중지

    버튼을 사용하여 디버깅을 중지 할 수 있습니다.

    Flattening Contracts and Debugging with Remix 디버거의 다른 패널을 확인하는 것이 좋습니다.

    지시 사항

    명령어

    패널에는 디버그 계약의 바이트 코드가 표시됩니다. 현재 단계의 바이트 코드가 강조 표시됩니다.

    견고 상태 assert() b a 견고성 상태

    패널은 현재 디버그 된 계약의 상태 변수를 표시합니다.

    저수준 패널

    이 패널은 단계 세부 사항, 메모리, 스택 및 함수에 대한 반환 값과 같은 실행에 대한 저수준 정보를 표시합니다.

    결론 Flattening Contracts and Debugging with Remix

    이 튜토리얼에서 송로 버섯과 Openzeppelin을 사용하여 간단한 토큰을 구축 한 다음 Truffle-Flattener와의 맞춤형 계약을 평평하게하고 Remix IDE를 사용하여 계약에서 오류를 디버깅하기 시작했습니다.

    이것이 대담하게 심화되고 단계별 계약을 디버깅하는 데 도움이되기를 바랍니다. 사용법을 알려주세요!

    (기사가 너무 길고 핵심 콘텐츠와 약한 관계가 있기 때문에 플랫 계약의 FAQ, 평면 계약에 대한 FAQ 및 리믹스 디버깅이 생략되었습니다. 필요한 경우 별도로 요청할 수 있습니다.)

위 내용은 계약을 평평하게하고 리믹스로 디버깅의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿