Skip to main content

stealth_vault/
lib.rs

1use anchor_lang::prelude::*;
2
3pub mod constants;
4pub mod errors;
5pub mod instructions;
6pub mod state;
7
8pub use constants::*;
9pub use errors::*;
10pub use instructions::*;
11pub use state::*;
12
13declare_id!("4XmHzu3kxf3oyD2bchUmkDKoq2QADHkP13Zcv1hsS5X5");
14
15#[program]
16pub mod stealth_vault {
17    use super::*;
18
19    pub fn initialize_vault(
20        ctx: Context<InitializeVault>,
21        ephemeral_authority: Pubkey,
22    ) -> Result<()> {
23        instructions::initialize_vault::initialize_vault_handler(ctx, ephemeral_authority)
24    }
25
26    pub fn rotate_authority(
27        ctx: Context<RotateAuthority>,
28        new_ephemeral_authority: Pubkey,
29    ) -> Result<()> {
30        instructions::rotate_authority::rotate_authority_handler(ctx, new_ephemeral_authority)
31    }
32
33    pub fn submit_execution_intent(
34        ctx: Context<SubmitExecutionIntent>,
35        nonce: u64,
36        payload_hash: [u8; 32],
37    ) -> Result<()> {
38        instructions::submit_execution_intent::submit_execution_intent_handler(
39            ctx,
40            nonce,
41            payload_hash,
42        )
43    }
44
45    pub fn cancel_intent(ctx: Context<CancelIntent>, nonce: u64) -> Result<()> {
46        instructions::cancel_intent::cancel_intent_handler(ctx, nonce)
47    }
48
49    pub fn execute_intent(ctx: Context<ExecuteIntent>, nonce: u64) -> Result<()> {
50        instructions::execute_intent::execute_intent_handler(ctx, nonce)
51    }
52}