TODO: Add scenarios?
I'm diving this into three parts: Tokens, Queries and Fees.
Tokens
In order to operate with ERC20 tokens, a user needs to call specific functions in its origin smart contract, for example, for transferring it.
In XCM, assets are operated upon by means of the TransactAsset trait.
In order for XCM to recognize we are dealing with an ERC20, we would need to create an asset transactor to handle them.
This asset transactor has to match ERC20s based on their id. A possible one is the following: [PalletInstance(<pallet-revive index>), AccountKey20 { id }] where id is the contract's address.