spl: Add token initialize_account instruction (#166)
This commit is contained in:
parent
0e02301e42
commit
ae990e21d7
|
@ -14,6 +14,7 @@ incremented for features.
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
* cli: Fund Anchor.toml configured wallet when testing ([#164](https://github.com/project-serum/anchor/pull/164)).
|
* cli: Fund Anchor.toml configured wallet when testing ([#164](https://github.com/project-serum/anchor/pull/164)).
|
||||||
|
* spl: Add initialize_account instruction for spl tokens ([#166](https://github.com/project-serum/anchor/pull/166)).
|
||||||
|
|
||||||
## [0.4.1] - 2021-04-06
|
## [0.4.1] - 2021-04-06
|
||||||
|
|
||||||
|
|
|
@ -104,6 +104,27 @@ pub fn approve<'a, 'b, 'c, 'info>(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn initialize_account<'a, 'b, 'c, 'info>(
|
||||||
|
ctx: CpiContext<'a, 'b, 'c, 'info, InitializeAccount<'info>>,
|
||||||
|
) -> ProgramResult {
|
||||||
|
let ix = spl_token::instruction::initialize_account(
|
||||||
|
&spl_token::ID,
|
||||||
|
ctx.accounts.account.key,
|
||||||
|
ctx.accounts.mint.key,
|
||||||
|
ctx.accounts.authority.key,
|
||||||
|
)?;
|
||||||
|
solana_program::program::invoke_signed(
|
||||||
|
&ix,
|
||||||
|
&[
|
||||||
|
ctx.accounts.account.clone(),
|
||||||
|
ctx.accounts.mint.clone(),
|
||||||
|
ctx.accounts.authority.clone(),
|
||||||
|
ctx.program.clone(),
|
||||||
|
],
|
||||||
|
ctx.signer_seeds,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Accounts)]
|
#[derive(Accounts)]
|
||||||
pub struct Transfer<'info> {
|
pub struct Transfer<'info> {
|
||||||
pub from: AccountInfo<'info>,
|
pub from: AccountInfo<'info>,
|
||||||
|
@ -132,6 +153,13 @@ pub struct Approve<'info> {
|
||||||
pub authority: AccountInfo<'info>,
|
pub authority: AccountInfo<'info>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Accounts)]
|
||||||
|
pub struct InitializeAccount<'info> {
|
||||||
|
pub account: AccountInfo<'info>,
|
||||||
|
pub mint: AccountInfo<'info>,
|
||||||
|
pub authority: AccountInfo<'info>,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct TokenAccount(spl_token::state::Account);
|
pub struct TokenAccount(spl_token::state::Account);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue