Структура dpos.space 2.0, часть 5: Исправление ошибок в functions.js и добавление оставшихся функций
Здравствуйте. Продолжаю разрабатывать dpos.space 2.0, который, напомню, на Javascript, html и css, т.е. локальный.
О судьбе первой версии:
Сегодня попытался сделать конфиги для конкретных блокчейнов, а затем их подключать, но понял, что слишком многое придётся изменять - проще написать с нуля: на JS.
Но обещаю, что текущую версию опубликую в Github.
Сегодняшний день разработки второй версии:
Во всех функциях вместо:
SETTINGS[chain].getDiscussionsAuthors: [author],
Сделано:
query[SETTINGS[chain].getDiscussionsAuthors] = [author];
В getFeedHistory я сделал условие, согласно которому она сработает, только если блокчейн не VIZ. А также заменил steem.api на SETTINGS[chain].api.
В getAccounts я исправил author на accounts.
Функция getRewardFund:
// Функция метода getRewardFund:
function getRewardFund() {
if (chain === 'steem' || chain === 'vox') {
function getRewardFundResults(err, result) {
return result;
}
return steem.api.getRewardFund(function(err, result) {
getRewardFundResults(err, result);
});
}
}
Выводит параметры, необходимые при вычислении в некоторых формулах.
функция getAccountHistory:
Выводит историю аккаунта:
// Функция метода getAccountHistory:
function getAccountHistory(account, from, limit) {
function AccountHistoryResults(err, result) {
return result;
}
return SETTINGS[chain].api.getAccountHistory(account, from, limit, function(err, result) {
AccountHistoryResults(err, result);
});
}
Функция getFollowers:
Получение списка подписчиков:
// Функция метода getFollowers:
function getFollowers(following, startFollower, followType, limit) {
function getFollowersResults(err, result) {
return result;
}
return SETTINGS[chain].api.getFollowers(following, startFollower, followType, limit, function(err, result) {
getFollowersResults(err, result);
});
}
Ещё одна функция, которая является следствием getFollowers: getFolllowersAccounts:
Она нужна для вкладки "Подписчики с информацией о каждом" в сервисе профилей.
Сочитает 2 мметода:
- getFollowers;
- getAccounts:
// Функция метода getFollowersAccounts:
function getFollowersAccounts(following, startFollower, followType, limit) {
function getFollowersAccountsResults(err, result) {
var followers = {}
result.forEach(function(item) {
followers = item.follower;
});
var result_followers_accounts = getAccounts(followers);
return result_followers_accounts;
}
return SETTINGS[chain].api.getFollowers(following, startFollower, followType, limit, function(err, result) {
getFollowersAccountsResults(err, result);
});
}
Алгоритм:
- Сама функция;
- Функция, возвращающая вместо result result_followers_accounts;
2.1. В ней роисходит формирование массива followers из цикла;
2.2. И followers передаётся далее в функцию getAccounts. Сама же функция становится значением переменной result_followers_accounts;
2.3. И далее та переменная возвращается в return.
Функция getVestingDelegations
Выводит результат метода getVestingDelegations (Работает только в Golos и Viz). В функции я прописал соответствующее условие. А вот и она:
/// Функция метода getVestingDelegations:
function getVestingDelegations(author, from, limit, type) {
if (chain === 'golos' || chain === 'viz') {
function getVestingDelegationsResults(err, result) {
return result;
}
return SETTINGS[chain].api.getVestingDelegations(author, from, limit, type, function(err, result) {
getVestingDelegationsResults(err, result);
});
}
}
типы:
Я про type:
- delegated - выводит тех, кому делегирована СГ/SHARES;
- received - список тех, кто делегировал текущему аккаунту.
Результат изменений:
functions.js
По данным Ide Visual studio code ошибок нет.
Всё
Благодарю за внимание. До встречи в следующих постах.
P. S. Завтра у меня день рождения, но о сем событии напишу завтра.
@denis-skripnik - делегат
Прошу проголосовать за меня на https://golos.io/~witnesses
41 место.
Благодарю.