블록 정보에 액세스하기 chain으로 사용 가능한 Chain 객체는 리스트와 같은 구문을 사용하여 블록 정보에 액세스할 수 있습니다: >>> chain >>> chain[12965000] AttributeDict({ 'baseFeePerGas': 1000000000, 'difficulty': 7742494561645080, 'extraData': HexBytes('0x68747470733a2f2f7777772e6b7279707465782e6f7267'), 'gasLimit': 30029122, 'gasUsed': 30025257, 'hash': HexBytes('0x9b83c12c69edb74f6c8dd5d052765c1adf940e320bd1291696e6fa07829eee71'), 'logsBloom..
동적 수수료 거래 EIP-1559를 구현하는 네트워크에 상호 작용하는 경우, 거래를 보낼 때 더 나은 수수료 모델을 사용할 수 있습니다. gas_price를 지정하는 대신 priority_fee와 선택적인 max_fee를 지정합니다. priority_fee는 maxPriorityFeePerGas를 결정하며, 이것은 채굴자에게 팁을 줍니다. 권장 우선 수수료는 chain.priority_fee에서 읽을 수 있습니다. max_fee는 모든 트랜잭션에서 동일하게 소비되는 기본 수수료와 우선순위 수수료를 포함하는 maxFeePerGas를 결정합니다. 현재 기본 수수료는 chain.base_fee에서 읽을 수 있습니다. 브라우니는 우선순위 수수료만 지정하는 경우 base_fee * 2 + priority_fee를..
계약 배포하기 Brownie가 로드될 때마다 프로젝트를 자동으로 컴파일하고 배포 가능한 각 계약에 대한 ContractContainer 객체를 만듭니다. 이 객체는 개별 배포에 액세스하기 위한 컨테이너로 사용됩니다. 또한 새 계약을 배포하는 데에도 사용됩니다. >>> Token [] >>> type(Token) >>> Token.deploy ContractContainer.deploy 함수는 새로운 스마트 컨트랙트를 배포하는 데 사용됩니다. >>> Token.deploy 계약 생성자 전달인자 및 거래 매개변수 사전과 함께 호출해야 하며, 이는 from 필드를 포함하는 것이 필요하며 해당 필드는 계약을 배포할 Account를 지정합니다. >>> Token.deploy("Test Token", "TST", ..
Accounts 컨테이너( accounts 또는 a로 사용 가능)를 사용하면 모든 로컬 계정에 액세스할 수 있습니다. >>> accounts ['0xC0BcE0346d4d93e30008A1FE83a2Cf8CfB9Ed301', '0xf414d65808f5f59aE156E51B97f98094888e7d92', '0x055f1c2c9334a4e57ACF2C4d7ff95d03CA7d6741', '0x1B63B4495934bC1D6Cb827f7a9835d316cdBB332', '0x303E8684b9992CdFA6e9C423e92989056b6FC04b', '0x5eC14fDc4b52dE45837B7EC8016944f75fF42209', '0x22162F0D8Fd490Bde6Ffc9425472941a1a59348..
브라우니 GUI 브라우니에는 테스트 커버리지 데이터를 볼 수 있고 컴파일 된 계약 바이트 코드를 분석할 수 있는 GUI가 포함되어 있습니다. 이 섹션의 일부는 EVM 바이트 코드에 대한 이해 수준을 전제로 합니다. 이 주제에 대해 더 알고 싶다면 OpenZeppelin의 Alejandro Santander가 훌륭한 가이드를 작성했습니다. - Solidity 컨트랙트 해체. ✅ GUI를 로드하려고 할 때 오류가 발생하면 시스템에 Tk가 설치되어 있지 않은 것입니다. 더 자세한 정보는 Tk 설치 지침을 확인하십시오. 시작하기 GUI를 열려면 프로젝트 폴더 내에서 다음 명령을 실행하십시오. $ brownie gui 또는 콘솔에서: >>> Gui() 로드된 후에는 먼저 볼 계약을 선택해야합니다. 이를 위해 오른..
브라우니는 다른 프로젝트를 패키지로 설치할 수 있습니다. 패키지의 이점은 다음과 같습니다: 다른 사람이 작성한 코드 아이디어를 쉽게 가져와서 빌드할 수 있음 프로젝트 간에 중복된 코드를 줄일 수 있음 프로젝트와 다른 프로젝트 간의 상호작용을 확인하는 단위 테스트 작성 가능 브라우니 패키지 매니저는 명령줄에서 사용할 수 있습니다: $ brownie pm 패키지 설치 브라우니는 ethPM 및 Github에서 패키지 설치를 지원합니다. Github에서 설치 패키지를 설치하는 가장 쉬운 방법은 Github 저장소에서 설치하는 것입니다. 브라우니에서 Github 저장소는 다음 기준을 충족하면 패키지로 간주됩니다: 저장소는 하나 이상의 태그 버전을 가지고 있어야 합니다. 저장소는 하나 이상의 Solidity 또는 ..
계약 상호 작용 브라우니에는 프로젝트를 개발하는 동안 사용할 수 있는 세 가지 주요 구성 요소가 있습니다: 콘솔은 빠른 테스트 및 디버깅에 유용합니다. 스크립트를 사용하면 일반 작업을 자동화하고 배포를 처리할 수 있습니다. 테스트는 계약이 의도한대로 실행되는지 확인하는 데 도움이됩니다. 콘솔 사용 콘솔은 비 로컬 체인에 배포 된 계약과 직접 상호 작용하거나 개발하는 동안 빠른 테스트를 수행 할 때 유용합니다. 브라우니의 기능에 익숙해지는 좋은 시작점입니다. 콘솔은 일반 Python 인터프리터와 매우 유사합니다. 프로젝트 디렉토리 내에서 다음을 입력하여 로드하세요: $ brownie console 브라우니는 컨트랙트를 컴파일하고 로컬 테스트 환경에 연결하거나 연결하여 명령 프롬프트를 제공합니다. 이제 여기..
프로젝트의 contracts/ 하위 폴더에 있는 모든 컨트랙트 소스를 컴파일합니다: brownie compile 컴파일러가 실행될 때마다 브라우니는 각 컨트랙트 소스의 해시를 기존 컴파일된 버전의 해시와 비교합니다. 컨트랙트가 변경되지 않은 경우 다시 컴파일되지 않습니다. 전체 프로젝트를 강제로 다시 컴파일하려면 brownie compile --all을 사용하세요. 하나 이상의 컨트랙트를 컴파일할 수 없는 경우 Brownie는 컴파일에 실패한 이유에 대한 정보와 함께 예외를 발생시킵니다. 컴파일에 실패하는 동안에는 프로젝트에 Brownie를 사용할 수 없습니다. 이름 시작 부분에 밑줄(_)을 추가하여 파일이나 폴더를 컴파일에서 일시적으로 제외할 수 있습니다. 지원 언어 브라우니는 솔리디티(>=0.4.22..