Solidity digest / mar 2023
Tags: solidity, ethereum, security
Published: 2023-04-06 19:58:58

The March 2023 Solidity digest features updates and new releases of various Solidity-related tools, along with approved ERC proposals, and multiple articles about solidity security.


## News


- [Remix v0.31](https://medium.com/remix-ide/remix-release-v0-31-0-a-forking-good-time-64dfca5a6a08)
  - Chain forking: This feature allows users to fork Ethereum Mainnet, testnets, or any chain of their choice at any block number and play with it on the Remix VM.
  - New proxy contract upgrade checks: Remix has updated its UI to deal with upgradeable contracts using the UUPS design pattern. It saves a list of previously deployed proxy contracts and performs checks to ensure that the user is upgrading the right contract.
  - File explorer updates: Users can now right-click on a file or folder name to backup the file or folder, and there is an update to generate UML in the FE right-click menu.
  - Warning when updating a file outside of Remix: When users update a file in the shared folder connected with Remix from a tool outside of Remix, a warning will pop up.


- [Hardhat v2.13.0](https://github.com/NomicFoundation/hardhat/releases/tag/hardhat%402.13.0) - This new version of Hardhat adds two long-awaited features: ES Modules support, and better support for solc’s IR-based compilation pipeline. Besides that, this version includes several other improvements and bug fixes.


- v4.8.2 of OpenZeppelin [contracts](https://github.com/OpenZeppelin/openzeppelin-contracts/releases/tag/v4.8.2) and [contracts-upgradeable](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/releases/tag/v4.8.2)
  - bug fix for `ERC721Consecutive` that could cause a balance overflow when `_mintConsecutive` was used for batches of size 1
  - breaking changes to `ERC721`: the internal function `_beforeTokenTransfer` will no longer update balances when batchSize is greater than 1


- [truffle v5.8.0](https://github.com/trufflesuite/truffle/releases/tag/v5.8.0) - Truffle introduces the Truffle Dashboard Hardhat plugin, which allows developers to see decoded transaction information when using Truffle Dashboard with their Hardhat projects.



## ERC


- [ERC-1046: tokenURI Interoperability](https://eips.ethereum.org/EIPS/eip-1046) - Extends ERC-20 with an ERC-721-like tokenURI, and extends ERC-721 and ERC-1155 with interoperability


- [ERC-5606: Multiverse NFTs](https://eips.ethereum.org/EIPS/eip-5606) - A universal representation of multiple related NFTs as a single digital asset across various platforms


- [ERC-6147: Guard of NFT/SBT, an Extension of ERC-721](https://eips.ethereum.org/EIPS/eip-6147) - A new management role with an expiration date of NFT/SBT is defined, achieving the separation of transfer right and holding right.


- [ERC-4804: Web3 URL to EVM Call Message Translation](https://eips.ethereum.org/EIPS/eip-4804) - A translation of an HTTP-style Web3 URL to an EVM call message


- [ERC-5380: ERC-721 Entitlement Extension](https://eips.ethereum.org/EIPS/eip-5380) - Allows token owners to grant the ability for others to use specific properties of those tokens



## Libs


- [Certora/gambit](https://github.com/Certora/gambit) - A Solidity Mutation Testing Tool. See also article [Gambit: A Solidity Mutation Testing Tool for Formal Verification](https://medium.com/certora/gambit-23ef5cab02f5)


## Audits


- [EIP-4337 – Ethereum Account Abstraction Incremental Audit](https://blog.openzeppelin.com/eip-4337-ethereum-account-abstraction-incremental-audit/) - [EIP-4337](https://eips.ethereum.org/EIPS/eip-4337) is a specification to add account abstraction functionality to the Ethereum mainnet without modifying the consensus rules. Review by OpenZeppelin of the latest version revision of the Ethereum Foundation specification and reference implementation.


- [Barter DAO Security Audit Report](https://github.com/mixbytes/audits_public/tree/master/Barter%20DAO) by MixBytes


- [ScopeLift Flexible Voting Audit](https://blog.openzeppelin.com/scopelift-flexible-voting-audit/) by OpenZeppelin



## Articles


- [Blockchain Hacking Techniques of 2022 | Top 10](https://blog.openzeppelin.com/final-results-blockchain-hacking-techniques-of-2022-top-10/?utm_source=feedly&utm_medium=rss&utm_campaign=final-results-blockchain-hacking-techniques-of-2022-top-10) - OpenZeppelin, in collaboration with the community of Web3 security experts, have documented the top security research from 2022 to promote best practices and effective security measures across the industry


- [“Damn Vulnerable DeFi” Creator Teaches You How To Audit](https://patrickalphac.medium.com/damn-vulnerable-defi-creator-teaches-you-how-to-audit-e4dbb5f9365b) - We meet up with Tincho, Damn Vulnerable DeFi creator and previous Openzeppelin lead auditor, on what his exact audit process looks like end-to-end. We do a mock audit of ENS to show you how to do it.


- [Metamorphic Smart Contracts: Is EVM Code Truly Immutable?](https://mixbytes.io/blog/metamorphic-smart-contracts-is-evm-code-truly-immutable) - It is commonly believed that smart contract code on Ethereum is immutable and cannot be changed once deployed. However, this is only true if the contract was deployed using the standard procedure. This article is about techniques that allow one to create a smart contract at a specific address and then change its internal logic by modifying the bytecode that processes user data.


- [Overview of the Inflation Attack](https://mixbytes.io/blog/overview-of-the-inflation-attack) - An inflation attack is a widespread problem that targets ERC-4626 tokenized vault standard and has largely gone unnoticed until recently. This attack allows malicious actors to steal the first deposits into vulnerable pools, potentially resulting in significant losses for unsuspecting investors. 


- [Splitting a string into multiple lines in Solidity: How hard can it be?](https://blog.opencore.ch/posts/solidity-line-split/) - Discussion about splitting a string into multiple lines in Solidity without breaking multi-byte characters or emojis


- [Dexible Hack Analysis — Never Blindly Trust Smart Contracts](https://blog.solidityscan.com/dexible-hack-analysis-never-blindly-trust-smart-contracts-c2aee7943c1a) - An analysis of a hack that occurred on February 17, 2023 on the Dex Aggregator platform called Dexible, which resulted in the loss of $2 million by users who allowed the Dexible contract to exchange tokens on their behalf.


- [SwapX hack analysis — Improper Access Control](https://blog.solidityscan.com/swapx-hack-analysis-improper-access-control-8cb272cc33ff) - SwapX suffered a loss of nearly $1M due to a BSC chain attack on February 27, 2023, as a result of poor access control on the "approval" function, which allowed attackers to authorize their contract and execute trades on behalf of the victim.


- [Euler Finance Hack Analysis — Flash loan attack](https://blog.solidityscan.com/euler-finance-hack-analysis-flash-loan-attack-81bfc39a4170) - A hacker exploited a logical flaw in Euler Finance’s donate liquidity feature through Flash loans and caused the project to lose $197 million on March 13, 2023.


- [Clear storage and get incentivized by Ethereum Blockchain](https://medium.com/coinmonks/clear-storage-and-get-incentivized-by-ethereum-blockchain-b473e107ba1d)



## Talks

- [ETHDubai 2023](https://www.youtube.com/@ETHDubai/playlists)



## Upcoming events

- [ETHGlobal Tokyo](https://ethglobal.com/events/tokyo) - April 14 – 16, 2023, Tokyo, Japan



## Final words


If you have any interesting or useful links to share, please fill the [form](https://docs.google.com/forms/d/1gH6kUi6UUkxx5tu6lP2NJouau2RbkmQuoKo9S6OeV4I).

Although I'm currently working as a Lead Backend Engineer at Bumble, the content in this digest does not refer to my work or experience at Bumble.