ValBets é um aplicativo Android desenvolvido para gerenciar apostas em partidas esportivas utilizando criptomoedas na rede de testes Sepolia (Ethereum). O projeto inclui um contrato inteligente em Solidity para processar as apostas e um aplicativo desenvolvido em Kotlin para gerenciar as interações do usuário.
- Listagem de partidas futuras e passadas.
- Possibilidade de apostar em um dos times utilizando Ethereum (ETH).
- Comunicação com um contrato inteligente na rede de testes Sepolia.
- Determinação do vencedor e distribuição automática dos prêmios aos apostadores vencedores.
- Integração com carteiras Ethereum utilizando Web3j.
- Linguagem: Solidity, Kotlin
- Ferramentas: Remix IDE, Infura
- Rede: Sepolia (Testnet Ethereum)
- Bibliotecas:
- Web3j - Para integração com a blockchain Ethereum.
- Material Components for Android - Para criar interfaces modernas.
O contrato inteligente permite:
- Registrar apostas em dois times (
placeBetOnTeamAeplaceBetOnTeamB). - Declarar o vencedor (
declareWinner). - Distribuir recompensas automaticamente aos apostadores vencedores.
O aplicativo possui:
- Fragments para exibir partidas futuras e passadas.
- RecyclerView para listar partidas com botões interativos.
- Diálogo de aposta para entrada de valores e seleção de times.
- Integração com a blockchain para envio de transações.
-
Contrato Inteligente:
- Instale MetaMask e configure na rede de testes Sepolia.
- Faça o deploy do contrato
Betting.solno Remix IDE ou outra ferramenta de sua escolha. - Anote o endereço do contrato para configurar no aplicativo.
-
Aplicativo Android:
- Android Studio instalado.
- Dispositivo Android ou emulador configurado.
-
Clone o repositório:
git clone https://github.com/Jops-Garcia/ValBets.git cd valbets -
Configure o endereço do contrato e a chave privada no arquivo
MainActivity.kt:val credentials = Credentials.create("<PRIVATE_KEY>") val contractAdress = "<CONTRACT_ADDRESS>"
-
Substitua o endpoint Infura no código:
val web3j = Web3j.build(HttpService("https://sepolia.infura.io/v3/<YOUR_INFURA_PROJECT_ID>"))
-
Compile e execute o aplicativo no Android Studio.
- Configure uma carteira virtual com ETH na rede de testes Sepolia.
- No aplicativo:
- Navegue até as Partidas Futuras.
- Clique em uma partida e insira o valor da aposta.
- Escolha um time e envie a transação.
- Verifique no contrato os valores recebidos e aguarde a finalização da partida.
- O administrador (proprietário do contrato) pode declarar o vencedor no Remix IDE utilizando a função
declareWinner.
- Integração direta com carteiras como MetaMask.
- Criar contratos de partidas de forma automática.
- Criar partidas de forma automática usando uma API.
- Adquirir resultados de forma automática
- Melhorias na interface do usuário.
- Aplicar padrões de projeto.
- Adoção de bibliotecas de segurança para o armazenamento de credenciais.
Obs: Este projeto NÃO se encontra finalizado, ainda há diversos ajustes a serem feitos como refatoração, aplicar padrão de projeto, ajustes em nomes de variáveis, classes e em lógicas, etc.