I know how ATA and PDA works. I know that an ATA is a PDA, and so the account which the PDA was derived from is the one that can sign transactions for this PDA. So, I assume that a contract's ATA's authority is the contract itself.
How can I specify this in an Anchor Instruction ?
Here is the code I'm trying to fix:
pub token_mint: Account<'info, Mint>,
#[account(
mut,
associated_token::mint = token_mint,
associated_token::authority = ????,
)]
pub program_token_account: Box<Account<'info, TokenAccount>>,