Asset Manager
Last updated
Was this helpful?
Was this helpful?
pub fn deposit(
&mut self,
token_id: u32,
on_behalf_of: AccountId
) -> Result<(), Error>pub fn withdraw(
&mut self,
token_id: u32,
on_behalf_of: AccountId
) -> Result<(), Error>fn calculate_interest(
&self,
amount: u128,
interest_rate: u64,
current_timestamp: u64,
date_borrowed: u64,
) -> Balance {
let difference_in_secs: u128 =
((current_timestamp - date_borrowed) as u128 / 1000_u128).into(); // Total time elapsed in seconds
let secs_in_day: u128 = 24 * 60 * 60;
let difference_in_days: u128 = difference_in_secs / secs_in_day;
let mut days_since_borrowed = difference_in_days;
if difference_in_secs - (difference_in_days * days_since_borrowed) > 0 {
days_since_borrowed = days_since_borrowed + 1;
}
let mut s = 0;
let mut n = 1;
let mut b = 1;
let q: u128 = 365 * 100 / interest_rate as u128;
for x in 0..8 {
s = s + amount * n / b / (q.pow(x));
if days_since_borrowed < x.into() {
break;
}
n = n * (days_since_borrowed - x as u128);
b = b * (x as u128 + 1);
}
s - amount
}