계약을 평평하게하고 리믹스로 디버깅
키 포인트 :
계약 아파트 : 다중 견고성 파일을 하나의 파일로 병합하고 수동 검토, Etherscan Verification 및 Remix 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 오류가 표시됩니다. 버튼을 클릭 한 후 코드 디버깅을 시작할 수있는 패널이 입력됩니다. 코드 편집기에서 첫 번째 줄/명령이 강조 표시되어 코드의 현재 위치를 표시합니다. 버튼을 밟아 단계를 클릭하여 코드를 통과하십시오.
예외 버튼으로 스킵을 사용하여 예외로 직접 점프 할 수도 있습니다.
현재 단계에서 로컬 변수의 상태를 확인할 수 있습니다. Soludity 로컬 변수
소스 코드와패널에는 현재 컨텍스트와 관련된 로컬 변수가 표시됩니다.
Solidity Local 변수 에서 문제의 루트가
메소드와 관련이 있고
의 값이 .
디버깅 중지 버튼을 사용하여 디버깅을 중지 할 수 있습니다.
디버거의 다른 패널을 확인하는 것이 좋습니다. 명령어
패널에는 디버그 계약의 바이트 코드가 표시됩니다. 현재 단계의 바이트 코드가 강조 표시됩니다.견고 상태
패널은 현재 디버그 된 계약의 상태 변수를 표시합니다.assert()
b
a
견고성 상태저수준 패널
이 패널은 단계 세부 사항, 메모리, 스택 및 함수에 대한 반환 값과 같은 실행에 대한 저수준 정보를 표시합니다. 결론
이 튜토리얼에서 송로 버섯과 Openzeppelin을 사용하여 간단한 토큰을 구축 한 다음 Truffle-Flattener와의 맞춤형 계약을 평평하게하고 Remix IDE를 사용하여 계약에서 오류를 디버깅하기 시작했습니다.이것이 대담하게 심화되고 단계별 계약을 디버깅하는 데 도움이되기를 바랍니다. 사용법을 알려주세요! (기사가 너무 길고 핵심 콘텐츠와 약한 관계가 있기 때문에 플랫 계약의 FAQ, 평면 계약에 대한 FAQ 및 리믹스 디버깅이 생략되었습니다. 필요한 경우 별도로 요청할 수 있습니다.)
위 내용은 계약을 평평하게하고 리믹스로 디버깅의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!
본 웹사이트의 성명본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.핫 AI 도구
Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱
AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.
Undress AI Tool
무료로 이미지를 벗다
Clothoff.io
AI 옷 제거제
Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!
인기 기사
KB5055523을 수정하는 방법 Windows 11에 설치되지 않습니까?3 몇 주 전 By DDDKB5055518을 수정하는 방법 Windows 10에 설치되지 않습니까?3 몇 주 전 By DDD<garden> : 정원 재배 - 완전한 돌연변이 가이드2 몇 주 전 By DDD<gum> : Bubble Gum Simulator Infinity- 로얄 키를 얻고 사용하는 방법3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌KB5055612 수정 방법 Windows 10에 설치되지 않습니까?3 몇 주 전 By DDD뜨거운 도구
메모장++7.3.1
사용하기 쉬운 무료 코드 편집기
SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.
스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경
드림위버 CS6
시각적 웹 개발 도구
SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)
CNCF ARM64 파일럿 : 충격 및 통찰력 Apr 15, 2025 am 08:27 AM
CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal 및 Actuated 간의 공동 작업 인이 파일럿 프로그램은 CNCF Github 프로젝트를위한 ARM64 CI/CD를 간소화합니다. 이 이니셔티브는 보안 문제 및 성과를 다룹니다
AWS ECS 및 LAMBDA가있는 서버리스 이미지 처리 파이프 라인 Apr 18, 2025 am 08:28 AM
이 튜토리얼은 AWS 서비스를 사용하여 서버리스 이미지 처리 파이프 라인을 구축함으로써 안내합니다. ECS Fargate 클러스터에 배포 된 Next.js Frontend를 만들어 API 게이트웨이, Lambda 기능, S3 버킷 및 DynamoDB와 상호 작용합니다. th
2025 년에 가입 할 Top 21 개발자 뉴스 레터 Apr 24, 2025 am 08:28 AM
이 최고의 개발자 뉴스 레터와 함께 최신 기술 트렌드에 대해 정보를 얻으십시오! 이 선별 된 목록은 AI 애호가부터 노련한 백엔드 및 프론트 엔드 개발자에 이르기까지 모든 사람에게 무언가를 제공합니다. 즐겨 찾기를 선택하고 Rel을 검색하는 데 시간을 절약하십시오