In my Dapp, I have two different ERC20 tokens: say,
XYZToken. A user could give 10
ABCTokens to an account and in return should get 5
Is it possible to do this directly without converting to ethers in between? If so, what is the best way to do it (i.e. at a high level, what kind of contracts and operations required to achieve this)?