# MockFeeManager v0.3.0 API Reference
Source: https://docs.chain.link/chainlink-local/api-reference/v0.3.0/mock-fee-manager

> For the complete documentation index, see [llms.txt](/llms.txt).

> **NOTE: Integrate Chainlink Local into your project**
>
> ### npm
>
> If you use [NPM](https://www.npmjs.com/), install the [@chainlink/local NPM
> package](https://www.npmjs.com/package/@chainlink/local):
>
> ```shell
> npm install @chainlink/local@0.3.0
> ```
>
> ### yarn
>
> If you use [Yarn](https://yarnpkg.com/), install the [@chainlink/local NPM
> package](https://www.npmjs.com/package/@chainlink/local):
>
> ```shell
> yarn add @chainlink/local@0.3.0
> ```
>
> ### foundry
>
> If you use [Foundry](https://book.getfoundry.sh/):
>
> ```shell
> forge install smartcontractkit/chainlink-local@v0.3.0
> ```
>
> and then set remappings to: `@chainlink/local/=lib/chainlink-local/` in either `remappings.txt` or `foundry.toml` file
>
> ### RemixIDE
>
> Import the `CCIPLocalSimulator` contract from the `@chainlink/local` package:
>
> ```solidity
> import {CCIPLocalSimulator} from "@chainlink/local@0.3.0/src/ccip/CCIPLocalSimulator.sol";
> ```

## MockFeeManager

Mock verifier fee manager.

[MockFeeManager](https://github.com/smartcontractkit/chainlink-local/blob/v0.3.0/src/data-streams/MockFeeManager.sol)

## Variables

### i\_linkAddress

```solidity
address public immutable i_linkAddress
```

### i\_nativeAddress

```solidity
address public immutable i_nativeAddress
```

### i\_proxyAddress

```solidity
address public immutable i_proxyAddress
```

### i\_rewardManager

```solidity
IRewardManager public immutable i_rewardManager
```

### PERCENTAGE\_SCALAR

the total discount that can be applied to a fee, 1e18 = 100% discount

```solidity
uint64 private constant PERCENTAGE_SCALAR = 1e18
```

### s\_mockDiscounts

```solidity
mapping(address => uint256) public s_mockDiscounts
```

### s\_nativeSurcharge

```solidity
uint256 public s_nativeSurcharge
```

## Errors

### ExpiredReport

```solidity
error ExpiredReport();
```

### InvalidAddress

```solidity
error InvalidAddress();
```

### InvalidDeposit

```solidity
error InvalidDeposit();
```

### InvalidDiscount

```solidity
error InvalidDiscount();
```

### InvalidQuote

```solidity
error InvalidQuote();
```

### InvalidSurcharge

```solidity
error InvalidSurcharge();
```

### Unauthorized

```solidity
error Unauthorized();
```

## Functions

### \_processFee

```solidity
function _processFee(bytes calldata payload, bytes calldata parameterPayload, address subscriber) internal;
```

### constructor

```solidity
constructor(address linkAddress, address nativeAddress, address proxyAddress, address rewardManager) ;
```

### getFeeAndReward

```solidity
function getFeeAndReward(address subscriber, bytes memory report, address quoteAddress)
    public
    view
    returns (Common.Asset memory, Common.Asset memory, uint256);
```

### getMockDiscount

```solidity
function getMockDiscount(address subscriber) external view returns (uint256);
```

### processFee

```solidity
function processFee(bytes calldata payload, bytes calldata parameterPayload, address subscriber)
    external
    payable
    override
    onlyProxy;
```

### processFeeBulk

```solidity
function processFeeBulk(bytes[] calldata payloads, bytes calldata parameterPayload, address subscriber)
    external
    payable
    override
    onlyProxy;
```

### setMockDiscount

```solidity
function setMockDiscount(address subscriber, uint256 discount) external;
```

### setNativeSurcharge

```solidity
function setNativeSurcharge(uint64 surcharge) external;
```

### supportsInterface

```solidity
function supportsInterface(bytes4 interfaceId) external pure override returns (bool);
```