The Factory smart contract oversees the full functionality of token pair registration and transactions in MESHswap.
Events, Read-Only Functions, and State-Changing Functions
Events
ChangeCreateFee
event ChangeCreateFee(uint _createFee);
An event to change the Pool Contract Creation Fee when adding a new liquidity pool pair
CreatePool
event CreatePool(address token0, uint amount0, address token1, uint amount1, uint fee, address exchange, uint exid);
Event to create new liquidity pool
parameters
token0
: token0 address in pair
amount0
: token0 amount in pool
token1
: token1 address in pair
amount1
: token1 amount in pool
exchange
: exchange contract address of this pool
Read-Only Functions
WETH
mesh
allPairsLength
Returns the total number of pairs created through the factory so far.
getPoolCount
Returns the total number of pairs created through the factory so far.
createFee
The amount of MESH that must be paired to create a new liquidity pool pair
owner
nextOwner
The next Governance Contract Address set in advance.
pools
List of liquidity pool pairings
Each item saves the smart contract address of the liquidity pool
poolExist
Returns if the contract for the given liquidiy pool pair exists
tokenToPool
The contract address corresponding to the token0, token1 pair
When the addresses of token0 and token1 are inputted, this returns the contract address of the corresponding pairing
Returns the same contract address regardless of the order of the liquidity pool pairing tokens:
tokenToPool[token0][token1] == tokenToPool[token1][token0]
allPairs
function allPairs(uint) external view returns (address pair);
Returns the address of the n
th pair (0
-indexed) created through the factory
getPair
function getPair(address token0, address token1) external view returns (address pair);
Returns the address of the pair for token0
and token1
, if it has been created, else address(0)
(0x0000000000000000000000000000000000000000
).
getPoolAddress
function getPoolAddress(uint idx) public view returns (address)
Returns the address of the n
th pair (0
-indexed) created through the factory
State-Changing Functions
createETHPool
function createETHPool(address token, uint amount, uint fee) public payable
A method called to add a liquidity pair with one side as MATIC
The wallet that calls this must have MESH greater than or equal to createFee
Token for when the WMATIC / ERC-20 pair to be registered has never been registered before
Parameters
token
: ERC-20 token address to add liquidity
amount
: the amount of tokens (ERC-20) to be provided for the initial liquidity
fee
: Sets the initial fee value for liquidity pairs
A value between 0 and 100
Meaning: 0 -> 0%, 100 -> 1%
msg.value
: MATIC quantity to initially supply liquidity
Delivers the transaction value without specifying otherwise
createTokenPool
function createTokenPool(address token0, uint amount0, address token1, uint amount1, uint fee) public
Method called to add liquidity pair in case of ERC-20 token pair
The wallet calling the MESH above createFee must have it.
parameter
token0
: The address of the first token
amount0
: The quantity of the first token that supplies the initial liquidity
token1
: The address of the second token
amount1
: The quantity of the second token that supplies the initial liquidity
fee
: Sets the initial fee value for liquidity pairs