Структура таблиц, используемых смарт-контрактами приложения Голос

Коллекции контракта golos.charge

balances

Коллекция BALANCES содержит документы с данными о состоянии батареек, выделенных пользователям. Пример документа:

{
    "_id" : ObjectId("5cb5783b710a09490e7e45bd"),
    "charge_symbol" : NumberDecimal("91600047785729"),
    "token_code" : "GOLOS",
    "charge_id" : NumberDecimal("1"),
    "last_update" : NumberDecimal("1577837382000000"),
    "value" : NumberLong(7982),
    "_SERVICE_" : { ... }
}

Параметры

  • charge_symbol — символ токена батарейки.

  • token_code — код токена, имеющего привязку к батарейке charge_id.

  • charge_id — идентификатор батарейки.

  • last_update — время последнего обращения к батарейке.

  • value — значение заряда батарейки.

restorers

Коллекция RESTORERS содержит документы с описанием функций (математических выражений), по которым происходит восстановление ресурсов батареек. Пример документа:

{
    "_id" : ObjectId("5cb5783b710a09490e7e450c"),
    "charge_symbol" : NumberDecimal("91600047785729"),
    "token_code" : "GOLOS",
    "charge_id" : NumberDecimal("1"),
    "func" : {
        "varssize" : NumberDecimal("3"),
        "operators" : [
            NumberDecimal("0"),
            NumberDecimal("0"),
            NumberDecimal("4"),
            NumberDecimal("3")
        ],
        "values" : [
            {
                "kind" : NumberDecimal("1"),
                "idx" : NumberDecimal("1")
            },
            {
                "kind" : NumberDecimal("0"),
                "idx" : NumberDecimal("1")
            }
        ],
        "nums" : [
            NumberLong(2048000000),
            NumberLong(614400)
        ],
        "consts" : [ ]
    },
    "max_prev" : NumberLong("922337203685477"),
    "max_vesting" : NumberLong("922337203685477"),
    "max_elapsed" : NumberLong("922337203685477"),
    "_SERVICE_" : { ... }
}

Параметры

  • charge_symbol — символ токена батарейки.

  • token_code — код токена, имеющего привязку к батарейке charge_id.

  • charge_id — идентификатор батарейки.

  • (object) func — функция, задающее алгоритм восстановления ресурса батарейки:

    • varssize — математическое выражение;

    • (array) operators — массив операторов, определяющий порядок выполнения операций;

    • (array) values — массив, применяемых значений переменных и констант к операциям; Значения выбираются по индексам из массивов nums и consts;

    • (array) nums — массив переменных, используемых в операциях;

    • (array) consts — массив констант, используемых в операциях.

  • max_prev — максимально допустимое значение предыдущего ресурса батарейки.

  • max_vesting — максимально возможное значение вестинга, которое может быть израсходовано функцией в качестве аргумента в процессе восстановления ресурса батарейки.

  • max_elapsed — максимально допустимый период времени с момента предыдущего обращения к батарейке.

Коллекции контракта golos.ctrl

ctrlparams

Коллекция CTRLPARAMS содержит документы со значениями параметров, устанавливаемых вызовом операции setparams(). При каждом вызове setparams() в базе данных появляется запись — новый документ с установленными значениями параметров. Пример документа:

"_id" : ObjectId(" ... "),
"id" : NumberDecimal("5075304557665714176"),
"token" : {
         "code" : "GOLOS"
},
"multisig" : {
         "name" : "gls.issuer"
},
"witnesses" : {
         "max" : NumberDecimal("5")
 },
"msig_perms" : {
         "super_majority" : NumberDecimal("0"),
         "majority" : NumberDecimal("0"),
         "minority" : NumberDecimal("0")
},
"witness_votes" : {
         "max" : NumberDecimal("30")
},
"update_auth_period" : {
         "period" : NumberDecimal("300")
},
"_SERVICE_" : { ... }

Параметры

  • id — идентификатор документа, созданный контрактом golos.ctrl.

  • (object) token — символ токена, состоящий из набора прописных букв.

  • (object) multisig — имя аккаунта контракта golos.ctrl.

  • (object) witnesses — максимально допустимое количество делегатов, которое может принимать решение (подписывать транзакции) от имени сообщества.

  • (object) msig_perms — данные о количествах подписей (из верхней части списка делегатов), необходимых для получения разрешения на выполнение действий от имени делегатов приложения:

    • super_majority — количество подписей, необходимых для получения высокого уровня разрешения;

    • majority — количество подписей, необходимых для получения среднего уровня разрешения;

    • minority — количество подписей, необходимых для получения низкого уровня разрешения.

  • (object) witness_votes — максимально допустимое количество делегатов, за которое может проголосовать пользователь приложения.

  • (object) update_auth_period — период обновления авторизации для аккаунта(в секундах). Повторное обновление авторизации для аккаунта не выполняется, если с момента последнего обновления не прошло указанное количество секунд.

msigauths

Коллекция MSIGAUTHS содержит документы с перечнем делегатов, имеющих право на авторизацию от имени аккаунта контракта golos.ctrl. Пример документа:

"_id" : ObjectId(" ... "),
"id" : NumberDecimal("10816735270133563392"),
"witnesses" : [
         "cip.5ecjnhnw",
         "h4iirxxeeplq",
         "p4qg2hlvzcrl",
         "td.a1xeyhy42",
         "w5ps13o.4.vl"
],
"last_update" : "2019-04-10T15:16:48.000",
"_SERVICE_" : { ... }

Параметры

  • id — идентификатор документа, созданный контрактом golos.ctrl.

  • (array) witnesses — Список делегатов, имеющих право на авторизацию от имени аккаунта контракта golos.ctrl. Каждый элемент массива имеет тип string — имя аккаунта делегата.

  • last_update — дата и время последнего обновления списка делегатов.

witness

Коллекция WITNESS содержит документы (таблицы) с данными о делегате приложения. Для каждого делегата создается отдельная таблица следующего вида:

"_id" : ObjectId(" ... "),
"name" : "garpblcluwml",
"url" : "",
"active" : true,
"total_weight" : NumberDecimal("156823873341170"),
"_SERVICE_" : { ... }

Параметры

  • name — имя аккаунта делегата.

  • url — URL-адрес веб-сайта, на котором размещена информация о делегате.

  • active — активность делегата (true - активный, false - неактивный).

  • total_weight — вес голоса делегата.

witnessvote

Коллекция WITNESSVOTE содержит документы (таблицы) с перечнем кандидатов в делегаты, за которых голосует пользователь. Для каждого голосующего пользователя создается отдельная таблица следующего вида:

"_id" : ObjectId(" ... "),
"voter" : "24amgkx3owhf",
"witnesses" : [
         "uaamgu4wuv5p",
         "rik2b..fgmst",
         "c2z.zgesp44s",
              . . .
         "kao43flj.4ap"
],
"_SERVICE_" : { ... }

Параметры

  • voter — имя аккаунта, голосующего за кандидатов в делегаты.

  • (array) witnesses — перечень кандидатов в делегаты, за которых голосует voter. Каждый элемент массива имеет тип string — имя аккаунта. Количество элементов не должно превышать значение параметра witness_votes из таблицы коллекции ctrlparams.

Коллекции контракта golos.publication

limit

Коллекция LIMIT содержит документы (таблицы) с описанием пользовательских действий, на которые установлены ограничения. В таблице указывается название действия (например, голосование или публикация поста), а также параметры, ограничивающие это действие. Таблица в БД создается вызовом операции setlimit(). Пример документа:

  "_id" : ObjectId(" ... "),
       "act" : NumberDecimal("0"),
       "charge_id" : NumberDecimal("0"),
       "price" : NumberLong(-1),
       "cutoff" : NumberLong(0),
       "vesting_price" : NumberLong(0),
       "min_vesting" : NumberLong(0),
       "_SERVICE_" : { ... }

Параметры

  • act — название действия.

  • charge_id — идентификатор батарейки, ресурсами которой ограничивается действие act.

  • price — цена (в условных единицах) расходуемого ресурса батарейки с идентификатором charge_id за совершаемое действие act.

  • cutoff — пороговое значение, ограничивающее ресурс батарейки снизу, при достижении которого действие act блокируется.

  • vesting_price — значении вестинга, которое необходимо выплатить пользователю за выполнение действия act, в случае, если ресурс батарейки исчерпан.

  • min_vesting — минимальное значение вестинга, которое необходимо иметь пользователю на его балансе для выполнения действия act.

message

Коллекция MESSAGE содержит документы с данными о созданных сообщениях в виде ответов на ранее полученные родительские сообщения или посты. Пример документа:

{
    "_id" : ObjectId("5cb6c9252abe5100014c5d18"),
    "id" : NumberDecimal("4"),
    "permlink" : "re-hadesfightswithganymedeagainstselene-1555482917925",
    "ref_block_num" : NumberDecimal("11562"),
    "date" : NumberDecimal("1555482918000000"),
    "parentacc" : "d5gqchmbgrdj",
    "parent_id" : NumberDecimal("3"),
    "tokenprop" : NumberLong(0),
    "beneficiaries" : [{"account":"somebody","weight":5000},{"account":"one.percent","weight":100}],
    "rewardweight" : NumberLong("4611686018427387904"),
    "state" : {
        "netshares" : NumberLong("854259561865216"),
        "voteshares" : NumberLong("854259561865216"),
        "sumcuratorsw" : NumberLong("457078773461799504")
    },
    "childcount" : NumberDecimal("0"),
    "level" : NumberDecimal("1"),
    "curators_prcnt" : NumberLong("415051741658464911"),
    "_SERVICE_" : { ... }
}

Параметры

  • id — идентификатор документа, созданный контрактом golos.publication.

  • permlink — относительный адрес сообщения, представленный в виде строки.

  • ref_block_num — номер блока, содержащего транзакцию с отправкой настоящего сообщения.

  • parentacc — имя аккаунта-автора родительского сообщения, на которое сформировано настоящее сообщение. В случае нулевого значения parentacc настоящее сообщение является постом.

  • parent_id — идентификатор родительского сообщения.

  • tokenprop — размер вознаграждения (количество токенов).

  • (array) beneficiaries — массив, содержащий имена бенефициаров с полагающими им выплатами в виде процентов от общего вознаграждения бенефициарам.

  • rewardweight — вес поста на момент его закрытия с учетом размера вознаграждения за него.

    (object) state:

    • netshares — числовое значение всех голосов. Определяется как произведение количества всех голосов на общее количество вестинга всех голосующих.

    • voteshares — числовое значение всех позитивных голосов. Определяется как произведение количества всех позитивных голосов на количество вестинга всех участников, проголосовавших «за».

    • sumcuratorsw — суммарный вес голосов всех кураторов, используемый при определении размера их вознаграждения. Вознаграждение куратора определяется как произведение общей суммы вознаграждения кураторам на вес голоса данного куратора, деленное на sumcuratorsw.

  • childcount — количество дочерних сообщений.

  • level — глубина вложенности дочернего сообщения относительно родительского.

  • curators_prcnt — процент (доля) выплаты кураторам от общей суммы вознаграждения.

pstngparams

Коллекция PSTNGPARAMS содержит документы со значениями параметров, устанавливаемых вызовом операции setparams(). После каждого вызова setparams() в базе данных появляется запись — новый документ с установленными значениями параметров. Пример документа:

     "_id" : ObjectId(" ... "),
       "id" : NumberDecimal("12552436324427411456"),
       "max_vote_changes" : {
               "value" : NumberDecimal("5")
       },
       "cashout_window" : {
               "window" : NumberDecimal("120"),
               "upvote_lockout" : NumberDecimal("15")
       },
       "max_beneficiaries" : {
               "value" : NumberDecimal("64")
       },
       "max_comment_depth" : {
               "value" : NumberDecimal("127")
       },
       "social_acc" : {
               "value" : "gls.social"
       },
       "referral_acc" : {
               "value" : ""
       },
       "curators_prcnt" : {
               "min_curators_prcnt" : NumberDecimal("0"),
               "max_curators_prcnt" : NumberDecimal("9000")
       },
       "_SERVICE_" : { ... }

Параметры

  • (string) id — идентификатор документа, созданный контрактом golos.publication.

  • (object) max_vote_changes — максимально возможное количество переголосований пользователя за пост.

  • (object) cashout_window — данные об окне выплат за пост:

    • window — интервал времени (в секундах), по истечении которого осуществляется выплата вознаграждения за пост;

    • upvote_lockout — интервал времени, по истечении которого прекращаются приниматься голоса в виде «upvote» за пост.

  • (object) max_beneficiaries — максимально возможное количество бенефициаров.

  • (object) max_comment_depth — максимально возможное количество уровней вложенности дочерних комментариев относительно родительского.

  • (object) social_acc — имя аккаунта контракта golos.social.

  • (object) referral_acc — имя аккаунта контракта golos.referral.

  • (object) curators_prcnt — выделяемая доля кураторам от вознаграждения:

    • min_curators_prcnt — минимально возможная доля, выделяемая кураторам от вознаграждения;

    • max_curators_prcnt — максимально возможная доля, выделяемая кураторам от вознаграждения.

rewardpools

Коллекция REWADPOOLS содержит документы (таблицы) с данными о правилах распределения вознаграждения между пользователями за публикации постов и курирование. В таблицах также содержатся данные о незакрытых постах и об оставшихся вознаграждениях пуле. Таблица в БД создается после каждого изменения правил вознаграждения авторов постов и кураторов с использованием операции setrules(). Пример документа:

"_id" : ObjectId(" ... "),
    "created" : NumberDecimal("1554995760000000"),
    "rules" : {
            "mainfunc" : {
                "code" : {
                        "varssize" : NumberDecimal("1"),
                        "operators" : [
                            NumberDecimal("0")
                        ],
                        "values" : [
                            {
                            "kind" : NumberDecimal("1"),
                             "idx" : NumberDecimal("0")
                            }
                        ],
                        "nums" : [ ],
                        "consts" : [ ]
                },
                "maxarg" : NumberLong("9223372036854771712")
            },
            "curationfunc" : {
                "code" : {
                        "varssize" : NumberDecimal("1"),
                        "operators" : [
                            NumberDecimal("0"),
                            NumberDecimal("26"),
                            NumberDecimal("4"),
                            NumberDecimal("4")
                        ],
                        "values" : [
                            {
                            "kind" : NumberDecimal("0"),
                            "idx" : NumberDecimal("0")
                            },
                            {
                            "kind" : NumberDecimal("0"),
                            "idx" : NumberDecimal("3")
                            }
                        ],
                        "nums" : [
                            NumberLong("9223372036854771712"),
                            NumberLong("16384000000000000"),
                            NumberLong(409),
                            NumberLong(4096)
                        ],
                        "consts" : [ ]
                },
                "maxarg" : NumberLong("9223372036854771712")
            },
            "timepenalty" : {
                "code" : {
                        "varssize" : NumberDecimal("1"),
                        "operators" : [
                            NumberDecimal("0"),
                            NumberDecimal("0"),
                            NumberDecimal("4")
                        ],
                        "values" : [
                            {
                            "kind" : NumberDecimal("1"),
                            "idx" : NumberDecimal("0")
                            },
                            {
                            "kind" : NumberDecimal("0"),
                            "idx" : NumberDecimal("0")
                            }
                        ],
                        "nums" : [
                            NumberLong(7372800)
                        ],
                        "consts" : [ ]
                },
                "maxarg" : NumberLong(7372800)
            },
            "maxtokenprop" : NumberLong("2305843009213693952")
    },
    "state" : {
            "msgs" : NumberDecimal("0"),
            "funds" : {
                "amount" : NumberLong(249427023),
                "decs" : NumberDecimal("3"),
                "sym" : "GOLOS"
            },
            "rshares" : {
                "binary" : BinData(0,"AQAAAAAAAAAAAAAAAAAAAAA="),
                "string" : "0"
            },
            "rsharesfn" : {
                "binary" : BinData(0,"AQAAAAAAAAAAAAAAAAAAAAA="),
                "string" : "0"
            }
    },
    "_SERVICE_" : { ... }

Параметры

  • created — время создания пула вызовом операции setrules(). С момента публикации поста и окончания голосования правила распределения вознаграждения могут быть изменены. Параметр позволяет определить, к какому пулу относится пост.

  • (object) rules — описание правила по распределению вознаграждения в рамках приложения:

    • (object) mainfunc — функция в виде математического выражения, реализующая алгоритм распределения вознаграждения автора и кураторов поста:

      • (object) code — сгенерированный псевдокод функции mainfunc, содержащий операции и последовательность их выполнения:

        • varssize — математическое выражение;

        • operators — массив операторов, определяющий порядок выполнения операций;

        • values — массив, применяемых значений переменных и констант к операциям. Значения выбираются по индексам из массивов nums и consts;

        • nums — массив переменных, используемых в операциях;

        • consts — массив констант, используемых в операциях;

      • maxarg — максимально возможное суммарное вознаграждение.

    • (object) curationfunc — функция в виде математического выражения, реализующая алгоритм распределения вознаграждения для каждого из кураторов:

      • (object) code — сгенерированный псевдокод функции curationfunc, содержащий операции и последовательность их выполнения (аналогично с mainfunc);

      • maxarg — максимально возможное вознаграждение.

    • (object) timepenalty — правила, установленные для штрафного окна с учетом его длительности, времени голосования и веса голосов.

    • (integer) maxtokenprop — максимальная доля от вознаграждения (в токенах).

  • (object) state — данные о состоянии пула вознаграждений и находящихся в пуле незакрытых постов. Данные используются в расчетах вознаграждений за посты, в том числе:

    • msgs — сообщения о находящихся в пуле незакрытых постах;

    • (asset) funds — количество токенов, находящихся в пуле;

    • (object) rshares — аргумент функции для расчета вознаграждений (с учетом веса голоса аккаунта и его количества вестинга);

    • (object) rsharesfn — функция для расчета вознаграждений за пост.

vote

Коллекция VOTE содержит таблицы с данными о голосовании за публикацию. Пример таблицы:

{
    "_id" : ObjectId("5cb58d1e2abe510001446e02"),
    "id" : NumberDecimal("0"),
    "message_id" : NumberDecimal("5"),
    "voter" : "tst4dathqbji",
    "weight" : NumberLong(0),
    "time" : NumberDecimal("1555402017000000"),
    "count" : NumberLong(2),
    "delegators" : [ ],
    "curatorsw" : NumberLong(0),
    "rshares" : NumberLong(0),
    "_SERVICE_" : { ... }
}

Параметры

  • id — идентификатор документа, созданный контрактом golos.publication.

  • message_id — идентификатор публикации.

  • voter — имя голосующего аккаунта.

  • weight — вес голоса аккаунта voter.

  • time — время голосования (в секундах).

  • count — количество поданных голосов.

  • delegators — количество проголосовавших делегатов.

  • curatorsw — вес куратора, используемый при определении размера его вознаграждения.

  • rshares — значение голоса, положительное или отрицательное число, поставленное голосующим. Определяется как произведение голоса на количество вестинга голосующего. Голос вида «downvote» соответствует «-1», голос вида «upvote» соотвествует «+1».

Коллекции контракта golos.vesting

accounts

Коллекция ACCOUNTS содержит документы (таблицы) с данными о балансах вестинга у аккаунтов. Количество созданных таблиц в БД для одного аккаунта соответствует количеству видов вестинга, которыми располагает данный аккаунт. Пример документа:

   "_id" : ObjectId(" ... "),
   "vesting" : {
           "amount" : NumberLong("93355649256"),
           "decs" : NumberDecimal("6"),
           "sym" : "GOLOS"
   },
   "delegated" : {
           "amount" : NumberLong(0),
           "decs" : NumberDecimal("6"),
           "sym" : "GOLOS"
   },
   "received" : {
           "amount" : NumberLong(0),
           "decs" : NumberDecimal("6"),
           "sym" : "GOLOS"
   },
   "unlocked_limit" : {
           "amount" : NumberLong(0),
           "decs" : NumberDecimal("6"),
           "sym" : "GOLOS"
   },
   "_SERVICE_" : { ... }

Параметры

  • (asset) vesting — количество вестинга, находящееся на балансе аккаунта.

  • (asset) delegated — общее количество вестинга, делегированное другим аккаунтам.

  • (asset) received — общее количество вестинга, полученное от других аккаунтов в виде доли от вознаграждения за делегирование, а также в виде делегированных средств данному аккаунту.

  • (asset) unlocked_limit — выделенная пользователем часть вестинга для «сжигания».

delegation

Коллекция DELEGATION содержит документы с данными о делегировании средств в виде вестинга. На каждую операцию делегирования delegate() создается в БД отдельная таблица следующего вида:

{
       "_id" : ObjectId(" ... "),
       "id" : NumberDecimal("18"),
       "delegator" : "walf31lwkcpy",
       "delegatee" : "l44tnnby1yfn",
       "quantity" : {
               "amount" : NumberLong("18509738146"),
               "decs" : NumberDecimal("6"),
               "sym" : "GOLOS"
       },
       "interest_rate" : NumberDecimal("0"),
       "payout_strategy" : NumberDecimal("0"),
       "min_delegation_time" : "2018-06-20T18:46:45.000",
       "_SERVICE_" : { ... }
}

Параметры

  • id — идентификатор документа, созданный контрактом golos.vesting.

  • delegator — имя аккаунта, запустившего процесс делегирования вестинга.

  • delegatee — количество делегированных средств в виде вестинга.

  • (asset) quantity — количество возвращаемых средств в виде вестинга.

  • interest_rate — процент выплаты аккаунту delegator от доходов аккаунта delegatee за курирование.

  • payout_strategy — идентификатор стратегии делегирования.

  • min_delegation_time — дата и время, до истечения которого делегированные средства не могут быть возвращены аккаунту delegator.

rdelegation

Коллекция RDELEGATION содержит документы с данными объекта возврата делегированных средств в виде вестинга. Пример документа:

{
       "_id" : ObjectId(" ... "),
       "id" : NumberDecimal("18"),
       "delegator" : "o.kiyqeszkx4",
       "quantity" : {
               "amount" : NumberLong("769323061452"),
               "decs" : NumberDecimal("6"),
               "sym" : "GOLOS"
       },
       "date" : "2019-03-03T08:19:54.000",
       "_SERVICE_" : { ... }
}

Параметры

  • id — идентификатор документа, созданный контрактом golos.vesting.

  • delegator — имя аккаунта, запустившего процесс возврата делегированных средств.

  • (asset) quantity — количество делегированных средств, подлежащих возврату.

  • date — дата и время, по истечении которого делегированные средства должны быть возвращены аккаунту delegator.

После каждой операции undelegate() у аккаунта-получателя делегированных средств значение объекта received сразу уменьшается, в то время как у аккаунта delegator значение объекта delegated будет уменьшено только по истечении определенного времени. Для сохранения балансов создан объект возврата делегированных средств, в поле quantityкоторого записывается значение поля received аккаунта получателя (из коллекции ACCAUNTS). По истечении времени date этот объект возврата уничтожается и у аккаунта delegator значение поля delegated уменьшится на значение quantity.

stat

Коллекция STAT содержит документы с данными о наличии количества вестинга в системе. Каждому вестингу определенного вида отводится отдельная таблица (документ) в БД. Таблица создается вызовом операции create(). Пример документа:

{
   "_id" : ObjectId(" ... "),
   "supply" : {
           "amount" : NumberLong("2435362722662510164"),
           "decs" : NumberDecimal("6"),
           "sym" : "GOLOS"
   },
   "notify_acc" : "gls.ctrl",
   "_SERVICE_" : { ... }
}

Параметры

  • (asset) supply — объект, содержащий данные о количестве вестинга определенного вида в системе.

  • notify_acc — имя аккаунта контракта управления для отправки уведомления в случае изменения баланса.

vestparams

Коллекция VESTPARAMS содержит документы со значениями параметров, устанавливаемых вызовом операции setparams(). При каждом вызове setparams() в базе данных появляется запись — новый документ с установленными значениями параметров. Пример документа:

{
       "_id" : ObjectId(" ... "),
       "id" : NumberDecimal("15758546561230307328"),
       "withdraw" : {
               "intervals" : NumberDecimal("13"),
               "interval_seconds" : NumberDecimal("120")
       },
       "min_amount" : {
               "min_amount" : NumberDecimal("10000")
       },
       "delegation" : {
               "min_amount" : NumberDecimal("5000000"),
               "min_remainder" : NumberDecimal("15000000"),
               "return_time" : NumberDecimal("120"),
               "min_time" : NumberDecimal("0"),
               "max_interest" : NumberDecimal("0")
       },
       "_SERVICE_" : { ... }
}

Параметры

  • id — идентификатор документа, созданный контрактом golos.vesting.

  • (object) withdraw — параметры, используемые при выводе вестинга в токены:

    • intervals — количество интервалов, необходимых для вывода вестинга частями;

    • interval_seconds — длительность интервала (в секундах).

  • (object) min_amount — минимальное значение вестина, ниже которого конвертирование его в токены не выполняется.

  • (object) delegation — параметры делегирования:

    • min_amount — минимально возможное количество вестинга для делегирования или возврата делегированного;

    • min_remainder — минимальный остаток делегированного;

    • return_time — время возврата делегированных средств (в секундах);

    • min_time — минимальное время делегирования (в секундах);

    • max_interest — максимально допустимый процент вознаграждения за делегирование средств.

withdrawal

Коллекция WITHDRAWAL содержит документы с данными о выводах (конвертациях) вестинга в токены. Пример документа:

{
    "_id" : ObjectId("5cb591cd2abe51000136ac08"),
    "owner" : "usera",
    "to" : "usera",
    "number_of_payments" : NumberDecimal("13"),
    "next_payout" : "2019-04-16T08:28:54.000",
    "withdraw_rate" : {
        "amount" : NumberLong(62954345),
        "decs" : NumberDecimal("6"),
        "sym" : "GOLOS"
    },
    "target_amount" : {
        "amount" : NumberLong(818406491),
        "decs" : NumberDecimal("6"),
        "sym" : "GOLOS"
    },
    "_SERVICE_" : { ... }
}

Параметры

  • owner — имя аккаунта, запустившего процесс конвертации. В процессе конвертации с баланса данного аккаунта снимается сумма средств в вестинге.

  • to — имя аккаунта, на баланс которого зачисляется сумма средств в токенах.

  • number_of_payments — количество выплат, совершаемых в процессе конвертации. Выплаты выполняется равными долями.

  • next_payout — дата и время начала выплаты очередной доли.

  • (asset) withdraw_rate — количество средств, составляющих одну долю.

  • (asset) target_amount — количество средств, выделенных на конвертацию.

Last updated