EIP-4626 Compatibility Study
SummaryThere are currently 566 contracts implementing EIP-4626 Tokenized Vaults standard on Ethereum mainnet. Of them, 69 contracts, including some notable ones like Savings DAI and Staked Yearn Ether, don't emit a Transfer event on mint/deposit/burn/redeem. This could affect tokens being picked up by explorers and wallets, as well as require changes to data analytics pipelines to correctly account for all balance changes. The results can be found here (.csv).How it happenedThe EIP-4626 ...
EIP-4626 Compatibility Study
SummaryThere are currently 566 contracts implementing EIP-4626 Tokenized Vaults standard on Ethereum mainnet. Of them, 69 contracts, including some notable ones like Savings DAI and Staked Yearn Ether, don't emit a Transfer event on mint/deposit/burn/redeem. This could affect tokens being picked up by explorers and wallets, as well as require changes to data analytics pipelines to correctly account for all balance changes. The results can be found here (.csv).How it happenedThe EIP-4626 ...

100x faster EVM traces with Python
An introduction to evm-trace, a fast and correct Python library to work with Ethereum Virtual Machine traces. There are two common trace formats, which we’ll refer to as Geth-style and Parity-style traces. Geth traces provide opcode-level resolution, while the most commonly used Parity trace format provides a call tree. Our goal today would be to make opcode-resolution traces 100x faster, making them from a little-known Parity trace format. We’ll also make them compatible with Geth traces so ...

100x faster EVM traces with Python
An introduction to evm-trace, a fast and correct Python library to work with Ethereum Virtual Machine traces. There are two common trace formats, which we’ll refer to as Geth-style and Parity-style traces. Geth traces provide opcode-level resolution, while the most commonly used Parity trace format provides a call tree. Our goal today would be to make opcode-resolution traces 100x faster, making them from a little-known Parity trace format. We’ll also make them compatible with Geth traces so ...

Quest for a lost Event
The last time I wrote about Ethereum logs was in 2018. This time we go deeper and try to recover a ghost event that devs have forgotten to add to the Yearn Vaults contract.log Fees(management_fee, performance_fee, strategist_fee) There are several methods to recover values from an internal view method or even add custom views to batch read private storage. One of the more interesting ones is a “state override” option of eth_call, which allows you to replace the code and storage for the contex...

Quest for a lost Event
The last time I wrote about Ethereum logs was in 2018. This time we go deeper and try to recover a ghost event that devs have forgotten to add to the Yearn Vaults contract.log Fees(management_fee, performance_fee, strategist_fee) There are several methods to recover values from an internal view method or even add custom views to batch read private storage. One of the more interesting ones is a “state override” option of eth_call, which allows you to replace the code and storage for the contex...
🔴 How did a hacker steal OP?
Wintermute had their mainnet safe deployed from a Proxy Factory 1.1.1, which is older than the earliest official Optimism deployment of 1.3.0. Luckily for our hacker, Safe deliberately utilizes non-EIP-155-compliant deployment transactions, which can be replayed on any network which doesn’t enforce EIP-155. They did exactly that, replaying the deployment of Proxy Factory 1.1.1 on Optimism. Similar to externally owned accounts, contracts on Ethereum maintain a nonce, which is increased when th...
🔴 How did a hacker steal OP?
Wintermute had their mainnet safe deployed from a Proxy Factory 1.1.1, which is older than the earliest official Optimism deployment of 1.3.0. Luckily for our hacker, Safe deliberately utilizes non-EIP-155-compliant deployment transactions, which can be replayed on any network which doesn’t enforce EIP-155. They did exactly that, replaying the deployment of Proxy Factory 1.1.1 on Optimism. Similar to externally owned accounts, contracts on Ethereum maintain a nonce, which is increased when th...