Process transfers in parallel.
This commit is contained in:
parent
1ca99b8c4c
commit
e7fba3a473
@ -442,8 +442,15 @@ pub fn process_transfers(
|
|||||||
transfers.len() as u64 <= spec.max_transfers,
|
transfers.len() as u64 <= spec.max_transfers,
|
||||||
Invalid::MaxTransfersExceed
|
Invalid::MaxTransfersExceed
|
||||||
);
|
);
|
||||||
|
|
||||||
|
transfers
|
||||||
|
.par_iter()
|
||||||
|
.enumerate()
|
||||||
|
.try_for_each(|(i, transfer)| {
|
||||||
|
verify_transfer(&state, transfer, spec).map_err(|e| e.into_with_index(i))
|
||||||
|
})?;
|
||||||
|
|
||||||
for (i, transfer) in transfers.iter().enumerate() {
|
for (i, transfer) in transfers.iter().enumerate() {
|
||||||
verify_transfer(&state, transfer, spec).map_err(|e| e.into_with_index(i))?;
|
|
||||||
execute_transfer(state, transfer, spec).map_err(|e| e.into_with_index(i))?;
|
execute_transfer(state, transfer, spec).map_err(|e| e.into_with_index(i))?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ impl TestingTransferBuilder {
|
|||||||
pub fn new(from: u64, to: u64, amount: u64, slot: Slot) -> Self {
|
pub fn new(from: u64, to: u64, amount: u64, slot: Slot) -> Self {
|
||||||
let keypair = Keypair::random();
|
let keypair = Keypair::random();
|
||||||
|
|
||||||
let mut transfer = Transfer {
|
let transfer = Transfer {
|
||||||
from,
|
from,
|
||||||
to,
|
to,
|
||||||
amount,
|
amount,
|
||||||
|
Loading…
Reference in New Issue
Block a user