lib.rs 664 B

123456789101112131415161718192021222324252627282930313233
  1. use anchor_lang::prelude::*;
  2. #[program]
  3. pub mod puppet {
  4. use super::*;
  5. pub fn initialize(ctx: Context<Initialize>) -> ProgramResult {
  6. Ok(())
  7. }
  8. pub fn set_data(ctx: Context<SetData>, data: u64) -> ProgramResult {
  9. let puppet = &mut ctx.accounts.puppet;
  10. puppet.data = data;
  11. Ok(())
  12. }
  13. }
  14. #[derive(Accounts)]
  15. pub struct Initialize<'info> {
  16. #[account(init)]
  17. pub puppet: ProgramAccount<'info, Puppet>,
  18. pub rent: Sysvar<'info, Rent>,
  19. }
  20. #[derive(Accounts)]
  21. pub struct SetData<'info> {
  22. #[account(mut)]
  23. pub puppet: ProgramAccount<'info, Puppet>,
  24. }
  25. #[account]
  26. pub struct Puppet {
  27. pub data: u64,
  28. }