Как я могу суммировать значения uint внутри массива tokenRewards?

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

    uint256 public tokensPerBlock;
    mapping(address => uint256) public _balances;
    mapping(address => mapping(uint256 => uint256)) public _ownedTokens;

    function getCurrentTotalStakeEarned(address targetAddress) external view returns (uint256[] memory, uint256[] memory) {
        uint256 [] memory tokenIds = new uint256[](_balances[targetAddress]); 
        uint256 [] memory tokenRewards = new uint256[](_balances[targetAddress]); 
        for(uint256 i = 0; i < _balances[targetAddress]; i++){
            tokenIds[i] = _ownedTokens[targetAddress][i];
            tokenRewards[i] = _getTimeStaked(tokenIds[i]++).mul(tokensPerBlock);
        }
        return (tokenIds, tokenRewards);
    }

    function _getTimeStaked(uint256 tokenId) internal view returns (uint256) {
        if (receipt[tokenId].stakedFromBlock == 0) {
            return 0;
        }

        return block.number.sub(receipt[tokenId].stakedFromBlock);
    }

С помощью массива я могу видеть, сколько дает мне каждый токен. Но я хочу их суммировать.

изображение Я просто хочу, чтобы значения, отмеченные красным, суммировались

Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
0
18
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Что мы хотим?

Общая стоимость вознаграждений на адрес.

Что у нас есть?

Массив вознаграждений за адрес, возвращенный с getCurrentTotalStakeEarned

Мы можем просто перебрать массив и суммировать значения.

function reduce(uint256[] arr) pure internal returns (uint256 result){
    for (uint256 i = 0; i < arr.length; i++) {
        result += arr[i];
    }
 
    return;
}

Спасибо за Ваш ответ. Я просто хотел суммировать значения в массиве, и мне это удалось благодаря вашему коду. Я добавил эту операцию в цикл for и получил общий результат; result += tokenRewards[i];

Selman 10.04.2022 16:54

Другие вопросы по теме