zksync_web3_rs/eip712/
paymaster_params.rs1use ethers::{types::Address, utils::rlp::Encodable};
2use serde::Serialize;
3
4#[derive(Serialize, serde::Deserialize, Clone, Debug, Default)]
5#[serde(rename_all(serialize = "camelCase", deserialize = "camelCase"))]
6pub struct PaymasterParams {
7 pub paymaster: Address,
8 pub paymaster_input: Vec<u8>,
9}
10
11impl PaymasterParams {
12 pub fn paymaster(mut self, paymaster: Address) -> Self {
13 self.paymaster = paymaster;
14 self
15 }
16
17 pub fn paymaster_input(mut self, paymaster_input: Vec<u8>) -> Self {
18 self.paymaster_input = paymaster_input;
19 self
20 }
21}
22
23impl Encodable for PaymasterParams {
24 fn rlp_append(&self, stream: &mut ethers::utils::rlp::RlpStream) {
25 stream.begin_list(2);
26 stream.append(&self.paymaster);
27 stream.append(&self.paymaster_input.clone());
28 }
29}