시가총액: $2.8167T -5.61%
거래량(24시간): $179.5196B 61.64%
공포와 탐욕 지수:

38 - 두려움

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

언어 선택

언어 선택

통화 선택

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

Vyper에서 첫 번째 스마트 계약 작성 가이드

Vyper prioritizes security and auditability—omitting inheritance and recursion, enforcing explicit visibility, built-in overflow protection, and Python-like syntax compiling directly to EVM bytecode.

2026/01/14 06:40

Vyper의 디자인 철학 이해하기

1. Vyper는 풍부한 기능보다 보안과 감사 가능성을 우선시하여 상속 및 재귀 호출과 같은 복잡한 구성을 의도적으로 생략합니다.

2. 언어는 모든 함수와 상태 변수에 대한 명시적인 가시성 선언을 시행하여 계약 검토 중 모호성을 줄입니다.

3. Python과 유사한 구문을 사용하지만 중간 추상화 없이 EVM 바이트코드로 직접 컴파일하여 공격 표면을 최소화합니다.

4. 정수 오버플로 및 언더플로 보호 기능이 내장되어 있어 수동 SafeMath 패턴이 필요하지 않습니다.

5. 모든 외부 호출은 @external 데코레이터로 표시되어 상호 작용 경계가 소스 코드에 즉시 표시됩니다.

개발 환경 설정

1. Python 3.9+ 및 pip를 설치한 다음 pip install vyper를 실행하여 공식 컴파일러를 가져옵니다.

2. 구문 강조 및 기본 Linting 지원을 위해 Vyper 확장과 함께 VS Code를 사용합니다.

3. Anvil을 통해 로컬 테스트넷 노드를 구성하거나 Foundry의 anvil 명령을 사용하여 Ethereum 실행을 시뮬레이션합니다.

4. 단위 테스트를 위해 pytest와 통합 - Vyper 계약은 pytest가 직접 호출할 수 있는 ABI 호환 인터페이스를 노출합니다.

5. vyper -f json my_contract.vy 를 실행한 후 컴파일된 바이트코드와 ABI를 별도의 JSON 파일에 저장합니다.

최소 토큰 계약 작성

1. Balance_of: public(HashMap[address, uint256]) 과 같은 공개 또는 비공개 수정자를 사용하여 저장소 변수를 선언합니다.

2. @external 로 생성자를 정의하고 하나의 원자 블록에서 총 공급량과 소유자 잔액을 초기화합니다.

3. 엄격한 검사를 통해 전송 논리를 구현합니다: 보낸 사람 잔액 충분성, 0이 아닌 받는 사람 주소 및 로그 Transfer(...) 를 사용한 이벤트 방출.

4. 불변성을 적용하기 위해 되돌리기 문자열 대신 주장 문을 사용합니다. Vyper는 사용자 정의 오류 메시지를 지원하지 않습니다.

5. 무제한 반복이 포함된 루프를 피하세요. 가스 소모를 방지하기 위해 고정 길이 배열과 제한된 for 루프만 허용됩니다.

테스트넷에서 컴파일 및 배포

1. vyper -f Combined_json my_contract.vy 로 컴파일하여 하나의 출력에서 ​​바이트코드와 ABI를 모두 생성하세요.

2. web3.py를 사용하여 RPC 끝점에 연결하고, 계약 개체를 인스턴스화하고, 개인 키로 배포 트랜잭션에 서명합니다.

3. 제출 전 가스 추정 확인 - Vyper의 결정론적 컴파일을 통해 정확한 배포 전 가스 비용 예측이 가능합니다.

4. Etherscan 테스트넷 탐색기에서 컨트랙트 주소를 쿼리하고 발생된 이벤트를 확인하여 배포를 확인합니다.

5. web3.eth.contract() 메소드를 통해 상호 작용하여 모든 인수가 Vyper 소스에 정의된 예상 유형과 일치하는지 확인합니다.

자주 묻는 질문

Q: Vyper는 부동 소수점 연산을 지원합니까? A: 아니요. Vyper에는 기본 부동 소수점 유형이 포함되어 있지 않습니다. 고정 소수점 연산은 정수 배율 인수를 사용하여 수동으로 구현해야 합니다.

Q: 내 계약 내에서 다른 Vyper 계약을 호출할 수 있나요? A: 그렇습니다. 그러나 인터페이스 블록을 사용하여 대상 계약의 인터페이스가 명시적으로 선언되고 형식화된 변수를 통해 호출이 이루어지는 경우에만 해당됩니다.

Q: Vyper에서는 구조체가 어떻게 처리되나요? A: 구조체는 명명된 필드 그룹으로 지원되지만 중첩되거나 매핑 키로 사용될 수 없습니다. struct 키워드를 사용하여 전역적으로 선언해야 합니다.

Q: Vyper에서 시간 기반 논리를 처리하는 표준 방법이 있습니까? 답: 그렇습니다. block.timestamp를 직접 사용하세요. 전역 상수로 액세스할 수 있으며 Solidity 버전과 동일하게 작동합니다.

부인 성명:info@kdj.com

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

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

관련 지식

LayerZero 계약으로 크로스체인 메시지를 실행하는 방법은 무엇입니까?

LayerZero 계약으로 크로스체인 메시지를 실행하는 방법은 무엇입니까?

2026-01-18 13:19:39

LayerZero 아키텍처 이해 1. LayerZero는 신뢰할 수 있는 중개자나 래핑된 자산에 의존하지 않고 블록체인 간의 통신을 가능하게 하는 경량의 무허가 상호 운용성 프로토콜로 작동합니다. 2. 각 체인에 배포된 Ultra Light Node(ULN)를 활용하여...

안전한 서명 검증을 위해 EIP-712를 구현하는 방법은 무엇입니까?

안전한 서명 검증을 위해 EIP-712를 구현하는 방법은 무엇입니까?

2026-01-20 22:20:26

EIP-712 개요 및 핵심 목적 1. EIP-712는 이더리움 애플리케이션에서 형식화된 구조화된 데이터 해싱 및 서명에 대한 표준을 정의합니다. 2. 서명 요청 시 원시 16진수 문자열 대신 사람이 읽을 수 있는 도메인 및 메시지 필드를 지갑에 표시할 수 있습니다. ...

새로운 계약과 상호 작용하여 에어드랍 자격을 얻는 방법은 무엇입니까?

새로운 계약과 상호 작용하여 에어드랍 자격을 얻는 방법은 무엇입니까?

2026-01-24 21:00:23

계약 상호 작용 요구 사항 이해 1. 대부분의 에어드롭 캠페인은 Ethereum, Arbitrum 또는 Base와 같은 지원되는 블록체인에 배포된 스마트 계약과의 직접적인 상호 작용을 요구합니다. 2. 상호 작용에는 일반적으로 dApp 인터페이스에 연결된 지갑을 사용하...

보안 경고에 대한 스마트 계약을 모니터링하는 방법은 무엇입니까?

보안 경고에 대한 스마트 계약을 모니터링하는 방법은 무엇입니까?

2026-01-21 07:59:57

온체인 모니터링 도구 1. Etherscan 및 Blockscout와 같은 블록체인 탐색기를 사용하면 계약 바이트 코드, 트랜잭션 로그 및 내부 호출을 실시간으로 검사할 수 있습니다. 2. 온체인 데이터를 신뢰하기 전에 계약 확인 상태를 확인해야 합니다. 확인되지 않은...

자동 결제 계약을 설정하고 자금을 조달하는 방법은 무엇입니까?

자동 결제 계약을 설정하고 자금을 조달하는 방법은 무엇입니까?

2026-01-26 08:59:35

스마트 계약 배포 이해 1. 개발자는 가스 효율성 및 보안 요구 사항을 기반으로 Ethereum, Polygon 또는 Arbitrum과 같은 호환 가능한 블록체인 플랫폼을 선택해야 합니다. 2. Solidity는 특히 반복 또는 조건부 이체를 위한 결제 자동화 로직 작...

OpenZeppelin 계약을 사용하여 안전한 dApp을 구축하는 방법은 무엇입니까?

OpenZeppelin 계약을 사용하여 안전한 dApp을 구축하는 방법은 무엇입니까?

2026-01-18 11:19:49

OpenZeppelin 계약 기본 사항 이해 1. OpenZeppelin Contracts는 Ethereum 및 EVM 호환 블록체인용으로 구축된 재사용 가능한 커뮤니티 감사 스마트 계약 구성 요소 라이브러리입니다. 2. 라이브러리의 각 계약은 검사-효과-상호작용 패턴...

LayerZero 계약으로 크로스체인 메시지를 실행하는 방법은 무엇입니까?

LayerZero 계약으로 크로스체인 메시지를 실행하는 방법은 무엇입니까?

2026-01-18 13:19:39

LayerZero 아키텍처 이해 1. LayerZero는 신뢰할 수 있는 중개자나 래핑된 자산에 의존하지 않고 블록체인 간의 통신을 가능하게 하는 경량의 무허가 상호 운용성 프로토콜로 작동합니다. 2. 각 체인에 배포된 Ultra Light Node(ULN)를 활용하여...

안전한 서명 검증을 위해 EIP-712를 구현하는 방법은 무엇입니까?

안전한 서명 검증을 위해 EIP-712를 구현하는 방법은 무엇입니까?

2026-01-20 22:20:26

EIP-712 개요 및 핵심 목적 1. EIP-712는 이더리움 애플리케이션에서 형식화된 구조화된 데이터 해싱 및 서명에 대한 표준을 정의합니다. 2. 서명 요청 시 원시 16진수 문자열 대신 사람이 읽을 수 있는 도메인 및 메시지 필드를 지갑에 표시할 수 있습니다. ...

새로운 계약과 상호 작용하여 에어드랍 자격을 얻는 방법은 무엇입니까?

새로운 계약과 상호 작용하여 에어드랍 자격을 얻는 방법은 무엇입니까?

2026-01-24 21:00:23

계약 상호 작용 요구 사항 이해 1. 대부분의 에어드롭 캠페인은 Ethereum, Arbitrum 또는 Base와 같은 지원되는 블록체인에 배포된 스마트 계약과의 직접적인 상호 작용을 요구합니다. 2. 상호 작용에는 일반적으로 dApp 인터페이스에 연결된 지갑을 사용하...

보안 경고에 대한 스마트 계약을 모니터링하는 방법은 무엇입니까?

보안 경고에 대한 스마트 계약을 모니터링하는 방법은 무엇입니까?

2026-01-21 07:59:57

온체인 모니터링 도구 1. Etherscan 및 Blockscout와 같은 블록체인 탐색기를 사용하면 계약 바이트 코드, 트랜잭션 로그 및 내부 호출을 실시간으로 검사할 수 있습니다. 2. 온체인 데이터를 신뢰하기 전에 계약 확인 상태를 확인해야 합니다. 확인되지 않은...

자동 결제 계약을 설정하고 자금을 조달하는 방법은 무엇입니까?

자동 결제 계약을 설정하고 자금을 조달하는 방법은 무엇입니까?

2026-01-26 08:59:35

스마트 계약 배포 이해 1. 개발자는 가스 효율성 및 보안 요구 사항을 기반으로 Ethereum, Polygon 또는 Arbitrum과 같은 호환 가능한 블록체인 플랫폼을 선택해야 합니다. 2. Solidity는 특히 반복 또는 조건부 이체를 위한 결제 자동화 로직 작...

OpenZeppelin 계약을 사용하여 안전한 dApp을 구축하는 방법은 무엇입니까?

OpenZeppelin 계약을 사용하여 안전한 dApp을 구축하는 방법은 무엇입니까?

2026-01-18 11:19:49

OpenZeppelin 계약 기본 사항 이해 1. OpenZeppelin Contracts는 Ethereum 및 EVM 호환 블록체인용으로 구축된 재사용 가능한 커뮤니티 감사 스마트 계약 구성 요소 라이브러리입니다. 2. 라이브러리의 각 계약은 검사-효과-상호작용 패턴...

모든 기사 보기

User not found or password invalid

Your input is correct