# Staking Configuration

## Code

`StakingConfiguration.sol`

## Address

`StakingConfiguration` is deployed at [`0x51B2f83aac13adB9Ed826C4cdb593C88e6B61C92`](https://etherscan.io/address/0x51B2f83aac13adB9Ed826C4cdb593C88e6B61C92) on the Ethereum mainnet.

## Overview

This is a basic configuration contract. Contains all information subject to change related to ETH Staking on HORD.app.

## Events

### NameChanged

```solidity
event NameChanged(string parameter, address newValue);
```

* Emitted each time when name or symbol is changed.

### AddressChanged

```solidity
event AddressChanged(string parameter, address newValue);
```

* Emitted each time when some address is changed.

### ConfigurationChanged

```solidity
event ConfigurationChanged(string parameter, uint256 newValue);
```

* Emitted each time when some numerical value is changed.&#x20;

## Read-Only Functions

### feeRecipient

```solidity
function feeRecipient() external view returns(address);
```

* Returns fee recipient address.

### stakeETHTokenName

```solidity
function stakeETHTokenName() external view returns(string memory);
```

* Returns name of staking ETH token.

### stakeETHTokenSymbol

```solidity
function stakeETHTokenSymbol() external view returns(string memory);
```

* Returns symbol of staking ETH token.

### amountETHInValidator

```solidity
function amountETHInValidator() external view returns(uint256);
```

* Returns amount of ETH needed to launch a new validator.

### rewardFeePercentage

```solidity
function rewardFeePercentage() external view returns(uint256);
```

* Returns percentage of reward fee.

### tolerancePercentageForRewards

```solidity
function tolerancePercentageForRewards() external view returns(uint256);
```

* Returns percentage of tolerance for rewards.

### tolerancePercentageForFee

```solidity
function tolerancePercentageForFee() external view returns (uint256);
```

* Returns percentage of tolerance for fee.

## State-Changing Functions

### setFeeRecipientAddress

```solidity
function setFeeRecipientAddress(address _feeRecipient) external onlyHordCongress;
```

* Set fee recipient address.
* Emits an [`AddressChanged`](#addresschanged) event.

### setStakeETHTokenName

```solidity
function setStakeETHTokenName(string memory _stakeETHTokenName) external onlyHordCongress;
```

* Set name of ETH staking token.
* &#x20;Emits a [`NameChanged`](#namechanged) event.

### setStakeETHTokenSymbol

```solidity
function setStakeETHTokenSymbol(string memory _stakeETHTokenSymbol) external onlyHordCongress;
```

* Set symbol of ETH staking token.
* &#x20;Emits a [`NameChanged`](#namechanged) event.

### setAmountETHInValidator

```solidity
function setAmountETHInValidator(uint256 _amountETHInValidator) external onlyHordCongress;
```

* Set amount of ETH needed to launch a new validator.
* &#x20;Emits a [`ConfigurationChanged`](#configurationchanged) event.

### setRewardFeePercentage

```solidity
function setRewardFeePercentage(uint256 _rewardFeePercentage) external onlyHordCongress;
```

* Set percentage of reward fee.
* &#x20;Emits a [`ConfigurationChanged`](#configurationchanged) event.

### setTolerancePercentageForRewards

```solidity
function setTolerancePercentageForRewards(uint256 _tolerancePercentageForRewards) external onlyHordCongress;
```

* Set percentage of tolerance for rewards.
* &#x20;Emits a [`ConfigurationChanged`](#configurationchanged) event.

### setTolerancePercentageForFee

```solidity
function setTolerancePercentageForFee(uint256 _tolerancePercentageForFee) external onlyHordCongress;
```

* Set percentage of tolerance for fee.
* &#x20;Emits a [`ConfigurationChanged`](#configurationchanged) event.
