Skip to content

v0.8.4

Choose a tag to compare

@rauljordan rauljordan released this 09 Apr 19:30

Full Changelog: v0.8.3...v0.8.4

Issues:

  1. Cache Invalidation: The cache was not being invalidated correctly if storage types were read before making an external call that modified those storage cells. Subsequent reads would not reflect the updated storage values, returning stale data from before the external call.
  2. Reentrancy: Occurs when using Solidity and Stylus contracts together. There is a possibility of reentrancy not being properly detected if a combination of reentrant and non-reentrant contracts are used and call into each other. To mitigate the risks of this, we have changed the behavior of external calls from stylus to always flush its cache. The msg::reentrant() hostio also may be unreliable, so relying on it for safety should be avoided.

Breaking Changes:

  • Storage types no longer implement Deref which some contracts may have been using. the .get() method of each storage type should be used instead.