Módulos

Tx Debugger

Decodifica reverts, analisa transações e gera diagnóstico em linguagem natural.

O TxAnalyzer busca dados da transação via RPC, decodifica erros e dados de input, e usa o DevCopilot para gerar um diagnóstico em linguagem natural.

Uso via CLI

# Analisar uma transação
arcdevkit debug tx 0xSeuTxHash

# Com ABI para decodificar dados de input
arcdevkit debug tx 0xSeuTxHash --abi ./MeuContrato.abi.json

# Analisar batch (um hash por linha)
arcdevkit debug batch hashes.txt

# Ver histórico recente
arcdevkit history

Uso via Python

from arc_devkit.debugger.tx_analyzer import TxAnalyzer

analyzer = TxAnalyzer()
report = analyzer.analyze("0xSeuTxHash", abi_path="MeuContrato.abi.json")
print(report)

Exemplo de saída (transação revertida)

Status:     reverted
Error:      ERC20: transfer amount exceeds balance
Gas used:   21,000 / 100,000
Cost:       0.0008 USDC
Diagnosis:  The sender wallet did not have enough USDC balance at the time
            of execution. Call balanceOf() before transfer() to verify.
Suggestion: Add a pre-check or use a try/catch in your contract.

Referência da API

TxAnalyzer()

Sem parâmetros — lê configurações do settings global.

analyze(tx_hash, abi_path=None)

ParâmetroTipoDescrição
tx_hashstrHash da transação a analisar
abi_pathstr | NoneCaminho para o ABI do contrato (para decodificar input)

Retorna: str — relatório completo em texto.

O que é analisado

CampoOrigemDescrição
Statuseth_getTransactionReceiptsuccess ou reverted
ErrorRevert reasonMensagem require() ou erro custom
Gas usedReceiptGas consumido vs. limite
Cost (USDC)Gas price × gas usadoCusto em USDC
Input dataeth_getTransactionDecodificado se ABI fornecido
DiagnosisDevCopilotAnálise em linguagem natural

Histórico

Todas as análises são salvas automaticamente em ~/.arc_devkit/history.json:

arcdevkit history          # últimas 10 análises
arcdevkit history --limit 50

Features

FeatureDescrição
Revert decodeDecodifica require() strings e erros Solidity customizados
ABI decodeDecodifica nome de função + argumentos do input data
AI diagnosisChama DevCopilot.ask() para explicação em linguagem natural
HistóricoSalvo em ~/.arc_devkit/history.json automaticamente
BatchAnalisa múltiplas transações de um arquivo texto

Sem ABI?

O debugger funciona sem ABI — ele apenas não conseguirá decodificar o input data. O diagnóstico de revert e o relatório de gas funcionam independentemente.