# IKyberStorage

{% 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`**](/reference/legacy/kyberswap-elastic.md)
* [**`Limit Order`**](/kyberswap-solutions/limit-order.md)
* [**`Aggregator`**](/kyberswap-solutions/kyberswap-aggregator.md)
  {% endhint %}

## interface IKyberStorage

imports [IKyberNetworkProxy](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-ikybernetworkproxy.md), [IKyberReserve](https://docs.kyberswap.com/Legacy/api-abi/core-smart-contracts/api_abi-ikyberreserve.md)

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

***

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

\<AUTOGENERATED\_TABLE\_OF\_CONTENTS>

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

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

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

Returns the reserveID of the reserve given the address.

***

function **getReserveId**(address reserve) external view returns (bytes32 reserveId) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | `reserve` | address | reserve address | **Returns:**\ reserveId - 32-byte reserve ID

\
\### \`getReserveIdsFromAddresses\` Returns a list of reserveIDs from a list of given addresses. \_\_\_ function \_\_getReserveIdsFromAddresses\_\_(address\[] reserveAddresses) external view returns (bytes32\[] reserveIds) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`reserveAddresses\` | address\[] | list of reserve addresses | \*\*Returns:\*\*\ reserveIds - array of 32-byte reserve IDs\
\### \`getReserveAddressesFromIds\` Returns a list of addresses from a list of given reserve IDs. \_\_\_ function \_\_getReserveAddressesFromIds\_\_(bytes32\[] reserveIds) external view returns (address\[] reserveAddresses) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`reserveIds\` | bytes32\[] | list of reserve IDs | \*\*Returns:\*\*\ reserveAddresses - array of reserve addresses\
\### \`getReserveIdsPerTokenSrc\` Returns a list of reserve IDs that supports a given source token. \_\_\_ function \_\_getReserveIdsPerTokenSrc\_\_(IERC20 token) external view returns (bytes32\[] reserveIds) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`token\` | IERC20 | source token | \*\*Returns:\*\*\ reserveIds - array of 32-byte reserve IDs\
\### \`getReserveAddressesPerTokenSrc\` Returns a list of reserve addresses that supports a given source token. \_\_\_ function \_\_getReserveAddressesPerTokenSrc\_\_(IERC20 token, uint256 startIndex, uint256 endIndex) external view returns (address\[] reserveAddresses) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`token\` | IERC20 | source token | | \`startIndex\` | uint256 | start index of reserve list to narrow search | | \`endIndex\` | uint256 | end index of reserve list to narrow search | \*\*Returns:\*\*\ reserveAddresses - array of reserve addresses\
\### \`getReserveIdsPerTokenDest\` Returns a list of reserve IDs that supports a given destination token. \_\_\_ function \_\_getReserveIdsPerTokenDest\_\_(IERC20 token) external view returns (bytes32\[] reserveIds) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`token\` | IERC20 | destination token | \*\*Returns:\*\*\ reserveIds - array of 32-byte reserve IDs\
\### \`getReserveAddressesByReserveId\` Returns a list of addresses from a given reserve ID, where index 0 is the currently used reserve address and indexes > 0 are older versions. \_\_\_ function \_\_getReserveAddressesByReserveId\_\_(bytes32 reserveId) external view returns (address\[] reserveAddresses) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`reserveId\` | bytes32 | reserve ID of the reserve | \*\*Returns:\*\*\ reserveAddresses - array of reserve addresses\
\### \`getRebateWalletsFromIds\` Returns a list of rebates wallets from a list of given reserve IDs. \_\_\_ function \_\_getRebateWalletsFromIds\_\_(bytes32\[] reserveIds) external view returns (address\[] rebateWallets) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`reserveIds\` | bytes32\[] | list of reserve IDs | \*\*Returns:\*\*\ rebateWallets - array of rebate wallets addresses\
\### \`getKyberProxies\` Returns the list of KyberNetworkProxy addresses. \_\_\_ function \_\_getKyberProxies\_\_() external view returns (IKyberNetworkProxy\[])\ \*\*Returns:\*\*\ Array of KyberNetworkProxy addresses\
\### \`getReserveDetailsByAddress\` Returns a reserve's information given a address. \_\_\_ function \_\_getReserveDetailsByAddress\_\_(address reserve) external view returns (bytes32 reserveId, address rebateWallet, ReserveType resType, bool isFeeAccountedFlag, bool isEntitledRebateFlag) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`reserve\` | address | address of reserve | \*\*Returns:\*\*\ reserveId - reserve ID of the reserve rebateWallet - rebate wallet address of the reserve resType - the reserve type, where 0 - none, 1 - FPR, 2 - APR, 3 - Bridge, 4 - Utility, 5 - Custom, 6 - Orderbook, 7 - Last isFeeAccountedFlag - whether fees are to be charged for a trade for this reserve isEntitledRebateFlag - whether reserve is entitled to receive rebates\
\### \`getReserveDetailsById\` Returns a reserve's information given a reserve ID. \_\_\_ function \_\_getReserveDetailsById\_\_(bytes32 reserveId) external view returns (address reserveAddress, address rebateWallet, ReserveType resType, bool isFeeAccountedFlag, bool isEntitledRebateFlag) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`reserveId\` | bytes32 | reserve ID of the reserve | \*\*Returns:\*\*\ reserveAddress - address of the reserve rebateWallet - rebate wallet address of the reserve resType - the reserve type, where 0 - none, 1 - FPR, 2 - APR, 3 - Bridge, 4 - Utility, 5 - Custom, 6 - Orderbook, 7 - Last isFeeAccountedFlag - whether fees are to be charged for a trade for this reserve isEntitledRebateFlag - whether reserve is entitled to receive rebates\
\### \`getFeeAccountedData\` Returns array of booleans if a respective reserve is fee accounted given a list of reserve IDs \_\_\_ function \_\_getFeeAccountedData\_\_(bytes32\[] reserveIds) external view returns (bool\[] feeAccountedArr) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`reserveIds\` | bytes32\[] | reserve ID of the reserve | \*\*Returns:\*\*\ feeAccountedArr - array of fee accounted booleans respective to reserve IDs input\
\### \`getEntitledRebateData\` Returns array of booleans if a respective reserve is entitled for rebates given a list of reserve IDs \_\_\_ function \_\_getEntitledRebateData\_\_(bytes32\[] reserveIds) external view returns (bool\[] entitledRebateArr) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`reserveIds\` | bytes32\[] | reserve ID of the reserve | \*\*Returns:\*\*\ entitledRebateArr - array of rebate entitled booleans respective to reserve IDs input\
\### \`getReservesData\` Returns information about fee, address, and rebate information of reserves given their reserve IDs. Also check if these reserve IDs are listed for token. \_\_\_ function \_\_getReservesData\_\_(bytes32\[] reserveIds, IERC20 src, IERC20 dest) external view returns (bool areAllReservesListed, bool\[] feeAccountedArr, bool\[] entitledRebateArr, IKyberReserve\[] reserveAddresses) | Parameter | Type | Description | | --------- |:-----:|:-----------:| | \`reserveIds\` | bytes32\[] | list of reserve IDs | | \`src\` | IERC20 | source token | | \`dest\` | IERC20 | destination token | \*\*Returns:\*\*\ areAllReservesListed - if token is listed for the given reserve ID feeAccountedArr - array of fee accounted booleans respective to reserve IDs input entitledRebateArr - array of rebate entitled booleans respective to reserve IDs input reserveAddresses - array of reserve addresses\
\### \`isKyberProxyAdded\` Returns a boolean indicating if a KyberNetworkProxy has been added. \_\_\_ function \_\_isKyberProxyAdded\_\_() external view returns (bool)\ \*\*Returns:\*\*\ \`true\` if proxy has been added, otherwise \`false\`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.kyberswap.com/reference/legacy/api-abi/core-smart-contracts/ikyberstorage.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
