# Mean Bug披露：掉期舍入

By [一川drive](https://paragraph.com/@yichuandrive) · 2023-01-30

---

> 今天下午1点 UTC，我们项目上披露了的一个隐错，与项目的_一些_掉期的舍入错误有关。 这个隐错导致一些用户无法从他们已经交换的头寸中提出资金，如果他们是最后一个从池中提出的。

请大家明白清楚这只是一个隐错披露，`没有资金处于风险之中`，项目继续按预期工作。 如果您是受此隐错影响的用户（_由于差异很小而无法退出，请通过我们的_[_bug回报_](https://docs.mean.finance/)_与我们联系，我们将尽快修复_）。

### The Bug

该bug位于\*\*[DCAPairSwapHandler.so](https://github.com/Mean-Finance/dca-v1/blob/57e2419c3a1ece88073968569319be187ff84f6b/contracts/DCAPair/DCAPairSwapHandler.sol)\*\*l智能合约的第129/130行。

当做市商执行掉期时，用户会收到"有效掉期"所需提供的最低金额，这些金额是通过[\_getNextSwapInfo](https://github.com/Mean-Finance/dca-v1/blob/57e2419c3a1ece88073968569319be187ff84f6b/contracts/DCAPair/DCAPairSwapHandler.sol#L96) ([\_finalNeededTokenA](https://github.com/Mean-Finance/dca-v1/blob/57e2419c3a1ece88073968569319be187ff84f6b/contracts/DCAPair/DCAPairSwapHandler.sol#L129) 与 [\_finalNeededTokenB](https://github.com/Mean-Finance/dca-v1/blob/57e2419c3a1ece88073968569319be187ff84f6b/contracts/DCAPair/DCAPairSwapHandler.sol#L130))转移的。

在设计它时，我们没有考虑到Solidity round down，因此不时（不是每个交换），由于这种舍入机制，在项目上执行的交换将以精度错误执行。

这个精度错误成为了一个问题，只要您是"最后一个"提出该对，**例如**:

*   你的仓位说有0.02194200WBTC该提出
    
*   池拥有0.02194198WBTC
    
*   由于池余额有**2e-8WBTC**（**~0.0009244222USDC**）的差异，你将无法从这对组合中提取（**由于泳池没有足够的资金来支付，提取将一直恢复**）
    

TL;DR=Solidity round down，我们应该向上执行一轮。

### Bug回报的时间表

*   早晨 5点 用户有bug回报
    
*   中午 1点 团队意识到错误回报
    
*   下午 2点 团队意识到错误 （掉期舍入）
    
*   晚上 6点45 错误找出来了-制定应变计划
    

### 下一步是什么？

我们的**智能合约是不可变的**（_不可升级_），因此我们**无法快速修复此错误**，因此我们为用户创建了一个应急计划，以确保他们可以继续依赖**V1**，直到部署新版本:

*   \*\*对于可能受此bug影响的用户，**我们将通过创建自己的头寸来监控所有对和匹配丢失的资金，因此允许每个用户提取他们的交换资金。 如果您仍然不能提出自己的资金，请通过**[错误回报](https://docs.mean.finance/)\*\*与我们沟通。
    
*   我们不会仅仅为了修复这个错误而敦促部署一个新版本。我们的计划是添加一些我们已经为V2计划好的特性，**并在接下来的4周内发布一个包含bug修复+特性的新版本**。
    

我们唯一的官方渠道是：[**Twitter**](https://twitter.com/mean_fi) ｜ [**Discord**](https://discord.gg/VXh3W9V6fp) ｜ [**dApp**](https://mean.finance/create)

[Subscribe](null)

[

Mean Bug Disclosure: Rounding on Swaps
--------------------------------------

Mean Bug Disclosure: Rounding on Swaps Today at 1 PM UTC, we've discovered a bug on our protocol related to a rounding error on \*some\* swaps of the protocol. This bug causes some users to be unable ...

https://balmy.medium.com

![](https://storage.googleapis.com/papyrus_images/a72e291326de56be24c415af2c3d4e5b3336dd335516ee750f86497f84a2a2ea.jpg)

](https://mean-finance.medium.com/mean-bug-disclosure-rounding-on-swaps-37986e270a50)

---

*Originally published on [一川drive](https://paragraph.com/@yichuandrive/mean-bug)*
