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}