# InitOracle

INIT oracle contract.

## View Functions

### primarySources

Get the primary oracle source for the given token address.

{% hint style="info" %}
If the token is not supported, the primary source will be Solidity's default value (0 value).
{% endhint %}

```solidity
function primarySources(address _token) external view returns (address primarySource);
```

Parameters:

| Name     | Type      | Description                                |
| -------- | --------- | ------------------------------------------ |
| `_token` | `address` | token address to get primary oracle source |

Returns:

| Name            | Type      | Description                   |
| --------------- | --------- | ----------------------------- |
| `primarySource` | `address` | primary source oracle address |

### secondarySources

Get the secondary oracle source for the given token address.

{% hint style="info" %}
If the token is not supported, the secondary source will be Solidity's default value (0 value).
{% endhint %}

```solidity
function secondarySources(address _token) external view returns (address secondarySource);
```

Parameters:

| Name     | Type      | Description                                  |
| -------- | --------- | -------------------------------------------- |
| `_token` | `address` | token address to get secondary oracle source |

Returns:

| Name              | Type      | Description                    |
| ----------------- | --------- | ------------------------------ |
| `secondarySource` | `address` | seconary source oracle address |

### maxPriceDeviations\_e18

Get the maximum price deviation allowed between the sources for the given token address, with `10^18` precision.

```solidity
function maxPriceDeviations_e18(address _token) external view returns (uint maxPriceDeviation_e18);
```

Parameters:

| Name     | Type      | Description                              |
| -------- | --------- | ---------------------------------------- |
| `_token` | `address` | token address to get max price deviation |

Returns:

| Name                    | Type      | Description                                    |
| ----------------------- | --------- | ---------------------------------------------- |
| `maxPriceDeviation_e18` | `uint256` | maximum price deviation with `10^18` precision |

## External Functions

### getPrice\_e36

Get the price for a specified token, with `10^36` precision.

```solidity
function getPrice_e36(address _token) external view returns (uint price_e36);
```

Parameters:

| Name     | Type      | Description                |
| -------- | --------- | -------------------------- |
| `_token` | `address` | token address to get price |

Results:

| Name        | Type      | Description                        |
| ----------- | --------- | ---------------------------------- |
| `price_e36` | `uint256` | token price with `10^36` precision |

### getPrices\_e36

Get prices for the specified tokens, with `10^36` precision.

```solidity
function getPrices_e36(address[] calldata _tokens) external view returns (uint[] memory prices_e36);
```

Parameters:

| Name      | Type        | Description                         |
| --------- | ----------- | ----------------------------------- |
| `_tokens` | `address[]` | array of token address to get price |

Results:

| Name         | Type        | Description                                  |
| ------------ | ----------- | -------------------------------------------- |
| `prices_e36` | `uint256[]` | array of token prices with `10^36` precision |
