UnifiRouter.sol
Last updated
Last updated
Primary Uses - The uTrade V2 Router is the 'brain' of uTrade. The router finds the optimal path for exchanging one token for another. Whenever a trade is made, your wallet sends funds to the router address. The router will then carry out as many transactions as necessary to acquire the desired token. The router also handles adding liquidity to liquidity pools, and sending the corresponding LP tokens to liquidity providers.
A call to the factory
function returns the address of the current Factory used by uTrade v2. The current factory address for uTrade V2 on Binance Smart Chain is 0xA5Ba037Ec16c45f8ae09e013C1849554C01385f5
.
A call to the WETH
function returns the address of Wrapped BNB (WBNB) on Binance Smart Chain. As this address does not change, it will always return 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c
.
A call to the quote
function returns the amount of tokenB that will be received for an amount of tokenA. This can be used to calculate the exchange rate between two tokens without factoring in slippage or fees. By entering the amount of tokenA, the total amount of reserves of tokenA as reserveA, and the total amount of reserves of tokenB as reserveB, the call will return the equivalent amount of tokenB.
A call to the getAmountOut
function with the amount of the token being sent will return the maximum amount of a token to be received, accounting for fees and the total amount of reserves.
A call to the getAmountIn
function with the amount of the token you wish to receive will return the minimum amount required of the token you wish to send, accounting for fees and the total amount of reserves.
A call to the getAmountsOut
function with the amount of the token being sent will return the maximum amount to be received of multiple different tokens. By entering multiple LP addresses in the address array, the function will return the maximum amount of each token that will be received. A call to this function uses the getReserves
function from UnifiPair.sol to determine the reserves of the liquidity pool. Then, it calls the getAmountOut
function to determine the amount of each token in the array that will be received for the amountIn value of a token.
A call to the getAmountsIn
function with the desired amount of the token to be received will return the minimum amount required to be sent of multiple tokens. By entering multiple LP addresses in the address array, the function will return the minimum amount of each token that will need to be sent to receive the desired amount of a token. A call to this function uses the getReserves
function from UnifiPair.sol to determine the reserves of the liquidity pool. Then, it calls the getAmountIn
function to determine the amount of each token in the array that will need to be sent for the amountOut value of a token.
The addLiquidity
function adds the two tokens that make up the liquidity pool - tokenA and tokenB - at the proper ratio based on the reserves of the pool. For example, if the pool contains 500 USDT / 2 BNB, a user's liquidity will be added at the ratio of 250 USDT to 1 BNB, provided there is no price movements in the pair between when the user broadcasts the transaction to when it is mined. In the event of a price movement, the amountADesired, amountBDesired, amountAMin, and amountBMin act as a security measure against an adverse price movement. After the liquidity is added, the function sends the corresponding LP tokens to the sender.
In the case of a pool not existing for the two assets, one will be created using UnifiFactory.sol at the ratio of the assets supplied.
The addLiquidityEth
function is similar to the addLiquidity
function except it accounts for one token being a native asset. In the case of Binance Smart Chain, this native asset would be BNB. This function will convert BNB to WBNB, will pair that WBNB with the supplied other token, and add the liquidity to the pool. This function will add at the ideal ratio based on when the transaction is mined.
In the case of a pool not existing for WBNB and the token provided, one will be created using UnifiFactory.sol at the ratio of the assets supplied.
This function requires a msg.value with the amount of BNB to be added.
The msg.value acts as the amountETHDesired. As in, if the ratio between BNB and the token being paired with it change, this is the number of BNB that will be added to the pool.
Any leftover BNB is returned to the msg.sender address.
The removeLiquidity
function removes the two tokens that make up liquidity from a pool. In other words, this function is used when the pool consists of two BEP-20 tokens.
In the event one of the assets is paired with BNB, BNB will have been wrapped and paired with WBNB (Wrapped BNB). If the user wishes to withdraw WBNB instead of withdrawing as BNB, this function should be used instead of removeLiquidityETH
.
The removeLiquidityETH
function removes BNB as well as the corresponding paired token in the liquidity pool. In other words, this function is used when the pool consists of WBNB and a BEP-20 token.
In the event one of the assets is paired with BNB, BNB has been wrapped into WBNB (Wrapped BNB). This function will unwrap the WBNB as the liquidity removed. If the user wishes to withdraw WBNB instead of withdrawing as BNB, the removeLiquidity
function should be used.
The removeLiquidityWithPermit
functions removes the two tokens that make up liquidity from a pool. In other words, this function is used when the pool consists of two BEP-20 tokens. This function operates similarly to the removeLiquidity
function with the added benefit of not requiring pre-approvals using permit function from the BEP-20 contract.
In the event one of the assets is paired with BNB, BNB will have been wrapped and paired with WBNB (Wrapped BNB). If the user wishes to withdraw WBNB instead of withdrawing as BNB, this function should be used instead of removeLiquidityETHWithPermit
.
The removeLiquidityETHWithPermit
function removes BNB as well as the corresponding paired token in the liquidity pool. In other words, this function is used when the pool consists of WBNB and a BEP-20 token. This function operates similarly to the removeLiquidityETH
function with the added benefit of not requiring pre-approvals using permit function from the BEP-20 contract.
In the event one of the assets is paired with BNB, BNB has been wrapped into WBNB (Wrapped BNB). This function will unwrap the WBNB as the liquidity removed. If the user wishes to withdraw WBNB instead of withdrawing as BNB, the removeLiquidityWithPermit
function should be used.
The removeLiquidityETHSupportingFeeOnTransferTokens
function is similar to the removeLiquidityETH
function, and contains the same call parameters. This function removes BNB as well as the corresponding paired token in the liquidity pool. In other words, this function is used when the pool consists of WBNB and a BEP-20 token.
However, this function allows for fee on transfer tokens, such as PAXG, to be used on uTrade.
The removeLiquidityETHWithPermitSupportingFeeOnTransferTokens
function is similar to the removeLiquidityETHWithPermit
function. This function removes BNB as well as the corresponding paired token in the liquidity pool. In other words, this function is used when the pool consists of WBNB and a BEP-20 token. This function operates similarly to the removeLiquidityETHfunction
with the added benefit of not requiring pre-approvals using permit function from the BEP-20 contract. In addition, this function allows for fee on transfer tokens, such as PAXG, to be used on uTrade.
The swapExactTokensForTokens
function sends an exact amount of tokens for the maximum amount of another token.
The swapTokensForExactTokens
function sends the minimum amount of tokens for the exact amount of another token.
The swapExactETHForTokens
function sends an exact amount of BNB for a desired token.
The swapTokensForExactETH
function sends an amount of tokens for an exact amount of BNB.
The swapExactTokensForETH
function sends an exact amount of tokens for BNB.
The swapETHForExactTokens
function swaps an exact amount of BNB for an amount of the desired token.
The swapExactTokensForTokensSupportingFeeOnTransferTokens
function is similar to swapExactTokensForTokens
as it swaps one BEP-20 token for another BEP-20 token. In addition, this function allows for fee on transfer tokens, such as PAXG, to be used on uTrade.
The swapExactETHForTokensSupportingFeeOnTransferTokens
function is similar to swapExactETHForTokens
function as it swaps an exact amount of BNB for BEP-20 tokens. In addition, this function allows for fee on transfer tokens, such as PAXG, to be used on uTrade.
The function swapExactTokensForETHSupportingFeeOnTransferTokens
is similar to the swapExactTokensForETH
function, as it swaps an exact amount of BEP-20 tokens for BNB. In addition, this function allows for fee on transfer tokens, such as PAXG, to be used on uTrade.
uTrade V2 Router (Solidity)
uTrade V2 Router Interface as JSON
uTrade V2 Router Interface as Typescript
Import statement codeblock (when available)
Network
Address
BSC Main Net
0xBE930734eDAfc41676A76d2240f206Ed36dafbA2
(Link)
BSC Test Net
0x8E07E90f7F5AD5EBaCCE04f020BD08D7572BB36E
(Link)
Parameter
Type
Description
tokenA
address
Token address of the first asset in the token pair.
tokenB
address
Token address of the second asset in the token pair.
amountADesired
uint
The amount of tokenA to be added to liquidity if the value of tokenA goes down in comparison to tokenB.
amountBDesired
uint
The amount of tokenB to be added to liquidity if the value of tokenB goes down in comparison to tokenA.
amountAMin
uint
Sets the minimum amount of tokenA that can added to the pool before the transaction reverts. This acts as a safeguard.
If the value of tokenA rapidly increases in comparison to tokenB, the user will require less of tokenA to be added to the pool to maintain the original value of the submitted liquidity.
A user could potentially be adding liquidity during an outlier spike in value. If the amount of tokenA required falls below this value, the transaction will revert.
This value must be less than or equal to amountADesired.
amountBMin
uint
Sets the minimum amount of tokenB that can added to the pool before the transaction reverts. This acts as a safeguard.
If the value of tokenB rapidly increases in comparison to tokenA, the user will require less of tokenB to be added to the pool to maintain the original value of the submitted liquidity.
A user could potentially be adding liquidity during an outlier spike in value. If the amount of tokenB required falls below this value, the transaction will revert.
This value must be less than or equal to amountBDesired.
to
address
The address to which the LP tokens for the uTrade V2 pool will be sent.
deadline
uint
The UNIX timestamp for which this transaction must be completed. If the transaction is mined after this deadline, the transaction will revert.
Parameter
Type
Description
amountA
uint
The exact amount of tokenA that was sent to the pool.
amountB
uint
The exact amount of tokenB that was sent to the pool.
liquidity
uint
The exact amount of liquidity tokens minted and sent to the address provided in the to parameter.
Parameter
Type
Description
token
address
The address of the supplied token for the liquidity pool. In other words, the asset that BNB is paired with.
amountTokenDesired
uint
The amount of the supplied token to be added to liquidity if the value of token goes down in comparison to BNB.
(amountETHDesired) msg.value
uint
Sent as the msg.value, the amount of BNB to be added to liquidity if the value of BNB goes down in comparison to token.
amountTokenMin
uint
Sets the minimum amount of the supplied token that can added to the pool before the transaction reverts. This acts as a safeguard.
If the value of supplied token rapidly increases in comparison to BNB, the user will require less of the token to be added to the pool to maintain the original value of the submitted liquidity.
A user could potentially be adding liquidity during an outlier spike in value. If the amount of the supplied token required falls below this value, the transaction will revert.
This value must be less than or equal to amountTokenDesired.
amountETHMin
uint
Sets the minimum amount of BNB that can added to the pool before the transaction reverts. This acts as a safeguard.
If the value of BNB increases in comparison to the supplied token, the user will require less BNB to be added to the pool to maintain the original value of the submitted liquidity.
A user could potentially be adding liquidity during an outlier spike in value. If the amount of BNB required falls below this value, the transaction will revert.
This value must be less than or equal to amountETHDesired.
to
address
The address to which the LP tokens for the uTrade V2 pool will be sent.
deadline
uint
The UNIX timestamp for which this transaction must be completed. If the transaction is mined after this deadline, the transaction will revert.
Parameter
Type
Description
amountToken
uint
The exact amount of the supplied token sent to the pool.
amountETH
uint
The exact amount of BNB converted to WBNB, and then added to the pool.
liquidity
uint
The exact amount of liquidity tokens minted and sent to the address provided in the to parameter.
Parameter
Type
Description
tokenA
address
Token address of the first asset in the pair.
tokenB
address
Token address of the second asset in the pair.
liquidity
uint
The amount of liquidity tokens to be redeemed and removed.
amountAMin
uint
Sets the minimum amount of tokenA to be removed from the the pool. This acts as a safeguard against removing liquidity during a spike in value. If the removed amount falls below this value, the transaction reverts.
amountBMin
uint
Sets the minimum amount of tokenB to be removed from the the pool. This acts as a safeguard against removing liquidity during a spike in value. If the removed amount falls below this value, the transaction reverts.
to
address
The address to where the redeemed tokens will be sent.
deadline
uint
The UNIX timestamp for which this transaction must be completed. If the transaction is mined after this deadline, the transaction will revert.
Parameter
Title
Description
amountA
uint
The exact amount of tokenA sent to the address provided in the to parameter.
amountB
uint
The exact amount of tokenB sent to the address provided in the to parameter.
Parameter
Type
Description
token
address
Token address of the BEP-20 asset in the pair.
liquidity
uint
The amount of liquidity tokens to be redeemed and removed.
amountTokenMin
uint
Sets the minimum amount of token to be removed from the the pool. This acts as a safeguard against removing liquidity during a spike in value. If the removed amount falls below this value, the transaction reverts.
amountETHMin
uint
Sets the minimum amount of BNB to be removed from the the pool. This acts as a safeguard against removing liquidity during a spike in value. If the removed amount falls below this value, the transaction reverts.
to
address
The address to where BNB and token will be sent.
deadline
uint
The UNIX timestamp for which this transaction must be completed. If the transaction is mined after this deadline, the transaction will revert.
Parameter
Value
Description
amountToken
uint
The exact amount of token sent to the address provided in the to parameter.
amountETH
uint
The exact amount of BNB sent to the address provided in the to parameter.
Parameter
Type
Description
tokenA
address
Token address of the first asset in the pair.
tokenB
address
Token address of the second asset in the pair.
liquidity
uint
The amount of liquidity tokens to be redeemed and removed.
amountAMin
uint
Sets the minimum amount of tokenA to be removed from the the pool. This acts as a safeguard against removing liquidity during a spike in value. If the removed amount falls below this value, the transaction reverts.
amountBMin
uint
Sets the minimum amount of tokenB to be removed from the the pool. This acts as a safeguard against removing liquidity during a spike in value. If the removed amount falls below this value, the transaction reverts.
to
address
The address to where the redeemed tokens will be sent.
deadline
uint
The UNIX timestamp for which this transaction must be completed. If the transaction is mined after this deadline, the transaction will revert.
approveMax
bool
Sets a true or false value on if approval amount in the signature is for liquidity or for uint(-1).
v
uint8
The v value of the permit. This is one of the three values that makes up the approval signature.
r
bytes32
The r value of the permit. This is one of the three values that makes up the approval signature.
s
bytes32
The s value of the permit. This is one of the three values that makes up the approval signature.
Parameter
Title
Description
amountA
uint
The exact amount of tokenA sent to the address provided in the to parameter.
amountB
uint
The exact amount of tokenB sent to the address provided in the to parameter.
Parameter
Type
Description
token
address
Token address of the BEP-20 asset in the pair.
liquidity
uint
The amount of liquidity tokens to be redeemed and removed.
amountTokenMin
uint
Sets the minimum amount of token to be removed from the the pool. This acts as a safeguard against removing liquidity during a spike in value. If the removed amount falls below this value, the transaction reverts.
amountETHMin
uint
Sets the minimum amount of BNB to be removed from the the pool. This acts as a safeguard against removing liquidity during a spike in value. If the removed amount falls below this value, the transaction reverts.
to
address
The address to where BNB and token will be sent.
deadline
uint
The UNIX timestamp for which this transaction must be completed. If the transaction is mined after this deadline, the transaction will revert.
v
uint8
The v value of the permit. This is one of the three values that makes up the approval signature.
r
bytes32
The r value of the permit. This is one of the three values that makes up the approval signature.
s
bytes32
The s value of the permit. This is one of the three values that makes up the approval signature.
Parameter
Value
Description
amountToken
uint
The exact amount of token sent to the address provided in the to parameter.
amountETH
uint
The exact amount of BNB sent to the address provided in the to parameter.
Parameter
Type
Description
token
address
Token address of the BEP-20 asset in the pair.
liquidity
uint
The amount of liquidity tokens to be redeemed and removed.
amountTokenMin
uint
Sets the minimum amount of token to be removed from the the pool. This acts as a safeguard against removing liquidity during a spike in value. If the removed amount falls below this value, the transaction reverts.
amountETHMin
uint
Sets the minimum amount of BNB to be removed from the the pool. This acts as a safeguard against removing liquidity during a spike in value. If the removed amount falls below this value, the transaction reverts.
to
address
The address to where BNB and the paired token will be sent.
deadline
uint
The UNIX timestamp for which this transaction must be completed. If the transaction is mined after this deadline, the transaction will revert.
Parameter
Value
Description
amountETH
uint
The exact amount of BNB sent to the address provided in the to parameter. Note that the amountToken parameter is not returned. The amount of fee on transfer that a token may have is not available prior to transaction.
Parameter
Type
Description
token
address
Token address of the BEP-20 asset in the pair.
liquidity
uint
The amount of liquidity tokens to be redeemed and removed.
amountTokenMin
uint
Sets the minimum amount of token to be removed from the the pool. This acts as a safeguard against removing liquidity during a spike in value. If the removed amount falls below this value, the transaction reverts.
amountETHMin
uint
Sets the minimum amount of BNB to be removed from the the pool. This acts as a safeguard against removing liquidity during a spike in value. If the removed amount falls below this value, the transaction reverts.
to
address
The address to where BNB and token will be sent.
deadline
uint
The UNIX timestamp for which this transaction must be completed. If the transaction is mined after this deadline, the transaction will revert.
v
uint8
The v value of the permit. This is one of the three values that makes up the approval signature.
r
bytes32
The r value of the permit. This is one of the three values that makes up the approval signature.
s
bytes32
The s value of the permit. This is one of the three values that makes up the approval signature.
Parameter
Value
Description
amountETH
uint
The exact amount of BNB sent to the address provided in the to parameter. Note that the amountToken parameter is not returned. The amount of fee on transfer that a token may have is not available prior to transaction.
Parameter
Type
Description
amountIn
uint
The amount of tokens being sent to swap into another token
amountOutMin
uint
Sets the minimum amount of the desired token to receive. This acts as a safeguard against removing liquidity during a spike in value. If the amount to be received falls below this value, the transaction reverts.
path
address[] calldata
The pathway to change one token to another, consisting of an array of addresses. Each token must have an existing liquidity pool, as well as have liquidity.
The path represents the pathway from one token to another. If a pair exists for the two tokens you wish to exchange, this will contain two values inside of an array. However, if there is no direct pair, multiple addresses may be required.
to
address
The address to where the desired token will be sent.
deadline
uint
The UNIX timestamp for which this transaction must be completed. If the transaction is mined after this deadline, the transaction will revert.
Parameter
Type
Description
amounts
uint[] memory
The exact amount of tokens sent into the swap, as well as the exact return amount of all subsequent swaps.
Parameter
Type
Description
amountOut
uint
The exact amount of the desired tokens to be received.
amountInMax
uint
Sets the maximum amount of token to be sent in. This acts as a safeguard against removing liquidity during a spike in value. If the amount to be sent rises above this value, the transaction reverts.
path
address[] calldata
The pathway to change one token to another, consisting of an array of addresses. Each token must have an existing liquidity pool, as well as have liquidity.
The path represents the pathway from one token to another. If a pair exists for the two tokens you wish to exchange, this will contain two values inside of an array. However, if there is no direct pair, multiple addresses may be required.
to
address
The address to where the desired token will be sent.
deadline
uint
The UNIX timestamp for which this transaction must be completed. If the transaction is mined after this deadline, the transaction will revert.
Parameter
Type
Description
amounts
uint[] memory
The exact amount of tokens sent into the swap, as well as the exact return amount of all subsequent swaps.
Parameter
Type
Description
(amountIn)
msg.value
uint
Sent as the msg.value, the amount of BNB to be swapped.
amountOutMin
uint
Sets the minimum amount of the desired token to receive. This acts as a safeguard against removing liquidity during a spike in value. If the amount to be received falls below this value, the transaction reverts.
path
address[] calldata
The pathway to change one token to another, consisting of an array of addresses. Each token must have an existing liquidity pool, as well as have liquidity.
The path represents the pathway from one token to another. If a pair exists for the two tokens you wish to exchange, this will contain two values inside of an array. However, if there is no direct pair, multiple addresses may be required.
As the first swap is swapping BNB to WBNB, the first address must be WBNB.
to
address
The address to where the desired token will be sent.
deadline
uint
The UNIX timestamp for which this transaction must be completed. If the transaction is mined after this deadline, the transaction will revert.
Parameter
Type
Description
amounts
uint[] memory
The exact amount of BNB sent into the swap, as well as the exact return amount of all subsequent swaps.
Parameter
Type
Description
amountOut
uint
The exact amount of the BNB to be received.
amountInMax
uint
Sets the maximum amount of token to be sent in. This acts as a safeguard against removing liquidity during a spike in value. If the amount to be sent rises above this value, the transaction reverts.
path
address[] calldata
The pathway to change one token to another, consisting of an array of addresses. Each token must have an existing liquidity pool, as well as have liquidity.
The path represents the pathway from one token to another. If a pair exists for the two tokens you wish to exchange, this will contain two values inside of an array. However, if there is no direct pair, multiple addresses may be required.
to
address
The address to where the desired token will be sent.
deadline
uint
The UNIX timestamp for which this transaction must be completed. If the transaction is mined after this deadline, the transaction will revert.
Parameter
Type
Description
amounts
uint[] memory
The exact amount of tokens sent into the swap, as well as the exact amount of all subsequent swaps.
Parameter
Type
Description
amountIn
uint
The amount of tokens being sent to swap into BNB.
amountOutMin
uint
Sets the minimum amount of the BNB to receive. This acts as a safeguard against removing liquidity during a spike in value. If the amount to be received falls below this value, the transaction reverts.
path
address[] calldata
The pathway to change one token to another, consisting of an array of addresses. Each token must have an existing liquidity pool, as well as have liquidity.
The path represents the pathway from one token to another. If a pair exists for the two tokens you wish to exchange, this will contain two values inside of an array. However, if there is no direct pair, multiple addresses may be required.
to
address
The address to where the desired token will be sent.
deadline
uint
The UNIX timestamp for which this transaction must be completed. If the transaction is mined after this deadline, the transaction will revert.
Parameter
Type
Description
amounts
uint[] memory
The exact amount of tokens sent into the swap, as well as the exact amount of all subsequent swaps.
Parameter
Type
Description
(amountIn)
msg.value
uint
Sent as the msg.value, the amount of BNB to be swapped.
amountOutMin
uint
Sets the minimum amount of the desired token to receive. This acts as a safeguard against removing liquidity during a spike in value. If the amount to be received falls below this value, the transaction reverts.
path
address[] calldata
The pathway to change one token to another, consisting of an array of addresses. Each token must have an existing liquidity pool, as well as have liquidity.
The path represents the pathway from one token to another. If a pair exists for the two tokens you wish to exchange, this will contain two values inside of an array. However, if there is no direct pair, multiple addresses may be required.
As the first swap is swapping BNB to WBNB, the first address must be WBNB.
to
address
The address to where the desired token will be sent.
deadline
uint
The UNIX timestamp for which this transaction must be completed. If the transaction is mined after this deadline, the transaction will revert.
Parameter
Type
Description
amounts
uint[] memory
The exact amount of BNB sent into the swap, as well as the exact return amount of all subsequent swaps.
Name
Type
amountIn
uint
The amount of tokens being sent to swap into BNB.
amountOutMin
uint
Sets the minimum amount of the desired token to receive. This acts as a safeguard against removing liquidity during a spike in value. If the amount to be received falls below this value, the transaction reverts.
path
address[] calldata
The pathway to change one token to another, consisting of an array of addresses. Each token must have an existing liquidity pool, as well as have liquidity.
The path represents the pathway from one token to another. If a pair exists for the two tokens you wish to exchange, this will contain two values inside of an array. However, if there is no direct pair, multiple addresses may be required.
to
address
The address to where the desired token will be sent.
deadline
uint
The UNIX timestamp for which this transaction must be completed. If the transaction is mined after this deadline, the transaction will revert.
Parameter
Type
Description
(amountIn)
msg.value
uint
Sent as the msg.value, the exact amount of BNB to be swapped.
amountOutMin
uint
Sets the minimum amount of the desired token to receive. This acts as a safeguard against removing liquidity during a spike in value. If the amount to be received falls below this value, the transaction reverts.
path
address[] calldata
The pathway to change one token to another, consisting of an array of addresses. Each token must have an existing liquidity pool, as well as have liquidity.
The path represents the pathway from one token to another. If a pair exists for the two tokens you wish to exchange, this will contain two values inside of an array. However, if there is no direct pair, multiple addresses may be required.
As the first swap is swapping BNB to WBNB, the first address must be WBNB.
to
address
The address to where the desired token will be sent.
deadline
uint
The UNIX timestamp for which this transaction must be completed. If the transaction is mined after this deadline, the transaction will revert.
Parameter
Type
Description
amountIn
uint
The amount of tokens being sent to swap into BNB.
amountOutMin
uint
Sets the minimum amount of the BNB to receive. This acts as a safeguard against removing liquidity during a spike in value. If the amount to be received falls below this value, the transaction reverts.
path
address[] calldata
The pathway to change one token to another, consisting of an array of addresses. Each token must have an existing liquidity pool, as well as have liquidity.
The path represents the pathway from one token to another. If a pair exists for the two tokens you wish to exchange, this will contain two values inside of an array. However, if there is no direct pair, multiple addresses may be required.
to
address
The address to where the desired token will be sent.
deadline
uint
The UNIX timestamp for which this transaction must be completed. If the transaction is mined after this deadline, the transaction will revert.