multiversx_chain_vm/host/context/
blockchain_update.rs1use std::collections::HashMap;
2
3use crate::{
4 blockchain::state::{AccountData, BlockchainState},
5 types::VMAddress,
6};
7
8#[derive(Default)]
9pub struct BlockchainUpdate {
10 pub accounts: HashMap<VMAddress, AccountData>,
11 pub new_token_identifiers: Option<Vec<String>>,
12}
13
14impl BlockchainUpdate {
15 pub fn empty() -> Self {
16 BlockchainUpdate::default()
17 }
18
19 pub fn apply(self, blockchain: &mut BlockchainState) {
20 blockchain.update_accounts(self.accounts);
21
22 if let Some(token_identifiers) = self.new_token_identifiers {
23 blockchain.update_new_token_identifiers(token_identifiers);
24 }
25 }
26}