Skip to content

Commit 1fc7cf6

Browse files
authored
[solana] Use token instead of token_interface (#255)
* Use token::Token instead of token_interface::TokenInterface * Use Account instead of InterfaceAccount
1 parent c067eac commit 1fc7cf6

8 files changed

+36
-42
lines changed

solana/programs/staking/src/contexts/cancel_vesting.rs

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use anchor_lang::prelude::*;
22
use anchor_spl::associated_token::AssociatedToken;
3-
use anchor_spl::token_interface::{Mint, TokenAccount, TokenInterface};
4-
3+
use anchor_spl::token::{Mint, Token, TokenAccount};
54
use crate::context::{VESTING_BALANCE_SEED, VESTING_CONFIG_SEED, VEST_SEED, CONFIG_SEED};
65
use crate::error::VestingError;
76
use crate::state::{Vesting, VestingBalance, VestingConfig};
@@ -15,13 +14,13 @@ pub struct CancelVesting<'info> {
1514
@ VestingError::InvalidVestingAdmin
1615
)]
1716
admin: Signer<'info>,
18-
mint: InterfaceAccount<'info, Mint>,
17+
mint: Account<'info, Mint>,
1918
#[account(
2019
associated_token::mint = mint,
2120
associated_token::authority = vester_ta.owner,
2221
associated_token::token_program = token_program
2322
)]
24-
vester_ta: InterfaceAccount<'info, TokenAccount>,
23+
vester_ta: Account<'info, TokenAccount>,
2524
#[account(
2625
mut,
2726
constraint = !config.finalized @ VestingError::VestingFinalized, // Vesting cannot be cancelled after vest is finalized
@@ -51,7 +50,7 @@ pub struct CancelVesting<'info> {
5150
)]
5251
pub global_config: Box<Account<'info, GlobalConfig>>,
5352
associated_token_program: Program<'info, AssociatedToken>,
54-
token_program: Interface<'info, TokenInterface>,
53+
token_program: Program<'info, Token>,
5554
system_program: Program<'info, System>,
5655
}
5756

solana/programs/staking/src/contexts/claim_vesting.rs

+5-7
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,29 @@ use crate::{
88
};
99
use anchor_lang::prelude::*;
1010
use anchor_spl::associated_token::AssociatedToken;
11-
use anchor_spl::token_interface::{
12-
transfer_checked, Mint, TokenAccount, TokenInterface, TransferChecked,
13-
};
11+
use anchor_spl::token::{Mint, Token, TokenAccount, transfer_checked, TransferChecked};
1412
use std::convert::TryInto;
1513

1614
#[event_cpi]
1715
#[derive(Accounts)]
1816
pub struct ClaimVesting<'info> {
1917
#[account(mut)]
2018
vester: Signer<'info>,
21-
mint: InterfaceAccount<'info, Mint>,
19+
mint: Account<'info, Mint>,
2220
#[account(
2321
mut,
2422
associated_token::mint = mint,
2523
associated_token::authority = config,
2624
associated_token::token_program = token_program
2725
)]
28-
vault: InterfaceAccount<'info, TokenAccount>,
26+
vault: Account<'info, TokenAccount>,
2927
#[account(
3028
mut,
3129
associated_token::mint = mint,
3230
associated_token::authority = vester,
3331
associated_token::token_program = token_program
3432
)]
35-
vester_ta: InterfaceAccount<'info, TokenAccount>,
33+
vester_ta: Account<'info, TokenAccount>,
3634
#[account(
3735
mut,
3836
constraint = config.finalized @ VestingError::VestingUnfinalized,
@@ -77,7 +75,7 @@ pub struct ClaimVesting<'info> {
7775
)]
7876
admin: AccountInfo<'info>,
7977
associated_token_program: Program<'info, AssociatedToken>,
80-
token_program: Interface<'info, TokenInterface>,
78+
token_program: Program<'info, Token>,
8179
system_program: Program<'info, System>,
8280
}
8381

solana/programs/staking/src/contexts/create_vesting.rs

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use anchor_lang::prelude::*;
22
use anchor_spl::associated_token::AssociatedToken;
3-
use anchor_spl::token_interface::{Mint, TokenAccount, TokenInterface};
4-
3+
use anchor_spl::token::{Mint, Token, TokenAccount};
54
use crate::context::{CONFIG_SEED, VESTING_BALANCE_SEED, VESTING_CONFIG_SEED, VEST_SEED};
65
use crate::error::VestingError;
76
use crate::state::global_config::GlobalConfig;
@@ -16,13 +15,13 @@ pub struct CreateVesting<'info> {
1615
@ VestingError::InvalidVestingAdmin
1716
)]
1817
admin: Signer<'info>,
19-
mint: InterfaceAccount<'info, Mint>,
18+
mint: Account<'info, Mint>,
2019
#[account(
2120
associated_token::mint = mint,
2221
associated_token::authority = vester_ta.owner,
2322
associated_token::token_program = token_program
2423
)]
25-
vester_ta: InterfaceAccount<'info, TokenAccount>,
24+
vester_ta: Account<'info, TokenAccount>,
2625
#[account(
2726
mut,
2827
constraint = !config.finalized @ VestingError::VestingFinalized, // A vest can only be created before a vest is finalized
@@ -51,7 +50,7 @@ pub struct CreateVesting<'info> {
5150
)]
5251
pub global_config: Box<Account<'info, GlobalConfig>>,
5352
associated_token_program: Program<'info, AssociatedToken>,
54-
token_program: Interface<'info, TokenInterface>,
53+
token_program: Program<'info, Token>,
5554
system_program: Program<'info, System>,
5655
}
5756

solana/programs/staking/src/contexts/create_vesting_balance.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::state::global_config::GlobalConfig;
44
use crate::state::{VestingBalance, VestingConfig};
55
use anchor_lang::prelude::*;
66
use anchor_spl::associated_token::AssociatedToken;
7-
use anchor_spl::token_interface::{Mint, TokenAccount, TokenInterface};
7+
use anchor_spl::token::{Mint, Token, TokenAccount};
88

99
#[derive(Accounts)]
1010
#[instruction()]
@@ -15,7 +15,7 @@ pub struct CreateVestingBalance<'info> {
1515
@ VestingError::InvalidVestingAdmin
1616
)]
1717
admin: Signer<'info>,
18-
mint: InterfaceAccount<'info, Mint>,
18+
mint: Account<'info, Mint>,
1919
#[account(
2020
mut,
2121
seeds = [VESTING_CONFIG_SEED.as_bytes(), mint.key().as_ref(), config.seed.to_le_bytes().as_ref()],
@@ -35,14 +35,14 @@ pub struct CreateVestingBalance<'info> {
3535
associated_token::authority = vester_ta.owner,
3636
associated_token::token_program = token_program
3737
)]
38-
vester_ta: InterfaceAccount<'info, TokenAccount>,
38+
vester_ta: Account<'info, TokenAccount>,
3939
#[account(
4040
seeds = [CONFIG_SEED.as_bytes()],
4141
bump = global_config.bump,
4242
)]
4343
pub global_config: Box<Account<'info, GlobalConfig>>,
4444
associated_token_program: Program<'info, AssociatedToken>,
45-
token_program: Interface<'info, TokenInterface>,
45+
token_program: Program<'info, Token>,
4646
system_program: Program<'info, System>,
4747
}
4848

solana/programs/staking/src/contexts/finalize.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use crate::context::{VESTING_CONFIG_SEED, CONFIG_SEED};
22
use crate::error::VestingError;
33
use crate::state::VestingConfig;
44
use anchor_lang::prelude::*;
5-
use anchor_spl::token_interface::{Mint, TokenAccount, TokenInterface};
5+
use anchor_spl::token::{Mint, Token, TokenAccount};
66
use crate::state::global_config::GlobalConfig;
77

88
#[derive(Accounts)]
@@ -13,14 +13,14 @@ pub struct Finalize<'info> {
1313
@ VestingError::InvalidVestingAdmin
1414
)]
1515
pub admin: Signer<'info>,
16-
pub mint: InterfaceAccount<'info, Mint>,
16+
pub mint: Account<'info, Mint>,
1717
#[account(
1818
mut,
1919
associated_token::mint = mint,
2020
associated_token::authority = config,
2121
associated_token::token_program = token_program
2222
)]
23-
vault: InterfaceAccount<'info, TokenAccount>,
23+
vault: Account<'info, TokenAccount>,
2424
#[account(
2525
mut,
2626
constraint = !config.finalized @ VestingError::VestingFinalized,
@@ -33,7 +33,7 @@ pub struct Finalize<'info> {
3333
bump = global_config.bump,
3434
)]
3535
pub global_config: Box<Account<'info, GlobalConfig>>,
36-
token_program: Interface<'info, TokenInterface>,
36+
token_program: Program<'info, Token>,
3737
}
3838

3939
impl<'info> Finalize<'info> {

solana/programs/staking/src/contexts/initialize.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ use crate::state::global_config::GlobalConfig;
44
use crate::state::VestingConfig;
55
use anchor_lang::prelude::*;
66
use anchor_spl::associated_token::AssociatedToken;
7-
use anchor_spl::token_interface::{Mint, TokenAccount, TokenInterface};
7+
use anchor_spl::token::{Mint, Token, TokenAccount};
88

99
#[derive(Accounts)]
1010
#[instruction(seed: u64)]
1111
pub struct Initialize<'info> {
1212
#[account(mut)]
1313
admin: Signer<'info>,
1414
#[account(address = global_config.voting_token_mint)]
15-
mint: InterfaceAccount<'info, Mint>,
15+
mint: Account<'info, Mint>,
1616
// Initialize a vault for us to store our money in escrow for vesting
1717
#[account(
1818
init,
@@ -21,13 +21,13 @@ pub struct Initialize<'info> {
2121
associated_token::authority = config,
2222
associated_token::token_program = token_program
2323
)]
24-
vault: InterfaceAccount<'info, TokenAccount>,
24+
vault: Account<'info, TokenAccount>,
2525
// Set a recovery address for recovering surplus funds from the contract
2626
#[account(
2727
token::mint = mint,
2828
token::token_program = token_program
2929
)]
30-
recovery: InterfaceAccount<'info, TokenAccount>,
30+
recovery: Account<'info, TokenAccount>,
3131
// Initialize a vesting config for a specific admin, mint and seed
3232
#[account(
3333
init,
@@ -46,7 +46,7 @@ pub struct Initialize<'info> {
4646
global_config: Box<Account<'info, GlobalConfig>>,
4747

4848
associated_token_program: Program<'info, AssociatedToken>,
49-
token_program: Interface<'info, TokenInterface>,
49+
token_program: Program<'info, Token>,
5050
system_program: Program<'info, System>,
5151
}
5252

solana/programs/staking/src/contexts/transfer_vesting.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,28 @@ use crate::state::{Vesting, VestingBalance, VestingConfig};
99
use crate::{error::ErrorCode, error::VestingError};
1010
use anchor_lang::prelude::*;
1111
use anchor_spl::associated_token::AssociatedToken;
12-
use anchor_spl::token_interface::{Mint, TokenAccount, TokenInterface};
12+
use anchor_spl::token::{Mint, Token, TokenAccount};
1313

1414
#[event_cpi]
1515
#[derive(Accounts)]
1616
pub struct TransferVesting<'info> {
1717
#[account(mut)]
1818
vester: Signer<'info>,
19-
mint: Box<InterfaceAccount<'info, Mint>>,
19+
mint: Box<Account<'info, Mint>>,
2020
#[account(
2121
mut,
2222
associated_token::mint = mint,
2323
associated_token::authority = vester_ta.owner,
2424
associated_token::token_program = token_program
2525
)]
26-
vester_ta: Box<InterfaceAccount<'info, TokenAccount>>,
26+
vester_ta: Box<Account<'info, TokenAccount>>,
2727
#[account(
2828
mut,
2929
associated_token::mint = mint,
3030
associated_token::authority = new_vester_ta.owner,
3131
associated_token::token_program = token_program
3232
)]
33-
new_vester_ta: Box<InterfaceAccount<'info, TokenAccount>>,
33+
new_vester_ta: Box<Account<'info, TokenAccount>>,
3434
#[account(
3535
mut,
3636
constraint = config.finalized @ VestingError::VestingUnfinalized,
@@ -88,7 +88,7 @@ pub struct TransferVesting<'info> {
8888
pub new_stake_account_metadata: Option<Box<Account<'info, StakeAccountMetadata>>>,
8989

9090
associated_token_program: Program<'info, AssociatedToken>,
91-
token_program: Interface<'info, TokenInterface>,
91+
token_program: Program<'info, Token>,
9292
system_program: Program<'info, System>,
9393
}
9494

solana/programs/staking/src/contexts/withdraw_surplus.rs

+5-7
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ use crate::error::VestingError;
33
use crate::state::VestingConfig;
44
use anchor_lang::prelude::*;
55
use anchor_spl::associated_token::AssociatedToken;
6-
use anchor_spl::token_interface::{
7-
transfer_checked, Mint, TokenAccount, TokenInterface, TransferChecked,
8-
};
6+
use anchor_spl::token::{Mint, Token, TokenAccount, transfer_checked, TransferChecked};
97
use crate::state::global_config::GlobalConfig;
108

119
#[derive(Accounts)]
@@ -21,15 +19,15 @@ pub struct WithdrawSurplus<'info> {
2119
token::mint = mint,
2220
token::token_program = token_program
2321
)]
24-
recovery: InterfaceAccount<'info, TokenAccount>,
25-
mint: InterfaceAccount<'info, Mint>,
22+
recovery: Account<'info, TokenAccount>,
23+
mint: Account<'info, Mint>,
2624
#[account(
2725
mut,
2826
associated_token::mint = mint,
2927
associated_token::authority = config,
3028
associated_token::token_program = token_program
3129
)]
32-
vault: InterfaceAccount<'info, TokenAccount>,
30+
vault: Account<'info, TokenAccount>,
3331
#[account(
3432
mut,
3533
constraint = vault.amount > config.vested @ VestingError::NotInSurplus,
@@ -44,7 +42,7 @@ pub struct WithdrawSurplus<'info> {
4442
)]
4543
pub global_config: Box<Account<'info, GlobalConfig>>,
4644
associated_token_program: Program<'info, AssociatedToken>,
47-
token_program: Interface<'info, TokenInterface>,
45+
token_program: Program<'info, Token>,
4846
system_program: Program<'info, System>,
4947
}
5048

0 commit comments

Comments
 (0)