Question: Solidity Only - you are to complete this problem using Solidity. Deploy a utility EVM contract with a function to retrieve all token balances given

Solidity Only - you are to complete this problem using Solidity.

Deploy a utility EVM contract with a function to retrieve all token balances given a wallet address and the token contract addresses.

How your contract will be tested:

./test.js

const { ethers } = require("ethers");

const ADDR = ""; // your contract address

const ABI = []; // your contract ABI

const ADDRESS = ""; // some wallet address with token balance

const TOKENS = [ // token contract addresses "", "", ];

// you can use your own RPC provider url (no need to deploy to mainnet)

const provider = ethers.providers.getDefaultProvider();

const test = async () => {

const contract = new ethers.Contract(ADDR, ABI, provider);

const balances = await contract.getBalances(ADDRESS, tokens); return balances; };

test().then(console.log);

The output should be organized as one token amount per object.

[ { token: "0x123d475e13aa54a43a7421d94caa4459da021c77", balance: "9988887462734227" // its okay if this is typed ethers.BigNumber }, { token: "0x55f6823de9642f47e80ed4845a55aa8430cb4ec6", balance: "899998285714286" }, ]

You may need to use the NPM module truffle or hardhat to complete this task.

You can deploy your own token contracts on test networks to retrieve the balances from (mock the data), or you can use existing token contracts on either test or main networks, as long as you can deploy the balance reader contract on the same network.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!