spl_transfer_hook_interface/
lib.rs1#![allow(clippy::arithmetic_side_effects)]
7#![deny(missing_docs)]
8#![cfg_attr(not(test), forbid(unsafe_code))]
9
10pub mod error;
11pub mod instruction;
12pub mod offchain;
13pub mod onchain;
14
15pub use miraland_program;
18use miraland_program::pubkey::Pubkey;
19
20pub const NAMESPACE: &str = "solarti-transfer-hook-interface";
22
23const EXTRA_ACCOUNT_METAS_SEED: &[u8] = b"extra-account-metas";
25
26pub fn get_extra_account_metas_address(mint: &Pubkey, program_id: &Pubkey) -> Pubkey {
28 get_extra_account_metas_address_and_bump_seed(mint, program_id).0
29}
30
31pub fn get_extra_account_metas_address_and_bump_seed(
34 mint: &Pubkey,
35 program_id: &Pubkey,
36) -> (Pubkey, u8) {
37 Pubkey::find_program_address(&collect_extra_account_metas_seeds(mint), program_id)
38}
39
40pub fn collect_extra_account_metas_seeds(mint: &Pubkey) -> [&[u8]; 2] {
43 [EXTRA_ACCOUNT_METAS_SEED, mint.as_ref()]
44}
45
46pub fn collect_extra_account_metas_signer_seeds<'a>(
49 mint: &'a Pubkey,
50 bump_seed: &'a [u8],
51) -> [&'a [u8]; 3] {
52 [EXTRA_ACCOUNT_METAS_SEED, mint.as_ref(), bump_seed]
53}