Skip to content

Commit

Permalink
Merge pull request #426 from Phoenix-Protocol-Group/425-factory-test-…
Browse files Browse the repository at this point in the history
…for-extending-ttl

Factory: test for extending the TTL
  • Loading branch information
ueco-jb authored Feb 6, 2025
2 parents 3e37b44 + 9236bfa commit 0370f67
Show file tree
Hide file tree
Showing 19 changed files with 463 additions and 283 deletions.
38 changes: 19 additions & 19 deletions contracts/factory/src/contract.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ use crate::{
ConvertVec,
};
use phoenix::{
ttl::{INSTANCE_BUMP_AMOUNT, INSTANCE_LIFETIME_THRESHOLD},
validate_bps,
};
use phoenix::{
ttl::{PERSISTENT_BUMP_AMOUNT, PERSISTENT_LIFETIME_THRESHOLD},
ttl::{
INSTANCE_RENEWAL_THRESHOLD, INSTANCE_TARGET_TTL, PERSISTENT_RENEWAL_THRESHOLD,
PERSISTENT_TARGET_TTL,
},
utils::{LiquidityPoolInitInfo, PoolType, StakeInitInfo, TokenInitInfo},
validate_bps,
};
use soroban_sdk::{
contract, contractimpl, contractmeta, log, panic_with_error, vec, Address, BytesN, Env,
Expand Down Expand Up @@ -157,7 +157,7 @@ impl FactoryTrait for Factory {
sender.require_auth();
env.storage()
.instance()
.extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT);
.extend_ttl(INSTANCE_RENEWAL_THRESHOLD, INSTANCE_TARGET_TTL);
validate_pool_info(&pool_type, &amp);

if !get_config(&env).whitelisted_accounts.contains(sender) {
Expand Down Expand Up @@ -247,7 +247,7 @@ impl FactoryTrait for Factory {
sender.require_auth();
env.storage()
.instance()
.extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT);
.extend_ttl(INSTANCE_RENEWAL_THRESHOLD, INSTANCE_TARGET_TTL);

let config = get_config(&env);

Expand Down Expand Up @@ -293,7 +293,7 @@ impl FactoryTrait for Factory {
config.admin.require_auth();
env.storage()
.instance()
.extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT);
.extend_ttl(INSTANCE_RENEWAL_THRESHOLD, INSTANCE_TARGET_TTL);

save_config(
&env,
Expand All @@ -309,14 +309,14 @@ impl FactoryTrait for Factory {
fn query_pools(env: Env) -> Vec<Address> {
env.storage()
.instance()
.extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT);
.extend_ttl(INSTANCE_RENEWAL_THRESHOLD, INSTANCE_TARGET_TTL);
get_lp_vec(&env)
}

fn query_pool_details(env: Env, pool_address: Address) -> LiquidityPoolInfo {
env.storage()
.instance()
.extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT);
.extend_ttl(INSTANCE_RENEWAL_THRESHOLD, INSTANCE_TARGET_TTL);
let pool_response: LiquidityPoolInfo = env.invoke_contract(
&pool_address,
&Symbol::new(&env, "query_pool_info_for_factory"),
Expand All @@ -328,7 +328,7 @@ impl FactoryTrait for Factory {
fn query_all_pools_details(env: Env) -> Vec<LiquidityPoolInfo> {
env.storage()
.instance()
.extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT);
.extend_ttl(INSTANCE_RENEWAL_THRESHOLD, INSTANCE_TARGET_TTL);
let all_lp_vec_addresses = get_lp_vec(&env);
let mut result = Vec::new(&env);
for address in all_lp_vec_addresses {
Expand All @@ -347,7 +347,7 @@ impl FactoryTrait for Factory {
fn query_for_pool_by_token_pair(env: Env, token_a: Address, token_b: Address) -> Address {
env.storage()
.instance()
.extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT);
.extend_ttl(INSTANCE_RENEWAL_THRESHOLD, INSTANCE_TARGET_TTL);
let pool_result: Option<Address> = env.storage().persistent().get(&PairTupleKey {
token_a: token_a.clone(),
token_b: token_b.clone(),
Expand All @@ -365,8 +365,8 @@ impl FactoryTrait for Factory {
token_a: token_a.clone(),
token_b: token_b.clone(),
},
PERSISTENT_LIFETIME_THRESHOLD,
PERSISTENT_BUMP_AMOUNT,
PERSISTENT_RENEWAL_THRESHOLD,
PERSISTENT_TARGET_TTL,
);
});

Expand All @@ -391,8 +391,8 @@ impl FactoryTrait for Factory {
token_a: token_b,
token_b: token_a,
},
PERSISTENT_LIFETIME_THRESHOLD,
PERSISTENT_BUMP_AMOUNT,
PERSISTENT_RENEWAL_THRESHOLD,
PERSISTENT_TARGET_TTL,
);
});

Expand All @@ -410,21 +410,21 @@ impl FactoryTrait for Factory {
fn get_admin(env: Env) -> Address {
env.storage()
.instance()
.extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT);
.extend_ttl(INSTANCE_RENEWAL_THRESHOLD, INSTANCE_TARGET_TTL);
get_config(&env).admin
}

fn get_config(env: Env) -> Config {
env.storage()
.instance()
.extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT);
.extend_ttl(INSTANCE_RENEWAL_THRESHOLD, INSTANCE_TARGET_TTL);
get_config(&env)
}

fn query_user_portfolio(env: Env, sender: Address, staking: bool) -> UserPortfolio {
env.storage()
.instance()
.extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT);
.extend_ttl(INSTANCE_RENEWAL_THRESHOLD, INSTANCE_TARGET_TTL);
let initialized_pools = get_lp_vec(&env);
let mut lp_portfolio: Vec<LpPortfolio> = Vec::new(&env);
let mut stake_portfolio: Vec<StakePortfolio> = Vec::new(&env);
Expand Down
40 changes: 20 additions & 20 deletions contracts/factory/src/storage.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use phoenix::ttl::{
INSTANCE_BUMP_AMOUNT, INSTANCE_LIFETIME_THRESHOLD, PERSISTENT_BUMP_AMOUNT,
PERSISTENT_LIFETIME_THRESHOLD,
INSTANCE_RENEWAL_THRESHOLD, INSTANCE_TARGET_TTL, PERSISTENT_RENEWAL_THRESHOLD,
PERSISTENT_TARGET_TTL,
};
use soroban_sdk::{
contracttype, log, panic_with_error, symbol_short, Address, BytesN, ConversionError, Env,
Expand Down Expand Up @@ -53,8 +53,8 @@ pub fn save_stable_wasm_hash(env: &Env, hash: BytesN<32>) {
env.storage().persistent().set(&STABLE_WASM_HASH, &hash);
env.storage().persistent().extend_ttl(
&STABLE_WASM_HASH,
PERSISTENT_LIFETIME_THRESHOLD,
PERSISTENT_BUMP_AMOUNT,
PERSISTENT_RENEWAL_THRESHOLD,
PERSISTENT_TARGET_TTL,
);
}

Expand All @@ -67,8 +67,8 @@ pub fn get_stable_wasm_hash(env: &Env) -> BytesN<32> {

env.storage().persistent().extend_ttl(
&STABLE_WASM_HASH,
PERSISTENT_LIFETIME_THRESHOLD,
PERSISTENT_BUMP_AMOUNT,
PERSISTENT_RENEWAL_THRESHOLD,
PERSISTENT_TARGET_TTL,
);

hash
Expand Down Expand Up @@ -145,8 +145,8 @@ pub fn save_config(env: &Env, config: Config) {
env.storage().persistent().set(&DataKey::Config, &config);
env.storage().persistent().extend_ttl(
&DataKey::Config,
PERSISTENT_LIFETIME_THRESHOLD,
PERSISTENT_BUMP_AMOUNT,
PERSISTENT_RENEWAL_THRESHOLD,
PERSISTENT_TARGET_TTL,
);
}

Expand All @@ -159,8 +159,8 @@ pub fn get_config(env: &Env) -> Config {

env.storage().persistent().extend_ttl(
&DataKey::Config,
PERSISTENT_LIFETIME_THRESHOLD,
PERSISTENT_BUMP_AMOUNT,
PERSISTENT_RENEWAL_THRESHOLD,
PERSISTENT_TARGET_TTL,
);

config
Expand All @@ -171,7 +171,7 @@ pub fn _save_admin(env: &Env, admin_addr: Address) {

env.storage()
.instance()
.extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT);
.extend_ttl(INSTANCE_RENEWAL_THRESHOLD, INSTANCE_TARGET_TTL);
}

pub fn _get_admin(env: &Env) -> Address {
Expand All @@ -182,7 +182,7 @@ pub fn _get_admin(env: &Env) -> Address {

env.storage()
.instance()
.extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT);
.extend_ttl(INSTANCE_RENEWAL_THRESHOLD, INSTANCE_TARGET_TTL);

admin_addr
}
Expand All @@ -196,8 +196,8 @@ pub fn get_lp_vec(env: &Env) -> Vec<Address> {

env.storage().persistent().extend_ttl(
&DataKey::LpVec,
PERSISTENT_LIFETIME_THRESHOLD,
PERSISTENT_BUMP_AMOUNT,
PERSISTENT_RENEWAL_THRESHOLD,
PERSISTENT_TARGET_TTL,
);

lp_vec
Expand All @@ -207,8 +207,8 @@ pub fn save_lp_vec(env: &Env, lp_info: Vec<Address>) {
env.storage().persistent().set(&DataKey::LpVec, &lp_info);
env.storage().persistent().extend_ttl(
&DataKey::LpVec,
PERSISTENT_LIFETIME_THRESHOLD,
PERSISTENT_BUMP_AMOUNT,
PERSISTENT_RENEWAL_THRESHOLD,
PERSISTENT_TARGET_TTL,
);
}

Expand All @@ -230,8 +230,8 @@ pub fn save_lp_vec_with_tuple_as_key(
token_a: tuple_pool.0.clone(),
token_b: tuple_pool.1.clone(),
},
PERSISTENT_LIFETIME_THRESHOLD,
PERSISTENT_BUMP_AMOUNT,
PERSISTENT_RENEWAL_THRESHOLD,
PERSISTENT_TARGET_TTL,
);
}

Expand All @@ -247,7 +247,7 @@ pub fn set_initialized(e: &Env) {

e.storage().persistent().extend_ttl(
&DataKey::Initialized,
PERSISTENT_LIFETIME_THRESHOLD,
PERSISTENT_BUMP_AMOUNT,
PERSISTENT_RENEWAL_THRESHOLD,
PERSISTENT_TARGET_TTL,
);
}
Loading

0 comments on commit 0370f67

Please sign in to comment.