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!("0x60806040526004361061004d575f3560e01c80633930e39114610066578063685114a21461009b578063b269a425146100ba578063b42652e9146100d9578063eba1f981146100ec5761005d565b3661005d5761005b3361010b565b005b61005b3361010b565b348015610071575f80fd5b5061008561008036600461076c565b61015b565b60405161009291906107c4565b60405180910390f35b3480156100a6575f80fd5b5061005b6100b53660046107f0565b61021a565b3480156100c5575f80fd5b5061005b6100d436600461082a565b61024f565b61005b6100e736600461087b565b61010b565b3480156100f7575f80fd5b5061008561010636600461087b565b610290565b345f036101155750565b806001600160a01b03167f22d324652c93739755cf4581508b60875ebdd78c20c0cff5cf8e23452b2996313460405161015091815260200190565b60405180910390a250565b604080518082019091525f8152606060208201527fc5d03356b54a64d088070694ab907941e70a5ea4ae772ff6df7f162d054037b66040518060400160405280858152602001846001600160a01b03168152506040516020016101de929190918252805160208084019190915201516001600160a01b0316604082015260600190565b60408051601f1981840301815291815281516020928301208352805160a08101909152607e80825290916109db90830139602082015292915050565b610222610338565b6102376001600160a01b0383163330846103a7565b610242838383610407565b61024a6104ba565b505050565b610257610338565b61026961026383610290565b826104e4565b6102848261027a602084018461087b565b6020840135610407565b61028c6104ba565b5050565b604080518082019091525f81526060602082015260408051602080820183526001600160a01b038516825291516102fd927fa91a2bac0243280e19cfd0a3ae9d7639a15fa41d49eab3e0bf320c8485cc66a9929101918252516001600160a01b0316602082015260400190565b60408051601f1981840301815291815281516020928301208352805160a0810190915260648082529091610a59908301396020820152919050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c1561037857604051633ee5aeb560e01b815260040160405180910390fd5b6103a560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b906105ab565b565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526104019085906105b2565b50505050565b805f0361041357505050565b604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c68906024015f604051808303815f87803b158015610452575f80fd5b505af1158015610464573d5f803e3d5ffd5b50505050816001600160a01b0316836001600160a01b03167f4203bbd8ffd310b1341275d3ad6597e60a1ab2843f84e28c79e88d6f5da1c94d836040516104ad91815260200190565b60405180910390a3505050565b6103a55f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0061039f565b6001600160a01b037f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba31663137c29fe82610534602082013560408051808201909152308152602081019190915290565b61054460a086016080870161087b565b8651602088015161055860a0890189610894565b6040518863ffffffff1660e01b815260040161057a9796959493929190610906565b5f604051808303815f87803b158015610591575f80fd5b505af11580156105a3573d5f803e3d5ffd5b505050505050565b80825d5050565b5f6105c66001600160a01b03841683610618565b905080515f141580156105ea5750808060200190518101906105e891906109a5565b155b1561024a57604051635274afe760e01b81526001600160a01b03841660048201526024015b60405180910390fd5b606061062583835f61062c565b9392505050565b6060814710156106585760405163cf47918160e01b81524760048201526024810183905260440161060f565b5f80856001600160a01b0316848660405161067391906109c4565b5f6040518083038185875af1925050503d805f81146106ad576040519150601f19603f3d011682016040523d82523d5f602084013e6106b2565b606091505b50915091506106c28683836106cc565b9695505050505050565b6060826106e1576106dc82610728565b610625565b81511580156106f857506001600160a01b0384163b155b1561072157604051639996b31560e01b81526001600160a01b038516600482015260240161060f565b5080610625565b8051156107385780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b0381168114610767575f80fd5b919050565b5f806040838503121561077d575f80fd5b8235915061078d60208401610751565b90509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b60208152815160208201525f60208301516040808401526107e86060840182610796565b949350505050565b5f805f60608486031215610802575f80fd5b61080b84610751565b925061081960208501610751565b929592945050506040919091013590565b5f806040838503121561083b575f80fd5b61084483610751565b9150602083013567ffffffffffffffff81111561085f575f80fd5b830160c08186031215610870575f80fd5b809150509250929050565b5f6020828403121561088b575f80fd5b61062582610751565b5f808335601e198436030181126108a9575f80fd5b83018035915067ffffffffffffffff8211156108c3575f80fd5b6020019150368190038213156108d7575f80fd5b9250929050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160a01b0361091789610751565b168152602088810135818301526040808a0135908301526060808a01359083015287516001600160a01b0316608083015287015160a08201525f61096660c08301886001600160a01b03169052565b8560e0830152610140610100830152610983610140830186610796565b8281036101208401526109978185876108de565b9a9950505050505050505050565b5f602082840312156109b5575f80fd5b81518015158114610625575f80fd5b5f82518060208501845e5f92019182525091905056fe456e7465725769746e657373207769746e65737329456e7465725769746e6573732875696e7432353620726f6c6c7570436861696e49642c6164647265737320726f6c6c7570526563697069656e7429546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c75696e7432353620616d6f756e7429457869745769746e657373207769746e65737329457869745769746e657373286164647265737320686f7374526563697069656e7429546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c75696e7432353620616d6f756e7429a2646970667358221220a82b6f2ece68ba16cfccd79784985d20b0e5014e516fcd73930a3c56f491887b64736f6c634300081a0033");
/// Rollup orders, from pecorino genesis.
pub const RU_ORDERS_BYTECODE: Bytes = bytes!("0x608060405260043610610054575f3560e01c80630828f139146100585780631bbf03a81461008d57806362c06767146100ae578063897bc0d6146100cd5780639181004e146100e0578063f9c50441146100ff575b5f80fd5b348015610063575f80fd5b50610077610072366004610fe9565b610112565b6040516100849190611050565b60405180910390f35b348015610098575f80fd5b506100ac6100a736600461108a565b61024e565b005b3480156100b9575f80fd5b506100ac6100c83660046110ed565b6102c8565b6100ac6100db366004610fe9565b610364565b3480156100eb575f80fd5b506100ac6100fa366004611127565b6103b7565b6100ac61010d366004611199565b610453565b604080518082019091525f81526060602082015281515f816001600160401b0381111561014157610141610e5c565b60405190808252806020026020018201604052801561016a578160200160208202803683370190505b5090505f5b828110156101fe577f988262d9186cf8a1cd1dd5e2cc7bfa353f55a542d86db1fcd06e076a6544250d8582815181106101aa576101aa61127d565b60200260200101516040516020016101c39291906112c8565b604051602081830303815290604052805190602001208282815181106101eb576101eb61127d565b602090810291909101015260010161016f565b508060405160200161021091906112dc565b60408051601f1981840301815291815281516020928301208552805160c081019091526084808252909161168f908301396020840152509092915050565b6102566104b8565b61028561026283610112565b61027f846102708580611311565b61027a908061132f565b610527565b83610709565b7f14b3027353aba71f468d178fdede9ac211a25ae484028823bce1e6700e58e624826040516102b491906113c0565b60405180910390a16102c46107bb565b5050565b6102d06104b8565b6001600160a01b0382166102f6576102f16001600160a01b038416826107e5565b61030a565b61030a6001600160a01b0383168483610884565b816001600160a01b0316836001600160a01b03167fed679328aebf74ede77ae09efcf36e90244f83643dadac1c2d9f0b21a46f6ab78360405161034f91815260200190565b60405180910390a361035f6107bb565b505050565b61036c6104b8565b610375816108e3565b7f14b3027353aba71f468d178fdede9ac211a25ae484028823bce1e6700e58e624816040516103a491906113c0565b60405180910390a16103b46107bb565b50565b6103bf6104b8565b6103e86103cb83610112565b61027f856103d98580611311565b6103e3908061132f565b610a28565b7f80c9b8738a5ff299b770efb55e4372a5fc655294aca7145b3c529c2d89732d626104138280611311565b604001356104336104248480611311565b61042e908061132f565b610af1565b84604051610443939291906113d2565b60405180910390a161035f6107bb565b61045b6104b8565b8242111561047c576040516362b439dd60e11b815260040160405180910390fd5b61048582610be8565b7f80c9b8738a5ff299b770efb55e4372a5fc655294aca7145b3c529c2d89732d62838383604051610443939291906113d2565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c156104f857604051633ee5aeb560e01b815260040160405180910390fd5b61052560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90610c78565b565b8251606090821461054e576040516001621398b960e31b0319815260040160405180910390fd5b816001600160401b0381111561056657610566610e5c565b6040519080825280602002602001820160405280156105aa57816020015b604080518082019091525f80825260208201528152602001906001900390816105845790505b5090505f5b82811015610701578481815181106105c9576105c961127d565b60200260200101515f01516001600160a01b03168484838181106105ef576105ef61127d565b6106059260206040909202019081019150611450565b6001600160a01b03161461062c57604051635f670cf360e11b815260040160405180910390fd5b84818151811061063e5761063e61127d565b60200260200101516020015184848381811061065c5761065c61127d565b905060400201602001351461068457604051635f670cf360e11b815260040160405180910390fd5b60405180604001604052808683815181106106a1576106a161127d565b6020026020010151604001516001600160a01b031681526020018683815181106106cd576106cd61127d565b6020026020010151602001518152508282815181106106ee576106ee61127d565b60209081029190910101526001016105af565b509392505050565b6001600160a01b037f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba31663fe8ec1a76107428380611311565b846107536040860160208701611450565b875160208901516107676040890189611469565b6040518863ffffffff1660e01b81526004016107899796959493929190611521565b5f604051808303815f87803b1580156107a0575f80fd5b505af11580156107b2573d5f803e3d5ffd5b50505050505050565b6105255f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0061051f565b804710156108145760405163cf47918160e01b8152476004820152602481018290526044015b60405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f811461085d576040519150601f19603f3d011682016040523d82523d5f602084013e610862565b606091505b505090508061035f5760405163d6bda27560e01b815260040160405180910390fd5b6040516001600160a01b0383811660248301526044820183905261035f91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050610c7f565b345f5b825181101561035f575f6001600160a01b031683828151811061090b5761090b61127d565b60200260200101515f01516001600160a01b0316036109aa578281815181106109365761093661127d565b6020026020010151602001518261094d919061163a565b91506109a58382815181106109645761096461127d565b6020026020010151602001518483815181106109825761098261127d565b6020026020010151604001516001600160a01b03166107e590919063ffffffff16565b610a20565b610a20338483815181106109c0576109c061127d565b6020026020010151604001518584815181106109de576109de61127d565b6020026020010151602001518685815181106109fc576109fc61127d565b60200260200101515f01516001600160a01b0316610ce0909392919063ffffffff16565b6001016108e6565b6060816001600160401b03811115610a4257610a42610e5c565b604051908082528060200260200182016040528015610a8657816020015b604080518082019091525f8082526020820152815260200190600190039081610a605790505b5090505f5b82811015610701576040518060400160405280866001600160a01b03168152602001858584818110610abf57610abf61127d565b90506040020160200135815250828281518110610ade57610ade61127d565b6020908102919091010152600101610a8b565b6060816001600160401b03811115610b0b57610b0b610e5c565b604051908082528060200260200182016040528015610b4f57816020015b604080518082019091525f8082526020820152815260200190600190039081610b295790505b5090505f5b82811015610be1576040518060400160405280858584818110610b7957610b7961127d565b610b8f9260206040909202019081019150611450565b6001600160a01b03168152602001858584818110610baf57610baf61127d565b90506040020160200135815250828281518110610bce57610bce61127d565b6020908102919091010152600101610b54565b5092915050565b345f5b825181101561035f575f6001600160a01b0316838281518110610c1057610c1061127d565b60200260200101515f01516001600160a01b031603610c5957828181518110610c3b57610c3b61127d565b60200260200101516020015182610c52919061163a565b9150610c70565b610c7033308584815181106109de576109de61127d565b600101610beb565b80825d5050565b5f610c936001600160a01b03841683610d1f565b905080515f14158015610cb7575080806020019051810190610cb59190611659565b155b1561035f57604051635274afe760e01b81526001600160a01b038416600482015260240161080b565b6040516001600160a01b038481166024830152838116604483015260648201839052610d199186918216906323b872dd906084016108b1565b50505050565b6060610d2c83835f610d35565b90505b92915050565b606081471015610d615760405163cf47918160e01b81524760048201526024810183905260440161080b565b5f80856001600160a01b03168486604051610d7c9190611678565b5f6040518083038185875af1925050503d805f8114610db6576040519150601f19603f3d011682016040523d82523d5f602084013e610dbb565b606091505b5091509150610dcb868383610dd7565b925050505b9392505050565b606082610dec57610de782610e33565b610dd0565b8151158015610e0357506001600160a01b0384163b155b15610e2c57604051639996b31560e01b81526001600160a01b038516600482015260240161080b565b5080610dd0565b805115610e435780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b0381118282101715610e9257610e92610e5c565b60405290565b604080519081016001600160401b0381118282101715610e9257610e92610e5c565b604051601f8201601f191681016001600160401b0381118282101715610ee257610ee2610e5c565b604052919050565b5f6001600160401b03821115610f0257610f02610e5c565b5060051b60200190565b80356001600160a01b0381168114610f22575f80fd5b919050565b5f82601f830112610f36575f80fd5b8135610f49610f4482610eea565b610eba565b8082825260208201915060208360071b860101925085831115610f6a575f80fd5b602085015b83811015610fdf5760808188031215610f86575f80fd5b610f8e610e70565b610f9782610f0c565b815260208281013590820152610faf60408301610f0c565b6040820152606082013563ffffffff81168114610fca575f80fd5b60608201528352602090920191608001610f6f565b5095945050505050565b5f60208284031215610ff9575f80fd5b81356001600160401b0381111561100e575f80fd5b61101a84828501610f27565b949350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b60208152815160208201525f602083015160408084015261101a6060840182611022565b5f60608284031215611084575f80fd5b50919050565b5f806040838503121561109b575f80fd5b82356001600160401b038111156110b0575f80fd5b6110bc85828601610f27565b92505060208301356001600160401b038111156110d7575f80fd5b6110e385828601611074565b9150509250929050565b5f805f606084860312156110ff575f80fd5b61110884610f0c565b925061111660208501610f0c565b929592945050506040919091013590565b5f805f60608486031215611139575f80fd5b61114284610f0c565b925060208401356001600160401b0381111561115c575f80fd5b61116886828701610f27565b92505060408401356001600160401b03811115611183575f80fd5b61118f86828701611074565b9150509250925092565b5f805f606084860312156111ab575f80fd5b8335925060208401356001600160401b038111156111c7575f80fd5b8401601f810186136111d7575f80fd5b80356111e5610f4482610eea565b8082825260208201915060208360061b850101925088831115611206575f80fd5b6020840193505b82841015611254576040848a031215611224575f80fd5b61122c610e98565b61123585610f0c565b815260208581013581830152908352604090940193919091019061120d565b945050505060408401356001600160401b03811115611271575f80fd5b61118f86828701610f27565b634e487b7160e01b5f52603260045260245ffd5b80516001600160a01b039081168352602080830151908401526040808301519091169083015260609081015163ffffffff16910152565b82815260a08101610dd06020830184611291565b81515f90829060208501835b828110156113065781518452602093840193909101906001016112e8565b509195945050505050565b5f8235605e19833603018112611325575f80fd5b9190910192915050565b5f808335601e19843603018112611344575f80fd5b8301803591506001600160401b0382111561135d575f80fd5b6020019150600681901b3603821315611374575f80fd5b9250929050565b5f8151808452602084019350602083015f5b828110156113b6576113a0868351611291565b608095909501946020919091019060010161138d565b5093949350505050565b602081525f610d2c602083018461137b565b5f60608201858352606060208401528085518083526080850191506020870192505f5b818110156114315761141b83855180516001600160a01b03168252602090810151910152565b60209390930192604092909201916001016113f5565b50508381036040850152611445818661137b565b979650505050505050565b5f60208284031215611460575f80fd5b610d2c82610f0c565b5f808335601e1984360301811261147e575f80fd5b8301803591506001600160401b03821115611497575f80fd5b602001915036819003821315611374575f80fd5b5f8151808452602084019350602083015f5b828110156113b6576114e386835180516001600160a01b03168252602090810151910152565b60409590950194602091909101906001016114bd565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60c081525f61012082018935601e198b360301811261153e575f80fd5b8a016020810190356001600160401b03811115611559575f80fd5b8060061b360382131561156a575f80fd5b606060c086015291829052905f9061014085015b818310156115b7576001600160a01b0361159785610f0c565b16815260208481013590820152604093840193600193909301920161157e565b60208d81013560e088015260408e013561010088018190528783039188019190915293506115e5818d6114ab565b93505050506115ff60408401896001600160a01b03169052565b86606084015282810360808401526116178187611022565b905082810360a084015261162c8185876114f9565b9a9950505050505050505050565b81810381811115610d2f57634e487b7160e01b5f52601160045260245ffd5b5f60208284031215611669575f80fd5b81518015158114610dd0575f80fd5b5f82518060208501845e5f92019182525091905056fe4f75747075745b5d206f757470757473294f7574707574286164647265737320746f6b656e2c75696e7432353620616d6f756e742c6164647265737320726563697069656e742c75696e74333220636861696e496429546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c75696e7432353620616d6f756e7429a2646970667358221220322fe8b32453c17a0efd4f702e415163224990591aefcb85e698039547a4393764736f6c634300081a0033");