# Distribution

&#x20;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 adress after production is deployed (scope link)&#x20;

## 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` : KIP7 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 %}
