use anchor_lang::prelude::*; declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS"); #[program] pub mod puppet { use super::*; pub fn initialize(_ctx: Context) -> Result<()> { Ok(()) } pub fn set_data(ctx: Context, data: u64) -> Result<()> { let puppet = &mut ctx.accounts.puppet; puppet.data = data; Ok(()) } } #[derive(Accounts)] pub struct Initialize<'info> { #[account(init, payer = user, space = 8 + 8)] pub puppet: Account<'info, Data>, #[account(mut)] pub user: Signer<'info>, pub system_program: Program<'info, System>, } #[derive(Accounts)] pub struct SetData<'info> { #[account(mut)] pub puppet: Account<'info, Data>, } #[account] pub struct Data { pub data: u64, }