lib.rs 674 B

123456789101112131415161718192021222324
  1. // #region core
  2. use anchor_lang::prelude::*;
  3. use puppet::{Puppet, SetData};
  4. #[program]
  5. mod puppet_master {
  6. use super::*;
  7. pub fn pull_strings(ctx: Context<PullStrings>, data: u64) -> ProgramResult {
  8. let cpi_program = ctx.accounts.puppet_program.clone();
  9. let cpi_accounts = SetData {
  10. puppet: ctx.accounts.puppet.clone().into(),
  11. };
  12. let cpi_ctx = CpiContext::new(cpi_program, cpi_accounts);
  13. puppet::cpi::set_data(cpi_ctx, data)
  14. }
  15. }
  16. #[derive(Accounts)]
  17. pub struct PullStrings<'info> {
  18. #[account(mut)]
  19. pub puppet: CpiAccount<'info, Puppet>,
  20. pub puppet_program: AccountInfo<'info>,
  21. }
  22. // #endregion core