The MonoX smart contracts will exist on the Ethereum blockchain. Until that time, there are a bunch of test networks are available for you to integrate and complete your tests. These networks are:
Ethereum Mainnet,
Polygon Mainnet,
Kovan Testnet,
Mumbai Test (Polygon)
Contracts
In order to complete an integration with the below contracts, you will need to have ABI (Application Binary Interface).
Our Monoswap contract (kovan or mumbai) has some core features available for the developers who are interested in using them externally.
What type of functions is available for a contract?
MonoX Core Functionalities
Some of the key functionalities we offer are:
listNewToken,
addLiquidity,
addLiquidityETH,
removeLiquidity,
swapExactTokenForToken and swapTokenForExactToken,
swapExactETHForToken, swapExactTokenForETH, swapETHForExactToken and swapTokenForExactETH
listNewToken, addLiquidity, swapExactTokenForToken and swapTokenForExactToken requires that the token has been approved in advance.
listNewToken
This function list tokens and adds liquidity with vcashAmount and tokenAmount then sends LP tokens to to address. So, the user can list a new token.
functionlistNewToken ( address _token,// Token address to list uint _price,// Token price uint256 vcashAmount,// VCASH amount to add initially uint256 tokenAmount,// Token amount to add initially address to // Address that gets liquidity )
addLiquidity
This function adds liquidity to an ERC-20⇄ERC-20 pool. So, users can contribute into the pool.
functionaddLiquidity ( address _token,// Token address uint256 _amount,// Token amount to add address to // Address to send LP token )
addLiquidityETH
This function adds liquidity to an ERC-20⇄WETH pool with ETH. So, users can add liquidity to the ETH pool.
functionaddLiquidityETH ( address to // Address to send LP token )
removeLiquidity
This function removes liquidity to an ERC-20⇄ERC-20 pool.
functionremoveLiquidity ( address _token,// Token address uint256 liquidity,// Liquidity address to,// Token amount to add uint256 minVcashOut,// The minimum amount of VCash that must be received uint256 minTokenOut // The minimum amount of Token that must be received )
For removing ETH liquidity, use removeLiquidityETH function. It removes liquidity to an ERC-20⇄WETH pool with ETH.
swapExactTokenForToken
Users can swap tokens using swapExactTokenForToken. So, user's input token is known and the output token is calculated swapTokenForExactToken.
functionswapExactTokenForToken( address tokenIn,// Input token address address tokenOut,// Output token address uint amountIn,// The amount of input tokens to send uint amountOutMin, // The minimum amount of output tokens that must be received for the transaction not to revert
address to,// Recipient of the output tokens uint deadline // Unix timestamp after which the transaction will revert )
swapTokenForExactToken
Users can swap tokens using swapTokenForExactToken. So, user's output token is known and the input token is calculated.
functionswapTokenForExactToken( address tokenIn,// Input token address address tokenOut,// Output token address uint amountInMax, // The maximum amount of input tokens that can be required before the transaction reverts
uint amountOut,// The amount of output tokens to receive address to,// Recipient of the output tokens uint deadline // Unix timestamp after which the transaction will revert )
For swapping ETH, please use one of below functions:
functionswapExactETHForToken( address tokenOut,// Output token address uint amountOutMin, // The minimum amount of output tokens that must be received for the transaction not to revert
address to,// Recipient of the output tokens uint deadline // Unix timestamp after which the transaction will revert )
functionswapExactTokenForETH( address tokenIn,// Input token address uint amountIn,// The amount of input tokens to send uint amountOutMin, // The minimum amount of output tokens that must be received for the transaction not to revert
address to,// Recipient of the output tokens uint deadline // Unix timestamp after which the transaction will revert )
functionswapETHForExactToken( address tokenOut,// Output token address uint amountInMax, // The maximum amount of input tokens that can be required before the transaction reverts
uint amountOut,// The amount of output tokens to receive address to,// Recipient of the output tokens uint deadline // Unix timestamp after which the transaction will revert )
functionswapTokenForExactETH( address tokenIn,// Input token address uint amountInMax, // The maximum amount of input tokens that can be required before the transaction reverts
uint amountOut,// The amount of output tokens to receive address to,// Recipient of the output tokens uint deadline // Unix timestamp after which the transaction will revert )