Compatibility fixes for transaction executor#87
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the transaction execution and block parsing code to be more compatible with real-world serialized data (including stricter canonical encodings), refreshes executor test vectors/fixtures accordingly, and adds a “build all” mode for collator test bundle generation.
Changes:
- Add
skip()-based parsing for messages/actions and enforce canonical VarUInteger encodings (reject leading-zero representations). - Adjust transaction executor logic, fees/fines calculations, and update/extend tests +
.bocfixtures to match the new behavior. - Add
build_allsupport for collator test bundle generation and refactor bundle spawning in the validator fabric.
Reviewed changes
Copilot reviewed 20 out of 81 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/node/src/validator/fabric.rs | Refactors and extends test bundle building (including “build all” on success). |
| src/node/src/validator/collator.rs | Adjusts logging and finalization debug output. |
| src/node/src/config.rs | Adds build_all option to collator test bundle config and updates enablement logic. |
| src/executor/src/transaction_executor.rs | Switches preprocessing to OutAction::skip, tweaks error handling/logging, adjusts fine/fee logic, and library mode bit handling. |
| src/executor/src/tests/test_transaction_executor_with_real_data.rs | Updates config fixture path usage, renames a test, adds new replay tests. |
| src/executor/src/tests/test_tr_phases.rs | Updates gas expectation values. |
| src/executor/src/tests/test_tick_tock_transaction.rs | Updates expected gas limit. |
| src/executor/src/tests/test_random_gen.rs | Updates special account ID used in tests. |
| src/executor/src/tests/test_ordinary_libs_and_code.rs | Updates library tests to assert private/public library semantics; adjusts imports/comments. |
| src/executor/src/tests/test_currency_collections.rs | Updates fee/coin expectations to match new fee/fine behavior. |
| src/executor/src/tests/test_bounced_action_phase.rs | Updates bounce fee/gas/value expectations. |
| src/executor/src/tests/common/mod.rs | Switches default config boc used by tests; reorders transaction comparison assertions. |
| src/executor/real_boc/* | Adds/updates many .boc fixtures used for replay-based executor tests. |
| src/emulator/src/tests/test_emulator.rs | Uses JSON-provided now/lt/rand_seed instead of hardcoded values. |
| src/block/src/types.rs | Adds skip() implementations and enforces non-canonical VarUInteger detection. |
| src/block/src/tests/test_out_actions.rs | Adds coverage for non-canonical coin encodings producing OutActionError. |
| src/block/src/out_actions.rs | Improves ChangeLibrary error wrapping; adds OutAction::skip implementation. |
| src/block/src/messages.rs | Adds skip() implementations for several message/address/header types + Message::skip. |
| src/block/src/lib.rs | Adds Option<T>::skip. |
| src/block/src/cell/slice.rs | Improves underflow error messages for reference/bit access. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Lapo4kaKek
approved these changes
Apr 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.