# Private Placement Smart Contract Document ### 1. Trade BUSD for KALA >#### Description > User trade BUSD for KALA. 20% of the traded KALAs will be released to user immediately. User can claim the left 80% pending KALAs in the following 12 months, 1/12 per month. > ```javascript > //Execute IBEP20.approve(usdAmount) before invoke this method > function tradeBusd(uint busdAmount) external > //Execute IBEP20.approve(0) if some error occurs > ``` >#### Request Parameters >|Parameter|Type|Description| >|:----- |:-------|:-----| >|busdAmount |uint || >#### Event > ```javascript > event TradeBusd(uint busdAmount); > ``` ### 2. Trade BNB for KALA >#### Description > User trade BNB for KALA. 20% of the traded KALAs will be released to user immediately. User can claim the left 80% pending KALAs in the following 12 months, 1/12 per month. > > Due the the price change of BNB, Same amount of BNB may trade different amount of KALA > ```javascript > // contract.tradeKalaByBnb({value: bnbAmount}) > function tradeBnb() payable external > ``` >#### Request Parameters >| parameter | type |Description| >| :-------- | :--- | :------- | >| bnbAmount | uint || >#### Event > ```javascript > event TradeBnb(uint bnbAmount); > ``` ### 3. Claim KALA >#### Description > User claim the pending KALA traded with BNB or BUSD > ```javascript > function claim() external; > ``` >#### Event > ```javascript > event Claim(); > ``` ### 4. Query BNB price > ```javascript > function queryBnbPrice() external view returns (uint); > ``` ### 5. Query BNB Amount >#### Description > Query how much BNB is traded for KALA. > ```javascript > //user scope > function queryBusdAmount() external view returns (uint); > ``` ### 6. Query BUSD Amount >#### Description > Query how much BUSD is traded for KALA > ```javascript > //user scope > function queryBnbAmount() external view returns (uint); > ``` ### 7. Query KALA Amount >#### Description > Query KALA amount a user has gotten. Include the released KALAs and the pending KALAs. > ```javascript > //user scope > function queryKalaAmount() external view returns (uint); > ``` ### 8. Query Total USD Amount >#### Description > Query the USD amount all the users has traded, include BUSD and BNB. BNB amount is converted to USD > ```javascript > function queryTotalUsdAmount() external view returns (uint); > ``` ### 9. Query KALA Release Logs >#### Description > 20% KALAs will be released in the phase of trading. The other 80% pending KALAs will be released(user need to claim manually) in the following 12 months. > > Release log include both. > ```javascript > function queryReleaseLog() external view returns (uint[] memory releaseTimes, uint[] memory releaseAmounts); > ``` ### 10. Query Trade Configuration >#### Description > The Mainnet trade configuration will be different from testnet one, since there is no enough BUSD/BNB in testnet for testing. > ```javascript > function queryTradeConfig() external view returns ( > uint startTime, // trade start time(seconds) > uint duration, // trade duration(seconds) > uint minUsdAmount, //User's minimum usd amount for each trade > uint maxUsdAmount, //User's maximum usd amount for all the trades > uint totalUsdLimit, //The total usd amount limit for this prirvate placement activity. > uint kalaPrice // Kala price. > ); > ``` >#### > ### 11. 获取用户数据 ```javascript function queryUserTraderInfo(address trader) external returns ( uint kalaAmount, uint claimAmount, uint busdAmount, uint usdAmount, uint bnbAmount ) ``` >#### ### 12. 获取用户数据 ```javascript function queryUserReleaseLog(address trader) returns ( uint[] memory timeArray, uint[] memory amountArray, uint8[] memory releaseTypeArray, uint[] memory blockNumberArray); ``` >####