Skip to content

v0.5.1 — verificação endurecida

Latest

Choose a tag to compare

@capitv capitv released this 22 Jul 04:39

Correções de segurança na verificação de pagamento. Atualize antes de gravar ou demonstrar — as versões anteriores podem emitir um veredito falso.

Plugins: brl-usdc-invoice, invoice-status, pixzclaw-brief — todos em 0.3.1.

O que mudou

Spam podia mascarar um pagamento real. A verificação varria só as 5 assinaturas bem-sucedidas mais recentes, então seis transações de poeira tocando a reference empurravam o pagamento verdadeiro para fora da janela e uma fatura paga respondia PENDING. Agora varre todas as assinaturas do lookback, com parada antecipada quando a fatura é coberta.

Assinaturas além do teto passaram a ser contadas, não ignoradas. Quando a varredura fica incompleta — RPC limitou, rede caiu — a soma é um limite inferior. Limite inferior confirma um pagamento que ele já cobre, mas nunca afirma que faltou dinheiro. Nesse caso degrada para SIG OK (valor não verificado) em vez de acusar UNDERPAID.

Reuso de invoice_id liquidava a fatura errada. O id automático era sha256(valor|descrição|lojista), sem tempo: duas cobranças de "R$ 10" em dias diferentes geravam o mesmo id, a mesma reference, e o pagamento de ontem marcava a fatura de hoje como PAID com recibo. Reproduzível sem atacante. Agora é salgado com o instante da emissão e falha fechado se o relógio for implausível. invoice_id explícito continua respeitado — e precisa ser único por venda.

Tolerância de 0,5% eliminada. Um pagador podia mandar 0,5% a menos e receber recibo de quitação. A comparação agora é aritmética inteira exata dos dois lados, e decimals divergentes entre transações recusam produzir veredito em vez de somar valores incompatíveis.

Instalar

curl -fsSL https://raw.githubusercontent.com/capitv/pixzclaw-pi/main/scripts/force-reinstall-plugins.sh | bash -s -- v0.5.1-plugins

Confirme com zeroclaw plugin list que os três aparecem em 0.3.1. O host recusa recarregar uma versão já carregada, então ver 0.3.0 significa que a instalação não pegou.

Procedência

Os .wasm desta release foram compilados localmente, não pelo CI: o workflow que roda no GitHub está defasado e não conhece o pixzclaw-brief. Corrigir isso exige escopo workflow no token. As fontes usadas são byte-idênticas às do PR #123, e os manifests são os deste repositório — verificado antes de empacotar.