lib.rs 750 B

1234567891011121314151617181920212223242526
  1. // #region core
  2. use anchor_lang::prelude::*;
  3. use puppet::{Puppet, SetData};
  4. declare_id!("HmbTLCmaGvZhKnn1Zfa1JVnp7vkMV4DYVxPLWBVoN65L");
  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(),
  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, owner = puppet_program)]
  20. pub puppet: Account<'info, Puppet>,
  21. pub puppet_program: AccountInfo<'info>,
  22. }
  23. // #endregion core