Награды в токенах без разрешений DAO (permissionless)
В этом разделе объясняется процесс установки наград в токенах с помощью Etherscan. Предполагается, что пользователь имеет некоторый опыт работы с Etherscan или умеет выполнять прямые транзакций через альтернативный инструмент.
Эти награды называются permissionless, поскольку CurveDAO не контролирует их. Но стоит понимать что только администратор или менеджер гейджа может одобрять и добавлять эти награды за токены.
Предупреждение
Обратите внимание, что Curve использовал различные версии гейджей. Если ваши попытки добавить токены в гейдж безуспешны, это может быть из-за различий в версиях. Пожалуйста, не стесняйтесь обратиться к команде Curve.
Токены наград добавляются в гейдж следующим порядке:
- Указать токен награды и адрес дистрибьютора.
- Предоставить одбрение для токена.
- Добавить токены вознаграждений.
Укзание токена вознаграждений и адреса дистрибьютора¶
Вызвав функцию add_reward
для конкретного гейджа, можно добавить токен в список одобренных наград. Чтобы вызвать функцию, необходимо указать адрес контракта токена вознаграждений и адрес дистрибьютора. Адрес дистрибьютора — это источник, откуда токены вознаграждений будут отправлены в гейдж.
Информация
Убедитесь, что у вас есть необходимые разрешения admin/manager
для гейджа. А также, что адрес который развернул гейдж, установлен как admin/manager
. Если вы не администратор/менеджер, транзакция не удастся.
Чтобы определить менеджера, проверьте manager/admin
в разделе "Read Contract" на Etherscan. Некоторые версии контрактов гейджа также могут позволять владельцу Factory контракта выполнить этот вызов.
Развертыватель гейджа обычно является менеджером гейджа, если гейдж был развернут через Factory контракты.
Эту функцию следует вызывать только один раз для конкретного токена токена вознаграждения. Повторный вызов add_reward
с ранее установленным токеном награды не удастся. Однако адрес дистрибьютора уже добавленного токена вознаграждения можно обновить с помощью функции set_reward_distributor
. Можно установить до 8 различных токенов награды.
add_reward(_reward_token: address, _distributor: address):
Функция для добавления токенf вознаграждений и дистрибьютора для гейджа. После добавления токена вознаграждений это нельзя отменить.
Параметр | Тип | Описание |
---|---|---|
_reward_token | address | Адрес токена награды |
_distributor | address | Адрес дистрибьютора, который может добавить токен награды |
Утверждение (approving) токена вознаграждений для депозита¶
Перейдите на адрес контракта токена награды (не адрес контракта гейджа) на Etherscan и перейдите на вкладку "Write Contract". Используйте функцию approve
, установив spender
как адрес контракта гейджа и указав желаемую сумму.
approve(_spender : address, _value : uint256) -> bool:
Функция для одобрения _spender
на перевод _value
токенов.
Параметр | Тип | Описание |
---|---|---|
_spender | address | Адрес контракта гейджа |
_value | uint256 | Сумма для одобрения |
Депозит токена вознаграждений¶
При депонировании токена вознаграждения в контракт устанавливается период времени (_epoch
в секундах), начинается эпоха награды, продолжающаяся заданное количество секунд, выбранное депонентом (_epoch
секунд). Награды распределяются с постоянной скоростью в секунду всем стейкерам гейджа в течение периода эпохи. Если дополнительные награды этого токена не депонируются до конца этого периода, награды прекращаются по истечении времени.
Эпохи наград специфичны для отдельного токена. Разные токены награды могут иметь разные периоды эпохи.
Если дополнительные награды для текущего токена, распределяемого в течение эпохи, добавляются в середине эпохи, то вновь добавленные токены и все оставшиеся токены объединяются (награды = оставшиеся + новые), инициируя новую эпоху для вновь определенного периода времени.
Для равномерного распределения наград рекомендуется депонировать ближе к концу эпохи. Если пополняете в середине эпохи, убедитесь, что вы рассчитали соответствующую сумму для постоянной скорости распределения.
Больше информации здесь.
deposit_reward_token(_reward_token: address, _amount: uint256, _epoch: uint256 = WEEK)
Функция для депонирования _amount
токенов _reward_token
в гейдж на период _epoch
секунд.
При депонировании параметр _epoch
является необязательным. По умолчанию он установлен на WEEK
, что означает, что награды будут распределяться стейкерам гейджа в течение 1 недели (604800 секунд).
Info
Параметр _epoch
был добавлен в более новых версиях гейджа. В старых версиях все награды распределяются в течение 1 недели.
Параметр | Тип | Описание |
---|---|---|
_reward_token | address | Адрес токена вознаграждений |
_amount | uint256 | Сумма для распределения |
_epoch | uint256 | Длительность распределения наград, в секундах. По умолчанию — неделя (604800 с). |