1- pragma solidity 0.6.1 ;
1+ pragma solidity 0.6.2 ;
22pragma experimental ABIEncoderV2;
33
44import { Adapter } from "./adapters/Adapter.sol " ;
@@ -15,11 +15,13 @@ import {
1515
1616/**
1717* @title Registry for protocol adapters.
18- * @notice balance () and exchangeRates () functions
18+ * @notice getBalances () and getRates () functions
1919* with different arguments implement the main functionality.
2020*/
2121contract AdapterRegistry is AdapterAssetsManager {
2222
23+ address internal constant ETH = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE ;
24+
2325 constructor (
2426 address [] memory _adapters ,
2527 address [][] memory _assets
@@ -42,7 +44,7 @@ contract AdapterRegistry is AdapterAssetsManager {
4244 address [] memory adapters = getAdapters ();
4345 ProtocolDetail[] memory protocolDetails = new ProtocolDetail [](adapters.length );
4446
45- for (uint i = 0 ; i < adapters.length ; i++ ) {
47+ for (uint256 i = 0 ; i < adapters.length ; i++ ) {
4648 protocolDetails[i] = ProtocolDetail ({
4749 name: Adapter (adapters[i]).getProtocolName (),
4850 balances: getBalances (user, adapters[i]),
@@ -67,7 +69,7 @@ contract AdapterRegistry is AdapterAssetsManager {
6769 address [] memory adapters = getAdapters ();
6870 ProtocolBalance[] memory protocolBalances = new ProtocolBalance [](adapters.length );
6971
70- for (uint i = 0 ; i < adapters.length ; i++ ) {
72+ for (uint256 i = 0 ; i < adapters.length ; i++ ) {
7173 protocolBalances[i] = ProtocolBalance ({
7274 name: Adapter (adapters[i]).getProtocolName (),
7375 balances: getBalances (user, adapters[i])
@@ -89,7 +91,7 @@ contract AdapterRegistry is AdapterAssetsManager {
8991 address [] memory adapters = getAdapters ();
9092 ProtocolRate[] memory protocolRates = new ProtocolRate [](adapters.length );
9193
92- for (uint i = 0 ; i < adapters.length ; i++ ) {
94+ for (uint256 i = 0 ; i < adapters.length ; i++ ) {
9395 protocolRates[i] = ProtocolRate ({
9496 name: Adapter (adapters[i]).getProtocolName (),
9597 rates: getRates (adapters[i])
@@ -137,7 +139,7 @@ contract AdapterRegistry is AdapterAssetsManager {
137139 assetBalances[i] = AssetBalance ({
138140 asset: asset,
139141 amount: Adapter (adapter).getAssetAmount (asset, user),
140- decimals: ERC20 (asset). decimals ( )
142+ decimals: getAssetDecimals (asset)
141143 });
142144 }
143145
@@ -185,4 +187,15 @@ contract AdapterRegistry is AdapterAssetsManager {
185187
186188 return rates;
187189 }
190+
191+ function getAssetDecimals (
192+ address asset
193+ )
194+ internal
195+ view
196+ returns (uint8 )
197+ {
198+ return asset == ETH ? uint8 (18 ) : ERC20 (asset).decimals ();
199+ }
200+
188201}
0 commit comments