|
| 1 | +use anchor_lang::prelude::*; |
| 2 | +use anchor_spl::associated_token::ID as ASSOCIATED_TOKEN_PROGRAM_ID; |
| 3 | +use anchor_spl::token::ID as TOKEN_PROGRAM_ID; |
| 4 | +use const_crypto::ed25519; |
| 5 | + |
| 6 | +pub const JUP_V6_SHARED_ACCOUNT_ROUTE_AMOUNT_IN_REVERSE_OFFSET: usize = 1 + 2 + 8 + 8; // Due to jupiter parameters have dynamic length type (vec), we have to do parameters_data.length - JUP_V6_SHARED_ACCOUNT_ROUTE_AMOUNT_IN_REVERSE_OFFSET |
| 7 | +pub const JUP_V6_SHARED_ACCOUNT_ROUTE_SOURCE_ACCOUNT_INDEX: usize = 3; |
| 8 | +pub const JUP_V6_SHARED_ACCOUNT_ROUTE_DESTINATION_ACCOUNT_INDEX: usize = 6; |
| 9 | + |
| 10 | +pub const JUP_V6_ROUTE_AMOUNT_IN_REVERSE_OFFSET: usize = 1 + 2 + 8 + 8; |
| 11 | +pub const JUP_V6_ROUTE_SOURCE_ACCOUNT_INDEX: usize = 2; |
| 12 | +pub const JUP_V6_ROUTE_DESTINATION_ACCOUNT_INDEX: usize = 4; |
| 13 | + |
| 14 | +pub const DLMM_SWAP2_AMOUNT_IN_OFFSET: u16 = 8; |
| 15 | +pub const DLMM_SWAP2_SOURCE_ACCOUNT_INDEX: usize = 4; |
| 16 | +pub const DLMM_SWAP2_DESTINATION_ACCOUNT_INDEX: usize = 5; |
| 17 | + |
| 18 | +pub const DAMM_V2_SWAP_AMOUNT_IN_OFFSET: u16 = 8; |
| 19 | +pub const DAMM_V2_SWAP_SOURCE_ACCOUNT_INDEX: usize = 2; |
| 20 | +pub const DAMM_V2_SWAP_DESTINATION_ACCOUNT_INDEX: usize = 3; |
| 21 | + |
| 22 | +pub const JUP_V6: Pubkey = pubkey!("JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"); |
| 23 | +// https://github.com/MeteoraAg/zap-program/blob/4b67bfc64e5a023a1b74386be8b82c3908934a0b/idls/jupiter.json#L161 |
| 24 | +pub const JUP_V6_ROUTE_DISC: [u8; 8] = [229, 23, 203, 151, 122, 227, 173, 42]; |
| 25 | +// https://github.com/MeteoraAg/zap-program/blob/4b67bfc64e5a023a1b74386be8b82c3908934a0b/idls/jupiter.json#L270 |
| 26 | +pub const JUP_V6_SHARED_ACCOUNT_ROUTE_DISC: [u8; 8] = [193, 32, 155, 51, 65, 214, 156, 129]; |
| 27 | + |
| 28 | +pub const DLMM: Pubkey = pubkey!("LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo"); |
| 29 | +// https://github.com/MeteoraAg/zap-program/blob/4b67bfc64e5a023a1b74386be8b82c3908934a0b/idls/dlmm.json#L5242-L5251 |
| 30 | +pub const DLMM_SWAP2_DISC: [u8; 8] = [65, 75, 63, 76, 235, 91, 91, 136]; |
| 31 | + |
| 32 | +pub const DAMM_V2: Pubkey = pubkey!("cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG"); |
| 33 | +// https://github.com/MeteoraAg/zap-program/blob/4b67bfc64e5a023a1b74386be8b82c3908934a0b/idls/damm_v2.json#L2154 |
| 34 | +pub const DAMM_V2_SWAP_DISC: [u8; 8] = [248, 198, 158, 145, 225, 117, 135, 200]; |
| 35 | + |
| 36 | +pub const ZAP: Pubkey = pubkey!("zapvX9M3uf5pvy4wRPAbQgdQsM1xmuiFnkfHKPvwMiz"); |
| 37 | +pub const ZAP_OUT_DISC: [u8; 8] = [155, 108, 185, 112, 104, 210, 161, 64]; |
| 38 | + |
| 39 | +pub const USDC_ADDRESS: Pubkey = |
| 40 | + Pubkey::from_str_const("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"); |
| 41 | + |
| 42 | +pub const SOL_ADDRESS: Pubkey = |
| 43 | + Pubkey::from_str_const("So11111111111111111111111111111111111111112"); |
| 44 | + |
| 45 | +pub const MINTS_DISALLOWED_TO_ZAP_OUT: [Pubkey; 2] = [USDC_ADDRESS, SOL_ADDRESS]; |
| 46 | + |
| 47 | +pub const TREASURY: Pubkey = pubkey!("6aYhxiNGmG8AyU25rh2R7iFu4pBrqnQHpNUGhmsEXRcm"); |
| 48 | + |
| 49 | +pub const TREASURY_USDC_ADDRESS: Pubkey = Pubkey::new_from_array( |
| 50 | + ed25519::derive_program_address( |
| 51 | + &[ |
| 52 | + &TREASURY.to_bytes(), |
| 53 | + &TOKEN_PROGRAM_ID.to_bytes(), |
| 54 | + &USDC_ADDRESS.to_bytes(), |
| 55 | + ], |
| 56 | + &ASSOCIATED_TOKEN_PROGRAM_ID.to_bytes(), |
| 57 | + ) |
| 58 | + .0, |
| 59 | +); |
| 60 | + |
| 61 | +pub const TREASURY_SOL_ADDRESS: Pubkey = Pubkey::new_from_array( |
| 62 | + ed25519::derive_program_address( |
| 63 | + &[ |
| 64 | + &TREASURY.to_bytes(), |
| 65 | + &TOKEN_PROGRAM_ID.to_bytes(), |
| 66 | + &SOL_ADDRESS.to_bytes(), |
| 67 | + ], |
| 68 | + &ASSOCIATED_TOKEN_PROGRAM_ID.to_bytes(), |
| 69 | + ) |
| 70 | + .0, |
| 71 | +); |
0 commit comments