Vyper

Latest version: v0.4.0

Safety actively analyzes 682387 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 9

0.3.5

Not secure
What's Changed
Date released: 2022-08-05

Non-breaking changes and improvements:

- Add blueprint deployer output format ([3001](https://github.com/vyperlang/vyper/pull/3001))
- Allow arbitrary data to be passed to `create_from_blueprint` ([2996](https://github.com/vyperlang/vyper/pull/2996))
- Add CBOR length to bytecode for decoders ([3010](https://github.com/vyperlang/vyper/pull/3010))
- Fix compiler panic when accessing enum storage vars via `self` ([2998](https://github.com/vyperlang/vyper/pull/2998))
- Fix: allow `empty()` in constant definitions and in default argument position ([3008](https://github.com/vyperlang/vyper/pull/3008))
- Fix: disallow `self` address in pure functions ([3027](https://github.com/vyperlang/vyper/pull/3027))

New Contributors
* merc1er made their first contribution in https://github.com/vyperlang/vyper/pull/3007
* eltociear made their first contribution in https://github.com/vyperlang/vyper/pull/3015
* transmissions11 made their first contribution in https://github.com/vyperlang/vyper/pull/3013
* altugbakan made their first contribution in https://github.com/vyperlang/vyper/pull/3018
* jaglinux made their first contribution in https://github.com/vyperlang/vyper/pull/3020

**Full Changelog**: https://github.com/vyperlang/vyper/compare/v0.3.4...v0.3.5

0.3.4

Not secure
What's Changed

Non-breaking changes and improvements:

- Add enum types ([2874](https://github.com/vyperlang/vyper/pull/2874), [#2915](https://github.com/vyperlang/vyper/pull/2915), [#2925](https://github.com/vyperlang/vyper/pull/2925), [#2977](https://github.com/vyperlang/vyper/pull/2977))
- Add `_abi_decode` builtin ([2882](https://github.com/vyperlang/vyper/pull/2882))
- Add `create_from_blueprint` and `create_copy_of` builtins ([2895](https://github.com/vyperlang/vyper/pull/2895))
- Add `default_return_value` kwarg for calls ([2839](https://github.com/vyperlang/vyper/pull/2839))
- Add `min_value` and `max_value` builtins for numeric types ([2935](https://github.com/vyperlang/vyper/pull/2935))
- Add `uint2str` builtin ([2879](https://github.com/vyperlang/vyper/pull/2879))
- Add vyper signature to bytecode ([2860](https://github.com/vyperlang/vyper/pull/2860))

Other fixes and improvements:

- Call internal functions from constructor ([2496](https://github.com/vyperlang/vyper/pull/2496))
- Arithmetic for new int types ([2843](https://github.com/vyperlang/vyper/pull/2843))
- Allow `msg.data` in `raw_call` without `slice` ([2902](https://github.com/vyperlang/vyper/pull/2902))
- Per-method calldatasize checks ([2911](https://github.com/vyperlang/vyper/pull/2911))
- Type inference and annotation of arguments for builtin functions ([2817](https://github.com/vyperlang/vyper/pull/2817))
- Allow varargs for `print` ([2833](https://github.com/vyperlang/vyper/pull/2833))
- Add `error_map` output format for tooling consumption ([2939](https://github.com/vyperlang/vyper/pull/2939))
- Multiple evaluation of contract address in call ([GHSA-4v9q-cgpw-cf38](https://github.com/vyperlang/vyper/security/advisories/GHSA-4v9q-cgpw-cf38))
- Improve ast output ([2824](https://github.com/vyperlang/vyper/pull/2824))
- Allow `nonreentrant` on view functions ([2921](https://github.com/vyperlang/vyper/pull/2921))
- Add `shift()` support for signed integers ([2964](https://github.com/vyperlang/vyper/pull/2964))
- Enable dynarrays of strings ([2922](https://github.com/vyperlang/vyper/pull/2922))
- Fix off-by-one bounds check in certain safepow cases ([2983](https://github.com/vyperlang/vyper/pull/2983))
- Optimizer improvements ([2647](https://github.com/vyperlang/vyper/pull/2647), [#2868](https://github.com/vyperlang/vyper/pull/2868), [#2914](https://github.com/vyperlang/vyper/pull/2914), [#2843](https://github.com/vyperlang/vyper/pull/2843), [#2944](https://github.com/vyperlang/vyper/pull/2944))
- Reverse order in which exceptions are reported ([2838](https://github.com/vyperlang/vyper/pull/2838))
- Fix compile-time blowup for large contracts ([2981](https://github.com/vyperlang/vyper/pull/2981))
- Rename `vyper-ir` binary to `fang` ([2936](https://github.com/vyperlang/vyper/pull/2936))

Many other small bugfixes, optimizations and refactoring also made it into this release! Special thanks to tserg and pandadefi for contributing several important bugfixes, refactoring and features to this release!

New Contributors
* code-review-doctor made their first contribution in https://github.com/vyperlang/vyper/pull/2826
* big-tech-sux made their first contribution in https://github.com/vyperlang/vyper/pull/2837
* Doc-Pixel made their first contribution in https://github.com/vyperlang/vyper/pull/2807
* 0xMaka made their first contribution in https://github.com/vyperlang/vyper/pull/2861
* McCoady made their first contribution in https://github.com/vyperlang/vyper/pull/2884
* pandadefi made their first contribution in https://github.com/vyperlang/vyper/pull/2874
* diogoperillo made their first contribution in https://github.com/vyperlang/vyper/pull/2906
* adam429 made their first contribution in https://github.com/vyperlang/vyper/pull/2946
* challet made their first contribution in https://github.com/vyperlang/vyper/pull/2978
* r4VP4 made their first contribution in https://github.com/vyperlang/vyper/pull/2980
* krakxn made their first contribution in https://github.com/vyperlang/vyper/pull/2990

**Full Changelog**: https://github.com/vyperlang/vyper/compare/v0.3.3...v0.3.4

0.3.3

Not secure
What's Changed
This is a bugfix release. It patches an off-by-one error in the storage allocation mechanism for dynamic arrays reported by haltman-at in [2820](https://github.com/vyperlang/vyper/issues/2820)

Other fixes and improvements:
- Add a print built-in which allows printing debugging messages in hardhat. ([2818](https://github.com/vyperlang/vyper/pull/2818))
- Fix various error messages ([2798](https://github.com/vyperlang/vyper/pull/2798), [#2805](https://github.com/vyperlang/vyper/pull/2805))

New Contributors
* ngmisl made their first contribution in https://github.com/vyperlang/vyper/pull/2815

**Full Changelog**: https://github.com/vyperlang/vyper/compare/v0.3.2...v0.3.3

0.3.2

Not secure
Breaking changes:

* Increase the bounds of the decimal type ([2730](https://github.com/vyperlang/vyper/pull/2730))
* Generalize and simplify the semantics of the convert builtin ([2694](https://github.com/vyperlang/vyper/pull/2694))
* Restrict hex and bytes literals ([2736](https://github.com/vyperlang/vyper/pull/2736), [#2872](https://github.com/vyperlang/vyper/pull/2782))

Non-breaking changes and improvements:

* Implement dynamic arrays ([2556](https://github.com/vyperlang/vyper/pull/2556), [#2606](https://github.com/vyperlang/vyper/pull/2606), [#2615](https://github.com/vyperlang/vyper/pull/2615))
* Support all ABIv2 integer and bytes types ([2705](https://github.com/vyperlang/vyper/pull/2705))
* Add storage layout override mechanism ([2593](https://github.com/vyperlang/vyper/pull/2593))
* Support `<address>.code` attribute ([2583](https://github.com/vyperlang/vyper/pull/2583))
* Add `tx.gasprice` builtin ([2624](https://github.com/vyperlang/vyper/pull/2624))
* Allow structs as constant variables ([2617](https://github.com/vyperlang/vyper/pull/2617))
* Implement `skip_contract_check` kwarg ([2551](https://github.com/vyperlang/vyper/pull/2551))
* Support EIP-2678 ethPM manifest files ([2628](https://github.com/vyperlang/vyper/pull/2628))
* Add `metadata` output format ([2597](https://github.com/vyperlang/vyper/pull/2597))
* Allow `msg.*` variables in internal functions ([2632](https://github.com/vyperlang/vyper/pull/2632))
* Add `unsafe_` arithmetic builtins ([2629](https://github.com/vyperlang/vyper/pull/2629))
* Add subroutines to Vyper IR ([2598](https://github.com/vyperlang/vyper/pull/2598))
* Add `select` opcode to Vyper IR ([2690](https://github.com/vyperlang/vyper/pull/2690))
* Allow lists of any type as loop variables ([2616](https://github.com/vyperlang/vyper/pull/2616))
* Improve suggestions in error messages ([2806](https://github.com/vyperlang/vyper/pull/2806))

Notable fixes:

* Clamping of returndata from external calls in complex expressions ([GHSA-4mrx-6fxm-8jpg](https://github.com/vyperlang/vyper/security/advisories/GHSA-4mrx-6fxm-8jpg), [GHSA-j2x6-9323-fp7h](https://github.com/vyperlang/vyper/security/advisories/GHSA-j2x6-9323-fp7h))
* Bytestring equality for (`N<=32`) ([GHSA-7vrm-3jc8-5wwm](https://github.com/vyperlang/vyper/security/advisories/GHSA-7vrm-3jc8-5wwm))
* Typechecking of constant variables ([2580](https://github.com/vyperlang/vyper/pull/2580), [#2603](https://github.com/vyperlang/vyper/pull/2603))
* Referencing immutables in constructor ([2627](https://github.com/vyperlang/vyper/pull/2627))
* Arrays of interfaces in for loops ([2699](https://github.com/vyperlang/vyper/pull/2699))

Lots of optimizations, refactoring and other fixes made it into this release! For the full list, please see the [changelog](https://github.com/vyperlang/vyper/compare/v0.3.1...v0.3.2).

Special thanks to returning contributors tserg, skellet0r and fubuloubu!

New Contributors
* hi-ogawa made their first contribution in https://github.com/vyperlang/vyper/pull/2577
* abdullathedruid made their first contribution in https://github.com/vyperlang/vyper/pull/2593
* Sud0u53r made their first contribution in https://github.com/vyperlang/vyper/pull/2604
* davidhq made their first contribution in https://github.com/vyperlang/vyper/pull/2679
* onlymaresia made their first contribution in https://github.com/vyperlang/vyper/pull/2712
* hitsuzen-eth made their first contribution in https://github.com/vyperlang/vyper/pull/2729

**Full Changelog**: https://github.com/vyperlang/vyper/compare/v0.3.1...v0.3.2

0.3.1

Not secure
Breaking changes:
- Disallow changes to decimal precision when used as a library (2479)

Non-breaking changes and improvements:
- Add immutable variables (2466)
- Add uint8 type (2477)
- Add gaslimit and basefee env variables (2495)
- Enable checkable raw_call (2482)
- Propagate revert data when external call fails (2531)
- Improve LLL annotations (2486)
- Optimize short-circuiting boolean operations (2467, 2493)
- Optimize identity precompile usage (2488)
- Remove loaded limits for int128 and address (2506)
- Add machine readable ir_json format (2510)
- Optimize raw_call for the common case when the input is in memory (2481)
- Remove experimental OVM transpiler (2532)
- Add CLI flag to disable optimizer (2522)
- Add docs for LLL syntax and semantics (2494)

Fixes:

- Allow non-constant revert reason strings (2509)
- Allow slices of complex expressions (2500)
- Remove seq_unchecked from LLL codegen (2485)
- Fix external calls with default parameters (2526)
- Enable lists of structs as function arguments (2515)
- Fix .balance on constant addresses (2533)
- Allow variable indexing into constant/literal arrays (2534)
- Fix allocation of unused storage slots (2439, 2514)

Special thanks to skellet0r for some major features in this release!

0.3.0

Not secure
:warning: A critical security vulnerability has been discovered in this version and we strongly recommend using version [0.3.1](https://github.com/vyperlang/vyper/releases/tag/v0.3.1) or higher. For more information, please see the Security Advisory [GHSA-5824-cm3x-3c38](https://github.com/vyperlang/vyper/security/advisories/GHSA-5824-cm3x-3c38). :warning:

Breaking changes:

- Change ABI encoding of single-struct return values to be compatible with Solidity (2457)
- Drop Python 3.6 support (2462)

Non-breaking changes and improvements:

- Rewrite internal calling convention (2447)
- Allow any ABI-encodable type as function arguments and return types (2154, 2190)
- Add support for deterministic deployment of minimal proxies using CREATE2 (2460)
- Optimize code for certain copies (2468)
- Add -o CLI flag to redirect output to a file (2452)
- Other docs updates (2450)

Fixes:

- _abi_encode builtin evaluates arguments multiple times (2459)
- ABI length is too short for nested tuples (2458)
- Returndata is not clamped for certain numeric types (2454)
- `__default__` functions do not respect nonreentrancy keys (2455)
- Clamps for bytestrings in initcode are broken (2456)
- Missing clamps for decimal args in external functions (GHSA-c7pr-343r-5c46)
- Memory corruption when returning a literal struct with a private function call inside of it (GHSA-xv8x-pr4h-73jv)

Special thanks to contributions from skellet0r and benjyz for this release!

Page 5 of 9

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.