Repository navigation
test(fees): [ISSUE REPRO] exact-zero internal key falls through - #55
MuncleUscles wants to merge 1 commit into
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
GenVM PR actionsTick a box to run it (the box unticks itself when handled). Actions only run while the PR has the
Commands
|
Linked executor PR(s)executor: genlayerlabs/genvm-executor#48 (v0.3) |
43b1468 to
db03fc9
Compare
Advance the v0.3 executor gitlink to the focused expected-red allocation tests. The executor succeeds using a wildcard where the consensus candidate selects a zero-remaining exact key and rejects the emission. This manager layer is a draft handoff for the matcher correction.
db03fc9 to
aedeec3
Compare
|
Semantics of this place was flipped a bunch of times already: c6c6f3ce on 2026-09-09 Treated as absent: internal_allocation_match_priority returns None when budget.is_zero(), so the wildcard funds the message is this semantics final? |
|
robo-kp2pml30: carried over to #57 — the tests from genvm-executor#48 plus the fix (an exact zero-budget internal key now shadows wildcards and fails on its budget) land in manager commit 072d9ea (PR head e4252e5), executor commits genlayerlabs/genvm-executor@3cd91d26 and genlayerlabs/genvm-executor@49aa5746. Closing in favor of #57 |
Delivery context
Depends-On: genlayerlabs/genlayer-consensus#1709
GVM-365 is assigned to Kira. This manager PR pins signed executor test commit
dd98d661c7ba6afe2ea758b95be2761fce2e706d, mirrored in genvm-executor #48. The manager PR is the authoritative handoff; the executor mirror is not for independent landing.Rebased after merged manager #56 / executor #49. The manager base is
6f7e8dead0c2af5ed30330baac973a83cde7ec08, and the executor base is7e0936a125f917a8071b66add10dd555c2a07c8f. This keeps #56's zero-declared-budget fix in the composed checkout.Problem and outcome
Consensus #1709 resolves internal message allocation keys by presence. An exact key whose remaining budget is zero still shadows a funded call-key wildcard. GenVM must select that exact key and fail an unaffordable emission locally.
Merged manager #54 filtered zero-budget concrete-recipient nodes before matching. As a result, the internal path can use a wildcard and emit a message for which consensus selects the exact node and rejects at reveal. The external zero-budget fallback is intentional and remains unchanged. This is separate from the merged #56 rule that an emitted child must declare a positive budget, including
useBalance.This is an expected-red, test-only handoff. It changes no production matching code.
Reproduction and validation
The executor mirror changes three existing tests in
executor/src/wasi/genlayer_sdk/tests.rs:internal_zero_remaining_exact_shadows_funded_wildcard: red; the wildcard is selected instead of the exact key.internal_zero_remaining_exact_phase_blocks_wildcard: red; the wildcard bypasses the exact key's phase mismatch.internal_zero_remaining_exact_fails_before_using_wildcard: red; call/deploy emits successfully instead of failing against the exact allocation budget.On executor
dd98d661atop merged #49, the three reproduction tests fail for those expected reasons. Five external controls and six positive internal controls pass.cargo fmt --checkand stack-relativegit diff --checkpass. The manager diff only updatesexecutors/v0.3.xfrom7e0936atodd98d66. No full E2E was run for this draft.Acceptance for implementation