switchboard_solana/oracle_program/instructions/
oracle_heartbeat.rs1use crate::prelude::*;
2
3pub struct OracleHeartbeat {
4 pub oracle: Pubkey,
5 pub oracle_authority: Pubkey,
6 pub token_account: Pubkey,
7 pub gc_oracle: Pubkey,
8 pub oracle_queue: Pubkey,
9 pub permission: Pubkey,
10 pub data_buffer: Pubkey,
11}
12#[derive(Clone, AnchorSerialize, AnchorDeserialize)]
13pub struct OracleHeartbeatParams {
14 pub permission_bump: u8,
15}
16impl Discriminator for OracleHeartbeat {
17 const DISCRIMINATOR: [u8; 8] = [10, 175, 217, 130, 111, 35, 117, 54];
18}
19
20impl<'info> OracleHeartbeat {
21 #[allow(unused_variables)]
22 fn to_account_metas(&self, is_signer: Option<bool>) -> Vec<AccountMeta> {
23 vec![
24 AccountMeta {
25 pubkey: self.oracle.key(),
26 is_signer: false,
27 is_writable: true,
28 },
29 AccountMeta {
30 pubkey: self.oracle_authority.key(),
31 is_signer: true,
32 is_writable: false,
33 },
34 AccountMeta {
35 pubkey: self.token_account.key(),
36 is_signer: false,
37 is_writable: false,
38 },
39 AccountMeta {
40 pubkey: self.gc_oracle.key(),
41 is_signer: false,
42 is_writable: true,
43 },
44 AccountMeta {
45 pubkey: self.oracle_queue.key(),
46 is_signer: false,
47 is_writable: true,
48 },
49 AccountMeta {
50 pubkey: self.permission.key(),
51 is_signer: false,
52 is_writable: false,
53 },
54 AccountMeta {
55 pubkey: self.data_buffer.key(),
56 is_signer: false,
57 is_writable: true,
58 },
59 ]
60 }
61}