use alloy::{
    primitives::{bytes, Bytes},
    providers::Provider,
};
use signet_constants::test_utils::{RU_ORDERS, RU_PASSAGE};
use signet_zenith::{RollupOrders, RollupPassage};

/// Get an instance of the pre-deployed Rollup Passage contract, deployed at the local testing address [`RU_PASSAGE`].
pub fn passage<P: Provider>(p: P) -> RollupPassage::RollupPassageInstance<P> {
    RollupPassage::RollupPassageInstance::new(RU_PASSAGE, p)
}

/// Get an instance of the pre-deployed Rollup Orders contract, deployed at the local testing address [`RU_ORDERS`].
pub fn orders<P: Provider>(p: P) -> RollupOrders::RollupOrdersInstance<P> {
    RollupOrders::RollupOrdersInstance::new(RU_ORDERS, p)
}

/// Rollup passage bytecode, from pecorino genesis.
pub const RU_PASSAGE_BYTECODE: Bytes = bytes!("[encoded data, 5606 characters]");

/// Rollup orders, from pecorino genesis.
pub const RU_ORDERS_BYTECODE: Bytes = bytes!("[encoded data, 11922 characters]");

/// The HostOrders contract bytecode.
pub const HOST_ORDERS_BYTECODE: Bytes = bytes!("[encoded data, 12228 characters]");

/// The Host Passage contract bytecode.
pub const HOST_PASSAGE_BYTECODE: Bytes = bytes!("[encoded data, 11948 characters]");
