in fastpay_core/src/fastpay_smart_contract.rs [50:65]
fn handle_funding_transaction(
&mut self,
transaction: FundingTransaction,
) -> Result<(), failure::Error> {
// TODO: Authentication by Primary sender
let amount = transaction.primary_coins;
ensure!(
amount > Amount::zero(),
"Transfers must have positive amount",
);
// TODO: Make sure that under overflow/underflow we are consistent.
self.last_transaction_index = self.last_transaction_index.increment()?;
self.blockchain.push(transaction);
self.total_balance = self.total_balance.try_add(amount)?;
Ok(())
}