> For the complete documentation index, see [llms.txt](https://docs.rome.builders/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rome.builders/pt-br/seguranca/known-limitations.md).

# Limitações Conhecidas

Restrições atuais da Rome EVM e suas implicações — opcodes sem suporte, layout do account de storage, limites de CU, profundidade de CPI e limites de oracle.

Documentação honesta das restrições atuais do Rome Protocol e suas implicações.

## Limitações de Execução

**SELFDESTRUCT não suportado.** O opcode não tem handler, então um contrato que o executa aborta a transação inteira (veja abaixo); ele não reverte um único frame.

**Um opcode que o Rome não implementa aborta a transação inteira.** O interpretador não tem handler para o byte, então a transação termina com `IncompatibleVersionEVM(opcode)`, nada do que ele fez é efetivado, e a falha chega ao remetente em vez de ser engolida por um contrato chamador.

**Sem tabela de gás por opcode.** O valor de gás passado para `CALL`, `DELEGATECALL`, `STATICCALL` e `CREATE` é aceito por compatibilidade com a ABI, mas não é aplicado — um callee executa com todo o orçamento restante do caller, e não há um estipêndio de 2300 gás. A proteção contra reentrância baseada em estipêndio (`transfer()` / `send()`) é nula no Rome; use bloqueios explícitos contra reentrância e checks-effects-interactions.

**Modexp (0x05) está desabilitado.** Uma chamada reverte com `a chamada big_mod_exp está desativada` até que a Solana ative o `big_mod_exp` syscall.

**256 slots de armazenamento por conta de armazenamento.** O armazenamento do contrato é particionado entre contas Solana com 256 slots cada. Contratos com grandes volumes de armazenamento usam várias contas, o que afeta os custos de CU.

**\~1,4 milhão de unidades de computação por transação atômica.** Trabalho que excede o orçamento de uma única transação Solana recorre à execução iterativa (dividida em várias transações). Algumas operações são apenas atômicas e não podem ser executadas iterativamente — em especial CPI do caminho legado (`CpiProhibitedInIterativeTx`; os efeitos do caminho em cache são preparados e de fato são executados iterativamente).

**Limite de profundidade de CPI de 4.** Chamadas CPI profundamente aninhadas falharão. Projete contratos com árvores de chamadas rasas.

## Limitações de Oráculo

**Sem dados históricos de rodadas.** Os adaptadores do Oracle Gateway suportam apenas `latestRoundData()`. Consultas históricas de preço via `getRoundData(roundId)` revert.

**Os deslocamentos do parser são validados em relação aos layouts atuais.** Os dados de conta da Pyth e da Switchboard são analisados usando deslocamentos de bytes. Se a Pyth ou a Switchboard alterarem o layout de suas contas, os adaptadores retornarão dados incorretos até que os deslocamentos sejam revalidados.

## Limitações das Ferramentas

**Sem rastreamento de transações no estilo Ethereum.** `debug_traceTransaction` e `trace_*` não são suportados. O único método de trace é `debug_traceRomeTransaction`, que decompõe uma transação que agrupa várias chamadas em um único lote em suas subchamadas e CPIs. Transações comuns retornam `null`. Para todo o resto, use `eth_call` e os [Via explorer](/pt-br/apps-na-rome/via.md) (que mostra as instruções Solana por trás de uma transação) para depurar. Veja [JSON-RPC](/pt-br/referencia/json-rpc.md).

**`eth_getLogs` tem limite de intervalo.** Redes públicas rejeitam intervalos de blocos excessivamente amplos (erro `-32005`); limite suas consultas. Veja [JSON-RPC](/pt-br/referencia/json-rpc.md).

## Limitações de Infraestrutura

**Modelo de operador único.** Cada implantação do Rome é operada por uma única entidade (o operador do pool de pagadores). Não há um conjunto descentralizado de operadores.

**Bloqueio no modo iterativo.** Durante a execução iterativa, as contas ficam bloqueadas por alguns segundos, o que pode causar contenção em contas muito usadas.

## O que Vem a Seguir

* [Divulgação Responsável](/pt-br/seguranca/responsible-disclosure.md) — como relatar problemas


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.rome.builders/pt-br/seguranca/known-limitations.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
