Commit 9ec9bc5
[mono-move] Typed outcome; mock-providers crate
The executor now concludes transactions in its own typed taxonomy
(TxnOutcome = Discarded(DiscardReason) | Committed(CommitStatus + raw
effects)) instead of assembling VMStatus along the way. The legacy
formats are constructed in exactly one place, the new legacy/ submodule
(status projection + output materialization), so the eventual
mono-move-native outcome layer only has to replace that seam. The
taxonomy makes illegal states unrepresentable: the can't-pay-fee retry
signal never reaches DiscardReason, and payload discards carry only the
runtime error (aborts always commit). Parity fix found on the way:
discard-class payload failures now skip the epilogue and produce an
empty output, matching v1's failure cleanup.
Structural changes from the same audit round:
- SequentialBlockExecutor deleted; block semantics (reconfiguration,
block metadata, checkpoints, limits) belong to the Block-STM
workstream, obligations documented in AGENTS.md.
- lib.rs reduced to declarations/re-exports; the lifecycle driver lives
in executor.rs, unmetered framework calls in sys_calls.rs (nee
validation.rs), native wiring in natives.rs.
- The StateView-backed mock providers move to a new crate,
mono-move-aptos-mock-providers, leaving only the AptosDataProvider
seam in the executor crate; this drops the aptos-framework and
move-bytecode-verifier dependencies from the production surface.
- runtime: InterpreterContext::new_idle() for drivers that resolve
their first function through the context itself; payload shape and
type arguments preflight before the prologue.
Differential e2e coverage grows to five cases, including exact-status
checks for a nonexistent entry function and the drain-fee-payer
epilogue retry.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>1 parent 870cdf6 commit 9ec9bc5
23 files changed
Lines changed: 1593 additions & 1205 deletions
File tree
- third_party/move/mono-move
- aptos-mock-providers
- src
- aptos-transaction-executor
- src
- legacy
- tests
- replay-benchmark/src
- runtime/src
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
210 | 210 | | |
211 | 211 | | |
212 | 212 | | |
| 213 | + | |
213 | 214 | | |
214 | 215 | | |
215 | 216 | | |
| |||
902 | 903 | | |
903 | 904 | | |
904 | 905 | | |
| 906 | + | |
905 | 907 | | |
906 | 908 | | |
907 | 909 | | |
| |||
Lines changed: 20 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
Lines changed: 27 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
0 commit comments