728x90
반응형
SMALL
=

전체 글

블록체인 (Block Chain)/이더리움

[브라우니 (Brownie)] 20. MythX를 사용한 보안 분석

브라우니는 MythX 분석 API와 통합되어 프로젝트의 보안 검사를 자동화할 수 있습니다. MythX는 정적 분석, 동적 분석 및 상징적 실행을 사용하여 프로젝트의 취약점을 검사하는 스마트 계약 보안 서비스입니다. 다음과 같은 세 가지 모드에서 실행됩니다. Quick 모드: 나쁜 코딩 패턴과 낮은 복잡도 버그를 찾는 데 효과적입니다 (무료 사용자에게 제공됨). Standard 모드: 더 오래 걸리지만 복잡한 보안 문제를 해결할 수 있습니다 (Dev 사용자에게 제공됨). Deep 모드: 더 오래 걸리지만 깊이있고 숨겨진 취약점을 찾을 수 있습니다 (Pro 사용자에게 제공됨). MythX는 무료 및 유료 서비스를 모두 제공합니다. 작동 방식에 대해 자세히 알아보려면 Bernhard Mueller의 MythX..

블록체인 (Block Chain)/이더리움

[브라우니 (Brownie)] 19. 커버리지 평가

단위 테스트 커버리지를 확인하려면: $ brownie test --coverage 테스트가 완료되면 보고서가 표시됩니다: Coverage analysis: contract: Token - 82.3% SafeMath.add - 66.7% SafeMath.sub - 100.0% Token. - 0.0% Token.allowance - 100.0% Token.approve - 100.0% Token.balanceOf - 100.0% Token.decimals - 0.0% Token.name - 100.0% Token.symbol - 0.0% Token.totalSupply - 100.0% Token.transfer - 85.7% Token.transferFrom - 100.0% Coverage report s..

블록체인 (Block Chain)/이더리움

[브라우니 (Brownie)] 18. 상태 기반 테스트

상태 기반 테스트는 복잡한 시스템을 테스트하는 데 사용되는 속성 기반 테스팅의 고급 방법입니다. 상태 기반 테스트에서는 다양한 방식으로 결합할 수 있는 여러 가지 동작을 정의하고, 가설은 실패를 초래하는 이러한 동작의 순서를 찾으려고 시도합니다. 이는 가능한 상태가 많은 복잡한 계약이나 계약 간 상호 작용을 테스트할 때 유용합니다. Brownie는 hypothesis 프레임워크를 활용하여 상태 저장 테스트를 용합니다. 이 섹션의 많은 내용은 공식 hypothesis.works 웹사이트를 기반으로 합니다. 상태 기반 테스팅에 대해 더 자세히 알아보려면 다음 글을 읽어보시기를 추천합니다: David R. MacIver의 Rule Based Stateful Testing Nicholas Chammas의 Sol..

블록체인 (Block Chain)/이더리움

[브라우니 (Brownie)] 17. 속성 기반 테스트

브라우니는 속성 기반 테스트를 수행하기 위해 hypothesis 프레임워크를 사용합니다. 이 섹션의 많은 내용은 공식 hypothesis.works 웹사이트를 기반으로 합니다. 속성 기반 테스트에 대해 더 알아보려면 이 소개 글 시리즈를 읽거나 공식 Hypothesis 문서를 참조할 수 있습니다. 속성 기반 테스트란? 속성 기반 테스트는 코드 내에서 엣지 케이스를 찾고 잘못된 가정을 발견하는 강력한 도구입니다. 속성 기반 테스트의 핵심 개념은 단일 시나리오에 대한 테스트를 작성하는 대신, 여러 시나리오를 설명하는 테스트를 작성하고 컴퓨터가 각 경우의 가능성을 탐색하도록 하는 것입니다. 이를 수작업으로 일일이 작성하는 대신 컴퓨터가 자동으로 수행합니다. 기본적인 프로세스는 다음과 같습니다: 스마트 계약 내..

블록체인 (Block Chain)/이더리움

[브라우니 (Brownie)] 16. 픽스처 및 마커 참조

브라우니에는 프로젝트를 테스트할 때 사용할 수 있는 사용자 정의 fixtures 및 markers가 포함되어 있습니다. 세션 fixtures 이러한 fixtures는 테스트 중 자주 사용되는 Brownie 객체에 빠르게 액세스할 수 있도록 제공됩니다. 이러한 객체에 익숙하지 않은 경우 목차에서 "핵심 기능"으로 나열된 문서를 읽으시기 바랍니다. accounts 활성 프로젝트에 대한 Accounts 컨테이너를 생성하여 로컬 계정과 상호 작용하는 데 사용됩니다. def test_account_balance(accounts): assert accounts[0].balance() == "100 ether" a accounts 픽스처의 약식 형태. def test_account_balance(a): assert ..

블록체인 (Block Chain)/이더리움

[브라우니 (Brownie)] 15. 단위 테스트 작성하기

브라우니는 단위 테스트를 위해 pytest 프레임워크를 사용합니다. Pytest는 성숙하고 기능이 풍부한 테스트 프레임워크입니다. 최소한의 코드로 작은 테스트를 작성할 수 있으며 대규모 프로젝트에 확장성이 뛰어납니다. 테스트를 실행하려면: $ brownie test 이 문서에서는 기본 pytest 사용 방법을 간단하게 설명하며, 특히 Brownie와 관련된 기능에 중점을 둡니다. pytest의 많은 구성 요소는 부분적으로 또는 전혀 설명되지 않았습니다. pytest에 대해 더 자세히 알고 싶다면 공식 pytest 문서를 참조해야합니다 (https://docs.pytest.org/en/latest/). 시작하기 테스트 파일 구조 Pytest는 프로젝트의 테스트 스위트에 포함해야하는 함수를 찾기 위해 tes..

블록체인 (Block Chain)/이더리움

[브라우니 (Brownie)] 14. 데이터 유형

데이터 유형 브라우니는 일반적으로 나타내는 값을 간소화하기 위해 사용자 정의 데이터 유형을 사용합니다. Wei Wei 클래스는 이더리움의 양을 나타내는 값으로 사용됩니다. 이 클래스는 문자열, 과학적 표기법 및 16진 문자열을 wei로 표현된 정수로 변환할 수 있는 int 서브 클래스입니다. >>> Wei("1 ether") 1000000000000000000 >>> Wei("12.49 gwei") 12490000000 >>> Wei("0.029 shannon") 29000000 >>> Wei(8.38e32) 838000000000000000000000000000000 다른 값들도 비교, 덧셈, 뺄셈을 수행하기 전에 Wei**로 변환됩니다: >>> Wei(1e18) == "1 ether" True >>>..

블록체인 (Block Chain)/이더리움

[브라우니 (Brownie)] 13. 트랜잭션 검사 및 디버깅하기

TransactionReceipt 객체는 트랜잭션에 관한 정보와 디버깅을 돕는 다양한 메서드를 제공합니다. >>> tx = Token[0].transfer(accounts[1], 1e18, {'from': accounts[0]}) Transaction sent: 0xa7616a96ef571f1791586f570017b37f4db9decb1a5f7888299a035653e8b44b Token.transfer confirmed - block: 2 gas used: 51019 (33.78%) >>> tx 트랜잭션에 대한 사람이 읽기 쉬운 정보를 보려면 TransactionReceipt.info 메서드를 호출하세요. >>> tx.info() Transaction was Mined -----------------..

728x90
반응형
LIST
gsroot
gsroot