# V12 Code Review - [x] **[TWAP]** [Set commit timeout to two seconds](https://github.com/osmosis-labs/osmosis/pull/2057) - **Review notes:** - Will this affect block validator latency requirements? - What was the limit before if any? - [x] **[osmomath]** [Modified osmomath PowApprox to not allow a negative base](https://github.com/osmosis-labs/osmosis/pull/1965) - This panics when negative base occurs, should just check around where this is used - **Review notes:** - Used in the balancer invariant solver, but should only panic with negative weights which is not possible (also our solver already panics if a weight is zero) - [ ] [Adds MsgSetDenomMetadata to tokenfactory](https://github.com/osmosis-labs/osmosis/pull/2223) - [ ] [Adds admin denom to tokenfactory wasm binding](https://github.com/osmosis-labs/osmosis/pull/1645) - [x] **[TWAP]** [Twap wasm bindings](https://github.com/osmosis-labs/osmosis/pull/2212) - **Review notes:** - Quote asset and base asset naming is flipped - Ends up incidentally being correct since it passes "quoteAsset" into `GetArithmeticTwap` as the "baseAsset" (https://github.com/osmosis-labs/osmosis/pull/2212/files#diff-6912be864538f27f5f992e755452e456d09b299749ab50a754284b7f40b64d52R255-R256) - `ustar`, the *base asset*, is (I believe) incorrectly called "quoteAsset" but still correctly passed as the "baseAsset" param - We know this because the intended spot price is `0.5` in a pool with `1 uosmo` for every `2 ustar`. We need `0.5 uosmo` to buy `1 ustar`, so `uosmo` is the *quote* asset - The naming for these two should be flipped: https://github.com/osmosis-labs/osmosis/pull/2212/files#diff-dc566ebb8794cd65746336bb71e16d2f82bb8f0bd8a8afaa56fe1ba7d9a6c603R71-R72 - TWAP of the *quote* currency represents how much of it you need to buy 1 of the *base* currency - [ ] [Removed legacy sdk.Msg handlers](https://github.com/osmosis-labs/osmosis/pull/1996) - [ ] **[GAMM]** [Gamm keeper delete obsolete files](https://github.com/osmosis-labs/osmosis/pull/2160) - [ ] **[GAMM]** [Add check for CalcJoinPoolShares](https://github.com/osmosis-labs/osmosis/pull/1931) - Check if there is edge case that should be tested in QA - [ ] **[GAMM]** [Add fixed gas cost for swaps](https://github.com/osmosis-labs/osmosis/pull/2016) - Potentially set this param to 0? - [ ] **[LOCKUP]** [getToDistributedCoinsFromGauges](https://github.com/osmosis-labs/osmosis/pull/2014) - Check if this already got ported to v11 - [ ] **[LOCKUP]** [Refactor AddToExistingLock](https://github.com/osmosis-labs/osmosis/pull/1979) - [ ] **[LOCKUP]** [check coins are positive in lockup ValidateBasic](https://github.com/osmosis-labs/osmosis/pull/2180) - [ ] **[LOCKUP]** [Further validate basics for lockup](https://github.com/osmosis-labs/osmosis/pull/2205) - [ ] [FundCommunityPoolFromModule in the pool-incentives module calls FundCommunityPool in the Cosmos SDK now](https://github.com/osmosis-labs/osmosis/pull/1909) - [ ] Proto superfluid difference between v11 and main - [ ] x/epochs difference - https://github.com/osmosis-labs/osmosis/blob/main/x/epochs/keeper/abci.go#L19-L21 - Sanity check this state machine break - [ ] Double check if we have go tests based on msg / tx execution for gamm messages - [ ] Twap code review - Review safety of all external module calls & arithmetic (no panics should be possible in beginblock/endblock) - [ ] Cosmwasm stargate queries - [ ] Tests for items in v12 upgrade handler