Hi @lancelai or anyone else !
I’m having a hard time finding how to quote (programmatically) a swap between a pair of currencies using the currently deployed smart contracts ? What I’m trying to do is getting the amount of the second currency when providing the amount of the first…
Could you point me toward a method of an existing FXSwap EVM smart-contract ?
Thanks !
Regards,
@FrenchXCore
1 Like
Found…
You need to get both tokens smart-contract addresses…
For example, for WFX-USDT, you get:
Then, you need to use getReserves
method of the pair smart-contract address (like WFX-USDT pair), and you get a Tuple3 (Note that the pair smart-contract address is a KECCAK256 calculation of both tokens smart-contract addresses).
Then, you apply the following algorithm:
pairDecimals = token1Decimals - token2Decimals;
valueOfToken1InToken2 = pairDecimals > 0 ?
Tuple3Component1.divide(Tuple3Component2).movePointLeft(pairDecimals) :
Tuple3Component1.divide(Tuple3Component2).movePointRight(pairDecimals)
valueOfToken2InToken1 = -pairDecimals > 0 ?
Tuple3Component2.divide(Tuple3Component1).movePointLeft(pairDecimals) :
Tuple3Component2.divide(Tuple3Component1).movePointRight(pairDecimals)
This gives you the current prices of Token1/Token2 and Token2/Token1 (without taking into account the LP fee).
Regards,
@FrenchXCore
4 Likes