🐍 snekmate v0.0.2
🫡 Summary
Vyper shipped version 0.3.9
nine days ago, I ship 🐍 snekmate version 0.0.2
today targeting the latest Vyper version!
Talk is cheap. Show me the code.
For all the math 🤓 nerds, I added wad_ln
and wad_exp
to the standard mathematical utility functions! Check them out here. Another noteworthy change is that I have added default support for EIP-5267 for all contracts that support EIP-712, i.e. ERC20
, ERC721
, and ERC4626
.
Important: The default EVM version since Vyper version 0.3.8
is set to shanghai
(i.e. the EVM includes the PUSH0
instruction).
👇 Below you find the detailed code changes and the full CHANGELOG. On that note, have a great week and keep grinding anon!
💥 New Features
- General
- All 🐍 snekmate contracts now contain an Ethereum Natural Language Specification Format (NatSpec)
custom
field@custom:contract-name
. The underlying rationale is that the block explorers plan to use@custom:contract-name
as contract name and@title
as fallback. (#124)
- All 🐍 snekmate contracts now contain an Ethereum Natural Language Specification Format (NatSpec)
- Extensions
- Tokens
- Utility Functions
EIP712DomainSeparator
: Implement additionally the interfaceIERC5267
. (#129)Math
: Addwad_ln
andwad_exp
to the standard mathematical utility functions. (#91)
♻️ Refactoring
- General
- All 🐍 snekmate contracts are now guaranteed to compile with the Vyper CLI flags
userdoc
anddevdoc
, and, if using the Ape framework, withape compile
. (#126)
- All 🐍 snekmate contracts are now guaranteed to compile with the Vyper CLI flags
- Extensions
- Tokens
- Utility Functions
Base64
: Use the shift operators>>
and<<
introduced in Vyper0.3.8
instead of theshift
instruction. (#127)ECDSA
: Use the shift operators>>
and<<
introduced in Vyper0.3.8
instead of theshift
instruction. (#127)SignatureChecker
: Use the shift operators>>
and<<
introduced in Vyper0.3.8
instead of theshift
instruction. (#127)Math
:- Use directly 🐍 snekmate's
log_2
function in the internal calculation ofwad_cbrt
. (#91) - Use the shift operators
>>
and<<
introduced in Vyper0.3.8
instead of theshift
instruction. (#127) - Use of the ternary operator introduced in Vyper
0.3.8
in the functionceil_div
instead of anif-else
statement. (#128)
- Use directly 🐍 snekmate's
❗️ Breaking Change
- All 🐍 snekmate contracts now target the Vyper version
0.3.9
. It is strongly recommended to upgrade accordingly your local Vyper version prior to using the 🐍 snekmate contracts. Important: The default EVM version since Vyper version0.3.8
is set toshanghai
(i.e. the EVM includes thePUSH0
instruction). If you intend to deploy on an EVM chain with noPUSH0
support, you must compile the 🐍 snekmate contracts with the--evm-version paris
option; e.g.vyper --evm-version paris utils/Math.vy
. (#122)