Skip to main content

emit

Macro emit 

Source
macro_rules! emit {
    ($($segment:expr),+ $(,)?) => { ... };
}
Expand description

Emit byte slices as a structured event log entry.

Packs up to 8 slices on the stack and calls sol_log_data in a single syscall. For indexer-friendly event emission without borsh, proc macros, or an allocator.

// Deposit event: discriminator + user pubkey + amount
let disc = [0x01u8];
let amt = deposit_amount.to_le_bytes();
emit!(&disc, user.address().as_ref(), &amt);

// Withdraw event: discriminator + vault + user + amount
let disc = [0x02u8];
let amt = withdraw_amount.to_le_bytes();
emit!(&disc, vault.address().as_ref(), user.address().as_ref(), &amt);