# 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