Aprenda como ler dados on-chain de uma blockchain para outra usando requisições GET do Hyperbridge!
Neste tutorial, Roy da Polytope Labs mostra como:
✅ Transformar um contrato Solidity em um HyperApp
✅ Enviar requisições GET para ler saldos ERC20 na Ethereum Sepolia
✅ Receber e lidar com respostas cross-chain de forma segura
✅ Calcular slots de armazenamento usando o SDK do Hyperbridge
✅ Testar seu contrato em testnets com auto-relay
O Hyperbridge permite leituras cross-chain com minimização de confiança, sem pontes, oráculos ou intermediários centralizados. Perfeito para DeFi, jogos, governança e aplicações multi-chain.
Ferramentas Utilizadas:
- Solidity + Foundry
- SDK do Hyperbridge
- Contratos OpenZeppelin
🔗 Recursos & Links:
Notas do Roy, o Dev:
1. Este vídeo tutorial mostra como é fácil determinar o slot de armazenamento para os dados que você deseja, usando as funções auxiliares do sdk do Hyperbridge.
Mas em produção, você pode ter que gerar dinamicamente o slot alvo do seu contrato de destino na cadeia de destino, em seu contrato de origem. Isso é muito comum, por exemplo, veja como determinamos o slot de compromisso no contrato Intent Gateway.
2. Você não precisa fazer auto-relay nas mainnets que suportamos. Este vídeo apenas demonstra como você pode fazer auto-relay quando está na fase de teste dos seus contratos.
3. Trate o compromisso retornado como seu ID de requisição. Use a função hash() da biblioteca Message para recomputar o compromisso a partir de uma resposta recebida e combiná-lo com suas consultas pendentes.
Timestamps / Capítulos abaixo para que você possa pular para a seção que precisa.
0:00 - Introdução: O que este tutorial cobre
0:06 - Visão geral da requisição GET cross-chain
0:30 - Configuração do projeto: Foundry + Módulos Node
1:05 - Instalando dependências (núcleo do Hyperbridge, árvore Merkle, OpenZeppelin)
2:08 - Configurando o Foundry para usar node_modules
2:58 - Estrutura do contrato e início da codificação
3:04 - Transformando um contrato em um HyperApp
3:36 - Sobrescrevendo a função host()
4:10 - Construtor e atribuição de host
4:18 - Aprovando token de taxa para o Hyperbridge
5:21 - Funcionalidade principal: requisições GET
5:49 - Definindo a função queryTokenBalance
6:04 - Entendendo o compromisso
6:39 - Construindo DispatchGet: destino, altura, chaves
9:08 - Definindo timeout, taxas, contexto
10:41 - Enviando requisição GET através do host
12:02 - Opcional: Pagar taxas via token nativo
12:48 - Eventos para despacho e resposta
13:57 - Mapeamentos de armazenamento para compromissos pendentes
15:07 - Retornando compromisso e marcando como pendente
15:40 - Implementando onGetResponse
16:42 - Verificações de segurança e decodificação de valor de armazenamento
19:48 - Marcando requisição como completa
20:42 - Função auxiliar para ler valores armazenados
20:47 - Recapitulando: passos chave para requisições GET
22:03 - Construindo slot de armazenamento para saldo ERC20
24:23 - Usando o SDK do Hyperbridge para obter altura e slot
25:59 - Executando testes e usando indexador
28:02 - Fluxo de trabalho de auto-relay em testnet
29:00 - Dicas finais e repositório de exemplo
#Hyperbridge #Solidity #CrossChain #Web3 #Blockchain #Ethereum #SmartContracts #DeFi #NFTs