Как оценить количество долей ERC-4626 перед внесением актива
При вводе суммы депозита пользователю нужна оценка в долях хранилища. Идеализированное преобразование может не учитывать комиссию, взимаемую при внесении.
Сравните conversion и preview на одном блоке
Пусть у условного хранилища convertToShares(1000) вернул 500 минимальных единиц долей, а previewDeposit(1000) вернул 495. Для этого состояния оценка с учётом комиссии равна 495. Вход и выход считайте в минимальных единицах соответствующего токена.
convertToShares(1000) → 500
previewDeposit(1000) → 495
Метод asset() вернёт адрес вносимого актива. Для отображения суммы используйте его точность, а для результата — точность токена долей. Эти значения могут различаться.
Проверьте лимиты независимо
Успешный предварительный расчёт не устанавливает, что получателю доступен депозит такой суммы. Отдельно проверьте maxDeposit(receiver) и разрешение на списание у плательщика. Изменение состояния хранилища до исполнения также влияет на фактическое число долей. eips.ethereum.org EIP-4626