diff --git a/Cargo.lock b/Cargo.lock index 5c8fa06d8..5c61a2e76 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1103,7 +1103,7 @@ checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "soroban-env-common" version = "0.0.17" -source = "git+https://github.com/stellar/rs-soroban-env?rev=a4fe7a118131e11e1d78ba0e6627cfe72d7de2ad#a4fe7a118131e11e1d78ba0e6627cfe72d7de2ad" +source = "git+https://github.com/stellar/rs-soroban-env?rev=3be35df3061d08cf3e207b3eb546aa29adf32c01#3be35df3061d08cf3e207b3eb546aa29adf32c01" dependencies = [ "arbitrary", "crate-git-revision", @@ -1120,7 +1120,7 @@ dependencies = [ [[package]] name = "soroban-env-guest" version = "0.0.17" -source = "git+https://github.com/stellar/rs-soroban-env?rev=a4fe7a118131e11e1d78ba0e6627cfe72d7de2ad#a4fe7a118131e11e1d78ba0e6627cfe72d7de2ad" +source = "git+https://github.com/stellar/rs-soroban-env?rev=3be35df3061d08cf3e207b3eb546aa29adf32c01#3be35df3061d08cf3e207b3eb546aa29adf32c01" dependencies = [ "soroban-env-common", "static_assertions", @@ -1129,7 +1129,7 @@ dependencies = [ [[package]] name = "soroban-env-host" version = "0.0.17" -source = "git+https://github.com/stellar/rs-soroban-env?rev=a4fe7a118131e11e1d78ba0e6627cfe72d7de2ad#a4fe7a118131e11e1d78ba0e6627cfe72d7de2ad" +source = "git+https://github.com/stellar/rs-soroban-env?rev=3be35df3061d08cf3e207b3eb546aa29adf32c01#3be35df3061d08cf3e207b3eb546aa29adf32c01" dependencies = [ "backtrace", "curve25519-dalek", @@ -1155,7 +1155,7 @@ dependencies = [ [[package]] name = "soroban-env-macros" version = "0.0.17" -source = "git+https://github.com/stellar/rs-soroban-env?rev=a4fe7a118131e11e1d78ba0e6627cfe72d7de2ad#a4fe7a118131e11e1d78ba0e6627cfe72d7de2ad" +source = "git+https://github.com/stellar/rs-soroban-env?rev=3be35df3061d08cf3e207b3eb546aa29adf32c01#3be35df3061d08cf3e207b3eb546aa29adf32c01" dependencies = [ "itertools", "proc-macro2", @@ -1181,7 +1181,7 @@ dependencies = [ [[package]] name = "soroban-native-sdk-macros" version = "0.0.17" -source = "git+https://github.com/stellar/rs-soroban-env?rev=a4fe7a118131e11e1d78ba0e6627cfe72d7de2ad#a4fe7a118131e11e1d78ba0e6627cfe72d7de2ad" +source = "git+https://github.com/stellar/rs-soroban-env?rev=3be35df3061d08cf3e207b3eb546aa29adf32c01#3be35df3061d08cf3e207b3eb546aa29adf32c01" dependencies = [ "itertools", "proc-macro2", diff --git a/Cargo.toml b/Cargo.toml index b2ade48a4..e640c3297 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,17 +40,17 @@ soroban-token-sdk = { version = "0.9.2", path = "soroban-token-sdk" } [workspace.dependencies.soroban-env-common] version = "0.0.17" git = "https://github.com/stellar/rs-soroban-env" -rev = "a4fe7a118131e11e1d78ba0e6627cfe72d7de2ad" +rev = "3be35df3061d08cf3e207b3eb546aa29adf32c01" [workspace.dependencies.soroban-env-guest] version = "0.0.17" git = "https://github.com/stellar/rs-soroban-env" -rev = "a4fe7a118131e11e1d78ba0e6627cfe72d7de2ad" +rev = "3be35df3061d08cf3e207b3eb546aa29adf32c01" [workspace.dependencies.soroban-env-host] version = "0.0.17" git = "https://github.com/stellar/rs-soroban-env" -rev = "a4fe7a118131e11e1d78ba0e6627cfe72d7de2ad" +rev = "3be35df3061d08cf3e207b3eb546aa29adf32c01" [workspace.dependencies.stellar-strkey] version = "0.0.7" diff --git a/soroban-sdk/src/storage.rs b/soroban-sdk/src/storage.rs index d80438d5e..6aecaa09d 100644 --- a/soroban-sdk/src/storage.rs +++ b/soroban-sdk/src/storage.rs @@ -186,8 +186,13 @@ impl Storage { .unwrap_infallible(); } - pub(crate) fn bump(&self, key: &K, storage_type: StorageType, min_ledgers_to_live: u32) - where + pub(crate) fn bump( + &self, + key: &K, + storage_type: StorageType, + low_expiration_watermark: u32, + high_expiration_watermark: u32, + ) where K: IntoVal, { let env = &self.env; @@ -195,7 +200,8 @@ impl Storage { env, key.into_val(env), storage_type, - min_ledgers_to_live.into(), + low_expiration_watermark.into(), + high_expiration_watermark.into(), ) .unwrap_infallible(); } @@ -253,12 +259,16 @@ impl Persistent { self.storage.set(key, val, StorageType::Persistent) } - pub fn bump(&self, key: &K, min_ledgers_to_live: u32) + pub fn bump(&self, key: &K, low_expiration_watermark: u32, high_expiration_watermark: u32) where K: IntoVal, { - self.storage - .bump(key, StorageType::Persistent, min_ledgers_to_live) + self.storage.bump( + key, + StorageType::Persistent, + low_expiration_watermark, + high_expiration_watermark, + ) } #[inline(always)] @@ -299,12 +309,16 @@ impl Temporary { self.storage.set(key, val, StorageType::Temporary) } - pub fn bump(&self, key: &K, min_ledgers_to_live: u32) + pub fn bump(&self, key: &K, low_expiration_watermark: u32, high_expiration_watermark: u32) where K: IntoVal, { - self.storage - .bump(key, StorageType::Temporary, min_ledgers_to_live) + self.storage.bump( + key, + StorageType::Temporary, + low_expiration_watermark, + high_expiration_watermark, + ) } #[inline(always)] @@ -353,10 +367,11 @@ impl Instance { self.storage.remove(key, StorageType::Instance) } - pub fn bump(&self, min_ledgers_to_live: u32) { + pub fn bump(&self, low_expiration_watermark: u32, high_expiration_watermark: u32) { internal::Env::bump_current_contract_instance_and_code( &self.storage.env, - min_ledgers_to_live.into(), + low_expiration_watermark.into(), + high_expiration_watermark.into(), ) .unwrap_infallible(); } diff --git a/soroban-sdk/src/tests/contract_store.rs b/soroban-sdk/src/tests/contract_store.rs index c884ab756..b7889c5a3 100644 --- a/soroban-sdk/src/tests/contract_store.rs +++ b/soroban-sdk/src/tests/contract_store.rs @@ -36,15 +36,15 @@ impl Contract { } pub fn bump_persistent(env: Env, k: i32) { - env.storage().persistent().bump(&DataKey::Key(k), 100); + env.storage().persistent().bump(&DataKey::Key(k), 100, 100); } pub fn bump_temporary(env: Env, k: i32) { - env.storage().temporary().bump(&DataKey::Key(k), 100); + env.storage().temporary().bump(&DataKey::Key(k), 100, 100); } pub fn bump_instance(env: Env) { - env.storage().instance().bump(100); + env.storage().instance().bump(100, 100); } }