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
6impl Cheatcode for toBase64_0Call {
7    fn apply<FEN: FoundryEvmNetwork>(&self, _state: &mut Cheatcodes<FEN>) -> Result {
8        let Self { data } = self;
9        encode_base64(data)
10    }
11}
12
13impl Cheatcode for toBase64_1Call {
14    fn apply<FEN: FoundryEvmNetwork>(&self, _state: &mut Cheatcodes<FEN>) -> Result {
15        let Self { data } = self;
16        encode_base64(data)
17    }
18}
19
20impl Cheatcode for toBase64URL_0Call {
21    fn apply<FEN: FoundryEvmNetwork>(&self, _state: &mut Cheatcodes<FEN>) -> Result {
22        let Self { data } = self;
23        encode_base64_url(data)
24    }
25}
26
27fn encode_base64(data: impl AsRef<[u8]>) -> Result {
28    Ok(BASE64_STANDARD.encode(data).abi_encode())
29}
30
31fn encode_base64_url(data: impl AsRef<[u8]>) -> Result {
32    Ok(BASE64_URL_SAFE.encode(data).abi_encode())
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}