---
# System prepended metadata

title: Kalata IDO Smart Contract Document

---

# Kalata IDO Smart Contract Document


### 1. 获取配置参数

```solidity=
function queryConfig() override external view returns (
    address feeCollector, //不管
    address busdToken,//不管
    address kalaToken,//不管
    address bnbFeeder,//不管
    uint totalUsdLimit,//要募集的资金总量 
    uint kalaPrice // Kala 价格
); 
```


### 2. 获取交易参数

#### 说明: 获取交易的开始时间和结束时间. 来判断当前是否可以交易

```solidity=
// 不要用new Date()来获取最新时间
// 用 (await web3.eth.getBlock("latest")).timestamp
function queryTradeConfig() external view returns (
    uint startTime, // 交易开始时间
    uint endTime //// 交易结束时间
);
```


### 3. 用BUSD交易KALA

```solidity
//先调用IBEP20.approve(usdAmount)来授权
function tradeBusd(uint busdAmount) external
//Execute IBEP20.approve(0) if some error occurs
```

>#### Request Parameters

>|Parameter|Type|Description|
>|:----- |:-------|:-----|
>|busdAmount |uint ||


### 4. 用Trade BNB for KALA

因为BNB价格是实时变化的. 相同数量的BNB可能获得不同数量的KALA

```javascript
// contract.tradeBnb({value: bnbAmount})
function tradeBnb() payable external
```

>#### Request Parameters

>| parameter | type |Description|
>| :-------- | :--- | :------- |
>| bnbAmount | uint ||


### 5. Claim KALA

```solidity=
function claim() external;
```

 
### 4. 获取BNB价格

```solidity
function queryBnbPrice() external view returns (uint);
```


### 5. 获取所有用户已经交易的USD数量(BNB会转成USD计算)


```solidity
function queryTotalUsdAmount() external view returns (uint);
```


 
### 6. 获取用户数据


```solidity
function queryTraderData(address trader) external view returns (
    uint minUsdAmount,//允许交易的最小USD数量
    uint maxUsdAmount,//允许交易的最大USD数量
    uint usdAmount, //已经交易的USD数量
    uint kalaAmount, //已经交易获取的KALA数量(包括已经领取的和没有领取的)
    uint claimedKalaAmount //已经领取的KALA的数量
);
```
