1#[allow(
97 non_camel_case_types,
98 non_snake_case,
99 clippy::pub_underscore_fields,
100 clippy::style,
101 clippy::empty_structs_with_brackets
102)]
103pub mod RankedFeed {
104 use super::*;
105 use alloy::sol_types as alloy_sol_types;
106 #[rustfmt::skip]
112 #[allow(clippy::all)]
113 pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
114 b"`\x80`@R4\x80\x15`\x0EW__\xFD[Pa\x07M\x80a\0\x1C_9_\xF3\xFE`\x80`@R4\x80\x15a\0\x0FW__\xFD[P`\x046\x10a\x004W_5`\xE0\x1C\x80c\xA1\x98\x1B\xF1\x14a\08W\x80c\xDF\xBA\xA2\xFB\x14a\0TW[__\xFD[a\0R`\x04\x806\x03\x81\x01\x90a\0M\x91\x90a\x04'V[a\0pV[\0[a\0n`\x04\x806\x03\x81\x01\x90a\0i\x91\x90a\x04\xB3V[a\x013V[\0[_a\0\x87\x823`\x01a\x023\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x14a\0\xBEW`@Q\x7F|\x9A\x1C\xF9\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\0\xD6\x813`\x01\x80a\x02\xF9\x90\x93\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[a\0\xEC\x81`\x01_a\x03\xBF\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81\x7F\x98\xB6\xB1\x80ul\x84\x9B[\xFB\xBD+\xBD\t\x1F?\xE6K\t5\xAC\x19T\x18\xC0\xB6\x19\xB9\xB6a\xC7\x8D`@Q`@Q\x80\x91\x03\x90\xA3PV[_3\x83\x83`@Q` \x01a\x01I\x93\x92\x91\x90a\x05\xAFV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P_a\x01x\x823`\x01a\x023\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x14a\x01\xAFW`@Q\x7F|\x9A\x1C\xF9\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x01\xC7\x813`\x01\x80a\x02\xF9\x90\x93\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[a\x01\xDD\x81`\x01_a\x03\xBF\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81\x7F\xEDno\xDF\x99\xCD^\x97\x14\\~Y\xAD\xE99#\xBE\x19yUzw\xE69\xED\x95\xA2\x03\xC7\xA8\xE8a\x85\x85`@Qa\x02&\x92\x91\x90a\x06$V[`@Q\x80\x91\x03\x90\xA3PPPV[_2s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x02\xA2W`@Q\x7F\x08\xC3y\xA0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01a\x02\x99\x90a\x06\xC6V[`@Q\x80\x91\x03\x90\xFD[\x83_\x01_\x84\x81R` \x01\x90\x81R` \x01_ _\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x90\x81R` \x01_ T\x90P\x93\x92PPPV[2s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x03gW`@Q\x7F\x08\xC3y\xA0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01a\x03^\x90a\x06\xC6V[`@Q\x80\x91\x03\x90\xFD[\x80\x84_\x01_\x85\x81R` \x01\x90\x81R` \x01_ _\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x90\x81R` \x01_ \x81\x90UPPPPPV[\x80\x83_\x01_\x84\x81R` \x01\x90\x81R` \x01_ _\x82\x82Ta\x03\xE0\x91\x90a\x07\x1AV[\x92PP\x81\x90UPPPPV[__\xFD[__\xFD[_\x81\x90P\x91\x90PV[a\x04\x06\x81a\x03\xF4V[\x81\x14a\x04\x10W__\xFD[PV[_\x815\x90Pa\x04!\x81a\x03\xFDV[\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x04<Wa\x04;a\x03\xECV[[_a\x04I\x84\x82\x85\x01a\x04\x13V[\x91PP\x92\x91PPV[__\xFD[__\xFD[__\xFD[__\x83`\x1F\x84\x01\x12a\x04sWa\x04ra\x04RV[[\x825\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x04\x90Wa\x04\x8Fa\x04VV[[` \x83\x01\x91P\x83`\x01\x82\x02\x83\x01\x11\x15a\x04\xACWa\x04\xABa\x04ZV[[\x92P\x92\x90PV[__` \x83\x85\x03\x12\x15a\x04\xC9Wa\x04\xC8a\x03\xECV[[_\x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x04\xE6Wa\x04\xE5a\x03\xF0V[[a\x04\xF2\x85\x82\x86\x01a\x04^V[\x92P\x92PP\x92P\x92\x90PV[_s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90P\x91\x90PV[_a\x05'\x82a\x04\xFEV[\x90P\x91\x90PV[_\x81``\x1B\x90P\x91\x90PV[_a\x05D\x82a\x05.V[\x90P\x91\x90PV[_a\x05U\x82a\x05:V[\x90P\x91\x90PV[a\x05ma\x05h\x82a\x05\x1DV[a\x05KV[\x82RPPV[_\x81\x90P\x92\x91PPV[\x82\x81\x837_\x83\x83\x01RPPPV[_a\x05\x96\x83\x85a\x05sV[\x93Pa\x05\xA3\x83\x85\x84a\x05}V[\x82\x84\x01\x90P\x93\x92PPPV[_a\x05\xBA\x82\x86a\x05\\V[`\x14\x82\x01\x91Pa\x05\xCB\x82\x84\x86a\x05\x8BV[\x91P\x81\x90P\x94\x93PPPPV[_\x82\x82R` \x82\x01\x90P\x92\x91PPV[_`\x1F\x19`\x1F\x83\x01\x16\x90P\x91\x90PV[_a\x06\x03\x83\x85a\x05\xD8V[\x93Pa\x06\x10\x83\x85\x84a\x05}V[a\x06\x19\x83a\x05\xE8V[\x84\x01\x90P\x93\x92PPPV[_` \x82\x01\x90P\x81\x81\x03_\x83\x01Ra\x06=\x81\x84\x86a\x05\xF8V[\x90P\x93\x92PPPV[_\x82\x82R` \x82\x01\x90P\x92\x91PPV[\x7FCannot access OwnedCounter owned_\x82\x01R\x7F by another address\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01RPV[_a\x06\xB0`3\x83a\x06FV[\x91Pa\x06\xBB\x82a\x06VV[`@\x82\x01\x90P\x91\x90PV[_` \x82\x01\x90P\x81\x81\x03_\x83\x01Ra\x06\xDD\x81a\x06\xA4V[\x90P\x91\x90PV[_\x81\x90P\x91\x90PV[\x7FNH{q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_R`\x11`\x04R`$_\xFD[_a\x07$\x82a\x06\xE4V[\x91Pa\x07/\x83a\x06\xE4V[\x92P\x82\x82\x01\x90P\x80\x82\x11\x15a\x07GWa\x07Fa\x06\xEDV[[\x92\x91PPV",
115 );
116 #[rustfmt::skip]
122 #[allow(clippy::all)]
123 pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
124 b"`\x80`@R4\x80\x15a\0\x0FW__\xFD[P`\x046\x10a\x004W_5`\xE0\x1C\x80c\xA1\x98\x1B\xF1\x14a\08W\x80c\xDF\xBA\xA2\xFB\x14a\0TW[__\xFD[a\0R`\x04\x806\x03\x81\x01\x90a\0M\x91\x90a\x04'V[a\0pV[\0[a\0n`\x04\x806\x03\x81\x01\x90a\0i\x91\x90a\x04\xB3V[a\x013V[\0[_a\0\x87\x823`\x01a\x023\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x14a\0\xBEW`@Q\x7F|\x9A\x1C\xF9\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\0\xD6\x813`\x01\x80a\x02\xF9\x90\x93\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[a\0\xEC\x81`\x01_a\x03\xBF\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81\x7F\x98\xB6\xB1\x80ul\x84\x9B[\xFB\xBD+\xBD\t\x1F?\xE6K\t5\xAC\x19T\x18\xC0\xB6\x19\xB9\xB6a\xC7\x8D`@Q`@Q\x80\x91\x03\x90\xA3PV[_3\x83\x83`@Q` \x01a\x01I\x93\x92\x91\x90a\x05\xAFV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P_a\x01x\x823`\x01a\x023\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x14a\x01\xAFW`@Q\x7F|\x9A\x1C\xF9\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01`@Q\x80\x91\x03\x90\xFD[a\x01\xC7\x813`\x01\x80a\x02\xF9\x90\x93\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[a\x01\xDD\x81`\x01_a\x03\xBF\x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[3s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81\x7F\xEDno\xDF\x99\xCD^\x97\x14\\~Y\xAD\xE99#\xBE\x19yUzw\xE69\xED\x95\xA2\x03\xC7\xA8\xE8a\x85\x85`@Qa\x02&\x92\x91\x90a\x06$V[`@Q\x80\x91\x03\x90\xA3PPPV[_2s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x02\xA2W`@Q\x7F\x08\xC3y\xA0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01a\x02\x99\x90a\x06\xC6V[`@Q\x80\x91\x03\x90\xFD[\x83_\x01_\x84\x81R` \x01\x90\x81R` \x01_ _\x83s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x90\x81R` \x01_ T\x90P\x93\x92PPPV[2s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x82s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x14a\x03gW`@Q\x7F\x08\xC3y\xA0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x81R`\x04\x01a\x03^\x90a\x06\xC6V[`@Q\x80\x91\x03\x90\xFD[\x80\x84_\x01_\x85\x81R` \x01\x90\x81R` \x01_ _\x84s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x16\x81R` \x01\x90\x81R` \x01_ \x81\x90UPPPPPV[\x80\x83_\x01_\x84\x81R` \x01\x90\x81R` \x01_ _\x82\x82Ta\x03\xE0\x91\x90a\x07\x1AV[\x92PP\x81\x90UPPPPV[__\xFD[__\xFD[_\x81\x90P\x91\x90PV[a\x04\x06\x81a\x03\xF4V[\x81\x14a\x04\x10W__\xFD[PV[_\x815\x90Pa\x04!\x81a\x03\xFDV[\x92\x91PPV[_` \x82\x84\x03\x12\x15a\x04<Wa\x04;a\x03\xECV[[_a\x04I\x84\x82\x85\x01a\x04\x13V[\x91PP\x92\x91PPV[__\xFD[__\xFD[__\xFD[__\x83`\x1F\x84\x01\x12a\x04sWa\x04ra\x04RV[[\x825\x90Pg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x04\x90Wa\x04\x8Fa\x04VV[[` \x83\x01\x91P\x83`\x01\x82\x02\x83\x01\x11\x15a\x04\xACWa\x04\xABa\x04ZV[[\x92P\x92\x90PV[__` \x83\x85\x03\x12\x15a\x04\xC9Wa\x04\xC8a\x03\xECV[[_\x83\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x04\xE6Wa\x04\xE5a\x03\xF0V[[a\x04\xF2\x85\x82\x86\x01a\x04^V[\x92P\x92PP\x92P\x92\x90PV[_s\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x16\x90P\x91\x90PV[_a\x05'\x82a\x04\xFEV[\x90P\x91\x90PV[_\x81``\x1B\x90P\x91\x90PV[_a\x05D\x82a\x05.V[\x90P\x91\x90PV[_a\x05U\x82a\x05:V[\x90P\x91\x90PV[a\x05ma\x05h\x82a\x05\x1DV[a\x05KV[\x82RPPV[_\x81\x90P\x92\x91PPV[\x82\x81\x837_\x83\x83\x01RPPPV[_a\x05\x96\x83\x85a\x05sV[\x93Pa\x05\xA3\x83\x85\x84a\x05}V[\x82\x84\x01\x90P\x93\x92PPPV[_a\x05\xBA\x82\x86a\x05\\V[`\x14\x82\x01\x91Pa\x05\xCB\x82\x84\x86a\x05\x8BV[\x91P\x81\x90P\x94\x93PPPPV[_\x82\x82R` \x82\x01\x90P\x92\x91PPV[_`\x1F\x19`\x1F\x83\x01\x16\x90P\x91\x90PV[_a\x06\x03\x83\x85a\x05\xD8V[\x93Pa\x06\x10\x83\x85\x84a\x05}V[a\x06\x19\x83a\x05\xE8V[\x84\x01\x90P\x93\x92PPPV[_` \x82\x01\x90P\x81\x81\x03_\x83\x01Ra\x06=\x81\x84\x86a\x05\xF8V[\x90P\x93\x92PPPV[_\x82\x82R` \x82\x01\x90P\x92\x91PPV[\x7FCannot access OwnedCounter owned_\x82\x01R\x7F by another address\0\0\0\0\0\0\0\0\0\0\0\0\0` \x82\x01RPV[_a\x06\xB0`3\x83a\x06FV[\x91Pa\x06\xBB\x82a\x06VV[`@\x82\x01\x90P\x91\x90PV[_` \x82\x01\x90P\x81\x81\x03_\x83\x01Ra\x06\xDD\x81a\x06\xA4V[\x90P\x91\x90PV[_\x81\x90P\x91\x90PV[\x7FNH{q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_R`\x11`\x04R`$_\xFD[_a\x07$\x82a\x06\xE4V[\x91Pa\x07/\x83a\x06\xE4V[\x92P\x82\x82\x01\x90P\x80\x82\x11\x15a\x07GWa\x07Fa\x06\xEDV[[\x92\x91PPV",
125 );
126 #[derive(serde::Serialize, serde::Deserialize)]
127 #[derive(Default, Debug, PartialEq, Eq, Hash)]
128 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
133 #[derive(Clone)]
134 pub struct AlreadyVoted;
135 #[allow(
136 non_camel_case_types,
137 non_snake_case,
138 clippy::pub_underscore_fields,
139 clippy::style
140 )]
141 const _: () = {
142 use alloy::sol_types as alloy_sol_types;
143 #[doc(hidden)]
144 #[allow(dead_code)]
145 type UnderlyingSolTuple<'a> = ();
146 #[doc(hidden)]
147 type UnderlyingRustTuple<'a> = ();
148 #[cfg(test)]
149 #[allow(dead_code, unreachable_patterns)]
150 fn _type_assertion(
151 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
152 ) {
153 match _t {
154 alloy_sol_types::private::AssertTypeEq::<
155 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
156 >(_) => {}
157 }
158 }
159 #[automatically_derived]
160 #[doc(hidden)]
161 impl ::core::convert::From<AlreadyVoted> for UnderlyingRustTuple<'_> {
162 fn from(value: AlreadyVoted) -> Self {
163 ()
164 }
165 }
166 #[automatically_derived]
167 #[doc(hidden)]
168 impl ::core::convert::From<UnderlyingRustTuple<'_>> for AlreadyVoted {
169 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
170 Self
171 }
172 }
173 #[automatically_derived]
174 impl alloy_sol_types::SolError for AlreadyVoted {
175 type Parameters<'a> = UnderlyingSolTuple<'a>;
176 type Token<'a> = <Self::Parameters<
177 'a,
178 > as alloy_sol_types::SolType>::Token<'a>;
179 const SIGNATURE: &'static str = "AlreadyVoted()";
180 const SELECTOR: [u8; 4] = [124u8, 154u8, 28u8, 249u8];
181 #[inline]
182 fn new<'a>(
183 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
184 ) -> Self {
185 tuple.into()
186 }
187 #[inline]
188 fn tokenize(&self) -> Self::Token<'_> {
189 ()
190 }
191 #[inline]
192 fn abi_decode_raw_validate(data: &[u8]) -> alloy_sol_types::Result<Self> {
193 <Self::Parameters<
194 '_,
195 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
196 .map(Self::new)
197 }
198 }
199 };
200 #[derive(serde::Serialize, serde::Deserialize)]
201 #[derive(Default, Debug, PartialEq, Eq, Hash)]
202 #[allow(
207 non_camel_case_types,
208 non_snake_case,
209 clippy::pub_underscore_fields,
210 clippy::style
211 )]
212 #[derive(Clone)]
213 pub struct PostCreated {
214 #[allow(missing_docs)]
215 pub post_id: alloy::sol_types::private::FixedBytes<32>,
216 #[allow(missing_docs)]
217 pub poster: alloy::sol_types::private::Address,
218 #[allow(missing_docs)]
219 pub post_data: alloy::sol_types::private::Bytes,
220 }
221 #[allow(
222 non_camel_case_types,
223 non_snake_case,
224 clippy::pub_underscore_fields,
225 clippy::style
226 )]
227 const _: () = {
228 use alloy::sol_types as alloy_sol_types;
229 #[automatically_derived]
230 impl alloy_sol_types::SolEvent for PostCreated {
231 type DataTuple<'a> = (alloy::sol_types::sol_data::Bytes,);
232 type DataToken<'a> = <Self::DataTuple<
233 'a,
234 > as alloy_sol_types::SolType>::Token<'a>;
235 type TopicList = (
236 alloy_sol_types::sol_data::FixedBytes<32>,
237 alloy::sol_types::sol_data::FixedBytes<32>,
238 alloy::sol_types::sol_data::Address,
239 );
240 const SIGNATURE: &'static str = "PostCreated(bytes32,address,bytes)";
241 const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
242 237u8, 110u8, 111u8, 223u8, 153u8, 205u8, 94u8, 151u8, 20u8, 92u8, 126u8,
243 89u8, 173u8, 233u8, 57u8, 35u8, 190u8, 25u8, 121u8, 85u8, 122u8, 119u8,
244 230u8, 57u8, 237u8, 149u8, 162u8, 3u8, 199u8, 168u8, 232u8, 97u8,
245 ]);
246 const ANONYMOUS: bool = false;
247 #[allow(unused_variables)]
248 #[inline]
249 fn new(
250 topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
251 data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
252 ) -> Self {
253 Self {
254 post_id: topics.1,
255 poster: topics.2,
256 post_data: data.0,
257 }
258 }
259 #[inline]
260 fn check_signature(
261 topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
262 ) -> alloy_sol_types::Result<()> {
263 if topics.0 != Self::SIGNATURE_HASH {
264 return Err(
265 alloy_sol_types::Error::invalid_event_signature_hash(
266 Self::SIGNATURE,
267 topics.0,
268 Self::SIGNATURE_HASH,
269 ),
270 );
271 }
272 Ok(())
273 }
274 #[inline]
275 fn tokenize_body(&self) -> Self::DataToken<'_> {
276 (
277 <alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
278 &self.post_data,
279 ),
280 )
281 }
282 #[inline]
283 fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
284 (Self::SIGNATURE_HASH.into(), self.post_id.clone(), self.poster.clone())
285 }
286 #[inline]
287 fn encode_topics_raw(
288 &self,
289 out: &mut [alloy_sol_types::abi::token::WordToken],
290 ) -> alloy_sol_types::Result<()> {
291 if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
292 return Err(alloy_sol_types::Error::Overrun);
293 }
294 out[0usize] = alloy_sol_types::abi::token::WordToken(
295 Self::SIGNATURE_HASH,
296 );
297 out[1usize] = <alloy::sol_types::sol_data::FixedBytes<
298 32,
299 > as alloy_sol_types::EventTopic>::encode_topic(&self.post_id);
300 out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
301 &self.poster,
302 );
303 Ok(())
304 }
305 }
306 #[automatically_derived]
307 impl alloy_sol_types::private::IntoLogData for PostCreated {
308 fn to_log_data(&self) -> alloy_sol_types::private::LogData {
309 From::from(self)
310 }
311 fn into_log_data(self) -> alloy_sol_types::private::LogData {
312 From::from(&self)
313 }
314 }
315 #[automatically_derived]
316 impl From<&PostCreated> for alloy_sol_types::private::LogData {
317 #[inline]
318 fn from(this: &PostCreated) -> alloy_sol_types::private::LogData {
319 alloy_sol_types::SolEvent::encode_log_data(this)
320 }
321 }
322 };
323 #[derive(serde::Serialize, serde::Deserialize)]
324 #[derive(Default, Debug, PartialEq, Eq, Hash)]
325 #[allow(
330 non_camel_case_types,
331 non_snake_case,
332 clippy::pub_underscore_fields,
333 clippy::style
334 )]
335 #[derive(Clone)]
336 pub struct PostVoted {
337 #[allow(missing_docs)]
338 pub post_id: alloy::sol_types::private::FixedBytes<32>,
339 #[allow(missing_docs)]
340 pub voter: alloy::sol_types::private::Address,
341 }
342 #[allow(
343 non_camel_case_types,
344 non_snake_case,
345 clippy::pub_underscore_fields,
346 clippy::style
347 )]
348 const _: () = {
349 use alloy::sol_types as alloy_sol_types;
350 #[automatically_derived]
351 impl alloy_sol_types::SolEvent for PostVoted {
352 type DataTuple<'a> = ();
353 type DataToken<'a> = <Self::DataTuple<
354 'a,
355 > as alloy_sol_types::SolType>::Token<'a>;
356 type TopicList = (
357 alloy_sol_types::sol_data::FixedBytes<32>,
358 alloy::sol_types::sol_data::FixedBytes<32>,
359 alloy::sol_types::sol_data::Address,
360 );
361 const SIGNATURE: &'static str = "PostVoted(bytes32,address)";
362 const SIGNATURE_HASH: alloy_sol_types::private::B256 = alloy_sol_types::private::B256::new([
363 152u8, 182u8, 177u8, 128u8, 117u8, 108u8, 132u8, 155u8, 91u8, 251u8,
364 189u8, 43u8, 189u8, 9u8, 31u8, 63u8, 230u8, 75u8, 9u8, 53u8, 172u8, 25u8,
365 84u8, 24u8, 192u8, 182u8, 25u8, 185u8, 182u8, 97u8, 199u8, 141u8,
366 ]);
367 const ANONYMOUS: bool = false;
368 #[allow(unused_variables)]
369 #[inline]
370 fn new(
371 topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
372 data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
373 ) -> Self {
374 Self {
375 post_id: topics.1,
376 voter: topics.2,
377 }
378 }
379 #[inline]
380 fn check_signature(
381 topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
382 ) -> alloy_sol_types::Result<()> {
383 if topics.0 != Self::SIGNATURE_HASH {
384 return Err(
385 alloy_sol_types::Error::invalid_event_signature_hash(
386 Self::SIGNATURE,
387 topics.0,
388 Self::SIGNATURE_HASH,
389 ),
390 );
391 }
392 Ok(())
393 }
394 #[inline]
395 fn tokenize_body(&self) -> Self::DataToken<'_> {
396 ()
397 }
398 #[inline]
399 fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
400 (Self::SIGNATURE_HASH.into(), self.post_id.clone(), self.voter.clone())
401 }
402 #[inline]
403 fn encode_topics_raw(
404 &self,
405 out: &mut [alloy_sol_types::abi::token::WordToken],
406 ) -> alloy_sol_types::Result<()> {
407 if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
408 return Err(alloy_sol_types::Error::Overrun);
409 }
410 out[0usize] = alloy_sol_types::abi::token::WordToken(
411 Self::SIGNATURE_HASH,
412 );
413 out[1usize] = <alloy::sol_types::sol_data::FixedBytes<
414 32,
415 > as alloy_sol_types::EventTopic>::encode_topic(&self.post_id);
416 out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
417 &self.voter,
418 );
419 Ok(())
420 }
421 }
422 #[automatically_derived]
423 impl alloy_sol_types::private::IntoLogData for PostVoted {
424 fn to_log_data(&self) -> alloy_sol_types::private::LogData {
425 From::from(self)
426 }
427 fn into_log_data(self) -> alloy_sol_types::private::LogData {
428 From::from(&self)
429 }
430 }
431 #[automatically_derived]
432 impl From<&PostVoted> for alloy_sol_types::private::LogData {
433 #[inline]
434 fn from(this: &PostVoted) -> alloy_sol_types::private::LogData {
435 alloy_sol_types::SolEvent::encode_log_data(this)
436 }
437 }
438 };
439 #[derive(serde::Serialize, serde::Deserialize)]
440 #[derive(Default, Debug, PartialEq, Eq, Hash)]
441 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
446 #[derive(Clone)]
447 pub struct createPostCall {
448 #[allow(missing_docs)]
449 pub post_data: alloy::sol_types::private::Bytes,
450 }
451 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
453 #[derive(Clone)]
454 pub struct createPostReturn {}
455 #[allow(
456 non_camel_case_types,
457 non_snake_case,
458 clippy::pub_underscore_fields,
459 clippy::style
460 )]
461 const _: () = {
462 use alloy::sol_types as alloy_sol_types;
463 {
464 #[doc(hidden)]
465 #[allow(dead_code)]
466 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,);
467 #[doc(hidden)]
468 type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,);
469 #[cfg(test)]
470 #[allow(dead_code, unreachable_patterns)]
471 fn _type_assertion(
472 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
473 ) {
474 match _t {
475 alloy_sol_types::private::AssertTypeEq::<
476 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
477 >(_) => {}
478 }
479 }
480 #[automatically_derived]
481 #[doc(hidden)]
482 impl ::core::convert::From<createPostCall> for UnderlyingRustTuple<'_> {
483 fn from(value: createPostCall) -> Self {
484 (value.post_data,)
485 }
486 }
487 #[automatically_derived]
488 #[doc(hidden)]
489 impl ::core::convert::From<UnderlyingRustTuple<'_>> for createPostCall {
490 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
491 Self { post_data: tuple.0 }
492 }
493 }
494 }
495 {
496 #[doc(hidden)]
497 #[allow(dead_code)]
498 type UnderlyingSolTuple<'a> = ();
499 #[doc(hidden)]
500 type UnderlyingRustTuple<'a> = ();
501 #[cfg(test)]
502 #[allow(dead_code, unreachable_patterns)]
503 fn _type_assertion(
504 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
505 ) {
506 match _t {
507 alloy_sol_types::private::AssertTypeEq::<
508 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
509 >(_) => {}
510 }
511 }
512 #[automatically_derived]
513 #[doc(hidden)]
514 impl ::core::convert::From<createPostReturn> for UnderlyingRustTuple<'_> {
515 fn from(value: createPostReturn) -> Self {
516 ()
517 }
518 }
519 #[automatically_derived]
520 #[doc(hidden)]
521 impl ::core::convert::From<UnderlyingRustTuple<'_>> for createPostReturn {
522 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
523 Self {}
524 }
525 }
526 }
527 impl createPostReturn {
528 fn _tokenize(
529 &self,
530 ) -> <createPostCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
531 ()
532 }
533 }
534 #[automatically_derived]
535 impl alloy_sol_types::SolCall for createPostCall {
536 type Parameters<'a> = (alloy::sol_types::sol_data::Bytes,);
537 type Token<'a> = <Self::Parameters<
538 'a,
539 > as alloy_sol_types::SolType>::Token<'a>;
540 type Return = createPostReturn;
541 type ReturnTuple<'a> = ();
542 type ReturnToken<'a> = <Self::ReturnTuple<
543 'a,
544 > as alloy_sol_types::SolType>::Token<'a>;
545 const SIGNATURE: &'static str = "createPost(bytes)";
546 const SELECTOR: [u8; 4] = [223u8, 186u8, 162u8, 251u8];
547 #[inline]
548 fn new<'a>(
549 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
550 ) -> Self {
551 tuple.into()
552 }
553 #[inline]
554 fn tokenize(&self) -> Self::Token<'_> {
555 (
556 <alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
557 &self.post_data,
558 ),
559 )
560 }
561 #[inline]
562 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
563 createPostReturn::_tokenize(ret)
564 }
565 #[inline]
566 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
567 <Self::ReturnTuple<
568 '_,
569 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
570 .map(Into::into)
571 }
572 #[inline]
573 fn abi_decode_returns_validate(
574 data: &[u8],
575 ) -> alloy_sol_types::Result<Self::Return> {
576 <Self::ReturnTuple<
577 '_,
578 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
579 .map(Into::into)
580 }
581 }
582 };
583 #[derive(serde::Serialize, serde::Deserialize)]
584 #[derive(Default, Debug, PartialEq, Eq, Hash)]
585 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
590 #[derive(Clone)]
591 pub struct votePostCall {
592 #[allow(missing_docs)]
593 pub post_id: alloy::sol_types::private::FixedBytes<32>,
594 }
595 #[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
597 #[derive(Clone)]
598 pub struct votePostReturn {}
599 #[allow(
600 non_camel_case_types,
601 non_snake_case,
602 clippy::pub_underscore_fields,
603 clippy::style
604 )]
605 const _: () = {
606 use alloy::sol_types as alloy_sol_types;
607 {
608 #[doc(hidden)]
609 #[allow(dead_code)]
610 type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
611 #[doc(hidden)]
612 type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
613 #[cfg(test)]
614 #[allow(dead_code, unreachable_patterns)]
615 fn _type_assertion(
616 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
617 ) {
618 match _t {
619 alloy_sol_types::private::AssertTypeEq::<
620 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
621 >(_) => {}
622 }
623 }
624 #[automatically_derived]
625 #[doc(hidden)]
626 impl ::core::convert::From<votePostCall> for UnderlyingRustTuple<'_> {
627 fn from(value: votePostCall) -> Self {
628 (value.post_id,)
629 }
630 }
631 #[automatically_derived]
632 #[doc(hidden)]
633 impl ::core::convert::From<UnderlyingRustTuple<'_>> for votePostCall {
634 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
635 Self { post_id: tuple.0 }
636 }
637 }
638 }
639 {
640 #[doc(hidden)]
641 #[allow(dead_code)]
642 type UnderlyingSolTuple<'a> = ();
643 #[doc(hidden)]
644 type UnderlyingRustTuple<'a> = ();
645 #[cfg(test)]
646 #[allow(dead_code, unreachable_patterns)]
647 fn _type_assertion(
648 _t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
649 ) {
650 match _t {
651 alloy_sol_types::private::AssertTypeEq::<
652 <UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
653 >(_) => {}
654 }
655 }
656 #[automatically_derived]
657 #[doc(hidden)]
658 impl ::core::convert::From<votePostReturn> for UnderlyingRustTuple<'_> {
659 fn from(value: votePostReturn) -> Self {
660 ()
661 }
662 }
663 #[automatically_derived]
664 #[doc(hidden)]
665 impl ::core::convert::From<UnderlyingRustTuple<'_>> for votePostReturn {
666 fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
667 Self {}
668 }
669 }
670 }
671 impl votePostReturn {
672 fn _tokenize(
673 &self,
674 ) -> <votePostCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
675 ()
676 }
677 }
678 #[automatically_derived]
679 impl alloy_sol_types::SolCall for votePostCall {
680 type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
681 type Token<'a> = <Self::Parameters<
682 'a,
683 > as alloy_sol_types::SolType>::Token<'a>;
684 type Return = votePostReturn;
685 type ReturnTuple<'a> = ();
686 type ReturnToken<'a> = <Self::ReturnTuple<
687 'a,
688 > as alloy_sol_types::SolType>::Token<'a>;
689 const SIGNATURE: &'static str = "votePost(bytes32)";
690 const SELECTOR: [u8; 4] = [161u8, 152u8, 27u8, 241u8];
691 #[inline]
692 fn new<'a>(
693 tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
694 ) -> Self {
695 tuple.into()
696 }
697 #[inline]
698 fn tokenize(&self) -> Self::Token<'_> {
699 (
700 <alloy::sol_types::sol_data::FixedBytes<
701 32,
702 > as alloy_sol_types::SolType>::tokenize(&self.post_id),
703 )
704 }
705 #[inline]
706 fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
707 votePostReturn::_tokenize(ret)
708 }
709 #[inline]
710 fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
711 <Self::ReturnTuple<
712 '_,
713 > as alloy_sol_types::SolType>::abi_decode_sequence(data)
714 .map(Into::into)
715 }
716 #[inline]
717 fn abi_decode_returns_validate(
718 data: &[u8],
719 ) -> alloy_sol_types::Result<Self::Return> {
720 <Self::ReturnTuple<
721 '_,
722 > as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
723 .map(Into::into)
724 }
725 }
726 };
727 #[derive(Clone)]
729 #[derive(serde::Serialize, serde::Deserialize)]
730 #[derive()]
731 pub enum RankedFeedCalls {
732 #[allow(missing_docs)]
733 createPost(createPostCall),
734 #[allow(missing_docs)]
735 votePost(votePostCall),
736 }
737 impl RankedFeedCalls {
738 pub const SELECTORS: &'static [[u8; 4usize]] = &[
745 [161u8, 152u8, 27u8, 241u8],
746 [223u8, 186u8, 162u8, 251u8],
747 ];
748 pub const VARIANT_NAMES: &'static [&'static str] = &[
750 ::core::stringify!(votePost),
751 ::core::stringify!(createPost),
752 ];
753 pub const SIGNATURES: &'static [&'static str] = &[
755 <votePostCall as alloy_sol_types::SolCall>::SIGNATURE,
756 <createPostCall as alloy_sol_types::SolCall>::SIGNATURE,
757 ];
758 #[inline]
760 pub fn signature_by_selector(
761 selector: [u8; 4usize],
762 ) -> ::core::option::Option<&'static str> {
763 match Self::SELECTORS.binary_search(&selector) {
764 ::core::result::Result::Ok(idx) => {
765 ::core::option::Option::Some(Self::SIGNATURES[idx])
766 }
767 ::core::result::Result::Err(_) => ::core::option::Option::None,
768 }
769 }
770 #[inline]
772 pub fn name_by_selector(
773 selector: [u8; 4usize],
774 ) -> ::core::option::Option<&'static str> {
775 let sig = Self::signature_by_selector(selector)?;
776 sig.split_once('(').map(|(name, _)| name)
777 }
778 }
779 #[automatically_derived]
780 impl alloy_sol_types::SolInterface for RankedFeedCalls {
781 const NAME: &'static str = "RankedFeedCalls";
782 const MIN_DATA_LENGTH: usize = 32usize;
783 const COUNT: usize = 2usize;
784 #[inline]
785 fn selector(&self) -> [u8; 4] {
786 match self {
787 Self::createPost(_) => {
788 <createPostCall as alloy_sol_types::SolCall>::SELECTOR
789 }
790 Self::votePost(_) => <votePostCall as alloy_sol_types::SolCall>::SELECTOR,
791 }
792 }
793 #[inline]
794 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
795 Self::SELECTORS.get(i).copied()
796 }
797 #[inline]
798 fn valid_selector(selector: [u8; 4]) -> bool {
799 Self::SELECTORS.binary_search(&selector).is_ok()
800 }
801 #[inline]
802 #[allow(non_snake_case)]
803 fn abi_decode_raw(
804 selector: [u8; 4],
805 data: &[u8],
806 ) -> alloy_sol_types::Result<Self> {
807 static DECODE_SHIMS: &[fn(
808 &[u8],
809 ) -> alloy_sol_types::Result<RankedFeedCalls>] = &[
810 {
811 fn votePost(
812 data: &[u8],
813 ) -> alloy_sol_types::Result<RankedFeedCalls> {
814 <votePostCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
815 .map(RankedFeedCalls::votePost)
816 }
817 votePost
818 },
819 {
820 fn createPost(
821 data: &[u8],
822 ) -> alloy_sol_types::Result<RankedFeedCalls> {
823 <createPostCall as alloy_sol_types::SolCall>::abi_decode_raw(
824 data,
825 )
826 .map(RankedFeedCalls::createPost)
827 }
828 createPost
829 },
830 ];
831 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
832 return Err(
833 alloy_sol_types::Error::unknown_selector(
834 <Self as alloy_sol_types::SolInterface>::NAME,
835 selector,
836 ),
837 );
838 };
839 DECODE_SHIMS[idx](data)
840 }
841 #[inline]
842 #[allow(non_snake_case)]
843 fn abi_decode_raw_validate(
844 selector: [u8; 4],
845 data: &[u8],
846 ) -> alloy_sol_types::Result<Self> {
847 static DECODE_VALIDATE_SHIMS: &[fn(
848 &[u8],
849 ) -> alloy_sol_types::Result<RankedFeedCalls>] = &[
850 {
851 fn votePost(
852 data: &[u8],
853 ) -> alloy_sol_types::Result<RankedFeedCalls> {
854 <votePostCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
855 data,
856 )
857 .map(RankedFeedCalls::votePost)
858 }
859 votePost
860 },
861 {
862 fn createPost(
863 data: &[u8],
864 ) -> alloy_sol_types::Result<RankedFeedCalls> {
865 <createPostCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
866 data,
867 )
868 .map(RankedFeedCalls::createPost)
869 }
870 createPost
871 },
872 ];
873 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
874 return Err(
875 alloy_sol_types::Error::unknown_selector(
876 <Self as alloy_sol_types::SolInterface>::NAME,
877 selector,
878 ),
879 );
880 };
881 DECODE_VALIDATE_SHIMS[idx](data)
882 }
883 #[inline]
884 fn abi_encoded_size(&self) -> usize {
885 match self {
886 Self::createPost(inner) => {
887 <createPostCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
888 }
889 Self::votePost(inner) => {
890 <votePostCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
891 }
892 }
893 }
894 #[inline]
895 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
896 match self {
897 Self::createPost(inner) => {
898 <createPostCall as alloy_sol_types::SolCall>::abi_encode_raw(
899 inner,
900 out,
901 )
902 }
903 Self::votePost(inner) => {
904 <votePostCall as alloy_sol_types::SolCall>::abi_encode_raw(
905 inner,
906 out,
907 )
908 }
909 }
910 }
911 }
912 #[derive(Clone)]
914 #[derive(serde::Serialize, serde::Deserialize)]
915 #[derive(Debug, PartialEq, Eq, Hash)]
916 pub enum RankedFeedErrors {
917 #[allow(missing_docs)]
918 AlreadyVoted(AlreadyVoted),
919 }
920 impl RankedFeedErrors {
921 pub const SELECTORS: &'static [[u8; 4usize]] = &[[124u8, 154u8, 28u8, 249u8]];
928 pub const VARIANT_NAMES: &'static [&'static str] = &[
930 ::core::stringify!(AlreadyVoted),
931 ];
932 pub const SIGNATURES: &'static [&'static str] = &[
934 <AlreadyVoted as alloy_sol_types::SolError>::SIGNATURE,
935 ];
936 #[inline]
938 pub fn signature_by_selector(
939 selector: [u8; 4usize],
940 ) -> ::core::option::Option<&'static str> {
941 match Self::SELECTORS.binary_search(&selector) {
942 ::core::result::Result::Ok(idx) => {
943 ::core::option::Option::Some(Self::SIGNATURES[idx])
944 }
945 ::core::result::Result::Err(_) => ::core::option::Option::None,
946 }
947 }
948 #[inline]
950 pub fn name_by_selector(
951 selector: [u8; 4usize],
952 ) -> ::core::option::Option<&'static str> {
953 let sig = Self::signature_by_selector(selector)?;
954 sig.split_once('(').map(|(name, _)| name)
955 }
956 }
957 #[automatically_derived]
958 impl alloy_sol_types::SolInterface for RankedFeedErrors {
959 const NAME: &'static str = "RankedFeedErrors";
960 const MIN_DATA_LENGTH: usize = 0usize;
961 const COUNT: usize = 1usize;
962 #[inline]
963 fn selector(&self) -> [u8; 4] {
964 match self {
965 Self::AlreadyVoted(_) => {
966 <AlreadyVoted as alloy_sol_types::SolError>::SELECTOR
967 }
968 }
969 }
970 #[inline]
971 fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
972 Self::SELECTORS.get(i).copied()
973 }
974 #[inline]
975 fn valid_selector(selector: [u8; 4]) -> bool {
976 Self::SELECTORS.binary_search(&selector).is_ok()
977 }
978 #[inline]
979 #[allow(non_snake_case)]
980 fn abi_decode_raw(
981 selector: [u8; 4],
982 data: &[u8],
983 ) -> alloy_sol_types::Result<Self> {
984 static DECODE_SHIMS: &[fn(
985 &[u8],
986 ) -> alloy_sol_types::Result<RankedFeedErrors>] = &[
987 {
988 fn AlreadyVoted(
989 data: &[u8],
990 ) -> alloy_sol_types::Result<RankedFeedErrors> {
991 <AlreadyVoted as alloy_sol_types::SolError>::abi_decode_raw(data)
992 .map(RankedFeedErrors::AlreadyVoted)
993 }
994 AlreadyVoted
995 },
996 ];
997 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
998 return Err(
999 alloy_sol_types::Error::unknown_selector(
1000 <Self as alloy_sol_types::SolInterface>::NAME,
1001 selector,
1002 ),
1003 );
1004 };
1005 DECODE_SHIMS[idx](data)
1006 }
1007 #[inline]
1008 #[allow(non_snake_case)]
1009 fn abi_decode_raw_validate(
1010 selector: [u8; 4],
1011 data: &[u8],
1012 ) -> alloy_sol_types::Result<Self> {
1013 static DECODE_VALIDATE_SHIMS: &[fn(
1014 &[u8],
1015 ) -> alloy_sol_types::Result<RankedFeedErrors>] = &[
1016 {
1017 fn AlreadyVoted(
1018 data: &[u8],
1019 ) -> alloy_sol_types::Result<RankedFeedErrors> {
1020 <AlreadyVoted as alloy_sol_types::SolError>::abi_decode_raw_validate(
1021 data,
1022 )
1023 .map(RankedFeedErrors::AlreadyVoted)
1024 }
1025 AlreadyVoted
1026 },
1027 ];
1028 let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
1029 return Err(
1030 alloy_sol_types::Error::unknown_selector(
1031 <Self as alloy_sol_types::SolInterface>::NAME,
1032 selector,
1033 ),
1034 );
1035 };
1036 DECODE_VALIDATE_SHIMS[idx](data)
1037 }
1038 #[inline]
1039 fn abi_encoded_size(&self) -> usize {
1040 match self {
1041 Self::AlreadyVoted(inner) => {
1042 <AlreadyVoted as alloy_sol_types::SolError>::abi_encoded_size(inner)
1043 }
1044 }
1045 }
1046 #[inline]
1047 fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
1048 match self {
1049 Self::AlreadyVoted(inner) => {
1050 <AlreadyVoted as alloy_sol_types::SolError>::abi_encode_raw(
1051 inner,
1052 out,
1053 )
1054 }
1055 }
1056 }
1057 }
1058 #[derive(Clone)]
1060 #[derive(serde::Serialize, serde::Deserialize)]
1061 #[derive(Debug, PartialEq, Eq, Hash)]
1062 pub enum RankedFeedEvents {
1063 #[allow(missing_docs)]
1064 PostCreated(PostCreated),
1065 #[allow(missing_docs)]
1066 PostVoted(PostVoted),
1067 }
1068 impl RankedFeedEvents {
1069 pub const SELECTORS: &'static [[u8; 32usize]] = &[
1076 [
1077 152u8, 182u8, 177u8, 128u8, 117u8, 108u8, 132u8, 155u8, 91u8, 251u8,
1078 189u8, 43u8, 189u8, 9u8, 31u8, 63u8, 230u8, 75u8, 9u8, 53u8, 172u8, 25u8,
1079 84u8, 24u8, 192u8, 182u8, 25u8, 185u8, 182u8, 97u8, 199u8, 141u8,
1080 ],
1081 [
1082 237u8, 110u8, 111u8, 223u8, 153u8, 205u8, 94u8, 151u8, 20u8, 92u8, 126u8,
1083 89u8, 173u8, 233u8, 57u8, 35u8, 190u8, 25u8, 121u8, 85u8, 122u8, 119u8,
1084 230u8, 57u8, 237u8, 149u8, 162u8, 3u8, 199u8, 168u8, 232u8, 97u8,
1085 ],
1086 ];
1087 pub const VARIANT_NAMES: &'static [&'static str] = &[
1089 ::core::stringify!(PostVoted),
1090 ::core::stringify!(PostCreated),
1091 ];
1092 pub const SIGNATURES: &'static [&'static str] = &[
1094 <PostVoted as alloy_sol_types::SolEvent>::SIGNATURE,
1095 <PostCreated as alloy_sol_types::SolEvent>::SIGNATURE,
1096 ];
1097 #[inline]
1099 pub fn signature_by_selector(
1100 selector: [u8; 32usize],
1101 ) -> ::core::option::Option<&'static str> {
1102 match Self::SELECTORS.binary_search(&selector) {
1103 ::core::result::Result::Ok(idx) => {
1104 ::core::option::Option::Some(Self::SIGNATURES[idx])
1105 }
1106 ::core::result::Result::Err(_) => ::core::option::Option::None,
1107 }
1108 }
1109 #[inline]
1111 pub fn name_by_selector(
1112 selector: [u8; 32usize],
1113 ) -> ::core::option::Option<&'static str> {
1114 let sig = Self::signature_by_selector(selector)?;
1115 sig.split_once('(').map(|(name, _)| name)
1116 }
1117 }
1118 #[automatically_derived]
1119 impl alloy_sol_types::SolEventInterface for RankedFeedEvents {
1120 const NAME: &'static str = "RankedFeedEvents";
1121 const COUNT: usize = 2usize;
1122 fn decode_raw_log(
1123 topics: &[alloy_sol_types::Word],
1124 data: &[u8],
1125 ) -> alloy_sol_types::Result<Self> {
1126 match topics.first().copied() {
1127 Some(<PostCreated as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
1128 <PostCreated as alloy_sol_types::SolEvent>::decode_raw_log(
1129 topics,
1130 data,
1131 )
1132 .map(Self::PostCreated)
1133 }
1134 Some(<PostVoted as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
1135 <PostVoted as alloy_sol_types::SolEvent>::decode_raw_log(
1136 topics,
1137 data,
1138 )
1139 .map(Self::PostVoted)
1140 }
1141 _ => {
1142 alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog {
1143 name: <Self as alloy_sol_types::SolEventInterface>::NAME,
1144 log: alloy_sol_types::private::Box::new(
1145 alloy_sol_types::private::LogData::new_unchecked(
1146 topics.to_vec(),
1147 data.to_vec().into(),
1148 ),
1149 ),
1150 })
1151 }
1152 }
1153 }
1154 }
1155 #[automatically_derived]
1156 impl alloy_sol_types::private::IntoLogData for RankedFeedEvents {
1157 fn to_log_data(&self) -> alloy_sol_types::private::LogData {
1158 match self {
1159 Self::PostCreated(inner) => {
1160 alloy_sol_types::private::IntoLogData::to_log_data(inner)
1161 }
1162 Self::PostVoted(inner) => {
1163 alloy_sol_types::private::IntoLogData::to_log_data(inner)
1164 }
1165 }
1166 }
1167 fn into_log_data(self) -> alloy_sol_types::private::LogData {
1168 match self {
1169 Self::PostCreated(inner) => {
1170 alloy_sol_types::private::IntoLogData::into_log_data(inner)
1171 }
1172 Self::PostVoted(inner) => {
1173 alloy_sol_types::private::IntoLogData::into_log_data(inner)
1174 }
1175 }
1176 }
1177 }
1178 use alloy::contract as alloy_contract;
1179 #[inline]
1183 pub const fn new<
1184 P: alloy_contract::private::Provider<N>,
1185 N: alloy_contract::private::Network,
1186 >(
1187 address: alloy_sol_types::private::Address,
1188 __provider: P,
1189 ) -> RankedFeedInstance<P, N> {
1190 RankedFeedInstance::<P, N>::new(address, __provider)
1191 }
1192 #[inline]
1198 pub fn deploy<
1199 P: alloy_contract::private::Provider<N>,
1200 N: alloy_contract::private::Network,
1201 >(
1202 __provider: P,
1203 ) -> impl ::core::future::Future<
1204 Output = alloy_contract::Result<RankedFeedInstance<P, N>>,
1205 > {
1206 RankedFeedInstance::<P, N>::deploy(__provider)
1207 }
1208 #[inline]
1214 pub fn deploy_builder<
1215 P: alloy_contract::private::Provider<N>,
1216 N: alloy_contract::private::Network,
1217 >(__provider: P) -> alloy_contract::RawCallBuilder<P, N> {
1218 RankedFeedInstance::<P, N>::deploy_builder(__provider)
1219 }
1220 #[derive(Clone)]
1232 pub struct RankedFeedInstance<P, N = alloy_contract::private::Ethereum> {
1233 address: alloy_sol_types::private::Address,
1234 provider: P,
1235 _network: ::core::marker::PhantomData<N>,
1236 }
1237 #[automatically_derived]
1238 impl<P, N> ::core::fmt::Debug for RankedFeedInstance<P, N> {
1239 #[inline]
1240 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1241 f.debug_tuple("RankedFeedInstance").field(&self.address).finish()
1242 }
1243 }
1244 impl<
1246 P: alloy_contract::private::Provider<N>,
1247 N: alloy_contract::private::Network,
1248 > RankedFeedInstance<P, N> {
1249 #[inline]
1253 pub const fn new(
1254 address: alloy_sol_types::private::Address,
1255 __provider: P,
1256 ) -> Self {
1257 Self {
1258 address,
1259 provider: __provider,
1260 _network: ::core::marker::PhantomData,
1261 }
1262 }
1263 #[inline]
1269 pub async fn deploy(
1270 __provider: P,
1271 ) -> alloy_contract::Result<RankedFeedInstance<P, N>> {
1272 let call_builder = Self::deploy_builder(__provider);
1273 let contract_address = call_builder.deploy().await?;
1274 Ok(Self::new(contract_address, call_builder.provider))
1275 }
1276 #[inline]
1282 pub fn deploy_builder(__provider: P) -> alloy_contract::RawCallBuilder<P, N> {
1283 alloy_contract::RawCallBuilder::new_raw_deploy(
1284 __provider,
1285 ::core::clone::Clone::clone(&BYTECODE),
1286 )
1287 }
1288 #[inline]
1290 pub const fn address(&self) -> &alloy_sol_types::private::Address {
1291 &self.address
1292 }
1293 #[inline]
1295 pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
1296 self.address = address;
1297 }
1298 pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
1300 self.set_address(address);
1301 self
1302 }
1303 #[inline]
1305 pub const fn provider(&self) -> &P {
1306 &self.provider
1307 }
1308 }
1309 impl<P: ::core::clone::Clone, N> RankedFeedInstance<&P, N> {
1310 #[inline]
1312 pub fn with_cloned_provider(self) -> RankedFeedInstance<P, N> {
1313 RankedFeedInstance {
1314 address: self.address,
1315 provider: ::core::clone::Clone::clone(&self.provider),
1316 _network: ::core::marker::PhantomData,
1317 }
1318 }
1319 }
1320 impl<
1322 P: alloy_contract::private::Provider<N>,
1323 N: alloy_contract::private::Network,
1324 > RankedFeedInstance<P, N> {
1325 pub fn call_builder<C: alloy_sol_types::SolCall>(
1330 &self,
1331 call: &C,
1332 ) -> alloy_contract::SolCallBuilder<&P, C, N> {
1333 alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
1334 }
1335 pub fn createPost(
1337 &self,
1338 post_data: alloy::sol_types::private::Bytes,
1339 ) -> alloy_contract::SolCallBuilder<&P, createPostCall, N> {
1340 self.call_builder(&createPostCall { post_data })
1341 }
1342 pub fn votePost(
1344 &self,
1345 post_id: alloy::sol_types::private::FixedBytes<32>,
1346 ) -> alloy_contract::SolCallBuilder<&P, votePostCall, N> {
1347 self.call_builder(&votePostCall { post_id })
1348 }
1349 }
1350 impl<
1352 P: alloy_contract::private::Provider<N>,
1353 N: alloy_contract::private::Network,
1354 > RankedFeedInstance<P, N> {
1355 pub fn event_filter<E: alloy_sol_types::SolEvent>(
1360 &self,
1361 ) -> alloy_contract::Event<&P, E, N> {
1362 alloy_contract::Event::new_sol(&self.provider, &self.address)
1363 }
1364 pub fn PostCreated_filter(&self) -> alloy_contract::Event<&P, PostCreated, N> {
1366 self.event_filter::<PostCreated>()
1367 }
1368 pub fn PostVoted_filter(&self) -> alloy_contract::Event<&P, PostVoted, N> {
1370 self.event_filter::<PostVoted>()
1371 }
1372 }
1373}