Skip to content

馃悕 snekmate v0.0.2

Compare
Choose a tag to compare
@pcaversaccio pcaversaccio released this 07 Jun 08:54
· 202 commits to main since this release
a4c5612

馃 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!

image

馃挜 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)
  • Extensions
  • Tokens
  • Utility Functions

鈾伙笍 Refactoring

  • General
    • All 馃悕 snekmate contracts are now guaranteed to compile with the Vyper CLI flags userdoc and devdoc, and, if using the Ape framework, with ape compile. (#126)
  • Extensions
    • ERC4626:
      • Add implements interface ERC20Detailed and ERC4626. (#125)
      • Use of the ternary operator introduced in Vyper 0.3.8 in the constructor for the immutable variable assignment of _UNDERLYING_DECIMALS instead of an if-else statement. (#128)
  • Tokens
    • ERC20: Add implements interface ERC20Detailed. (#125)
    • ERC721: Add implements interface IERC721Metadata. (#125)
  • Utility Functions
    • Base64: Use the shift operators >> and << introduced in Vyper 0.3.8 instead of the shift instruction. (#127)
    • ECDSA: Use the shift operators >> and << introduced in Vyper 0.3.8 instead of the shift instruction. (#127)
    • SignatureChecker: Use the shift operators >> and << introduced in Vyper 0.3.8 instead of the shift instruction. (#127)
    • Math:
      • Use directly 馃悕 snekmate's log_2 function in the internal calculation of wad_cbrt. (#91)
      • Use the shift operators >> and << introduced in Vyper 0.3.8 instead of the shift instruction. (#127)
      • Use of the ternary operator introduced in Vyper 0.3.8 in the function ceil_div instead of an if-else statement. (#128)

鉂楋笍 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 version 0.3.8 is set to shanghai (i.e. the EVM includes the PUSH0 instruction). If you intend to deploy on an EVM chain with no PUSH0 support, you must compile the 馃悕 snekmate contracts with the --evm-version paris option; e.g. vyper --evm-version paris utils/Math.vy. (#122)

馃憖 Full Changelog

v0.0.1...v0.0.2