lib.rs 818 B

12345678910111213141516171819202122232425262728
  1. // #region core
  2. use anchor_lang::prelude::*;
  3. use puppet::cpi::accounts::SetData;
  4. use puppet::program::Puppet;
  5. use puppet::{self, Data};
  6. declare_id!("HmbTLCmaGvZhKnn1Zfa1JVnp7vkMV4DYVxPLWBVoN65L");
  7. #[program]
  8. mod puppet_master {
  9. use super::*;
  10. pub fn pull_strings(ctx: Context<PullStrings>, data: u64) -> anchor_lang::Result<()> {
  11. let cpi_program = ctx.accounts.puppet_program.to_account_info();
  12. let cpi_accounts = SetData {
  13. puppet: ctx.accounts.puppet.to_account_info(),
  14. };
  15. let cpi_ctx = CpiContext::new(cpi_program, cpi_accounts);
  16. puppet::cpi::set_data(cpi_ctx, data)
  17. }
  18. }
  19. #[derive(Accounts)]
  20. pub struct PullStrings<'info> {
  21. #[account(mut)]
  22. pub puppet: Account<'info, Data>,
  23. pub puppet_program: Program<'info, Puppet>,
  24. }
  25. // #endregion core