Как принять SignerCapability ресурсного аккаунта Aptos
Пакету, развёрнутому через ресурсный аккаунт, может понадобиться выполнять дальнейшие действия от его имени. До получения полномочий соответствующий SignerCapability хранится в контейнере развёртывания.
Передайте signer ресурсного аккаунта и адрес создателя
Вызовите получение в инициализаторе, рассчитанном на эту схему развёртывания. Signer принадлежит новому ресурсному аккаунту. Второй аргумент обозначает исходный аккаунт с Container, который хранит полномочия. Определите Control в своём модуле для их хранения.
let cap = aptos_framework::resource_account::retrieve_resource_account_cap(
resource_account_signer, source_address
);
move_to(resource_account_signer, Control { cap });
Проверьте полномочия до открытия рабочих операций
Получение удаляет запись и устанавливает нулевой ключ аутентификации ресурсного аккаунта. Повторный вызов с тем же источником не создаст полномочия заново. Протестируйте закрытую операцию, которая получает signer из сохранённого объекта, и сверьте адрес. Выдача signer или полномочий произвольному вызывающему передаст ему власть над аккаунтом.