pub fn payer(&self) -> Address {
        match &self.common_data {
            ExecuteTransactionCommon::L1(data) => data.sender,
            ExecuteTransactionCommon::L2(data) => {
                let paymaster = data.paymaster_params.paymaster;
                if paymaster == Address::default() {
                    data.initiator_address
                } else {
                    paymaster
                }
            }
            ExecuteTransactionCommon::ProtocolUpgrade(data) => data.sender,
        }
    }
Returns the payer for L2 transaction and 0 for L1 transactions
core/lib/types/src/lib.rs