Obsoleto no produto actual. O fluxo bridge/deposito EUR foi descontinuado. A faturação passou a extrato mensal por sensor. Os endpoints /wallet/* podem permanecer temporariamente no Gateway para compatibilidade, mas a página Carteira foi removida do frontend.
O bridge permite que um usuário peça crédito na rede Besu privada depois de enviar EURC na rede principal configurada. O Gateway expõe o fluxo para o frontend, mas quem controla o estado do pedido é o Oracle Service.

Informações do bridge

GET /wallet/bridge-info devolve:
A rede principal usa o token configurado no bridge, por padrão EURC com 6 decimais. Na Besu privada, o contrato correto atual é EuroToken, símbolo EURT, com 18 decimais.

Criar pedido

O usuário autenticado cria um pedido em POST /wallet/deposit-requests. Campos:
  • sensor_id
  • amount_eur
  • external_reference, opcional
O Gateway valida se o usuário pode operar o sensor e usa a carteira Besu do sensor como destino do crédito privado. Se o sensor não tem carteira configurada, a API retorna SENSOR_WALLET_NOT_CONFIGURED.

Ciclo de vida

Referência externa

A referência de pagamento pode ser anexada em:
Para aprovação automática, a referência precisa conter:
O Oracle Service extrai esse hash e consulta a rede principal por RPC.

Verificação do oráculo

O Oracle considera o pagamento válido quando:
  1. o recibo existe;
  2. o status da transação é sucesso;
  3. existe evento ERC-20 Transfer;
  4. o contrato do evento é o EURC configurado;
  5. o destinatário é o endereço de depósito do bridge;
  6. o valor é pelo menos o valor esperado do pedido.
Quando a verificação passa, o Oracle chama o Transactions Service para executar mint no contrato EuroToken da Besu privada e marca o pedido como APPROVED.

Cancelamento e expiração

O usuário pode cancelar um pedido pendente em:
Pedidos pendentes vencidos são marcados como EXPIRED periodicamente pelo Celery Beat do Oracle (DEPOSIT_EXPIRY_POLL_MINUTES, default 15), com Redis dedicado. O TTL do pedido vem de BRIDGE_DEPOSIT_EXPIRY_MINUTES. A listagem/consulta também pode expirar pendentes sob demanda.

Confirmar manualmente

POST /wallet/deposit-requests/{deposit_id}/confirm força a tentativa de confirmação para um pedido pendente com referência externa. Possíveis retornos:

Pagamentos

Como o token privado é usado para liquidar trades no mercado