# KyberFeeHandler

{% hint style="warning" %}
You are referring to the **`Legacy`** version of KyberSwap docs.

For the most updated information, please refer to:

* [**`Classic`**](https://github.com/KyberNetwork/kyberswap-documentation/blob/main/reference/legacy/api-abi/core-smart-contracts/broken-reference/README.md)
* [**`Elastic`**](https://docs.kyberswap.com/reference/legacy/kyberswap-elastic)
* [**`Limit Order`**](https://docs.kyberswap.com/kyberswap-solutions/limit-order)
* [**`Aggregator`**](https://docs.kyberswap.com/kyberswap-solutions/kyberswap-aggregator)
  {% endhint %}

## contract KyberFeeHandler

is [IKyberFeeHandler](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-ikyberfeehandler.md), Utils5, DaoOperator, ReentrancyGuard\ imports Utils5, ReentrantcyGuard, [IKyberDao](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-ikyberdao.md), [IKyberFeeHandler](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-ikyberfeehandler.md), [IKyberNetworkProxy](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-ikybernetworkproxy.md), [ISimpleKyberProxy](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-isimplekyberproxy.md), IBurnableToken, ISanityRate, SafeMath, DaoOperator

*Source*: [KyberFeeHandler.sol](https://github.com/KyberNetwork/smart-contracts/blob/master/contracts/sol6/Dao/KyberFeeHandler.sol)

***

### INDEX[​](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-kyberfeehandler#index) <a href="#index" id="index"></a>

\<AUTOGENERATED\_TABLE\_OF\_CONTENTS>

### REFERENCE[​](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-kyberfeehandler#reference) <a href="#reference" id="reference"></a>

#### Events[​](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-kyberfeehandler#events) <a href="#events" id="events"></a>

#### `FeeDistributed`[​](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-kyberfeehandler#feedistributed) <a href="#feedistributed" id="feedistributed"></a>

Event for logging the rewards paid.

***

event **FeeDistributed**(IERC20 token, address platformWallet, uint256 platformFeeWei, uint256 rewardWei, uint256 rebateWei, address\[] rebateWallets, uint256\[] rebatePercentBpsPerWallet, uint256 burnAmtWei) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `token` | contract IERC20 | ERC20 token address | | `platformWallet` | address | address receiving the platform fee | | `platformFeeWei` | uint256 | platform fees distributed in wei | | `rewardWei` | uint256 | rewards distributed in wei | | `rebateWei` | uint256 | rebates distributed in wei | | `rebateWallets` | address\[] | address receiving the reabtes | | `rebatePercentBpsPerWallet` | uint256\[] | rebate percentage in BPS per wallet | | `burnAmtWei` | uint256 | burned amount in wei | Signature: `0x53e2e1b5ab64e0a76fcc6a932558eba265d4e58c512401a7d776ae0f8fc08994`

\\

#### `BRRUpdated`[​](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-kyberfeehandler#brrupdated) <a href="#brrupdated" id="brrupdated"></a>

Event for logging the update of the BRR values.

***

event **BRRUpdated**(uint256 rewardBps, uint256 rebateBps, uint256 burnBps, uint256 expiryTimestamp, uint256 epoch) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `rewardBps` | uint256 | reward settings in BPS | | `rebateBps` | uint256 | rebate settings in BPS | | `burnBps` | uint256 | burn settings in BPS | | `expiryTimestamp` | uint256 | timestamp when the settings will expire | | `epoch` | uint256 | epoch when the settings was set | Signature: 0x4b3150a36b957ed95a132721c7412af319174861da7c8c7a55ef6e1a2794528d

\\

#### `EthReceived`[​](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-kyberfeehandler#ethreceived) <a href="#ethreceived" id="ethreceived"></a>

Event logging the receiving of ETH to the FeeHandler.

***

event **EthReceived**(uint256 amount) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `amount` | uint256 | amount of ETH received in wei | Signature: 0x353bcaaf167a6add95a753d39727e3d3beb865129a69a10ed774b0b899671403

\\

#### `KyberDaoAddressSet`[​](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-kyberfeehandler#kyberdaoaddressset) <a href="#kyberdaoaddressset" id="kyberdaoaddressset"></a>

Event logging the setting of the KyberDao address.

***

event **KyberDaoAddressSet**(IKyberDao kyberDao) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `kyberDao` | IKyberDao | KyberDao contract address | Signature: 0x6792eb8fe9de88d4eaaee7128e99aede17da98cd391520d3ec51a365804722c4

\\

#### `BurnConfigSet`[​](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-kyberfeehandler#burnconfigset) <a href="#burnconfigset" id="burnconfigset"></a>

Event logging the setting of the burn configuration.

***

event **BurnConfigSet**(ISanityRate sanityRate, uint256 weiToBurn) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `sanityRate` | ISanityRate | SanityRates contract address | | `weiToBurn` | uint256 | amount of wei to burn | Signature: 0xe40f97f23269c4682610e9b2522d6d4272ee56f115906d71fcb3da82a860f755

\\

#### `RewardsRemovedToBurn`[​](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-kyberfeehandler#rewardsremovedtoburn) <a href="#rewardsremovedtoburn" id="rewardsremovedtoburn"></a>

Event logging the removed rewards for burning.

***

event **RewardsRemovedToBurn**(uint256 epoch, uint256 rewardsWei) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `epoch` | uin256 | epoch number when event was emitted | | `rewardsWei` | uint256 | removed rewards in wei to burn | Signature: 0x11c852d8be537f120b8d4b4d5c3c211870522fd96a8bd9fa51d102774077a51b

\\

#### `KyberNetworkUpdated`[​](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-kyberfeehandler#kybernetworkupdated) <a href="#kybernetworkupdated" id="kybernetworkupdated"></a>

Event logging the the setting of the network contract address.

***

event **KyberNetworkUpdated**(address kyberNetwork) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `kyberNetwork` | address | KyberNetwork contract address | Signature: 0x18970d46ac8a7d7e0da90e1bebb0be3e87ffc7705fc09d3bba5373d59b7a12aa

\\

#### `KyberProxyUpdated`[​](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-kyberfeehandler#kyberproxyupdated) <a href="#kyberproxyupdated" id="kyberproxyupdated"></a>

event logging the updating of the proxy contract address.

***

event **KyberProxyUpdated**(IKyberProxy kyberProxy) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `kyberProxy` | IKyberProxy | IKyberProxy contract address | Signature: 0x8457f9bd0d13488a6c265af376d291f3c6bd2311d9e8dee5671d4169ca6e0ae0

\\

#### Functions[​](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-kyberfeehandler#functions) <a href="#functions" id="functions"></a>

#### `receive`[​](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-kyberfeehandler#receive) <a href="#receive" id="receive"></a>

Emits EthReceived event when ETH is received in the contract.

***

### function **receive**() external payable[​](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-kyberfeehandler#function-receive-external-payable) <a href="#function-receive-external-payable" id="function-receive-external-payable"></a>

\
\### \`handleFees\` Handles the fees when a trade happens in the network, unless the trade is not involving any fees. \_\_\_ function \_\_handleFees\_\_(IERC20 token, address\[] rebateWallets, uint256\[] rebateBpsPerWallet, address platformWallet, uint256 platformFee, uint256 networkFee) external payable override onlyKyberNetwork nonReentrant | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`token\` | IERC20 | ERC20 token address | | \`rebateWallets\` | address\[] | list of rebate wallets that will get rebate for this trade | | \`rebateBpsPerWallet\` | uint256\[] | percentage of rebate for each wallet address out of total rebate | | \`platformWallet\` | address | wallet address receiving the platform fee | | \`platformFee\` | uint256 | fee amount in wei the platfrom wallet is entitled to | | \`networkFee\` | uint256 | fee amount in wei to be allocated for BRR |\
\### \`claimStakerReward\` Claim the staking rewards from KyberFeeHandler. \_\_\_ function \_\_claimStakerReward\_\_(address staker, uint256 epoch) external returns (uint256 amountWei) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`staker\` | address | staker's address | | \`epoch\` | uin256 | which epoch is the staker claiming the reward | \*\*Returns:\*\*\ amountWei - The staking reward amount claimed in wei.\
\### \`claimReserveRebate\` Claim the rebates for the rebate wallet from KyberFeeHandler. \_\_\_ function \_\_claimReserveRebate\_\_(address rebateWallet) external returns (uint256 amountWei) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`rebateWallet\` | address | address receiving the rebate | \*\*Returns:\*\*\ amountWei - The rebate amount claimed in wei.\
\### \`claimPlatformFee\` Claim the platform fees for the platform wallet from KyberFeeHandler. \_\_\_ function \_\_claimPlatformFee\_\_(address platformWallet) external returns (uint256 amountWei) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`platformWallet\` | address | address receiving the platform fee | \*\*Returns:\*\*\ amountWei - The platform fee amount claimed in wei.\
\### \`burnKnc\` Burns KNC. The burn amount is limited. Forces block delay between burn calls. only externall owned accounts can call this function. \_\_\_ function \_\_burnKnc\_\_() external onlyNonContract returns (uint256 kncBurnAmount) \*\*Returns:\*\*\ kncBurnAmount - Amount of knc burned\
\### \`makeEpochRewardBurnable\` If no one voted for an epoch, no one will receive rewards, and the rewards instead will be marked for burning. \_\_\_ function \_\_makeEpochRewardBurnable\_\_(uint256 epoch) external | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`epoch\` | uint256 | epoch number to check |\
\### \`getSanityRateContracts\` Returns a list of sanity rate contracts, where index 0 is the currently used contract address, and indexes > 0 are older versions. \_\_\_ function \_\_getSanityRateContracts\_\_() external view returns (ISanityRate\[] sanityRates) \*\*Returns:\*\*\ sanityRates - SanityRates contract address\
\### \`getLatestSanityRate\` Return latest KNC/ETH rate from the SanityRates contract. \_\_\_ function \_\_getLatestSanityRate\_\_() external view returns (uint256 kncToEthSanityRate) | Parameter | Type | Description | \*\*Returns:\*\*\ kncToEthSanityRate - the KNC/ETH rate from SanityRates\
\### \`getBRR\` Gets the Burn, Rewards, Rebates values from the KyberDao and updates the FeeHandler BRR data. The burnBps value can be extrapolated since the rewardBps and rebateBps is known and the total BPS is 10000. \_\_\_ function \_\_getBRR\_\_() public returns (uint256 rewardBps, uint256 rebateBps, uint256 epoch) \*\*Returns:\*\*\ rewardBps - reward settings in BPS rebateBps - rebate settings in BPS epoch - epoch when the settings was set\
\### \`readBRRData\` Returns the the Burn, Rewards, Rebates values in BPS. The burnBps value can be extrapolated since the rewardBps and rebateBps is known and the total BPS is 10000. \_\_\_ function \_\_readBRRData\_\_() public view returns (uint256 rewardBps, uint256 rebateBps, uint256 expiryTimestamp, uint256 epoch) \*\*Returns:\*\*\ rewardBps, uint256 rebateBps, uint256 expiryTimestamp, uint256 epoch rewardBps - reward settings in BPS rebateBps - rebate settings in BPS expiryTimestamp - expiry timestamp in epoch time epoch - epoch when the settings was set
