Echidna is now using hevm, our tool, to perform an awesome combination of symbolic execution and fuzzing. In my view, this is a very cool and exciting way of using hevm as a library:
https://t.co/MgtwAIr1LI
Thanks to Gustavo Grieco for the amazing work and write-up!
A stunt contract is the one that is in the ERC1967 implementation slot, while the actual logic contract in the fallback contract might be different.
Yolc uses this technique to make the contract interactable on Etherscan, e.g. https://t.co/9JVsNalux4
The access control part of the contracts is inherently not suitable for fuzzing or invariant testing.
Yolc will introduce a type-level ACL (access control list) for the storage APIs: If applied, you will need to supply the necessary "runtime-witness" as an ACL to have write access to the sensitive storage.
Yolc is born for a different purpose:
No: Simple, Easy, Wrong.
Yes: Elegant, Coherent, Correct.
More on: addressing essential complexity.
Lesss on: creating accidental complexity.
Have you found out why it is a type error?
This is its similar solidity code:
```solidity
uint256 senderBalance = balances[from];
uint256 receiverBalance = balances[to];
(uint256 newSenderBalance, uint256 newReceiverBalance) = (senderBalance - amount, receiverBalance + amount);
balances[from] = newSenderBalance;
balances[to] = newReceiverBalance;
```
Define multi-level hash map at arbitrary storage slot:
This is similar to and compatible with Solidity's "mapping (address -> mapping (address -> uint256))".