Releases: ERC725Alliance/ERC725
v3.2.0
v3.1.2
This patch release introduces the important bug fixes, as well as some minor optimizations.
- bug fix 1: ⛔ The contracts
ERC725XInit
andERC725YInit
(to be used as implementation contracts behind proxies) are now initialized immediately on deployment.
In previous releases, the initialize(...)
function needed to be called immediately after deployment, creating a security risk through race conditions. These base implementation contracts are now immediately lock while being deployed, through the use of the _disableInitializer(...)
function from the OpenZeppelin contract Initializable.sol
.
This function also ensures that the base contract cannot be re-initialized, for instance when ERC725XInit
, ERC725YInit
or ERC725Init
are used through inheritance. If your contract derives from one of these three contracts, the initialize(...)
function cannot be called in the parent contract via the most derived constructor
/initializer
function.
- bug fix 2: drop support for
ErrorHandlerLib
contract library.
This contract library is now removed from the package, in favour of the verifyCallResult(...)
from the OpenZeppelin Address.sol
library.
If you were using this ErrorHandlerLib
library, we recommend migrating to the function mentioned above from OpenZeppelin.
NB: the
ErrorHandlerLib.revertWithParsedError(...)
function also contained a minor bug, related to ignoring the value returned by the function.
Bug Fixes
- ignores return value by ErrorHandlerLib.revertWithParsedError(result) (#133) (f4d6b83)
- lock base
ERC725XInit
andERC725YInit
contracts on deployment (#139) (26a5da5)