Some comments.

This commit is contained in:
chriseth 2022-12-20 21:01:34 +01:00
parent 9fe536a853
commit 88ea58d25e
2 changed files with 6 additions and 0 deletions

View file

@ -34,6 +34,8 @@ impl DB {
continue;
}
if let Some(receiver_safe) = self.safes.get(send_to) {
// TODO should return "limited or not"
// edge should contain token balance and transfer limit (which can be unlimited)
let limit = safe.trust_transfer_limit(receiver_safe, *percentage);
if limit != U256::from(0) {
edges.push(Edge {
@ -53,6 +55,7 @@ impl DB {
from: *user,
to: *owner,
token: *owner,
// TODO capacity should be only limited by own balance.
capacity: *balance,
})
}

View file

@ -21,6 +21,7 @@ impl Safe {
pub fn trust_transfer_limit(&self, receiver: &Safe, trust_percentage: u8) -> U256 {
if receiver.organization {
// TODO treat this as "return to owner"
// i.e. limited / only constrained by the balance edge.
self.balance(&self.token_address)
} else {
let receiver_balance = receiver.balance(&self.token_address);
@ -30,6 +31,8 @@ impl Safe {
if amount < receiver_balance {
U256::from(0)
} else {
// TODO it should not be "min" - the second constraint
// is set by the balance edge.
min(amount - receiver_balance, self.balance(&self.token_address))
}
}