Context Accounts
State-changing Instructions
Claim
Write account: the signer of the claim who will pay the claim fee.
pub claimer: Signer<'info>,
Read account: the recipient of the airdrop.
pub recipient: UncheckedAccount<'info>,
Create if needed account: the ATA for airdrop token owned by the recipient.
pub recipient_ata: Box<InterfaceAccount<'info, TokenAccount>>,
Write account: the treasury account that will receive the claim fee.
pub treasury: Box<Account<'info, Treasury>>,
Read account: the mint account of the airdrop token.
pub airdrop_token_mint: Box<InterfaceAccount<'info, Mint>>,
Write account: the account storing the campaign data.
pub campaign: Box<Account<'info, Campaign>>,
Write account: the campaign's ATA for the airdrop token.
pub campaign_ata: Box<InterfaceAccount<'info, TokenAccount>>,
Create account: the claim receipt.
pub claim_receipt: Box<Account<'info, ClaimReceipt>>,
Program account: the Token program of the airdrop token.
pub airdrop_token_program: Interface<'info, TokenInterface>,
Program account: the Associated Token program.
pub associated_token_program: Program<'info, AssociatedToken>,
Read account: The Chainlink program used to retrieve on-chain price feeds.
pub chainlink_program: AccountInfo<'info>,
Read account: The account providing the SOL/USD price feed data.
pub chainlink_sol_usd_feed: AccountInfo<'info>,
Program account: the System program.
pub system_program: Program<'info, System>,
Clawback
Write account: the campaign creator who will claw back the tokens.
pub campaign_creator: Signer<'info>,
Read account: the clawback recipient.
pub clawback_recipient: UncheckedAccount<'info>,
Create if needed account: the clawback recipient's ATA for the airdrop token.
pub clawback_recipient_ata: Box<InterfaceAccount<'info, TokenAccount>>,
Read account: the mint account of the airdrop token.
pub airdrop_token_mint: Box<InterfaceAccount<'info, Mint>>,
Read account: the account storing the campaign data.
pub campaign: Box<Account<'info, Campaign>>,
Write account: the campaign's ATA for the airdrop token.
pub campaign_ata: Box<InterfaceAccount<'info, TokenAccount>>,
Program account: the Token program of the airdrop token.
pub airdrop_token_program: Interface<'info, TokenInterface>,
Program account: the Associated Token program.
pub associated_token_program: Program<'info, AssociatedToken>,
Program account: the System program.
pub system_program: Program<'info, System>,
CollectFees
Write account: the account authorized to collect fees from the treasury.
pub fee_collector: Signer<'info>,
Write account: the address that will receive the collected fees.
pub fee_recipient: UncheckedAccount<'info>,
Write account: the treasury account that holds the fees.
pub treasury: Box<Account<'info, Treasury>>,
CreateCampaign
Write account: the creator of the campaign.
pub creator: Signer<'info>,
Read account: the mint account of the airdrop token.
pub airdrop_token_mint: Box<InterfaceAccount<'info, Mint>>,
Create account: the account storing the campaign data.
pub campaign: Box<Account<'info, Campaign>>,
Create account: the campaign's ATA for the airdrop token.
pub campaign_ata: Box<InterfaceAccount<'info, TokenAccount>>,
Program account: the Token program of the airdrop token.
pub airdrop_token_program: Interface<'info, TokenInterface>,
Program account: the Associated Token program.
pub associated_token_program: Program<'info, AssociatedToken>,
Program account: the System program.
pub system_program: Program<'info, System>,
Initialize
Write account: the initializer of the program.
pub initializer: Signer<'info>,
Create account: the treasury account that will hold the fees.
pub treasury: Box<Account<'info, Treasury>>,
Program account: the System program.
pub system_program: Program<'info, System>,
Read-only Instructions
CampaignView
Read account: the account storing the campaign data.
pub campaign: Box<Account<'info, Campaign>>,
ClaimFeeInLamports
Read account: the treasury account that receives the claim fee.
pub treasury: Box<Account<'info, Treasury>>,
Read account: The Chainlink program used to retrieve on-chain price feeds.
pub chainlink_program: AccountInfo<'info>,
Read account: The account providing the SOL/USD price feed data.
pub chainlink_sol_usd_feed: AccountInfo<'info>,
HasClaimed
Read account: the account storing the campaign data.
pub campaign: Box<Account<'info, Campaign>>,
Read account: the claim receipt.
pub claim_receipt: UncheckedAccount<'info>,
TreasuryView
Read account: the account storing the treasury details.
pub treasury: Box<Account<'info, Treasury>>,