diff --git a/contracts/powerResolver/balances.sol b/contracts/powerResolver/balances.sol new file mode 100644 index 0000000..f7e9dee --- /dev/null +++ b/contracts/powerResolver/balances.sol @@ -0,0 +1,38 @@ +pragma solidity ^0.6.0; +pragma experimental ABIEncoderV2; + +interface TokenInterface { + function balanceOf(address) external view returns (uint); +} + + +contract Resolver { + struct Balances { + address owner; + uint[] balance; + } + function getBalances(address[] memory owners, address[] memory tknAddress) public view returns (Balances[] memory) { + Balances[] memory tokensBal = new Balances[](owners.length); + for (uint i = 0; i < owners.length; i++) { + uint[] memory bals = new uint[](tknAddress.length); + for (uint j = 0; j < tknAddress.length; j++) { + if (tknAddress[j] == 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE) { + bals[j] = owners[i].balance; + } else { + TokenInterface token = TokenInterface(tknAddress[i]); + bals[j] = token.balanceOf(owners[i]); + } + } + tokensBal[i] = Balances({ + owner: owners[i], + balance: bals + }); + } + return tokensBal; + } +} + + +contract InstaPowerERC20Resolver is Resolver { + string public constant name = "ERC20-Power-Resolver-v1"; +} \ No newline at end of file