From caa39ff2a4658f78f05471df98cf9842b856eb9b Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 29 Jan 2021 06:01:46 +0000 Subject: [PATCH] Add feature for pending SPL Token self-transfer fix (#14917) (cherry picked from commit 85b5dbead6b4f307dfc98dda3c8a96314b98229b) Co-authored-by: Trent Nelson --- runtime/src/bank.rs | 10 +++++----- sdk/src/feature_set.rs | 5 +++++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index cef06f548d..dfa0c454f0 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -4583,8 +4583,8 @@ impl Bank { self.rent_collector.rent.burn_percent = 50; // 50% rent burn } - if new_feature_activations.contains(&feature_set::spl_token_v2_multisig_fix::id()) { - self.apply_spl_token_v2_multisig_fix(); + if new_feature_activations.contains(&feature_set::spl_token_v2_self_transfer_fix::id()) { + self.apply_spl_token_v2_self_transfer_fix(); } // Remove me after a while around v1.6 if !self.no_stake_rewrite.load(Relaxed) @@ -4676,7 +4676,7 @@ impl Bank { } } - fn apply_spl_token_v2_multisig_fix(&mut self) { + fn apply_spl_token_v2_self_transfer_fix(&mut self) { if let Some(mut account) = self.get_account(&inline_spl_token_v2_0::id()) { self.capitalization.fetch_sub(account.lamports, Relaxed); account.lamports = 0; @@ -10840,7 +10840,7 @@ pub(crate) mod tests { } #[test] - fn test_spl_token_v2_multisig_fix() { + fn test_spl_token_v2_self_transfer_fix() { let (genesis_config, _mint_keypair) = create_genesis_config(0); let mut bank = Bank::new(&genesis_config); @@ -10855,7 +10855,7 @@ pub(crate) mod tests { assert_eq!(bank.get_balance(&inline_spl_token_v2_0::id()), 100); let original_capitalization = bank.capitalization(); - bank.apply_spl_token_v2_multisig_fix(); + bank.apply_spl_token_v2_self_transfer_fix(); // Account is now empty, and the account lamports were burnt assert_eq!(bank.get_balance(&inline_spl_token_v2_0::id()), 0); diff --git a/sdk/src/feature_set.rs b/sdk/src/feature_set.rs index a6ec1613ff..375fe5bc95 100644 --- a/sdk/src/feature_set.rs +++ b/sdk/src/feature_set.rs @@ -162,6 +162,10 @@ pub mod prevent_upgrade_and_invoke { solana_sdk::declare_id!("BiNjYd8jCYDgAwMqP91uwZs6skWpuHtKrZbckuKESs8N"); } +pub mod spl_token_v2_self_transfer_fix { + solana_sdk::declare_id!("BL99GYhdjjcv6ys22C9wPgn2aTVERDbPHHo4NbS3hgp7"); +} + lazy_static! { /// Map of feature identifiers to user-visible description pub static ref FEATURE_NAMES: HashMap = [ @@ -201,6 +205,7 @@ lazy_static! { (prevent_upgrade_and_invoke::id(), "Prevent upgrade and invoke in same tx batch"), (full_inflation::candidate_example::vote::id(), "Community vote allowing candidate_example to enable full inflation"), (full_inflation::candidate_example::enable::id(), "Full inflation enabled by candidate_example"), + (spl_token_v2_self_transfer_fix::id(), "spl-token self-transfer fix"), /*************** ADD NEW FEATURES HERE ***************/ ] .iter()