Skip to main content

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);