Conversation
|
You have reached your Codex usage limits for security reviews. Please try again later. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 02cb8d67e4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
02cb8d6 to
1fe7c4e
Compare
|
You have reached your Codex usage limits for security reviews. Please try again later. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1fe7c4eb27
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
1fe7c4e to
662a593
Compare
|
You have reached your Codex usage limits for security reviews. Please try again later. |
`std::abi::ArrayView<I, T>` views a Solidity ABI `T[]` inside any `ByteInput` without copying it to memory. Creating the view (via `CallData::array_view` or `decode_array_view_at`) performs the checks solc applies to a `T[] calldata` parameter: head word, length word and all element heads within the input, overflow-safe for any word. `get` decodes a single element with the regular Solidity decoder (dirty-bit validation, Panic(0x32) on out-of-range index), `bytes_at`/`string_at` return zero-copy views of dynamic elements, `array_at` returns a nested view, and `element_pos` exposes the validated position of an element for struct field access.
Hand-written decoders that mirror assembly (e.g. Seaport's conduit reading `heads + calldataload(heads + i * 32)`) need the element heads position and unchecked tail positions. Add `ArrayView::heads_pos`, `head_word` and `unchecked_element_pos`, which skip the tail validation of `element_pos` and are documented as only safe when the caller validates the element itself or reads past the end as zeros.
662a593 to
cb83f00
Compare
|
You have reached your Codex usage limits for security reviews. Please try again later. |
Added
std::abi::ArrayView, a lazy view of a Solidity ABIT[]over calldata or any otherByteInput, created withCallData::array_viewordecode_array_view_at. It validates offsets and lengths like a SolidityT[] calldataparameter and decodes elements one at a time withget, with zero-copybytes_at/string_atand nestedarray_ataccessors, so raw-selectorrecvarms can read large arrays without decoding them into memory. For hand-written decoders,heads_pos,head_wordandunchecked_element_posexpose the raw element heads and tail positions without validating element tails.