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}