# Distribution

This contract is Airdrop plan contract applied to the pool. You can target one liquidity pool and one token. The contract is executed by an operator with authority through Treasury.

## Code

Github Link: (Will be updated after official launch)

## Address

* Contract address after production is deployed

## Events, Read-Only Functions, and State-Changing Functions

{% tabs %}
{% tab title="Events" %}

## Events

**Initialized**

```solidity
event Initialized(address token, uint amountPerBlock, uint distributableBlock, address[] targets, uint[] rates);
```

* Event log of airdrop created
* Parameters
  * `token` : ERC-20 token address
  * `amountPerBlock` : Amount of airdrop tokens to be distributed per block
  * `distributableBlock` : Start block Number
  * `targets` : Array of liquidity pool addresses to distribute
  * `rates` : Array of liquidity pool distribution to distribute

**Deposit**

```solidity
event Deposit(uint amount, uint totalAmount);
```

* Event log of airdrop tokens deposit
* Parameters
  * `amount` : Deposit token amount
  * `totalAmount` : Deposit token total amount

**RefixBlockAmount**

```solidity
event RefixBlockAmount(uint amountPerBlock);
```

* Event log of distribution token amount changed

**RefixDistributionRate**

```solidity
event RefixDistributionRate(address[] targets, uint[] rates);
```

* Event log of liquidity pool distribution rate changed

**ChangeDistributionRate**

```solidity
event ChangeDistributionRate(address target, uint rate);
```

* Event log of distribution rate changed

**Distribute**

```solidity
event Distribute(address user, address target, uint amount, uint currentIndex, uint userRewardSum);
```

* Event log of user receives an airdrop tokens
* Parameters
  * `user` : user address
  * `target` : LP address
  * `amount` : token amount
  * `currentIndex` : index
  * `userRewardSum` : total token amount&#x20;

{% 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/distribution.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.
