# MESHSwapView

This contract can check asset details and exchange estimates of meshswap service

## Address

* Polygon Mainnet : [0xF61e4ede9128A9FA9a128cB7D161F4e73bd464Da](https://polygonscan.com/address/0xF61e4ede9128A9FA9a128cB7D161F4e73bd464Da)

{% tabs %}
{% tab title="Read-Only Functions" %}

## Read-Only Functions

**getPoolData**

```solidity
function getPoolData(address lp) public view returns (
        uint miningRate,
        uint rateDecimals,
        address token0,
        uint reserveA,
        address token1,
        uint reserveB,
        uint airdropCount,
        address[] memory airdropTokens,
        uint[] memory airdropSettings 
    )
```

* Details of the pool
* Airdrop only between startBlock and endBlock of blocks in the network
* Parameters
  * `miningRate` : MESH distribution ratio numerator value
  * `rateDecimals` : MESH distribution ratio denominator
    * 예) Daily MESH distribution ratio
      * miningRate - 130323276365080043, rateDecimals - 10000000000000000
      * 130323276365080043 / 10000000000000000 = 13.03...%
  * `token0` : LP token0
  * `reserveA` : Amount of token0 held by LP
  * `token1` : LP token1
  * `reserveB` : Amount of token1 held by LP
  * `airdropCount` : Number of airdrop plans in progress at LP
  * `airdropTokens` : Airdrop token address array
  * `airdropSettings` : Airdrop info array
    * \[0]: blockAmount, \[1]: startBlock, \[2]: endBlock
* `airdropSettings` Data format
  * 예) Token0, Token1 Airdrop  &#x20;
    * airdropTokens = \[ Token0 address, Token1 address]
    * airdropSettings = \[ Token0 blockAmount, Token0 startBlock, Token0 endBlock, Token1 blockAmount, Token1 startBlock, Token1 endBlock ]

**getPendingReward**

```solidity
function getPendingReward(address lp, address user) public view returns ( 
    uint meshReward, 
    uint airdropCount, 
    address[] memory airdropTokens, 
    uint[] memory airdropRewards )
```

* User's claimable reward information
* Parameters
  * `meshReward` : Claimable MESH
  * `airdropCount` : Number of airdrop plans the LP has
  * `airdropTokens` : Airdrop token address array
  * `airdropRewards` : Arrangement of Airdrop token amount Information claimable
* `airdrop` data format
  * 예) Token0, Token1 Airdrop&#x20;
    * airdropTokens = \[ Token0 address, Token1 address]
    * airdropSettings = \[ Token0 reward, Token1 reward ]

**estimateSwap**

```solidity
function estimateSwap(
    uint amountIn, 
    address[] memory path
) public view returns (uint amountOut)
```

* MESHswap swap estimate lookup function
* Input Parameters
  * `amountIn` : Token amount to be exchanged
  * `path` : exchange token path
* example
  * WMATIC -> MESH
    * amountIn = 1000000000000000000 ( =1 WMATIC )
    * path = `["0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",  "0x82362Ec182Db3Cf7829014Bc61E9BE8a2E82868a"]`
  * WMATIC -> USDC -> MESH
    * path = `["0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",  "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", "0x82362Ec182Db3Cf7829014Bc61E9BE8a2E82868a"]`
      {% endtab %}
      {% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.meshswap.fi/developers/contract/meshswapview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
