Exercício de Solidity para aprofundamento em desenvolvimento de contratos inteligentes
Este repositório contém um conjunto de contratos Solidity desenvolvidos como exercício prático para aprofundar conhecimentos em Solidity, contratos inteligentes e aplicações descentralizadas (DApps).
O cenário proposto simula um sistema básico de tokenização de ativos imobiliários, onde propriedades físicas podem ser representadas como tokens na blockchain, permitindo negociações transparentes e automatizadas.
O sistema é composto por 4 contratos principais:
-
interfaceReal.solInterface que define os métodos padrão para interação com ativos imobiliários tokenizados. Inclui funções para:- Consulta de detalhes da propriedade (localização, valor, status).
- Transferência de propriedade.
- Atualização de dados via oráculo.
-
oracleRealstate.solContrato que atua como oráculo, fornecendo dados externos (ex: avaliação de imóveis, status legal) para a blockchain. Simula a integração com APIs ou fontes de dados confiáveis. -
real.solContrato principal que implementa a lógica de tokenização de imóveis. Gerencia:- Criação de novos ativos imobiliários (minting).
- Transferência de propriedade entre endereços.
- Consulta de histórico e metadados.
- Integração com o oráculo para atualizar valores de mercado.
-
1LibraryMath.solBiblioteca de utilitários matemáticos para cálculos seguros, como:- Porcentagens (ex: taxas de corretagem).
- Divisões arredondadas (evitando erros de precisão).
- Verificação de overflow/underflow (mesmo no Solidity 0.8.x+).
- Praticar herança e interfaces em Solidity.
- Implementar padrões de segurança (ex: checks-effects-interactions).
- Trabalhar com oráculos para dados externos.
- Explorar tokenização de ativos reais (RWA - Real World Assets).
- Aplicar boas práticas de gas efficiency e legibilidade.
-
Pré-requisitos:
- Remix IDE (recomendado para teste rápido).
- Node.js + Hardhat/Foundry (para testes locais).
- MetaMask ou outra wallet para interação.
-
Passos:
- Importe os contratos no Remix (
File Explorer>Upload). - Compile com Solidity 0.8.0 ou superior.
- Implante
oracleRealstate.solprimeiro (se necessário). - Implante
real.solcom o endereço do oráculo como parâmetro. - Interaja via Remix ou scripts personalizados.
- Importe os contratos no Remix (
- Versão do Solidity: ^0.8.0 (utiliza verificações nativas de overflow).
- Segurança: Este é um exercício acadêmico. Não utilize em produção sem auditoria!
- Melhorias Futuras:
- Adicionar suporte a ERC-721 para representação única de imóveis.
- Implementar governança DAO para decisões coletivas.
- Integração com IPFS para armazenar documentos legais.