Реферальная программа

Назначение смарт-контракта golos.referral

Смарт-контракт golos.referral содержит логику реферальной программы, предусматривающей вознаграждение пользователей, пригласивших для регистрации в приложении Голос своих друзей или сторонних лиц через социальные сети (например, просматривая публикации сторонних авторов или размещая собственные посты о блокчейне). Логика реферальной программы определяет одного пользователя как реферера по отношению к другому (реферала). Смарт-контракт содержит алгоритм вычисления вознаграждения за пост, а также алгоритм завершения действия реферальной программы, в том числе завершение по инициативе пользователя-реферала через выкуп своего аккаунта.

Параметры, устанавливаемые в смарт-контракте golos.referreal

Параметры смарт-контракта устанавливаются делегатами (лидерами) приложения.

referral_param, types:[
    struct breakout_parametrs {
        asset min_breakout,
        asset max_breakout
    },
    expire_parametrs (uint64_t max_expire),
    percent_parametrs (uint32_t max_percent),
    delay_parametrs (uint32_t delay_clear_old_ref)
]

Параметры: breakout_parametrs — значение в виде структуры, содержащей поля:

  • min_breakout — минимально допустимое количество токенов, необходимое для выкупа аккаунта-реферала и, соответственно, прекращения реферальной программы;

  • max_breakout — максимально допустимое количество токенов, необходимое для выкупа аккаунта-реферала и, соответственно, прекращения реферальной программы;

expire_parametrs — максимально допустимое время действия реферальной программы; percent_parametrs — максимально допустимый процент отчисления рефереру в течение действия реферальной программы; delay_parametrs — период времени (в секундах), через который запускается действие по удалению устаревших записей из таблицы.

Операции-действия, применяемые в смарт-контракте golos.referreal

В смарт-контракте golos.referral реализованы следующие операции-действия: setparams, validateprms, addreferral, closeoldref.

Операция-действие setparams

Операция-действие setparams используется для установки (конфигурирования) параметров смарт-контракта. Операция-действие имеет вид:

void referral::setparams(std::vector<referral_params> params)

Параметр params — значение в виде структуры. Настраиваемые параметры: breakout_parametrs, expire_parametrs, percent_parametrs, delay_parametrs.

Операция-действие validateprms

Операция-действие validateprms вызывается смарт-контрактом и используется для проверки параметров на валидность, контролирует наличие в них ошибок.

void referral::validateprms(std::vector<referral_params> params)

Операция-действие addreferral

Операция-действие addreferral используется для создания аккаунта-реферала для приглашенного пользователя. В качестве реферера может быть указан как пользователь, непосредственно пригласивший другого пользователя, так и сторонний аккаунт. Реферер за созданный аккаунт-реферал получает долю в виде процентного отчисления от авторских вознаграждений за публикации реферала.

Операция-действие имеет вид:

void referral::addreferral(
    name referrer,
    name referral,
    uint32_t percent,
    uint64_t expire,
    asset breakout
)

Параметры: referrer — имя аккаунта-реферера; referral — имя аккаунта-реферала; percent — процент выплаты рефереру от дохода реферала. Параметр принимает значение от нуля до установленного делегатами максимально допустимого; expire — время (в секундах) действия реферальной программы. Значение не должно превышать максимально допустимое время, установленное делегатами; breakout — количество токенов, которое необходимо для выкупа аккаунта-реферала.

Для выполнения экшен-операции addreferral требуется авторизация смарт-контракта реферальной программы. Делегаты (лидеры) дают право создания записи о реферальной программе веб-сайту, который ответственен за привлечение пользователей.

Операция-действие closeoldref

Операция-действие closeoldref является служебной внутренней функцией и используется для освобождения устаревших записей из таблицы активных реферальных программ смарт-контракта. Удаляются данные реферальных программ, действия которых завершены. Операция-действие имеет вид:

void referral::closeoldref(uint64_t hash)

Параметр hash — служебный параметр, используемый для размещения нескольких транзакций в одном блоке.

Для выполнения операции-действия closeoldref требуется авторизация аккаунта смарт-контракта. Вызов выполняется автоматически.

Last updated