diff --git a/contracts/split/src/lib.rs b/contracts/split/src/lib.rs index 29e4846..27a9b1f 100644 --- a/contracts/split/src/lib.rs +++ b/contracts/split/src/lib.rs @@ -562,6 +562,12 @@ impl SplitContract { fn _release(env: &Env, invoice_id: u64, invoice: &mut Invoice, actor: &Address) { let token_client = token::Client::new(env, &invoice.token); + let contract_balance = token_client.balance(&env.current_contract_address()); + assert!( + contract_balance >= invoice.funded, + "insufficient contract balance" + ); + for (recipient, amount) in invoice.recipients.iter().zip(invoice.amounts.iter()) { token_client.transfer(&env.current_contract_address(), &recipient, &amount); }