mirror of
https://github.com/logos-blockchain/logos-execution-zone.git
synced 2026-05-08 17:19:45 +00:00
Addresses the following review comments from @Arjentix: - "I think we can move this into `derive_from_outputs()`" (on the position → npk map construction in main()) I moved the construction inside ExecutionState::derive_from_outputs and stored the map as a field of ExecutionState. derive_from_outputs now takes `private_account_keys` directly and builds the map as part of state initialization. main() no longer owns the intermediate structure. validate_and_sync_states reads the npk through self.private_pda_npk_by_position. - "Let's move this whole `is_authorized` computation into a separate function. This became really bulky" I extracted the caller-seeds resolution, family-binding recording, and is_authorized computation into a free function `resolve_authorization_and_record_bindings`. It takes the three field borrows it needs (`&mut pda_family_binding`, `&mut private_pda_bound_positions`, `&private_pda_npk_by_position`), same shape as `assert_family_binding`. A method would have conflicted with the `&mut self.post_states` borrow held by the Occupied match arm; the free function lets rustc split-borrow the self fields.
380 KiB
380 KiB