시가총액: $2.8083T -1.08%
거래량(24시간): $90.1952B 62.93%
공포와 탐욕 지수:

53 - 중립적

  • 시가총액: $2.8083T -1.08%
  • 거래량(24시간): $90.1952B 62.93%
  • 공포와 탐욕 지수:
  • 시가총액: $2.8083T -1.08%
암호화
주제
암호화
소식
cryptostopics
비디오
최고 암호화

언어 선택

언어 선택

통화 선택

암호화
주제
암호화
소식
cryptostopics
비디오

스마트 계약을 배포하기 전에 테스트하는 방법은 무엇입니까? (하드햇&송로버섯 사용)

Set up local dev with Node.js, Hardhat/Truffle, write unit tests using Mocha/Chai or Truffle’s framework, run Slither/Solhint/MythX, fork mainnet, and never skip testing—even for ERC-20s.

2026/01/26 05:20

로컬 개발 환경 설정

1. Node.js와 npm을 설치하여 Hardhat 및 Truffle 툴체인과의 호환성을 보장합니다.

2. npm init를 사용하여 새 프로젝트를 초기화하고 npm install --save-dev hardhat을 통해 Hardhat을 설치합니다.

3. Truffle의 경우 npm install -g truffle을 실행하고 truffle init를 사용하여 상용구를 생성합니다.

4. 확인을 위해 네트워크, 계정, Solidity 컴파일러 버전 및 Etherscan API 키를 지정하도록 hardhat.config.js를 구성합니다.

5. 로컬 Ganache 또는 Hardhat Network 엔드포인트를 포함하여 일치하는 네트워크 정의로 truffle-config.js를 설정합니다.

포괄적인 단위 테스트 작성

1. Hardhat 프로젝트의 test/ 디렉터리에 있는 JavaScript 또는 TypeScript 파일을 사용하여 Mocha 및 Chai로 테스트 사례를 정의합니다.

2. 각 테스트 전에 wait ethers.getContractFactory를 사용하여 계약 아티팩트를 가져오고 배포() 를 통해 인스턴스를 배포합니다.

3. 오류 조건에 대해 Expect(...).to.equal(...) 또는 wait Expect(...).to.be.revertedWith(...)를 사용하여 예상된 동작을 확인하십시오.

4. Truffle에서 contract() 블록을 사용하여 test/*.js 에 테스트를 작성하고 OpenZeppelin 테스트 도우미에서 Assert 또는 ExpectEvent를 작성합니다.

5. 역할 및 권한을 모의하여 값이 없는 전송, 재진입 시도, 무단 액세스와 같은 극단적인 사례를 처리합니다.

정적 분석 및 보안 검사 실행

1. Python 종속 항목을 설치하고 slither를 실행하여 Slither를 CI 파이프라인에 통합합니다 . --solc-remaps '@openzeppelin=node_modules/@openzeppelin' .

2. npm install solhint --save-dev 를 사용하여 스타일 및 보안 관련 안티 패턴을 감지하고 .solhint.json 에서 규칙을 구성하는 Solhint를 추가합니다.

3. 테스트 실행 중에 온체인 취약성 스캔을 수행하려면 Hardhat 플러그인 @mythx/hardhat-mythx 를 통해 MythX를 실행하세요.

4. 메인넷 배포 전에 etherscan-verify 플러그인을 사용하여 소스 코드가 바이트코드와 일치하는지 확인하세요.

5. 사용자 지정 수정자와 상속 계층을 수동으로 감사하여 onlyOwner , whenNotPaused 또는 유사한 가드가 모든 진입점에서 일관되게 작동하는지 확인합니다.

메인넷 조건 시뮬레이션

1. 라이브 상태를 복제하기 위해 Alchemy 또는 Infura 엔드포인트를 가리키는 Hardhat의 --fork 플래그를 사용하여 Ethereum 메인넷을 포크합니다.

2. 포크된 네트워크에 계약을 배포하고 Uniswap 또는 Aave와 같은 실제 DeFi 프로토콜과 상호 작용하여 통합 논리를 검증합니다.

3. --network mainnet-fork 와 함께 Truffle의 콘솔 명령을 사용하여 임시 호출을 실행하고 스토리지 레이아웃을 검사합니다.

4. 고부하 시나리오에서 기능을 트리거하고 OOG 오류로 인해 되돌리기가 발생하지 않는지 확인하여 가스 사용량 급증을 시뮬레이션합니다.

5. evm_increaseTime 및 evm_mine RPC 호출을 사용하여 블록 타임스탬프를 향상시켜 타임스탬프 종속 논리를 확인합니다.

자주 묻는 질문

Q: Hardhat 프로젝트에서 Truffle 테스트 파일을 재사용할 수 있습니까? 예, 대부분의 Truffle 스타일 JavaScript 테스트는 약간의 조정 후에 Hardhat에서 실행될 수 있습니다. Artifacts.require를 ethers.getContractFactory 로 교체하고 Chai 기대치에 맞게 어설션 구문을 업데이트하세요.

Q: Hardhat은 실제 ETH 잔액을 사용한 테스트를 지원합니까? Hardhat Network는 계정 구성을 통해 초기 잔액 설정을 지원합니다. 외부 수도꼭지 없이 자금 지원 상호 작용을 시뮬레이션하기 위해 테스트 계정에 1000 ETH를 할당할 수 있습니다.

Q: 계약에서 발생하는 이벤트를 어떻게 테스트합니까? Hardhat에서는 Expect(tx).to.emit(contract, 'EventName').withArgs(arg1, arg2) 를 사용하세요. Truffle에서는 ExpectEvent.inTransaction(tx, Contract, 'EventName', { arg1, arg2 }) 를 사용하세요.

Q: 내 계약이 단순한 ERC-20인 경우 테스트를 건너뛰어도 안전합니까? 아니요. 표준을 준수하는 토큰이라도 전송 제한, 발행 일시 중지 가능성, 교환 또는 스테이킹 계약과의 상호 작용에 대한 검증이 필요합니다. 테스트를 생략하면 되돌릴 수 없는 잠금 또는 인플레이션 버그가 발생할 위험이 있습니다.

부인 성명:info@kdj.com

제공된 정보는 거래 조언이 아닙니다. kdj.com은 이 기사에 제공된 정보를 기반으로 이루어진 투자에 대해 어떠한 책임도 지지 않습니다. 암호화폐는 변동성이 매우 높으므로 철저한 조사 후 신중하게 투자하는 것이 좋습니다!

본 웹사이트에 사용된 내용이 귀하의 저작권을 침해한다고 판단되는 경우, 즉시 당사(info@kdj.com)로 연락주시면 즉시 삭제하도록 하겠습니다.

관련 지식

변동성이 갑자기 증가할 때 DOT 무기한 계약을 어떻게 관리하나요?

변동성이 갑자기 증가할 때 DOT 무기한 계약을 어떻게 관리하나요?

2026-10-09 01:40:16

시장 변동성 패턴 1. 24시간 이내에 15%를 초과하는 가격 변동은 2021년 이후 Bitcoin 거래일의 68% 이상에서 발생했습니다. 2. 이더리움은 유동성이 낮은 기간, 특히 UTC 02:00~06:00 사이에 Bitcoin보다 더 높은 일중 변동성을 보여주었습...

Polkadot 선물 거래에 대한 증거금 요건을 계산하는 방법은 무엇입니까?

Polkadot 선물 거래에 대한 증거금 요건을 계산하는 방법은 무엇입니까?

2026-10-10 04:27:03

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 2020년 ...

돌파 구역 주변에 DOT 선물 진입 알림을 설정하는 방법은 무엇입니까?

돌파 구역 주변에 DOT 선물 진입 알림을 설정하는 방법은 무엇입니까?

2026-10-12 10:00:31

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 블록당 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 20...

레버리지 선물 포지션을 관리할 때 DOT 펀딩 요율을 어떻게 사용합니까?

레버리지 선물 포지션을 관리할 때 DOT 펀딩 요율을 어떻게 사용합니까?

2026-10-04 10:59:52

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 2020년 ...

지원 수준이 중단된 후 DOT 무기한 계약을 거래하는 방법은 무엇입니까?

지원 수준이 중단된 후 DOT 무기한 계약을 거래하는 방법은 무엇입니까?

2026-10-11 17:40:47

DOT 무기한 계약 메커니즘 이해 1. Hyperliquid 및 Lighter와 같은 주요 DEX에 대한 DOT 무기한 계약은 8시간 간격으로 묶인 펀딩 요율 메커니즘을 사용하며 기본 요율 공식은 0.01%/8시간입니다. 2. 계약의 시장 평균 가격에는 Binance ...

TRX 무기한 계약에서 손절매 및 이익 실현을 설정하는 방법은 무엇입니까?

TRX 무기한 계약에서 손절매 및 이익 실현을 설정하는 방법은 무엇입니까?

2026-10-03 01:59:43

TRX 무기한 계약의 손절매 및 이익 실현 메커니즘 이해 1. TRX 무기한 계약의 손절매(SL) 및 이익 실현(TP) 주문은 시장 평균가가 사용자가 정의한 임계값에 도달할 때 발동되는 조건부 시장 또는 지정가 주문으로 작동합니다. 이는 주문장에 직접 배치되지 않고 거...

변동성이 갑자기 증가할 때 DOT 무기한 계약을 어떻게 관리하나요?

변동성이 갑자기 증가할 때 DOT 무기한 계약을 어떻게 관리하나요?

2026-10-09 01:40:16

시장 변동성 패턴 1. 24시간 이내에 15%를 초과하는 가격 변동은 2021년 이후 Bitcoin 거래일의 68% 이상에서 발생했습니다. 2. 이더리움은 유동성이 낮은 기간, 특히 UTC 02:00~06:00 사이에 Bitcoin보다 더 높은 일중 변동성을 보여주었습...

Polkadot 선물 거래에 대한 증거금 요건을 계산하는 방법은 무엇입니까?

Polkadot 선물 거래에 대한 증거금 요건을 계산하는 방법은 무엇입니까?

2026-10-10 04:27:03

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 2020년 ...

돌파 구역 주변에 DOT 선물 진입 알림을 설정하는 방법은 무엇입니까?

돌파 구역 주변에 DOT 선물 진입 알림을 설정하는 방법은 무엇입니까?

2026-10-12 10:00:31

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 블록당 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 20...

레버리지 선물 포지션을 관리할 때 DOT 펀딩 요율을 어떻게 사용합니까?

레버리지 선물 포지션을 관리할 때 DOT 펀딩 요율을 어떻게 사용합니까?

2026-10-04 10:59:52

Bitcoin 반감기 메커니즘 1. Bitcoin의 프로토콜은 약 210,000블록마다 블록 보상이 절반으로 줄어드는 고정된 발행 일정을 시행합니다. 2. 이 이벤트는 대략 4년마다 발생하며 유통되는 새로운 BTC의 수를 직접적으로 줄입니다. 3. 채굴자는 2020년 ...

지원 수준이 중단된 후 DOT 무기한 계약을 거래하는 방법은 무엇입니까?

지원 수준이 중단된 후 DOT 무기한 계약을 거래하는 방법은 무엇입니까?

2026-10-11 17:40:47

DOT 무기한 계약 메커니즘 이해 1. Hyperliquid 및 Lighter와 같은 주요 DEX에 대한 DOT 무기한 계약은 8시간 간격으로 묶인 펀딩 요율 메커니즘을 사용하며 기본 요율 공식은 0.01%/8시간입니다. 2. 계약의 시장 평균 가격에는 Binance ...

TRX 무기한 계약에서 손절매 및 이익 실현을 설정하는 방법은 무엇입니까?

TRX 무기한 계약에서 손절매 및 이익 실현을 설정하는 방법은 무엇입니까?

2026-10-03 01:59:43

TRX 무기한 계약의 손절매 및 이익 실현 메커니즘 이해 1. TRX 무기한 계약의 손절매(SL) 및 이익 실현(TP) 주문은 시장 평균가가 사용자가 정의한 임계값에 도달할 때 발동되는 조건부 시장 또는 지정가 주문으로 작동합니다. 이는 주문장에 직접 배치되지 않고 거...

모든 기사 보기

User not found or password invalid

Your input is correct