sla_escrow_api/state/authority_transfer.rs
1use super::EscrowAccount;
2use steel::*;
3
4/// Transient account that exists only while an authority transfer proposal is pending.
5/// Created by `UpdateAuthority` (propose), consumed by `AcceptAuthority` or
6/// `CancelAuthorityProposal`.
7#[repr(C)]
8#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)]
9pub struct AuthorityTransfer {
10 pub proposed_authority: Pubkey, // 32 bytes — key that must sign AcceptAuthority
11 pub proposed_at: i64, // 8 bytes — timestamp; acceptance gated by delay
12 // Total: 40 bytes (8-byte aligned)
13}
14
15account!(EscrowAccount, AuthorityTransfer);