An ERC-20 Playground
ERC-20 came about as an attempt to provide a common set of features and interfaces for token contracts in Ethereum. ERC-20 has many benefits, including allowing wallets to provide token balances for hundreds of different tokens and creating a means for exchanges to list more tokens by providing nothing more than the address of the token’s contract.Visit website
- Create an interface to interact with some common ERC20 functions: check Balance, Send, Wrap and unWrap, Swap (powered by Uniswap) and check transaction history.
- Configure Uniswap protocol, to enable swapping on ERC20. Store initial list of common tokens on Ethereum, however any compatible ERC 20 token can be added to the app.
Initially we will only store some Ethereum Mainnet and Goerli address book, however it is possible to use with any EVM compatible network.
- Create a UI to interact with ERC 20 contracts.
- Store list of some popular ERC 20 tokens.
- Button to add compatible ERC20 token.
With web frameworks like ether js and a provider (we will use the extension wallet provider), we can interact with any smart contract, we just need the address and abi (list functions and parameters). Using the functions available in a ERC20 compatible contract, for example: balanceOf, transfer and event Transfer, we only need the address tokens we want to use.
- Configure function list to enable ERC20 compatible token operations .
Uniswap is present on several networks, initially we will only store a list of addresses from Ethereum mainnet and Goerli, however it is possible to use any EVM compatible network, uniswap protocol will look for the pools with enough tokens to perform the exchange.
In our application it is possible to add compatibles ERC 20 tokens addresses, which would already allow our application to work on any compatible EVM network, but we need the Wrapper address, a contract responsible for enveloping native tokens of this network by ERC 20 Wrapped Tokens.
A next milestone would be to create an Add Wrapper Address button, so that if the user wants to use our application on another network, he can manually add that Wrapper address. That would make our application completely EVM Cross-Chain compatible.