lib.rs 792 B

12345678910111213141516171819202122232425262728293031323334353637
  1. use anchor_lang::prelude::*;
  2. declare_id!("Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS");
  3. #[program]
  4. pub mod puppet {
  5. use super::*;
  6. pub fn initialize(_ctx: Context<Initialize>) -> Result<()> {
  7. Ok(())
  8. }
  9. pub fn set_data(ctx: Context<SetData>, data: u64) -> Result<()> {
  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, payer = user, space = 8 + 8)]
  18. pub puppet: Account<'info, Data>,
  19. #[account(mut)]
  20. pub user: Signer<'info>,
  21. pub system_program: Program<'info, System>,
  22. }
  23. #[derive(Accounts)]
  24. pub struct SetData<'info> {
  25. #[account(mut)]
  26. pub puppet: Account<'info, Data>,
  27. }
  28. #[account]
  29. pub struct Data {
  30. pub data: u64,
  31. }