# Treasury

This contract is a contract that manages airdrop operation. Operators with authority can set up and execute airdrops through Treasury Contract.

## Code

Github Link: (Will be updated after official launch)

## Address

* Cypress : 0x29990aaF04f3D5Ac7d8C88beab1A009C1Ab4936e

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

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

## Events

**ChangeCreationFee**&#x20;

```solidity
event ChangeCreationFee(uint fee);
```

* Event that occurs when the creation fee (KSP) is changed

**SetOperator**

```solidity
event SetOperator(address operator, bool valid);
```

* Event that occurs when setting operator

**CreateDistribution**

```solidity
event CreateDistribution(address operator, address token, uint totalAmount, uint blockAmount, uint blockNumber, address[] targets, uint[] rates);
```

* Event that occurs when airdrop is set

**RemoveDistribution**

```solidity
event RemoveDistribution(address operator, address token);
```

* Event that occurs when airdrop is removed

**Deposit**

```solidity
event Deposit(address operator, address token, uint amount);
```

* Event that occurs when token deposit

**RefixBlockAmount**

```solidity
event RefixBlockAmount(address operator, address token, uint blockAmount);
```

* Event that occurs when airdrop distribution amount

**RefixDistributionRate**

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

* Event that occurs when airdrop distribution rate

{% endtab %}

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

## Read-Only Functions

**distributionCount**&#x20;

* Number of airdrop&#x20;

**distributionEntries**

* mapping(address => mapping(uint => address))
* Number of distribution address each LP

**distributionOperator**

* mapping (address => address)
* Operator address each distribution address

**fee**

* Distribution create fee

**owner**

* owner
  {% endtab %}

{% tab title="State-Changing Functions" %}

## **State-Changing Functions**

**changeCreationFee**

```solidity
function changeCreationFee(uint _fee) public 
```

* Method of creation fee (KSP) change
* only Owner&#x20;

**claim**

```solidity
function claim(address target) public
```

* Method that a user calls to claim the claimable airdrop tokens that has accumulated for the pair
* Parameters
  * `target` : LP address

**createKlayDistribution**

```solidity
function createKlayDistribution(uint blockAmount, uint blockNumber, address[] memory targets, uint[] memory rates) public payable
```

* Method of KLAY distribution create
* only Operator

**createTokenDistribution**

```solidity
function createTokenDistribution(address token, uint amount, uint blockAmount, uint blockNumber, address[] memory targets, uint[] memory rates) public
```

* Method of KIP7 distribution create
* only Operator

**depositKlay**

```solidity
function depositKlay() public payable
```

* Method of KLAY deposit to airdrop
* only Operator

**depositToken**

```solidity
function depositToken(address token, uint amount) public
```

* Method of KIP7 deposit to airdrop
* only Operator

**refixBlockAmount**

```solidity
function refixBlockAmount(address token, uint blockAmount) public
```

* Method of change the amount paid per block
* only Operator

**refixDistributionRate**

```solidity
function refixDistributionRate(address token, address[] memory targets, uint[] memory rates) public
```

* Method of airdrop distribution rate change
* only Operator

**removeDistribution**

```solidity
function removeDistribution(address operator, address token) public
```

* Method of airdrop distribution remove
* only Operator

{% 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.klayswap.com/developers/contract/treasury.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.
