1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
use mandos::TxTransfer;
use crate::BlockchainMock;
pub fn execute(state: &mut BlockchainMock, tx: &TxTransfer) {
let sender_address = &tx.from.value.into();
state.increase_nonce(sender_address);
state
.subtract_tx_payment(sender_address, &tx.value.value)
.unwrap();
let recipient_address = &tx.to.value.into();
state.increase_balance(recipient_address, &tx.value.value);
let esdt_token_identifier = tx.esdt_token_identifier.value.clone();
let esdt_value = tx.esdt_value.value.clone();
if !esdt_token_identifier.is_empty() && esdt_value > 0u32.into() {
state.substract_esdt_balance(sender_address, &esdt_token_identifier[..], &esdt_value);
state.increase_esdt_balance(recipient_address, &esdt_token_identifier[..], &esdt_value);
}
}