From 91dcea570ca638466ac0f4ddc2faf6ef65b23b1e Mon Sep 17 00:00:00 2001 From: Alexey Date: Thu, 8 Oct 2020 12:06:43 +0300 Subject: [PATCH] updates --- contracts/Aggregator.sol | 29 ++++++++++++++++++++++++++++- contracts/GovernanceAggregator.sol | 8 ++------ contracts/MinerAggregator.sol | 15 +++++++++++++++ contracts/SwapAggregator.sol | 2 +- 4 files changed, 46 insertions(+), 8 deletions(-) create mode 100644 contracts/MinerAggregator.sol diff --git a/contracts/Aggregator.sol b/contracts/Aggregator.sol index dbad7d9..c9cef1e 100644 --- a/contracts/Aggregator.sol +++ b/contracts/Aggregator.sol @@ -6,5 +6,32 @@ pragma experimental ABIEncoderV2; import "./GovernanceAggregator.sol"; import "./PriceAggregator.sol"; import "./SwapAggregator.sol"; +import "./MinerAggregator.sol"; -contract Aggregator is GovernanceAggregator, PriceAggregator, SwapAggregator {} +contract Aggregator is GovernanceAggregator, PriceAggregator, SwapAggregator, MinerAggregator { + function miningData( + Miner miner, + address[] calldata instances, + RewardSwap swap + ) + external + view + returns ( + uint256[] memory _rates, + uint256 balance, + uint256 poolWeight + ) + { + _rates = minerRates(miner, instances); + (balance, poolWeight) = swapState(swap); + } + + function marketData( + address[] calldata fromTokens, + uint256[] calldata oneUnitAmounts, + RewardSwap swap + ) external view returns (uint256[] memory prices, uint256 balance) { + prices = getPricesInETH(fromTokens, oneUnitAmounts); + balance = swap.tornVirtualBalance(); + } +} diff --git a/contracts/GovernanceAggregator.sol b/contracts/GovernanceAggregator.sol index 45dd6f2..c6fa5c4 100644 --- a/contracts/GovernanceAggregator.sol +++ b/contracts/GovernanceAggregator.sol @@ -23,7 +23,7 @@ contract GovernanceAggregator { Governance governance, uint256 from, uint256 to - ) external view returns (Proposal[] memory proposals) { + ) public view returns (Proposal[] memory proposals) { uint256 proposalCount = governance.proposalCount(); to = to == 0 ? proposalCount : to; proposals = new Proposal[](proposalCount); @@ -56,11 +56,7 @@ contract GovernanceAggregator { } } - function getGovernanceBalances(Governance governance, address[] calldata accs) - external - view - returns (uint256[] memory amounts) - { + function getGovernanceBalances(Governance governance, address[] calldata accs) public view returns (uint256[] memory amounts) { amounts = new uint256[](accs.length); for (uint256 i = 0; i < accs.length; i++) { amounts[i] = governance.balances(accs[i]); diff --git a/contracts/MinerAggregator.sol b/contracts/MinerAggregator.sol new file mode 100644 index 0000000..62743fe --- /dev/null +++ b/contracts/MinerAggregator.sol @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.6.12; +pragma experimental ABIEncoderV2; + +import "tornado-anonymity-mining/contracts/Miner.sol"; + +contract MinerAggregator { + function minerRates(Miner miner, address[] calldata instances) public view returns (uint256[] memory _rates) { + _rates = new uint256[](instances.length); + for (uint256 i = 0; i < _rates.length; i++) { + _rates[i] = miner.rates(instances[i]); + } + } +} diff --git a/contracts/SwapAggregator.sol b/contracts/SwapAggregator.sol index 618ad16..2d2b832 100644 --- a/contracts/SwapAggregator.sol +++ b/contracts/SwapAggregator.sol @@ -6,7 +6,7 @@ pragma experimental ABIEncoderV2; import "tornado-anonymity-mining/contracts/RewardSwap.sol"; contract SwapAggregator { - function swapState(RewardSwap swap) external view returns (uint256 balance, uint256 poolWeight) { + function swapState(RewardSwap swap) public view returns (uint256 balance, uint256 poolWeight) { balance = swap.tornVirtualBalance(); poolWeight = swap.poolWeight(); }