From 7f904a07ac4d5555d8c088411024fc50ff65d085 Mon Sep 17 00:00:00 2001 From: Unique-Divine Date: Sat, 26 Oct 2024 05:03:17 -0500 Subject: [PATCH] chore: changelog --- CHANGELOG.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 821b29e13..ac2dba69c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -69,6 +69,23 @@ consistent setup and dynamic gas calculations, addressing the following tickets. - [#2088](https://github.com/NibiruChain/nibiru/pull/2088) - refactor(evm): remove outdated comment and improper error message text - [#2089](https://github.com/NibiruChain/nibiru/pull/2089) - better handling of gas consumption within erc20 contract execution - [#2091](https://github.com/NibiruChain/nibiru/pull/2091) - feat(evm): add fun token creation fee validation +- [#2094](https://github.com/NibiruChain/nibiru/pull/2094) - fix(evm): Following +from the changs in #2086, this pull request implements two critical security +fixes. + 1. First, we add new `JournalChange` struct that saves a deep copy of the + state multi store before each state-modifying, Nibiru-specific precompiled + contract is called (`OnRunStart`). Additionally, we commit the `StateDB` there + as well. This guarantees that the non-EVM and EVM state will be in sync even + if there are complex, multi-step Ethereum transactions, such as in the case of + an EthereumTx that influences the `StateDB`, then calls a precompile that also + changes non-EVM state, and then EVM reverts inside of a try-catch. + 2. Second, the solution from #2086 that records NIBI (ether) transfers on the + `StateDB` during precompiled contract calls is generalized as + `NibiruBankKeeper`, which is struct extension of the `bankkeeper.BaseKeeper` + that is used throughout the Nibiru base application. The `NibiruBankKeeper` + holds a reference to the current EVM `StateDB` if there is one and records + balance changes in wei as journal changes automatically. + #### Nibiru EVM | Before Audit 1 - 2024-10-18