# KyberNetwork

{% 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/misc-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 %}

## KyberNetwork

is WithdrawableNoModifiers, Utils5, [IKyberNetwork](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-ikybernetwork.md), ReentrancyGuard\ imports WithdrawableNoModifiers, Utils5, ReentrancyGuard, SafeERC20, [IKyberNetwork](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-ikybernetwork.md), [IKyberReserve](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-ikyberreserve.md), [IKyberFeeHandler](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-ikyberfeehandler.md), [IKyberDao](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-ikyberdao.md), [IKyberMatchingEngine](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-ikybermatchingengine.md), [IKyberStorage](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-ikyberstorage.md), IGasHelper

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

***

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

\<AUTOGENERATED\_TABLE\_OF\_CONTENTS>

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

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

#### `EtherReceival`[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#etherreceival) <a href="#etherreceival" id="etherreceival"></a>

Event logging the receival of ETH in the network contract.

***

event **EtherReceival**(address sender, uint256 amount) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `sender` | address | sender's address | | `amount` | uint256 | amount of ETH received in wei | Signature: 0x75f33ed68675112c77094e7c5b073890598be1d23e27cd7f6907b4a7d98ac619

\\

#### `KyberFeeHandlerUpdated`[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#kyberfeehandlerupdated) <a href="#kyberfeehandlerupdated" id="kyberfeehandlerupdated"></a>

Event logging the setting of the new KyberFeeHandler contract.

***

event **KyberFeeHandlerUpdated**(IKyberFeeHandler newKyberFeeHandler) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `newKyberFeeHandler` | IKyberFeeHandler | new KyberFeeHandler contract | Signature: 0x5128fc9be01065f3cabe4c8b72796eb6b8a00284f39a2390cd71e91b509f90b6

\\

#### `KyberMatchingEngineUpdated`[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#kybermatchingengineupdated) <a href="#kybermatchingengineupdated" id="kybermatchingengineupdated"></a>

Event logging the setting of the new KyberMatchingEngine contract.

***

event **KyberMatchingEngineUpdated**(IKyberMatchingEngine newKyberMatchingEngine) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `newKyberMatchingEngine` | IKyberMatchingEngine | //TODO: description |

Signature: KyberMatchingEngineUpdated(IKyberMatchingEngine)

\\

#### `GasHelperUpdated`[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#gashelperupdated) <a href="#gashelperupdated" id="gashelperupdated"></a>

Event logging the setting of the new GasHelper contract.

***

event **GasHelperUpdated**(IGasHelper newGasHelper) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `newGasHelper` | IGasHelper | new GasHelper contract | Signature: 0x95ba6becebde78de944071b522d81414292f67e3d95db7d9df46bb8e8b3da8b8

\\

#### `KyberDaoUpdated`[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#kyberdaoupdated) <a href="#kyberdaoupdated" id="kyberdaoupdated"></a>

Event logging the setting of the new KyberDao contract.

***

event **KyberDaoUpdated**(IKyberDao newKyberDao) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `newKyberDao` | IKyberDao | new KyberDao contract | Signature: 0x16a2e1af8449067f38aa765b54d479785c94d8ebdfbba7b410e3488b0877c1e4

\\

#### `KyberNetworkParamsSet`[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#kybernetworkparamsset) <a href="#kybernetworkparamsset" id="kybernetworkparamsset"></a>

Event logging the setting of the maxGasPrice and negligibleRateDiffBps params in the network.

***

event **KyberNetworkParamsSet**(uint256 maxGasPrice, uint256 negligibleRateDiffBps) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `maxGasPrice` | uint256 | maximum gas price limit to prevent front running | | `negligibleRateDiffBps` | uint256 | negligible rate difference in BPS | Signature: 0xc1e6729d7fd9a615adc03ebe7d8ff15649d8eed7516bf6c30538a1e722bb1975

\\

#### `KyberNetworkSetEnable`[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#kybernetworksetenable) <a href="#kybernetworksetenable" id="kybernetworksetenable"></a>

Event logging the enabling or disabling of trading in the network

***

event **KyberNetworkSetEnable**(bool isEnabled) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `isEnabled` | bool | `true` if network is enabled, otherwise `false` | Signature: 0x8a846a525e22497042ee2f99423a8ff8bbb831d3ae5384692bf6040f591c1eba

\\

#### `KyberProxyAdded`[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#kyberproxyadded) <a href="#kyberproxyadded" id="kyberproxyadded"></a>

Event logging the adding of a new proxy contract.

***

event **KyberProxyAdded**(address kyberProxy) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `kyberProxy` | address | added KyberNetworkProxy contract | Signature: 0x0b008ff10c7e378a96d6566635e1aa748886d16fb87659faee2aa20608fec815

\\

#### `KyberProxyRemoved`[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#kyberproxyremoved) <a href="#kyberproxyremoved" id="kyberproxyremoved"></a>

Event logging the removal of a proxy contract.

***

event **KyberProxyRemoved**(address kyberProxy) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `kyberProxy` | address | removed KyberNetworkProxy contract | Signature: 0xbb9ee888852ae070b75270fa50ea2845ba32102d3a96842c7c416d12aad2f487

\\

#### `ListedReservesForToken`[​](https://docs.kyberswap.com/Legacy/api-abi/misc/api_abi-kybernetwork#listedreservesfortoken) <a href="#listedreservesfortoken" id="listedreservesfortoken"></a>

Event logging the listing of a list of reserves for a token.

***

event **ListedReservesForToken**(IERC20 token, address\[] reserves, bool add) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `token` | IERC20 | ERC20 token address | | `reserves` | address\[] | list of reserve addresses | | `add` | bool | `true` if to list, `false` otherwise | Signature: 0xd4b0877e3beef91cd767680ac04114217ec7c9cb3a4705c03fc8061de81168fc

\\

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

\
\### \`tradeWithHint\` Makes a trade between src and dest token and send dest tokens to destAddress, with an additional \`hint\` parameter for reserve routing. Function is backwards compatible to pre-Katalyst.

***

function **tradeWithHint**(address payable trader, ERC20 src, uint256 srcAmount, ERC20 dest, address payable destAddress, uint256 maxDestAmount, uint256 minConversionRate, address payable walletId, bytes hint) external payable returns (uint256 destAmount) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `trader` | address | trader's address | | `src` | ERC20 | source ERC20 token contract address | | `srcAmount` | uint256 | source ERC20 token amount in its token decimals | | `dest` | ERC20 | destination ERC20 token contract address | | `destAddress` | address | recipient address for destination ERC20 token | | `maxDestAmount` | uint256 | limit on the amount of destination tokens | | `minConversionRate` | uint | minimum conversion rate; trade is canceled if actual rate is lower | | `walletId` | address | wallet address to send part of the fees to | | `hint` | bytes | for filtering permissionless reserves | **Returns:**\ destAmount - Amount of actual destination tokens

\
\### \`tradeWithHintAndFee\` Executes a trade between src and dest token and send dest tokens to destAddress; includes the platform fee. \_\_\_ function \_\_tradeWithHintAndFee\_\_(address payable trader, IERC20 src, uint256 srcAmount, IERC20 dest, address payable destAddress, uint256 maxDestAmount, uint256 minConversionRate, address payable platformWallet, uint256 platformFeeBps, bytes hint) external payable override returns (uint256 destAmount) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`trader\` | address | trader's address | | \`src\` | IERC20 | source ERC20 token contract address | | \`srcAmount\` | uint256 | source ERC20 token amount in its token decimals | | \`dest\` | IERC20 | destination ERC20 token contract address | | \`destAddress\` | address | recipient address for destination ERC20 token | | \`maxDestAmount\` | uint256 | limit on the amount of destination tokens | | \`minConversionRate\` | uint256 | minimum conversion rate; trade is canceled if actual rate is lower | | \`platformWallet\` | address | address receiving the platform fee | | \`platformFeeBps\` | uint256 | platform fee in BPS to be used in this trade | | \`hint\` | bytes | hint in bytes for reserve routing | \*\*Returns:\*\*\ destAmount - Amount of actual destination tokens in twei\
\### \`getExpectedRateWithHintAndFee\` Get the token conversion rate after processing the hint and includes the platform fee. \_\_\_ function \_\_getExpectedRateWithHintAndFee\_\_(IERC20 src, IERC20 dest, uint256 srcQty, uint256 platformFeeBps, bytes hint) external view override returns (uint256 rateWithNetworkFee, uint256 rateWithAllFees) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`src\` | IERC20 | source ERC20 token contract address | | \`dest\` | IERC20 | destination ERC20 token contract address | | \`srcQty\` | uint256 | source ERC20 token amount in its token decimals | | \`platformFeeBps\` | uint256 | platform fee in BPS | | \`hint\` | bytes | hint in bytes for reserve routing | \*\*Returns:\*\*\ rateWithNetworkFee - conversion rate of the src and dest tokens after deducting the network fee. rateWithAllFees - conversion rate of the src and dest tokens after deducting the network and platform fee.\
\### \`getExpectedRate\` Get the token expected and worst rates. worstRate is hardcoded as 3% lower of expectedRate. Function is backwards compatible to pre-Katalyst. \_\_\_ function \_\_getExpectedRate\_\_(ERC20 src, ERC20 dest, uint256 srcQty) external view returns (uint256 expectedRate, uint256 worstRate) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`src\` | ERC20 | source ERC20 token contract address | | \`dest\` | ERC20 | destination ERC20 token contract address | | \`srcQty\` | uint256 | source ERC20 token amount in its token decimals | \*\*Returns:\*\*\ expectedRate - rate for a trade after deducting network fee worstRate - rate for a trade, calculated to be expectedRate \* 97 / 100\
\### \`getNetworkData\` Returns basic network data. \_\_\_ function \_\_getNetworkData\_\_() external view override returns (uint256 negligibleDiffBps, uint256 networkFeeBps, uint256 expiryTimestamp)\ \*\*Returns:\*\*\ negligibleDiffBps - neglibigle difference in BPS networkFeeBps - network fees in BPS expiryTimestamp - expiry timestamp in epoch time when the network fees will expire and need to be updated\
\### \`getContracts\` Returns the Kyber contracts used by the network. \_\_\_ function \_\_getContracts\_\_() external returns (IKyberFeeHandler kyberFeeHandlerAddress, IKyberDao kyberDaoAddress, IKyberMatchingEngine kyberMatchingEngineAddress, IKyberStorage kyberStorageAddress, IGasHelper gasHelperAddress, IKyberNetworkProxy\[] kyberProxyAddresses)\ \*\*Returns:\*\*\ kyberFeeHandlerAddress - KyberFeeHandler contract address kyberDaoAddress - KyberDao contract address kyberMatchingEngineAddress - KyberMatchingEngine contract address kyberStorageAddress - KyberStorage contract address gasHelperAddress - GasHelper contract address kyberProxyAddresses - array of KyberNetworkProxy contract addresses\
\### \`maxGasPrice\` Returns the maximum gas price limit to prevent front running. \_\_\_ function \_\_maxGasPrice\_\_() external view override returns (uint256)\ \*\*Returns:\*\*\ The maximum gas price limit\
\### \`enabled\` Returns a boolean determining if trading is enabled on the network. \_\_\_ function \_\_enabled\_\_() external view override returns (bool)\ \*\*Returns:\*\*\ Returns \`true\` if the network is enabled for trading, otherwise \`false\`.
