# EcoPot

EcoPot plan contract to be paid to staking users. One token can be distributed per Ecopot project, and only authorized operators can plan and proceed.

## Address

Contract adress after production is deployed (scope link)&#x20;

## Events, Read-Only Functions, and State-Changing Functions&#x20;

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

## Events

**Initialized**

```solidity
event Initialized(uint totalAmount, uint amountPerBlock, uint distributableBlock, uint estimateEndBlock);
```

* Event log of Ecopot initialized
* Parameters
  * `totalAmount` : Amount of tokens to be distribute &#x20;
  * `amountPerBlock` : Amount of tokens to be distributed per block
  * `distributableBlock` : Start Block number
  * `estimateEndBlock` : Estimate block number of EcoPot be ended

**Deposit**

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

* Event log of tokens deposit
* Parameters
  * `amount` : Deposit token amount
  * `totalAmount` : Deposit token total amount
  * `estimateEndBlock` :  Estimate block number of EcoPot be ended

**Removed**

```solidity
event Removed(address operator, address token, uint estimateEndBlock, uint remainedBalance);
```

* Event log of Ecopot removed
* Parameters
  * `operator` : Operator address
  * `token` : Token address of distributed
  * `estimateEndBlock` : Estimate block number of EcoPot be ended
  * `remainedBalance` : Token amount of remained

**ChangeAvailable**

```solidity
event ChangeAvailable(bool b);
```

* Event log of state changed

**GiveReward**

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

* Event log of when reward is claimed
* Parameters
  * `user` : User address
  * `amount` : Amount of token claimed
  * `currentIndex`:  Index result of the Ecopot of the wallet after claiming&#x20;
  * `userRewardSum` :  Amount of KSP that has been accrued so far
    {% endtab %}

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

## Read-Only Functions

#### name

* EcoPot Project name

#### decimals

* 18

#### token

* KIP7 token address

**totalAmount**

* Amount of tokens to be distribute

#### getDistributedCurrent

* Amount of tokens distributed

#### distributableBlock

* Block number to distribute start

#### estimateEndBlock

* Estimate block number of EcoPot be ended

**amountPerBlock**

* 블럭당 배분되는 Token 수량

**isAvailable**

* Returns if the EcoPot is availabled

**userRewardSum**

* mapping(address => uint)
* EcoPot reward amount by each user address
  {% endtab %}
  {% endtabs %}
