diff --git a/contracts/milestone-tracker/src/lib.rs b/contracts/milestone-tracker/src/lib.rs index e18bf87..c80e5c8 100644 --- a/contracts/milestone-tracker/src/lib.rs +++ b/contracts/milestone-tracker/src/lib.rs @@ -300,6 +300,20 @@ impl MilestoneTrackerContract { ); } + pub fn set_oracle(env: Env, admin: Address, new_oracle: Address) { + env.storage() + .instance() + .extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); + admin.require_auth(); + let stored_admin: Address = env.storage().instance().get(&DataKey::Admin).unwrap(); + if admin != stored_admin { + panic!("unauthorized"); + } + env.storage() + .instance() + .set(&DataKey::OracleAddress, &new_oracle); + } + pub fn get_campaign_milestone_count(env: Env, campaign_id: u64) -> u64 { env.storage() .instance() diff --git a/contracts/payout-automation/src/lib.rs b/contracts/payout-automation/src/lib.rs index 214a05c..35e5749 100644 --- a/contracts/payout-automation/src/lib.rs +++ b/contracts/payout-automation/src/lib.rs @@ -254,6 +254,13 @@ impl PayoutAutomationContract { ); } + pub fn fund_payouts(env: Env, sender: Address, amount: i128) { + sender.require_auth(); + let token: Address = env.storage().instance().get(&DataKey::TokenAddress).unwrap(); + token::Client::new(&env, &token).transfer(&sender, &env.current_contract_address(), &amount); + } + + pub fn add_publisher_earnings(env: Env, admin: Address, publisher: Address, amount: i128) { env.storage() .instance()