3.6 KiB
kb_materializer_staking
Ce crate produit des projections instructionnelles stables pour les observations natives Stake et Vote décodées par kb_decoder_solana_core.
Statut
0.4.1-pre.021 active le matérialiseur sous l'identité :
solana_native_staking
Le matérialiseur est enregistré par kb_app_demo::demo_decode_replay avec les autres matérialiseurs natifs. Il applique SuccessfulCommittedOnly : une transaction échouée ou une observation non commitée reste décodable, mais ne produit aucune sortie métier mutable.
Surfaces couvertes
Stake Program
Les projections sont instructionnelles et ne prétendent pas reconstruire l'état final du compte Stake.
| Domaine | Entrées |
|---|---|
stake_account |
initialize, initialize_checked, delegate_stake, deactivate, deactivate_delinquent |
stake_value |
split, withdraw, merge, move_stake, move_lamports |
stake_authority |
authorize, authorize_with_seed, authorize_checked, authorize_checked_with_seed |
stake_lockup |
set_lockup, set_lockup_checked |
redelegate reste ignoré : l'instruction est conservée par le décodeur comme intention historique officiellement désactivée, mais elle ne doit pas produire une mutation staking réussie.
Vote Program
| Domaine | Entrées |
|---|---|
vote_account |
initialize_account, initialize_account_v2 |
vote_authority |
authorize, authorize_checked, authorize_with_seed, authorize_checked_with_seed |
vote_admin |
update_validator_identity, update_commission, update_commission_collector, update_commission_bps |
vote_state |
vote, vote_switch, update_vote_state, update_vote_state_switch, compact_update_vote_state, compact_update_vote_state_switch, tower_sync, tower_sync_switch |
vote_value |
withdraw |
vote_reward |
deposit_delegator_rewards |
deposit_delegator_rewards produit une sortie de famille Reward; les autres sorties produisent une famille matérialisée Staking.
Limites explicites
Le crate ne reconstruit pas :
- activation/désactivation effective d'un stake par epoch ;
- crédits Vote cumulés ;
- statut final exact d'un compte après withdraw ;
- état antérieur et état suivant du compte ;
- sysvars historiques non portées par le core replay.
Ces projections doivent donc être lues comme des événements instructionnels commités. Les snapshots d'état final seront un futur contrat distinct lorsque le replay core transportera les données de comptes et sysvars nécessaires.