Router v2

SOY Finance is based on Uniswap v2. Read the Uniswap v2 documentation. For more in-depth information on the core contract logic, read the Uniswap v2 Core whitepaper.

Contract info

Contract name: SoyFinanceRouter

View SoyFinanceRouter.sol on GitHub.

View the SoyFinance Router v2 contract on:

Read functions

WCLO

function WCLO() external pure returns (address);

Returns the canonical address for Callisto: WCLO token (WCLO being a vestige from Callisto network origins).

factory

function factory() external pure returns (address);

Returns the canonical address for SoyFinanceFactory.

For explanations of the following, view the Uniswap v2 Internal Functions documentation.

getAmountOut

function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) internal pure returns (uint amountOut);

getAmountIn

function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) internal pure returns (uint amountIn);

getAmountsOut

function getAmountsOut(uint amountIn, address[] memory path) internal view returns (uint[] memory amounts);

getAmountsIn

function getAmountsIn(uint amountOut, address[] memory path) internal view returns (uint[] memory amounts);

quote

function quote(uint amountA, uint reserveA, uint reserveB) internal pure returns (uint amountB);

Write functions

addLiquidity

Adds liquidity to a BEP20⇄BEP20 pool.

Name
Type

tokenA

address

The contract address of one token from your liquidity pair.

tokenB

address

The contract address of the other token from your liquidity pair.

amountADesired

uint

The amount of tokenA you'd like to provide as liquidity.

amountBDesired

uint

The amount of tokenA you'd like to provide as liquidity.

amountAMin

uint

The minimum amount of tokenA to provide (slippage impact).

amountBMin

uint

The minimum amount of tokenB to provide (slippage impact).

to

address

Address of LP Token recipient.

deadline

uint

Unix timestamp deadline by which the transaction must confirm.

addLiquidityCLO

Adds liquidity to a BEP20⇄WCLO pool.

Name
Type

addLiquidityCLO

uint

The payable amount in CLO.

token

address

The contract address of the token to add liquidity.

amountTokenDesired

uint

The amount of the token you'd like to provide as liquidity.

amountTokenMin

uint

The minimum amount of the token to provide (slippage impact).

amountCLOMin

uint

The minimum amount of CLO to provide (slippage impact).

to

address

Address of LP Token recipient.

deadline

uint

Unix timestamp deadline by which the transaction must confirm.

removeLiquidity

Removes liquidity from a BEP20⇄BEP20 pool.

Name
Type

tokenA

address

The contract address of one token from your liquidity pair.

tokenB

address

The contract address of the other token from your liquidity pair.

liquidity

uint

The amount of LP Tokens to remove.

amountAMin

uint

The minimum amount of tokenA to remove (slippage impact).

amountBMin

uint

The minimum amount of tokenB to remove (slippage impact).

to

address

Address of LP Token recipient.

deadline

uint

Unix timestamp deadline by which the transaction must confirm.

removeLiquidityCLO

Removes liquidity from a BEP20⇄WCLO pool.

Name
Type

token

address

The contract address of the token to remove liquidity.

liquidity

uint

The amount of LP Tokens to remove.

amountTokenMin

uint

The minimum amount of the token to remove (slippage impact).

amountCLOMin

uint

The minimum amount of CLO to remove (slippage impact).

to

address

Address of LP Token recipient.

deadline

uint

Unix timestamp deadline by which the transaction must confirm.

removeLiquidityCLOSupportingFeeOnTransferTokens

Removes liquidity from a BEP20⇄WCLO for tokens that take a fee on transfer.

Name
Type

token

address

The contract address of the token to remove liquidity.

liquidity

uint

The amount of LP Tokens to remove.

amountTokenMin

uint

The minimum amount of the token to remove (slippage impact).

amountCLOMin

uint

The minimum amount of CLO to remove (slippage impact).

to

address

Address of LP Token recipient.

deadline

uint

Unix timestamp deadline by which the transaction must confirm.

removeLiquidityCLOWithPermit

Removes liquidity from a BEP20⇄WCLO and receives CLO, without pre-approval, via permit.

Name
Type

token

address

The contract address of the token to remove liquidity.

liquidity

uint

The amount of LP Tokens to remove.

amountTokenMin

uint

The minimum amount of the token to remove (slippage impact).

amountCLOMin

uint

The minimum amount of CLO to remove (slippage impact).

to

address

Address of LP Token recipient.

deadline

uint

Unix timestamp deadline by which the transaction must confirm.

approveMax

bool

Whether or not the approval amount in the signature is for liquidity or uint(-1).

v

uint8

The v component of the permit signature.

r

bytes32

The r component of the permit signature.

s

bytes32

The s component of the permit signature.

removeLiquidityCLOWithPermitSupportingFeeOnTransferTokens

Removes liquidity from a BEP20⇄WCLO and receives CLO via permit for tokens that take a fee on transfer.

Name
Type

token

address

The contract address of the token to remove liquidity.

liquidity

uint

The amount of LP Tokens to remove.

amountTokenMin

uint

The minimum amount of the token to remove (slippage impact).

amountCLOMin

uint

The minimum amount of CLO to remove (slippage impact).

to

address

Address of LP Token recipient.

deadline

uint

Unix timestamp deadline by which the transaction must confirm.

approveMax

bool

Whether or not the approval amount in the signature is for liquidity or uint(-1).

v

uint8

The v component of the permit signature.

r

bytes32

The r component of the permit signature.

s

bytes32

The s component of the permit signature.

removeLiquidityWithPermit

Removes liquidity from a BEP20⇄BEP20, without pre-approval, via permit.

Name
Type

tokenA

address

The contract address of one token from your liquidity pair.

tokenB

address

The contract address of the other token from your liquidity pair.

liquidity

uint

The amount of LP Tokens to remove.

amountTokenMin

uint

The minimum amount of the token to remove (slippage impact).

amountCLOMin

uint

The minimum amount of CLO to remove (slippage impact).

to

address

Address of LP Token recipient.

deadline

uint

Unix timestamp deadline by which the transaction must confirm.

approveMax

bool

Whether or not the approval amount in the signature is for liquidity or uint(-1).

v

uint8

The v component of the permit signature.

r

bytes32

The r component of the permit signature.

s

bytes32

The s component of the permit signature.

swapCLOForExactTokens

Receive an exact amount of output tokens for as little CLO as possible.

Name
Type

swapCLOForExactTokens

uint

Payable CLO amount.

amountOut

uint

The amount tokens to receive.

path (address[])

address

An array of token addresses. path.length must be >= 2. Pools for each consecutive pair of addresses must exist and have liquidity.

to

address

Address of recipient.

deadline

uint

Unix timestamp deadline by which the transaction must confirm.

swapExactCLOForTokens

Receive as many output tokens as possible for an exact amount of CLO.

Name
Type

swapExactCLOForTokens

uint

Payable CLO amount.

amountOutMin

uint

The minimum amount tokens to receive.

path (address[])

address

An array of token addresses. path.length must be >= 2. Pools for each consecutive pair of addresses must exist and have liquidity.

to

address

Address of recipient.

deadline

uint

Unix timestamp deadline by which the transaction must confirm.

swapExactCLOForTokensSupportingFeeOnTransferTokens

Receive as many output tokens as possible for an exact amount of CLO. Supports tokens that take a fee on transfer.

Name
Type

swapExactCLOForTokensSupportingFeeOnTransferTokens

uint

Payable CLO amount.

amountOutMin

uint

The minimum amount tokens to receive.

path (address[])

address

An array of token addresses. path.length must be >= 2. Pools for each consecutive pair of addresses must exist and have liquidity.

to

address

Address of recipient.

deadline

uint

Unix timestamp deadline by which the transaction must confirm.

swapExactTokensForCLO

Receive as much CLO as possible for an exact amount of input tokens.

Name
Type

amountIn

uint

Payable amount of input tokens.

amountOutMin

uint

The minimum amount tokens to receive.

path (address[])

address

An array of token addresses. path.length must be >= 2. Pools for each consecutive pair of addresses must exist and have liquidity.

to

address

Address of recipient.

deadline

uint

Unix timestamp deadline by which the transaction must confirm.

swapExactTokensForCLOSupportingFeeOnTransferTokens

Receive as much CLO as possible for an exact amount of tokens. Supports tokens that take a fee on transfer.

Name
Type

amountIn

uint

Payable amount of input tokens.

amountOutMin

uint

The minimum amount tokens to receive.

path (address[])

address

An array of token addresses. path.length must be >= 2. Pools for each consecutive pair of addresses must exist and have liquidity.

to

address

Address of recipient.

deadline

uint

Unix timestamp deadline by which the transaction must confirm.

swapExactTokensForTokens

Receive as many output tokens as possible for an exact amount of input tokens.

Name
Type

amountIn

uint

Payable amount of input tokens.

amountOutMin

uint

The minimum amount tokens to receive.

path (address[])

address

An array of token addresses. path.length must be >= 2. Pools for each consecutive pair of addresses must exist and have liquidity.

to

address

Address of recipient.

deadline

uint

Unix timestamp deadline by which the transaction must confirm.

swapExactTokensForTokensSupportingFeeOnTransferTokens

Receive as many output tokens as possible for an exact amount of input tokens. Supports tokens that take a fee on transfer.

Name
Type

amountIn

uint

Payable amount of input tokens.

amountOutMin

uint

The minimum amount tokens to receive.

path (address[])

address

An array of token addresses. path.length must be >= 2. Pools for each consecutive pair of addresses must exist and have liquidity.

to

address

Address of recipient.

deadline

uint

Unix timestamp deadline by which the transaction must confirm.

swapTokensForExactCLO

Receive an exact amount of CLO for as few input tokens as possible.

Name
Type

amountOut

uint

Payable amount of input tokens.

amountInMax

uint

The minimum amount tokens to input.

path (address[])

address

An array of token addresses. path.length must be >= 2. Pools for each consecutive pair of addresses must exist and have liquidity.

to

address

Address of recipient.

deadline

uint

Unix timestamp deadline by which the transaction must confirm.

swapTokensForExactTokens

Receive an exact amount of output tokens for as few input tokens as possible.

Name
Type

amountOut

uint

Payable amount of input tokens.

amountInMax

uint

The minimum amount tokens to input.

path (address[])

address

An array of token addresses. path.length must be >= 2. Pools for each consecutive pair of addresses must exist and have liquidity.

to

address

Address of recipient.

deadline

uint

Unix timestamp deadline by which the transaction must confirm.

Interface

Last updated