Снимите четыре значения на одном запечатанном блоке
Диагностика начинается не с суммы на карточке кошелька, а с одного согласованного снимка аккаунта: `storage.used`, `storage.capacity`, `balance` и `availableBalance`. Первые два значения показывают занятые и разрешённые байты; `balance` включает зарезервированную часть, а `availableBalance` — сумму, которую можно перемещать без нарушения резерва. Привяжите ответ к высоте и идентификатору блока со статусом `sealed`.
| Улика | Наблюдаемый вопрос | Что делать дальше |
|---|---|---|
| `storage.used <= storage.capacity` до вызова | Аккаунт помещался до предложенного изменения? | Оценить новые данные транзакции |
| `storage.used` почти равен лимиту | Есть ли запас для ресурса, ключа, контракта или capability? | Освободить конкретный объект либо увеличить резерв |
| `availableBalance` меньше суммы вывода и комиссии | Оставляет ли вывод обязательный резерв? | Уменьшить вывод или добавить FLOW |
| Ошибка исполнения про storage capacity | Проверка сработала во время исполнения? | Подтвердить откат и сопоставить с предлагаемым состоянием |
| Состояние после ошибки совпало с исходным | Изменения откатились? | Исправить только причину и снова проверить |
- Улика
- `storage.used <= storage.capacity` до вызова
- Наблюдаемый вопрос
- Аккаунт помещался до предложенного изменения?
- Что делать дальше
- Оценить новые данные транзакции
- Улика
- `storage.used` почти равен лимиту
- Наблюдаемый вопрос
- Есть ли запас для ресурса, ключа, контракта или capability?
- Что делать дальше
- Освободить конкретный объект либо увеличить резерв
- Улика
- `availableBalance` меньше суммы вывода и комиссии
- Наблюдаемый вопрос
- Оставляет ли вывод обязательный резерв?
- Что делать дальше
- Уменьшить вывод или добавить FLOW
- Улика
- Ошибка исполнения про storage capacity
- Наблюдаемый вопрос
- Проверка сработала во время исполнения?
- Что делать дальше
- Подтвердить откат и сопоставить с предлагаемым состоянием
- Улика
- Состояние после ошибки совпало с исходным
- Наблюдаемый вопрос
- Изменения откатились?
- Что делать дальше
- Исправить только причину и снова проверить
К хранилищу относятся не только ресурсы в `/storage`. Лимит расходуют также ключи аккаунта, развёрнутые контракты и объекты capability. Поэтому ошибка после создания коллекции не доказывает, что виновата именно коллекция: сопоставьте предлагаемое состояние транзакции с сохраняемыми объектами. Общая модель смарт-контракта помогает отделить постоянную запись от временного вычисления.
Параметры сети измеряют, а не переписывают из старой инструкции
Для текущего выпуска параметры прочитаны из контракта основной сети `FlowStorageFees` по адресу `0xe467b9dd11fa00df`. Снимок закреплён за запечатанным блоком 162647670, идентификатором `f9218d0cba6ad3406181bc2615309ceac5e7f2581b3809266cd66e28e60a07b0` и временем `2026-08-27T19:04:58.306Z`. Скрипт вернул `storageMegaBytesPerReservedFLOW = 100.00000000` и `minimumStorageReservation = 0.00100000`. Это не вечные константы: перед расчётом перечитайте оба поля на свежем запечатанном блоке.
Не вычисляйте доступный вывод только как `balance − 0,001`. Требуемый резерв зависит от фактически занятого объёма, а плательщик также должен выдержать комиссию. Во время проверки сеть может учитывать её максимально возможное значение. Поэтому пограничная сумма бывает отклонена, хотя экран показывает близкий остаток. Источником решения служит сетевой `availableBalance`, а не округлённая арифметика интерфейса.
След ошибки связывает отказ с конкретным предлагаемым состоянием
Разбор отклонённой транзакции
- 1Зафиксируйте идентификатор транзакции и результат
Проверьте статус исполнения и полное сообщение об ошибке. Отдельно сохраните адрес аккаунта-плательщика комиссии (`payer`), аккаунта-предлагателя (`proposer`) и аккаунтов-авторизаторов (`authorizers`). Хранилище аккаунта из ошибки не обязано принадлежать тому, кто открыл интерфейс.
- 2Снимите исходное состояние
На одном запечатанном блоке прочитайте `used`, `capacity`, `balance` и `availableBalance` аккаунта, названного ошибкой или изменяемого скриптом.
- 3Перечислите постоянные изменения
Отметьте создаваемые ресурсы, новые пути хранилища, capability, ключи и код контракта, а также вывод FLOW, уменьшающий резерв.
- 4Подтвердите откат
После неуспешной транзакции перечитайте те же пути, `used` и `balance`. Новые объекты не должны сохраниться; комиссия обрабатывается по правилам сети отдельно от полезного состояния.
- 5Выберите минимальное исправление
Удалите только точно опознанный ненужный объект безопасной транзакцией либо добавьте FLOW на нужный аккаунт. Не очищайте `/storage` вслепую.
Исправление завершено, когда граница выдерживает повторное действие
| Причина | Исправление | Доказательство результата |
|---|---|---|
| Новый объект превышает лимит | Освободить проверенный объект или добавить резерв | После исправления `used <= capacity` с запасом под действие |
| Вывод уменьшает резерв ниже требования | Уменьшить сумму или пополнить FLOW | Сумма и комиссия помещаются в свежий `availableBalance` |
| Плательщик не выдерживает проверку комиссии | Увеличить его запас или снизить обоснованную нагрузку | Проверка и запечатанное исполнение проходят на актуальных параметрах |
| Кошелёк показывает старый баланс | Перечитать состояние запечатанного блока | Высота выросла, а четыре значения согласованы |
- Причина
- Новый объект превышает лимит
- Исправление
- Освободить проверенный объект или добавить резерв
- Доказательство результата
- После исправления `used <= capacity` с запасом под действие
- Причина
- Вывод уменьшает резерв ниже требования
- Исправление
- Уменьшить сумму или пополнить FLOW
- Доказательство результата
- Сумма и комиссия помещаются в свежий `availableBalance`
- Причина
- Плательщик не выдерживает проверку комиссии
- Исправление
- Увеличить его запас или снизить обоснованную нагрузку
- Доказательство результата
- Проверка и запечатанное исполнение проходят на актуальных параметрах
- Причина
- Кошелёк показывает старый баланс
- Исправление
- Перечитать состояние запечатанного блока
- Доказательство результата
- Высота выросла, а четыре значения согласованы
После исправления сначала выполните скрипт только для чтения, затем подпишите одну транзакцию и дождитесь запечатанного результата. Повторный вызов считается успешным только вместе с ожидаемым объектом в хранилище, `used <= capacity` и новым `availableBalance`. Проверка хеша и статуса помогает не принять локальную ошибку кошелька за результат сети.
Механика Flow не совпадает с депозитом за регистрацию FT в NEAR. В NEAR запись принадлежит конкретному токен-контракту, а здесь лимит относится к аккаунту Flow и его данным. Сравнение полезно только как контраст, а не как инструкция с теми же методами.
Не подписывайте исправляющую транзакцию, пока
- used, capacity и availableBalance сняты на разных высотах блока;
- непонятно, чей аккаунт платит комиссию и чьё хранилище меняется;
- скрипт очистки не показывает точный путь и тип уничтожаемого ресурса;
- параметры лимита взяты из старой статьи, а не из FlowStorageFees;
- неуспешный результат считают частично успешным без проверки состояния после вызова;
- для диагностики просят мнемоническую фразу, приватный ключ или подпись пустой транзакции.
Если запечатанный блок после исправления расходится с публичным обозревателем, сравните идентификатор блока и источник RPC. Реорганизация и финальность меняют вес наблюдения, но не отменяют требование читать все четыре поля аккаунта из одного состояния.
Источники
Мы используем прямые ссылки и фиксируем дату проверки. Полный текст чужих материалов не перепечатывается.
- Flow Docs — Fees and account storage Flow Foundation · Проверено 28 августа 2026 г. в 03:52 GMT+5
- Flow Docs — Accounts Flow Foundation · Проверено 28 августа 2026 г. в 03:52 GMT+5
- Flow Docs — FlowFees and FlowStorageFees Flow Foundation · Проверено 28 августа 2026 г. в 03:52 GMT+5
- FlowStorageFees contract source Flow Foundation · Проверено 28 августа 2026 г. в 03:52 GMT+5
- Flow mainnet sealed block 162647670 Flow Foundation · Проверено 28 августа 2026 г. в 03:52 GMT+5
- flow-go pinned at dd885b28462c Flow Foundation · Проверено 28 августа 2026 г. в 03:52 GMT+5
