diff --git a/crates/iota-framework/docs/iota-system/iota_system.md b/crates/iota-framework/docs/iota-system/iota_system.md index e54f243c8f2..3c414fe0139 100644 --- a/crates/iota-framework/docs/iota-system/iota_system.md +++ b/crates/iota-framework/docs/iota-system/iota_system.md @@ -1362,7 +1362,7 @@ gas coins. 4. Update all validators. -
fun advance_epoch(storage_reward: balance::Balance<iota::IOTA>, computation_reward: balance::Balance<iota::IOTA>, wrapper: &mut iota_system::IotaSystemState, new_epoch: u64, next_protocol_version: u64, storage_rebate: u64, non_refundable_storage_fee: u64, storage_fund_reinvest_rate: u64, reward_slashing_rate: u64, epoch_start_timestamp_ms: u64, ctx: &mut tx_context::TxContext): balance::Balance<iota::IOTA>
+
fun advance_epoch(storage_reward: balance::Balance<iota::IOTA>, computation_reward: balance::Balance<iota::IOTA>, wrapper: &mut iota_system::IotaSystemState, new_epoch: u64, next_protocol_version: u64, storage_rebate: u64, non_refundable_storage_fee: u64, reward_slashing_rate: u64, epoch_start_timestamp_ms: u64, ctx: &mut tx_context::TxContext): balance::Balance<iota::IOTA>
 
@@ -1379,8 +1379,6 @@ gas coins. next_protocol_version: u64, storage_rebate: u64, non_refundable_storage_fee: u64, - storage_fund_reinvest_rate: u64, // share of storage fund's rewards that's reinvested - // into storage fund, in basis point. reward_slashing_rate: u64, // how much rewards are slashed to punish a validator, in bps. epoch_start_timestamp_ms: u64, // Timestamp of the epoch start ctx: &mut TxContext, @@ -1395,7 +1393,6 @@ gas coins. computation_reward, storage_rebate, non_refundable_storage_fee, - storage_fund_reinvest_rate, reward_slashing_rate, epoch_start_timestamp_ms, ctx, diff --git a/crates/iota-framework/docs/iota-system/iota_system_state_inner.md b/crates/iota-framework/docs/iota-system/iota_system_state_inner.md index f20fbea3919..50244ddedff 100644 --- a/crates/iota-framework/docs/iota-system/iota_system_state_inner.md +++ b/crates/iota-framework/docs/iota-system/iota_system_state_inner.md @@ -560,12 +560,6 @@ the epoch advancement transaction.
-
-
-storage_fund_reinvestment: u64 -
-
-
storage_charge: u64 @@ -2076,7 +2070,7 @@ gas coins. 4. Update all validators. -
public(friend) fun advance_epoch(self: &mut iota_system_state_inner::IotaSystemStateInnerV2, new_epoch: u64, next_protocol_version: u64, storage_reward: balance::Balance<iota::IOTA>, computation_reward: balance::Balance<iota::IOTA>, storage_rebate_amount: u64, non_refundable_storage_fee_amount: u64, storage_fund_reinvest_rate: u64, reward_slashing_rate: u64, epoch_start_timestamp_ms: u64, ctx: &mut tx_context::TxContext): balance::Balance<iota::IOTA>
+
public(friend) fun advance_epoch(self: &mut iota_system_state_inner::IotaSystemStateInnerV2, new_epoch: u64, next_protocol_version: u64, storage_reward: balance::Balance<iota::IOTA>, computation_reward: balance::Balance<iota::IOTA>, storage_rebate_amount: u64, non_refundable_storage_fee_amount: u64, reward_slashing_rate: u64, epoch_start_timestamp_ms: u64, ctx: &mut tx_context::TxContext): balance::Balance<iota::IOTA>
 
@@ -2093,8 +2087,6 @@ gas coins. mut computation_reward: Balance<IOTA>, mut storage_rebate_amount: u64, mut non_refundable_storage_fee_amount: u64, - storage_fund_reinvest_rate: u64, // share of storage fund's rewards that's reinvested - // into storage fund, in basis point. reward_slashing_rate: u64, // how much rewards are slashed to punish a validator, in bps. epoch_start_timestamp_ms: u64, // Timestamp of the epoch start ctx: &mut TxContext, @@ -2104,11 +2096,7 @@ gas coins. let bps_denominator_u64 = BASIS_POINT_DENOMINATOR as u64; // Rates can't be higher than 100%. - assert!( - storage_fund_reinvest_rate <= bps_denominator_u64 - && reward_slashing_rate <= bps_denominator_u64, - EBpsTooLarge, - ); + assert!(reward_slashing_rate <= bps_denominator_u64, EBpsTooLarge); // TODO: remove this in later upgrade. if (self.parameters.stake_subsidy_start_epoch > 0) { @@ -2152,11 +2140,6 @@ gas coins. let storage_fund_reward_amount = storage_fund_balance as u128 * computation_charge_u128 / total_stake_u128; let mut storage_fund_reward = computation_reward.split(storage_fund_reward_amount as u64); - let storage_fund_reinvestment_amount = - storage_fund_reward_amount * (storage_fund_reinvest_rate as u128) / BASIS_POINT_DENOMINATOR; - let storage_fund_reinvestment = storage_fund_reward.split( - storage_fund_reinvestment_amount as u64, - ); self.epoch = self.epoch + 1; // Sanity check to make sure we are advancing to the right epoch. @@ -2194,23 +2177,24 @@ gas coins. leftover_staking_rewards.join(computation_reward); let leftover_storage_fund_inflow = leftover_staking_rewards.value(); + // Burning leftover rewards + self.iota_treasury_cap.burn_balance(leftover_staking_rewards, ctx); + let refunded_storage_rebate = self.storage_fund.advance_epoch( storage_reward, - storage_fund_reinvestment, - leftover_staking_rewards, storage_rebate_amount, non_refundable_storage_fee_amount, ); event::emit( + //TODO: Add additional information (e.g., how much was burned, how much was leftover, etc.) SystemEpochInfoEvent { epoch: self.epoch, protocol_version: self.protocol_version, reference_gas_price: self.reference_gas_price, total_stake: new_total_stake, storage_charge, - storage_fund_reinvestment: storage_fund_reinvestment_amount as u64, storage_rebate: storage_rebate_amount, storage_fund_balance: self.storage_fund.total_balance(), stake_subsidy_amount, diff --git a/crates/iota-framework/docs/iota-system/storage_fund.md b/crates/iota-framework/docs/iota-system/storage_fund.md index a9205a960c8..819fc523d89 100644 --- a/crates/iota-framework/docs/iota-system/storage_fund.md +++ b/crates/iota-framework/docs/iota-system/storage_fund.md @@ -94,7 +94,7 @@ Called by iota_system Called by iota_system at epoch change times to process the inflows and outflows of storage fund. -
public(friend) fun advance_epoch(self: &mut storage_fund::StorageFund, storage_charges: balance::Balance<iota::IOTA>, storage_fund_reinvestment: balance::Balance<iota::IOTA>, leftover_staking_rewards: balance::Balance<iota::IOTA>, storage_rebate_amount: u64, non_refundable_storage_fee_amount: u64): balance::Balance<iota::IOTA>
+
public(friend) fun advance_epoch(self: &mut storage_fund::StorageFund, storage_charges: balance::Balance<iota::IOTA>, storage_rebate_amount: u64, non_refundable_storage_fee_amount: u64): balance::Balance<iota::IOTA>
 
@@ -106,15 +106,9 @@ Called by iota_system
public(package) fun advance_epoch(
     self: &mut StorageFund,
     storage_charges: Balance<IOTA>,
-    storage_fund_reinvestment: Balance<IOTA>,
-    leftover_staking_rewards: Balance<IOTA>,
     storage_rebate_amount: u64,
     non_refundable_storage_fee_amount: u64,
 ) : Balance<IOTA> {
-    // Both the reinvestment and leftover rewards are not to be refunded so they go to the non-refundable balance.
-    self.non_refundable_balance.join(storage_fund_reinvestment);
-    self.non_refundable_balance.join(leftover_staking_rewards);
-
     // The storage charges for the epoch come from the storage rebate of the new objects created
     // and the new storage rebates of the objects modified during the epoch so we put the charges
     // into `total_object_storage_rebates`.
diff --git a/crates/iota-framework/packages/iota-system/sources/iota_system.move b/crates/iota-framework/packages/iota-system/sources/iota_system.move
index 7d07457998e..08e2a23672a 100644
--- a/crates/iota-framework/packages/iota-system/sources/iota_system.move
+++ b/crates/iota-framework/packages/iota-system/sources/iota_system.move
@@ -545,8 +545,6 @@ module iota_system::iota_system {
         next_protocol_version: u64,
         storage_rebate: u64,
         non_refundable_storage_fee: u64,
-        storage_fund_reinvest_rate: u64, // share of storage fund's rewards that's reinvested
-                                         // into storage fund, in basis point.
         reward_slashing_rate: u64, // how much rewards are slashed to punish a validator, in bps.
         epoch_start_timestamp_ms: u64, // Timestamp of the epoch start
         ctx: &mut TxContext,
@@ -561,7 +559,6 @@ module iota_system::iota_system {
             computation_reward,
             storage_rebate,
             non_refundable_storage_fee,
-            storage_fund_reinvest_rate,
             reward_slashing_rate,
             epoch_start_timestamp_ms,
             ctx,
@@ -750,7 +747,6 @@ module iota_system::iota_system {
         computation_charge: u64,
         storage_rebate: u64,
         non_refundable_storage_fee: u64,
-        storage_fund_reinvest_rate: u64,
         reward_slashing_rate: u64,
         epoch_start_timestamp_ms: u64,
         ctx: &mut TxContext,
@@ -765,7 +761,6 @@ module iota_system::iota_system {
             next_protocol_version,
             storage_rebate,
             non_refundable_storage_fee,
-            storage_fund_reinvest_rate,
             reward_slashing_rate,
             epoch_start_timestamp_ms,
             ctx,
diff --git a/crates/iota-framework/packages/iota-system/sources/iota_system_state_inner.move b/crates/iota-framework/packages/iota-system/sources/iota_system_state_inner.move
index ba3e04c01f4..6ad532bda21 100644
--- a/crates/iota-framework/packages/iota-system/sources/iota_system_state_inner.move
+++ b/crates/iota-framework/packages/iota-system/sources/iota_system_state_inner.move
@@ -207,7 +207,6 @@ module iota_system::iota_system_state_inner {
         protocol_version: u64,
         reference_gas_price: u64,
         total_stake: u64,
-        storage_fund_reinvestment: u64,
         storage_charge: u64,
         storage_rebate: u64,
         storage_fund_balance: u64,
@@ -831,8 +830,6 @@ module iota_system::iota_system_state_inner {
         mut computation_reward: Balance,
         mut storage_rebate_amount: u64,
         mut non_refundable_storage_fee_amount: u64,
-        storage_fund_reinvest_rate: u64, // share of storage fund's rewards that's reinvested
-                                         // into storage fund, in basis point.
         reward_slashing_rate: u64, // how much rewards are slashed to punish a validator, in bps.
         epoch_start_timestamp_ms: u64, // Timestamp of the epoch start
         ctx: &mut TxContext,
@@ -842,11 +839,7 @@ module iota_system::iota_system_state_inner {
 
         let bps_denominator_u64 = BASIS_POINT_DENOMINATOR as u64;
         // Rates can't be higher than 100%.
-        assert!(
-            storage_fund_reinvest_rate <= bps_denominator_u64
-            && reward_slashing_rate <= bps_denominator_u64,
-            EBpsTooLarge,
-        );
+        assert!(reward_slashing_rate <= bps_denominator_u64, EBpsTooLarge);
 
         // TODO: remove this in later upgrade.
         if (self.parameters.stake_subsidy_start_epoch > 0) {
@@ -890,11 +883,6 @@ module iota_system::iota_system_state_inner {
 
         let storage_fund_reward_amount = storage_fund_balance as u128 * computation_charge_u128 / total_stake_u128;
         let mut storage_fund_reward = computation_reward.split(storage_fund_reward_amount as u64);
-        let storage_fund_reinvestment_amount =
-            storage_fund_reward_amount * (storage_fund_reinvest_rate as u128) / BASIS_POINT_DENOMINATOR;
-        let storage_fund_reinvestment = storage_fund_reward.split(
-            storage_fund_reinvestment_amount as u64,
-        );
 
         self.epoch = self.epoch + 1;
         // Sanity check to make sure we are advancing to the right epoch.
@@ -931,24 +919,25 @@ module iota_system::iota_system_state_inner {
         let mut leftover_staking_rewards = storage_fund_reward;
         leftover_staking_rewards.join(computation_reward);
         let leftover_storage_fund_inflow = leftover_staking_rewards.value();
+        
+        // Burning leftover rewards
+        self.iota_treasury_cap.burn_balance(leftover_staking_rewards, ctx);
 
         let refunded_storage_rebate =
             self.storage_fund.advance_epoch(
                 storage_reward,
-                storage_fund_reinvestment,
-                leftover_staking_rewards,
                 storage_rebate_amount,
                 non_refundable_storage_fee_amount,
             );
 
         event::emit(
+            //TODO: Add additional information (e.g., how much was burned, how much was leftover, etc.)
             SystemEpochInfoEvent {
                 epoch: self.epoch,
                 protocol_version: self.protocol_version,
                 reference_gas_price: self.reference_gas_price,
                 total_stake: new_total_stake,
                 storage_charge,
-                storage_fund_reinvestment: storage_fund_reinvestment_amount as u64,
                 storage_rebate: storage_rebate_amount,
                 storage_fund_balance: self.storage_fund.total_balance(),
                 stake_subsidy_amount,
diff --git a/crates/iota-framework/packages/iota-system/sources/storage_fund.move b/crates/iota-framework/packages/iota-system/sources/storage_fund.move
index 02b1187b07d..ff1891ebc02 100644
--- a/crates/iota-framework/packages/iota-system/sources/storage_fund.move
+++ b/crates/iota-framework/packages/iota-system/sources/storage_fund.move
@@ -34,15 +34,9 @@ module iota_system::storage_fund {
     public(package) fun advance_epoch(
         self: &mut StorageFund,
         storage_charges: Balance,
-        storage_fund_reinvestment: Balance,
-        leftover_staking_rewards: Balance,
         storage_rebate_amount: u64,
         non_refundable_storage_fee_amount: u64,
     ) : Balance {
-        // Both the reinvestment and leftover rewards are not to be refunded so they go to the non-refundable balance.
-        self.non_refundable_balance.join(storage_fund_reinvestment);
-        self.non_refundable_balance.join(leftover_staking_rewards);
-
         // The storage charges for the epoch come from the storage rebate of the new objects created
         // and the new storage rebates of the objects modified during the epoch so we put the charges
         // into `total_object_storage_rebates`.
diff --git a/crates/iota-framework/packages/iota-system/tests/governance_test_utils.move b/crates/iota-framework/packages/iota-system/tests/governance_test_utils.move
index c1df45791a5..ff23b1dbf80 100644
--- a/crates/iota-framework/packages/iota-system/tests/governance_test_utils.move
+++ b/crates/iota-framework/packages/iota-system/tests/governance_test_utils.move
@@ -135,7 +135,7 @@ module iota_system::governance_test_utils {
         let ctx = scenario.ctx();
 
         let storage_rebate = system_state.advance_epoch_for_testing(
-            new_epoch, 1, storage_charge, computation_charge, stoarge_rebate, non_refundable_storage_rebate, 0, 0, 0, ctx,
+            new_epoch, 1, storage_charge, computation_charge, stoarge_rebate, non_refundable_storage_rebate, 0, 0, ctx,
         );
         test_scenario::return_shared(system_state);
         scenario.next_epoch(@0x0);
@@ -162,7 +162,7 @@ module iota_system::governance_test_utils {
         let ctx = scenario.ctx();
 
         let storage_rebate = system_state.advance_epoch_for_testing(
-            new_epoch, 1, storage_charge * MICROS_PER_IOTA, computation_charge * MICROS_PER_IOTA, 0, 0, 0, reward_slashing_rate, 0, ctx
+            new_epoch, 1, storage_charge * MICROS_PER_IOTA, computation_charge * MICROS_PER_IOTA, 0, 0, reward_slashing_rate, 0, ctx
         );
         test_utils::destroy(storage_rebate);
         test_scenario::return_shared(system_state);
diff --git a/crates/iota-framework/packages/iota-system/tests/iota_system_tests.move b/crates/iota-framework/packages/iota-system/tests/iota_system_tests.move
index 43107d246d5..0a93a0587cf 100644
--- a/crates/iota-framework/packages/iota-system/tests/iota_system_tests.move
+++ b/crates/iota-framework/packages/iota-system/tests/iota_system_tests.move
@@ -996,7 +996,7 @@ module iota_system::iota_system_tests {
         let prev_counter = system_state.get_stake_subsidy_distribution_counter();
 
         let rebate = system_state.advance_epoch_for_testing(
-            new_epoch, 1, 0, 0, 0, 0, 0, 0, prev_epoch_time + epoch_length, scenario.ctx()
+            new_epoch, 1, 0, 0, 0, 0, 0, prev_epoch_time + epoch_length, scenario.ctx()
         );
         destroy(rebate);
         assert_eq(system_state.get_stake_subsidy_distribution_counter(), prev_counter + (if (should_increment_counter) 1 else 0));
diff --git a/crates/iota-framework/packages/iota-system/tests/rewards_distribution_tests.move b/crates/iota-framework/packages/iota-system/tests/rewards_distribution_tests.move
index 11c6fa0d8c1..f05f30f2dd3 100644
--- a/crates/iota-framework/packages/iota-system/tests/rewards_distribution_tests.move
+++ b/crates/iota-framework/packages/iota-system/tests/rewards_distribution_tests.move
@@ -308,7 +308,7 @@ module iota_system::rewards_distribution_tests {
     #[test]
     fun test_everyone_slashed() {
         // This test is to make sure that if everyone is slashed, our protocol works as expected without aborting
-        // and all rewards go to the storage fund.
+        // and rewards are burned, and no tokens go to the storage fund.
         set_up_iota_system_state();
         let mut scenario_val = test_scenario::begin(VALIDATOR_ADDR_1);
         let scenario = &mut scenario_val;
@@ -327,16 +327,16 @@ module iota_system::rewards_distribution_tests {
         report_validator(VALIDATOR_ADDR_4, VALIDATOR_ADDR_1, scenario);
 
         advance_epoch_with_reward_amounts_and_slashing_rates(
-            1000, 3000, 10_000, scenario
+            1000, 500, 10_000, scenario
         );
 
         // All validators should have 0 rewards added so their stake stays the same.
         assert_validator_self_stake_amounts(validator_addrs(), vector[100 * MICROS_PER_IOTA, 200 * MICROS_PER_IOTA, 300 * MICROS_PER_IOTA, 400 * MICROS_PER_IOTA], scenario);
 
         scenario.next_tx(@0x0);
-        // Storage fund balance should increase by 4000 IOTA.
+        // Storage fund balance should be the same as before.
         let mut system_state = scenario.take_shared();
-        assert_eq(system_state.get_storage_fund_total_balance(), 4000 * MICROS_PER_IOTA);
+        assert_eq(system_state.get_storage_fund_total_balance(), 1000 * MICROS_PER_IOTA);
 
         // The entire 1000 IOTA of storage rewards should go to the object rebate portion of the storage fund.
         assert_eq(system_state.get_storage_fund_object_rebates(), 1000 * MICROS_PER_IOTA);
diff --git a/crates/iota-protocol-config/src/lib.rs b/crates/iota-protocol-config/src/lib.rs
index c5da2630520..4d67a427e9d 100644
--- a/crates/iota-protocol-config/src/lib.rs
+++ b/crates/iota-protocol-config/src/lib.rs
@@ -648,10 +648,6 @@ pub struct ProtocolConfig {
     /// storage rebate back. In basis point.
     storage_rebate_rate: Option,
 
-    /// 5% of the storage fund's share of rewards are reinvested into the
-    /// storage fund. In basis point.
-    storage_fund_reinvest_rate: Option,
-
     /// The share of rewards that will be slashed and redistributed is 50%.
     /// In basis point.
     reward_slashing_rate: Option,
@@ -1358,7 +1354,6 @@ impl ProtocolConfig {
             obj_metadata_cost_non_refundable: Some(50),
             gas_model_version: Some(8),
             storage_rebate_rate: Some(9900),
-            storage_fund_reinvest_rate: Some(500),
             // Change reward slashing rate to 100%.
             reward_slashing_rate: Some(10000),
             storage_gas_price: Some(76),
diff --git a/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__Mainnet_version_1.snap b/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__Mainnet_version_1.snap
index 4ae38b1b82d..fc59e3895b2 100644
--- a/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__Mainnet_version_1.snap
+++ b/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__Mainnet_version_1.snap
@@ -120,7 +120,6 @@ gas_model_version: 8
 obj_data_cost_refundable: 100
 obj_metadata_cost_non_refundable: 50
 storage_rebate_rate: 9900
-storage_fund_reinvest_rate: 500
 reward_slashing_rate: 10000
 storage_gas_price: 76
 max_transactions_per_checkpoint: 10000
@@ -259,3 +258,4 @@ max_age_of_jwk_in_epochs: 1
 random_beacon_reduction_allowed_delta: 800
 consensus_max_transaction_size_bytes: 262144
 consensus_max_transactions_in_block_bytes: 6291456
+
diff --git a/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__Testnet_version_1.snap b/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__Testnet_version_1.snap
index 4bc2f1357f1..db317596d03 100644
--- a/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__Testnet_version_1.snap
+++ b/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__Testnet_version_1.snap
@@ -122,7 +122,6 @@ gas_model_version: 8
 obj_data_cost_refundable: 100
 obj_metadata_cost_non_refundable: 50
 storage_rebate_rate: 9900
-storage_fund_reinvest_rate: 500
 reward_slashing_rate: 10000
 storage_gas_price: 76
 max_transactions_per_checkpoint: 10000
@@ -261,3 +260,4 @@ max_age_of_jwk_in_epochs: 1
 random_beacon_reduction_allowed_delta: 800
 consensus_max_transaction_size_bytes: 262144
 consensus_max_transactions_in_block_bytes: 6291456
+
diff --git a/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__version_1.snap b/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__version_1.snap
index 8c577ed37b6..ccbe1c1af2a 100644
--- a/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__version_1.snap
+++ b/crates/iota-protocol-config/src/snapshots/iota_protocol_config__test__version_1.snap
@@ -125,7 +125,6 @@ gas_model_version: 8
 obj_data_cost_refundable: 100
 obj_metadata_cost_non_refundable: 50
 storage_rebate_rate: 9900
-storage_fund_reinvest_rate: 500
 reward_slashing_rate: 10000
 storage_gas_price: 76
 max_transactions_per_checkpoint: 10000
@@ -268,3 +267,4 @@ random_beacon_reduction_lower_bound: 1600
 random_beacon_dkg_timeout_round: 200
 consensus_max_transaction_size_bytes: 262144
 consensus_max_transactions_in_block_bytes: 6291456
+
diff --git a/crates/iota-types/src/iota_system_state/mod.rs b/crates/iota-types/src/iota_system_state/mod.rs
index df1fb87e8b5..276e4631c09 100644
--- a/crates/iota-types/src/iota_system_state/mod.rs
+++ b/crates/iota-types/src/iota_system_state/mod.rs
@@ -444,7 +444,6 @@ pub struct AdvanceEpochParams {
     pub computation_charge: u64,
     pub storage_rebate: u64,
     pub non_refundable_storage_fee: u64,
-    pub storage_fund_reinvest_rate: u64,
     pub reward_slashing_rate: u64,
     pub epoch_start_timestamp_ms: u64,
 }
diff --git a/iota-execution/latest/iota-adapter/src/execution_engine.rs b/iota-execution/latest/iota-adapter/src/execution_engine.rs
index 124863e97ac..5db91d24b94 100644
--- a/iota-execution/latest/iota-adapter/src/execution_engine.rs
+++ b/iota-execution/latest/iota-adapter/src/execution_engine.rs
@@ -723,7 +723,6 @@ mod checked {
             CallArg::Pure(bcs::to_bytes(¶ms.next_protocol_version.as_u64()).unwrap()),
             CallArg::Pure(bcs::to_bytes(¶ms.storage_rebate).unwrap()),
             CallArg::Pure(bcs::to_bytes(¶ms.non_refundable_storage_fee).unwrap()),
-            CallArg::Pure(bcs::to_bytes(¶ms.storage_fund_reinvest_rate).unwrap()),
             CallArg::Pure(bcs::to_bytes(¶ms.reward_slashing_rate).unwrap()),
             CallArg::Pure(bcs::to_bytes(¶ms.epoch_start_timestamp_ms).unwrap()),
         ]
@@ -826,7 +825,6 @@ mod checked {
             computation_charge: change_epoch.computation_charge,
             storage_rebate: change_epoch.storage_rebate,
             non_refundable_storage_fee: change_epoch.non_refundable_storage_fee,
-            storage_fund_reinvest_rate: protocol_config.storage_fund_reinvest_rate(),
             reward_slashing_rate: protocol_config.reward_slashing_rate(),
             epoch_start_timestamp_ms: change_epoch.epoch_start_timestamp_ms,
         };
diff --git a/iota-execution/v0/iota-adapter/src/execution_engine.rs b/iota-execution/v0/iota-adapter/src/execution_engine.rs
index daf4c09674a..a7db72749b2 100644
--- a/iota-execution/v0/iota-adapter/src/execution_engine.rs
+++ b/iota-execution/v0/iota-adapter/src/execution_engine.rs
@@ -531,7 +531,6 @@ mod checked {
             CallArg::Pure(bcs::to_bytes(¶ms.next_protocol_version.as_u64()).unwrap()),
             CallArg::Pure(bcs::to_bytes(¶ms.storage_rebate).unwrap()),
             CallArg::Pure(bcs::to_bytes(¶ms.non_refundable_storage_fee).unwrap()),
-            CallArg::Pure(bcs::to_bytes(¶ms.storage_fund_reinvest_rate).unwrap()),
             CallArg::Pure(bcs::to_bytes(¶ms.reward_slashing_rate).unwrap()),
             CallArg::Pure(bcs::to_bytes(¶ms.epoch_start_timestamp_ms).unwrap()),
         ]
@@ -633,7 +632,6 @@ mod checked {
             computation_charge: change_epoch.computation_charge,
             storage_rebate: change_epoch.storage_rebate,
             non_refundable_storage_fee: change_epoch.non_refundable_storage_fee,
-            storage_fund_reinvest_rate: protocol_config.storage_fund_reinvest_rate(),
             reward_slashing_rate: protocol_config.reward_slashing_rate(),
             epoch_start_timestamp_ms: change_epoch.epoch_start_timestamp_ms,
         };
diff --git a/iota-execution/v1/iota-adapter/src/execution_engine.rs b/iota-execution/v1/iota-adapter/src/execution_engine.rs
index 7aaa23f9266..90c2f9ee676 100644
--- a/iota-execution/v1/iota-adapter/src/execution_engine.rs
+++ b/iota-execution/v1/iota-adapter/src/execution_engine.rs
@@ -698,7 +698,6 @@ mod checked {
             CallArg::Pure(bcs::to_bytes(¶ms.next_protocol_version.as_u64()).unwrap()),
             CallArg::Pure(bcs::to_bytes(¶ms.storage_rebate).unwrap()),
             CallArg::Pure(bcs::to_bytes(¶ms.non_refundable_storage_fee).unwrap()),
-            CallArg::Pure(bcs::to_bytes(¶ms.storage_fund_reinvest_rate).unwrap()),
             CallArg::Pure(bcs::to_bytes(¶ms.reward_slashing_rate).unwrap()),
             CallArg::Pure(bcs::to_bytes(¶ms.epoch_start_timestamp_ms).unwrap()),
         ]
@@ -801,7 +800,6 @@ mod checked {
             computation_charge: change_epoch.computation_charge,
             storage_rebate: change_epoch.storage_rebate,
             non_refundable_storage_fee: change_epoch.non_refundable_storage_fee,
-            storage_fund_reinvest_rate: protocol_config.storage_fund_reinvest_rate(),
             reward_slashing_rate: protocol_config.reward_slashing_rate(),
             epoch_start_timestamp_ms: change_epoch.epoch_start_timestamp_ms,
         };
diff --git a/iota-execution/v2/iota-adapter/src/execution_engine.rs b/iota-execution/v2/iota-adapter/src/execution_engine.rs
index 124863e97ac..5db91d24b94 100644
--- a/iota-execution/v2/iota-adapter/src/execution_engine.rs
+++ b/iota-execution/v2/iota-adapter/src/execution_engine.rs
@@ -723,7 +723,6 @@ mod checked {
             CallArg::Pure(bcs::to_bytes(¶ms.next_protocol_version.as_u64()).unwrap()),
             CallArg::Pure(bcs::to_bytes(¶ms.storage_rebate).unwrap()),
             CallArg::Pure(bcs::to_bytes(¶ms.non_refundable_storage_fee).unwrap()),
-            CallArg::Pure(bcs::to_bytes(¶ms.storage_fund_reinvest_rate).unwrap()),
             CallArg::Pure(bcs::to_bytes(¶ms.reward_slashing_rate).unwrap()),
             CallArg::Pure(bcs::to_bytes(¶ms.epoch_start_timestamp_ms).unwrap()),
         ]
@@ -826,7 +825,6 @@ mod checked {
             computation_charge: change_epoch.computation_charge,
             storage_rebate: change_epoch.storage_rebate,
             non_refundable_storage_fee: change_epoch.non_refundable_storage_fee,
-            storage_fund_reinvest_rate: protocol_config.storage_fund_reinvest_rate(),
             reward_slashing_rate: protocol_config.reward_slashing_rate(),
             epoch_start_timestamp_ms: change_epoch.epoch_start_timestamp_ms,
         };