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}