Owlio
RU
← Блог
ИнструкцияДля новичка

Доли ERC-4626 и активы: что означает баланс хранилища

Баланс долей и оценка в базовых токенах описывают одну позицию в разных единицах. Предварительный расчёт погашения отвечает ещё на один вопрос: что можно получить?

Баланс хранилища ERC-4626 выражается в долях и не означает автоматически такое же количество базовых токенов. Определите актив хранилища, затем разделите общую конвертацию, предварительный расчёт погашения и лимит погашения для владельца. Эти числа отвечают на разные вопросы об одной позиции.

Если кошелёк показывает 100 долей, а интерфейс протокола показывает 120 базовых токенов, не начинайте с предположения, что один из балансов ошибочен. Сначала выясните, что измеряет каждое число. Это руководство помогает сверить существующую позицию только чтением данных, а не рекомендует внести средства в хранилище или погасить доли.

Определите токен доли и его базовый актив

Стандарт ERC-4626 определяет доли хранилища как токены ERC-20. Метод хранилища balanceOf(account) считает эти доли; asset() указывает контракт базового токена. Запишите оба адреса контрактов вместе с сетью и проверяемым аккаунтом.

Знакомого тикера недостаточно. Подтвердите точный развёрнутый контракт хранилища по официальной документации протокола или известной транзакции, перейдя к ним доверенным путём. Затем сравните с нужным токеном адрес базового актива, а не только название. Контракт-копия может предоставлять знакомые имена методов, но не быть нужным хранилищем.

Проверьте единицы с обеих сторон. Для исходного количества долей нужны десятичные знаки токена доли, а для исходного результата в активах нужны десятичные знаки базового токена. Они не обязаны совпадать: руководство OpenZeppelin описывает реализации с дополнительной точностью долей. Наше руководство по десятичным знакам токенов объясняет, как распознать целое число, которое ещё нужно отформатировать. Не масштабируйте повторно уже отформатированную сумму.

Выберите число, отвечающее на ваш вопрос

Используйте документированные методы чтения проверенного контракта, а не умножение на курс из другого хранилища. Справочник API OpenZeppelin разделяет методы конвертации, предварительного расчёта и лимитов.

Метод чтения Единица результата На какой вопрос отвечает
balanceOf(account) Доли Сколько долей у этого аккаунта?
convertToAssets(shares) Базовые активы Каков общий эквивалент в активах?
previewRedeem(shares) Базовые активы Какова оценка погашения этих долей?
maxRedeem(owner) Доли Сколько долей владелец может погасить сейчас?

convertToAssets описывает идеальную конвертацию без комиссий и проскальзывания реального обмена. Это не персональный расчёт вывода. previewRedeem учитывает комиссии за вывод и текущее состояние, но намеренно игнорирует лимиты погашения. Для лимитов прочитайте maxRedeem владельца. Определения методов стандарта явно закрепляют эти различия.

Поэтому положительный предварительный результат совместим с меньшим и даже нулевым лимитом. Чтение также не резервирует средства: до последующей транзакции состояние может измениться. Следуйте документированным условиям вывода конкретного хранилища, включая обязательную процедуру заявки, если она есть. Хранилищу с асинхронным расширением или другим интерфейсом нужны собственные инструкции.

Сверяйте одну позицию без двойного учёта

Рассмотрим условный снимок состояния, где все числа уже приведены к понятным человеку единицам. Аккаунту принадлежат 100 долей. Для этого количества долей хранилище возвращает 120 базовых токенов через convertToAssets и 119 базовых токенов через previewRedeem. Отдельно maxRedeem аккаунта составляет 40 долей.

Число 120 токенов является общим эквивалентом. Число 119 токенов является предварительным расчётом для всех 100 долей, а не доказательством, что все 100 можно погасить сейчас. Лимит 40 долей измеряется в долях; его нельзя сравнивать так, будто это 40 базовых токенов. Чтобы исследовать допустимое количество долей, получите для него отдельный предварительный расчёт, а не предполагайте, что расчёт для полного баланса применим без изменений.

Эти числа являются вымышленным примером подписей и границ применимости, а не актуальным предложением хранилища, тарифом комиссий или расчётом курса конкретного протокола. Для примера не опрашивали кошелёк и не выполняли транзакций.

Не складывайте 100 долей и их эквивалент 120 токенов как отдельные вложения. Это одна позиция. Если в кошельке есть базовые токены вне хранилища, запишите этот фактический баланс отдельно. При сравнении итогов в обычной валюте проверьте, какое представление уже учёл трекер, прежде чем добавлять стоимость из протокола. Более общее руководство по сверке портфеля помогает отличить отсутствующее количество от отсутствующей цены или неподдерживаемой позиции.

Запишите согласованный снимок состояния без движения средств

Используйте обозреватель или средство чтения контрактов, которому уже доверяете. Эта процедура описывает проверку на основе документации; для статьи её не тестировали на действующем хранилище. Основные источники проверены 25 октября 2026 года.

  1. Подтвердите, что это нужная позиция. Запишите сеть, аккаунт и полный адрес контракта хранилища. Проверьте, что развёрнутый контракт использует нужный вам интерфейс ERC-4626.
  2. Определите актив и единицы. Запишите asset() и десятичные масштабы долей и актива. Прочитайте баланс долей аккаунта, отделяя исходные целые числа от отформатированных количеств.
  3. Выберите подходящий метод чтения. Для учётной сверки запишите convertToAssets именно для этого количества долей. Для оценки погашения запишите previewRedeem и подпишите его как предварительный расчёт.
  4. Отдельно проверьте лимит владельца. Прочитайте maxRedeem(owner) и условия вывода протокола. Не заменяйте недоступный лимит балансом долей и не считайте положительный предварительный результат разрешением на погашение.
  5. Согласуйте и подпишите наблюдения. Предпочтителен один блок для баланса, конвертации, расчёта и лимита. Если средство чтения даёт только отдельные вызовы последнего состояния, сохраните их время и отметьте, что снимки состояния могут различаться.
  6. Сверьте одну позицию. Храните вместе количество долей, эквивалент в активах и сведения о погашении. Пометьте неудачное чтение как неизвестное, сохраните ошибку и исследуйте аккаунт, контракт, сеть или интерфейс, прежде чем делать вывод о нулевой сумме.

Для этих публичных чтений не нужны подпись, разрешение на расходование токенов, фраза восстановления или перевод. Если сайт просит что-либо из этого только для показа баланса, прекратите этот процесс. Ответ контракта помогает объяснить отображение, но не подтверждает безопасность контракта.

Конвертация не означает доходность или цену продажи

Эквивалент в активах отвечает на вопрос, как хранилище выражает количество долей в базовом токене. Он не устанавливает прибыль относительно первоначального взноса, рыночную цену продажи или гарантированное будущее погашение. Комиссии, округление, изменения хранилища и собственную цену базового актива учитывайте отдельно.

Не распространяйте эту процедуру на каждый токен, подтверждающий вложение. Например, у stETH и wstETH собственные документированные правила учёта и конвертации. Похожий баланс не доказывает поведение по ERC-4626.

Проверка закончена, когда вы можете назвать точное хранилище и актив, определить количество долей и снимок состояния и объяснить, какой экран показывает конвертацию, предварительный расчёт или лимит. Если важное чтение недоступно, оставьте эту часть непроверенной. Перемещение позиции является отдельным решением; для объяснения отображаемого баланса оно не требуется.

Частые вопросы

Одна доля ERC-4626 всегда равна одному базовому токену?

Нет. Доли и активы имеют разные единицы, а конвертация зависит от хранилища. Прочитайте документированное правило для точного контракта и снимка состояния; название токена и число десятичных знаков не доказывают курс один к одному.

Доказывает ли previewRedeem, что эту сумму можно вывести сейчас?

Нет. Метод оценивает активы, возвращаемые за заданное количество долей, и учитывает комиссии за вывод, но игнорирует лимиты погашения. Отдельно проверьте maxRedeem владельца и реальные правила вывода хранилища. До транзакции состояние может измениться.

Нужно ли складывать доли с их эквивалентом в активах?

Нет. Если обе записи описывают одну позицию, учитывайте одно вложение с количеством долей и эквивалентом в активах. Базовые токены, отдельно хранящиеся в кошельке, образуют другой баланс.