brownie

A Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine.

MIT License

Downloads
33.3K
Stars
2.6K
Committers
123

Bot releases are visible (Hide)

brownie - brownie 1.8.1

Published by iamdefinitelyahuman over 4 years ago

Added

  • --disable-warnings flag when running tests (#474)
  • Set custom timeout option for web3 calls (#469)

Changed

  • Exposed silent parameter to Account.transfer (#472)

Fixed

  • Import statements within project interfaces (#475)
brownie - brownie 1.8.0

Published by iamdefinitelyahuman over 4 years ago

Added

  • Interactive debugging mode when running tests (#456)
  • Rpc.undo and Rpc.redo (#457)
  • InterfaceContainer and InterfaceConstructor (#463)
  • Allow contract deployment via Account.transfer (#464)

Changed

  • Do not raise on non-zero block height (#461)
  • When fetching source code, call getabi if getsourcecode fails (#462)

Fixed

  • Add missing args to pytest print method (#460)
brownie - brownie 1.7.5

Published by iamdefinitelyahuman over 4 years ago

Fixed

  • Importing keystore files from CLI without .json suffix (#448)
  • Properly display reports in GUI (#449)
brownie - brownie 1.7.4

Published by iamdefinitelyahuman over 4 years ago

Fixed

  • Do not repeat queries for unverified source (#445)
  • KeyError when using autofetch_sources (#445)
  • "No owner" issue with contract call during coverage evaluation (#446)
brownie - brownie 1.7.3

Published by iamdefinitelyahuman over 4 years ago

Changed

  • Expanded support for use of --fork with Ganache (#437)

Fixed

  • Remove outdated check for project-inside-project (#438)
brownie - brownie 1.7.2

Published by iamdefinitelyahuman over 4 years ago

Fixed

  • Properly handle undecodable events (#433)
brownie - brownie 1.7.1

Published by iamdefinitelyahuman over 4 years ago

Fixed

  • Do not allow brownie init on a directory that isn't empty (#428)
  • Missing dev revert strings on require as last statement in a function (#424)
  • Colorful output when skipping tests without xdist (#422)
brownie - brownie 1.7.0

Published by iamdefinitelyahuman over 4 years ago

Added

  • Install packages from Github or ethPM using brownie pm CLI commands (#390)
  • Manage network settings using brownie networks CLI commands (#408)
  • Fetch contract sources from Etherscan API with Contract.from_explorer (#413)
  • Maintain persistent deployment records in SQLite database (#413)
  • Use prompt_toolkit in console to enable autocompletion, input suggestions and code highlights (#416)
  • View NatSpec documentation for contract functions with ContractCall.info (#395)
  • Accounts.default to set default account for contract deployments (#391)
  • Cleaner output when using the -s flag with pytest (#397)

Changed

  • All configuration file settings are now optional and no config file is added when creating a new project (#408)
  • Network settings are handled independently of projects (#408)
  • Paths are referenced via pointers in build artifacts (#403)

Deprecated

  • Contract init method deprecated in favor of from_ethpm or from_abi class methods (#413)
  • brownie ethpm CLI tool temporarily deprecated in favor of brownie pm until ethPM v3 is official (#390)

Removed

  • Source minification (#384)

Fixed

  • Recursion errors when a library references itself (#393)
  • Incorrect source highlights when running tests across multiple projects at once (#402)
brownie - brownie 1.6.9

Published by iamdefinitelyahuman over 4 years ago

Fixed

  • Encoding bug for lists of tuples
  • Allow transfer to unchecksummed hexstring address
  • Color output for dir in console
  • Ignore json files in contracts folder
  • ZeroDivisionError during coverage evaluation when nothing has changed
brownie - brownie 1.6.8

Published by iamdefinitelyahuman over 4 years ago

Changed

Fixed

  • Bug when determining dependencies of a Contract object
brownie - brownie 1.6.7

Published by iamdefinitelyahuman over 4 years ago

Fixed

  • INVALID instructions with no related ast node (assembly)
  • Missing f-strings in compiler output
brownie - brownie 1.6.6

Published by iamdefinitelyahuman over 4 years ago

Changed

  • MythX plugin update
  • MythX plugin documentation update
brownie - brownie 1.6.5

Published by iamdefinitelyahuman over 4 years ago

Fixed

  • Fix issues from missing source offsets in Solidity v0.6.3
  • Do not assume pytest will run test functions sequentially (adds support for -k flag)
brownie - brownie 1.6.4

Published by iamdefinitelyahuman over 4 years ago

Added

  • Show progress spinner when running stateful tests

Changed

  • Update brownie analyze based on updates to MythX API

Fixed

  • Allow import of project ContractContainer instances from brownie when running tests
brownie - brownie 1.6.3

Published by iamdefinitelyahuman over 4 years ago

Added

  • --stateful flag to only run or skip stateful test cases
  • EIP-170 size limits: warn on compile, give useful error message on failed deployment

Changed

  • unexpanded transaction trace is available for deployment transactions

Fixed

  • Warn instead of raising when an import spec cannot be found
  • Handle REVERT outside of function when generating revert map
brownie - brownie 1.6.2

Published by iamdefinitelyahuman over 4 years ago

Fixed

  • Retrieve config file from brownie/data when generating new project
brownie - brownie 1.6.1

Published by iamdefinitelyahuman over 4 years ago

Changed

brownie - brownie 1.6.0

Published by iamdefinitelyahuman over 4 years ago

Added

  • Hypothesis integration for property-based and stateful testing
  • TransactionReceipt.new_contracts - list of contracts deployed during a contract call
  • TransactionReceipt.internal_transfers - information on internal ether transfers during a transaction

Changed

  • Refactor brownie.convert into sub-modules
  • Use eth_abi.grammar.parse when formatting contract inputs and outputs
  • Replace docopt with docopt-ng (fixes deprecation warnings)
  • ContractContainer.at compares actual bytecode to expected, returns Contract object if they do not match

Removed

  • Custom color settings in the project config file

Fixed

  • bug preventing pytest.default_contract_owner config setting from having any effect
  • threading exception when contract deployment fails
brownie - brownie 1.5.1

Published by iamdefinitelyahuman over 4 years ago

Fixed

  • Correctly isolate path and nodeid from test cases inside classes
  • Allow "" and "0x" when converting to bytes, disallow booleans
  • Tests can run from inside a project subfolder
  • Preserve pytest rootdir when a Brownie project is in a subfolder of a Python project
brownie - brownie 1.5.0

Published by iamdefinitelyahuman almost 5 years ago

Added

  • interfaces/ folder for interface sources
  • Support for pytest-xdist
  • Tested support for Vyper with ethPM
  • Progress bar when downloading a Brownie mix
  • get_abi method for Solidity and Vyper compilers
  • Create .gitignore and .gitattributes when initializing new project

Changed

  • Move check for new contract sources from Project.__init__ to Project.load
  • Set istanbul as default EVM ruleset, run tests against ganache-cli v6.8.2

Deprecated

  • pytest.reverts is deprecated in favor of brownie.reverts

Fixed

  • Check pragma statements when determining if a contract should be recompiled
  • Understand abstract contract when regexing contract source