Перейти к содержанию

Награды в токенах без разрешений DAO (permissionless)

В этом разделе объясняется процесс установки наград в токенах с помощью Etherscan. Предполагается, что пользователь имеет некоторый опыт работы с Etherscan или умеет выполнять прямые транзакций через альтернативный инструмент.

Эти награды называются permissionless, поскольку CurveDAO не контролирует их. Но стоит понимать что только администратор или менеджер гейджа может одобрять и добавлять эти награды за токены.

Предупреждение

Обратите внимание, что Curve использовал различные версии гейджей. Если ваши попытки добавить токены в гейдж безуспешны, это может быть из-за различий в версиях. Пожалуйста, не стесняйтесь обратиться к команде Curve.

Токены наград добавляются в гейдж следующим порядке:

  1. Указать токен награды и адрес дистрибьютора.
  2. Предоставить одбрение для токена.
  3. Добавить токены вознаграждений.

Укзание токена вознаграждений и адреса дистрибьютора

Вызвав функцию 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 с).