lib.rs 693 B

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