Added token details function

This commit is contained in:
Thrilok Kumar 2021-03-17 19:32:06 +05:30
parent cd9d36b87f
commit 075fc2b08a

View File

@ -1,12 +1,54 @@
pragma solidity ^0.6.0;
pragma solidity ^0.6.10;
pragma experimental ABIEncoderV2;
interface TokenInterface {
function balanceOf(address) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint256);
function decimals() external view returns (uint);
function name() external view returns (string memory);
function symbol() external view returns (string memory);
}
contract Resolver {
struct TokenData {
bool isToken;
string name;
string symbol;
uint256 decimals;
}
function getTokenDetails(address[] memory tknAddress) public view returns (TokenData[] memory) {
TokenData[] memory tokenDatas = new TokenData[](tknAddress.length);
for (uint i = 0; i < tknAddress.length; i++) {
if (tknAddress[i] == 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE) {
tokenDatas[i] = TokenData(
true,
"ETHER",
"ETH",
18
);
} else {
TokenInterface token = TokenInterface(tknAddress[i]);
try token.name() {
tokenDatas[i] = TokenData(
true,
token.name(),
token.symbol(),
token.decimals()
);
} catch {
tokenDatas[i] = TokenData(
false,
"",
"",
0
);
}
}
}
return tokenDatas;
}
function getBalances(address owner, address[] memory tknAddress) public view returns (uint[] memory) {
uint[] memory tokensBal = new uint[](tknAddress.length);