# veWOM

contracts/wombat-governance/VeWom.sol

> Title: VeWom

> Notice: Wombat Waddle: the staking contract for WOM, as well as the token used for governance. Note Waddling does not seem to slow the Wombat, it only makes it sturdier. Note that it's ownable and the owner wields tremendous power. The ownership will be transferred to a governance smart contract once Wombat is sufficiently distributed and the community can show to govern itself.

### *event* Burn

\*\*\*VeWom.Burn(account, value) \*\*\*

Arguments

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
| account  | address  | indexed         |
| value    | uint256  | not indexed     |

### *event* Enter

\*\*\*VeWom.Enter(addr, unlockTime, womAmount, veWomAmount) \*\*\*

Arguments

| **name**    | **type** | **description** |
| ----------- | -------- | --------------- |
| addr        | address  | not indexed     |
| unlockTime  | uint256  | not indexed     |
| womAmount   | uint256  | not indexed     |
| veWomAmount | uint256  | not indexed     |

### *event* Exit

\*\*\*VeWom.Exit(addr, unlockTime, womAmount, veWomAmount) \*\*\*

Arguments

| **name**    | **type** | **description** |
| ----------- | -------- | --------------- |
| addr        | address  | not indexed     |
| unlockTime  | uint256  | not indexed     |
| womAmount   | uint256  | not indexed     |
| veWomAmount | uint256  | not indexed     |

### *event* Mint

\*\*\*VeWom.Mint(beneficiary, value) \*\*\*

Arguments

| **name**    | **type** | **description** |
| ----------- | -------- | --------------- |
| beneficiary | address  | indexed         |
| value       | uint256  | not indexed     |

### *event* OwnershipTransferred

\*\*\*VeWom.OwnershipTransferred(previousOwner, newOwner) \*\*\*

Arguments

| **name**      | **type** | **description** |
| ------------- | -------- | --------------- |
| previousOwner | address  | indexed         |
| newOwner      | address  | indexed         |

### *event* Paused

\*\*\*VeWom.Paused(account) \*\*\*

Arguments

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
| account  | address  | not indexed     |

### *event* SetMasterWombat

\*\*\*VeWom.SetMasterWombat(addr) \*\*\*

Arguments

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
| addr     | address  | not indexed     |

### *event* SetMaxBreedingLength

\*\*\*VeWom.SetMaxBreedingLength(len) \*\*\*

Arguments

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
| len      | uint256  | not indexed     |

### *event* SetWhiteList

\*\*\*VeWom.SetWhiteList(addr) \*\*\*

Arguments

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
| addr     | address  | not indexed     |

### *event* Unpaused

\*\*\*VeWom.Unpaused(account) \*\*\*

Arguments

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
| account  | address  | not indexed     |

### *stateVariable* whitelist

***VeWom.whitelist() view***

> Notice: whitelist wallet checker

> Details: contract addresses are by default unable to stake wom, they must be previously whitelisted to stake wom

Outputs

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
|          | address  |                 |

### *function* balanceOf

***VeWom.balanceOf(account) view***

> Details: explicity override multiple inheritance

Arguments

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
| account  | address  |                 |

Outputs

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
|          | uint256  |                 |

### *function* burn

\*\*\*VeWom.burn(slot) \*\*\*

Arguments

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
| slot     | uint256  |                 |

### *function* decimals

***VeWom.decimals() view***

> Details: Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for *display* purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.

Outputs

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
|          | uint8    |                 |

### *function* getUserInfo

***VeWom.getUserInfo(addr) view***

Arguments

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
| addr     | address  |                 |

Outputs

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
|          | tuple    |                 |

### *function* initialize

\*\*\*VeWom.initialize(\_wom, \_masterWombat) \*\*\*

Arguments

| **name**       | **type** | **description** |
| -------------- | -------- | --------------- |
| \_wom          | address  |                 |
| \_masterWombat | address  |                 |

### *function* isUser

***VeWom.isUser(\_addr) view***

> Notice: checks wether user \_addr has wom staked

Arguments

| **name** | **type** | **description**           |
| -------- | -------- | ------------------------- |
| \_addr   | address  | the user address to check |

Outputs

| **name** | **type** | **description**                                    |
| -------- | -------- | -------------------------------------------------- |
|          | bool     | true if the user has wom in stake, false otherwise |

### *function* masterWombat

***VeWom.masterWombat() view***

> Notice: the masterWombat contract

Outputs

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
|          | address  |                 |

### *function* mint

\*\*\*VeWom.mint(amount, lockDays) \*\*\*

> Notice: lock WOM into contract and mint veWOM

Arguments

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
| amount   | uint256  |                 |
| lockDays | uint256  |                 |

Outputs

| **name**    | **type** | **description** |
| ----------- | -------- | --------------- |
| veWomAmount | uint256  |                 |

### *function* name

***VeWom.name() view***

> Details: Returns the name of the token.

Outputs

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
|          | string   |                 |

### *function* owner

***VeWom.owner() view***

> Details: Returns the address of the current owner.

Outputs

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
|          | address  |                 |

### *function* pause

\*\*\*VeWom.pause() \*\*\*

> Details: pause pool, restricting certain operations

### *function* paused

***VeWom.paused() view***

> Details: Returns true if the contract is paused, and false otherwise.

Outputs

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
|          | bool     |                 |

### *function* renounceOwnership

\*\*\*VeWom.renounceOwnership() \*\*\*

> Details: Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.

### *function* setMasterWombat

\*\*\*VeWom.setMasterWombat(\_masterWombat) \*\*\*

> Notice: sets masterWombat address

Arguments

| **name**       | **type** | **description**              |
| -------------- | -------- | ---------------------------- |
| \_masterWombat | address  | the new masterWombat address |

### *function* setMaxBreedingLength

\*\*\*VeWom.setMaxBreedingLength(\_maxBreedingLength) \*\*\*

Arguments

| **name**            | **type** | **description** |
| ------------------- | -------- | --------------- |
| \_maxBreedingLength | uint256  |                 |

### *function* setWhitelist

\*\*\*VeWom.setWhitelist(\_whitelist) \*\*\*

> Notice: sets whitelist address

Arguments

| **name**    | **type** | **description**           |
| ----------- | -------- | ------------------------- |
| \_whitelist | address  | the new whitelist address |

### *function* symbol

***VeWom.symbol() view***

> Details: Returns the symbol of the token, usually a shorter version of the name.

Outputs

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
|          | string   |                 |

### *function* totalSupply

***VeWom.totalSupply() view***

> Details: explicity override multiple inheritance

Outputs

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
|          | uint256  |                 |

### *function* transferOwnership

\*\*\*VeWom.transferOwnership(newOwner) \*\*\*

> Details: Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.

Arguments

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
| newOwner | address  |                 |

### *function* unpause

\*\*\*VeWom.unpause() \*\*\*

> Details: unpause pool, enabling certain operations

### *function* wom

***VeWom.wom() view***

> Notice: the wom token

Outputs

| **name** | **type** | **description** |
| -------- | -------- | --------------- |
|          | address  |                 |


---

# 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.wombat.exchange/developers/integration-guideline/vewom.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.
