From fa71b189f21a96d8ef15fb9073773a5508b91e8d Mon Sep 17 00:00:00 2001 From: Davirain Date: Tue, 8 Aug 2023 22:46:11 +0800 Subject: [PATCH] update --- .../module3/nft-staking/README.md | 10 + .../build-an-nft-staking-program/README.md | 521 ++++++++++++++++++ .../img/Pn7GlMD.png | Bin 0 -> 111494 bytes .../img/file-structure.png | Bin 0 -> 24634 bytes .../nft-staking/how-staking-works/README.md | 26 + 5 files changed, 557 insertions(+) create mode 100644 docs/Solana-Co-Learn/module3/nft-staking/README.md create mode 100644 docs/Solana-Co-Learn/module3/nft-staking/build-an-nft-staking-program/README.md create mode 100644 docs/Solana-Co-Learn/module3/nft-staking/build-an-nft-staking-program/img/Pn7GlMD.png create mode 100644 docs/Solana-Co-Learn/module3/nft-staking/build-an-nft-staking-program/img/file-structure.png create mode 100644 docs/Solana-Co-Learn/module3/nft-staking/how-staking-works/README.md diff --git a/docs/Solana-Co-Learn/module3/nft-staking/README.md b/docs/Solana-Co-Learn/module3/nft-staking/README.md new file mode 100644 index 000000000..8d3191711 --- /dev/null +++ b/docs/Solana-Co-Learn/module3/nft-staking/README.md @@ -0,0 +1,10 @@ +--- +sidebar_position: 61 +sidebar_label: NFT质押 +sidebar_class_name: green +--- + +# NFT质押 + +- 质押的工作原理 +- 建立一个NFT质押计划 diff --git a/docs/Solana-Co-Learn/module3/nft-staking/build-an-nft-staking-program/README.md b/docs/Solana-Co-Learn/module3/nft-staking/build-an-nft-staking-program/README.md new file mode 100644 index 000000000..8bfcb9c4f --- /dev/null +++ b/docs/Solana-Co-Learn/module3/nft-staking/build-an-nft-staking-program/README.md @@ -0,0 +1,521 @@ +--- +sidebar_position: 63 +sidebar_label: 🛠️ 构建一个NFT质押计划 +sidebar_class_name: green +--- + +# 🛠️ 构建一个NFT质押计划 + + +今天,我们将编写我们的质押程序,并编写所有必要的质押功能,而不进行任何代币转账。我将与您一起逐步讲解整个过程,解释每个步骤,以便您了解正在发生的事情。让我们首先进入[Solana Playground](https://beta.solpg.io/?utm_source=buildspace.so&utm_medium=buildspace_project),在 `create a new project` 上点击,并创建一个名为 `src` 的新文件夹,其中包含一个名为 `lib.rs` 的文件。 + +这就是你的集成开发环境应该看起来的样子 + +目前,主要目标是编写一个程序,跟踪每个用户的质押状态。以下是一些大致的步骤: + +![](./img/Pn7GlMD.png) + +现在你已经准备好了,我们将继续创建剩余的文件,就像我们在之前的课程中所做的那样。让我们继续在你的 `src` 文件夹中创建以下5个文件。这些文件是 `entrypoint.rs` , `error.rs` , `instruction.rs` , `processor.rs` 和 `state.rs` 。 + +现在应该是这个样子 + +![](./img/file-structure.png) + +我们已经准备好了!现在让我们用以下代码填充我们的 `lib.rs` : + +```rust +// Lib.rs +pub mod entrypoint; +pub mod error; +pub mod instruction; +pub mod processor; +pub mod state; +``` + +进入 entrypoint.rs 并添加以下代码 + +```rust +// Entrypoint.rs +use solana_program::{ + account_info::AccountInfo, + entrypoint, + entrypoint::ProgramResult, + pubkey::Pubkey +}; +use crate::processor; + +// This macro will help process all incoming instructions +entrypoint!(process_instruction); + +pub fn process_instruction( + program_id: &Pubkey, + accounts: &[AccountInfo], + instruction_data: &[u8] +) -> ProgramResult { + processor::process_instruction(program_id, accounts, instruction_data)?; + Ok(()) +} +``` + +当你运行代码时,你会注意到这会抛出一个错误,因为我们没有在 `processor.rs` 中定义 `process_instruction` 函数。现在让我们创建这个函数。转到 `processor.rs` 并添加以下代码。 + + +```rust +// Processor.rs +use solana_program::{ + account_info::AccountInfo, + entrypoint::ProgramResult, + pubkey::Pubkey +}; + +pub fn process_instruction( + program_id: &Pubkey, + accounts: &[AccountInfo], + instruction_data: &[u8] +) -> ProgramResult { + Ok(()) +} +``` + +现在我们已经修复了 `processor.rs` 的错误,你会注意到在编译代码时仍然存在错误。这是因为在你的 `lib.rs` 中,我们导入了一些空模块。不过不用担心,我们会在下一节中修复它们 😊 在我们开始处理 `process_instruction` 中的任何内容之前,我们需要在 `instruction.rs` 中编写出我们的指令,所以让我们开始定义我们的指令吧。 + +让我们继续创建一个枚举 `StakeInstruction` 并向其中添加四个指令。基本上,这是定义我们的指令应该做什么的操作。继续将这段代码复制粘贴到你的 `instruction.rs` 中。 + +```rust +// Instruction.rs +use solana_program::{ program_error::ProgramError }; + +pub enum StakeInstruction { + InitializeStakeAccount, + Stake, + Redeem, + Unstake +} + +impl StakeInstruction { + pub fn unpack(input: &[u8]) -> Result { + let (&variant, _rest) = input.split_first().ok_or(ProgramError::InvalidInstructionData)?; + Ok(match variant { + 0 => Self::InitializeStakeAccount, + 1 => Self::Stake, + 2 => Self::Redeem, + 3 => Self::Unstake, + _ => return Err(ProgramError::InvalidInstructionData) + }) + } +} +``` + +所以让我们来分解一下我们在这里做的事情。在 `instruction.rs` 中,我们创建了一个枚举来表示每个离散的指令,并创建了一个解包函数来反序列化数据,这里的数据是一个整数。 + +让我们回到 `processor.rs` 并定义我们的 `process_instruction` 函数: + + + +```rust +// processor.rs +use solana_program:: { + account_info:: { AccountInfo, next_account_info }, + entrypoint::ProgramResult, + pubkey::Pubkey, +} +use crate::instruction::StakeInstruction; + +pub fn process_instruction( + program_id: &Pubkey, + accounts: &[AccountInfo], + instruction_data: &[u8] +) -> ProgramResult { + let instruction = StakeInstruction::unpack(instruction_data)?; + + match instruction { + StakeInstruction::InitializeStakeAccount => process_initialize_stake_account(program_id, accounts), + StakeInstruction::Stake => process_stake(program_id, accounts), + StakeInstruction::Redeem => process_redeem(program_id, accounts), + StakeInstruction::Unstake => process_unstake(program_id, accounts) + } +} + +/** +What this function does is to create a new PDA account that's unique to you +and your NFT. This will store the information about the state of your program +which will determine whether it's staked or not staked. +**/ +fn process_initialize_stake_account( + program_id: &Pubkey, + accounts: &[AccountInfo] +) -> ProgramResult { + let account_info_iter = &mut accounts.iter(); + let user = next_account_info(account_info_iter)?; + let nft_token = next_account_info(account_info_iter)?; + let stake_state = next_account_info(account_info_iter)?; + let system_program = next_account_info(account_info_iter)?; + + Ok(()) +} + +fn process_stake( + program_id: &Pubkey, + accounts: &[AccountInfo] +) -> ProgramResult { + Ok(()) +} + +fn process_redeem( + program_id: &Pubkey, + accounts: &[AccountInfo] +) -> ProgramResult { + Ok(()) +} + +fn process_unstake( + program_id: &Pubkey, + accounts: &[AccountInfo] +) -> ProgramResult { + Ok(()) +} +``` + +注意我们在 `process_initialize_stake_account` 函数中定义了变量,但是它在任何地方都没有被使用?这是因为我们需要一个结构体来表示程序的当前状态。所以让我们转到 `state.rs` 并定义我们的结构体。 + +```rust +// state.rs +use borsh:: { BorshSerialize, BorshDeserialize }; +use solana_program:: { + program_pack::{ IsInitialized, Sealed }, + pubkey::Pubkey, + clock::UnixTimestamp +}; + +#[derive(BorshSerialize, BorshDeserialize, Debug)] +pub struct UserStakeInfo { + pub is_initialized: bool, + pub token_account: Pubkey, + pub stake_start_time: UnixTimestamp, + pub last_stake_redeem: UnixTimestamp, + pub user_pubkey: Pubkey, + pub stake_state: StakeState, +} + +impl Sealed for UserStakeInfo { } +impl IsInitialized for UserStakeInfo { + fn is_initialized(&self) -> bool { + self.is_initialized + } +} + +#[derive(BorshSerialize, BorshDeserialize, Debug, PartialEq)] +pub enum StakeState { + Staked, + Unstaked +} +``` + +## 🚫自定义错误 + +现在让我们转到 `error.rs` 来为我们的程序定义自定义错误。 + +```rust +// error.rs +use solana_program::{ program_error::ProgramError }; +use thiserror::Error; + +#[derive(Debug, Error)] +pub enum StakeError { + #[error("Account not initialized yet")] + UninitializedAccount, + + #[error("PDA derived does not equal PDA passed in")] + InvalidPda, + + #[error("Invalid token account")] + InvalidTokenAccount, + + #[error("Invalid stake account")] + InvalidStakeAccount +} + +impl From for ProgramError { + fn from(e: StakeError) -> Self { + ProgramError::Custom(e as u32) + } +} +``` + +太棒了,现在你已经成功在 `error.rs` 中创建了枚举,当你运行程序时不应该再出现任何错误。 + +## 🫙 完成代码 + +让我们回到 `processor.rs` 并完成 `process_initialize_stake_account` 函数。 + +```rust +// processor.rs +use solana_program::{ + account_info::{ AccountInfo, next_account_info }, + entrypoint::ProgramResult, + pubkey::Pubkey, + msg, + sysvar::{ rent::Rent, Sysvar }, + clock::Clock, + program_pack::IsInitialized, + system_instruction, + program::invoke_signed, + borsh::try_from_slice_unchecked, + program_error::ProgramError +}; +use borsh::BorshSerialize; +use crate::instruction::StakeInstruction; +use crate::error::StakeError; +use crate::state::{ UserStakeInfo, StakeState }; + +fn process_initialize_stake_account( + program_id: &Pubkey, + accounts: &[AccountInfo] +) -> ProgramResult { + let account_info_iter = &mut accounts.iter(); + let user = next_account_info(account_info_iter)?; + let nft_token_account = next_account_info(account_info_iter)?; + let stake_state = next_account_info(account_info_iter)?; + let system_program = next_account_info(account_info_iter)?; + + let (stake_state_pda, bump_seed) = Pubkey::find_program_address( + &[user.key.as_ref(), nft_token_account.key.as_ref()], + program_id + ); + + // Check to ensure that you're using the right PDA + if stake_state_pda != *stake_state.key { + msg!("Invalid seeds for PDA"); + return Err(StakeError::InvalidPda.into()); + } + + let rent = Rent::get()?; + let rent_lamports = rent.minimum_balance(UserStakeInfo::SIZE); + + msg!("Creating state account at {:?}", stake_state_pda); + invoke_signed( + &system_instruction::create_account( + user.key, + stake_state.key, + rent_lamports, + UserStakeInfo::SIZE.try_into().unwrap(), + program_id + ), + &[user.clone(), stake_state.clone(), system_program.clone()], + &[&[ + user.key.as_ref(), + nft_token_account.key.as_ref(), + &[bump_seed], + ]], + )?; + + // Let's create account + let mut account_data = try_from_slice_unchecked::(&stake_state.data.borrow()).unwrap(); + + if account_data.is_initialized() { + msg!("Account already initialized"); + return Err(ProgramError::AccountAlreadyInitialized); + } + + account_data.token_account = *nft_token_account.key; + account_data.user_pubkey = *user.key; + account_data.stake_state = StakeState::Unstaked; + account_data.is_initialized = true; + + account_data.serialize(&mut &mut stake_state.data.borrow_mut()[..])?; + + Ok(()) +} +``` + +让我们转到 `state.rs` 并存储用户的接收信息,使用适当的数据大小。您可以将此代码放在 `impl Sealed` 之上。 + +```rust +// state.rs + +impl UserStakeInfo { + /** + Here's how we determine the size of the data. In your UserStakeInfo in struct in state.rs, we have the following data. + + pub is_initialized: bool, // 1 bit + pub token_account: Pubkey, // 32 bits + pub stake_start_time: UnixTimestamp, // 64 bits + pub last_stake_redeem: UnixTimestamp, // 64 bits + pub user_pubkey: Pubkey, // 32 bits + pub stake_state: StakeState, // 1 bit + **/ + pub const SIZE: usize = 1 + 32 + 64 + 64 + 32 + 1; +} +``` + +现在我们刚刚写了很多代码给 `process_initialize_stake_account` 。如果你还不明白,不要担心。我们将会添加更多的代码来填充其他的功能。让我们进入 `process_stake` 函数并使用这段代码。请记住,这只是代码的一部分,请不要盲目复制粘贴。 + + + +```rust +// processor.rs + +fn process_stake( + program_id: &Pubkey, + accounts: &[AccountInfo] +) -> ProgramResult { + let account_info_iter = &mut accounts.iter(); + let user = next_account_info(account_info_iter)?; + let nft_token_account = next_account_info(account_info_iter)?; + let stake_state = next_account_info(account_info_iter)?; + + let (stake_state_pda, _bump_seed) = Pubkey::find_program_address( + &[user.key.as_ref(), nft_token_account.key.as_ref()], + program_id, + ); + + if stake_state_pda != *stake_state.key { + msg!("Invalid seeds for PDA"); + return Err(StakeError::InvalidPda.into()); + } + + // Let's create account + let mut account_data = try_from_slice_unchecked::(&stake_state.data.borrow()).unwrap(); + + if !account_data.is_initialized() { + msg!("Account not initialized"); + return Err(ProgramError::UninitializedAccount.into()); + } + + let clock = Clock::get()?; + + account_data.token_account = *nft_token_account.key; + account_data.user_pubkey = *user.key; + account_data.stake_state = StakeState::Staked; + account_data.stake_start_time = clock.unix_timestamp; + account_data.last_stake_redeem = clock.unix_timestamp; + account_data.is_initialized = true; + + account_data.serialize(&mut &mut stake_state.data.borrow_mut()[..])?; + + Ok(()) +} +``` + +就是这样!我们现在已经完成了我们的 `process_stake` 函数。现在让我们继续 `process_redeem` 。代码将与前两个函数非常相似。 + +```rust +// process.rs + +fn process_redeem( + program_id: &Pubkey, + accounts: &[AccountInfo] +) -> ProgramResult { + let account_info_iter = &mut accounts.iter(); + let user = next_account_info(account_info_iter)?; + let nft_token_account = next_account_info(account_info_iter)?; + let stake_state = next_account_info(account_info_iter)?; + + let (stake_state_pda, _bump_seed) = Pubkey::find_program_address( + &[user.key.as_ref(), nft_token_account.key.as_ref()], + program_id, + ); + + if stake_state_pda != *stake_state.key { + msg!("Invalid seeds for PDA"); + return Err(StakeError::InvalidPda.into()); + } + + // For verification, we need to make sure it's the right signer + if !user.is_signer { + msg!("Missing required signature"); + return Err(ProgramError::MissingRequiredSignature); + } + + // Let's create account + let mut account_data = try_from_slice_unchecked::(&stake_state.data.borrow()).unwrap(); + + if !account_data.is_initialized() { + msg!("Account not initialized"); + return Err(ProgramError::UninitializedAccount.into()); + } + + if account_data.stake_state != StakeState::Staked { + msg!("Stake account is not staking anything"); + return Err(ProgramError::InvalidArgument); + } + + if *user.key != account_data.user_pubkey { + msg!("Incorrect stake account for user"); + return Err(StakeError::InvalidStakeAccount.into()); + } + + if *nft_token_account.key != account_data.token_account { + msg!("NFT Token account do not match"); + return Err(StakeError::InvalidTokenAccount.into()); + } + + let clock = Clock::get()?; + let unix_time = clock.unix_timestamp - account_data.last_stake_redeem; + let redeem_amount = unix_time; + msg!("Redeeming {} tokens", redeem_amount); + + account_data.last_stake_redeem = clock.unix_timestamp; + account_data.serialize(&mut &mut stake_state.data.borrow_mut()[..])?; + + Ok(()) +} +``` + +太棒了!我们现在就快到了。接下来进入最后一个功能 `process_unstake` 。 + +```rust +// process.rs + +fn process_unstake( + program_id: &Pubkey, + accounts: &[AccountInfo] +) -> ProgramResult { + let account_info_iter = &mut accounts.iter(); + let user = next_account_info(account_info_iter)?; + let nft_token_account = next_account_info(account_info_iter)?; + let stake_state = next_account_info(account_info_iter)?; + + let (stake_state_pda, _bump_seed) = Pubkey::find_program_address( + &[user.key.as_ref(), nft_token_account.key.as_ref()], + program_id, + ); + + if stake_state_pda != *stake_state.key { + msg!("Invalid seeds for PDA"); + return Err(StakeError::InvalidPda.into()); + } + + // For verification, we need to make sure it's the right signer + if !user.is_signer { + msg!("Missing required signature"); + return Err(ProgramError::MissingRequiredSignature); + } + + // Let's create account + let mut account_data = try_from_slice_unchecked::(&stake_state.data.borrow()).unwrap(); + + if !account_data.is_initialized() { + msg!("Account not initialized"); + return Err(ProgramError::UninitializedAccount.into()); + } + + if account_data.stake_state != StakeState::Staked { + msg!("Stake account is not staking anything"); + return Err(ProgramError::InvalidArgument) + } + + let clock = Clock::get()?; + let unix_time = clock.unix_timestamp - account_data.last_stake_redeem; + let redeem_amount = unix_time; + msg!("Redeeming {} tokens", redeem_amount); + + msg!("Setting stake state to unstaked"); + account_data.stake_state = StakeState::Unstaked; + account_data.serialize(&mut &mut stake_state.data.borrow_mut()[..]); + + Ok(()) +} +``` + +LFG!!! 我们终于完成了所有的函数定义。现在如果你运行程序,它应该会显示 Build successful 。太棒了!我们已经完成了第三周!HALFWAYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY diff --git a/docs/Solana-Co-Learn/module3/nft-staking/build-an-nft-staking-program/img/Pn7GlMD.png b/docs/Solana-Co-Learn/module3/nft-staking/build-an-nft-staking-program/img/Pn7GlMD.png new file mode 100644 index 0000000000000000000000000000000000000000..f1413b4e8b3ea294602d83660e42848d44d6a563 GIT binary patch literal 111494 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�h<&*>jvEQOGp%%E= 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 Q6b2yhboFyt=akR{0CAXUy8r+H literal 0 HcmV?d00001 diff --git a/docs/Solana-Co-Learn/module3/nft-staking/build-an-nft-staking-program/img/file-structure.png b/docs/Solana-Co-Learn/module3/nft-staking/build-an-nft-staking-program/img/file-structure.png new file mode 100644 index 0000000000000000000000000000000000000000..0604d87276e41eb25eca403a7daeede20cbcf2c1 GIT binary patch literal 24634 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 VaiVn{p#T3wQC3Z+T*~b0{{s5AeUktH literal 0 HcmV?d00001 diff --git a/docs/Solana-Co-Learn/module3/nft-staking/how-staking-works/README.md b/docs/Solana-Co-Learn/module3/nft-staking/how-staking-works/README.md new file mode 100644 index 000000000..bf6a208c3 --- /dev/null +++ b/docs/Solana-Co-Learn/module3/nft-staking/how-staking-works/README.md @@ -0,0 +1,26 @@ +--- +sidebar_position: 62 +sidebar_label: 🕒 质押的工作原理 +sidebar_class_name: green +--- + +# 🕒 质押的工作原理 + +你已经接近完成第三周了!让我们把你学到的一切都用在与你正在进行的NFT项目(buildoors项目)相关的质押计划上。 + + +我们希望您为质押计划搭建所有内容,除了实际的代币功能。这意味着在您预期与代币程序进行交互的任何地方,我们只会记录一条消息或跳过它,并在下周重新审视。 + + +目前,主要目标是编写一个程序,跟踪每个用户的质押状态。以下是一些大致的步骤: + +应该有4个指示: + +- InitializeStakeAccount - 这将创建一个新的账户,用于存储每个用户/非同质化代币组合的质押过程的状态信息。该PDA的种子应为用户的公钥和非同质化代币的令牌账户。 +- 质押 - 这个指令通常是实际进行质押的地方。然而,我们目前不会进行任何真正的质押。我们只是要更新“状态”账户,以反映出代币已被质押,质押的时间等信息。 +- 兑换 - 这是您根据用户抵押时间来发送奖励代币的地方。但现在只需记录他们应该获得多少代币(暂时可以假设每单位时间1个代币),并更新状态以反映他们上次兑换代币的时间。 +- 解除质押 - 这是您赎回任何额外代币并解除 NFT 质押的地方。目前,这只意味着更新状态以反映 NFT 未质押,并记录应获得的奖励代币数量。 + +这是具有挑战性的。在参考解决方案或观看视频指导之前,先试着自己设计一些东西。如果你做得不完美也没关系,挣扎是学习的一部分。 +提示:您可以使用solana_program::clock::Clock来获取时间。如果需要,可以[查看文档](https://docs.rs/solana-program/latest/solana_program/clock/struct.Clock.html?utm_source=buildspace.so&utm_medium=buildspace_project)。 +如果你已经尽力尝试了一切,可以随意查看[解决方案代码](https://beta.solpg.io/6328f26177ea7f12846aee9b?utm_source=buildspace.so&utm_medium=buildspace_project)。如果你想继续,欢迎开始为质押和与该程序进行交互的用户界面进行开发。