This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
Este é um DApp (Aplicação Descentralizada) desenvolvido com React e TypeScript que demonstra a integração com o ecossistema Stellar usando o Stellar Wallets Kit. O aplicativo permite conectar wallets Stellar e testar funcionalidades de assinatura de transações e mensagens.
- 🔗 Conexão com Wallet: Conecta com wallets Stellar suportadas
- 📝 Sign Transaction: Assina transações na rede Stellar
- ✍️ Sign Message: Assina mensagens personalizadas
- 🌐 Rede Testnet: Configurado para usar a rede de testes da Stellar
- 🎨 Interface Moderna: Design responsivo e amigável
- React 19 - Biblioteca para construção da interface
- TypeScript - Tipagem estática
- Vite - Build tool e servidor de desenvolvimento
- Stellar SDK - SDK oficial da Stellar para JavaScript
- Stellar Wallets Kit - Biblioteca para integração com wallets Stellar
- Node.js 20.19+ ou 22.12+
- npm ou yarn
npm installSe você estiver usando uma versão mais antiga do Node.js, atualize para uma versão compatível:
# Usando nvm
nvm use --lts
# Ou instale a versão LTS mais recente
nvm install --ltsnpm run devO aplicativo estará disponível em http://localhost:5173 (ou na próxima porta disponível).
npm run buildsrc/
├── App.tsx # Componente principal do DApp
├── App.css # Estilos do componente principal
├── main.tsx # Ponto de entrada da aplicação
├── index.css # Estilos globais
└── vite-env.d.ts # Tipos do Vite
- Clique no botão "Conectar Wallet"
- Escolha sua wallet Stellar preferida no modal
- Autorize a conexão na sua wallet
Após conectar a wallet, você pode:
- Testar Stellar SDK: Cria uma transação de exemplo e testa a conectividade com o Horizon
- Preparar Mensagem: Prepara uma mensagem para assinatura
- Cria uma transação de pagamento de exemplo
- Solicita assinatura através da wallet conectada
- Exibe o XDR da transação assinada
- Cria uma mensagem personalizada com timestamp
- Solicita assinatura através da wallet conectada
- Exibe a assinatura da mensagem
O Stellar Wallets Kit suporta diversas wallets, incluindo:
- Freighter - Extensão de navegador
- xBull - Wallet mobile e web
- Lobstr - Wallet mobile
- StellarTerm - Interface web
- E outras compatíveis com o protocolo Stellar
Este DApp está configurado para usar a Stellar Testnet. Para obter XLM de teste:
- Visite o Stellar Laboratory
- Use a opção "Create Account" para gerar uma conta de teste
- Ou use o Stellar Friendbot
Para mudar da Testnet para a Mainnet, edite o arquivo src/App.tsx:
// Testnet
network: WalletNetwork.TESTNET
// Mainnet
network: WalletNetwork.PUBLICPara selecionar wallets específicas, modifique a configuração:
const kit = new StellarWalletsKit({
network: WalletNetwork.TESTNET,
selectedWalletId: 'freighter', // ou 'xbull', 'lobstr', etc.
modules: allowAllModules()
})Se você encontrar este erro, certifique-se de que o vite.config.ts está configurado corretamente com os polyfills.
Certifique-se de usar Node.js 20.19+ ou 22.12+:
node --version- Verifique se a wallet está instalada e desbloqueada
- Certifique-se de estar na rede correta (Testnet/Mainnet)
- Verifique se o site tem permissão para acessar a wallet
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature) - Commit suas mudanças (
git commit -m 'Adiciona nova feature') - Push para a branch (
git push origin feature/nova-feature) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
- ✅ Setup inicial do projeto
- ✅ Configuração do Vite
- ✅ Interface básica do DApp
- ✅ Integração com Stellar SDK
- 🔄 Integração completa com Stellar Wallets Kit
- 🔄 Testes de assinatura de transação
- 🔄 Testes de assinatura de mensagem
- ⏳ Deploy em produção
Nota: Este projeto está em desenvolvimento ativo. Algumas funcionalidades podem estar em modo de demonstração enquanto finalizamos a integração completa.
You can also install eslint-plugin-react-x and eslint-plugin-react-dom for React-specific lint rules:
// eslint.config.js
import reactX from 'eslint-plugin-react-x'
import reactDom from 'eslint-plugin-react-dom'
export default tseslint.config([
globalIgnores(['dist']),
{
files: ['**/*.{ts,tsx}'],
extends: [
// Other configs...
// Enable lint rules for React
reactX.configs['recommended-typescript'],
// Enable lint rules for React DOM
reactDom.configs.recommended,
],
languageOptions: {
parserOptions: {
project: ['./tsconfig.node.json', './tsconfig.app.json'],
tsconfigRootDir: import.meta.dirname,
},
// other options...
},
},
])