// This file is autogenerated with https://github.com/acheroncrypto/native-to-anchor use anchor_lang::prelude::*; declare_id!("11111111111111111111111111111111"); #[program] pub mod spl_record { use super::*; pub fn initialize(ctx: Context) -> Result<()> { Ok(()) } pub fn write(ctx: Context, offset: u64, data: Vec) -> Result<()> { Ok(()) } pub fn set_authority(ctx: Context) -> Result<()> { Ok(()) } pub fn close_account(ctx: Context) -> Result<()> { Ok(()) } } #[derive(Accounts)] pub struct Initialize<'info> { #[account(mut)] record_account: AccountInfo<'info>, authority: AccountInfo<'info>, } #[derive(Accounts)] pub struct Write<'info> { #[account(mut)] record_account: AccountInfo<'info>, signer: Signer<'info>, } #[derive(Accounts)] pub struct SetAuthority<'info> { #[account(mut)] record_account: AccountInfo<'info>, signer: Signer<'info>, new_authority: AccountInfo<'info>, } #[derive(Accounts)] pub struct CloseAccount<'info> { #[account(mut)] record_account: AccountInfo<'info>, signer: Signer<'info>, #[account(mut)] receiver: AccountInfo<'info>, } #[account] pub struct RecordData { /// Struct version, allows for upgrades to the program pub version: u8, /// The account allowed to update the data pub authority: Pubkey, /// The data contained by the account, could be anything serializable pub data: Data, } #[derive(AnchorSerialize, AnchorDeserialize)] pub struct Data { /// The data contained by the account, could be anything or serializable pub bytes: [u8; 8], } #[error_code] pub enum RecordError { /// Incorrect authority provided on update or delete #[msg("Incorrect authority provided on update or delete")] IncorrectAuthority, /// Calculation overflow #[msg("Calculation overflow")] Overflow, }