lib.rs 707 B

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