Vyper

Latest version: v0.4.0

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

Scan your dependencies

Page 4 of 9

0.3.10rc2

Not secure
This release candidate fixes a binary packaging issue from https://github.com/vyperlang/vyper/releases/tag/v0.3.10rc1.
The fix was applied in https://github.com/vyperlang/vyper/pull/3594.

What's Changed
* fix: dependency specification for `packaging` by charles-cooper in https://github.com/vyperlang/vyper/pull/3594


**Full Changelog**: https://github.com/vyperlang/vyper/compare/v0.3.10rc1...v0.3.10rc2

0.3.10rc1

Not secure
Release candidate for https://github.com/vyperlang/vyper/releases/tag/v0.3.10, the below changes are a subset of those documented in the v0.3.10 release notes.

v0.3.10 is a performance focused release. It adds a codesize optimization mode ([3493](https://github.com/vyperlang/vyper/pull/3493)), adds new vyper-specific #pragma directives ([3493](https://github.com/vyperlang/vyper/pull/3493)), uses Cancun’s MCOPY opcode for some compiler generated code ([#3483](https://github.com/vyperlang/vyper/pull/3483)), and generates selector tables which now feature O(1) performance ([#3496](https://github.com/vyperlang/vyper/pull/3496)).

Breaking changes
- add runtime code layout to initcode ([3584](https://github.com/vyperlang/vyper/pull/3584))
- drop evm versions through istanbul ([3470](https://github.com/vyperlang/vyper/pull/3470))
- remove vyper signature from runtime ([3471](https://github.com/vyperlang/vyper/pull/3471))

Non-breaking changes and improvements
- O(1) selector tables ([3496](https://github.com/vyperlang/vyper/pull/3496))
- implement bound= in ranges ([3537](https://github.com/vyperlang/vyper/pull/3537), [#3551](https://github.com/vyperlang/vyper/pull/3551))
add optimization mode to vyper compiler ([3493](https://github.com/vyperlang/vyper/pull/3493))
- improve batch copy performance ([3483](https://github.com/vyperlang/vyper/pull/3483), [#3499](https://github.com/vyperlang/vyper/pull/3499), [#3525](https://github.com/vyperlang/vyper/pull/3525))

Notable fixes:
- fix ecrecover() behavior when signature is invalid ([GHSA-f5x6-7qgp-jhf3](https://github.com/vyperlang/vyper/security/advisories/GHSA-f5x6-7qgp-jhf3), [#3586](https://github.com/vyperlang/vyper/pull/3586))
- fix: order of evaluation for some builtins ([3583](https://github.com/vyperlang/vyper/pull/3583), [#3587](https://github.com/vyperlang/vyper/pull/3587))
- fix: pycryptodome for arm builds ([3485](https://github.com/vyperlang/vyper/pull/3485))
- let params of internal functions be mutable ([3473](https://github.com/vyperlang/vyper/pull/3473))
- typechecking of folded builtins in ([3490](https://github.com/vyperlang/vyper/pull/3490))
- update tload/tstore opcodes per latest 1153 EIP spec ([3484](https://github.com/vyperlang/vyper/pull/3484))
- fix: `raw_call` type when `max_outsize=0` is set ([3572](https://github.com/vyperlang/vyper/pull/3572))
- fix: implements check for indexed event arguments ([3570](https://github.com/vyperlang/vyper/pull/3570))

Other docs updates, chores and fixes:
- relax restrictions on internal function signatures ([3573](https://github.com/vyperlang/vyper/pull/3573))
- note on security advisory in release notes for versions 0.2.15, 0.2.16, and 0.3.0 ([3553](https://github.com/vyperlang/vyper/pull/3553))
- fix: yanked version in release notes ([3545](https://github.com/vyperlang/vyper/pull/3545))
- update release notes on yanked versions ([3547](https://github.com/vyperlang/vyper/pull/3547))
- improve error message for conflicting methods IDs ([3491](https://github.com/vyperlang/vyper/pull/3491))
- document epsilon builtin ([3552](https://github.com/vyperlang/vyper/pull/3552))
- relax version pragma parsing ([3511](https://github.com/vyperlang/vyper/pull/3511))
- fix: issue with finding installed packages in editable mode ([3510](https://github.com/vyperlang/vyper/pull/3510))
- add note on security advisory for ecrecover in docs ([3539](https://github.com/vyperlang/vyper/pull/3539))
- add asm option to cli help ([3585](https://github.com/vyperlang/vyper/pull/3585))
- add message to error map for repeat range check ([3542](https://github.com/vyperlang/vyper/pull/3542))
- fix: public constant arrays ([3536](https://github.com/vyperlang/vyper/pull/3536))

New Contributors
* 0xmahdirostami made their first contribution in https://github.com/vyperlang/vyper/pull/3558
* shmuel44 made their first contribution in https://github.com/vyperlang/vyper/pull/3566

**Full Changelog**: https://github.com/vyperlang/vyper/compare/v0.3.9...v0.3.10rc1

0.3.9

Not secure
What's Changed

Date released: 2023-05-29

This is a patch release fix for v0.3.8. bout3fiddy discovered a codesize regression for blueprint contracts in v0.3.8 which is fixed in this release. bout3fiddy also discovered a runtime performance (gas) regression for default functions in v0.3.8 which is fixed in this release.

Fixes:

- initcode codesize blowup (https://github.com/vyperlang/vyper/pull/3450)
- add back global calldatasize check for contracts with default fn (https://github.com/vyperlang/vyper/pull/3463)


**Full Changelog**: https://github.com/vyperlang/vyper/compare/v0.3.8...v0.3.9

0.3.8

Not secure
What's Changed

Non-breaking changes and improvements:
* `transient` storage keyword (https://github.com/vyperlang/vyper/pull/3373)
* ternary operators (https://github.com/vyperlang/vyper/pull/3398)
* `raw_revert()` builtin (https://github.com/vyperlang/vyper/pull/3136)
* shift operators (https://github.com/vyperlang/vyper/pull/3019)
* make `send()` gas stipend configurable (https://github.com/vyperlang/vyper/pull/3158)
* use new `push0` opcode (https://github.com/vyperlang/vyper/pull/3361)
* python 3.11 support (https://github.com/vyperlang/vyper/pull/3129)
* drop support for python 3.8 and 3.9 (https://github.com/vyperlang/vyper/pull/3325)
* build for `aarch64` (https://github.com/vyperlang/vyper/pull/2687)

Major refactoring PRs:
* refactor front-end type system (https://github.com/vyperlang/vyper/pull/2974)
* merge front-end and codegen type systems (https://github.com/vyperlang/vyper/pull/3182)
* simplify `GlobalContext` (https://github.com/vyperlang/vyper/pull/3209)
* remove `FunctionSignature` (https://github.com/vyperlang/vyper/pull/3390)

Notable fixes:
* assignment when rhs is complex type and references lhs (https://github.com/vyperlang/vyper/pull/3410)
* uninitialized immutable values (https://github.com/vyperlang/vyper/pull/3409)
* success value when mixing `max_outsize=0` and `revert_on_failure=False` (https://github.com/vyperlang/vyper/security/advisories/GHSA-w9g2-3w7p-72g9)
* block certain kinds of storage allocator overflows (https://github.com/vyperlang/vyper/security/advisories/GHSA-mgv8-gggw-mrg6)
* store-before-load when a dynarray appears on both sides of an assignment (https://github.com/vyperlang/vyper/security/advisories/GHSA-3p37-3636-q8wv)
* bounds check for loops of the form `for i in range(x, x+N)` (https://github.com/vyperlang/vyper/security/advisories/GHSA-6r8q-pfpv-7cgj)
* alignment of call-site posargs and kwargs for internal functions (https://github.com/vyperlang/vyper/security/advisories/GHSA-ph9x-4vc9-m39g)
* batch nonpayable check for default functions calldatasize < 4 in (https://github.com/vyperlang/vyper/pull/3104, https://github.com/vyperlang/vyper/pull/3408, cf. https://github.com/vyperlang/vyper/security/advisories/GHSA-vxmm-cwh2-q762)

Other docs updates, chores and fixes:
* call graph stability (https://github.com/vyperlang/vyper/pull/3370)
* fix `vyper-serve` output (https://github.com/vyperlang/vyper/pull/3338)
* add `custom:` natspec tags (https://github.com/vyperlang/vyper/pull/3403)
* add missing pc maps to `vyper_json` output (https://github.com/vyperlang/vyper/pull/3333)
* fix constructor context for internal functions (https://github.com/vyperlang/vyper/pull/3388)
* add deprecation warning for `selfdestruct` usage (https://github.com/vyperlang/vyper/pull/3372)
* add bytecode metadata option to vyper-json (https://github.com/vyperlang/vyper/pull/3117)
* fix compiler panic when a `break` is outside of a loop (https://github.com/vyperlang/vyper/pull/3177)
* fix complex arguments to builtin functions (https://github.com/vyperlang/vyper/pull/3167)
* add support for all types in ABI imports (https://github.com/vyperlang/vyper/pull/3154)
* disable uadd operator (https://github.com/vyperlang/vyper/pull/3174)
* block bitwise ops on decimals (https://github.com/vyperlang/vyper/pull/3219)
* raise `UNREACHABLE` (https://github.com/vyperlang/vyper/pull/3194)
* allow enum as mapping key (https://github.com/vyperlang/vyper/pull/3256)
* block boolean `not` operator on numeric types (https://github.com/vyperlang/vyper/pull/3231)
* enforce that loop's iterators are valid names (https://github.com/vyperlang/vyper/pull/3242)
* fix typechecker hotspot (https://github.com/vyperlang/vyper/pull/3318)
* rewrite typechecker journal to handle nested commits (https://github.com/vyperlang/vyper/pull/3375)
* fix missing pc map for empty functions (https://github.com/vyperlang/vyper/pull/3202)
* guard against iterating over empty list in for loop (https://github.com/vyperlang/vyper/pull/3197)
* skip enum members during constant folding (https://github.com/vyperlang/vyper/pull/3235)
* bitwise `not` constant folding (https://github.com/vyperlang/vyper/pull/3222)
* allow accessing members of constant address (https://github.com/vyperlang/vyper/pull/3261)
* guard against decorators in interface (https://github.com/vyperlang/vyper/pull/3266)
* fix bounds for decimals in some builtins (https://github.com/vyperlang/vyper/pull/3283)
* length of literal empty bytestrings (https://github.com/vyperlang/vyper/pull/3276)
* block `empty()` for HashMaps (https://github.com/vyperlang/vyper/pull/3303)
* fix type inference for empty lists (https://github.com/vyperlang/vyper/pull/3377)
* disallow logging from `pure`, `view` functions (https://github.com/vyperlang/vyper/pull/3424)
* improve optimizer rules for comparison operators (https://github.com/vyperlang/vyper/pull/3412)
* deploy to ghcr on push (https://github.com/vyperlang/vyper/pull/3435)
* add note on return value bounds in interfaces (https://github.com/vyperlang/vyper/pull/3205)
* index `id` param in `URI` event of `ERC1155ownable` (https://github.com/vyperlang/vyper/pull/3203)
* add missing `asset` function to `ERC4626` built-in interface (https://github.com/vyperlang/vyper/pull/3295)
* clarify `skip_contract_check=True` can result in undefined behavior (https://github.com/vyperlang/vyper/pull/3386)
* add `custom` NatSpec tag to docs (https://github.com/vyperlang/vyper/pull/3404)
* fix `uint256_addmod` doc (https://github.com/vyperlang/vyper/pull/3300)
* document optional kwargs for external calls (https://github.com/vyperlang/vyper/pull/3122)
* remove `slice()` length documentation caveats (https://github.com/vyperlang/vyper/pull/3152)
* fix docs of `blockhash` to reflect revert behaviour (https://github.com/vyperlang/vyper/pull/3168)
* improvements to compiler error messages by (https://github.com/vyperlang/vyper/pull/3121, https://github.com/vyperlang/vyper/pull/3134, https://github.com/vyperlang/vyper/pull/3312, https://github.com/vyperlang/vyper/pull/3304, https://github.com/vyperlang/vyper/pull/3240, https://github.com/vyperlang/vyper/pull/3264, https://github.com/vyperlang/vyper/pull/3343, https://github.com/vyperlang/vyper/pull/3307, https://github.com/vyperlang/vyper/pull/3313 and https://github.com/vyperlang/vyper/pull/3215)

These are really just the highlights, as many other bugfixes, docs updates and refactoring (over 150 commits!) made it into this release! Special thanks to contributions from tserg, trocher, z80dev, emc415 and benber86

New Contributors
* omahs made their first contribution in https://github.com/vyperlang/vyper/pull/3128
* ObiajuluM made their first contribution in https://github.com/vyperlang/vyper/pull/3124
* trocher made their first contribution in https://github.com/vyperlang/vyper/pull/3134
* ozmium22 made their first contribution in https://github.com/vyperlang/vyper/pull/3149
* ToonVanHove made their first contribution in https://github.com/vyperlang/vyper/pull/3168
* emc415 made their first contribution in https://github.com/vyperlang/vyper/pull/3158
* lgtm-com made their first contribution in https://github.com/vyperlang/vyper/pull/3147
* tdurieux made their first contribution in https://github.com/vyperlang/vyper/pull/3224
* victor-ego made their first contribution in https://github.com/vyperlang/vyper/pull/3263
* miohtama made their first contribution in https://github.com/vyperlang/vyper/pull/3257
* kelvinfan001 made their first contribution in https://github.com/vyperlang/vyper/pull/2687


**Full Changelog**: https://github.com/vyperlang/vyper/compare/v0.3.7...v0.3.8

0.3.7

Not secure
What's Changed

Date released: 2022-09-26

Breaking changes:

- chore: drop python 3.7 support (3071)
- fix: relax check for statically sized calldata (3090)

Non-breaking changes and improvements:

- fix: assert description in Crowdfund.finalize() (3058)
- fix: change mutability of example ERC721 interface (3076)
- chore: improve error message for non-checksummed address literal (3065)
- feat: isqrt built-in (3074) (3069)
- feat: add `block.prevrandao` as alias for `block.difficulty` (3085)
- feat: epsilon builtin (3057)
- feat: extend ecrecover signature to accept additional parameter types (3084)
- feat: allow constant and immutable variables to be declared public (3024)
- feat: optionally disable metadata in bytecode (3107)

Bugfixes:

- fix: empty nested dynamic arrays (3061)
- fix: foldable builtin default args in imports (3079) (3077)

Additional changes and improvements:

- doc: update broken links in SECURITY.md (3095)
- chore: update discord link in docs (3031)
- fix: broken links in various READMEs (3072)
- chore: fix compile warnings in examples (3033)
- feat: append lineno to the filename in error messages (3092)
- chore: migrate lark grammar (3082)
- chore: loosen and upgrade semantic version (3106)

New Contributors

- emilianobonassi made their first contribution in 3107
- unparalleled-js made their first contribution in 3106
- pcaversaccio made their first contribution in 3085
- nfwsncked made their first contribution in 3058
- z80 made their first contribution in 3057
- Benny made their first contribution in 3024
- cairo made their first contribution in 3072
- fiddy made their first contribution in 3069

Special thanks to returning contributors tserg, pandadefi, and delaaxe.

0.3.6

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

Bugfixes:
- Fix `in` expressions for list literals when list members are variables ([3035](https://github.com/vyperlang/vyper/pull/3035))

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

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

Page 4 of 9

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.