Sergio Chouhy 0b2650127a clippy
2025-08-12 16:56:16 -03:00

34 lines
842 B
Rust

use nssa_core::{
account::Nonce,
program::{InstructionData, ProgramId},
};
use serde::{Deserialize, Serialize};
use crate::{Address, error::NssaError, program::Program};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct Message {
pub(crate) program_id: ProgramId,
pub(crate) addresses: Vec<Address>,
pub(crate) nonces: Vec<Nonce>,
pub(crate) instruction_data: InstructionData,
}
impl Message {
pub fn try_new<T: Serialize>(
program_id: ProgramId,
addresses: Vec<Address>,
nonces: Vec<Nonce>,
instruction: T,
) -> Result<Self, NssaError> {
let instruction_data = Program::serialize_instruction(instruction)?;
Ok(Self {
program_id,
addresses,
nonces,
instruction_data,
})
}
}