Как удалить ресурсы приложения перед уничтожением объекта Aptos

Удаление системной части объекта — лишь один этап закрытия. Для ресурсов прикладных модулей, опубликованных по тому же адресу, нужны собственные пути очистки.

Предусмотрите удаление при создании

Для удаляемого объекта выберите подходящий конструктор и сохраните DeleteRef под контролем модуля. Sticky-объект специально сделан неудаляемым. Пример относится к модулю типа Attachment, а поле revision можно отбросить.

let addr = object::address_from_delete_ref(&delete_ref);
let Attachment { revision: _ } = move_from<Attachment>(addr);
object::delete(delete_ref);

Проверьте все ресурсы по адресу объекта

Удалите или перенесите прикладные ресурсы через определившие их модули и только затем используйте DeleteRef. Проверьте состояние по адресу после транзакции. При оставшемся вложении другого модуля удаление ObjectCore не сможет автоматически выполнить его логику освобождения активов. Определите порядок закрытия до подключения внешних расширений.

Источники