raiden_state_machine/machine/
utils.rs1#![warn(clippy::missing_docs_in_private_items)]
2
3use raiden_primitives::types::SecretHash;
4
5use crate::types::{
6 ChainState,
7 ChannelState,
8 ContractReceiveSecretReveal,
9 ReceiveSecretReveal,
10};
11
12pub(crate) fn update_channel(
14 chain_state: &mut ChainState,
15 channel_state: ChannelState,
16) -> Result<(), String> {
17 let token_network_registries = &mut chain_state.identifiers_to_tokennetworkregistries;
18 let token_network_registry =
19 match token_network_registries.get_mut(&channel_state.token_network_registry_address) {
20 Some(token_network_registry) => token_network_registry,
21 None =>
22 return Err(format!(
23 "Token network registry {} was not found",
24 channel_state.token_network_registry_address
25 )),
26 };
27 let token_network = match token_network_registry
28 .tokennetworkaddresses_to_tokennetworks
29 .get_mut(&channel_state.canonical_identifier.token_network_address)
30 {
31 Some(token_network) => token_network,
32 None =>
33 return Err(format!(
34 "Token network {} was not found",
35 channel_state.canonical_identifier.token_network_address
36 )),
37 };
38
39 token_network
40 .channelidentifiers_to_channels
41 .insert(channel_state.canonical_identifier.channel_identifier, channel_state);
42
43 Ok(())
44}
45
46pub(super) fn is_valid_secret_reveal(
48 state_change: &ReceiveSecretReveal,
49 transfer_secrethash: SecretHash,
50) -> bool {
51 state_change.secrethash == transfer_secrethash
52}
53
54pub(super) fn is_valid_onchain_secret_reveal(
56 state_change: &ContractReceiveSecretReveal,
57 transfer_secrethash: SecretHash,
58) -> bool {
59 state_change.secrethash == transfer_secrethash
60}