MagnetNftManager
Обзор
MagnetNftManager — управляющий контракт для продуктовых NFT MagnetNftProduct. Он реализует единый on-chain слой для:
- покупки NFT конкретного продукта за ERC20 (в том числе сразу на целевой уровень);
- крафта (создания NFT более высокого уровня) через сжигание NFT предыдущего уровня + оплату craft fee;
- хранения конфигурации цен/разрешенных платежных токенов по каждому продукту.
Технические свойства:
- upgradeable (UUPS);
- защита от реентранси (
ReentrancyGuardUpgradeable); - админские операции через
AccessControlUpgradeable.
Контекст и зависимости
- MagnetNftProduct (контракт продукта): менеджер минтит/сжигает/апгрейдит NFT и читает состояние (
ownerOf,tokenLevel,rootToken). - Diamond: менеджер проверяет, что пользователь активирован (
getUserId(user) != 0).
Роли и права
На стороне MagnetNftManager:
DEFAULT_ADMIN_ROLE— настройка продуктов/цен/diamond и апгрейды (UUPS).
Требования к MagnetNftProduct:
- у менеджера должны быть роли на контракте продукта:
MINTER_ROLEиBURNER_ROLE.- Без
MINTER_ROLEбудут падатьmintProductиupgradeTokenLevel. - Без
BURNER_ROLEбудет падатьburnв сценариях крафта.
- Без