#![allow(clippy::too_many_arguments)]
#![allow(missing_docs)]
use alloy_primitives::{Address, Bytes, FixedBytes, U256};
mod zenith {
use super::*;
alloy_sol_types::sol!(
#[derive(Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
#[sol(rpc)]
Zenith,
"abi/Zenith.json"
);
impl Copy for Zenith::BlockHeader {}
impl Copy for Zenith::BlockSubmitted {}
impl Copy for Zenith::SequencerSet {}
impl Copy for Zenith::BadSignature {}
impl Copy for Zenith::OneRollupBlockPerHostBlock {}
impl Copy for Zenith::OnlySequencerAdmin {}
impl Copy for Zenith::IncorrectHostBlock {}
impl Zenith::BlockSubmitted {
pub const fn sequencer(&self) -> Address {
self.sequencer
}
pub const fn rollup_chain_id(&self) -> u64 {
self.rollupChainId.as_limbs()[0]
}
pub const fn gas_limit(&self) -> u64 {
self.gasLimit.as_limbs()[0]
}
pub const fn reward_address(&self) -> Address {
self.rewardAddress
}
pub const fn block_data_hash(&self) -> FixedBytes<32> {
self.blockDataHash
}
pub const fn to_header(self, host_block_number: U256) -> Zenith::BlockHeader {
Zenith::BlockHeader::from_block_submitted(self, host_block_number)
}
}
impl Zenith::BlockHeader {
pub const fn from_block_submitted(
host_block_submitted: Zenith::BlockSubmitted,
host_block_number: U256,
) -> Zenith::BlockHeader {
Zenith::BlockHeader {
rollupChainId: host_block_submitted.rollupChainId,
hostBlockNumber: host_block_number,
gasLimit: host_block_submitted.gasLimit,
rewardAddress: host_block_submitted.rewardAddress,
blockDataHash: host_block_submitted.blockDataHash,
}
}
pub const fn host_block_number(&self) -> u64 {
self.hostBlockNumber.as_limbs()[0]
}
pub const fn chain_id(&self) -> u64 {
self.rollupChainId.as_limbs()[0]
}
pub const fn gas_limit(&self) -> u64 {
self.gasLimit.as_limbs()[0]
}
pub const fn reward_address(&self) -> Address {
self.rewardAddress
}
pub const fn block_data_hash(&self) -> FixedBytes<32> {
self.blockDataHash
}
}
}
mod passage {
use super::*;
alloy_sol_types::sol!(
#[derive(Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
#[sol(rpc)]
Passage,
"abi/Passage.json"
);
impl Copy for Passage::EnterConfigured {}
impl Copy for Passage::Withdrawal {}
impl Copy for Passage::OnlyTokenAdmin {}
impl Copy for Passage::Enter {}
impl Copy for Passage::EnterToken {}
impl Copy for Passage::DisallowedEnter {}
impl Copy for Passage::FailedCall {}
impl Copy for Passage::InsufficientBalance {}
impl Copy for Passage::SafeERC20FailedOperation {}
impl Copy for Passage::AddressEmptyCode {}
impl Copy for Passage::PassageEvents {}
impl Clone for Passage::PassageEvents {
fn clone(&self) -> Self {
*self
}
}
impl Passage::EnterToken {
pub const fn rollup_chain_id(&self) -> u64 {
self.rollupChainId.as_limbs()[0]
}
pub const fn token(&self) -> Address {
self.token
}
pub const fn recipient(&self) -> Address {
self.rollupRecipient
}
pub const fn amount(&self) -> U256 {
self.amount
}
}
impl Passage::Enter {
pub const fn rollup_chain_id(&self) -> u64 {
self.rollupChainId.as_limbs()[0]
}
pub const fn recipient(&self) -> Address {
self.rollupRecipient
}
pub const fn amount(&self) -> U256 {
self.amount
}
}
impl Passage::Withdrawal {
pub const fn token(&self) -> Address {
self.token
}
pub const fn recipient(&self) -> Address {
self.recipient
}
pub const fn amount(&self) -> U256 {
self.amount
}
}
impl Passage::EnterConfigured {
pub const fn token(&self) -> Address {
self.token
}
pub const fn can_enter(&self) -> bool {
self.canEnter
}
}
}
mod orders {
use super::*;
alloy_sol_types::sol!(
#[derive(Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
#[sol(rpc)]
Orders,
"abi/RollupOrders.json"
);
impl Copy for IOrders::Input {}
impl Copy for IOrders::Output {}
impl Copy for Orders::Sweep {}
impl Copy for Orders::InsufficientBalance {}
impl Copy for Orders::AddressEmptyCode {}
impl Copy for Orders::LengthMismatch {}
impl Copy for Orders::OrderExpired {}
impl Copy for Orders::OutputMismatch {}
impl Copy for Orders::SafeERC20FailedOperation {}
impl Clone for Orders::OrdersEvents {
fn clone(&self) -> Self {
match self {
Self::Order(event) => Self::Order(event.clone()),
Self::Sweep(event) => Self::Sweep(*event),
Self::Filled(event) => Self::Filled(event.clone()),
}
}
}
impl IOrders::Input {
pub const fn token(&self) -> Address {
self.token
}
pub const fn amount(&self) -> u64 {
self.amount.as_limbs()[0]
}
}
impl IOrders::Output {
pub const fn token(&self) -> Address {
self.token
}
pub const fn amount(&self) -> u64 {
self.amount.as_limbs()[0]
}
pub const fn recipient(&self) -> Address {
self.recipient
}
pub const fn chain_id(&self) -> u32 {
self.chainId
}
}
impl Orders::Order {
pub fn inputs(&self) -> &[IOrders::Input] {
&self.inputs
}
pub fn outputs(&self) -> &[IOrders::Output] {
&self.outputs
}
pub const fn deadline(&self) -> u64 {
self.deadline.as_limbs()[0]
}
}
impl Orders::Sweep {
pub const fn recipient(&self) -> Address {
self.recipient
}
pub const fn token(&self) -> Address {
self.token
}
pub const fn amount(&self) -> u64 {
self.amount.as_limbs()[0]
}
}
impl Orders::Filled {
pub fn outputs(&self) -> &[IOrders::Output] {
self.outputs.as_slice()
}
}
}
mod transactor {
use super::*;
alloy_sol_types::sol!(
#[derive(Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
#[sol(rpc)]
Transactor,
"abi/Transactor.json"
);
impl Copy for Transactor::GasConfigured {}
impl Clone for Transactor::TransactorEvents {
fn clone(&self) -> Self {
match self {
Transactor::TransactorEvents::Transact(event) => {
Transactor::TransactorEvents::Transact(event.clone())
}
Transactor::TransactorEvents::GasConfigured(event) => {
Transactor::TransactorEvents::GasConfigured(*event)
}
}
}
}
impl Transactor::Transact {
pub const fn rollup_chain_id(&self) -> u64 {
self.rollupChainId.as_limbs()[0]
}
pub const fn sender(&self) -> Address {
self.sender
}
pub const fn to(&self) -> Address {
self.to
}
pub const fn data(&self) -> &Bytes {
&self.data
}
pub const fn value(&self) -> U256 {
self.value
}
pub fn max_fee_per_gas(&self) -> u128 {
self.maxFeePerGas.to::<u128>()
}
pub fn gas(&self) -> u128 {
self.gas.to::<u128>()
}
}
}
mod rollup_passage {
alloy_sol_types::sol!(
#[derive(Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
#[sol(rpc)]
RollupPassage,
"abi/RollupPassage.json"
);
impl Copy for RollupPassage::Exit {}
impl Copy for RollupPassage::ExitToken {}
impl Copy for RollupPassage::AddressEmptyCode {}
impl Copy for RollupPassage::InsufficientBalance {}
impl Copy for RollupPassage::SafeERC20FailedOperation {}
impl Copy for RollupPassage::RollupPassageEvents {}
impl Clone for RollupPassage::RollupPassageEvents {
fn clone(&self) -> Self {
*self
}
}
}
pub use zenith::Zenith;
#[allow(non_snake_case)]
pub mod RollupOrders {
pub use super::orders::Orders::*;
pub use super::orders::IOrders::*;
pub use super::orders::ISignatureTransfer::*;
pub use super::orders::UsesPermit2::*;
pub use super::orders::Orders::OrdersCalls as RollupOrdersCalls;
pub use super::orders::Orders::OrdersErrors as RollupOrdersErrors;
pub use super::orders::Orders::OrdersEvents as RollupOrdersEvents;
pub use super::orders::Orders::OrdersInstance as RollupOrdersInstance;
}
#[allow(non_snake_case)]
pub mod HostOrders {
pub use super::orders::Orders::*;
pub use super::orders::IOrders::*;
pub use super::orders::ISignatureTransfer::*;
pub use super::orders::UsesPermit2::*;
pub use super::orders::Orders::OrdersCalls as HostOrdersCalls;
pub use super::orders::Orders::OrdersErrors as HostOrdersErrors;
pub use super::orders::Orders::OrdersEvents as HostOrdersEvents;
pub use super::orders::Orders::OrdersInstance as HostOrdersInstance;
}
#[allow(non_snake_case)]
pub mod Passage {
pub use super::passage::Passage::*;
pub use super::passage::ISignatureTransfer::*;
pub use super::passage::UsesPermit2::*;
}
pub use transactor::Transactor;
#[allow(non_snake_case)]
pub mod RollupPassage {
pub use super::rollup_passage::RollupPassage::*;
pub use super::rollup_passage::ISignatureTransfer::*;
pub use super::rollup_passage::UsesPermit2::*;
}