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.4.2

Published by iamdefinitelyahuman almost 5 years ago

Added

  • Add Ethereum Classic networks in brownie-config.yaml
  • Accept atlantis and agharta as EVM ruleset options in brownie-config.yaml

Changed

  • Use vyper version 0.1.0b16

Fixed

  • Create ~/.brownie/accounts when accounts command-line interface is called
brownie - brownie 1.4.1

Published by iamdefinitelyahuman almost 5 years ago

Changed

  • Do not install solc until required for compilation
  • Adjust compiler config settings to be less Solidity-centric

Fixed

  • Compiler bug when generating Vyper branch paths
  • Permission error when launching Brownie with Ganache already running on OSX
brownie - brownie 1.4.0

Published by iamdefinitelyahuman almost 5 years ago

Added

  • support for Vyper smart contracts (v0.1.0-beta15)
  • brownie accounts commandline interface
brownie - brownie 1.3.2

Published by iamdefinitelyahuman almost 5 years ago

Added

  • error message for modulus by zero
  • progress bar when installing new version of solc
brownie - brownie 1.3.1

Published by iamdefinitelyahuman almost 5 years ago

Added

  • better error message for division by zero

Fixed

  • Correctly save minified source offsets in build artifacts
  • Coverage evaluation: isolate active_branches between jumps
brownie - brownie 1.3.0

Published by iamdefinitelyahuman almost 5 years ago

Added

  • support for Solidity v0.6.0
  • allow istanbul as choice for EVM ruleset (default is still petersburg)
  • allow dev: revert comments for assert statements
  • better error messages when sending ether to nonpayable function, or trying to access an invalid array index

Fixed

  • GUI properly highlights JUMPDEST targets within first 256 bytes
  • Close IO objects to avoid warnings on exit
brownie - brownie 1.2.1

Published by iamdefinitelyahuman almost 5 years ago

Added

  • cache available solc compiler versions to avoid repeated calls
  • store data files in ~/.brownie/

Fixed

  • removed Tkinter dependency when not loading the GUI
brownie - brownie 1.2.0

Published by iamdefinitelyahuman almost 5 years ago

Added

  • ethPM integration
  • ProjectContract objects persist between sessions (when enabled in the config file)

Changed

  • scripts.run only works when a project is loaded, supports multiple loaded projects

Fixed

  • use isinstance instead of type for conversions, fixes hexstring comparison bug
  • pretty printing for more objects in the console
  • properly display SyntaxError in console when there is no source highlight
  • improved regex statement for finding individual contracts within source files
  • favor ==x.x dependencies over >=x.x <x.y, removed deps-of-deps to reduce conflicts
  • delete stale compiler artifacts from build/contracts/ when contract name has changed within the same source file
brownie - brownie 1.1.0

Published by iamdefinitelyahuman almost 5 years ago

Added

  • support for Python 3.8

Changed

  • project config files use YAML formatting
brownie - brownie 1.0.1

Published by iamdefinitelyahuman about 5 years ago

Fixed

  • regex pattern for finding contracts in source
  • string formatting in cli
  • calling rpc.attach with no port set
brownie - brownie 1.0.0

Published by iamdefinitelyahuman about 5 years ago

Added

  • Integration with MythX via brownie analyze CLI command
  • Support for ENS domains
  • Finalize public API, many minor edits!
  • replace broadcast_reverting_tx with reverting_tx_gas_limit in config
  • Allow environment variables in config network.hosts
  • Add PEP484 annotations to codebase
  • Linting: black, mypy, isort

Thanks to @crawfordleeds and @dmuhs for their contributions on this release!

brownie - brownie 1.0.0b11

Published by iamdefinitelyahuman about 5 years ago

  • Require web3.py version 5, updates based on breaking changes
  • Add support for ABIEncoderV2
  • Add Project class, allow opening multiple projects at the same time
  • Determine solc version using pragma, allow multiple versions in one project
  • Set EVM version in config file
  • Allow config file comments, change structure
  • Add PublicKeyAccount and Contract (via ABI), allow tracebacks on unknown contracts
  • Expanded Alert functionality
  • Windows bugfixes
brownie - brownie 1.0.0b10

Published by iamdefinitelyahuman over 5 years ago

  • Use pytest for unit testing
  • remove check module, add check.equals comparison logic to ReturnValue
  • Modify coverage evaluation to work with pytest
  • remove brownie.types package, move classes to related modules
  • replace wei function with Wei class, expand functionality
  • add EthAddress and HexString helper classes
  • improved formatting for tx.traceback and tx.call_trace
brownie - brownie 1.0.0b9

Published by iamdefinitelyahuman over 5 years ago

  • Support for overloaded function names
  • Bugfixes
  • Minor code changes and improvements
brownie - brownie 1.0.0b8

Published by iamdefinitelyahuman over 5 years ago

  • Rebuild of coverage evaluation functionality using contract ASTs
  • Split coverage eval results between branches and statements, add GUI support
  • Add tracebacks for failed transactions, better call trace formatting
  • Allow contract minification before compiling
  • Enable output console in GUI (very basic for now)
  • Rebuild brownie console using code.InteractiveConsole
  • Significant code refactoring and reorganization
  • Emphasis on standardized structure across modules and increased ease of testing
  • More tests, coverage at 88%
brownie - brownie 1.0.0b7

Published by iamdefinitelyahuman over 5 years ago

  • Commented dev revert strings
  • Custom exception classes
  • Standardize contract outputs
  • Add Travis and Tox, test coverage at 67%
  • Many bugfixes
brownie - brownie 1.0.0b6

Published by iamdefinitelyahuman over 5 years ago

  • Changes to ContractConstructor call arguments
  • Bugfixes and minor changes
brownie - brownie 1.0.0b5

Published by iamdefinitelyahuman over 5 years ago

  • Use relative paths in build json files
  • Revert calls-as-transactions when evaluating coverage
  • Significant refactor and optimizations to coverage analysis - significant speed increases!
  • changes to coverageMap format, add coverageMapTotals
  • Save coverage data to reports/ subfolder
  • Improvements to GUI

If you experience issues with a project after upgrading, delete the build/ folder within your project.

brownie - brownie 1.0.0b4

Published by iamdefinitelyahuman over 5 years ago

  • Add broadcast_reverting_tx flag
  • Use py-solc-x 0.4.0
  • Detect and attach to an already active RPC client, better verbosity on RPC exceptions
  • introduce _Singleton metaclass and refactor code to take advantage
  • add EventDict and EventItem classes for transaction event logs
  • cli.color, add _print_as_dict, _print_as_list, _dir_color attributes
  • add conversion methods in types.convert
  • remove brownie.utils package, move modules to network and project packages
  • bugfixes and minor changes
brownie - brownie 1.0.0b3

Published by iamdefinitelyahuman over 5 years ago

  • major code re-organization and refactoring
  • allow skipping contracts with _
  • modify test coverage file format
  • merge test and coverage components of cli
  • only run tests / coverage evaluation if related files have changed
  • integrate opview as brownie gui
  • many bugfixes and minor changes