# WEbdEXManagerV3

{% hint style="success" %}
O contrato WEbdEXManagerV3, parte do protocolo WEbdEX, é um contrato inteligente baseado em Solidity que atua como um hub de gerenciamento para os usuários da plataforma Botmoney e sua interação com várias estratégias DeFi. Este documento fornece uma compreensão abrangente de sua estrutura, funcionalidades e propósito.
{% endhint %}

Versão do Solidity e Licença

```solidity
solidityCopy code// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;
```

O contrato adere à licença MIT e é compatível com a versão 0.8.18 do Solidity.

#### Importações

O contrato importa funcionalidades-chave da biblioteca OpenZeppelin, um padrão em desenvolvimento seguro de contratos inteligentes.

```solidity
solidityCopy codeimport "@openzeppelin/contracts/access/Ownable.sol";
import "../utils/NFT.sol";
```

#### Interface IWEbdEXPassV3

Ele define uma interface externa para interagir com informações de passes de usuário, incluindo a expiração do passe e o status do teste gratuito.

### Estrutura do Contrato

Estruturas - Chave

1. Bot: Representa uma entidade de bot com atributos como nome, token, carteira e vendedor.
2. Usuário: Armazena informações sobre os usuários, incluindo seu gerente e status dentro da plataforma.
3. Registro: Uma estrutura para manter o controle de usuários registrados e seus gerentes associados.
4. Display: Usado para exibir informações abrangentes sobre o usuário.

#### Eventos

O contrato emite um evento de `Transação` para registrar atividades significativas, como o registro de usuários.

#### Construtor

Inicializa a entidade do bot e configura o contrato com parâmetros necessários, como detalhes do bot e endereços de contratos externos.

#### Modificadores

* onlyWebDexStrategiesOrOwner: Garante que certas funções só podem ser chamadas pelo proprietário do contrato ou pelo contrato WEbdEXStrategiesV3 especificado.

Funções Públicas

1. changeWEbdEXStrategiesV3: Permite ao proprietário atualizar o endereço do contrato WEbdEXStrategiesV3.
2. registerInBot: Permite que os usuários se registrem no bot, associando-se a um gerente, se especificado.
3. getUserInfo: Fornece informações detalhadas sobre o usuário para o chamador.
4. getUserInfoByWallet: Recupera informações do usuário com base em um determinado endereço de carteira, restrito ao proprietário ou contrato WEbdEXStrategiesV3.
5. getBot: Retorna informações sobre o bot.
6. getRegisters: Recupera uma lista de todos os usuários registrados e seus gerentes.

Funções Internas

* \_getUser: Uma função utilitária para compilar e retornar informações do usuário em um formato estruturado.

### Segurança e Permissões

Herdando de `Ownable`, o contrato garante que funcionalidades críticas, como atualizar endereços de contratos de estratégia, sejam reservadas para o proprietário do contrato. Essa abordagem assegura a integridade da plataforma ao mesmo tempo que permite atualizações e ações de gerenciamento necessárias.

### Gestão de Fundos

Notavelmente, o contrato não inclui funções para o proprietário retirar ou transferir fundos do usuário, alinhando-se às melhores práticas em DeFi para a segurança dos ativos do usuário.

### Conclusão

O `WEbdEXManagerV3` contrato é uma ferramenta de gerenciamento multifacetada dentro do ecossistema WEbdEX. Desempenha um papel crucial na manutenção de dados do usuário, gerenciamento de registros e garantia de interação suave com os contratos WEbdEXPassV3 e WEbdEXStrategiesV3. Seu design prioriza a segurança, autonomia do usuário e eficiente gestão da plataforma.
