Skip to main content

foundry_cheatcodes/
base64.rs

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