use rialo_s_pubkey::Pubkey;
pub const VALIDATOR_INFO_SEED: &[u8] = b"validator-info";
pub const SELF_BOND_SEED: &[u8] = b"self-bond";
pub fn derive_self_bond_address(validator_info_pubkey: &Pubkey) -> Pubkey {
let (address, _bump) = Pubkey::find_program_address(
&[SELF_BOND_SEED, validator_info_pubkey.as_ref()],
&crate::ID,
);
address
}
pub fn derive_self_bond_address_with_bump(validator_info_pubkey: &Pubkey) -> (Pubkey, u8) {
Pubkey::find_program_address(
&[SELF_BOND_SEED, validator_info_pubkey.as_ref()],
&crate::ID,
)
}
pub fn derive_validator_info_address(authority_key: &[u8; 96]) -> Pubkey {
let (address, _bump) = derive_validator_info_address_with_bump(authority_key);
address
}
pub fn derive_validator_info_address_with_bump(authority_key: &[u8; 96]) -> (Pubkey, u8) {
let authority_key_hash = rialo_s_sha256_hasher::hash(authority_key);
Pubkey::find_program_address(
&[VALIDATOR_INFO_SEED, authority_key_hash.as_ref()],
&crate::ID,
)
}