2020-12-08 23:18:27 -08:00
|
|
|
use solana_sdk::{account::Account, pubkey::Pubkey, rent::Rent};
|
|
|
|
|
|
|
|
mod spl_token {
|
|
|
|
solana_sdk::declare_id!("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");
|
|
|
|
}
|
2021-02-18 23:59:31 -08:00
|
|
|
mod spl_memo_1_0 {
|
2020-12-08 23:18:27 -08:00
|
|
|
solana_sdk::declare_id!("Memo1UhkJRfHyvLMcVucJwxXeuD728EqVDDwQDxFMNo");
|
|
|
|
}
|
2021-02-18 23:59:31 -08:00
|
|
|
mod spl_memo_3_0 {
|
|
|
|
solana_sdk::declare_id!("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr");
|
|
|
|
}
|
2020-12-08 23:18:27 -08:00
|
|
|
mod spl_associated_token_account {
|
|
|
|
solana_sdk::declare_id!("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");
|
|
|
|
}
|
|
|
|
|
|
|
|
static SPL_PROGRAMS: &[(Pubkey, &[u8])] = &[
|
2021-02-12 12:36:27 -08:00
|
|
|
(spl_token::ID, include_bytes!("programs/spl_token-3.1.0.so")),
|
2021-02-18 23:59:31 -08:00
|
|
|
(
|
|
|
|
spl_memo_1_0::ID,
|
|
|
|
include_bytes!("programs/spl_memo-1.0.0.so"),
|
|
|
|
),
|
|
|
|
(
|
|
|
|
spl_memo_3_0::ID,
|
|
|
|
include_bytes!("programs/spl_memo-3.0.0.so"),
|
|
|
|
),
|
2020-12-08 23:18:27 -08:00
|
|
|
(
|
|
|
|
spl_associated_token_account::ID,
|
|
|
|
include_bytes!("programs/spl_associated-token-account-1.0.1.so"),
|
|
|
|
),
|
|
|
|
];
|
|
|
|
|
|
|
|
pub fn spl_programs(rent: &Rent) -> Vec<(Pubkey, Account)> {
|
|
|
|
SPL_PROGRAMS
|
|
|
|
.iter()
|
|
|
|
.map(|(program_id, elf)| {
|
|
|
|
(
|
|
|
|
*program_id,
|
|
|
|
Account {
|
|
|
|
lamports: rent.minimum_balance(elf.len()).min(1),
|
|
|
|
data: elf.to_vec(),
|
|
|
|
owner: solana_program::bpf_loader::id(),
|
|
|
|
executable: true,
|
|
|
|
rent_epoch: 0,
|
|
|
|
},
|
|
|
|
)
|
|
|
|
})
|
|
|
|
.collect()
|
|
|
|
}
|