Skip to main content

foundry_cheatcodes/
base64.rs

1use crate::{Cheatcode, Cheatcodes, Result, Vm::*};
2use alloy_sol_types::SolValue;
3use base64::prelude::*;
4use foundry_evm_core::evm::FoundryEvmNetwork;
5
6fn encode_base64(data: impl AsRef<[u8]>) -> Result {
7    Ok(BASE64_STANDARD.encode(data).abi_encode())
8}
9
10fn encode_base64_url(data: impl AsRef<[u8]>) -> Result {
11    Ok(BASE64_URL_SAFE.encode(data).abi_encode())
12}
13
14impl Cheatcode for toBase64_0Call {
15    fn apply<FEN: FoundryEvmNetwork>(&self, _state: &mut Cheatcodes<FEN>) -> Result {
16        let Self { data } = self;
17        encode_base64(data)
18    }
19}
20
21impl Cheatcode for toBase64_1Call {
22    fn apply<FEN: FoundryEvmNetwork>(&self, _state: &mut Cheatcodes<FEN>) -> Result {
23        let Self { data } = self;
24        encode_base64(data)
25    }
26}
27
28impl Cheatcode for toBase64URL_0Call {
29    fn apply<FEN: FoundryEvmNetwork>(&self, _state: &mut Cheatcodes<FEN>) -> Result {
30        let Self { data } = self;
31        encode_base64_url(data)
32    }
33}
34
35impl Cheatcode for toBase64URL_1Call {
36    fn apply<FEN: FoundryEvmNetwork>(&self, _state: &mut Cheatcodes<FEN>) -> Result {
37        let Self { data } = self;
38        encode_base64_url(data)
39    }
40}