Attribute Macro instruction

Source
#[instruction]
Expand description

This attribute is used to override the Anchor defaults of program instructions.

§Arguments

  • discriminator: Override the default 8-byte discriminator

    Usage: discriminator = <CONST_EXPR>

    All constant expressions are supported.

    Examples:

    • discriminator = 1 (shortcut for [1])
    • discriminator = [1, 2, 3, 4]
    • discriminator = b"hi"
    • discriminator = MY_DISC
    • discriminator = get_disc(...)

§Example

use anchor_lang::prelude::*;

declare_id!("CustomDiscriminator111111111111111111111111");

#[program]
pub mod custom_discriminator {
    use super::*;

    #[instruction(discriminator = [1, 2, 3, 4])]
    pub fn my_ix(_ctx: Context<MyIx>) -> Result<()> {
        Ok(())
    }
}

#[derive(Accounts)]
pub struct MyIx<'info> {
    pub signer: Signer<'info>,
}