eigenlayer_contract_deployer/bindings/core/
signature_checker_lib.rs

1#![allow(clippy::all, clippy::pedantic, clippy::nursery, warnings, unknown_lints, rustdoc::all, elided_lifetimes_in_paths)]
2use SignatureCheckerLib::*;
3
4/**
5
6Generated by the following Solidity interface...
7```solidity
8interface SignatureCheckerLib {
9    error InvalidSignature();
10
11    function isValidSignature(address signer, bytes32 digestHash, bytes memory signature) external view;
12}
13```
14
15...which was generated by the following JSON ABI:
16```json
17[
18  {
19    "type": "function",
20    "name": "isValidSignature",
21    "inputs": [
22      {
23        "name": "signer",
24        "type": "address",
25        "internalType": "address"
26      },
27      {
28        "name": "digestHash",
29        "type": "bytes32",
30        "internalType": "bytes32"
31      },
32      {
33        "name": "signature",
34        "type": "bytes",
35        "internalType": "bytes"
36      }
37    ],
38    "outputs": [],
39    "stateMutability": "view"
40  },
41  {
42    "type": "error",
43    "name": "InvalidSignature",
44    "inputs": []
45  }
46]
47```*/
48#[allow(
49    non_camel_case_types,
50    non_snake_case,
51    clippy::pub_underscore_fields,
52    clippy::style,
53    clippy::empty_structs_with_brackets
54)]
55pub mod SignatureCheckerLib {
56    use super::*;
57    use alloy::sol_types as alloy_sol_types;
58    /// The creation / init bytecode of the contract.
59    ///
60    /// ```text
61    ///0x610482610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610610034575f3560e01c8063238a4d1e14610038575b5f5ffd5b61004b6100463660046102d2565b61004d565b005b61005883838361007a565b61007557604051638baa579f60e01b815260040160405180910390fd5b505050565b5f5f5f61008785856100d8565b90925090505f81600481111561009f5761009f6103ab565b1480156100bd5750856001600160a01b0316826001600160a01b0316145b806100ce57506100ce86868661011a565b9695505050505050565b5f5f825160410361010c576020830151604084015160608501515f1a61010087828585610201565b94509450505050610113565b505f905060025b9250929050565b5f5f5f856001600160a01b0316631626ba7e60e01b86866040516024016101429291906103e1565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610180919061041a565b5f60405180830381855afa9150503d805f81146101b8576040519150601f19603f3d011682016040523d82523d5f602084013e6101bd565b606091505b50915091508180156101d157506020815110155b80156100ce57508051630b135d3f60e11b906101f69083016020908101908401610435565b149695505050505050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561023657505f905060036102b5565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610287573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381166102af575f600192509250506102b5565b91505f90505b94509492505050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f606084860312156102e4575f5ffd5b83356001600160a01b03811681146102fa575f5ffd5b925060208401359150604084013567ffffffffffffffff81111561031c575f5ffd5b8401601f8101861361032c575f5ffd5b803567ffffffffffffffff811115610346576103466102be565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610375576103756102be565b60405281815282820160200188101561038c575f5ffd5b816020840160208301375f602083830101528093505050509250925092565b634e487b7160e01b5f52602160045260245ffd5b5f5b838110156103d95781810151838201526020016103c1565b50505f910152565b828152604060208201525f82518060408401526104058160608501602087016103bf565b601f01601f1916919091016060019392505050565b5f825161042b8184602087016103bf565b9190910192915050565b5f60208284031215610445575f5ffd5b505191905056fea2646970667358221220647e280f8c2ed1f6f06ecf58b87acacad2cbc8189375bcc0b134d278ac85afa064736f6c634300081b0033
62    /// ```
63    #[rustfmt::skip]
64    #[allow(clippy::all)]
65    pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
66        b"a\x04\x82a\x004`\x0B\x82\x82\x829\x80Q_\x1A`s\x14`(WcNH{q`\xE0\x1B_R_`\x04R`$_\xFD[0_R`s\x81S\x82\x81\xF3\xFEs\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\x046\x10a\x004W_5`\xE0\x1C\x80c#\x8AM\x1E\x14a\08W[__\xFD[a\0Ka\0F6`\x04a\x02\xD2V[a\0MV[\0[a\0X\x83\x83\x83a\0zV[a\0uW`@Qc\x8B\xAAW\x9F`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPV[___a\0\x87\x85\x85a\0\xD8V[\x90\x92P\x90P_\x81`\x04\x81\x11\x15a\0\x9FWa\0\x9Fa\x03\xABV[\x14\x80\x15a\0\xBDWP\x85`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x14[\x80a\0\xCEWPa\0\xCE\x86\x86\x86a\x01\x1AV[\x96\x95PPPPPPV[__\x82Q`A\x03a\x01\x0CW` \x83\x01Q`@\x84\x01Q``\x85\x01Q_\x1Aa\x01\0\x87\x82\x85\x85a\x02\x01V[\x94P\x94PPPPa\x01\x13V[P_\x90P`\x02[\x92P\x92\x90PV[___\x85`\x01`\x01`\xA0\x1B\x03\x16c\x16&\xBA~`\xE0\x1B\x86\x86`@Q`$\x01a\x01B\x92\x91\x90a\x03\xE1V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q`\x01`\x01`\xE0\x1B\x03\x16`\x01`\x01`\xE0\x1B\x03\x19\x90\x94\x16\x93\x90\x93\x17\x90\x92R\x90Qa\x01\x80\x91\x90a\x04\x1AV[_`@Q\x80\x83\x03\x81\x85Z\xFA\x91PP=\x80_\x81\x14a\x01\xB8W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x01\xBDV[``\x91P[P\x91P\x91P\x81\x80\x15a\x01\xD1WP` \x81Q\x10\x15[\x80\x15a\0\xCEWP\x80Qc\x0B\x13]?`\xE1\x1B\x90a\x01\xF6\x90\x83\x01` \x90\x81\x01\x90\x84\x01a\x045V[\x14\x96\x95PPPPPPV[_\x80\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF]WnsW\xA4P\x1D\xDF\xE9/Fh\x1B \xA0\x83\x11\x15a\x026WP_\x90P`\x03a\x02\xB5V[`@\x80Q_\x80\x82R` \x82\x01\x80\x84R\x89\x90R`\xFF\x88\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x86\x90R`\x80\x81\x01\x85\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a\x02\x87W=__>=_\xFD[PP`@Q`\x1F\x19\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16a\x02\xAFW_`\x01\x92P\x92PPa\x02\xB5V[\x91P_\x90P[\x94P\x94\x92PPPV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[___``\x84\x86\x03\x12\x15a\x02\xE4W__\xFD[\x835`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x02\xFAW__\xFD[\x92P` \x84\x015\x91P`@\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x03\x1CW__\xFD[\x84\x01`\x1F\x81\x01\x86\x13a\x03,W__\xFD[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x03FWa\x03Fa\x02\xBEV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x03uWa\x03ua\x02\xBEV[`@R\x81\x81R\x82\x82\x01` \x01\x88\x10\x15a\x03\x8CW__\xFD[\x81` \x84\x01` \x83\x017_` \x83\x83\x01\x01R\x80\x93PPPP\x92P\x92P\x92V[cNH{q`\xE0\x1B_R`!`\x04R`$_\xFD[_[\x83\x81\x10\x15a\x03\xD9W\x81\x81\x01Q\x83\x82\x01R` \x01a\x03\xC1V[PP_\x91\x01RV[\x82\x81R`@` \x82\x01R_\x82Q\x80`@\x84\x01Ra\x04\x05\x81``\x85\x01` \x87\x01a\x03\xBFV[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01``\x01\x93\x92PPPV[_\x82Qa\x04+\x81\x84` \x87\x01a\x03\xBFV[\x91\x90\x91\x01\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x04EW__\xFD[PQ\x91\x90PV\xFE\xA2dipfsX\"\x12 d~(\x0F\x8C.\xD1\xF6\xF0n\xCFX\xB8z\xCA\xCA\xD2\xCB\xC8\x18\x93u\xBC\xC0\xB14\xD2x\xAC\x85\xAF\xA0dsolcC\0\x08\x1B\x003",
67    );
68    /// The runtime bytecode of the contract, as deployed on the network.
69    ///
70    /// ```text
71    ///0x7300000000000000000000000000000000000000003014608060405260043610610034575f3560e01c8063238a4d1e14610038575b5f5ffd5b61004b6100463660046102d2565b61004d565b005b61005883838361007a565b61007557604051638baa579f60e01b815260040160405180910390fd5b505050565b5f5f5f61008785856100d8565b90925090505f81600481111561009f5761009f6103ab565b1480156100bd5750856001600160a01b0316826001600160a01b0316145b806100ce57506100ce86868661011a565b9695505050505050565b5f5f825160410361010c576020830151604084015160608501515f1a61010087828585610201565b94509450505050610113565b505f905060025b9250929050565b5f5f5f856001600160a01b0316631626ba7e60e01b86866040516024016101429291906103e1565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610180919061041a565b5f60405180830381855afa9150503d805f81146101b8576040519150601f19603f3d011682016040523d82523d5f602084013e6101bd565b606091505b50915091508180156101d157506020815110155b80156100ce57508051630b135d3f60e11b906101f69083016020908101908401610435565b149695505050505050565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561023657505f905060036102b5565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610287573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b0381166102af575f600192509250506102b5565b91505f90505b94509492505050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f606084860312156102e4575f5ffd5b83356001600160a01b03811681146102fa575f5ffd5b925060208401359150604084013567ffffffffffffffff81111561031c575f5ffd5b8401601f8101861361032c575f5ffd5b803567ffffffffffffffff811115610346576103466102be565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610375576103756102be565b60405281815282820160200188101561038c575f5ffd5b816020840160208301375f602083830101528093505050509250925092565b634e487b7160e01b5f52602160045260245ffd5b5f5b838110156103d95781810151838201526020016103c1565b50505f910152565b828152604060208201525f82518060408401526104058160608501602087016103bf565b601f01601f1916919091016060019392505050565b5f825161042b8184602087016103bf565b9190910192915050565b5f60208284031215610445575f5ffd5b505191905056fea2646970667358221220647e280f8c2ed1f6f06ecf58b87acacad2cbc8189375bcc0b134d278ac85afa064736f6c634300081b0033
72    /// ```
73    #[rustfmt::skip]
74    #[allow(clippy::all)]
75    pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
76        b"s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x000\x14`\x80`@R`\x046\x10a\x004W_5`\xE0\x1C\x80c#\x8AM\x1E\x14a\08W[__\xFD[a\0Ka\0F6`\x04a\x02\xD2V[a\0MV[\0[a\0X\x83\x83\x83a\0zV[a\0uW`@Qc\x8B\xAAW\x9F`\xE0\x1B\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[PPPV[___a\0\x87\x85\x85a\0\xD8V[\x90\x92P\x90P_\x81`\x04\x81\x11\x15a\0\x9FWa\0\x9Fa\x03\xABV[\x14\x80\x15a\0\xBDWP\x85`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x14[\x80a\0\xCEWPa\0\xCE\x86\x86\x86a\x01\x1AV[\x96\x95PPPPPPV[__\x82Q`A\x03a\x01\x0CW` \x83\x01Q`@\x84\x01Q``\x85\x01Q_\x1Aa\x01\0\x87\x82\x85\x85a\x02\x01V[\x94P\x94PPPPa\x01\x13V[P_\x90P`\x02[\x92P\x92\x90PV[___\x85`\x01`\x01`\xA0\x1B\x03\x16c\x16&\xBA~`\xE0\x1B\x86\x86`@Q`$\x01a\x01B\x92\x91\x90a\x03\xE1V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x91\x81R` \x82\x01\x80Q`\x01`\x01`\xE0\x1B\x03\x16`\x01`\x01`\xE0\x1B\x03\x19\x90\x94\x16\x93\x90\x93\x17\x90\x92R\x90Qa\x01\x80\x91\x90a\x04\x1AV[_`@Q\x80\x83\x03\x81\x85Z\xFA\x91PP=\x80_\x81\x14a\x01\xB8W`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=_` \x84\x01>a\x01\xBDV[``\x91P[P\x91P\x91P\x81\x80\x15a\x01\xD1WP` \x81Q\x10\x15[\x80\x15a\0\xCEWP\x80Qc\x0B\x13]?`\xE1\x1B\x90a\x01\xF6\x90\x83\x01` \x90\x81\x01\x90\x84\x01a\x045V[\x14\x96\x95PPPPPPV[_\x80\x7F\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF]WnsW\xA4P\x1D\xDF\xE9/Fh\x1B \xA0\x83\x11\x15a\x026WP_\x90P`\x03a\x02\xB5V[`@\x80Q_\x80\x82R` \x82\x01\x80\x84R\x89\x90R`\xFF\x88\x16\x92\x82\x01\x92\x90\x92R``\x81\x01\x86\x90R`\x80\x81\x01\x85\x90R`\x01\x90`\xA0\x01` `@Q` \x81\x03\x90\x80\x84\x03\x90\x85Z\xFA\x15\x80\x15a\x02\x87W=__>=_\xFD[PP`@Q`\x1F\x19\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16a\x02\xAFW_`\x01\x92P\x92PPa\x02\xB5V[\x91P_\x90P[\x94P\x94\x92PPPV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[___``\x84\x86\x03\x12\x15a\x02\xE4W__\xFD[\x835`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x02\xFAW__\xFD[\x92P` \x84\x015\x91P`@\x84\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x03\x1CW__\xFD[\x84\x01`\x1F\x81\x01\x86\x13a\x03,W__\xFD[\x805g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x03FWa\x03Fa\x02\xBEV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x82\x82\x10\x17\x15a\x03uWa\x03ua\x02\xBEV[`@R\x81\x81R\x82\x82\x01` \x01\x88\x10\x15a\x03\x8CW__\xFD[\x81` \x84\x01` \x83\x017_` \x83\x83\x01\x01R\x80\x93PPPP\x92P\x92P\x92V[cNH{q`\xE0\x1B_R`!`\x04R`$_\xFD[_[\x83\x81\x10\x15a\x03\xD9W\x81\x81\x01Q\x83\x82\x01R` \x01a\x03\xC1V[PP_\x91\x01RV[\x82\x81R`@` \x82\x01R_\x82Q\x80`@\x84\x01Ra\x04\x05\x81``\x85\x01` \x87\x01a\x03\xBFV[`\x1F\x01`\x1F\x19\x16\x91\x90\x91\x01``\x01\x93\x92PPPV[_\x82Qa\x04+\x81\x84` \x87\x01a\x03\xBFV[\x91\x90\x91\x01\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x04EW__\xFD[PQ\x91\x90PV\xFE\xA2dipfsX\"\x12 d~(\x0F\x8C.\xD1\xF6\xF0n\xCFX\xB8z\xCA\xCA\xD2\xCB\xC8\x18\x93u\xBC\xC0\xB14\xD2x\xAC\x85\xAF\xA0dsolcC\0\x08\x1B\x003",
77    );
78    #[derive(serde::Serialize, serde::Deserialize)]
79    #[derive(Default, Debug, PartialEq, Eq, Hash)]
80    /**Custom error with signature `InvalidSignature()` and selector `0x8baa579f`.
81```solidity
82error InvalidSignature();
83```*/
84    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
85    #[derive(Clone)]
86    pub struct InvalidSignature;
87    #[allow(
88        non_camel_case_types,
89        non_snake_case,
90        clippy::pub_underscore_fields,
91        clippy::style
92    )]
93    const _: () = {
94        use alloy::sol_types as alloy_sol_types;
95        #[doc(hidden)]
96        type UnderlyingSolTuple<'a> = ();
97        #[doc(hidden)]
98        type UnderlyingRustTuple<'a> = ();
99        #[cfg(test)]
100        #[allow(dead_code, unreachable_patterns)]
101        fn _type_assertion(
102            _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
103        ) {
104            match _t {
105                alloy_sol_types::private::AssertTypeEq::<
106                    <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
107                >(_) => {}
108            }
109        }
110        #[automatically_derived]
111        #[doc(hidden)]
112        impl ::core::convert::From<InvalidSignature> for UnderlyingRustTuple<'_> {
113            fn from(value: InvalidSignature) -> Self {
114                ()
115            }
116        }
117        #[automatically_derived]
118        #[doc(hidden)]
119        impl ::core::convert::From<UnderlyingRustTuple<'_>> for InvalidSignature {
120            fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
121                Self
122            }
123        }
124        #[automatically_derived]
125        impl alloy_sol_types::SolError for InvalidSignature {
126            type Parameters<'a> = UnderlyingSolTuple<'a>;
127            type Token<'a> = <Self::Parameters<
128                'a,
129            > as alloy_sol_types::SolType>::Token<'a>;
130            const SIGNATURE: &'static str = "InvalidSignature()";
131            const SELECTOR: [u8; 4] = [139u8, 170u8, 87u8, 159u8];
132            #[inline]
133            fn new<'a>(
134                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
135            ) -> Self {
136                tuple.into()
137            }
138            #[inline]
139            fn tokenize(&self) -> Self::Token<'_> {
140                ()
141            }
142            #[inline]
143            fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
144                <Self::Parameters<
145                    '_,
146                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
147                    .map(Self::new)
148            }
149        }
150    };
151    #[derive(serde::Serialize, serde::Deserialize)]
152    #[derive(Default, Debug, PartialEq, Eq, Hash)]
153    /**Function with signature `isValidSignature(address,bytes32,bytes)` and selector `0x238a4d1e`.
154```solidity
155function isValidSignature(address signer, bytes32 digestHash, bytes memory signature) external view;
156```*/
157    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
158    #[derive(Clone)]
159    pub struct isValidSignatureCall {
160        #[allow(missing_docs)]
161        pub signer: alloy::sol_types::private::Address,
162        #[allow(missing_docs)]
163        pub digestHash: alloy::sol_types::private::FixedBytes<32>,
164        #[allow(missing_docs)]
165        pub signature: alloy::sol_types::private::Bytes,
166    }
167    ///Container type for the return parameters of the [`isValidSignature(address,bytes32,bytes)`](isValidSignatureCall) function.
168    #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
169    #[derive(Clone)]
170    pub struct isValidSignatureReturn {}
171    #[allow(
172        non_camel_case_types,
173        non_snake_case,
174        clippy::pub_underscore_fields,
175        clippy::style
176    )]
177    const _: () = {
178        use alloy::sol_types as alloy_sol_types;
179        {
180            #[doc(hidden)]
181            type UnderlyingSolTuple<'a> = (
182                alloy::sol_types::sol_data::Address,
183                alloy::sol_types::sol_data::FixedBytes<32>,
184                alloy::sol_types::sol_data::Bytes,
185            );
186            #[doc(hidden)]
187            type UnderlyingRustTuple<'a> = (
188                alloy::sol_types::private::Address,
189                alloy::sol_types::private::FixedBytes<32>,
190                alloy::sol_types::private::Bytes,
191            );
192            #[cfg(test)]
193            #[allow(dead_code, unreachable_patterns)]
194            fn _type_assertion(
195                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
196            ) {
197                match _t {
198                    alloy_sol_types::private::AssertTypeEq::<
199                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
200                    >(_) => {}
201                }
202            }
203            #[automatically_derived]
204            #[doc(hidden)]
205            impl ::core::convert::From<isValidSignatureCall>
206            for UnderlyingRustTuple<'_> {
207                fn from(value: isValidSignatureCall) -> Self {
208                    (value.signer, value.digestHash, value.signature)
209                }
210            }
211            #[automatically_derived]
212            #[doc(hidden)]
213            impl ::core::convert::From<UnderlyingRustTuple<'_>>
214            for isValidSignatureCall {
215                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
216                    Self {
217                        signer: tuple.0,
218                        digestHash: tuple.1,
219                        signature: tuple.2,
220                    }
221                }
222            }
223        }
224        {
225            #[doc(hidden)]
226            type UnderlyingSolTuple<'a> = ();
227            #[doc(hidden)]
228            type UnderlyingRustTuple<'a> = ();
229            #[cfg(test)]
230            #[allow(dead_code, unreachable_patterns)]
231            fn _type_assertion(
232                _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
233            ) {
234                match _t {
235                    alloy_sol_types::private::AssertTypeEq::<
236                        <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
237                    >(_) => {}
238                }
239            }
240            #[automatically_derived]
241            #[doc(hidden)]
242            impl ::core::convert::From<isValidSignatureReturn>
243            for UnderlyingRustTuple<'_> {
244                fn from(value: isValidSignatureReturn) -> Self {
245                    ()
246                }
247            }
248            #[automatically_derived]
249            #[doc(hidden)]
250            impl ::core::convert::From<UnderlyingRustTuple<'_>>
251            for isValidSignatureReturn {
252                fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
253                    Self {}
254                }
255            }
256        }
257        impl isValidSignatureReturn {
258            fn _tokenize(
259                &self,
260            ) -> <isValidSignatureCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
261                ()
262            }
263        }
264        #[automatically_derived]
265        impl alloy_sol_types::SolCall for isValidSignatureCall {
266            type Parameters<'a> = (
267                alloy::sol_types::sol_data::Address,
268                alloy::sol_types::sol_data::FixedBytes<32>,
269                alloy::sol_types::sol_data::Bytes,
270            );
271            type Token<'a> = <Self::Parameters<
272                'a,
273            > as alloy_sol_types::SolType>::Token<'a>;
274            type Return = isValidSignatureReturn;
275            type ReturnTuple<'a> = ();
276            type ReturnToken<'a> = <Self::ReturnTuple<
277                'a,
278            > as alloy_sol_types::SolType>::Token<'a>;
279            const SIGNATURE: &'static str = "isValidSignature(address,bytes32,bytes)";
280            const SELECTOR: [u8; 4] = [35u8, 138u8, 77u8, 30u8];
281            #[inline]
282            fn new<'a>(
283                tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
284            ) -> Self {
285                tuple.into()
286            }
287            #[inline]
288            fn tokenize(&self) -> Self::Token<'_> {
289                (
290                    <alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
291                        &self.signer,
292                    ),
293                    <alloy::sol_types::sol_data::FixedBytes<
294                        32,
295                    > as alloy_sol_types::SolType>::tokenize(&self.digestHash),
296                    <alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
297                        &self.signature,
298                    ),
299                )
300            }
301            #[inline]
302            fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
303                isValidSignatureReturn::_tokenize(ret)
304            }
305            #[inline]
306            fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
307                <Self::ReturnTuple<
308                    '_,
309                > as alloy_sol_types::SolType>::abi_decode_sequence(data)
310                    .map(Into::into)
311            }
312            #[inline]
313            fn abi_decode_returns_validate(
314                data: &[u8],
315            ) -> alloy_sol_types::Result<Self::Return> {
316                <Self::ReturnTuple<
317                    '_,
318                > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
319                    .map(Into::into)
320            }
321        }
322    };
323    ///Container for all the [`SignatureCheckerLib`](self) function calls.
324    #[derive(serde::Serialize, serde::Deserialize)]
325    #[derive()]
326    pub enum SignatureCheckerLibCalls {
327        #[allow(missing_docs)]
328        isValidSignature(isValidSignatureCall),
329    }
330    #[automatically_derived]
331    impl SignatureCheckerLibCalls {
332        /// All the selectors of this enum.
333        ///
334        /// Note that the selectors might not be in the same order as the variants.
335        /// No guarantees are made about the order of the selectors.
336        ///
337        /// Prefer using `SolInterface` methods instead.
338        pub const SELECTORS: &'static [[u8; 4usize]] = &[[35u8, 138u8, 77u8, 30u8]];
339    }
340    #[automatically_derived]
341    impl alloy_sol_types::SolInterface for SignatureCheckerLibCalls {
342        const NAME: &'static str = "SignatureCheckerLibCalls";
343        const MIN_DATA_LENGTH: usize = 128usize;
344        const COUNT: usize = 1usize;
345        #[inline]
346        fn selector(&self) -> [u8; 4] {
347            match self {
348                Self::isValidSignature(_) => {
349                    <isValidSignatureCall as alloy_sol_types::SolCall>::SELECTOR
350                }
351            }
352        }
353        #[inline]
354        fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
355            Self::SELECTORS.get(i).copied()
356        }
357        #[inline]
358        fn valid_selector(selector: [u8; 4]) -> bool {
359            Self::SELECTORS.binary_search(&selector).is_ok()
360        }
361        #[inline]
362        #[allow(non_snake_case)]
363        fn abi_decode_raw(
364            selector: [u8; 4],
365            data: &[u8],
366        ) -> alloy_sol_types::Result<Self> {
367            static DECODE_SHIMS: &[fn(
368                &[u8],
369            ) -> alloy_sol_types::Result<SignatureCheckerLibCalls>] = &[
370                {
371                    fn isValidSignature(
372                        data: &[u8],
373                    ) -> alloy_sol_types::Result<SignatureCheckerLibCalls> {
374                        <isValidSignatureCall as alloy_sol_types::SolCall>::abi_decode_raw(
375                                data,
376                            )
377                            .map(SignatureCheckerLibCalls::isValidSignature)
378                    }
379                    isValidSignature
380                },
381            ];
382            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
383                return Err(
384                    alloy_sol_types::Error::unknown_selector(
385                        <Self as alloy_sol_types::SolInterface>::NAME,
386                        selector,
387                    ),
388                );
389            };
390            DECODE_SHIMS[idx](data)
391        }
392        #[inline]
393        #[allow(non_snake_case)]
394        fn abi_decode_raw_validate(
395            selector: [u8; 4],
396            data: &[u8],
397        ) -> alloy_sol_types::Result<Self> {
398            static DECODE_VALIDATE_SHIMS: &[fn(
399                &[u8],
400            ) -> alloy_sol_types::Result<SignatureCheckerLibCalls>] = &[
401                {
402                    fn isValidSignature(
403                        data: &[u8],
404                    ) -> alloy_sol_types::Result<SignatureCheckerLibCalls> {
405                        <isValidSignatureCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
406                                data,
407                            )
408                            .map(SignatureCheckerLibCalls::isValidSignature)
409                    }
410                    isValidSignature
411                },
412            ];
413            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
414                return Err(
415                    alloy_sol_types::Error::unknown_selector(
416                        <Self as alloy_sol_types::SolInterface>::NAME,
417                        selector,
418                    ),
419                );
420            };
421            DECODE_VALIDATE_SHIMS[idx](data)
422        }
423        #[inline]
424        fn abi_encoded_size(&self) -> usize {
425            match self {
426                Self::isValidSignature(inner) => {
427                    <isValidSignatureCall as alloy_sol_types::SolCall>::abi_encoded_size(
428                        inner,
429                    )
430                }
431            }
432        }
433        #[inline]
434        fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
435            match self {
436                Self::isValidSignature(inner) => {
437                    <isValidSignatureCall as alloy_sol_types::SolCall>::abi_encode_raw(
438                        inner,
439                        out,
440                    )
441                }
442            }
443        }
444    }
445    ///Container for all the [`SignatureCheckerLib`](self) custom errors.
446    #[derive(serde::Serialize, serde::Deserialize)]
447    #[derive(Debug, PartialEq, Eq, Hash)]
448    pub enum SignatureCheckerLibErrors {
449        #[allow(missing_docs)]
450        InvalidSignature(InvalidSignature),
451    }
452    #[automatically_derived]
453    impl SignatureCheckerLibErrors {
454        /// All the selectors of this enum.
455        ///
456        /// Note that the selectors might not be in the same order as the variants.
457        /// No guarantees are made about the order of the selectors.
458        ///
459        /// Prefer using `SolInterface` methods instead.
460        pub const SELECTORS: &'static [[u8; 4usize]] = &[[139u8, 170u8, 87u8, 159u8]];
461    }
462    #[automatically_derived]
463    impl alloy_sol_types::SolInterface for SignatureCheckerLibErrors {
464        const NAME: &'static str = "SignatureCheckerLibErrors";
465        const MIN_DATA_LENGTH: usize = 0usize;
466        const COUNT: usize = 1usize;
467        #[inline]
468        fn selector(&self) -> [u8; 4] {
469            match self {
470                Self::InvalidSignature(_) => {
471                    <InvalidSignature as alloy_sol_types::SolError>::SELECTOR
472                }
473            }
474        }
475        #[inline]
476        fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
477            Self::SELECTORS.get(i).copied()
478        }
479        #[inline]
480        fn valid_selector(selector: [u8; 4]) -> bool {
481            Self::SELECTORS.binary_search(&selector).is_ok()
482        }
483        #[inline]
484        #[allow(non_snake_case)]
485        fn abi_decode_raw(
486            selector: [u8; 4],
487            data: &[u8],
488        ) -> alloy_sol_types::Result<Self> {
489            static DECODE_SHIMS: &[fn(
490                &[u8],
491            ) -> alloy_sol_types::Result<SignatureCheckerLibErrors>] = &[
492                {
493                    fn InvalidSignature(
494                        data: &[u8],
495                    ) -> alloy_sol_types::Result<SignatureCheckerLibErrors> {
496                        <InvalidSignature as alloy_sol_types::SolError>::abi_decode_raw(
497                                data,
498                            )
499                            .map(SignatureCheckerLibErrors::InvalidSignature)
500                    }
501                    InvalidSignature
502                },
503            ];
504            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
505                return Err(
506                    alloy_sol_types::Error::unknown_selector(
507                        <Self as alloy_sol_types::SolInterface>::NAME,
508                        selector,
509                    ),
510                );
511            };
512            DECODE_SHIMS[idx](data)
513        }
514        #[inline]
515        #[allow(non_snake_case)]
516        fn abi_decode_raw_validate(
517            selector: [u8; 4],
518            data: &[u8],
519        ) -> alloy_sol_types::Result<Self> {
520            static DECODE_VALIDATE_SHIMS: &[fn(
521                &[u8],
522            ) -> alloy_sol_types::Result<SignatureCheckerLibErrors>] = &[
523                {
524                    fn InvalidSignature(
525                        data: &[u8],
526                    ) -> alloy_sol_types::Result<SignatureCheckerLibErrors> {
527                        <InvalidSignature as alloy_sol_types::SolError>::abi_decode_raw_validate(
528                                data,
529                            )
530                            .map(SignatureCheckerLibErrors::InvalidSignature)
531                    }
532                    InvalidSignature
533                },
534            ];
535            let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
536                return Err(
537                    alloy_sol_types::Error::unknown_selector(
538                        <Self as alloy_sol_types::SolInterface>::NAME,
539                        selector,
540                    ),
541                );
542            };
543            DECODE_VALIDATE_SHIMS[idx](data)
544        }
545        #[inline]
546        fn abi_encoded_size(&self) -> usize {
547            match self {
548                Self::InvalidSignature(inner) => {
549                    <InvalidSignature as alloy_sol_types::SolError>::abi_encoded_size(
550                        inner,
551                    )
552                }
553            }
554        }
555        #[inline]
556        fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
557            match self {
558                Self::InvalidSignature(inner) => {
559                    <InvalidSignature as alloy_sol_types::SolError>::abi_encode_raw(
560                        inner,
561                        out,
562                    )
563                }
564            }
565        }
566    }
567    use alloy::contract as alloy_contract;
568    /**Creates a new wrapper around an on-chain [`SignatureCheckerLib`](self) contract instance.
569
570See the [wrapper's documentation](`SignatureCheckerLibInstance`) for more details.*/
571    #[inline]
572    pub const fn new<
573        P: alloy_contract::private::Provider<N>,
574        N: alloy_contract::private::Network,
575    >(
576        address: alloy_sol_types::private::Address,
577        provider: P,
578    ) -> SignatureCheckerLibInstance<P, N> {
579        SignatureCheckerLibInstance::<P, N>::new(address, provider)
580    }
581    /**Deploys this contract using the given `provider` and constructor arguments, if any.
582
583Returns a new instance of the contract, if the deployment was successful.
584
585For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
586    #[inline]
587    pub fn deploy<
588        P: alloy_contract::private::Provider<N>,
589        N: alloy_contract::private::Network,
590    >(
591        provider: P,
592    ) -> impl ::core::future::Future<
593        Output = alloy_contract::Result<SignatureCheckerLibInstance<P, N>>,
594    > {
595        SignatureCheckerLibInstance::<P, N>::deploy(provider)
596    }
597    /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
598and constructor arguments, if any.
599
600This is a simple wrapper around creating a `RawCallBuilder` with the data set to
601the bytecode concatenated with the constructor's ABI-encoded arguments.*/
602    #[inline]
603    pub fn deploy_builder<
604        P: alloy_contract::private::Provider<N>,
605        N: alloy_contract::private::Network,
606    >(provider: P) -> alloy_contract::RawCallBuilder<P, N> {
607        SignatureCheckerLibInstance::<P, N>::deploy_builder(provider)
608    }
609    /**A [`SignatureCheckerLib`](self) instance.
610
611Contains type-safe methods for interacting with an on-chain instance of the
612[`SignatureCheckerLib`](self) contract located at a given `address`, using a given
613provider `P`.
614
615If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
616documentation on how to provide it), the `deploy` and `deploy_builder` methods can
617be used to deploy a new instance of the contract.
618
619See the [module-level documentation](self) for all the available methods.*/
620    #[derive(Clone)]
621    pub struct SignatureCheckerLibInstance<P, N = alloy_contract::private::Ethereum> {
622        address: alloy_sol_types::private::Address,
623        provider: P,
624        _network: ::core::marker::PhantomData<N>,
625    }
626    #[automatically_derived]
627    impl<P, N> ::core::fmt::Debug for SignatureCheckerLibInstance<P, N> {
628        #[inline]
629        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
630            f.debug_tuple("SignatureCheckerLibInstance").field(&self.address).finish()
631        }
632    }
633    /// Instantiation and getters/setters.
634    #[automatically_derived]
635    impl<
636        P: alloy_contract::private::Provider<N>,
637        N: alloy_contract::private::Network,
638    > SignatureCheckerLibInstance<P, N> {
639        /**Creates a new wrapper around an on-chain [`SignatureCheckerLib`](self) contract instance.
640
641See the [wrapper's documentation](`SignatureCheckerLibInstance`) for more details.*/
642        #[inline]
643        pub const fn new(
644            address: alloy_sol_types::private::Address,
645            provider: P,
646        ) -> Self {
647            Self {
648                address,
649                provider,
650                _network: ::core::marker::PhantomData,
651            }
652        }
653        /**Deploys this contract using the given `provider` and constructor arguments, if any.
654
655Returns a new instance of the contract, if the deployment was successful.
656
657For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
658        #[inline]
659        pub async fn deploy(
660            provider: P,
661        ) -> alloy_contract::Result<SignatureCheckerLibInstance<P, N>> {
662            let call_builder = Self::deploy_builder(provider);
663            let contract_address = call_builder.deploy().await?;
664            Ok(Self::new(contract_address, call_builder.provider))
665        }
666        /**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
667and constructor arguments, if any.
668
669This is a simple wrapper around creating a `RawCallBuilder` with the data set to
670the bytecode concatenated with the constructor's ABI-encoded arguments.*/
671        #[inline]
672        pub fn deploy_builder(provider: P) -> alloy_contract::RawCallBuilder<P, N> {
673            alloy_contract::RawCallBuilder::new_raw_deploy(
674                provider,
675                ::core::clone::Clone::clone(&BYTECODE),
676            )
677        }
678        /// Returns a reference to the address.
679        #[inline]
680        pub const fn address(&self) -> &alloy_sol_types::private::Address {
681            &self.address
682        }
683        /// Sets the address.
684        #[inline]
685        pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
686            self.address = address;
687        }
688        /// Sets the address and returns `self`.
689        pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
690            self.set_address(address);
691            self
692        }
693        /// Returns a reference to the provider.
694        #[inline]
695        pub const fn provider(&self) -> &P {
696            &self.provider
697        }
698    }
699    impl<P: ::core::clone::Clone, N> SignatureCheckerLibInstance<&P, N> {
700        /// Clones the provider and returns a new instance with the cloned provider.
701        #[inline]
702        pub fn with_cloned_provider(self) -> SignatureCheckerLibInstance<P, N> {
703            SignatureCheckerLibInstance {
704                address: self.address,
705                provider: ::core::clone::Clone::clone(&self.provider),
706                _network: ::core::marker::PhantomData,
707            }
708        }
709    }
710    /// Function calls.
711    #[automatically_derived]
712    impl<
713        P: alloy_contract::private::Provider<N>,
714        N: alloy_contract::private::Network,
715    > SignatureCheckerLibInstance<P, N> {
716        /// Creates a new call builder using this contract instance's provider and address.
717        ///
718        /// Note that the call can be any function call, not just those defined in this
719        /// contract. Prefer using the other methods for building type-safe contract calls.
720        pub fn call_builder<C: alloy_sol_types::SolCall>(
721            &self,
722            call: &C,
723        ) -> alloy_contract::SolCallBuilder<&P, C, N> {
724            alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
725        }
726        ///Creates a new call builder for the [`isValidSignature`] function.
727        pub fn isValidSignature(
728            &self,
729            signer: alloy::sol_types::private::Address,
730            digestHash: alloy::sol_types::private::FixedBytes<32>,
731            signature: alloy::sol_types::private::Bytes,
732        ) -> alloy_contract::SolCallBuilder<&P, isValidSignatureCall, N> {
733            self.call_builder(
734                &isValidSignatureCall {
735                    signer,
736                    digestHash,
737                    signature,
738                },
739            )
740        }
741    }
742    /// Event filters.
743    #[automatically_derived]
744    impl<
745        P: alloy_contract::private::Provider<N>,
746        N: alloy_contract::private::Network,
747    > SignatureCheckerLibInstance<P, N> {
748        /// Creates a new event filter using this contract instance's provider and address.
749        ///
750        /// Note that the type can be any event, not just those defined in this contract.
751        /// Prefer using the other methods for building type-safe event filters.
752        pub fn event_filter<E: alloy_sol_types::SolEvent>(
753            &self,
754        ) -> alloy_contract::Event<&P, E, N> {
755            alloy_contract::Event::new_sol(&self.provider, &self.address)
756        }
757    }
758}