这里的account指的是Account中存储的具体数据结构,例子如下:

#[account]
#[derive(InitSpace, Debug, PartialEq)]
pub struct TestVec {
    #[max_len(2)]
    pub v1: Vec<u64>,
    #[max_len(2)]
    pub v2: Vec<u64>,
}
// 下方是个在Context中使用的account列表(Accounts)
#[derive(Accounts)]
pub struct Initialize<'info> {
    #[account(mut)]
    pub payer: Signer<'info>,

    #[account(
        init,
        seeds = ["TEST_VEC".as_bytes()],
        bump,
        payer = payer,
        space = 4 + std::mem::size_of::<TestVec>(),
    )]
    pub test_vec: Account<'info, TestVec>,

    pub chall: Program<'info, Chall>,
    pub solve: Program<'info, Solve>,
    pub rent: Sysvar<'info, Rent>,
    pub clock: Sysvar<'info, Clock>,
    pub system_program: Program<'info, System>,
}

介绍一下容易出错的一些属性:

  1. max_len:用于Vec,指示该数组最大的长度。但需要注意,这并不是一种限制,仅用于帮助anchor计算该Vec的大小。