# Oracle

## ConfidentialOracle Contract

The `ConfidentialOracle` contract provides functionalities to store and retrieve arbitrary key-value data from a confidential mapping. A zkSNARKs proof is required to set the values, ensuring privacy and security.

### Public Functions

* **getValue**: This function returns the value stored against a given key for a particular owner.

```solidity
function getValue(
    address owner,
    uint256 key
) 
public view 
returns (uint256);
```

* **setValue**: This function allows an owner to set a value against a key in the mapping. The function verifies the zkSNARKs proof before updating the value.

```solidity
function setValue(
    bytes calldata proof,
    uint[2] memory input
)
public;
```
