///Module containing a contract's types and functions.
/**
```solidity
library BN254 {
struct G1Point { uint256 X; uint256 Y; }
struct G2Point { uint256[2] X; uint256[2] Y; }
}
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style,
clippy::empty_structs_with_brackets
)]
pub mod BN254 {
use super::*;
use alloy::sol_types as alloy_sol_types;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**```solidity
struct G1Point { uint256 X; uint256 Y; }
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct G1Point {
#[allow(missing_docs)]
pub X: alloy::sol_types::private::primitives::aliases::U256,
#[allow(missing_docs)]
pub Y: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Uint<256>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::primitives::aliases::U256,
alloy::sol_types::private::primitives::aliases::U256,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<G1Point> for UnderlyingRustTuple<'_> {
fn from(value: G1Point) -> Self {
(value.X, value.Y)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for G1Point {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
X: tuple.0,
Y: tuple.1,
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolValue for G1Point {
type SolType = Self;
}
#[automatically_derived]
impl alloy_sol_types::private::SolTypeValue<Self> for G1Point {
#[inline]
fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.X,
),
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.Y,
),
)
}
#[inline]
fn stv_abi_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
}
#[inline]
fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
<Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
}
#[inline]
fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encode_packed_to(
&tuple, out,
)
}
#[inline]
fn stv_abi_packed_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_packed_encoded_size(
&tuple,
)
}
}
#[automatically_derived]
impl alloy_sol_types::SolType for G1Point {
type RustType = Self;
type Token<'a> = <UnderlyingSolTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
const ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::ENCODED_SIZE;
const PACKED_ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
#[inline]
fn valid_token(token: &Self::Token<'_>) -> bool {
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
}
#[inline]
fn detokenize(token: Self::Token<'_>) -> Self::RustType {
let tuple = <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::detokenize(token);
<Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
}
}
#[automatically_derived]
impl alloy_sol_types::SolStruct for G1Point {
const NAME: &'static str = "G1Point";
#[inline]
fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
alloy_sol_types::private::Cow::Borrowed("G1Point(uint256 X,uint256 Y)")
}
#[inline]
fn eip712_components(
) -> alloy_sol_types::private::Vec<alloy_sol_types::private::Cow<'static, str>>
{
alloy_sol_types::private::Vec::new()
}
#[inline]
fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
<Self as alloy_sol_types::SolStruct>::eip712_root_type()
}
#[inline]
fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
[
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::eip712_data_word(&self.X)
.0,
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::eip712_data_word(&self.Y)
.0,
]
.concat()
}
}
#[automatically_derived]
impl alloy_sol_types::EventTopic for G1Point {
#[inline]
fn topic_preimage_length(rust: &Self::RustType) -> usize {
0usize
+ <alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.X)
+ <alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.Y)
}
#[inline]
fn encode_topic_preimage(
rust: &Self::RustType,
out: &mut alloy_sol_types::private::Vec<u8>,
) {
out.reserve(<Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust));
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.X, out);
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(&rust.Y, out);
}
#[inline]
fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
let mut out = alloy_sol_types::private::Vec::new();
<Self as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, &mut out);
alloy_sol_types::abi::token::WordToken(alloy_sol_types::private::keccak256(out))
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**```solidity
struct G2Point { uint256[2] X; uint256[2] Y; }
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct G2Point {
#[allow(missing_docs)]
pub X: [alloy::sol_types::private::primitives::aliases::U256; 2usize],
#[allow(missing_docs)]
pub Y: [alloy::sol_types::private::primitives::aliases::U256; 2usize],
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::FixedArray<alloy::sol_types::sol_data::Uint<256>, 2usize>,
alloy::sol_types::sol_data::FixedArray<alloy::sol_types::sol_data::Uint<256>, 2usize>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
[alloy::sol_types::private::primitives::aliases::U256; 2usize],
[alloy::sol_types::private::primitives::aliases::U256; 2usize],
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<G2Point> for UnderlyingRustTuple<'_> {
fn from(value: G2Point) -> Self {
(value.X, value.Y)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for G2Point {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
X: tuple.0,
Y: tuple.1,
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolValue for G2Point {
type SolType = Self;
}
#[automatically_derived]
impl alloy_sol_types::private::SolTypeValue<Self> for G2Point {
#[inline]
fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
(
<alloy::sol_types::sol_data::FixedArray<
alloy::sol_types::sol_data::Uint<256>,
2usize,
> as alloy_sol_types::SolType>::tokenize(&self.X),
<alloy::sol_types::sol_data::FixedArray<
alloy::sol_types::sol_data::Uint<256>,
2usize,
> as alloy_sol_types::SolType>::tokenize(&self.Y),
)
}
#[inline]
fn stv_abi_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
}
#[inline]
fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
<Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
}
#[inline]
fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encode_packed_to(
&tuple, out,
)
}
#[inline]
fn stv_abi_packed_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_packed_encoded_size(
&tuple,
)
}
}
#[automatically_derived]
impl alloy_sol_types::SolType for G2Point {
type RustType = Self;
type Token<'a> = <UnderlyingSolTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
const ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::ENCODED_SIZE;
const PACKED_ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
#[inline]
fn valid_token(token: &Self::Token<'_>) -> bool {
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
}
#[inline]
fn detokenize(token: Self::Token<'_>) -> Self::RustType {
let tuple = <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::detokenize(token);
<Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
}
}
#[automatically_derived]
impl alloy_sol_types::SolStruct for G2Point {
const NAME: &'static str = "G2Point";
#[inline]
fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
alloy_sol_types::private::Cow::Borrowed("G2Point(uint256[2] X,uint256[2] Y)")
}
#[inline]
fn eip712_components(
) -> alloy_sol_types::private::Vec<alloy_sol_types::private::Cow<'static, str>>
{
alloy_sol_types::private::Vec::new()
}
#[inline]
fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
<Self as alloy_sol_types::SolStruct>::eip712_root_type()
}
#[inline]
fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
[
<alloy::sol_types::sol_data::FixedArray<
alloy::sol_types::sol_data::Uint<256>,
2usize,
> as alloy_sol_types::SolType>::eip712_data_word(&self.X)
.0,
<alloy::sol_types::sol_data::FixedArray<
alloy::sol_types::sol_data::Uint<256>,
2usize,
> as alloy_sol_types::SolType>::eip712_data_word(&self.Y)
.0,
]
.concat()
}
}
#[automatically_derived]
impl alloy_sol_types::EventTopic for G2Point {
#[inline]
fn topic_preimage_length(rust: &Self::RustType) -> usize {
0usize
+ <alloy::sol_types::sol_data::FixedArray<
alloy::sol_types::sol_data::Uint<256>,
2usize,
> as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.X
)
+ <alloy::sol_types::sol_data::FixedArray<
alloy::sol_types::sol_data::Uint<256>,
2usize,
> as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.Y
)
}
#[inline]
fn encode_topic_preimage(
rust: &Self::RustType,
out: &mut alloy_sol_types::private::Vec<u8>,
) {
out.reserve(<Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust));
<alloy::sol_types::sol_data::FixedArray<
alloy::sol_types::sol_data::Uint<256>,
2usize,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.X, out
);
<alloy::sol_types::sol_data::FixedArray<
alloy::sol_types::sol_data::Uint<256>,
2usize,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.Y, out
);
}
#[inline]
fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
let mut out = alloy_sol_types::private::Vec::new();
<Self as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, &mut out);
alloy_sol_types::abi::token::WordToken(alloy_sol_types::private::keccak256(out))
}
}
};
use alloy::contract as alloy_contract;
/**Creates a new wrapper around an on-chain [`BN254`](self) contract instance.
See the [wrapper's documentation](`BN254Instance`) for more details.*/
#[inline]
pub const fn new<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
>(
address: alloy_sol_types::private::Address,
provider: P,
) -> BN254Instance<P, N> {
BN254Instance::<P, N>::new(address, provider)
}
/**A [`BN254`](self) instance.
Contains type-safe methods for interacting with an on-chain instance of the
[`BN254`](self) contract located at a given `address`, using a given
provider `P`.
If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
documentation on how to provide it), the `deploy` and `deploy_builder` methods can
be used to deploy a new instance of the contract.
See the [module-level documentation](self) for all the available methods.*/
#[derive(Clone)]
pub struct BN254Instance<P, N = alloy_contract::private::Ethereum> {
address: alloy_sol_types::private::Address,
provider: P,
_network: ::core::marker::PhantomData<N>,
}
#[automatically_derived]
impl<P, N> ::core::fmt::Debug for BN254Instance<P, N> {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("BN254Instance").field(&self.address).finish()
}
}
/// Instantiation and getters/setters.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
BN254Instance<P, N>
{
/**Creates a new wrapper around an on-chain [`BN254`](self) contract instance.
See the [wrapper's documentation](`BN254Instance`) for more details.*/
#[inline]
pub const fn new(address: alloy_sol_types::private::Address, provider: P) -> Self {
Self {
address,
provider,
_network: ::core::marker::PhantomData,
}
}
/// Returns a reference to the address.
#[inline]
pub const fn address(&self) -> &alloy_sol_types::private::Address {
&self.address
}
/// Sets the address.
#[inline]
pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
self.address = address;
}
/// Sets the address and returns `self`.
pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
self.set_address(address);
self
}
/// Returns a reference to the provider.
#[inline]
pub const fn provider(&self) -> &P {
&self.provider
}
}
impl<P: ::core::clone::Clone, N> BN254Instance<&P, N> {
/// Clones the provider and returns a new instance with the cloned provider.
#[inline]
pub fn with_cloned_provider(self) -> BN254Instance<P, N> {
BN254Instance {
address: self.address,
provider: ::core::clone::Clone::clone(&self.provider),
_network: ::core::marker::PhantomData,
}
}
}
/// Function calls.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
BN254Instance<P, N>
{
/// Creates a new call builder using this contract instance's provider and address.
///
/// Note that the call can be any function call, not just those defined in this
/// contract. Prefer using the other methods for building type-safe contract calls.
pub fn call_builder<C: alloy_sol_types::SolCall>(
&self,
call: &C,
) -> alloy_contract::SolCallBuilder<&P, C, N> {
alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
}
}
/// Event filters.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
BN254Instance<P, N>
{
/// Creates a new event filter using this contract instance's provider and address.
///
/// Note that the type can be any event, not just those defined in this contract.
/// Prefer using the other methods for building type-safe event filters.
pub fn event_filter<E: alloy_sol_types::SolEvent>(
&self,
) -> alloy_contract::Event<&P, E, N> {
alloy_contract::Event::new_sol(&self.provider, &self.address)
}
}
}
///Module containing a contract's types and functions.
/**
```solidity
library IBLSApkRegistry {
struct PubkeyRegistrationParams { BN254.G1Point pubkeyRegistrationSignature; BN254.G1Point pubkeyG1; BN254.G2Point pubkeyG2; }
}
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style,
clippy::empty_structs_with_brackets
)]
pub mod IBLSApkRegistry {
use super::*;
use alloy::sol_types as alloy_sol_types;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**```solidity
struct PubkeyRegistrationParams { BN254.G1Point pubkeyRegistrationSignature; BN254.G1Point pubkeyG1; BN254.G2Point pubkeyG2; }
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct PubkeyRegistrationParams {
#[allow(missing_docs)]
pub pubkeyRegistrationSignature: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
#[allow(missing_docs)]
pub pubkeyG1: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
#[allow(missing_docs)]
pub pubkeyG2: <BN254::G2Point as alloy::sol_types::SolType>::RustType,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (BN254::G1Point, BN254::G1Point, BN254::G2Point);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
<BN254::G1Point as alloy::sol_types::SolType>::RustType,
<BN254::G1Point as alloy::sol_types::SolType>::RustType,
<BN254::G2Point as alloy::sol_types::SolType>::RustType,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<PubkeyRegistrationParams> for UnderlyingRustTuple<'_> {
fn from(value: PubkeyRegistrationParams) -> Self {
(
value.pubkeyRegistrationSignature,
value.pubkeyG1,
value.pubkeyG2,
)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for PubkeyRegistrationParams {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
pubkeyRegistrationSignature: tuple.0,
pubkeyG1: tuple.1,
pubkeyG2: tuple.2,
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolValue for PubkeyRegistrationParams {
type SolType = Self;
}
#[automatically_derived]
impl alloy_sol_types::private::SolTypeValue<Self> for PubkeyRegistrationParams {
#[inline]
fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
(
<BN254::G1Point as alloy_sol_types::SolType>::tokenize(
&self.pubkeyRegistrationSignature,
),
<BN254::G1Point as alloy_sol_types::SolType>::tokenize(&self.pubkeyG1),
<BN254::G2Point as alloy_sol_types::SolType>::tokenize(&self.pubkeyG2),
)
}
#[inline]
fn stv_abi_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
}
#[inline]
fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
<Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
}
#[inline]
fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encode_packed_to(
&tuple, out,
)
}
#[inline]
fn stv_abi_packed_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_packed_encoded_size(
&tuple,
)
}
}
#[automatically_derived]
impl alloy_sol_types::SolType for PubkeyRegistrationParams {
type RustType = Self;
type Token<'a> = <UnderlyingSolTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
const ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::ENCODED_SIZE;
const PACKED_ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
#[inline]
fn valid_token(token: &Self::Token<'_>) -> bool {
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
}
#[inline]
fn detokenize(token: Self::Token<'_>) -> Self::RustType {
let tuple = <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::detokenize(token);
<Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
}
}
#[automatically_derived]
impl alloy_sol_types::SolStruct for PubkeyRegistrationParams {
const NAME: &'static str = "PubkeyRegistrationParams";
#[inline]
fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
alloy_sol_types::private::Cow::Borrowed(
"PubkeyRegistrationParams(BN254.G1Point pubkeyRegistrationSignature,BN254.G1Point pubkeyG1,BN254.G2Point pubkeyG2)",
)
}
#[inline]
fn eip712_components(
) -> alloy_sol_types::private::Vec<alloy_sol_types::private::Cow<'static, str>>
{
let mut components = alloy_sol_types::private::Vec::with_capacity(3);
components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
components
.extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
components.push(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_root_type());
components
.extend(<BN254::G1Point as alloy_sol_types::SolStruct>::eip712_components());
components.push(<BN254::G2Point as alloy_sol_types::SolStruct>::eip712_root_type());
components
.extend(<BN254::G2Point as alloy_sol_types::SolStruct>::eip712_components());
components
}
#[inline]
fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
[
<BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(
&self.pubkeyRegistrationSignature,
)
.0,
<BN254::G1Point as alloy_sol_types::SolType>::eip712_data_word(&self.pubkeyG1)
.0,
<BN254::G2Point as alloy_sol_types::SolType>::eip712_data_word(&self.pubkeyG2)
.0,
]
.concat()
}
}
#[automatically_derived]
impl alloy_sol_types::EventTopic for PubkeyRegistrationParams {
#[inline]
fn topic_preimage_length(rust: &Self::RustType) -> usize {
0usize
+ <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.pubkeyRegistrationSignature,
)
+ <BN254::G1Point as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.pubkeyG1,
)
+ <BN254::G2Point as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.pubkeyG2,
)
}
#[inline]
fn encode_topic_preimage(
rust: &Self::RustType,
out: &mut alloy_sol_types::private::Vec<u8>,
) {
out.reserve(<Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust));
<BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.pubkeyRegistrationSignature,
out,
);
<BN254::G1Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.pubkeyG1,
out,
);
<BN254::G2Point as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.pubkeyG2,
out,
);
}
#[inline]
fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
let mut out = alloy_sol_types::private::Vec::new();
<Self as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, &mut out);
alloy_sol_types::abi::token::WordToken(alloy_sol_types::private::keccak256(out))
}
}
};
use alloy::contract as alloy_contract;
/**Creates a new wrapper around an on-chain [`IBLSApkRegistry`](self) contract instance.
See the [wrapper's documentation](`IBLSApkRegistryInstance`) for more details.*/
#[inline]
pub const fn new<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
>(
address: alloy_sol_types::private::Address,
provider: P,
) -> IBLSApkRegistryInstance<P, N> {
IBLSApkRegistryInstance::<P, N>::new(address, provider)
}
/**A [`IBLSApkRegistry`](self) instance.
Contains type-safe methods for interacting with an on-chain instance of the
[`IBLSApkRegistry`](self) contract located at a given `address`, using a given
provider `P`.
If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
documentation on how to provide it), the `deploy` and `deploy_builder` methods can
be used to deploy a new instance of the contract.
See the [module-level documentation](self) for all the available methods.*/
#[derive(Clone)]
pub struct IBLSApkRegistryInstance<P, N = alloy_contract::private::Ethereum> {
address: alloy_sol_types::private::Address,
provider: P,
_network: ::core::marker::PhantomData<N>,
}
#[automatically_derived]
impl<P, N> ::core::fmt::Debug for IBLSApkRegistryInstance<P, N> {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("IBLSApkRegistryInstance")
.field(&self.address)
.finish()
}
}
/// Instantiation and getters/setters.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
IBLSApkRegistryInstance<P, N>
{
/**Creates a new wrapper around an on-chain [`IBLSApkRegistry`](self) contract instance.
See the [wrapper's documentation](`IBLSApkRegistryInstance`) for more details.*/
#[inline]
pub const fn new(address: alloy_sol_types::private::Address, provider: P) -> Self {
Self {
address,
provider,
_network: ::core::marker::PhantomData,
}
}
/// Returns a reference to the address.
#[inline]
pub const fn address(&self) -> &alloy_sol_types::private::Address {
&self.address
}
/// Sets the address.
#[inline]
pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
self.address = address;
}
/// Sets the address and returns `self`.
pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
self.set_address(address);
self
}
/// Returns a reference to the provider.
#[inline]
pub const fn provider(&self) -> &P {
&self.provider
}
}
impl<P: ::core::clone::Clone, N> IBLSApkRegistryInstance<&P, N> {
/// Clones the provider and returns a new instance with the cloned provider.
#[inline]
pub fn with_cloned_provider(self) -> IBLSApkRegistryInstance<P, N> {
IBLSApkRegistryInstance {
address: self.address,
provider: ::core::clone::Clone::clone(&self.provider),
_network: ::core::marker::PhantomData,
}
}
}
/// Function calls.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
IBLSApkRegistryInstance<P, N>
{
/// Creates a new call builder using this contract instance's provider and address.
///
/// Note that the call can be any function call, not just those defined in this
/// contract. Prefer using the other methods for building type-safe contract calls.
pub fn call_builder<C: alloy_sol_types::SolCall>(
&self,
call: &C,
) -> alloy_contract::SolCallBuilder<&P, C, N> {
alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
}
}
/// Event filters.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
IBLSApkRegistryInstance<P, N>
{
/// Creates a new event filter using this contract instance's provider and address.
///
/// Note that the type can be any event, not just those defined in this contract.
/// Prefer using the other methods for building type-safe event filters.
pub fn event_filter<E: alloy_sol_types::SolEvent>(
&self,
) -> alloy_contract::Event<&P, E, N> {
alloy_contract::Event::new_sol(&self.provider, &self.address)
}
}
}
///Module containing a contract's types and functions.
/**
```solidity
library IRegistryCoordinator {
type OperatorStatus is uint8;
struct OperatorInfo { bytes32 operatorId; OperatorStatus status; }
struct OperatorKickParam { uint8 quorumNumber; address operator; }
struct OperatorSetParam { uint32 maxOperatorCount; uint16 kickBIPsOfOperatorStake; uint16 kickBIPsOfTotalStake; }
struct QuorumBitmapUpdate { uint32 updateBlockNumber; uint32 nextUpdateBlockNumber; uint192 quorumBitmap; }
}
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style,
clippy::empty_structs_with_brackets
)]
pub mod IRegistryCoordinator {
use super::*;
use alloy::sol_types as alloy_sol_types;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct OperatorStatus(u8);
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[automatically_derived]
impl alloy_sol_types::private::SolTypeValue<OperatorStatus> for u8 {
#[inline]
fn stv_to_tokens(
&self,
) -> <alloy::sol_types::sol_data::Uint<8> as alloy_sol_types::SolType>::Token<'_>
{
alloy_sol_types::private::SolTypeValue::<
alloy::sol_types::sol_data::Uint<8>,
>::stv_to_tokens(self)
}
#[inline]
fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
<alloy::sol_types::sol_data::Uint<8> as alloy_sol_types::SolType>::tokenize(self).0
}
#[inline]
fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
<alloy::sol_types::sol_data::Uint<
8,
> as alloy_sol_types::SolType>::abi_encode_packed_to(self, out)
}
#[inline]
fn stv_abi_packed_encoded_size(&self) -> usize {
<alloy::sol_types::sol_data::Uint<8> as alloy_sol_types::SolType>::abi_encoded_size(
self,
)
}
}
#[automatically_derived]
impl OperatorStatus {
/// The Solidity type name.
pub const NAME: &'static str = stringify!(@ name);
/// Convert from the underlying value type.
#[inline]
pub const fn from_underlying(value: u8) -> Self {
Self(value)
}
/// Return the underlying value.
#[inline]
pub const fn into_underlying(self) -> u8 {
self.0
}
/// Return the single encoding of this value, delegating to the
/// underlying type.
#[inline]
pub fn abi_encode(&self) -> alloy_sol_types::private::Vec<u8> {
<Self as alloy_sol_types::SolType>::abi_encode(&self.0)
}
/// Return the packed encoding of this value, delegating to the
/// underlying type.
#[inline]
pub fn abi_encode_packed(&self) -> alloy_sol_types::private::Vec<u8> {
<Self as alloy_sol_types::SolType>::abi_encode_packed(&self.0)
}
}
#[automatically_derived]
impl From<u8> for OperatorStatus {
fn from(value: u8) -> Self {
Self::from_underlying(value)
}
}
#[automatically_derived]
impl From<OperatorStatus> for u8 {
fn from(value: OperatorStatus) -> Self {
value.into_underlying()
}
}
#[automatically_derived]
impl alloy_sol_types::SolType for OperatorStatus {
type RustType = u8;
type Token<'a> =
<alloy::sol_types::sol_data::Uint<8> as alloy_sol_types::SolType>::Token<'a>;
const SOL_NAME: &'static str = Self::NAME;
const ENCODED_SIZE: Option<usize> =
<alloy::sol_types::sol_data::Uint<8> as alloy_sol_types::SolType>::ENCODED_SIZE;
const PACKED_ENCODED_SIZE: Option<usize> = <alloy::sol_types::sol_data::Uint<
8,
> as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
#[inline]
fn valid_token(token: &Self::Token<'_>) -> bool {
Self::type_check(token).is_ok()
}
#[inline]
fn type_check(token: &Self::Token<'_>) -> alloy_sol_types::Result<()> {
<alloy::sol_types::sol_data::Uint<8> as alloy_sol_types::SolType>::type_check(token)
}
#[inline]
fn detokenize(token: Self::Token<'_>) -> Self::RustType {
<alloy::sol_types::sol_data::Uint<8> as alloy_sol_types::SolType>::detokenize(token)
}
}
#[automatically_derived]
impl alloy_sol_types::EventTopic for OperatorStatus {
#[inline]
fn topic_preimage_length(rust: &Self::RustType) -> usize {
<alloy::sol_types::sol_data::Uint<
8,
> as alloy_sol_types::EventTopic>::topic_preimage_length(rust)
}
#[inline]
fn encode_topic_preimage(
rust: &Self::RustType,
out: &mut alloy_sol_types::private::Vec<u8>,
) {
<alloy::sol_types::sol_data::Uint<
8,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, out)
}
#[inline]
fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
<alloy::sol_types::sol_data::Uint<8> as alloy_sol_types::EventTopic>::encode_topic(
rust,
)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**```solidity
struct OperatorInfo { bytes32 operatorId; OperatorStatus status; }
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct OperatorInfo {
#[allow(missing_docs)]
pub operatorId: alloy::sol_types::private::FixedBytes<32>,
#[allow(missing_docs)]
pub status: <OperatorStatus as alloy::sol_types::SolType>::RustType,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>, OperatorStatus);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::FixedBytes<32>,
<OperatorStatus as alloy::sol_types::SolType>::RustType,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<OperatorInfo> for UnderlyingRustTuple<'_> {
fn from(value: OperatorInfo) -> Self {
(value.operatorId, value.status)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for OperatorInfo {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
operatorId: tuple.0,
status: tuple.1,
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolValue for OperatorInfo {
type SolType = Self;
}
#[automatically_derived]
impl alloy_sol_types::private::SolTypeValue<Self> for OperatorInfo {
#[inline]
fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(&self.operatorId),
<OperatorStatus as alloy_sol_types::SolType>::tokenize(&self.status),
)
}
#[inline]
fn stv_abi_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
}
#[inline]
fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
<Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
}
#[inline]
fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encode_packed_to(
&tuple, out,
)
}
#[inline]
fn stv_abi_packed_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_packed_encoded_size(
&tuple,
)
}
}
#[automatically_derived]
impl alloy_sol_types::SolType for OperatorInfo {
type RustType = Self;
type Token<'a> = <UnderlyingSolTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
const ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::ENCODED_SIZE;
const PACKED_ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
#[inline]
fn valid_token(token: &Self::Token<'_>) -> bool {
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
}
#[inline]
fn detokenize(token: Self::Token<'_>) -> Self::RustType {
let tuple = <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::detokenize(token);
<Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
}
}
#[automatically_derived]
impl alloy_sol_types::SolStruct for OperatorInfo {
const NAME: &'static str = "OperatorInfo";
#[inline]
fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
alloy_sol_types::private::Cow::Borrowed(
"OperatorInfo(bytes32 operatorId,uint8 status)",
)
}
#[inline]
fn eip712_components(
) -> alloy_sol_types::private::Vec<alloy_sol_types::private::Cow<'static, str>>
{
alloy_sol_types::private::Vec::new()
}
#[inline]
fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
<Self as alloy_sol_types::SolStruct>::eip712_root_type()
}
#[inline]
fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
[
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::eip712_data_word(&self.operatorId)
.0,
<OperatorStatus as alloy_sol_types::SolType>::eip712_data_word(
&self.status,
)
.0,
]
.concat()
}
}
#[automatically_derived]
impl alloy_sol_types::EventTopic for OperatorInfo {
#[inline]
fn topic_preimage_length(rust: &Self::RustType) -> usize {
0usize
+ <alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.operatorId,
)
+ <OperatorStatus as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.status,
)
}
#[inline]
fn encode_topic_preimage(
rust: &Self::RustType,
out: &mut alloy_sol_types::private::Vec<u8>,
) {
out.reserve(<Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust));
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.operatorId,
out,
);
<OperatorStatus as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.status,
out,
);
}
#[inline]
fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
let mut out = alloy_sol_types::private::Vec::new();
<Self as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, &mut out);
alloy_sol_types::abi::token::WordToken(alloy_sol_types::private::keccak256(out))
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**```solidity
struct OperatorKickParam { uint8 quorumNumber; address operator; }
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct OperatorKickParam {
#[allow(missing_docs)]
pub quorumNumber: u8,
#[allow(missing_docs)]
pub operator: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Uint<8>,
alloy::sol_types::sol_data::Address,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (u8, alloy::sol_types::private::Address);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<OperatorKickParam> for UnderlyingRustTuple<'_> {
fn from(value: OperatorKickParam) -> Self {
(value.quorumNumber, value.operator)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for OperatorKickParam {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
quorumNumber: tuple.0,
operator: tuple.1,
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolValue for OperatorKickParam {
type SolType = Self;
}
#[automatically_derived]
impl alloy_sol_types::private::SolTypeValue<Self> for OperatorKickParam {
#[inline]
fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
(
<alloy::sol_types::sol_data::Uint<8> as alloy_sol_types::SolType>::tokenize(
&self.quorumNumber,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.operator,
),
)
}
#[inline]
fn stv_abi_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
}
#[inline]
fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
<Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
}
#[inline]
fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encode_packed_to(
&tuple, out,
)
}
#[inline]
fn stv_abi_packed_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_packed_encoded_size(
&tuple,
)
}
}
#[automatically_derived]
impl alloy_sol_types::SolType for OperatorKickParam {
type RustType = Self;
type Token<'a> = <UnderlyingSolTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
const ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::ENCODED_SIZE;
const PACKED_ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
#[inline]
fn valid_token(token: &Self::Token<'_>) -> bool {
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
}
#[inline]
fn detokenize(token: Self::Token<'_>) -> Self::RustType {
let tuple = <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::detokenize(token);
<Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
}
}
#[automatically_derived]
impl alloy_sol_types::SolStruct for OperatorKickParam {
const NAME: &'static str = "OperatorKickParam";
#[inline]
fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
alloy_sol_types::private::Cow::Borrowed(
"OperatorKickParam(uint8 quorumNumber,address operator)",
)
}
#[inline]
fn eip712_components(
) -> alloy_sol_types::private::Vec<alloy_sol_types::private::Cow<'static, str>>
{
alloy_sol_types::private::Vec::new()
}
#[inline]
fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
<Self as alloy_sol_types::SolStruct>::eip712_root_type()
}
#[inline]
fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
[
<alloy::sol_types::sol_data::Uint<
8,
> as alloy_sol_types::SolType>::eip712_data_word(&self.quorumNumber)
.0,
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::eip712_data_word(
&self.operator,
)
.0,
]
.concat()
}
}
#[automatically_derived]
impl alloy_sol_types::EventTopic for OperatorKickParam {
#[inline]
fn topic_preimage_length(rust: &Self::RustType) -> usize {
0usize
+ <alloy::sol_types::sol_data::Uint<
8,
> as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.quorumNumber,
)
+ <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.operator,
)
}
#[inline]
fn encode_topic_preimage(
rust: &Self::RustType,
out: &mut alloy_sol_types::private::Vec<u8>,
) {
out.reserve(<Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust));
<alloy::sol_types::sol_data::Uint<
8,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.quorumNumber,
out,
);
<alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.operator,
out,
);
}
#[inline]
fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
let mut out = alloy_sol_types::private::Vec::new();
<Self as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, &mut out);
alloy_sol_types::abi::token::WordToken(alloy_sol_types::private::keccak256(out))
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**```solidity
struct OperatorSetParam { uint32 maxOperatorCount; uint16 kickBIPsOfOperatorStake; uint16 kickBIPsOfTotalStake; }
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct OperatorSetParam {
#[allow(missing_docs)]
pub maxOperatorCount: u32,
#[allow(missing_docs)]
pub kickBIPsOfOperatorStake: u16,
#[allow(missing_docs)]
pub kickBIPsOfTotalStake: u16,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Uint<32>,
alloy::sol_types::sol_data::Uint<16>,
alloy::sol_types::sol_data::Uint<16>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (u32, u16, u16);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<OperatorSetParam> for UnderlyingRustTuple<'_> {
fn from(value: OperatorSetParam) -> Self {
(
value.maxOperatorCount,
value.kickBIPsOfOperatorStake,
value.kickBIPsOfTotalStake,
)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for OperatorSetParam {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
maxOperatorCount: tuple.0,
kickBIPsOfOperatorStake: tuple.1,
kickBIPsOfTotalStake: tuple.2,
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolValue for OperatorSetParam {
type SolType = Self;
}
#[automatically_derived]
impl alloy_sol_types::private::SolTypeValue<Self> for OperatorSetParam {
#[inline]
fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
(
<alloy::sol_types::sol_data::Uint<32> as alloy_sol_types::SolType>::tokenize(
&self.maxOperatorCount,
),
<alloy::sol_types::sol_data::Uint<16> as alloy_sol_types::SolType>::tokenize(
&self.kickBIPsOfOperatorStake,
),
<alloy::sol_types::sol_data::Uint<16> as alloy_sol_types::SolType>::tokenize(
&self.kickBIPsOfTotalStake,
),
)
}
#[inline]
fn stv_abi_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
}
#[inline]
fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
<Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
}
#[inline]
fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encode_packed_to(
&tuple, out,
)
}
#[inline]
fn stv_abi_packed_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_packed_encoded_size(
&tuple,
)
}
}
#[automatically_derived]
impl alloy_sol_types::SolType for OperatorSetParam {
type RustType = Self;
type Token<'a> = <UnderlyingSolTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
const ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::ENCODED_SIZE;
const PACKED_ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
#[inline]
fn valid_token(token: &Self::Token<'_>) -> bool {
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
}
#[inline]
fn detokenize(token: Self::Token<'_>) -> Self::RustType {
let tuple = <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::detokenize(token);
<Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
}
}
#[automatically_derived]
impl alloy_sol_types::SolStruct for OperatorSetParam {
const NAME: &'static str = "OperatorSetParam";
#[inline]
fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
alloy_sol_types::private::Cow::Borrowed(
"OperatorSetParam(uint32 maxOperatorCount,uint16 kickBIPsOfOperatorStake,uint16 kickBIPsOfTotalStake)",
)
}
#[inline]
fn eip712_components(
) -> alloy_sol_types::private::Vec<alloy_sol_types::private::Cow<'static, str>>
{
alloy_sol_types::private::Vec::new()
}
#[inline]
fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
<Self as alloy_sol_types::SolStruct>::eip712_root_type()
}
#[inline]
fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
[
<alloy::sol_types::sol_data::Uint<
32,
> as alloy_sol_types::SolType>::eip712_data_word(
&self.maxOperatorCount,
)
.0,
<alloy::sol_types::sol_data::Uint<
16,
> as alloy_sol_types::SolType>::eip712_data_word(
&self.kickBIPsOfOperatorStake,
)
.0,
<alloy::sol_types::sol_data::Uint<
16,
> as alloy_sol_types::SolType>::eip712_data_word(
&self.kickBIPsOfTotalStake,
)
.0,
]
.concat()
}
}
#[automatically_derived]
impl alloy_sol_types::EventTopic for OperatorSetParam {
#[inline]
fn topic_preimage_length(rust: &Self::RustType) -> usize {
0usize
+ <alloy::sol_types::sol_data::Uint<
32,
> as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.maxOperatorCount,
)
+ <alloy::sol_types::sol_data::Uint<
16,
> as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.kickBIPsOfOperatorStake,
)
+ <alloy::sol_types::sol_data::Uint<
16,
> as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.kickBIPsOfTotalStake,
)
}
#[inline]
fn encode_topic_preimage(
rust: &Self::RustType,
out: &mut alloy_sol_types::private::Vec<u8>,
) {
out.reserve(<Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust));
<alloy::sol_types::sol_data::Uint<
32,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.maxOperatorCount,
out,
);
<alloy::sol_types::sol_data::Uint<
16,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.kickBIPsOfOperatorStake,
out,
);
<alloy::sol_types::sol_data::Uint<
16,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.kickBIPsOfTotalStake,
out,
);
}
#[inline]
fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
let mut out = alloy_sol_types::private::Vec::new();
<Self as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, &mut out);
alloy_sol_types::abi::token::WordToken(alloy_sol_types::private::keccak256(out))
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**```solidity
struct QuorumBitmapUpdate { uint32 updateBlockNumber; uint32 nextUpdateBlockNumber; uint192 quorumBitmap; }
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct QuorumBitmapUpdate {
#[allow(missing_docs)]
pub updateBlockNumber: u32,
#[allow(missing_docs)]
pub nextUpdateBlockNumber: u32,
#[allow(missing_docs)]
pub quorumBitmap: alloy::sol_types::private::primitives::aliases::U192,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Uint<32>,
alloy::sol_types::sol_data::Uint<32>,
alloy::sol_types::sol_data::Uint<192>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
u32,
u32,
alloy::sol_types::private::primitives::aliases::U192,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<QuorumBitmapUpdate> for UnderlyingRustTuple<'_> {
fn from(value: QuorumBitmapUpdate) -> Self {
(
value.updateBlockNumber,
value.nextUpdateBlockNumber,
value.quorumBitmap,
)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for QuorumBitmapUpdate {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
updateBlockNumber: tuple.0,
nextUpdateBlockNumber: tuple.1,
quorumBitmap: tuple.2,
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolValue for QuorumBitmapUpdate {
type SolType = Self;
}
#[automatically_derived]
impl alloy_sol_types::private::SolTypeValue<Self> for QuorumBitmapUpdate {
#[inline]
fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
(
<alloy::sol_types::sol_data::Uint<32> as alloy_sol_types::SolType>::tokenize(
&self.updateBlockNumber,
),
<alloy::sol_types::sol_data::Uint<32> as alloy_sol_types::SolType>::tokenize(
&self.nextUpdateBlockNumber,
),
<alloy::sol_types::sol_data::Uint<192> as alloy_sol_types::SolType>::tokenize(
&self.quorumBitmap,
),
)
}
#[inline]
fn stv_abi_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
}
#[inline]
fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
<Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
}
#[inline]
fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encode_packed_to(
&tuple, out,
)
}
#[inline]
fn stv_abi_packed_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_packed_encoded_size(
&tuple,
)
}
}
#[automatically_derived]
impl alloy_sol_types::SolType for QuorumBitmapUpdate {
type RustType = Self;
type Token<'a> = <UnderlyingSolTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
const ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::ENCODED_SIZE;
const PACKED_ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
#[inline]
fn valid_token(token: &Self::Token<'_>) -> bool {
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
}
#[inline]
fn detokenize(token: Self::Token<'_>) -> Self::RustType {
let tuple = <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::detokenize(token);
<Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
}
}
#[automatically_derived]
impl alloy_sol_types::SolStruct for QuorumBitmapUpdate {
const NAME: &'static str = "QuorumBitmapUpdate";
#[inline]
fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
alloy_sol_types::private::Cow::Borrowed(
"QuorumBitmapUpdate(uint32 updateBlockNumber,uint32 nextUpdateBlockNumber,uint192 quorumBitmap)",
)
}
#[inline]
fn eip712_components(
) -> alloy_sol_types::private::Vec<alloy_sol_types::private::Cow<'static, str>>
{
alloy_sol_types::private::Vec::new()
}
#[inline]
fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
<Self as alloy_sol_types::SolStruct>::eip712_root_type()
}
#[inline]
fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
[
<alloy::sol_types::sol_data::Uint<
32,
> as alloy_sol_types::SolType>::eip712_data_word(
&self.updateBlockNumber,
)
.0,
<alloy::sol_types::sol_data::Uint<
32,
> as alloy_sol_types::SolType>::eip712_data_word(
&self.nextUpdateBlockNumber,
)
.0,
<alloy::sol_types::sol_data::Uint<
192,
> as alloy_sol_types::SolType>::eip712_data_word(&self.quorumBitmap)
.0,
]
.concat()
}
}
#[automatically_derived]
impl alloy_sol_types::EventTopic for QuorumBitmapUpdate {
#[inline]
fn topic_preimage_length(rust: &Self::RustType) -> usize {
0usize
+ <alloy::sol_types::sol_data::Uint<
32,
> as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.updateBlockNumber,
)
+ <alloy::sol_types::sol_data::Uint<
32,
> as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.nextUpdateBlockNumber,
)
+ <alloy::sol_types::sol_data::Uint<
192,
> as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.quorumBitmap,
)
}
#[inline]
fn encode_topic_preimage(
rust: &Self::RustType,
out: &mut alloy_sol_types::private::Vec<u8>,
) {
out.reserve(<Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust));
<alloy::sol_types::sol_data::Uint<
32,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.updateBlockNumber,
out,
);
<alloy::sol_types::sol_data::Uint<
32,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.nextUpdateBlockNumber,
out,
);
<alloy::sol_types::sol_data::Uint<
192,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.quorumBitmap,
out,
);
}
#[inline]
fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
let mut out = alloy_sol_types::private::Vec::new();
<Self as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, &mut out);
alloy_sol_types::abi::token::WordToken(alloy_sol_types::private::keccak256(out))
}
}
};
use alloy::contract as alloy_contract;
/**Creates a new wrapper around an on-chain [`IRegistryCoordinator`](self) contract instance.
See the [wrapper's documentation](`IRegistryCoordinatorInstance`) for more details.*/
#[inline]
pub const fn new<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
>(
address: alloy_sol_types::private::Address,
provider: P,
) -> IRegistryCoordinatorInstance<P, N> {
IRegistryCoordinatorInstance::<P, N>::new(address, provider)
}
/**A [`IRegistryCoordinator`](self) instance.
Contains type-safe methods for interacting with an on-chain instance of the
[`IRegistryCoordinator`](self) contract located at a given `address`, using a given
provider `P`.
If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
documentation on how to provide it), the `deploy` and `deploy_builder` methods can
be used to deploy a new instance of the contract.
See the [module-level documentation](self) for all the available methods.*/
#[derive(Clone)]
pub struct IRegistryCoordinatorInstance<P, N = alloy_contract::private::Ethereum> {
address: alloy_sol_types::private::Address,
provider: P,
_network: ::core::marker::PhantomData<N>,
}
#[automatically_derived]
impl<P, N> ::core::fmt::Debug for IRegistryCoordinatorInstance<P, N> {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("IRegistryCoordinatorInstance")
.field(&self.address)
.finish()
}
}
/// Instantiation and getters/setters.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
IRegistryCoordinatorInstance<P, N>
{
/**Creates a new wrapper around an on-chain [`IRegistryCoordinator`](self) contract instance.
See the [wrapper's documentation](`IRegistryCoordinatorInstance`) for more details.*/
#[inline]
pub const fn new(address: alloy_sol_types::private::Address, provider: P) -> Self {
Self {
address,
provider,
_network: ::core::marker::PhantomData,
}
}
/// Returns a reference to the address.
#[inline]
pub const fn address(&self) -> &alloy_sol_types::private::Address {
&self.address
}
/// Sets the address.
#[inline]
pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
self.address = address;
}
/// Sets the address and returns `self`.
pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
self.set_address(address);
self
}
/// Returns a reference to the provider.
#[inline]
pub const fn provider(&self) -> &P {
&self.provider
}
}
impl<P: ::core::clone::Clone, N> IRegistryCoordinatorInstance<&P, N> {
/// Clones the provider and returns a new instance with the cloned provider.
#[inline]
pub fn with_cloned_provider(self) -> IRegistryCoordinatorInstance<P, N> {
IRegistryCoordinatorInstance {
address: self.address,
provider: ::core::clone::Clone::clone(&self.provider),
_network: ::core::marker::PhantomData,
}
}
}
/// Function calls.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
IRegistryCoordinatorInstance<P, N>
{
/// Creates a new call builder using this contract instance's provider and address.
///
/// Note that the call can be any function call, not just those defined in this
/// contract. Prefer using the other methods for building type-safe contract calls.
pub fn call_builder<C: alloy_sol_types::SolCall>(
&self,
call: &C,
) -> alloy_contract::SolCallBuilder<&P, C, N> {
alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
}
}
/// Event filters.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
IRegistryCoordinatorInstance<P, N>
{
/// Creates a new event filter using this contract instance's provider and address.
///
/// Note that the type can be any event, not just those defined in this contract.
/// Prefer using the other methods for building type-safe event filters.
pub fn event_filter<E: alloy_sol_types::SolEvent>(
&self,
) -> alloy_contract::Event<&P, E, N> {
alloy_contract::Event::new_sol(&self.provider, &self.address)
}
}
}
///Module containing a contract's types and functions.
/**
```solidity
library ISignatureUtils {
struct SignatureWithSaltAndExpiry { bytes signature; bytes32 salt; uint256 expiry; }
}
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style,
clippy::empty_structs_with_brackets
)]
pub mod ISignatureUtils {
use super::*;
use alloy::sol_types as alloy_sol_types;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**```solidity
struct SignatureWithSaltAndExpiry { bytes signature; bytes32 salt; uint256 expiry; }
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct SignatureWithSaltAndExpiry {
#[allow(missing_docs)]
pub signature: alloy::sol_types::private::Bytes,
#[allow(missing_docs)]
pub salt: alloy::sol_types::private::FixedBytes<32>,
#[allow(missing_docs)]
pub expiry: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Bytes,
alloy::sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Uint<256>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Bytes,
alloy::sol_types::private::FixedBytes<32>,
alloy::sol_types::private::primitives::aliases::U256,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<SignatureWithSaltAndExpiry> for UnderlyingRustTuple<'_> {
fn from(value: SignatureWithSaltAndExpiry) -> Self {
(value.signature, value.salt, value.expiry)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for SignatureWithSaltAndExpiry {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
signature: tuple.0,
salt: tuple.1,
expiry: tuple.2,
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolValue for SignatureWithSaltAndExpiry {
type SolType = Self;
}
#[automatically_derived]
impl alloy_sol_types::private::SolTypeValue<Self> for SignatureWithSaltAndExpiry {
#[inline]
fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
(
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self.signature,
),
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(&self.salt),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self.expiry),
)
}
#[inline]
fn stv_abi_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
}
#[inline]
fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
<Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
}
#[inline]
fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encode_packed_to(
&tuple, out,
)
}
#[inline]
fn stv_abi_packed_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_packed_encoded_size(
&tuple,
)
}
}
#[automatically_derived]
impl alloy_sol_types::SolType for SignatureWithSaltAndExpiry {
type RustType = Self;
type Token<'a> = <UnderlyingSolTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
const ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::ENCODED_SIZE;
const PACKED_ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
#[inline]
fn valid_token(token: &Self::Token<'_>) -> bool {
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
}
#[inline]
fn detokenize(token: Self::Token<'_>) -> Self::RustType {
let tuple = <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::detokenize(token);
<Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
}
}
#[automatically_derived]
impl alloy_sol_types::SolStruct for SignatureWithSaltAndExpiry {
const NAME: &'static str = "SignatureWithSaltAndExpiry";
#[inline]
fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
alloy_sol_types::private::Cow::Borrowed(
"SignatureWithSaltAndExpiry(bytes signature,bytes32 salt,uint256 expiry)",
)
}
#[inline]
fn eip712_components(
) -> alloy_sol_types::private::Vec<alloy_sol_types::private::Cow<'static, str>>
{
alloy_sol_types::private::Vec::new()
}
#[inline]
fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
<Self as alloy_sol_types::SolStruct>::eip712_root_type()
}
#[inline]
fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
[
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::eip712_data_word(
&self.signature,
)
.0,
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::eip712_data_word(&self.salt)
.0,
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::eip712_data_word(&self.expiry)
.0,
]
.concat()
}
}
#[automatically_derived]
impl alloy_sol_types::EventTopic for SignatureWithSaltAndExpiry {
#[inline]
fn topic_preimage_length(rust: &Self::RustType) -> usize {
0usize
+ <alloy::sol_types::sol_data::Bytes as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.signature,
)
+ <alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::EventTopic>::topic_preimage_length(&rust.salt)
+ <alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.expiry,
)
}
#[inline]
fn encode_topic_preimage(
rust: &Self::RustType,
out: &mut alloy_sol_types::private::Vec<u8>,
) {
out.reserve(<Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust));
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.signature,
out,
);
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.salt,
out,
);
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.expiry,
out,
);
}
#[inline]
fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
let mut out = alloy_sol_types::private::Vec::new();
<Self as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, &mut out);
alloy_sol_types::abi::token::WordToken(alloy_sol_types::private::keccak256(out))
}
}
};
use alloy::contract as alloy_contract;
/**Creates a new wrapper around an on-chain [`ISignatureUtils`](self) contract instance.
See the [wrapper's documentation](`ISignatureUtilsInstance`) for more details.*/
#[inline]
pub const fn new<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
>(
address: alloy_sol_types::private::Address,
provider: P,
) -> ISignatureUtilsInstance<P, N> {
ISignatureUtilsInstance::<P, N>::new(address, provider)
}
/**A [`ISignatureUtils`](self) instance.
Contains type-safe methods for interacting with an on-chain instance of the
[`ISignatureUtils`](self) contract located at a given `address`, using a given
provider `P`.
If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
documentation on how to provide it), the `deploy` and `deploy_builder` methods can
be used to deploy a new instance of the contract.
See the [module-level documentation](self) for all the available methods.*/
#[derive(Clone)]
pub struct ISignatureUtilsInstance<P, N = alloy_contract::private::Ethereum> {
address: alloy_sol_types::private::Address,
provider: P,
_network: ::core::marker::PhantomData<N>,
}
#[automatically_derived]
impl<P, N> ::core::fmt::Debug for ISignatureUtilsInstance<P, N> {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("ISignatureUtilsInstance")
.field(&self.address)
.finish()
}
}
/// Instantiation and getters/setters.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
ISignatureUtilsInstance<P, N>
{
/**Creates a new wrapper around an on-chain [`ISignatureUtils`](self) contract instance.
See the [wrapper's documentation](`ISignatureUtilsInstance`) for more details.*/
#[inline]
pub const fn new(address: alloy_sol_types::private::Address, provider: P) -> Self {
Self {
address,
provider,
_network: ::core::marker::PhantomData,
}
}
/// Returns a reference to the address.
#[inline]
pub const fn address(&self) -> &alloy_sol_types::private::Address {
&self.address
}
/// Sets the address.
#[inline]
pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
self.address = address;
}
/// Sets the address and returns `self`.
pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
self.set_address(address);
self
}
/// Returns a reference to the provider.
#[inline]
pub const fn provider(&self) -> &P {
&self.provider
}
}
impl<P: ::core::clone::Clone, N> ISignatureUtilsInstance<&P, N> {
/// Clones the provider and returns a new instance with the cloned provider.
#[inline]
pub fn with_cloned_provider(self) -> ISignatureUtilsInstance<P, N> {
ISignatureUtilsInstance {
address: self.address,
provider: ::core::clone::Clone::clone(&self.provider),
_network: ::core::marker::PhantomData,
}
}
}
/// Function calls.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
ISignatureUtilsInstance<P, N>
{
/// Creates a new call builder using this contract instance's provider and address.
///
/// Note that the call can be any function call, not just those defined in this
/// contract. Prefer using the other methods for building type-safe contract calls.
pub fn call_builder<C: alloy_sol_types::SolCall>(
&self,
call: &C,
) -> alloy_contract::SolCallBuilder<&P, C, N> {
alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
}
}
/// Event filters.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
ISignatureUtilsInstance<P, N>
{
/// Creates a new event filter using this contract instance's provider and address.
///
/// Note that the type can be any event, not just those defined in this contract.
/// Prefer using the other methods for building type-safe event filters.
pub fn event_filter<E: alloy_sol_types::SolEvent>(
&self,
) -> alloy_contract::Event<&P, E, N> {
alloy_contract::Event::new_sol(&self.provider, &self.address)
}
}
}
///Module containing a contract's types and functions.
/**
```solidity
library IStakeRegistry {
struct StrategyParams { address strategy; uint96 multiplier; }
}
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style,
clippy::empty_structs_with_brackets
)]
pub mod IStakeRegistry {
use super::*;
use alloy::sol_types as alloy_sol_types;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**```solidity
struct StrategyParams { address strategy; uint96 multiplier; }
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct StrategyParams {
#[allow(missing_docs)]
pub strategy: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub multiplier: alloy::sol_types::private::primitives::aliases::U96,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<96>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::primitives::aliases::U96,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<StrategyParams> for UnderlyingRustTuple<'_> {
fn from(value: StrategyParams) -> Self {
(value.strategy, value.multiplier)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for StrategyParams {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
strategy: tuple.0,
multiplier: tuple.1,
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolValue for StrategyParams {
type SolType = Self;
}
#[automatically_derived]
impl alloy_sol_types::private::SolTypeValue<Self> for StrategyParams {
#[inline]
fn stv_to_tokens(&self) -> <Self as alloy_sol_types::SolType>::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.strategy,
),
<alloy::sol_types::sol_data::Uint<96> as alloy_sol_types::SolType>::tokenize(
&self.multiplier,
),
)
}
#[inline]
fn stv_abi_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encoded_size(&tuple)
}
#[inline]
fn stv_eip712_data_word(&self) -> alloy_sol_types::Word {
<Self as alloy_sol_types::SolStruct>::eip712_hash_struct(self)
}
#[inline]
fn stv_abi_encode_packed_to(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_encode_packed_to(
&tuple, out,
)
}
#[inline]
fn stv_abi_packed_encoded_size(&self) -> usize {
if let Some(size) = <Self as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE {
return size;
}
let tuple =
<UnderlyingRustTuple<'_> as ::core::convert::From<Self>>::from(self.clone());
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::abi_packed_encoded_size(
&tuple,
)
}
}
#[automatically_derived]
impl alloy_sol_types::SolType for StrategyParams {
type RustType = Self;
type Token<'a> = <UnderlyingSolTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SOL_NAME: &'static str = <Self as alloy_sol_types::SolStruct>::NAME;
const ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::ENCODED_SIZE;
const PACKED_ENCODED_SIZE: Option<usize> =
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::PACKED_ENCODED_SIZE;
#[inline]
fn valid_token(token: &Self::Token<'_>) -> bool {
<UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::valid_token(token)
}
#[inline]
fn detokenize(token: Self::Token<'_>) -> Self::RustType {
let tuple = <UnderlyingSolTuple<'_> as alloy_sol_types::SolType>::detokenize(token);
<Self as ::core::convert::From<UnderlyingRustTuple<'_>>>::from(tuple)
}
}
#[automatically_derived]
impl alloy_sol_types::SolStruct for StrategyParams {
const NAME: &'static str = "StrategyParams";
#[inline]
fn eip712_root_type() -> alloy_sol_types::private::Cow<'static, str> {
alloy_sol_types::private::Cow::Borrowed(
"StrategyParams(address strategy,uint96 multiplier)",
)
}
#[inline]
fn eip712_components(
) -> alloy_sol_types::private::Vec<alloy_sol_types::private::Cow<'static, str>>
{
alloy_sol_types::private::Vec::new()
}
#[inline]
fn eip712_encode_type() -> alloy_sol_types::private::Cow<'static, str> {
<Self as alloy_sol_types::SolStruct>::eip712_root_type()
}
#[inline]
fn eip712_encode_data(&self) -> alloy_sol_types::private::Vec<u8> {
[
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::eip712_data_word(
&self.strategy,
)
.0,
<alloy::sol_types::sol_data::Uint<
96,
> as alloy_sol_types::SolType>::eip712_data_word(&self.multiplier)
.0,
]
.concat()
}
}
#[automatically_derived]
impl alloy_sol_types::EventTopic for StrategyParams {
#[inline]
fn topic_preimage_length(rust: &Self::RustType) -> usize {
0usize
+ <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.strategy,
)
+ <alloy::sol_types::sol_data::Uint<
96,
> as alloy_sol_types::EventTopic>::topic_preimage_length(
&rust.multiplier,
)
}
#[inline]
fn encode_topic_preimage(
rust: &Self::RustType,
out: &mut alloy_sol_types::private::Vec<u8>,
) {
out.reserve(<Self as alloy_sol_types::EventTopic>::topic_preimage_length(rust));
<alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.strategy,
out,
);
<alloy::sol_types::sol_data::Uint<
96,
> as alloy_sol_types::EventTopic>::encode_topic_preimage(
&rust.multiplier,
out,
);
}
#[inline]
fn encode_topic(rust: &Self::RustType) -> alloy_sol_types::abi::token::WordToken {
let mut out = alloy_sol_types::private::Vec::new();
<Self as alloy_sol_types::EventTopic>::encode_topic_preimage(rust, &mut out);
alloy_sol_types::abi::token::WordToken(alloy_sol_types::private::keccak256(out))
}
}
};
use alloy::contract as alloy_contract;
/**Creates a new wrapper around an on-chain [`IStakeRegistry`](self) contract instance.
See the [wrapper's documentation](`IStakeRegistryInstance`) for more details.*/
#[inline]
pub const fn new<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
>(
address: alloy_sol_types::private::Address,
provider: P,
) -> IStakeRegistryInstance<P, N> {
IStakeRegistryInstance::<P, N>::new(address, provider)
}
/**A [`IStakeRegistry`](self) instance.
Contains type-safe methods for interacting with an on-chain instance of the
[`IStakeRegistry`](self) contract located at a given `address`, using a given
provider `P`.
If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
documentation on how to provide it), the `deploy` and `deploy_builder` methods can
be used to deploy a new instance of the contract.
See the [module-level documentation](self) for all the available methods.*/
#[derive(Clone)]
pub struct IStakeRegistryInstance<P, N = alloy_contract::private::Ethereum> {
address: alloy_sol_types::private::Address,
provider: P,
_network: ::core::marker::PhantomData<N>,
}
#[automatically_derived]
impl<P, N> ::core::fmt::Debug for IStakeRegistryInstance<P, N> {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("IStakeRegistryInstance")
.field(&self.address)
.finish()
}
}
/// Instantiation and getters/setters.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
IStakeRegistryInstance<P, N>
{
/**Creates a new wrapper around an on-chain [`IStakeRegistry`](self) contract instance.
See the [wrapper's documentation](`IStakeRegistryInstance`) for more details.*/
#[inline]
pub const fn new(address: alloy_sol_types::private::Address, provider: P) -> Self {
Self {
address,
provider,
_network: ::core::marker::PhantomData,
}
}
/// Returns a reference to the address.
#[inline]
pub const fn address(&self) -> &alloy_sol_types::private::Address {
&self.address
}
/// Sets the address.
#[inline]
pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
self.address = address;
}
/// Sets the address and returns `self`.
pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
self.set_address(address);
self
}
/// Returns a reference to the provider.
#[inline]
pub const fn provider(&self) -> &P {
&self.provider
}
}
impl<P: ::core::clone::Clone, N> IStakeRegistryInstance<&P, N> {
/// Clones the provider and returns a new instance with the cloned provider.
#[inline]
pub fn with_cloned_provider(self) -> IStakeRegistryInstance<P, N> {
IStakeRegistryInstance {
address: self.address,
provider: ::core::clone::Clone::clone(&self.provider),
_network: ::core::marker::PhantomData,
}
}
}
/// Function calls.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
IStakeRegistryInstance<P, N>
{
/// Creates a new call builder using this contract instance's provider and address.
///
/// Note that the call can be any function call, not just those defined in this
/// contract. Prefer using the other methods for building type-safe contract calls.
pub fn call_builder<C: alloy_sol_types::SolCall>(
&self,
call: &C,
) -> alloy_contract::SolCallBuilder<&P, C, N> {
alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
}
}
/// Event filters.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
IStakeRegistryInstance<P, N>
{
/// Creates a new event filter using this contract instance's provider and address.
///
/// Note that the type can be any event, not just those defined in this contract.
/// Prefer using the other methods for building type-safe event filters.
pub fn event_filter<E: alloy_sol_types::SolEvent>(
&self,
) -> alloy_contract::Event<&P, E, N> {
alloy_contract::Event::new_sol(&self.provider, &self.address)
}
}
}
/**
Generated by the following Solidity interface...
```solidity
library BN254 {
struct G1Point {
uint256 X;
uint256 Y;
}
struct G2Point {
uint256[2] X;
uint256[2] Y;
}
}
library IBLSApkRegistry {
struct PubkeyRegistrationParams {
BN254.G1Point pubkeyRegistrationSignature;
BN254.G1Point pubkeyG1;
BN254.G2Point pubkeyG2;
}
}
library IRegistryCoordinator {
type OperatorStatus is uint8;
struct OperatorInfo {
bytes32 operatorId;
OperatorStatus status;
}
struct OperatorKickParam {
uint8 quorumNumber;
address operator;
}
struct OperatorSetParam {
uint32 maxOperatorCount;
uint16 kickBIPsOfOperatorStake;
uint16 kickBIPsOfTotalStake;
}
struct QuorumBitmapUpdate {
uint32 updateBlockNumber;
uint32 nextUpdateBlockNumber;
uint192 quorumBitmap;
}
}
library ISignatureUtils {
struct SignatureWithSaltAndExpiry {
bytes signature;
bytes32 salt;
uint256 expiry;
}
}
library IStakeRegistry {
struct StrategyParams {
address strategy;
uint96 multiplier;
}
}
interface RegistryCoordinator {
event ChurnApproverUpdated(address prevChurnApprover, address newChurnApprover);
event EjectorUpdated(address prevEjector, address newEjector);
event Initialized(uint8 version);
event OperatorDeregistered(address indexed operator, bytes32 indexed operatorId);
event OperatorRegistered(address indexed operator, bytes32 indexed operatorId);
event OperatorSetParamsUpdated(uint8 indexed quorumNumber, IRegistryCoordinator.OperatorSetParam operatorSetParams);
event OperatorSocketUpdate(bytes32 indexed operatorId, string socket);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
event Paused(address indexed account, uint256 newPausedStatus);
event PauserRegistrySet(address pauserRegistry, address newPauserRegistry);
event QuorumBlockNumberUpdated(uint8 indexed quorumNumber, uint256 blocknumber);
event Unpaused(address indexed account, uint256 newPausedStatus);
constructor(address _serviceManager, address _stakeRegistry, address _blsApkRegistry, address _indexRegistry, address _socketRegistry);
function OPERATOR_CHURN_APPROVAL_TYPEHASH() external view returns (bytes32);
function PUBKEY_REGISTRATION_TYPEHASH() external view returns (bytes32);
function blsApkRegistry() external view returns (address);
function calculateOperatorChurnApprovalDigestHash(address registeringOperator, bytes32 registeringOperatorId, IRegistryCoordinator.OperatorKickParam[] memory operatorKickParams, bytes32 salt, uint256 expiry) external view returns (bytes32);
function churnApprover() external view returns (address);
function createQuorum(IRegistryCoordinator.OperatorSetParam memory operatorSetParams, uint96 minimumStake, IStakeRegistry.StrategyParams[] memory strategyParams) external;
function deregisterOperator(bytes memory quorumNumbers) external;
function ejectOperator(address operator, bytes memory quorumNumbers) external;
function ejectionCooldown() external view returns (uint256);
function ejector() external view returns (address);
function getCurrentQuorumBitmap(bytes32 operatorId) external view returns (uint192);
function getOperator(address operator) external view returns (IRegistryCoordinator.OperatorInfo memory);
function getOperatorFromId(bytes32 operatorId) external view returns (address);
function getOperatorId(address operator) external view returns (bytes32);
function getOperatorSetParams(uint8 quorumNumber) external view returns (IRegistryCoordinator.OperatorSetParam memory);
function getOperatorStatus(address operator) external view returns (IRegistryCoordinator.OperatorStatus);
function getQuorumBitmapAtBlockNumberByIndex(bytes32 operatorId, uint32 blockNumber, uint256 index) external view returns (uint192);
function getQuorumBitmapHistoryLength(bytes32 operatorId) external view returns (uint256);
function getQuorumBitmapIndicesAtBlockNumber(uint32 blockNumber, bytes32[] memory operatorIds) external view returns (uint32[] memory);
function getQuorumBitmapUpdateByIndex(bytes32 operatorId, uint256 index) external view returns (IRegistryCoordinator.QuorumBitmapUpdate memory);
function indexRegistry() external view returns (address);
function initialize(address _initialOwner, address _churnApprover, address _ejector, address _pauserRegistry, uint256 _initialPausedStatus, IRegistryCoordinator.OperatorSetParam[] memory _operatorSetParams, uint96[] memory _minimumStakes, IStakeRegistry.StrategyParams[][] memory _strategyParams) external;
function isChurnApproverSaltUsed(bytes32) external view returns (bool);
function lastEjectionTimestamp(address) external view returns (uint256);
function numRegistries() external view returns (uint256);
function owner() external view returns (address);
function pause(uint256 newPausedStatus) external;
function pauseAll() external;
function paused(uint8 index) external view returns (bool);
function paused() external view returns (uint256);
function pauserRegistry() external view returns (address);
function pubkeyRegistrationMessageHash(address operator) external view returns (BN254.G1Point memory);
function quorumCount() external view returns (uint8);
function quorumUpdateBlockNumber(uint8) external view returns (uint256);
function registerOperator(bytes memory quorumNumbers, string memory socket, IBLSApkRegistry.PubkeyRegistrationParams memory params, ISignatureUtils.SignatureWithSaltAndExpiry memory operatorSignature) external;
function registerOperatorWithChurn(bytes memory quorumNumbers, string memory socket, IBLSApkRegistry.PubkeyRegistrationParams memory params, IRegistryCoordinator.OperatorKickParam[] memory operatorKickParams, ISignatureUtils.SignatureWithSaltAndExpiry memory churnApproverSignature, ISignatureUtils.SignatureWithSaltAndExpiry memory operatorSignature) external;
function registries(uint256) external view returns (address);
function renounceOwnership() external;
function serviceManager() external view returns (address);
function setChurnApprover(address _churnApprover) external;
function setEjectionCooldown(uint256 _ejectionCooldown) external;
function setEjector(address _ejector) external;
function setOperatorSetParams(uint8 quorumNumber, IRegistryCoordinator.OperatorSetParam memory operatorSetParams) external;
function setPauserRegistry(address newPauserRegistry) external;
function socketRegistry() external view returns (address);
function stakeRegistry() external view returns (address);
function transferOwnership(address newOwner) external;
function unpause(uint256 newPausedStatus) external;
function updateOperators(address[] memory operators) external;
function updateOperatorsForQuorum(address[][] memory operatorsPerQuorum, bytes memory quorumNumbers) external;
function updateSocket(string memory socket) external;
}
```
...which was generated by the following JSON ABI:
```json
[
{
"type": "constructor",
"inputs": [
{
"name": "_serviceManager",
"type": "address",
"internalType": "contract IServiceManager"
},
{
"name": "_stakeRegistry",
"type": "address",
"internalType": "contract IStakeRegistry"
},
{
"name": "_blsApkRegistry",
"type": "address",
"internalType": "contract IBLSApkRegistry"
},
{
"name": "_indexRegistry",
"type": "address",
"internalType": "contract IIndexRegistry"
},
{
"name": "_socketRegistry",
"type": "address",
"internalType": "contract ISocketRegistry"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "OPERATOR_CHURN_APPROVAL_TYPEHASH",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "PUBKEY_REGISTRATION_TYPEHASH",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "blsApkRegistry",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IBLSApkRegistry"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "calculateOperatorChurnApprovalDigestHash",
"inputs": [
{
"name": "registeringOperator",
"type": "address",
"internalType": "address"
},
{
"name": "registeringOperatorId",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "operatorKickParams",
"type": "tuple[]",
"internalType": "struct IRegistryCoordinator.OperatorKickParam[]",
"components": [
{
"name": "quorumNumber",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "operator",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "salt",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "expiry",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "churnApprover",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "createQuorum",
"inputs": [
{
"name": "operatorSetParams",
"type": "tuple",
"internalType": "struct IRegistryCoordinator.OperatorSetParam",
"components": [
{
"name": "maxOperatorCount",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "kickBIPsOfOperatorStake",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "kickBIPsOfTotalStake",
"type": "uint16",
"internalType": "uint16"
}
]
},
{
"name": "minimumStake",
"type": "uint96",
"internalType": "uint96"
},
{
"name": "strategyParams",
"type": "tuple[]",
"internalType": "struct IStakeRegistry.StrategyParams[]",
"components": [
{
"name": "strategy",
"type": "address",
"internalType": "contract IStrategy"
},
{
"name": "multiplier",
"type": "uint96",
"internalType": "uint96"
}
]
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "deregisterOperator",
"inputs": [
{
"name": "quorumNumbers",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "ejectOperator",
"inputs": [
{
"name": "operator",
"type": "address",
"internalType": "address"
},
{
"name": "quorumNumbers",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "ejectionCooldown",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "ejector",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getCurrentQuorumBitmap",
"inputs": [
{
"name": "operatorId",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "uint192",
"internalType": "uint192"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getOperator",
"inputs": [
{
"name": "operator",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "tuple",
"internalType": "struct IRegistryCoordinator.OperatorInfo",
"components": [
{
"name": "operatorId",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "status",
"type": "uint8",
"internalType": "enum IRegistryCoordinator.OperatorStatus"
}
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getOperatorFromId",
"inputs": [
{
"name": "operatorId",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getOperatorId",
"inputs": [
{
"name": "operator",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getOperatorSetParams",
"inputs": [
{
"name": "quorumNumber",
"type": "uint8",
"internalType": "uint8"
}
],
"outputs": [
{
"name": "",
"type": "tuple",
"internalType": "struct IRegistryCoordinator.OperatorSetParam",
"components": [
{
"name": "maxOperatorCount",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "kickBIPsOfOperatorStake",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "kickBIPsOfTotalStake",
"type": "uint16",
"internalType": "uint16"
}
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getOperatorStatus",
"inputs": [
{
"name": "operator",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "enum IRegistryCoordinator.OperatorStatus"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getQuorumBitmapAtBlockNumberByIndex",
"inputs": [
{
"name": "operatorId",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "blockNumber",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "index",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint192",
"internalType": "uint192"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getQuorumBitmapHistoryLength",
"inputs": [
{
"name": "operatorId",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getQuorumBitmapIndicesAtBlockNumber",
"inputs": [
{
"name": "blockNumber",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "operatorIds",
"type": "bytes32[]",
"internalType": "bytes32[]"
}
],
"outputs": [
{
"name": "",
"type": "uint32[]",
"internalType": "uint32[]"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getQuorumBitmapUpdateByIndex",
"inputs": [
{
"name": "operatorId",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "index",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "tuple",
"internalType": "struct IRegistryCoordinator.QuorumBitmapUpdate",
"components": [
{
"name": "updateBlockNumber",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "nextUpdateBlockNumber",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "quorumBitmap",
"type": "uint192",
"internalType": "uint192"
}
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "indexRegistry",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IIndexRegistry"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "initialize",
"inputs": [
{
"name": "_initialOwner",
"type": "address",
"internalType": "address"
},
{
"name": "_churnApprover",
"type": "address",
"internalType": "address"
},
{
"name": "_ejector",
"type": "address",
"internalType": "address"
},
{
"name": "_pauserRegistry",
"type": "address",
"internalType": "contract IPauserRegistry"
},
{
"name": "_initialPausedStatus",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "_operatorSetParams",
"type": "tuple[]",
"internalType": "struct IRegistryCoordinator.OperatorSetParam[]",
"components": [
{
"name": "maxOperatorCount",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "kickBIPsOfOperatorStake",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "kickBIPsOfTotalStake",
"type": "uint16",
"internalType": "uint16"
}
]
},
{
"name": "_minimumStakes",
"type": "uint96[]",
"internalType": "uint96[]"
},
{
"name": "_strategyParams",
"type": "tuple[][]",
"internalType": "struct IStakeRegistry.StrategyParams[][]",
"components": [
{
"name": "strategy",
"type": "address",
"internalType": "contract IStrategy"
},
{
"name": "multiplier",
"type": "uint96",
"internalType": "uint96"
}
]
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "isChurnApproverSaltUsed",
"inputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "lastEjectionTimestamp",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "numRegistries",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "owner",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "pause",
"inputs": [
{
"name": "newPausedStatus",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "pauseAll",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "paused",
"inputs": [
{
"name": "index",
"type": "uint8",
"internalType": "uint8"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "paused",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "pauserRegistry",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IPauserRegistry"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "pubkeyRegistrationMessageHash",
"inputs": [
{
"name": "operator",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "tuple",
"internalType": "struct BN254.G1Point",
"components": [
{
"name": "X",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "Y",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "quorumCount",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "quorumUpdateBlockNumber",
"inputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "registerOperator",
"inputs": [
{
"name": "quorumNumbers",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "socket",
"type": "string",
"internalType": "string"
},
{
"name": "params",
"type": "tuple",
"internalType": "struct IBLSApkRegistry.PubkeyRegistrationParams",
"components": [
{
"name": "pubkeyRegistrationSignature",
"type": "tuple",
"internalType": "struct BN254.G1Point",
"components": [
{
"name": "X",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "Y",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "pubkeyG1",
"type": "tuple",
"internalType": "struct BN254.G1Point",
"components": [
{
"name": "X",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "Y",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "pubkeyG2",
"type": "tuple",
"internalType": "struct BN254.G2Point",
"components": [
{
"name": "X",
"type": "uint256[2]",
"internalType": "uint256[2]"
},
{
"name": "Y",
"type": "uint256[2]",
"internalType": "uint256[2]"
}
]
}
]
},
{
"name": "operatorSignature",
"type": "tuple",
"internalType": "struct ISignatureUtils.SignatureWithSaltAndExpiry",
"components": [
{
"name": "signature",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "salt",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "expiry",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "registerOperatorWithChurn",
"inputs": [
{
"name": "quorumNumbers",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "socket",
"type": "string",
"internalType": "string"
},
{
"name": "params",
"type": "tuple",
"internalType": "struct IBLSApkRegistry.PubkeyRegistrationParams",
"components": [
{
"name": "pubkeyRegistrationSignature",
"type": "tuple",
"internalType": "struct BN254.G1Point",
"components": [
{
"name": "X",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "Y",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "pubkeyG1",
"type": "tuple",
"internalType": "struct BN254.G1Point",
"components": [
{
"name": "X",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "Y",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "pubkeyG2",
"type": "tuple",
"internalType": "struct BN254.G2Point",
"components": [
{
"name": "X",
"type": "uint256[2]",
"internalType": "uint256[2]"
},
{
"name": "Y",
"type": "uint256[2]",
"internalType": "uint256[2]"
}
]
}
]
},
{
"name": "operatorKickParams",
"type": "tuple[]",
"internalType": "struct IRegistryCoordinator.OperatorKickParam[]",
"components": [
{
"name": "quorumNumber",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "operator",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "churnApproverSignature",
"type": "tuple",
"internalType": "struct ISignatureUtils.SignatureWithSaltAndExpiry",
"components": [
{
"name": "signature",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "salt",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "expiry",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "operatorSignature",
"type": "tuple",
"internalType": "struct ISignatureUtils.SignatureWithSaltAndExpiry",
"components": [
{
"name": "signature",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "salt",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "expiry",
"type": "uint256",
"internalType": "uint256"
}
]
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "registries",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "renounceOwnership",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "serviceManager",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IServiceManager"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "setChurnApprover",
"inputs": [
{
"name": "_churnApprover",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setEjectionCooldown",
"inputs": [
{
"name": "_ejectionCooldown",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setEjector",
"inputs": [
{
"name": "_ejector",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setOperatorSetParams",
"inputs": [
{
"name": "quorumNumber",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "operatorSetParams",
"type": "tuple",
"internalType": "struct IRegistryCoordinator.OperatorSetParam",
"components": [
{
"name": "maxOperatorCount",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "kickBIPsOfOperatorStake",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "kickBIPsOfTotalStake",
"type": "uint16",
"internalType": "uint16"
}
]
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setPauserRegistry",
"inputs": [
{
"name": "newPauserRegistry",
"type": "address",
"internalType": "contract IPauserRegistry"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "socketRegistry",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract ISocketRegistry"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "stakeRegistry",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IStakeRegistry"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "transferOwnership",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "unpause",
"inputs": [
{
"name": "newPausedStatus",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "updateOperators",
"inputs": [
{
"name": "operators",
"type": "address[]",
"internalType": "address[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "updateOperatorsForQuorum",
"inputs": [
{
"name": "operatorsPerQuorum",
"type": "address[][]",
"internalType": "address[][]"
},
{
"name": "quorumNumbers",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "updateSocket",
"inputs": [
{
"name": "socket",
"type": "string",
"internalType": "string"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "event",
"name": "ChurnApproverUpdated",
"inputs": [
{
"name": "prevChurnApprover",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "newChurnApprover",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "EjectorUpdated",
"inputs": [
{
"name": "prevEjector",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "newEjector",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Initialized",
"inputs": [
{
"name": "version",
"type": "uint8",
"indexed": false,
"internalType": "uint8"
}
],
"anonymous": false
},
{
"type": "event",
"name": "OperatorDeregistered",
"inputs": [
{
"name": "operator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "operatorId",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
}
],
"anonymous": false
},
{
"type": "event",
"name": "OperatorRegistered",
"inputs": [
{
"name": "operator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "operatorId",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
}
],
"anonymous": false
},
{
"type": "event",
"name": "OperatorSetParamsUpdated",
"inputs": [
{
"name": "quorumNumber",
"type": "uint8",
"indexed": true,
"internalType": "uint8"
},
{
"name": "operatorSetParams",
"type": "tuple",
"indexed": false,
"internalType": "struct IRegistryCoordinator.OperatorSetParam",
"components": [
{
"name": "maxOperatorCount",
"type": "uint32",
"internalType": "uint32"
},
{
"name": "kickBIPsOfOperatorStake",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "kickBIPsOfTotalStake",
"type": "uint16",
"internalType": "uint16"
}
]
}
],
"anonymous": false
},
{
"type": "event",
"name": "OperatorSocketUpdate",
"inputs": [
{
"name": "operatorId",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "socket",
"type": "string",
"indexed": false,
"internalType": "string"
}
],
"anonymous": false
},
{
"type": "event",
"name": "OwnershipTransferred",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Paused",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newPausedStatus",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "PauserRegistrySet",
"inputs": [
{
"name": "pauserRegistry",
"type": "address",
"indexed": false,
"internalType": "contract IPauserRegistry"
},
{
"name": "newPauserRegistry",
"type": "address",
"indexed": false,
"internalType": "contract IPauserRegistry"
}
],
"anonymous": false
},
{
"type": "event",
"name": "QuorumBlockNumberUpdated",
"inputs": [
{
"name": "quorumNumber",
"type": "uint8",
"indexed": true,
"internalType": "uint8"
},
{
"name": "blocknumber",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Unpaused",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newPausedStatus",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
}
]
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style,
clippy::empty_structs_with_brackets
)]
pub mod RegistryCoordinator {
use super::*;
use alloy::sol_types as alloy_sol_types;
/// The creation / init bytecode of the contract.
///
/// ```text
///0x6101e06040523480156200001257600080fd5b50604051620062ef380380620062ef833981016040819052620000359162000240565b604080518082018252601681527f4156535265676973747279436f6f7264696e61746f7200000000000000000000602080830191825283518085018552600681526576302e302e3160d01b908201529151902060e08190527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a996101008190524660a081815285517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818701819052818801959095526060810193909352608080840192909252308382018190528651808503909201825260c09384019096528051940193909320909252919052610120526001600160a01b038086166101405280851661018052808416610160528083166101a05281166101c0526200015a62000165565b5050505050620002c0565b600054610100900460ff1615620001d25760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000225576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200023d57600080fd5b50565b600080600080600060a086880312156200025957600080fd5b8551620002668162000227565b6020870151909550620002798162000227565b60408701519094506200028c8162000227565b60608701519093506200029f8162000227565b6080870151909250620002b28162000227565b809150509295509295909350565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051615f15620003da6000396000818161085b015261250a0152600081816106c60152818161117c0152818161201101528181612ea6015281816136d60152613ca401526000818161060b01528181611f9c0152818161244401528181612e260152818161362d0152818161388c0152613c230152600081816105d101528181610f2301528181611fda01528181612da801528181612f8e01528181613004015281816135ad0152613d2001526000818161051501528181612cfe01526134eb01526000613f2701526000613f7601526000613f5101526000613eaa01526000613ed401526000613efe0152615f156000f3fe608060405234801561001057600080fd5b50600436106102f05760003560e01c80635df459461161019d578063a50857bf116100e9578063d75b4c88116100a2578063ea32afae1161007c578063ea32afae14610856578063f2fde38b1461087d578063fabc1cbc14610890578063fd39105a146108a357600080fd5b8063d75b4c881461078d578063dd8283f3146107a0578063e65797ad146107b357600080fd5b8063a50857bf1461070f578063a96f783e14610722578063c391425e1461072b578063ca0de8821461074b578063ca4f2d9714610772578063d72d8dd61461078557600080fd5b8063871ef049116101565780639aa1653d116101305780639aa1653d1461068f5780639b5d177b146106ae5780639e9923c2146106c15780639feab859146106e857600080fd5b8063871ef0491461065b578063886f11951461066e5780638da5cb5b1461068757600080fd5b80635df45946146105cc5780636347c900146105f357806368304835146106065780636e3b17db1461062d578063715018a61461064057806384ca52131461064857600080fd5b8063249a0c421161025c5780633c2a7f4c11610215578063595c6a67116101ef578063595c6a671461058a5780635ac86ab7146105925780635b0b829f146105b15780635c975abb146105c457600080fd5b80633c2a7f4c146105375780635140a548146105575780635865c60c1461056a57600080fd5b8063249a0c42146104a457806328f61b31146104c4578063296bb064146104d757806329d1e0c3146104ea5780632cdd1e86146104fd5780633998fdd31461051057600080fd5b806310d67a2f116102ae57806310d67a2f146103b9578063125e0584146103cc57806313542a4e146103ec578063136439dd146104155780631478851f146104285780631eb812da1461045b57600080fd5b8062cf2ab5146102f557806303fd34921461030a57806304ec63511461033d578063054310e6146103685780630cf4b767146103935780630d3f2134146103a6575b600080fd5b610308610303366004614a27565b6108df565b005b61032a610318366004614a68565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61035061034b366004614a93565b6109f5565b6040516001600160c01b039091168152602001610334565b609d5461037b906001600160a01b031681565b6040516001600160a01b039091168152602001610334565b6103086103a1366004614bb2565b610bce565b6103086103b4366004614a68565b610c78565b6103086103c7366004614c27565b610c85565b61032a6103da366004614c27565b609f6020526000908152604090205481565b61032a6103fa366004614c27565b6001600160a01b031660009081526099602052604090205490565b610308610423366004614a68565b610d35565b61044b610436366004614a68565b609a6020526000908152604090205460ff1681565b6040519015158152602001610334565b61046e610469366004614c44565b610e79565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b031690820152606001610334565b61032a6104b2366004614c77565b609b6020526000908152604090205481565b609e5461037b906001600160a01b031681565b61037b6104e5366004614a68565b610f0a565b6103086104f8366004614c27565b610f96565b61030861050b366004614c27565b610fa7565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61054a610545366004614c27565b610fb8565b6040516103349190614c92565b610308610565366004614cea565b611037565b61057d610578366004614c27565b611510565b6040516103349190614d8d565b610308611584565b61044b6105a0366004614c77565b6001805460ff9092161b9081161490565b6103086105bf366004614e12565b611650565b60015461032a565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61037b610601366004614a68565b611671565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61030861063b366004614e46565b61169b565b6103086117b1565b61032a610656366004614efd565b6117c5565b610350610669366004614a68565b61180f565b60005461037b906201000090046001600160a01b031681565b61037b61181a565b60965461069c9060ff1681565b60405160ff9091168152602001610334565b6103086106bc366004615096565b611833565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61032a7f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61030861071d36600461518f565b611b5d565b61032a60a05481565b61073e610739366004615237565b611cd3565b60405161033491906152dc565b61032a7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b610308610780366004615326565b611d8c565b609c5461032a565b61030861079b36600461540c565b611df3565b6103086107ae3660046155bf565b611e06565b6108226107c1366004614c77565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff908116918301919091529282015190921690820152606001610334565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61030861088b366004614c27565b6120ff565b61030861089e366004614a68565b612175565b6108d26108b1366004614c27565b6001600160a01b031660009081526099602052604090206001015460ff1690565b6040516103349190615693565b600154600290600490811614156109115760405162461bcd60e51b8152600401610908906156a1565b60405180910390fd5b60005b828110156109ef576000848483818110610930576109306156d8565b90506020020160208101906109459190614c27565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff16600281111561099057610990614d55565b60028111156109a1576109a1614d55565b905250805190915060006109b4826122d1565b905060006109ca826001600160c01b031661233a565b90506109d7858583612406565b505050505080806109e790615704565b915050610914565b50505050565b6000838152609860205260408120805482919084908110610a1857610a186156d8565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610b045760405162461bcd60e51b815260206004820152605a60248201527f526567436f6f72642e67657451756f72756d4269746d61704174426c6f636b4e60448201527f756d6265724279496e6465783a2071756f72756d4269746d617055706461746560648201527f2069732066726f6d20616674657220626c6f636b4e756d626572000000000000608482015260a401610908565b602081015163ffffffff161580610b2a5750806020015163ffffffff168463ffffffff16105b610bc25760405162461bcd60e51b815260206004820152605b60248201527f526567436f6f72642e67657451756f72756d4269746d61704174426c6f636b4e60448201527f756d6265724279496e6465783a2071756f72756d4269746d617055706461746560648201527f2069732066726f6d206265666f726520626c6f636b4e756d6265720000000000608482015260a401610908565b60400151949350505050565b60013360009081526099602052604090206001015460ff166002811115610bf757610bf7614d55565b14610c5b5760405162461bcd60e51b815260206004820152602e60248201527f526567436f6f72642e757064617465536f636b65743a206f70657261746f722060448201526d1b9bdd081c9959da5cdd195c995960921b6064820152608401610908565b33600090815260996020526040902054610c7590826124f3565b50565b610c806125af565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfc919061571f565b6001600160a01b0316336001600160a01b031614610d2c5760405162461bcd60e51b81526004016109089061573c565b610c758161260e565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da69190615786565b610dc25760405162461bcd60e51b8152600401610908906157a8565b60015481811614610e3b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610908565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610eb657610eb66156d8565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906347b314e890602401602060405180830381865afa158015610f72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f04919061571f565b610f9e6125af565b610c7581612713565b610faf6125af565b610c758161277c565b6040805180820190915260008082526020820152610f046110327f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de6846040516020016110179291909182526001600160a01b0316602082015260400190565b604051602081830303815290604052805190602001206127e5565b612833565b600154600290600490811614156110605760405162461bcd60e51b8152600401610908906156a1565b60006110a884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506128c39050565b905084831461110d5760405162461bcd60e51b81526020600482015260386024820152600080516020615ec083398151915260448201527f6d3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610908565b60005b8381101561150757600085858381811061112c5761112c6156d8565b919091013560f81c9150369050600089898581811061114d5761114d6156d8565b905060200281019061115f91906157f0565b6040516379a0849160e11b815260ff8616600482015291935091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f341092290602401602060405180830381865afa1580156111cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ef9190615839565b63ffffffff16811461127d5760405162461bcd60e51b815260206004820152605a6024820152600080516020615ec083398151915260448201527f6d3a206e756d626572206f662075706461746564206f70657261746f7273206460648201527f6f6573206e6f74206d617463682071756f72756d20746f74616c000000000000608482015260a401610908565b6000805b828110156114a657600084848381811061129d5761129d6156d8565b90506020020160208101906112b29190614c27565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156112fd576112fd614d55565b600281111561130e5761130e614d55565b90525080519091506000611321826122d1565b905060016001600160c01b03821660ff8b161c8116146113975760405162461bcd60e51b81526020600482015260396024820152600080516020615ec083398151915260448201527f6d3a206f70657261746f72206e6f7420696e2071756f72756d000000000000006064820152608401610908565b856001600160a01b0316846001600160a01b0316116114325760405162461bcd60e51b815260206004820152605c6024820152600080516020615ec083398151915260448201527f6d3a206f70657261746f7273206172726179206d75737420626520736f72746560648201527f6420696e20617363656e64696e672061646472657373206f7264657200000000608482015260a401610908565b5061149083838f8f8d908e60016114499190615856565b926114569392919061586e565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061240692505050565b5090925061149f905081615704565b9050611281565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a2505050508061150090615704565b9050611110565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561156a5761156a614d55565b600281111561157b5761157b614d55565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156115d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f59190615786565b6116115760405162461bcd60e51b8152600401610908906157a8565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6116586125af565b8161166281612954565b61166c83836129c1565b505050565b609c818154811061168157600080fd5b6000918252602090912001546001600160a01b0316905081565b6116a3612a67565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916117109187908790819084018382808284376000920191909152505060965460ff1691506128c39050565b9050600061171d836122d1565b905060018085015460ff16600281111561173957611739614d55565b14801561174e57506001600160c01b03821615155b801561176c575061176c6001600160c01b0383811690831681161490565b15611507576115078787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ad992505050565b6117b96125af565b6117c36000612f1a565b565b60006118057f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a878787878760405160200161101796959493929190615898565b9695505050505050565b6000610f04826122d1565b600061182e6064546001600160a01b031690565b905090565b60018054600091908116141561185b5760405162461bcd60e51b8152600401610908906156a1565b8389146118d05760405162461bcd60e51b815260206004820152603960248201527f526567436f6f72642e72656769737465724f70657261746f725769746843687560448201527f726e3a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610908565b60006118dc3388612f6c565b905061193c33828888808060200260200160405190810160405280939291908181526020016000905b82821015611931576119226040830286013681900381019061591d565b81526020019060010190611905565b50505050508761309d565b600061198333838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250613214915050565b905060005b8b811015611b4e576000609760008f8f858181106119a8576119a86156d8565b919091013560f81c82525060208082019290925260409081016000208151606081018352905463ffffffff811680835261ffff600160201b8304811695840195909552600160301b90910490931691810191909152845180519193509084908110611a1557611a156156d8565b602002602001015163ffffffff161115611b3b57611ab68e8e84818110611a3e57611a3e6156d8565b9050013560f81c60f81b60f81c84604001518481518110611a6157611a616156d8565b60200260200101513386602001518681518110611a8057611a806156d8565b60200260200101518d8d88818110611a9a57611a9a6156d8565b905060400201803603810190611ab0919061591d565b86613764565b611b3b898984818110611acb57611acb6156d8565b9050604002016020016020810190611ae39190614c27565b8f8f8590866001611af49190615856565b92611b019392919061586e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ad992505050565b5080611b4681615704565b915050611988565b50505050505050505050505050565b600180546000919081161415611b855760405162461bcd60e51b8152600401610908906156a1565b6000611b913385612f6c565b90506000611bda33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250613214915050565b51905060005b88811015611cc75760008a8a83818110611bfc57611bfc6156d8565b919091013560f81c600081815260976020526040902054855191935063ffffffff169150849084908110611c3257611c326156d8565b602002602001015163ffffffff161115611cb45760405162461bcd60e51b815260206004820152603960248201527f526567436f6f72642e72656769737465724f70657261746f723a206f7065726160448201527f746f7220636f756e742065786365656473206d6178696d756d000000000000006064820152608401610908565b5080611cbf81615704565b915050611be0565b50505050505050505050565b6060600082516001600160401b03811115611cf057611cf0614acb565b604051908082528060200260200182016040528015611d19578160200160208202803683370190505b50905060005b8351811015611d8457611d4b85858381518110611d3e57611d3e6156d8565b6020026020010151613a4f565b828281518110611d5d57611d5d6156d8565b63ffffffff9092166020928302919091019091015280611d7c81615704565b915050611d1f565b509392505050565b6001805460029081161415611db35760405162461bcd60e51b8152600401610908906156a1565b61166c3384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ad992505050565b611dfb6125af565b61166c838383613b76565b600054610100900460ff1615808015611e265750600054600160ff909116105b80611e405750303b158015611e40575060005460ff166001145b611ea35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610908565b6000805460ff191660011790558015611ec6576000805461ff0019166101001790555b82518451148015611ed8575081518351145b611f375760405162461bcd60e51b815260206004820152602a60248201527f526567436f6f72642e696e697469616c697a653a20696e707574206c656e67746044820152690d040dad2e6dac2e8c6d60b31b6064820152608401610908565b611f4089612f1a565b611f4a8686613d82565b611f5388612713565b611f5c8761277c565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166001600160a01b03199283161790925585548085018755850180547f0000000000000000000000000000000000000000000000000000000000000000841690831617905585549384019095559190920180547f000000000000000000000000000000000000000000000000000000000000000090921691909316179091555b84518110156120ad5761209b85828151811061205a5761205a6156d8565b6020026020010151858381518110612074576120746156d8565b602002602001015185848151811061208e5761208e6156d8565b6020026020010151613b76565b806120a581615704565b91505061203c565b5080156120f4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b6121076125af565b6001600160a01b03811661216c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610908565b610c7581612f1a565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ec919061571f565b6001600160a01b0316336001600160a01b03161461221c5760405162461bcd60e51b81526004016109089061573c565b60015419811960015419161461229a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610908565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610e6e565b600081815260986020526040812054806122ee5750600092915050565b6000838152609860205260409020612307600183615939565b81548110612317576123176156d8565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061234884613e72565b61ffff166001600160401b0381111561236357612363614acb565b6040519080825280601f01601f19166020018201604052801561238d576020820181803683370190505b5090506000805b8251821080156123a5575061010081105b156123fc576001811b9350858416156123ec578060f81b8383815181106123ce576123ce6156d8565b60200101906001600160f81b031916908160001a9053508160010191505b6123f581615704565b9050612394565b5090949350505050565b60018260200151600281111561241e5761241e614d55565b1461242857505050565b81516040516333567f7f60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906366acfefe9061247d9088908690889060040161599d565b6020604051808303816000875af115801561249c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c091906159cd565b90506001600160c01b038116156124ec576124ec856124e7836001600160c01b031661233a565b612ad9565b5050505050565b6040516378219b3f60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f043367e9061254190859085906004016159f6565b600060405180830381600087803b15801561255b57600080fd5b505af115801561256f573d6000803e3d6000fd5b50505050817fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa826040516125a39190615a0f565b60405180910390a25050565b336125b861181a565b6001600160a01b0316146117c35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610908565b6001600160a01b03811661269c5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610908565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610f046127f2613e9d565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b604080518082019091526000808252602082015260008080612863600080516020615ea083398151915286615a38565b90505b61286f81613fc4565b9093509150600080516020615ea08339815191528283098314156128a9576040805180820190915290815260208101919091529392505050565b600080516020615ea0833981519152600182089050612866565b6000806128cf84614046565b9050808360ff166001901b1161294d5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610908565b9392505050565b60965460ff90811690821610610c755760405162461bcd60e51b815260206004820152602c60248201527f526567436f6f72642e71756f72756d4578697374733a2071756f72756d20646f60448201526b195cc81b9bdd08195e1a5cdd60a21b6064820152608401610908565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac906060016125a3565b609e546001600160a01b031633146117c35760405162461bcd60e51b815260206004820152602f60248201527f526567436f6f72642e6f6e6c79456a6563746f723a2063616c6c65722069732060448201526e3737ba103a34329032b532b1ba37b960891b6064820152608401610908565b6001600160a01b0382166000908152609960205260409020805460018083015460ff166002811115612b0d57612b0d614d55565b14612b805760405162461bcd60e51b815260206004820152603860248201527f526567436f6f72642e5f646572656769737465724f70657261746f723a206f7060448201527f657261746f72206973206e6f74207265676973746572656400000000000000006064820152608401610908565b609654600090612b9490859060ff166128c3565b90506000612ba1836122d1565b90506001600160c01b038216612c125760405162461bcd60e51b815260206004820152603060248201527f526567436f6f72642e5f646572656769737465724f70657261746f723a20626960448201526f0746d61702063616e6e6f7420626520360841b6064820152608401610908565b612c296001600160c01b0383811690831681161490565b612ca95760405162461bcd60e51b8152602060048201526044602482018190527f526567436f6f72642e5f646572656769737465724f70657261746f723a206f70908201527f657261746f72206973206e6f74207265676973746572656420666f722071756f60648201526372756d7360e01b608482015260a401610908565b6001600160c01b0382811619821616612cc284826141d3565b6001600160c01b038116612d915760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da90602401600060405180830381600087803b158015612d4257600080fd5b505af1158015612d56573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f4e24fe590612ddf908a908a90600401615a4c565b600060405180830381600087803b158015612df957600080fd5b505af1158015612e0d573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612e5f9087908a906004016159f6565b600060405180830381600087803b158015612e7957600080fd5b505af1158015612e8d573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612edf9087908a906004016159f6565b600060405180830381600087803b158015612ef957600080fd5b505af1158015612f0d573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906313542a4e90602401602060405180830381865afa158015612fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ffb9190615a70565b905080610f04577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf79ce58848461303c87610fb8565b6040518463ffffffff1660e01b815260040161305a93929190615a89565b6020604051808303816000875af1158015613079573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294d9190615a70565b6020808201516000908152609a909152604090205460ff16156131385760405162461bcd60e51b815260206004820152604760248201527f526567436f6f72642e5f766572696679436875726e417070726f76657253696760448201527f6e61747572653a20636875726e417070726f7665722073616c7420616c726561606482015266191e481d5cd95960ca1b608482015260a401610908565b42816040015110156131c25760405162461bcd60e51b815260206004820152604760248201527f526567436f6f72642e5f766572696679436875726e417070726f76657253696760448201527f6e61747572653a20636875726e417070726f766572207369676e617475726520606482015266195e1c1a5c995960ca1b608482015260a401610908565b602080820180516000908152609a909252604091829020805460ff19166001179055609d549051918301516109ef926001600160a01b039092169161320d91889188918891906117c5565b8351614393565b61323860405180606001604052806060815260200160608152602001606081525090565b600061328086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506128c39050565b9050600061328d886122d1565b90506001600160c01b0382166132fc5760405162461bcd60e51b815260206004820152602e60248201527f526567436f6f72642e5f72656769737465724f70657261746f723a206269746d60448201526d061702063616e6e6f7420626520360941b6064820152608401610908565b8082166001600160c01b03161561338c5760405162461bcd60e51b815260206004820152604860248201527f526567436f6f72642e5f72656769737465724f70657261746f723a206f70657260448201527f61746f7220616c7265616479207265676973746572656420666f7220736f6d656064820152672071756f72756d7360c01b608482015260a401610908565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b03838116908516179142916133c49190615856565b106134375760405162461bcd60e51b815260206004820152603a60248201527f526567436f6f72642e5f72656769737465724f70657261746f723a206f70657260448201527f61746f722063616e6e6f742072657265676973746572207965740000000000006064820152608401610908565b61344189826141d3565b60016001600160a01b038b1660009081526099602052604090206001015460ff16600281111561347357613473614d55565b14613596576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff1916908360028111156134ce576134ce614d55565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169150639926ee7d90613523908d908990600401615b08565b600060405180830381600087803b15801561353d57600080fd5b505af1158015613551573d6000803e3d6000fd5b5050505061355f89876124f3565b60405189906001600160a01b038c16907fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633fb27952906135e6908d908c908c90600401615b7c565b600060405180830381600087803b15801561360057600080fd5b505af1158015613614573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506325504777915061366a908d908d908d908d90600401615ba1565b6000604051808303816000875af1158015613689573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526136b19190810190615c2d565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169062bff04d9061370e908c908c908c90600401615c90565b6000604051808303816000875af115801561372d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526137559190810190615caa565b84525050509695505050505050565b6020808301516001600160a01b0380821660008181526099909452604090932054919290871614156137eb5760405162461bcd60e51b815260206004820152602a60248201527f526567436f6f72642e5f76616c6964617465436875726e3a2063616e6e6f742060448201526931b43ab9371039b2b63360b11b6064820152608401610908565b8760ff16846000015160ff161461386a5760405162461bcd60e51b815260206004820152603c60248201527f526567436f6f72642e5f76616c6964617465436875726e3a2071756f72756d4e60448201527f756d626572206e6f74207468652073616d65206173207369676e6564000000006064820152608401610908565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635401ed2790604401602060405180830381865afa1580156138db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138ff9190615d43565b905061390b818561454d565b6001600160601b0316866001600160601b0316116139a55760405162461bcd60e51b815260206004820152604b60248201527f526567436f6f72642e5f76616c6964617465436875726e3a20696e636f6d696e60448201527f67206f70657261746f722068617320696e73756666696369656e74207374616b60648201526a32903337b91031b43ab93760a91b608482015260a401610908565b6139af8885614571565b6001600160601b0316816001600160601b0316106120f45760405162461bcd60e51b815260206004820152605160248201527f526567436f6f72642e5f76616c6964617465436875726e3a2063616e6e6f742060448201527f6b69636b206f70657261746f722077697468206d6f7265207468616e206b69636064820152706b424950734f66546f74616c5374616b6560781b608482015260a401610908565b600081815260986020526040812054815b81811015613ae1576001613a748284615939565b613a7e9190615939565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff1681548110613ab157613ab16156d8565b60009182526020909120015463ffffffff1611613acf575050610f04565b80613ad981615704565b915050613a60565b5060405162461bcd60e51b815260206004820152605e60248201527f526567436f6f72642e67657451756f72756d4269746d6170496e64657841744260448201527f6c6f636b4e756d6265723a206e6f206269746d61702075706461746520666f7560648201527f6e6420666f72206f70657261746f7220617420626c6f636b4e756d6265720000608482015260a401610908565b60965460ff1660c08110613bdf5760405162461bcd60e51b815260206004820152602a60248201527f526567436f6f72642e63726561746551756f72756d3a206d61782071756f72756044820152691b5cc81c995858da195960b21b6064820152608401610908565b613bea816001615d60565b6096805460ff191660ff9290921691909117905580613c0981866129c1565b60405160016296b58960e01b031981526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ff694a7790613c5c90849088908890600401615d85565b600060405180830381600087803b158015613c7657600080fd5b505af1158015613c8a573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b158015613cf257600080fd5b505af1158015613d06573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b158015613d6e57600080fd5b505af11580156120f4573d6000803e3d6000fd5b6000546201000090046001600160a01b0316158015613da957506001600160a01b03821615155b613e2b5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610908565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2613e6e8261260e565b5050565b6000805b8215610f0457613e87600184615939565b9092169180613e9581615dfe565b915050613e76565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015613ef657507f000000000000000000000000000000000000000000000000000000000000000046145b15613f2057507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615ea08339815191526003600080516020615ea083398151915286600080516020615ea083398151915288890909089050600061403a827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615ea083398151915261458b565b91959194509092505050565b6000610100825111156140cf5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610908565b81516140dd57506000919050565b600080836000815181106140f3576140f36156d8565b0160200151600160f89190911c81901b92505b84518110156141ca57848181518110614121576141216156d8565b0160200151600160f89190911c1b91508282116141b65760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610908565b918117916141c381615704565b9050614106565b50909392505050565b60008281526098602052604090205480614278576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120614291600184615939565b815481106142a1576142a16156d8565b600091825260209091200180549091504363ffffffff908116911614156142e55780546001600160401b0316600160401b6001600160c01b038516021781556109ef565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b156144ad57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906143d390869086906004016159f6565b602060405180830381865afa1580156143f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144149190615e20565b6001600160e01b0319161461166c5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610908565b826001600160a01b03166144c1838361463a565b6001600160a01b03161461166c5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610908565b6020810151600090612710906145679061ffff1685615e4a565b61294d9190615e79565b6040810151600090612710906145679061ffff1685615e4a565b6000806145966149a7565b61459e6149c5565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280156145df576145e1565bfe5b508261462f5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610908565b505195945050505050565b60008060006146498585614656565b91509150611d84816146c6565b60008082516041141561468d5760208301516040840151606085015160001a61468187828585614881565b945094505050506146bf565b8251604014156146b757602083015160408401516146ac86838361496e565b9350935050506146bf565b506000905060025b9250929050565b60008160048111156146da576146da614d55565b14156146e35750565b60018160048111156146f7576146f7614d55565b14156147455760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610908565b600281600481111561475957614759614d55565b14156147a75760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610908565b60038160048111156147bb576147bb614d55565b14156148145760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610908565b600481600481111561482857614828614d55565b1415610c755760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610908565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156148b85750600090506003614965565b8460ff16601b141580156148d057508460ff16601c14155b156148e15750600090506004614965565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614935573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661495e57600060019250925050614965565b9150600090505b94509492505050565b6000806001600160ff1b0383168161498b60ff86901c601b615856565b905061499987828885614881565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f8401126149f557600080fd5b5081356001600160401b03811115614a0c57600080fd5b6020830191508360208260051b85010111156146bf57600080fd5b60008060208385031215614a3a57600080fd5b82356001600160401b03811115614a5057600080fd5b614a5c858286016149e3565b90969095509350505050565b600060208284031215614a7a57600080fd5b5035919050565b63ffffffff81168114610c7557600080fd5b600080600060608486031215614aa857600080fd5b833592506020840135614aba81614a81565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715614b0357614b03614acb565b60405290565b604080519081016001600160401b0381118282101715614b0357614b03614acb565b604051601f8201601f191681016001600160401b0381118282101715614b5357614b53614acb565b604052919050565b60006001600160401b03831115614b7457614b74614acb565b614b87601f8401601f1916602001614b2b565b9050828152838383011115614b9b57600080fd5b828260208301376000602084830101529392505050565b600060208284031215614bc457600080fd5b81356001600160401b03811115614bda57600080fd5b8201601f81018413614beb57600080fd5b614bfa84823560208401614b5b565b949350505050565b6001600160a01b0381168114610c7557600080fd5b8035614c2281614c02565b919050565b600060208284031215614c3957600080fd5b813561294d81614c02565b60008060408385031215614c5757600080fd5b50508035926020909101359150565b803560ff81168114614c2257600080fd5b600060208284031215614c8957600080fd5b61294d82614c66565b815181526020808301519082015260408101610f04565b60008083601f840112614cbb57600080fd5b5081356001600160401b03811115614cd257600080fd5b6020830191508360208285010111156146bf57600080fd5b60008060008060408587031215614d0057600080fd5b84356001600160401b0380821115614d1757600080fd5b614d23888389016149e3565b90965094506020870135915080821115614d3c57600080fd5b50614d4987828801614ca9565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b60038110614d8957634e487b7160e01b600052602160045260246000fd5b9052565b815181526020808301516040830191614da890840182614d6b565b5092915050565b803561ffff81168114614c2257600080fd5b600060608284031215614dd357600080fd5b614ddb614ae1565b90508135614de881614a81565b8152614df660208301614daf565b6020820152614e0760408301614daf565b604082015292915050565b60008060808385031215614e2557600080fd5b614e2e83614c66565b9150614e3d8460208501614dc1565b90509250929050565b600080600060408486031215614e5b57600080fd5b8335614e6681614c02565b925060208401356001600160401b03811115614e8157600080fd5b614e8d86828701614ca9565b9497909650939450505050565b60006001600160401b03821115614eb357614eb3614acb565b5060051b60200190565b600060408284031215614ecf57600080fd5b614ed7614b09565b9050614ee282614c66565b81526020820135614ef281614c02565b602082015292915050565b600080600080600060a08688031215614f1557600080fd5b8535614f2081614c02565b945060208681013594506040808801356001600160401b03811115614f4457600080fd5b8801601f81018a13614f5557600080fd5b8035614f68614f6382614e9a565b614b2b565b81815260069190911b8201840190848101908c831115614f8757600080fd5b928501925b82841015614fad57614f9e8d85614ebd565b82529284019290850190614f8c565b999c989b5098996060810135995060800135979650505050505050565b60006101008284031215614fdd57600080fd5b50919050565b60008083601f840112614ff557600080fd5b5081356001600160401b0381111561500c57600080fd5b6020830191508360208260061b85010111156146bf57600080fd5b60006060828403121561503957600080fd5b615041614ae1565b905081356001600160401b0381111561505957600080fd5b8201601f8101841361506a57600080fd5b61507984823560208401614b5b565b825250602082013560208201526040820135604082015292915050565b60008060008060008060008060006101a08a8c0312156150b557600080fd5b89356001600160401b03808211156150cc57600080fd5b6150d88d838e01614ca9565b909b50995060208c01359150808211156150f157600080fd5b6150fd8d838e01614ca9565b90995097508791506151128d60408e01614fca565b96506101408c013591508082111561512957600080fd5b6151358d838e01614fe3565b90965094506101608c013591508082111561514f57600080fd5b61515b8d838e01615027565b93506101808c013591508082111561517257600080fd5b5061517f8c828d01615027565b9150509295985092959850929598565b60008060008060008061016087890312156151a957600080fd5b86356001600160401b03808211156151c057600080fd5b6151cc8a838b01614ca9565b909850965060208901359150808211156151e557600080fd5b6151f18a838b01614ca9565b90965094508491506152068a60408b01614fca565b935061014089013591508082111561521d57600080fd5b5061522a89828a01615027565b9150509295509295509295565b6000806040838503121561524a57600080fd5b823561525581614a81565b91506020838101356001600160401b0381111561527157600080fd5b8401601f8101861361528257600080fd5b8035615290614f6382614e9a565b81815260059190911b820183019083810190888311156152af57600080fd5b928401925b828410156152cd578335825292840192908401906152b4565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561531a57835163ffffffff16835292840192918401916001016152f8565b50909695505050505050565b6000806020838503121561533957600080fd5b82356001600160401b0381111561534f57600080fd5b614a5c85828601614ca9565b6001600160601b0381168114610c7557600080fd5b600082601f83011261538157600080fd5b81356020615391614f6383614e9a565b82815260069290921b840181019181810190868411156153b057600080fd5b8286015b8481101561540157604081890312156153cd5760008081fd5b6153d5614b09565b81356153e081614c02565b8152818501356153ef8161535b565b818601528352918301916040016153b4565b509695505050505050565b600080600060a0848603121561542157600080fd5b61542b8585614dc1565b9250606084013561543b8161535b565b915060808401356001600160401b0381111561545657600080fd5b61546286828701615370565b9150509250925092565b600082601f83011261547d57600080fd5b8135602061548d614f6383614e9a565b828152606092830285018201928282019190878511156154ac57600080fd5b8387015b858110156154cf576154c28982614dc1565b84529284019281016154b0565b5090979650505050505050565b600082601f8301126154ed57600080fd5b813560206154fd614f6383614e9a565b82815260059290921b8401810191818101908684111561551c57600080fd5b8286015b848110156154015780356155338161535b565b8352918301918301615520565b600082601f83011261555157600080fd5b81356020615561614f6383614e9a565b82815260059290921b8401810191818101908684111561558057600080fd5b8286015b848110156154015780356001600160401b038111156155a35760008081fd5b6155b18986838b0101615370565b845250918301918301615584565b600080600080600080600080610100898b0312156155dc57600080fd5b6155e589614c17565b97506155f360208a01614c17565b965061560160408a01614c17565b955061560f60608a01614c17565b94506080890135935060a08901356001600160401b038082111561563257600080fd5b61563e8c838d0161546c565b945060c08b013591508082111561565457600080fd5b6156608c838d016154dc565b935060e08b013591508082111561567657600080fd5b506156838b828c01615540565b9150509295985092959890939650565b60208101610f048284614d6b565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415615718576157186156ee565b5060010190565b60006020828403121561573157600080fd5b815161294d81614c02565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561579857600080fd5b8151801515811461294d57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261580757600080fd5b8301803591506001600160401b0382111561582157600080fd5b6020019150600581901b36038213156146bf57600080fd5b60006020828403121561584b57600080fd5b815161294d81614a81565b60008219821115615869576158696156ee565b500190565b6000808585111561587e57600080fd5b8386111561588b57600080fd5b5050820193919092039150565b600060c08201888352602060018060a01b03808a16828601526040898187015260c0606087015283895180865260e088019150848b01955060005b818110156158fd578651805160ff16845286015185168684015295850195918301916001016158d3565b505060808701989098525050505060a09091019190915250949350505050565b60006040828403121561592f57600080fd5b61294d8383614ebd565b60008282101561594b5761594b6156ee565b500390565b6000815180845260005b818110156159765760208185018101518683018201520161595a565b81811115615988576000602083870101525b50601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006159c46060830184615950565b95945050505050565b6000602082840312156159df57600080fd5b81516001600160c01b038116811461294d57600080fd5b828152604060208201526000614bfa6040830184615950565b60208152600061294d6020830184615950565b634e487b7160e01b600052601260045260246000fd5b600082615a4757615a47615a22565b500690565b6001600160a01b0383168152604060208201819052600090614bfa90830184615950565b600060208284031215615a8257600080fd5b5051919050565b6001600160a01b03841681526101608101615ab1602083018580358252602090810135910152565b615acb606083016040860180358252602090810135910152565b60406080850160a084013760e0820160008152604060c0860182375060006101208301908152835190526020909201516101409091015292915050565b60018060a01b0383168152604060208201526000825160606040840152615b3260a0840182615950565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906159c49083018486615b53565b60018060a01b0385168152836020820152606060408201526000611805606083018486615b53565b600082601f830112615bda57600080fd5b81516020615bea614f6383614e9a565b82815260059290921b84018101918181019086841115615c0957600080fd5b8286015b84811015615401578051615c208161535b565b8352918301918301615c0d565b60008060408385031215615c4057600080fd5b82516001600160401b0380821115615c5757600080fd5b615c6386838701615bc9565b93506020850151915080821115615c7957600080fd5b50615c8685828601615bc9565b9150509250929050565b8381526040602082015260006159c4604083018486615b53565b60006020808385031215615cbd57600080fd5b82516001600160401b03811115615cd357600080fd5b8301601f81018513615ce457600080fd5b8051615cf2614f6382614e9a565b81815260059190911b82018301908381019087831115615d1157600080fd5b928401925b82841015615d38578351615d2981614a81565b82529284019290840190615d16565b979650505050505050565b600060208284031215615d5557600080fd5b815161294d8161535b565b600060ff821660ff84168060ff03821115615d7d57615d7d6156ee565b019392505050565b60006060820160ff8616835260206001600160601b03808716828601526040606081870152838751808652608088019150848901955060005b81811015615dee57865180516001600160a01b031684528601518516868401529585019591830191600101615dbe565b50909a9950505050505050505050565b600061ffff80831681811415615e1657615e166156ee565b6001019392505050565b600060208284031215615e3257600080fd5b81516001600160e01b03198116811461294d57600080fd5b60006001600160601b0380831681851681830481118215151615615e7057615e706156ee565b02949350505050565b60006001600160601b0380841680615e9357615e93615a22565b9216919091049291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47526567436f6f72642e7570646174654f70657261746f7273466f7251756f7275a2646970667358221220307187e79582c006632779f3f22aae3770293ab464d35484326624b926c86eaa64736f6c634300080c0033
/// ```
#[rustfmt::skip]
#[allow(clippy::all)]
pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
b"a\x01\xE0`@R4\x80\x15b\0\0\x12W`\0\x80\xFD[P`@Qb\0b\xEF8\x03\x80b\0b\xEF\x839\x81\x01`@\x81\x90Rb\0\x005\x91b\0\x02@V[`@\x80Q\x80\x82\x01\x82R`\x16\x81R\x7FAVSRegistryCoordinator\0\0\0\0\0\0\0\0\0\0` \x80\x83\x01\x91\x82R\x83Q\x80\x85\x01\x85R`\x06\x81Rev0.0.1`\xD0\x1B\x90\x82\x01R\x91Q\x90 `\xE0\x81\x90R\x7Fk\xDA~?8^H\x84\x10H9\x04D\xCC\xED\\\xC7\x95\xAF\x87u\x8A\xF6v\"\xE5\xF4\xF0\x88,J\x99a\x01\0\x81\x90RF`\xA0\x81\x81R\x85Q\x7F\x8Bs\xC3\xC6\x9B\xB8\xFE=Q.\xCCL\xF7Y\xCCy#\x9F{\x17\x9B\x0F\xFA\xCA\xA9\xA7]R+9@\x0F\x81\x87\x01\x81\x90R\x81\x88\x01\x95\x90\x95R``\x81\x01\x93\x90\x93R`\x80\x80\x84\x01\x92\x90\x92R0\x83\x82\x01\x81\x90R\x86Q\x80\x85\x03\x90\x92\x01\x82R`\xC0\x93\x84\x01\x90\x96R\x80Q\x94\x01\x93\x90\x93 \x90\x92R\x91\x90Ra\x01 R`\x01`\x01`\xA0\x1B\x03\x80\x86\x16a\x01@R\x80\x85\x16a\x01\x80R\x80\x84\x16a\x01`R\x80\x83\x16a\x01\xA0R\x81\x16a\x01\xC0Rb\0\x01Zb\0\x01eV[PPPPPb\0\x02\xC0V[`\0Ta\x01\0\x90\x04`\xFF\x16\x15b\0\x01\xD2W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`'`$\x82\x01R\x7FInitializable: contract is initi`D\x82\x01Rfalizing`\xC8\x1B`d\x82\x01R`\x84\x01`@Q\x80\x91\x03\x90\xFD[`\0T`\xFF\x90\x81\x16\x10\x15b\0\x02%W`\0\x80T`\xFF\x19\x16`\xFF\x90\x81\x17\x90\x91U`@Q\x90\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[V[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\x02=W`\0\x80\xFD[PV[`\0\x80`\0\x80`\0`\xA0\x86\x88\x03\x12\x15b\0\x02YW`\0\x80\xFD[\x85Qb\0\x02f\x81b\0\x02'V[` \x87\x01Q\x90\x95Pb\0\x02y\x81b\0\x02'V[`@\x87\x01Q\x90\x94Pb\0\x02\x8C\x81b\0\x02'V[``\x87\x01Q\x90\x93Pb\0\x02\x9F\x81b\0\x02'V[`\x80\x87\x01Q\x90\x92Pb\0\x02\xB2\x81b\0\x02'V[\x80\x91PP\x92\x95P\x92\x95\x90\x93PV[`\x80Q`\xA0Q`\xC0Q`\xE0Qa\x01\0Qa\x01 Qa\x01@Qa\x01`Qa\x01\x80Qa\x01\xA0Qa\x01\xC0Qa_\x15b\0\x03\xDA`\09`\0\x81\x81a\x08[\x01Ra%\n\x01R`\0\x81\x81a\x06\xC6\x01R\x81\x81a\x11|\x01R\x81\x81a \x11\x01R\x81\x81a.\xA6\x01R\x81\x81a6\xD6\x01Ra<\xA4\x01R`\0\x81\x81a\x06\x0B\x01R\x81\x81a\x1F\x9C\x01R\x81\x81a$D\x01R\x81\x81a.&\x01R\x81\x81a6-\x01R\x81\x81a8\x8C\x01Ra<#\x01R`\0\x81\x81a\x05\xD1\x01R\x81\x81a\x0F#\x01R\x81\x81a\x1F\xDA\x01R\x81\x81a-\xA8\x01R\x81\x81a/\x8E\x01R\x81\x81a0\x04\x01R\x81\x81a5\xAD\x01Ra= \x01R`\0\x81\x81a\x05\x15\x01R\x81\x81a,\xFE\x01Ra4\xEB\x01R`\0a?'\x01R`\0a?v\x01R`\0a?Q\x01R`\0a>\xAA\x01R`\0a>\xD4\x01R`\0a>\xFE\x01Ra_\x15`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x02\xF0W`\x005`\xE0\x1C\x80c]\xF4YF\x11a\x01\x9DW\x80c\xA5\x08W\xBF\x11a\0\xE9W\x80c\xD7[L\x88\x11a\0\xA2W\x80c\xEA2\xAF\xAE\x11a\0|W\x80c\xEA2\xAF\xAE\x14a\x08VW\x80c\xF2\xFD\xE3\x8B\x14a\x08}W\x80c\xFA\xBC\x1C\xBC\x14a\x08\x90W\x80c\xFD9\x10Z\x14a\x08\xA3W`\0\x80\xFD[\x80c\xD7[L\x88\x14a\x07\x8DW\x80c\xDD\x82\x83\xF3\x14a\x07\xA0W\x80c\xE6W\x97\xAD\x14a\x07\xB3W`\0\x80\xFD[\x80c\xA5\x08W\xBF\x14a\x07\x0FW\x80c\xA9ox>\x14a\x07\"W\x80c\xC3\x91B^\x14a\x07+W\x80c\xCA\r\xE8\x82\x14a\x07KW\x80c\xCAO-\x97\x14a\x07rW\x80c\xD7-\x8D\xD6\x14a\x07\x85W`\0\x80\xFD[\x80c\x87\x1E\xF0I\x11a\x01VW\x80c\x9A\xA1e=\x11a\x010W\x80c\x9A\xA1e=\x14a\x06\x8FW\x80c\x9B]\x17{\x14a\x06\xAEW\x80c\x9E\x99#\xC2\x14a\x06\xC1W\x80c\x9F\xEA\xB8Y\x14a\x06\xE8W`\0\x80\xFD[\x80c\x87\x1E\xF0I\x14a\x06[W\x80c\x88o\x11\x95\x14a\x06nW\x80c\x8D\xA5\xCB[\x14a\x06\x87W`\0\x80\xFD[\x80c]\xF4YF\x14a\x05\xCCW\x80ccG\xC9\0\x14a\x05\xF3W\x80ch0H5\x14a\x06\x06W\x80cn;\x17\xDB\x14a\x06-W\x80cqP\x18\xA6\x14a\x06@W\x80c\x84\xCAR\x13\x14a\x06HW`\0\x80\xFD[\x80c$\x9A\x0CB\x11a\x02\\W\x80c<*\x7FL\x11a\x02\x15W\x80cY\\jg\x11a\x01\xEFW\x80cY\\jg\x14a\x05\x8AW\x80cZ\xC8j\xB7\x14a\x05\x92W\x80c[\x0B\x82\x9F\x14a\x05\xB1W\x80c\\\x97Z\xBB\x14a\x05\xC4W`\0\x80\xFD[\x80c<*\x7FL\x14a\x057W\x80cQ@\xA5H\x14a\x05WW\x80cXe\xC6\x0C\x14a\x05jW`\0\x80\xFD[\x80c$\x9A\x0CB\x14a\x04\xA4W\x80c(\xF6\x1B1\x14a\x04\xC4W\x80c)k\xB0d\x14a\x04\xD7W\x80c)\xD1\xE0\xC3\x14a\x04\xEAW\x80c,\xDD\x1E\x86\x14a\x04\xFDW\x80c9\x98\xFD\xD3\x14a\x05\x10W`\0\x80\xFD[\x80c\x10\xD6z/\x11a\x02\xAEW\x80c\x10\xD6z/\x14a\x03\xB9W\x80c\x12^\x05\x84\x14a\x03\xCCW\x80c\x13T*N\x14a\x03\xECW\x80c\x13d9\xDD\x14a\x04\x15W\x80c\x14x\x85\x1F\x14a\x04(W\x80c\x1E\xB8\x12\xDA\x14a\x04[W`\0\x80\xFD[\x80b\xCF*\xB5\x14a\x02\xF5W\x80c\x03\xFD4\x92\x14a\x03\nW\x80c\x04\xECcQ\x14a\x03=W\x80c\x05C\x10\xE6\x14a\x03hW\x80c\x0C\xF4\xB7g\x14a\x03\x93W\x80c\r?!4\x14a\x03\xA6W[`\0\x80\xFD[a\x03\x08a\x03\x036`\x04aJ'V[a\x08\xDFV[\0[a\x03*a\x03\x186`\x04aJhV[`\0\x90\x81R`\x98` R`@\x90 T\x90V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x03Pa\x03K6`\x04aJ\x93V[a\t\xF5V[`@Q`\x01`\x01`\xC0\x1B\x03\x90\x91\x16\x81R` \x01a\x034V[`\x9DTa\x03{\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x034V[a\x03\x08a\x03\xA16`\x04aK\xB2V[a\x0B\xCEV[a\x03\x08a\x03\xB46`\x04aJhV[a\x0CxV[a\x03\x08a\x03\xC76`\x04aL'V[a\x0C\x85V[a\x03*a\x03\xDA6`\x04aL'V[`\x9F` R`\0\x90\x81R`@\x90 T\x81V[a\x03*a\x03\xFA6`\x04aL'V[`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x99` R`@\x90 T\x90V[a\x03\x08a\x04#6`\x04aJhV[a\r5V[a\x04Ka\x0466`\x04aJhV[`\x9A` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x034V[a\x04na\x04i6`\x04aLDV[a\x0EyV[`@\x80Q\x82Qc\xFF\xFF\xFF\xFF\x90\x81\x16\x82R` \x80\x85\x01Q\x90\x91\x16\x90\x82\x01R\x91\x81\x01Q`\x01`\x01`\xC0\x1B\x03\x16\x90\x82\x01R``\x01a\x034V[a\x03*a\x04\xB26`\x04aLwV[`\x9B` R`\0\x90\x81R`@\x90 T\x81V[`\x9ETa\x03{\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x03{a\x04\xE56`\x04aJhV[a\x0F\nV[a\x03\x08a\x04\xF86`\x04aL'V[a\x0F\x96V[a\x03\x08a\x05\x0B6`\x04aL'V[a\x0F\xA7V[a\x03{\x7F\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\0\0\0\0\x81V[a\x05Ja\x05E6`\x04aL'V[a\x0F\xB8V[`@Qa\x034\x91\x90aL\x92V[a\x03\x08a\x05e6`\x04aL\xEAV[a\x107V[a\x05}a\x05x6`\x04aL'V[a\x15\x10V[`@Qa\x034\x91\x90aM\x8DV[a\x03\x08a\x15\x84V[a\x04Ka\x05\xA06`\x04aLwV[`\x01\x80T`\xFF\x90\x92\x16\x1B\x90\x81\x16\x14\x90V[a\x03\x08a\x05\xBF6`\x04aN\x12V[a\x16PV[`\x01Ta\x03*V[a\x03{\x7F\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\0\0\0\0\x81V[a\x03{a\x06\x016`\x04aJhV[a\x16qV[a\x03{\x7F\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\0\0\0\0\x81V[a\x03\x08a\x06;6`\x04aNFV[a\x16\x9BV[a\x03\x08a\x17\xB1V[a\x03*a\x06V6`\x04aN\xFDV[a\x17\xC5V[a\x03Pa\x06i6`\x04aJhV[a\x18\x0FV[`\0Ta\x03{\x90b\x01\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x03{a\x18\x1AV[`\x96Ta\x06\x9C\x90`\xFF\x16\x81V[`@Q`\xFF\x90\x91\x16\x81R` \x01a\x034V[a\x03\x08a\x06\xBC6`\x04aP\x96V[a\x183V[a\x03{\x7F\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\0\0\0\0\x81V[a\x03*\x7F+\xD8!$\x05\x7F\t\x13\xBC;w,\xE7\xB8>\x80W\xC1\xAD\x1F5\x10\xFC\x83w\x8B\xE2\x0F\x10\xEC]\xE6\x81V[a\x03\x08a\x07\x1D6`\x04aQ\x8FV[a\x1B]V[a\x03*`\xA0T\x81V[a\x07>a\x0796`\x04aR7V[a\x1C\xD3V[`@Qa\x034\x91\x90aR\xDCV[a\x03*\x7FM@N2v\xE7\xAC!c\xD8\xEEGj\xFAjA\xD1\xF6\x8F\xB7\x1F-\x8BeF\xB2NU\xCE\x01\xB7*\x81V[a\x03\x08a\x07\x806`\x04aS&V[a\x1D\x8CV[`\x9CTa\x03*V[a\x03\x08a\x07\x9B6`\x04aT\x0CV[a\x1D\xF3V[a\x03\x08a\x07\xAE6`\x04aU\xBFV[a\x1E\x06V[a\x08\"a\x07\xC16`\x04aLwV[`@\x80Q``\x80\x82\x01\x83R`\0\x80\x83R` \x80\x84\x01\x82\x90R\x92\x84\x01\x81\x90R`\xFF\x94\x90\x94\x16\x84R`\x97\x82R\x92\x82\x90 \x82Q\x93\x84\x01\x83RTc\xFF\xFF\xFF\xFF\x81\x16\x84Ra\xFF\xFF`\x01` \x1B\x82\x04\x81\x16\x92\x85\x01\x92\x90\x92R`\x01`0\x1B\x90\x04\x16\x90\x82\x01R\x90V[`@\x80Q\x82Qc\xFF\xFF\xFF\xFF\x16\x81R` \x80\x84\x01Qa\xFF\xFF\x90\x81\x16\x91\x83\x01\x91\x90\x91R\x92\x82\x01Q\x90\x92\x16\x90\x82\x01R``\x01a\x034V[a\x03{\x7F\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\0\0\0\0\x81V[a\x03\x08a\x08\x8B6`\x04aL'V[a \xFFV[a\x03\x08a\x08\x9E6`\x04aJhV[a!uV[a\x08\xD2a\x08\xB16`\x04aL'V[`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x99` R`@\x90 `\x01\x01T`\xFF\x16\x90V[`@Qa\x034\x91\x90aV\x93V[`\x01T`\x02\x90`\x04\x90\x81\x16\x14\x15a\t\x11W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\t\x08\x90aV\xA1V[`@Q\x80\x91\x03\x90\xFD[`\0[\x82\x81\x10\x15a\t\xEFW`\0\x84\x84\x83\x81\x81\x10a\t0Wa\t0aV\xD8V[\x90P` \x02\x01` \x81\x01\x90a\tE\x91\x90aL'V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x99` \x90\x81R`@\x80\x83 \x81Q\x80\x83\x01\x90\x92R\x80T\x82R`\x01\x81\x01T\x94\x95P\x92\x93\x90\x92\x91\x83\x01\x90`\xFF\x16`\x02\x81\x11\x15a\t\x90Wa\t\x90aMUV[`\x02\x81\x11\x15a\t\xA1Wa\t\xA1aMUV[\x90RP\x80Q\x90\x91P`\0a\t\xB4\x82a\"\xD1V[\x90P`\0a\t\xCA\x82`\x01`\x01`\xC0\x1B\x03\x16a#:V[\x90Pa\t\xD7\x85\x85\x83a$\x06V[PPPPP\x80\x80a\t\xE7\x90aW\x04V[\x91PPa\t\x14V[PPPPV[`\0\x83\x81R`\x98` R`@\x81 \x80T\x82\x91\x90\x84\x90\x81\x10a\n\x18Wa\n\x18aV\xD8V[`\0\x91\x82R` \x91\x82\x90 `@\x80Q``\x81\x01\x82R\x92\x90\x91\x01Tc\xFF\xFF\xFF\xFF\x80\x82\x16\x80\x85R`\x01` \x1B\x83\x04\x82\x16\x95\x85\x01\x95\x90\x95R`\x01`@\x1B\x90\x91\x04`\x01`\x01`\xC0\x1B\x03\x16\x91\x83\x01\x91\x90\x91R\x90\x92P\x85\x16\x10\x15a\x0B\x04W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`Z`$\x82\x01R\x7FRegCoord.getQuorumBitmapAtBlockN`D\x82\x01R\x7FumberByIndex: quorumBitmapUpdate`d\x82\x01R\x7F is from after blockNumber\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\t\x08V[` \x81\x01Qc\xFF\xFF\xFF\xFF\x16\x15\x80a\x0B*WP\x80` \x01Qc\xFF\xFF\xFF\xFF\x16\x84c\xFF\xFF\xFF\xFF\x16\x10[a\x0B\xC2W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`[`$\x82\x01R\x7FRegCoord.getQuorumBitmapAtBlockN`D\x82\x01R\x7FumberByIndex: quorumBitmapUpdate`d\x82\x01R\x7F is from before blockNumber\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\t\x08V[`@\x01Q\x94\x93PPPPV[`\x013`\0\x90\x81R`\x99` R`@\x90 `\x01\x01T`\xFF\x16`\x02\x81\x11\x15a\x0B\xF7Wa\x0B\xF7aMUV[\x14a\x0C[W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FRegCoord.updateSocket: operator `D\x82\x01Rm\x1B\x9B\xDD\x08\x1C\x99Y\xDA\\\xDD\x19\\\x99Y`\x92\x1B`d\x82\x01R`\x84\x01a\t\x08V[3`\0\x90\x81R`\x99` R`@\x90 Ta\x0Cu\x90\x82a$\xF3V[PV[a\x0C\x80a%\xAFV[`\xA0UV[`\0`\x02\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c\xEA\xB6mz`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0C\xD8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\xFC\x91\x90aW\x1FV[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a\r,W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\t\x08\x90aW<V[a\x0Cu\x81a&\x0EV[`\0T`@Qc#}\xFBG`\xE1\x1B\x81R3`\x04\x82\x01Rb\x01\0\0\x90\x91\x04`\x01`\x01`\xA0\x1B\x03\x16\x90cF\xFB\xF6\x8E\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\r\x82W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\r\xA6\x91\x90aW\x86V[a\r\xC2W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\t\x08\x90aW\xA8V[`\x01T\x81\x81\x16\x14a\x0E;W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`8`$\x82\x01R\x7FPausable.pause: invalid attempt `D\x82\x01R\x7Fto unpause functionality\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\t\x08V[`\x01\x81\x90U`@Q\x81\x81R3\x90\x7F\xAB@\xA3t\xBCQ\xDE7\"\0\xA8\xBC\x98\x1A\xF8\xC9\xEC\xDC\x08\xDF\xDA\xEF\x0B\xB6\xE0\x9F\x88\xF3\xC6\x16\xEF=\x90` \x01[`@Q\x80\x91\x03\x90\xA2PV[`@\x80Q``\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x91\x90\x91R`\0\x83\x81R`\x98` R`@\x90 \x80T\x83\x90\x81\x10a\x0E\xB6Wa\x0E\xB6aV\xD8V[`\0\x91\x82R` \x91\x82\x90 `@\x80Q``\x81\x01\x82R\x91\x90\x92\x01Tc\xFF\xFF\xFF\xFF\x80\x82\x16\x83R`\x01` \x1B\x82\x04\x16\x93\x82\x01\x93\x90\x93R`\x01`\x01`\xC0\x1B\x03`\x01`@\x1B\x90\x93\x04\x92\x90\x92\x16\x90\x82\x01R\x90P[\x92\x91PPV[`@Qc\x08\xF6b\x9D`\xE3\x1B\x81R`\x04\x81\x01\x82\x90R`\0\x90\x7F\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\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90cG\xB3\x14\xE8\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0FrW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0F\x04\x91\x90aW\x1FV[a\x0F\x9Ea%\xAFV[a\x0Cu\x81a'\x13V[a\x0F\xAFa%\xAFV[a\x0Cu\x81a'|V[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01Ra\x0F\x04a\x102\x7F+\xD8!$\x05\x7F\t\x13\xBC;w,\xE7\xB8>\x80W\xC1\xAD\x1F5\x10\xFC\x83w\x8B\xE2\x0F\x10\xEC]\xE6\x84`@Q` \x01a\x10\x17\x92\x91\x90\x91\x82R`\x01`\x01`\xA0\x1B\x03\x16` \x82\x01R`@\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a'\xE5V[a(3V[`\x01T`\x02\x90`\x04\x90\x81\x16\x14\x15a\x10`W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\t\x08\x90aV\xA1V[`\0a\x10\xA8\x84\x84\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPP`\x96T`\xFF\x16\x91Pa(\xC3\x90PV[\x90P\x84\x83\x14a\x11\rW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`8`$\x82\x01R`\0\x80Q` a^\xC0\x839\x81Q\x91R`D\x82\x01R\x7Fm: input length mismatch\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\t\x08V[`\0[\x83\x81\x10\x15a\x15\x07W`\0\x85\x85\x83\x81\x81\x10a\x11,Wa\x11,aV\xD8V[\x91\x90\x91\x015`\xF8\x1C\x91P6\x90P`\0\x89\x89\x85\x81\x81\x10a\x11MWa\x11MaV\xD8V[\x90P` \x02\x81\x01\x90a\x11_\x91\x90aW\xF0V[`@Qcy\xA0\x84\x91`\xE1\x1B\x81R`\xFF\x86\x16`\x04\x82\x01R\x91\x93P\x91P\x7F\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\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\xF3A\t\"\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x11\xCBW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x11\xEF\x91\x90aX9V[c\xFF\xFF\xFF\xFF\x16\x81\x14a\x12}W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`Z`$\x82\x01R`\0\x80Q` a^\xC0\x839\x81Q\x91R`D\x82\x01R\x7Fm: number of updated operators d`d\x82\x01R\x7Foes not match quorum total\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\t\x08V[`\0\x80[\x82\x81\x10\x15a\x14\xA6W`\0\x84\x84\x83\x81\x81\x10a\x12\x9DWa\x12\x9DaV\xD8V[\x90P` \x02\x01` \x81\x01\x90a\x12\xB2\x91\x90aL'V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x99` \x90\x81R`@\x80\x83 \x81Q\x80\x83\x01\x90\x92R\x80T\x82R`\x01\x81\x01T\x94\x95P\x92\x93\x90\x92\x91\x83\x01\x90`\xFF\x16`\x02\x81\x11\x15a\x12\xFDWa\x12\xFDaMUV[`\x02\x81\x11\x15a\x13\x0EWa\x13\x0EaMUV[\x90RP\x80Q\x90\x91P`\0a\x13!\x82a\"\xD1V[\x90P`\x01`\x01`\x01`\xC0\x1B\x03\x82\x16`\xFF\x8B\x16\x1C\x81\x16\x14a\x13\x97W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`9`$\x82\x01R`\0\x80Q` a^\xC0\x839\x81Q\x91R`D\x82\x01R\x7Fm: operator not in quorum\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\t\x08V[\x85`\x01`\x01`\xA0\x1B\x03\x16\x84`\x01`\x01`\xA0\x1B\x03\x16\x11a\x142W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\\`$\x82\x01R`\0\x80Q` a^\xC0\x839\x81Q\x91R`D\x82\x01R\x7Fm: operators array must be sorte`d\x82\x01R\x7Fd in ascending address order\0\0\0\0`\x84\x82\x01R`\xA4\x01a\t\x08V[Pa\x14\x90\x83\x83\x8F\x8F\x8D\x90\x8E`\x01a\x14I\x91\x90aXVV[\x92a\x14V\x93\x92\x91\x90aXnV[\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa$\x06\x92PPPV[P\x90\x92Pa\x14\x9F\x90P\x81aW\x04V[\x90Pa\x12\x81V[P`\xFF\x84\x16`\0\x81\x81R`\x9B` \x90\x81R`@\x91\x82\x90 C\x90\x81\x90U\x91Q\x91\x82R\x7FF\x07}U3\x07c\xF1bi\xFDu\xE5v\x16c\xF4\x19-'\x91t|\x01\x89\xB1j\xD3\x1D\xB0}\xB4\x91\x01`@Q\x80\x91\x03\x90\xA2PPPP\x80a\x15\0\x90aW\x04V[\x90Pa\x11\x10V[PPPPPPPV[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x99` \x90\x81R`@\x91\x82\x90 \x82Q\x80\x84\x01\x90\x93R\x80T\x83R`\x01\x81\x01T\x90\x91\x83\x01\x90`\xFF\x16`\x02\x81\x11\x15a\x15jWa\x15jaMUV[`\x02\x81\x11\x15a\x15{Wa\x15{aMUV[\x90RP\x92\x91PPV[`\0T`@Qc#}\xFBG`\xE1\x1B\x81R3`\x04\x82\x01Rb\x01\0\0\x90\x91\x04`\x01`\x01`\xA0\x1B\x03\x16\x90cF\xFB\xF6\x8E\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15\xD1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x15\xF5\x91\x90aW\x86V[a\x16\x11W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\t\x08\x90aW\xA8V[`\0\x19`\x01\x81\x90U`@Q\x90\x81R3\x90\x7F\xAB@\xA3t\xBCQ\xDE7\"\0\xA8\xBC\x98\x1A\xF8\xC9\xEC\xDC\x08\xDF\xDA\xEF\x0B\xB6\xE0\x9F\x88\xF3\xC6\x16\xEF=\x90` \x01`@Q\x80\x91\x03\x90\xA2V[a\x16Xa%\xAFV[\x81a\x16b\x81a)TV[a\x16l\x83\x83a)\xC1V[PPPV[`\x9C\x81\x81T\x81\x10a\x16\x81W`\0\x80\xFD[`\0\x91\x82R` \x90\x91 \x01T`\x01`\x01`\xA0\x1B\x03\x16\x90P\x81V[a\x16\xA3a*gV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x9F` \x90\x81R`@\x80\x83 B\x90U`\x99\x82R\x80\x83 \x80T\x82Q`\x1F\x87\x01\x85\x90\x04\x85\x02\x81\x01\x85\x01\x90\x93R\x85\x83R\x90\x93\x90\x92\x90\x91a\x17\x10\x91\x87\x90\x87\x90\x81\x90\x84\x01\x83\x82\x80\x82\x847`\0\x92\x01\x91\x90\x91RPP`\x96T`\xFF\x16\x91Pa(\xC3\x90PV[\x90P`\0a\x17\x1D\x83a\"\xD1V[\x90P`\x01\x80\x85\x01T`\xFF\x16`\x02\x81\x11\x15a\x179Wa\x179aMUV[\x14\x80\x15a\x17NWP`\x01`\x01`\xC0\x1B\x03\x82\x16\x15\x15[\x80\x15a\x17lWPa\x17l`\x01`\x01`\xC0\x1B\x03\x83\x81\x16\x90\x83\x16\x81\x16\x14\x90V[\x15a\x15\x07Wa\x15\x07\x87\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa*\xD9\x92PPPV[a\x17\xB9a%\xAFV[a\x17\xC3`\0a/\x1AV[V[`\0a\x18\x05\x7FM@N2v\xE7\xAC!c\xD8\xEEGj\xFAjA\xD1\xF6\x8F\xB7\x1F-\x8BeF\xB2NU\xCE\x01\xB7*\x87\x87\x87\x87\x87`@Q` \x01a\x10\x17\x96\x95\x94\x93\x92\x91\x90aX\x98V[\x96\x95PPPPPPV[`\0a\x0F\x04\x82a\"\xD1V[`\0a\x18.`dT`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x90P\x90V[`\x01\x80T`\0\x91\x90\x81\x16\x14\x15a\x18[W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\t\x08\x90aV\xA1V[\x83\x89\x14a\x18\xD0W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`9`$\x82\x01R\x7FRegCoord.registerOperatorWithChu`D\x82\x01R\x7Frn: input length mismatch\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\t\x08V[`\0a\x18\xDC3\x88a/lV[\x90Pa\x19<3\x82\x88\x88\x80\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01`\0\x90[\x82\x82\x10\x15a\x191Wa\x19\"`@\x83\x02\x86\x016\x81\x90\x03\x81\x01\x90aY\x1DV[\x81R` \x01\x90`\x01\x01\x90a\x19\x05V[PPPPP\x87a0\x9DV[`\0a\x19\x833\x83\x8E\x8E\x8E\x8E\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x8C\x92Pa2\x14\x91PPV[\x90P`\0[\x8B\x81\x10\x15a\x1BNW`\0`\x97`\0\x8F\x8F\x85\x81\x81\x10a\x19\xA8Wa\x19\xA8aV\xD8V[\x91\x90\x91\x015`\xF8\x1C\x82RP` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01`\0 \x81Q``\x81\x01\x83R\x90Tc\xFF\xFF\xFF\xFF\x81\x16\x80\x83Ra\xFF\xFF`\x01` \x1B\x83\x04\x81\x16\x95\x84\x01\x95\x90\x95R`\x01`0\x1B\x90\x91\x04\x90\x93\x16\x91\x81\x01\x91\x90\x91R\x84Q\x80Q\x91\x93P\x90\x84\x90\x81\x10a\x1A\x15Wa\x1A\x15aV\xD8V[` \x02` \x01\x01Qc\xFF\xFF\xFF\xFF\x16\x11\x15a\x1B;Wa\x1A\xB6\x8E\x8E\x84\x81\x81\x10a\x1A>Wa\x1A>aV\xD8V[\x90P\x015`\xF8\x1C`\xF8\x1B`\xF8\x1C\x84`@\x01Q\x84\x81Q\x81\x10a\x1AaWa\x1AaaV\xD8V[` \x02` \x01\x01Q3\x86` \x01Q\x86\x81Q\x81\x10a\x1A\x80Wa\x1A\x80aV\xD8V[` \x02` \x01\x01Q\x8D\x8D\x88\x81\x81\x10a\x1A\x9AWa\x1A\x9AaV\xD8V[\x90P`@\x02\x01\x806\x03\x81\x01\x90a\x1A\xB0\x91\x90aY\x1DV[\x86a7dV[a\x1B;\x89\x89\x84\x81\x81\x10a\x1A\xCBWa\x1A\xCBaV\xD8V[\x90P`@\x02\x01` \x01` \x81\x01\x90a\x1A\xE3\x91\x90aL'V[\x8F\x8F\x85\x90\x86`\x01a\x1A\xF4\x91\x90aXVV[\x92a\x1B\x01\x93\x92\x91\x90aXnV[\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa*\xD9\x92PPPV[P\x80a\x1BF\x81aW\x04V[\x91PPa\x19\x88V[PPPPPPPPPPPPPV[`\x01\x80T`\0\x91\x90\x81\x16\x14\x15a\x1B\x85W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\t\x08\x90aV\xA1V[`\0a\x1B\x913\x85a/lV[\x90P`\0a\x1B\xDA3\x83\x8B\x8B\x8B\x8B\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x8C\x92Pa2\x14\x91PPV[Q\x90P`\0[\x88\x81\x10\x15a\x1C\xC7W`\0\x8A\x8A\x83\x81\x81\x10a\x1B\xFCWa\x1B\xFCaV\xD8V[\x91\x90\x91\x015`\xF8\x1C`\0\x81\x81R`\x97` R`@\x90 T\x85Q\x91\x93Pc\xFF\xFF\xFF\xFF\x16\x91P\x84\x90\x84\x90\x81\x10a\x1C2Wa\x1C2aV\xD8V[` \x02` \x01\x01Qc\xFF\xFF\xFF\xFF\x16\x11\x15a\x1C\xB4W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`9`$\x82\x01R\x7FRegCoord.registerOperator: opera`D\x82\x01R\x7Ftor count exceeds maximum\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\t\x08V[P\x80a\x1C\xBF\x81aW\x04V[\x91PPa\x1B\xE0V[PPPPPPPPPPV[```\0\x82Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x1C\xF0Wa\x1C\xF0aJ\xCBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x1D\x19W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P`\0[\x83Q\x81\x10\x15a\x1D\x84Wa\x1DK\x85\x85\x83\x81Q\x81\x10a\x1D>Wa\x1D>aV\xD8V[` \x02` \x01\x01Qa:OV[\x82\x82\x81Q\x81\x10a\x1D]Wa\x1D]aV\xD8V[c\xFF\xFF\xFF\xFF\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R\x80a\x1D|\x81aW\x04V[\x91PPa\x1D\x1FV[P\x93\x92PPPV[`\x01\x80T`\x02\x90\x81\x16\x14\x15a\x1D\xB3W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\t\x08\x90aV\xA1V[a\x16l3\x84\x84\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa*\xD9\x92PPPV[a\x1D\xFBa%\xAFV[a\x16l\x83\x83\x83a;vV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x1E&WP`\0T`\x01`\xFF\x90\x91\x16\x10[\x80a\x1E@WP0;\x15\x80\x15a\x1E@WP`\0T`\xFF\x16`\x01\x14[a\x1E\xA3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01Rm\x19\x1EH\x1A[\x9A]\x1AX[\x1A^\x99Y`\x92\x1B`d\x82\x01R`\x84\x01a\t\x08V[`\0\x80T`\xFF\x19\x16`\x01\x17\x90U\x80\x15a\x1E\xC6W`\0\x80Ta\xFF\0\x19\x16a\x01\0\x17\x90U[\x82Q\x84Q\x14\x80\x15a\x1E\xD8WP\x81Q\x83Q\x14[a\x1F7W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7FRegCoord.initialize: input lengt`D\x82\x01Ri\r\x04\r\xAD.m\xAC.\x8Cm`\xB3\x1B`d\x82\x01R`\x84\x01a\t\x08V[a\x1F@\x89a/\x1AV[a\x1FJ\x86\x86a=\x82V[a\x1FS\x88a'\x13V[a\x1F\\\x87a'|V[`\x9C\x80T`\x01\x81\x81\x01\x83U`\0\x83\x81R\x7F\xAF\x85\xB9\x07\x1D\xFA\xFE\xAC\x14\t\xD3\xF1\xD1\x9B\xAF\xC9\xBC|7\x97L\xDE\x8D\xF0\xEEah\xF0\x08nS\x9C\x92\x83\x01\x80T`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x92\x83\x16\x17\x90\x92U\x85T\x80\x85\x01\x87U\x85\x01\x80T\x7F\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\0\0\0\0\x84\x16\x90\x83\x16\x17\x90U\x85T\x93\x84\x01\x90\x95U\x91\x90\x92\x01\x80T\x7F\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\0\0\0\0\x90\x92\x16\x91\x90\x93\x16\x17\x90\x91U[\x84Q\x81\x10\x15a \xADWa \x9B\x85\x82\x81Q\x81\x10a ZWa ZaV\xD8V[` \x02` \x01\x01Q\x85\x83\x81Q\x81\x10a tWa taV\xD8V[` \x02` \x01\x01Q\x85\x84\x81Q\x81\x10a \x8EWa \x8EaV\xD8V[` \x02` \x01\x01Qa;vV[\x80a \xA5\x81aW\x04V[\x91PPa <V[P\x80\x15a \xF4W`\0\x80Ta\xFF\0\x19\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPPPPPPV[a!\x07a%\xAFV[`\x01`\x01`\xA0\x1B\x03\x81\x16a!lW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01Reddress`\xD0\x1B`d\x82\x01R`\x84\x01a\t\x08V[a\x0Cu\x81a/\x1AV[`\0`\x02\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c\xEA\xB6mz`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a!\xC8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a!\xEC\x91\x90aW\x1FV[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a\"\x1CW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\t\x08\x90aW<V[`\x01T\x19\x81\x19`\x01T\x19\x16\x14a\"\x9AW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`8`$\x82\x01R\x7FPausable.unpause: invalid attemp`D\x82\x01R\x7Ft to pause functionality\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\t\x08V[`\x01\x81\x90U`@Q\x81\x81R3\x90\x7F5\x82\xD1\x82\x8E&\xBFV\xBD\x80\x15\x02\xBC\x02\x1A\xC0\xBC\x8A\xFBW\xC8&\xE4\x98kEY<\x8F\xAD8\x9C\x90` \x01a\x0EnV[`\0\x81\x81R`\x98` R`@\x81 T\x80a\"\xEEWP`\0\x92\x91PPV[`\0\x83\x81R`\x98` R`@\x90 a#\x07`\x01\x83aY9V[\x81T\x81\x10a#\x17Wa#\x17aV\xD8V[`\0\x91\x82R` \x90\x91 \x01T`\x01`@\x1B\x90\x04`\x01`\x01`\xC0\x1B\x03\x16\x93\x92PPPV[```\0\x80a#H\x84a>rV[a\xFF\xFF\x16`\x01`\x01`@\x1B\x03\x81\x11\x15a#cWa#caJ\xCBV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a#\x8DW` \x82\x01\x81\x806\x837\x01\x90P[P\x90P`\0\x80[\x82Q\x82\x10\x80\x15a#\xA5WPa\x01\0\x81\x10[\x15a#\xFCW`\x01\x81\x1B\x93P\x85\x84\x16\x15a#\xECW\x80`\xF8\x1B\x83\x83\x81Q\x81\x10a#\xCEWa#\xCEaV\xD8V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP\x81`\x01\x01\x91P[a#\xF5\x81aW\x04V[\x90Pa#\x94V[P\x90\x94\x93PPPPV[`\x01\x82` \x01Q`\x02\x81\x11\x15a$\x1EWa$\x1EaMUV[\x14a$(WPPPV[\x81Q`@Qc3V\x7F\x7F`\xE1\x1B\x81R`\0\x90`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x90cf\xAC\xFE\xFE\x90a$}\x90\x88\x90\x86\x90\x88\x90`\x04\x01aY\x9DV[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a$\x9CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a$\xC0\x91\x90aY\xCDV[\x90P`\x01`\x01`\xC0\x1B\x03\x81\x16\x15a$\xECWa$\xEC\x85a$\xE7\x83`\x01`\x01`\xC0\x1B\x03\x16a#:V[a*\xD9V[PPPPPV[`@Qcx!\x9B?`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x90c\xF0C6~\x90a%A\x90\x85\x90\x85\x90`\x04\x01aY\xF6V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a%[W`\0\x80\xFD[PZ\xF1\x15\x80\x15a%oW=`\0\x80>=`\0\xFD[PPPP\x81\x7F\xEC)c\xAB!\xC1\xE5\x0E\x1EX*\xA5B\xAF.K\xF7\xBF8\xE6\xE1@<'\xB4.\x1C]nb\x1E\xAA\x82`@Qa%\xA3\x91\x90aZ\x0FV[`@Q\x80\x91\x03\x90\xA2PPV[3a%\xB8a\x18\x1AV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x17\xC3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\t\x08V[`\x01`\x01`\xA0\x1B\x03\x81\x16a&\x9CW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`I`$\x82\x01R\x7FPausable._setPauserRegistry: new`D\x82\x01R\x7FPauserRegistry cannot be the zer`d\x82\x01Rho address`\xB8\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[`\0T`@\x80Q`\x01`\x01`\xA0\x1B\x03b\x01\0\0\x90\x93\x04\x83\x16\x81R\x91\x83\x16` \x83\x01R\x7Fn\x9F\xCDS\x98\x96\xFC\xA6\x0E\x8B\x0F\x01\xDDX\x023\xE4\x8Ak\x0F}\xF0\x13\xB8\x9B\xA7\xF5e\x86\x9A\xCD\xB6\x91\x01`@Q\x80\x91\x03\x90\xA1`\0\x80T`\x01`\x01`\xA0\x1B\x03\x90\x92\x16b\x01\0\0\x02b\x01\0\0`\x01`\xB0\x1B\x03\x19\x90\x92\x16\x91\x90\x91\x17\x90UV[`\x9DT`@\x80Q`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x81R\x91\x83\x16` \x83\x01R\x7F1TW\xD8\xA8\xFE`\xF0J\xF1|\x16\xE2\xF5\xA5\xE1\xDBa+1d\x8EX\x03\x03`u\x9E\xF8\xF3R\x8C\x91\x01`@Q\x80\x91\x03\x90\xA1`\x9D\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[`\x9ET`@\x80Q`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x81R\x91\x83\x16` \x83\x01R\x7F\x8F0\xAB\t\xF4:l\x15}\x7F\xCE~\n\x13\xC0\x03\x04,\x1C\x95\xE8\xA7.z\x14j!\xC0\xCA\xA2M\xC9\x91\x01`@Q\x80\x91\x03\x90\xA1`\x9E\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[`\0a\x0F\x04a'\xF2a>\x9DV[\x83`@Qa\x19\x01`\xF0\x1B` \x82\x01R`\"\x81\x01\x83\x90R`B\x81\x01\x82\x90R`\0\x90`b\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x92\x91PPV[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R`\0\x80\x80a(c`\0\x80Q` a^\xA0\x839\x81Q\x91R\x86aZ8V[\x90P[a(o\x81a?\xC4V[\x90\x93P\x91P`\0\x80Q` a^\xA0\x839\x81Q\x91R\x82\x83\t\x83\x14\x15a(\xA9W`@\x80Q\x80\x82\x01\x90\x91R\x90\x81R` \x81\x01\x91\x90\x91R\x93\x92PPPV[`\0\x80Q` a^\xA0\x839\x81Q\x91R`\x01\x82\x08\x90Pa(fV[`\0\x80a(\xCF\x84a@FV[\x90P\x80\x83`\xFF\x16`\x01\x90\x1B\x11a)MW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`?`$\x82\x01R\x7FBitmapUtils.orderedBytesArrayToB`D\x82\x01R\x7Fitmap: bitmap exceeds max value\0`d\x82\x01R`\x84\x01a\t\x08V[\x93\x92PPPV[`\x96T`\xFF\x90\x81\x16\x90\x82\x16\x10a\x0CuW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`,`$\x82\x01R\x7FRegCoord.quorumExists: quorum do`D\x82\x01Rk\x19\\\xC8\x1B\x9B\xDD\x08\x19^\x1A\\\xDD`\xA2\x1B`d\x82\x01R`\x84\x01a\t\x08V[`\xFF\x82\x16`\0\x81\x81R`\x97` \x90\x81R`@\x91\x82\x90 \x84Q\x81T\x86\x84\x01\x80Q\x88\x87\x01\x80Qc\xFF\xFF\xFF\xFF\x90\x95\x16e\xFF\xFF\xFF\xFF\xFF\xFF\x19\x90\x94\x16\x84\x17`\x01` \x1Ba\xFF\xFF\x93\x84\x16\x02\x17g\xFF\xFF\0\0\0\0\0\0\x19\x16`\x01`0\x1B\x95\x83\x16\x95\x90\x95\x02\x94\x90\x94\x17\x90\x94U\x85Q\x91\x82RQ\x83\x16\x93\x81\x01\x93\x90\x93RQ\x16\x91\x81\x01\x91\x90\x91R\x7F>\xE6\xFE\x8DTa\x02D\xC3\xE9\xD3\xC0f\xAEJ\xEE\x99x\x84\xAA(\xF1\x06\x16\xAE\x82\x19%@\x13\x18\xAC\x90``\x01a%\xA3V[`\x9ET`\x01`\x01`\xA0\x1B\x03\x163\x14a\x17\xC3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FRegCoord.onlyEjector: caller is `D\x82\x01Rn77\xBA\x10:42\x902\xB52\xB1\xBA7\xB9`\x89\x1B`d\x82\x01R`\x84\x01a\t\x08V[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x99` R`@\x90 \x80T`\x01\x80\x83\x01T`\xFF\x16`\x02\x81\x11\x15a+\rWa+\raMUV[\x14a+\x80W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`8`$\x82\x01R\x7FRegCoord._deregisterOperator: op`D\x82\x01R\x7Ferator is not registered\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\t\x08V[`\x96T`\0\x90a+\x94\x90\x85\x90`\xFF\x16a(\xC3V[\x90P`\0a+\xA1\x83a\"\xD1V[\x90P`\x01`\x01`\xC0\x1B\x03\x82\x16a,\x12W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`0`$\x82\x01R\x7FRegCoord._deregisterOperator: bi`D\x82\x01Ro\x07F\xD6\x17\x02\x066\x16\xE6\xE6\xF7B\x06&R\x03`\x84\x1B`d\x82\x01R`\x84\x01a\t\x08V[a,)`\x01`\x01`\xC0\x1B\x03\x83\x81\x16\x90\x83\x16\x81\x16\x14\x90V[a,\xA9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`D`$\x82\x01\x81\x90R\x7FRegCoord._deregisterOperator: op\x90\x82\x01R\x7Ferator is not registered for quo`d\x82\x01Rcrums`\xE0\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[`\x01`\x01`\xC0\x1B\x03\x82\x81\x16\x19\x82\x16\x16a,\xC2\x84\x82aA\xD3V[`\x01`\x01`\xC0\x1B\x03\x81\x16a-\x91W`\x01\x85\x01\x80T`\xFF\x19\x16`\x02\x17\x90U`@QcQ\xB2zm`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x88\x81\x16`\x04\x83\x01R\x7F\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\0\0\0\0\x16\x90c\xA3d\xF4\xDA\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a-BW`\0\x80\xFD[PZ\xF1\x15\x80\x15a-VW=`\0\x80>=`\0\xFD[PP`@Q\x86\x92P`\x01`\x01`\xA0\x1B\x03\x8A\x16\x91P\x7F9o\xDC\xB1\x80\xCB\x0F\xEA&\x92\x81\x13\xFB\x0F\xD1\xC3T\x98c\xF9\xCDV>j\x18O\x1DW\x81\x16\xC8\xE4\x90`\0\x90\xA3[`@Qc\xF4\xE2O\xE5`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x90c\xF4\xE2O\xE5\x90a-\xDF\x90\x8A\x90\x8A\x90`\x04\x01aZLV[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a-\xF9W`\0\x80\xFD[PZ\xF1\x15\x80\x15a.\rW=`\0\x80>=`\0\xFD[PP`@Qc\xBD)\xB8\xCD`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x92Pc\xBD)\xB8\xCD\x91Pa._\x90\x87\x90\x8A\x90`\x04\x01aY\xF6V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a.yW`\0\x80\xFD[PZ\xF1\x15\x80\x15a.\x8DW=`\0\x80>=`\0\xFD[PP`@Qc\xBD)\xB8\xCD`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x92Pc\xBD)\xB8\xCD\x91Pa.\xDF\x90\x87\x90\x8A\x90`\x04\x01aY\xF6V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a.\xF9W`\0\x80\xFD[PZ\xF1\x15\x80\x15a/\rW=`\0\x80>=`\0\xFD[PPPPPPPPPPPV[`d\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90`\0\x90\xA3PPV[`@Qc\t\xAA\x15'`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R`\0\x91\x7F\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\0\0\0\0\x90\x91\x16\x90c\x13T*N\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a/\xD7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a/\xFB\x91\x90aZpV[\x90P\x80a\x0F\x04W\x7F\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\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xBFy\xCEX\x84\x84a0<\x87a\x0F\xB8V[`@Q\x84c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a0Z\x93\x92\x91\x90aZ\x89V[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a0yW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a)M\x91\x90aZpV[` \x80\x82\x01Q`\0\x90\x81R`\x9A\x90\x91R`@\x90 T`\xFF\x16\x15a18W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`G`$\x82\x01R\x7FRegCoord._verifyChurnApproverSig`D\x82\x01R\x7Fnature: churnApprover salt alrea`d\x82\x01Rf\x19\x1EH\x1D\\\xD9Y`\xCA\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[B\x81`@\x01Q\x10\x15a1\xC2W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`G`$\x82\x01R\x7FRegCoord._verifyChurnApproverSig`D\x82\x01R\x7Fnature: churnApprover signature `d\x82\x01Rf\x19^\x1C\x1A\\\x99Y`\xCA\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[` \x80\x82\x01\x80Q`\0\x90\x81R`\x9A\x90\x92R`@\x91\x82\x90 \x80T`\xFF\x19\x16`\x01\x17\x90U`\x9DT\x90Q\x91\x83\x01Qa\t\xEF\x92`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91a2\r\x91\x88\x91\x88\x91\x88\x91\x90a\x17\xC5V[\x83QaC\x93V[a28`@Q\x80``\x01`@R\x80``\x81R` \x01``\x81R` \x01``\x81RP\x90V[`\0a2\x80\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPP`\x96T`\xFF\x16\x91Pa(\xC3\x90PV[\x90P`\0a2\x8D\x88a\"\xD1V[\x90P`\x01`\x01`\xC0\x1B\x03\x82\x16a2\xFCW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FRegCoord._registerOperator: bitm`D\x82\x01Rm\x06\x17\x02\x066\x16\xE6\xE6\xF7B\x06&R\x03`\x94\x1B`d\x82\x01R`\x84\x01a\t\x08V[\x80\x82\x16`\x01`\x01`\xC0\x1B\x03\x16\x15a3\x8CW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`H`$\x82\x01R\x7FRegCoord._registerOperator: oper`D\x82\x01R\x7Fator already registered for some`d\x82\x01Rg quorums`\xC0\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[`\xA0T`\x01`\x01`\xA0\x1B\x03\x8A\x16`\0\x90\x81R`\x9F` R`@\x90 T`\x01`\x01`\xC0\x1B\x03\x83\x81\x16\x90\x85\x16\x17\x91B\x91a3\xC4\x91\x90aXVV[\x10a47W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`:`$\x82\x01R\x7FRegCoord._registerOperator: oper`D\x82\x01R\x7Fator cannot reregister yet\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\t\x08V[a4A\x89\x82aA\xD3V[`\x01`\x01`\x01`\xA0\x1B\x03\x8B\x16`\0\x90\x81R`\x99` R`@\x90 `\x01\x01T`\xFF\x16`\x02\x81\x11\x15a4sWa4saMUV[\x14a5\x96W`@\x80Q\x80\x82\x01\x82R\x8A\x81R`\x01` \x80\x83\x01\x82\x81R`\x01`\x01`\xA0\x1B\x03\x8F\x16`\0\x90\x81R`\x99\x90\x92R\x93\x90 \x82Q\x81U\x92Q\x83\x82\x01\x80T\x93\x94\x93\x91\x92\x90\x91`\xFF\x19\x16\x90\x83`\x02\x81\x11\x15a4\xCEWa4\xCEaMUV[\x02\x17\x90UPP`@Qc\x99&\xEE}`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x91Pc\x99&\xEE}\x90a5#\x90\x8D\x90\x89\x90`\x04\x01a[\x08V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a5=W`\0\x80\xFD[PZ\xF1\x15\x80\x15a5QW=`\0\x80>=`\0\xFD[PPPPa5_\x89\x87a$\xF3V[`@Q\x89\x90`\x01`\x01`\xA0\x1B\x03\x8C\x16\x90\x7F\xE8\xE6\x8C\xEF\x1C:v\x1E\xD7\xBE~\x84c\xA3u\xF2\x7F{\xC35\xE5\x18$\"<\xAC\xCEcn\xC5\xC3\xFE\x90`\0\x90\xA3[`@Qc\x1F\xD9<\xA9`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x90c?\xB2yR\x90a5\xE6\x90\x8D\x90\x8C\x90\x8C\x90`\x04\x01a[|V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a6\0W`\0\x80\xFD[PZ\xF1\x15\x80\x15a6\x14W=`\0\x80>=`\0\xFD[PP`@Qc%PGw`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x92Pc%PGw\x91Pa6j\x90\x8D\x90\x8D\x90\x8D\x90\x8D\x90`\x04\x01a[\xA1V[`\0`@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a6\x89W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra6\xB1\x91\x90\x81\x01\x90a\\-V[`@\x80\x87\x01\x91\x90\x91R` \x86\x01\x91\x90\x91RQb\xBF\xF0M`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x90b\xBF\xF0M\x90a7\x0E\x90\x8C\x90\x8C\x90\x8C\x90`\x04\x01a\\\x90V[`\0`@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a7-W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra7U\x91\x90\x81\x01\x90a\\\xAAV[\x84RPPP\x96\x95PPPPPPV[` \x80\x83\x01Q`\x01`\x01`\xA0\x1B\x03\x80\x82\x16`\0\x81\x81R`\x99\x90\x94R`@\x90\x93 T\x91\x92\x90\x87\x16\x14\x15a7\xEBW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7FRegCoord._validateChurn: cannot `D\x82\x01Ri1\xB4:\xB97\x109\xB2\xB63`\xB1\x1B`d\x82\x01R`\x84\x01a\t\x08V[\x87`\xFF\x16\x84`\0\x01Q`\xFF\x16\x14a8jW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`<`$\x82\x01R\x7FRegCoord._validateChurn: quorumN`D\x82\x01R\x7Fumber not the same as signed\0\0\0\0`d\x82\x01R`\x84\x01a\t\x08V[`@QcT\x01\xED'`\xE0\x1B\x81R`\x04\x81\x01\x82\x90R`\xFF\x89\x16`$\x82\x01R`\0\x90\x7F\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\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90cT\x01\xED'\x90`D\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a8\xDBW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a8\xFF\x91\x90a]CV[\x90Pa9\x0B\x81\x85aEMV[`\x01`\x01``\x1B\x03\x16\x86`\x01`\x01``\x1B\x03\x16\x11a9\xA5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`K`$\x82\x01R\x7FRegCoord._validateChurn: incomin`D\x82\x01R\x7Fg operator has insufficient stak`d\x82\x01Rj2\x9037\xB9\x101\xB4:\xB97`\xA9\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[a9\xAF\x88\x85aEqV[`\x01`\x01``\x1B\x03\x16\x81`\x01`\x01``\x1B\x03\x16\x10a \xF4W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`Q`$\x82\x01R\x7FRegCoord._validateChurn: cannot `D\x82\x01R\x7Fkick operator with more than kic`d\x82\x01RpkBIPsOfTotalStake`x\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[`\0\x81\x81R`\x98` R`@\x81 T\x81[\x81\x81\x10\x15a:\xE1W`\x01a:t\x82\x84aY9V[a:~\x91\x90aY9V[\x92P\x84c\xFF\xFF\xFF\xFF\x16`\x98`\0\x86\x81R` \x01\x90\x81R` \x01`\0 \x84c\xFF\xFF\xFF\xFF\x16\x81T\x81\x10a:\xB1Wa:\xB1aV\xD8V[`\0\x91\x82R` \x90\x91 \x01Tc\xFF\xFF\xFF\xFF\x16\x11a:\xCFWPPa\x0F\x04V[\x80a:\xD9\x81aW\x04V[\x91PPa:`V[P`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`^`$\x82\x01R\x7FRegCoord.getQuorumBitmapIndexAtB`D\x82\x01R\x7FlockNumber: no bitmap update fou`d\x82\x01R\x7Fnd for operator at blockNumber\0\0`\x84\x82\x01R`\xA4\x01a\t\x08V[`\x96T`\xFF\x16`\xC0\x81\x10a;\xDFW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7FRegCoord.createQuorum: max quoru`D\x82\x01Ri\x1B\\\xC8\x1C\x99XX\xDA\x19Y`\xB2\x1B`d\x82\x01R`\x84\x01a\t\x08V[a;\xEA\x81`\x01a]`V[`\x96\x80T`\xFF\x19\x16`\xFF\x92\x90\x92\x16\x91\x90\x91\x17\x90U\x80a<\t\x81\x86a)\xC1V[`@Q`\x01b\x96\xB5\x89`\xE0\x1B\x03\x19\x81R`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x90c\xFFiJw\x90a<\\\x90\x84\x90\x88\x90\x88\x90`\x04\x01a]\x85V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a<vW`\0\x80\xFD[PZ\xF1\x15\x80\x15a<\x8AW=`\0\x80>=`\0\xFD[PP`@Qc\x13l\xA0\xF9`\xE1\x1B\x81R`\xFF\x84\x16`\x04\x82\x01R\x7F\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\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x92Pc&\xD9A\xF2\x91P`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a<\xF2W`\0\x80\xFD[PZ\xF1\x15\x80\x15a=\x06W=`\0\x80>=`\0\xFD[PP`@Qc\x13l\xA0\xF9`\xE1\x1B\x81R`\xFF\x84\x16`\x04\x82\x01R\x7F\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\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x92Pc&\xD9A\xF2\x91P`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a=nW`\0\x80\xFD[PZ\xF1\x15\x80\x15a \xF4W=`\0\x80>=`\0\xFD[`\0Tb\x01\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x15\x80\x15a=\xA9WP`\x01`\x01`\xA0\x1B\x03\x82\x16\x15\x15[a>+W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`G`$\x82\x01R\x7FPausable._initializePauser: _ini`D\x82\x01R\x7FtializePauser() can only be call`d\x82\x01Rfed once`\xC8\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[`\x01\x81\x90U`@Q\x81\x81R3\x90\x7F\xAB@\xA3t\xBCQ\xDE7\"\0\xA8\xBC\x98\x1A\xF8\xC9\xEC\xDC\x08\xDF\xDA\xEF\x0B\xB6\xE0\x9F\x88\xF3\xC6\x16\xEF=\x90` \x01`@Q\x80\x91\x03\x90\xA2a>n\x82a&\x0EV[PPV[`\0\x80[\x82\x15a\x0F\x04Wa>\x87`\x01\x84aY9V[\x90\x92\x16\x91\x80a>\x95\x81a]\xFEV[\x91PPa>vV[`\x000`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x14\x80\x15a>\xF6WP\x7F\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\0\0\0\0F\x14[\x15a? WP\x7F\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\0\0\0\0\x90V[P`@\x80Q\x7F\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\0\0\0\0` \x80\x83\x01\x91\x90\x91R\x7F\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\0\0\0\0\x82\x84\x01R\x7F\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\0\0\0\0``\x83\x01RF`\x80\x83\x01R0`\xA0\x80\x84\x01\x91\x90\x91R\x83Q\x80\x84\x03\x90\x91\x01\x81R`\xC0\x90\x92\x01\x90\x92R\x80Q\x91\x01 \x90V[`\0\x80\x80`\0\x80Q` a^\xA0\x839\x81Q\x91R`\x03`\0\x80Q` a^\xA0\x839\x81Q\x91R\x86`\0\x80Q` a^\xA0\x839\x81Q\x91R\x88\x89\t\t\x08\x90P`\0a@:\x82\x7F\x0C\x19\x13\x9C\xB8Lh\nn\x14\x11m\xA0`V\x17e\xE0Z\xA4Z\x1Cr\xA3O\x08#\x05\xB6\x1F?R`\0\x80Q` a^\xA0\x839\x81Q\x91RaE\x8BV[\x91\x95\x91\x94P\x90\x92PPPV[`\0a\x01\0\x82Q\x11\x15a@\xCFW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`D`$\x82\x01\x81\x90R\x7FBitmapUtils.orderedBytesArrayToB\x90\x82\x01R\x7Fitmap: orderedBytesArray is too `d\x82\x01Rclong`\xE0\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[\x81Qa@\xDDWP`\0\x91\x90PV[`\0\x80\x83`\0\x81Q\x81\x10a@\xF3Wa@\xF3aV\xD8V[\x01` \x01Q`\x01`\xF8\x91\x90\x91\x1C\x81\x90\x1B\x92P[\x84Q\x81\x10\x15aA\xCAW\x84\x81\x81Q\x81\x10aA!WaA!aV\xD8V[\x01` \x01Q`\x01`\xF8\x91\x90\x91\x1C\x1B\x91P\x82\x82\x11aA\xB6W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`G`$\x82\x01R\x7FBitmapUtils.orderedBytesArrayToB`D\x82\x01R\x7Fitmap: orderedBytesArray is not `d\x82\x01Rf\x1B\xDC\x99\x19\\\x99Y`\xCA\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[\x91\x81\x17\x91aA\xC3\x81aW\x04V[\x90PaA\x06V[P\x90\x93\x92PPPV[`\0\x82\x81R`\x98` R`@\x90 T\x80aBxW`\0\x83\x81R`\x98` \x90\x81R`@\x80\x83 \x81Q``\x81\x01\x83Rc\xFF\xFF\xFF\xFFC\x81\x16\x82R\x81\x85\x01\x86\x81R`\x01`\x01`\xC0\x1B\x03\x80\x8A\x16\x95\x84\x01\x95\x86R\x84T`\x01\x81\x01\x86U\x94\x88R\x95\x90\x96 \x91Q\x91\x90\x92\x01\x80T\x95Q\x93Q\x90\x94\x16`\x01`@\x1B\x02`\x01`\x01`@\x1B\x03\x93\x83\x16`\x01` \x1B\x02g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x90\x96\x16\x91\x90\x92\x16\x17\x93\x90\x93\x17\x16\x91\x90\x91\x17\x90UPPPV[`\0\x83\x81R`\x98` R`@\x81 aB\x91`\x01\x84aY9V[\x81T\x81\x10aB\xA1WaB\xA1aV\xD8V[`\0\x91\x82R` \x90\x91 \x01\x80T\x90\x91PCc\xFF\xFF\xFF\xFF\x90\x81\x16\x91\x16\x14\x15aB\xE5W\x80T`\x01`\x01`@\x1B\x03\x16`\x01`@\x1B`\x01`\x01`\xC0\x1B\x03\x85\x16\x02\x17\x81Ua\t\xEFV[\x80Tc\xFF\xFF\xFF\xFFC\x81\x16`\x01` \x1B\x81\x81\x02g\xFF\xFF\xFF\xFF\0\0\0\0\x19\x90\x94\x16\x93\x90\x93\x17\x84U`\0\x87\x81R`\x98` \x90\x81R`@\x80\x83 \x81Q``\x81\x01\x83R\x94\x85R\x84\x83\x01\x84\x81R`\x01`\x01`\xC0\x1B\x03\x80\x8C\x16\x93\x87\x01\x93\x84R\x82T`\x01\x81\x01\x84U\x92\x86R\x93\x90\x94 \x94Q\x94\x01\x80T\x93Q\x91Q\x90\x92\x16`\x01`@\x1B\x02`\x01`\x01`@\x1B\x03\x91\x86\x16\x90\x96\x02g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x90\x93\x16\x93\x90\x94\x16\x92\x90\x92\x17\x17\x91\x90\x91\x16\x91\x90\x91\x17\x90UPPPPV[`\x01`\x01`\xA0\x1B\x03\x83\x16;\x15aD\xADW`@Qc\x0B\x13]?`\xE1\x1B\x80\x82R\x90`\x01`\x01`\xA0\x1B\x03\x85\x16\x90c\x16&\xBA~\x90aC\xD3\x90\x86\x90\x86\x90`\x04\x01aY\xF6V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15aC\xF0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aD\x14\x91\x90a^ V[`\x01`\x01`\xE0\x1B\x03\x19\x16\x14a\x16lW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`S`$\x82\x01R\x7FEIP1271SignatureUtils.checkSigna`D\x82\x01R\x7Fture_EIP1271: ERC1271 signature `d\x82\x01Rr\x1D\x99\\\x9AY\x9AX\xD8]\x1A[\xDB\x88\x19\x98Z[\x19Y`j\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[\x82`\x01`\x01`\xA0\x1B\x03\x16aD\xC1\x83\x83aF:V[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x16lW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`G`$\x82\x01R\x7FEIP1271SignatureUtils.checkSigna`D\x82\x01R\x7Fture_EIP1271: signature not from`d\x82\x01Rf\x109\xB4\xB3\xB72\xB9`\xC9\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[` \x81\x01Q`\0\x90a'\x10\x90aEg\x90a\xFF\xFF\x16\x85a^JV[a)M\x91\x90a^yV[`@\x81\x01Q`\0\x90a'\x10\x90aEg\x90a\xFF\xFF\x16\x85a^JV[`\0\x80aE\x96aI\xA7V[aE\x9EaI\xC5V[` \x80\x82R\x81\x81\x01\x81\x90R`@\x82\x01\x81\x90R``\x82\x01\x88\x90R`\x80\x82\x01\x87\x90R`\xA0\x82\x01\x86\x90R\x82`\xC0\x83`\x05a\x07\xD0Z\x03\xFA\x92P\x82\x80\x15aE\xDFWaE\xE1V[\xFE[P\x82aF/W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1A`$\x82\x01R\x7FBN254.expMod: call failure\0\0\0\0\0\0`D\x82\x01R`d\x01a\t\x08V[PQ\x95\x94PPPPPV[`\0\x80`\0aFI\x85\x85aFVV[\x91P\x91Pa\x1D\x84\x81aF\xC6V[`\0\x80\x82Q`A\x14\x15aF\x8DW` \x83\x01Q`@\x84\x01Q``\x85\x01Q`\0\x1AaF\x81\x87\x82\x85\x85aH\x81V[\x94P\x94PPPPaF\xBFV[\x82Q`@\x14\x15aF\xB7W` \x83\x01Q`@\x84\x01QaF\xAC\x86\x83\x83aInV[\x93P\x93PPPaF\xBFV[P`\0\x90P`\x02[\x92P\x92\x90PV[`\0\x81`\x04\x81\x11\x15aF\xDAWaF\xDAaMUV[\x14\x15aF\xE3WPV[`\x01\x81`\x04\x81\x11\x15aF\xF7WaF\xF7aMUV[\x14\x15aGEW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7FECDSA: invalid signature\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\t\x08V[`\x02\x81`\x04\x81\x11\x15aGYWaGYaMUV[\x14\x15aG\xA7W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FECDSA: invalid signature length\0`D\x82\x01R`d\x01a\t\x08V[`\x03\x81`\x04\x81\x11\x15aG\xBBWaG\xBBaMUV[\x14\x15aH\x14W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FECDSA: invalid signature 's' val`D\x82\x01Raue`\xF0\x1B`d\x82\x01R`\x84\x01a\t\x08V[`\x04\x81`\x04\x81\x11\x15aH(WaH(aMUV[\x14\x15a\x0CuW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FECDSA: invalid signature 'v' val`D\x82\x01Raue`\xF0\x1B`d\x82\x01R`\x84\x01a\t\x08V[`\0\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\x15aH\xB8WP`\0\x90P`\x03aIeV[\x84`\xFF\x16`\x1B\x14\x15\x80\x15aH\xD0WP\x84`\xFF\x16`\x1C\x14\x15[\x15aH\xE1WP`\0\x90P`\x04aIeV[`@\x80Q`\0\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\x15aI5W=`\0\x80>=`\0\xFD[PP`@Q`\x1F\x19\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16aI^W`\0`\x01\x92P\x92PPaIeV[\x91P`\0\x90P[\x94P\x94\x92PPPV[`\0\x80`\x01`\x01`\xFF\x1B\x03\x83\x16\x81aI\x8B`\xFF\x86\x90\x1C`\x1BaXVV[\x90PaI\x99\x87\x82\x88\x85aH\x81V[\x93P\x93PPP\x93P\x93\x91PPV[`@Q\x80` \x01`@R\x80`\x01\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80`\xC0\x01`@R\x80`\x06\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`\0\x80\x83`\x1F\x84\x01\x12aI\xF5W`\0\x80\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aJ\x0CW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15aF\xBFW`\0\x80\xFD[`\0\x80` \x83\x85\x03\x12\x15aJ:W`\0\x80\xFD[\x825`\x01`\x01`@\x1B\x03\x81\x11\x15aJPW`\0\x80\xFD[aJ\\\x85\x82\x86\x01aI\xE3V[\x90\x96\x90\x95P\x93PPPPV[`\0` \x82\x84\x03\x12\x15aJzW`\0\x80\xFD[P5\x91\x90PV[c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0CuW`\0\x80\xFD[`\0\x80`\0``\x84\x86\x03\x12\x15aJ\xA8W`\0\x80\xFD[\x835\x92P` \x84\x015aJ\xBA\x81aJ\x81V[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`@Q``\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15aK\x03WaK\x03aJ\xCBV[`@R\x90V[`@\x80Q\x90\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15aK\x03WaK\x03aJ\xCBV[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15aKSWaKSaJ\xCBV[`@R\x91\x90PV[`\0`\x01`\x01`@\x1B\x03\x83\x11\x15aKtWaKtaJ\xCBV[aK\x87`\x1F\x84\x01`\x1F\x19\x16` \x01aK+V[\x90P\x82\x81R\x83\x83\x83\x01\x11\x15aK\x9BW`\0\x80\xFD[\x82\x82` \x83\x017`\0` \x84\x83\x01\x01R\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15aK\xC4W`\0\x80\xFD[\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aK\xDAW`\0\x80\xFD[\x82\x01`\x1F\x81\x01\x84\x13aK\xEBW`\0\x80\xFD[aK\xFA\x84\x825` \x84\x01aK[V[\x94\x93PPPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x0CuW`\0\x80\xFD[\x805aL\"\x81aL\x02V[\x91\x90PV[`\0` \x82\x84\x03\x12\x15aL9W`\0\x80\xFD[\x815a)M\x81aL\x02V[`\0\x80`@\x83\x85\x03\x12\x15aLWW`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[\x805`\xFF\x81\x16\x81\x14aL\"W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aL\x89W`\0\x80\xFD[a)M\x82aLfV[\x81Q\x81R` \x80\x83\x01Q\x90\x82\x01R`@\x81\x01a\x0F\x04V[`\0\x80\x83`\x1F\x84\x01\x12aL\xBBW`\0\x80\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aL\xD2W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15aF\xBFW`\0\x80\xFD[`\0\x80`\0\x80`@\x85\x87\x03\x12\x15aM\0W`\0\x80\xFD[\x845`\x01`\x01`@\x1B\x03\x80\x82\x11\x15aM\x17W`\0\x80\xFD[aM#\x88\x83\x89\x01aI\xE3V[\x90\x96P\x94P` \x87\x015\x91P\x80\x82\x11\x15aM<W`\0\x80\xFD[PaMI\x87\x82\x88\x01aL\xA9V[\x95\x98\x94\x97P\x95PPPPV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`\x03\x81\x10aM\x89WcNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[\x90RV[\x81Q\x81R` \x80\x83\x01Q`@\x83\x01\x91aM\xA8\x90\x84\x01\x82aMkV[P\x92\x91PPV[\x805a\xFF\xFF\x81\x16\x81\x14aL\"W`\0\x80\xFD[`\0``\x82\x84\x03\x12\x15aM\xD3W`\0\x80\xFD[aM\xDBaJ\xE1V[\x90P\x815aM\xE8\x81aJ\x81V[\x81RaM\xF6` \x83\x01aM\xAFV[` \x82\x01RaN\x07`@\x83\x01aM\xAFV[`@\x82\x01R\x92\x91PPV[`\0\x80`\x80\x83\x85\x03\x12\x15aN%W`\0\x80\xFD[aN.\x83aLfV[\x91PaN=\x84` \x85\x01aM\xC1V[\x90P\x92P\x92\x90PV[`\0\x80`\0`@\x84\x86\x03\x12\x15aN[W`\0\x80\xFD[\x835aNf\x81aL\x02V[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aN\x81W`\0\x80\xFD[aN\x8D\x86\x82\x87\x01aL\xA9V[\x94\x97\x90\x96P\x93\x94PPPPV[`\0`\x01`\x01`@\x1B\x03\x82\x11\x15aN\xB3WaN\xB3aJ\xCBV[P`\x05\x1B` \x01\x90V[`\0`@\x82\x84\x03\x12\x15aN\xCFW`\0\x80\xFD[aN\xD7aK\tV[\x90PaN\xE2\x82aLfV[\x81R` \x82\x015aN\xF2\x81aL\x02V[` \x82\x01R\x92\x91PPV[`\0\x80`\0\x80`\0`\xA0\x86\x88\x03\x12\x15aO\x15W`\0\x80\xFD[\x855aO \x81aL\x02V[\x94P` \x86\x81\x015\x94P`@\x80\x88\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aODW`\0\x80\xFD[\x88\x01`\x1F\x81\x01\x8A\x13aOUW`\0\x80\xFD[\x805aOhaOc\x82aN\x9AV[aK+V[\x81\x81R`\x06\x91\x90\x91\x1B\x82\x01\x84\x01\x90\x84\x81\x01\x90\x8C\x83\x11\x15aO\x87W`\0\x80\xFD[\x92\x85\x01\x92[\x82\x84\x10\x15aO\xADWaO\x9E\x8D\x85aN\xBDV[\x82R\x92\x84\x01\x92\x90\x85\x01\x90aO\x8CV[\x99\x9C\x98\x9BP\x98\x99``\x81\x015\x99P`\x80\x015\x97\x96PPPPPPPV[`\0a\x01\0\x82\x84\x03\x12\x15aO\xDDW`\0\x80\xFD[P\x91\x90PV[`\0\x80\x83`\x1F\x84\x01\x12aO\xF5W`\0\x80\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aP\x0CW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x06\x1B\x85\x01\x01\x11\x15aF\xBFW`\0\x80\xFD[`\0``\x82\x84\x03\x12\x15aP9W`\0\x80\xFD[aPAaJ\xE1V[\x90P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aPYW`\0\x80\xFD[\x82\x01`\x1F\x81\x01\x84\x13aPjW`\0\x80\xFD[aPy\x84\x825` \x84\x01aK[V[\x82RP` \x82\x015` \x82\x01R`@\x82\x015`@\x82\x01R\x92\x91PPV[`\0\x80`\0\x80`\0\x80`\0\x80`\0a\x01\xA0\x8A\x8C\x03\x12\x15aP\xB5W`\0\x80\xFD[\x895`\x01`\x01`@\x1B\x03\x80\x82\x11\x15aP\xCCW`\0\x80\xFD[aP\xD8\x8D\x83\x8E\x01aL\xA9V[\x90\x9BP\x99P` \x8C\x015\x91P\x80\x82\x11\x15aP\xF1W`\0\x80\xFD[aP\xFD\x8D\x83\x8E\x01aL\xA9V[\x90\x99P\x97P\x87\x91PaQ\x12\x8D`@\x8E\x01aO\xCAV[\x96Pa\x01@\x8C\x015\x91P\x80\x82\x11\x15aQ)W`\0\x80\xFD[aQ5\x8D\x83\x8E\x01aO\xE3V[\x90\x96P\x94Pa\x01`\x8C\x015\x91P\x80\x82\x11\x15aQOW`\0\x80\xFD[aQ[\x8D\x83\x8E\x01aP'V[\x93Pa\x01\x80\x8C\x015\x91P\x80\x82\x11\x15aQrW`\0\x80\xFD[PaQ\x7F\x8C\x82\x8D\x01aP'V[\x91PP\x92\x95\x98P\x92\x95\x98P\x92\x95\x98V[`\0\x80`\0\x80`\0\x80a\x01`\x87\x89\x03\x12\x15aQ\xA9W`\0\x80\xFD[\x865`\x01`\x01`@\x1B\x03\x80\x82\x11\x15aQ\xC0W`\0\x80\xFD[aQ\xCC\x8A\x83\x8B\x01aL\xA9V[\x90\x98P\x96P` \x89\x015\x91P\x80\x82\x11\x15aQ\xE5W`\0\x80\xFD[aQ\xF1\x8A\x83\x8B\x01aL\xA9V[\x90\x96P\x94P\x84\x91PaR\x06\x8A`@\x8B\x01aO\xCAV[\x93Pa\x01@\x89\x015\x91P\x80\x82\x11\x15aR\x1DW`\0\x80\xFD[PaR*\x89\x82\x8A\x01aP'V[\x91PP\x92\x95P\x92\x95P\x92\x95V[`\0\x80`@\x83\x85\x03\x12\x15aRJW`\0\x80\xFD[\x825aRU\x81aJ\x81V[\x91P` \x83\x81\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aRqW`\0\x80\xFD[\x84\x01`\x1F\x81\x01\x86\x13aR\x82W`\0\x80\xFD[\x805aR\x90aOc\x82aN\x9AV[\x81\x81R`\x05\x91\x90\x91\x1B\x82\x01\x83\x01\x90\x83\x81\x01\x90\x88\x83\x11\x15aR\xAFW`\0\x80\xFD[\x92\x84\x01\x92[\x82\x84\x10\x15aR\xCDW\x835\x82R\x92\x84\x01\x92\x90\x84\x01\x90aR\xB4V[\x80\x95PPPPPP\x92P\x92\x90PV[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\0\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15aS\x1AW\x83Qc\xFF\xFF\xFF\xFF\x16\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01aR\xF8V[P\x90\x96\x95PPPPPPV[`\0\x80` \x83\x85\x03\x12\x15aS9W`\0\x80\xFD[\x825`\x01`\x01`@\x1B\x03\x81\x11\x15aSOW`\0\x80\xFD[aJ\\\x85\x82\x86\x01aL\xA9V[`\x01`\x01``\x1B\x03\x81\x16\x81\x14a\x0CuW`\0\x80\xFD[`\0\x82`\x1F\x83\x01\x12aS\x81W`\0\x80\xFD[\x815` aS\x91aOc\x83aN\x9AV[\x82\x81R`\x06\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x86\x84\x11\x15aS\xB0W`\0\x80\xFD[\x82\x86\x01[\x84\x81\x10\x15aT\x01W`@\x81\x89\x03\x12\x15aS\xCDW`\0\x80\x81\xFD[aS\xD5aK\tV[\x815aS\xE0\x81aL\x02V[\x81R\x81\x85\x015aS\xEF\x81aS[V[\x81\x86\x01R\x83R\x91\x83\x01\x91`@\x01aS\xB4V[P\x96\x95PPPPPPV[`\0\x80`\0`\xA0\x84\x86\x03\x12\x15aT!W`\0\x80\xFD[aT+\x85\x85aM\xC1V[\x92P``\x84\x015aT;\x81aS[V[\x91P`\x80\x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aTVW`\0\x80\xFD[aTb\x86\x82\x87\x01aSpV[\x91PP\x92P\x92P\x92V[`\0\x82`\x1F\x83\x01\x12aT}W`\0\x80\xFD[\x815` aT\x8DaOc\x83aN\x9AV[\x82\x81R``\x92\x83\x02\x85\x01\x82\x01\x92\x82\x82\x01\x91\x90\x87\x85\x11\x15aT\xACW`\0\x80\xFD[\x83\x87\x01[\x85\x81\x10\x15aT\xCFWaT\xC2\x89\x82aM\xC1V[\x84R\x92\x84\x01\x92\x81\x01aT\xB0V[P\x90\x97\x96PPPPPPPV[`\0\x82`\x1F\x83\x01\x12aT\xEDW`\0\x80\xFD[\x815` aT\xFDaOc\x83aN\x9AV[\x82\x81R`\x05\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x86\x84\x11\x15aU\x1CW`\0\x80\xFD[\x82\x86\x01[\x84\x81\x10\x15aT\x01W\x805aU3\x81aS[V[\x83R\x91\x83\x01\x91\x83\x01aU V[`\0\x82`\x1F\x83\x01\x12aUQW`\0\x80\xFD[\x815` aUaaOc\x83aN\x9AV[\x82\x81R`\x05\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x86\x84\x11\x15aU\x80W`\0\x80\xFD[\x82\x86\x01[\x84\x81\x10\x15aT\x01W\x805`\x01`\x01`@\x1B\x03\x81\x11\x15aU\xA3W`\0\x80\x81\xFD[aU\xB1\x89\x86\x83\x8B\x01\x01aSpV[\x84RP\x91\x83\x01\x91\x83\x01aU\x84V[`\0\x80`\0\x80`\0\x80`\0\x80a\x01\0\x89\x8B\x03\x12\x15aU\xDCW`\0\x80\xFD[aU\xE5\x89aL\x17V[\x97PaU\xF3` \x8A\x01aL\x17V[\x96PaV\x01`@\x8A\x01aL\x17V[\x95PaV\x0F``\x8A\x01aL\x17V[\x94P`\x80\x89\x015\x93P`\xA0\x89\x015`\x01`\x01`@\x1B\x03\x80\x82\x11\x15aV2W`\0\x80\xFD[aV>\x8C\x83\x8D\x01aTlV[\x94P`\xC0\x8B\x015\x91P\x80\x82\x11\x15aVTW`\0\x80\xFD[aV`\x8C\x83\x8D\x01aT\xDCV[\x93P`\xE0\x8B\x015\x91P\x80\x82\x11\x15aVvW`\0\x80\xFD[PaV\x83\x8B\x82\x8C\x01aU@V[\x91PP\x92\x95\x98P\x92\x95\x98\x90\x93\x96PV[` \x81\x01a\x0F\x04\x82\x84aMkV[` \x80\x82R`\x19\x90\x82\x01R\x7FPausable: index is paused\0\0\0\0\0\0\0`@\x82\x01R``\x01\x90V[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0`\0\x19\x82\x14\x15aW\x18WaW\x18aV\xEEV[P`\x01\x01\x90V[`\0` \x82\x84\x03\x12\x15aW1W`\0\x80\xFD[\x81Qa)M\x81aL\x02V[` \x80\x82R`*\x90\x82\x01R\x7Fmsg.sender is not permissioned a`@\x82\x01Ri9\x90:\xB780\xBA\xB9\xB2\xB9`\xB1\x1B``\x82\x01R`\x80\x01\x90V[`\0` \x82\x84\x03\x12\x15aW\x98W`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a)MW`\0\x80\xFD[` \x80\x82R`(\x90\x82\x01R\x7Fmsg.sender is not permissioned a`@\x82\x01Rg9\x9080\xBA\xB9\xB2\xB9`\xC1\x1B``\x82\x01R`\x80\x01\x90V[`\0\x80\x835`\x1E\x19\x846\x03\x01\x81\x12aX\x07W`\0\x80\xFD[\x83\x01\x805\x91P`\x01`\x01`@\x1B\x03\x82\x11\x15aX!W`\0\x80\xFD[` \x01\x91P`\x05\x81\x90\x1B6\x03\x82\x13\x15aF\xBFW`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aXKW`\0\x80\xFD[\x81Qa)M\x81aJ\x81V[`\0\x82\x19\x82\x11\x15aXiWaXiaV\xEEV[P\x01\x90V[`\0\x80\x85\x85\x11\x15aX~W`\0\x80\xFD[\x83\x86\x11\x15aX\x8BW`\0\x80\xFD[PP\x82\x01\x93\x91\x90\x92\x03\x91PV[`\0`\xC0\x82\x01\x88\x83R` `\x01\x80`\xA0\x1B\x03\x80\x8A\x16\x82\x86\x01R`@\x89\x81\x87\x01R`\xC0``\x87\x01R\x83\x89Q\x80\x86R`\xE0\x88\x01\x91P\x84\x8B\x01\x95P`\0[\x81\x81\x10\x15aX\xFDW\x86Q\x80Q`\xFF\x16\x84R\x86\x01Q\x85\x16\x86\x84\x01R\x95\x85\x01\x95\x91\x83\x01\x91`\x01\x01aX\xD3V[PP`\x80\x87\x01\x98\x90\x98RPPPP`\xA0\x90\x91\x01\x91\x90\x91RP\x94\x93PPPPV[`\0`@\x82\x84\x03\x12\x15aY/W`\0\x80\xFD[a)M\x83\x83aN\xBDV[`\0\x82\x82\x10\x15aYKWaYKaV\xEEV[P\x03\x90V[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15aYvW` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01aYZV[\x81\x81\x11\x15aY\x88W`\0` \x83\x87\x01\x01R[P`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[`\x01\x80`\xA0\x1B\x03\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0aY\xC4``\x83\x01\x84aYPV[\x95\x94PPPPPV[`\0` \x82\x84\x03\x12\x15aY\xDFW`\0\x80\xFD[\x81Q`\x01`\x01`\xC0\x1B\x03\x81\x16\x81\x14a)MW`\0\x80\xFD[\x82\x81R`@` \x82\x01R`\0aK\xFA`@\x83\x01\x84aYPV[` \x81R`\0a)M` \x83\x01\x84aYPV[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`\0\x82aZGWaZGaZ\"V[P\x06\x90V[`\x01`\x01`\xA0\x1B\x03\x83\x16\x81R`@` \x82\x01\x81\x90R`\0\x90aK\xFA\x90\x83\x01\x84aYPV[`\0` \x82\x84\x03\x12\x15aZ\x82W`\0\x80\xFD[PQ\x91\x90PV[`\x01`\x01`\xA0\x1B\x03\x84\x16\x81Ra\x01`\x81\x01aZ\xB1` \x83\x01\x85\x805\x82R` \x90\x81\x015\x91\x01RV[aZ\xCB``\x83\x01`@\x86\x01\x805\x82R` \x90\x81\x015\x91\x01RV[`@`\x80\x85\x01`\xA0\x84\x017`\xE0\x82\x01`\0\x81R`@`\xC0\x86\x01\x827P`\0a\x01 \x83\x01\x90\x81R\x83Q\x90R` \x90\x92\x01Qa\x01@\x90\x91\x01R\x92\x91PPV[`\x01\x80`\xA0\x1B\x03\x83\x16\x81R`@` \x82\x01R`\0\x82Q```@\x84\x01Ra[2`\xA0\x84\x01\x82aYPV[\x90P` \x84\x01Q``\x84\x01R`@\x84\x01Q`\x80\x84\x01R\x80\x91PP\x93\x92PPPV[\x81\x83R\x81\x81` \x85\x017P`\0\x82\x82\x01` \x90\x81\x01\x91\x90\x91R`\x1F\x90\x91\x01`\x1F\x19\x16\x90\x91\x01\x01\x90V[`\x01`\x01`\xA0\x1B\x03\x84\x16\x81R`@` \x82\x01\x81\x90R`\0\x90aY\xC4\x90\x83\x01\x84\x86a[SV[`\x01\x80`\xA0\x1B\x03\x85\x16\x81R\x83` \x82\x01R```@\x82\x01R`\0a\x18\x05``\x83\x01\x84\x86a[SV[`\0\x82`\x1F\x83\x01\x12a[\xDAW`\0\x80\xFD[\x81Q` a[\xEAaOc\x83aN\x9AV[\x82\x81R`\x05\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x86\x84\x11\x15a\\\tW`\0\x80\xFD[\x82\x86\x01[\x84\x81\x10\x15aT\x01W\x80Qa\\ \x81aS[V[\x83R\x91\x83\x01\x91\x83\x01a\\\rV[`\0\x80`@\x83\x85\x03\x12\x15a\\@W`\0\x80\xFD[\x82Q`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a\\WW`\0\x80\xFD[a\\c\x86\x83\x87\x01a[\xC9V[\x93P` \x85\x01Q\x91P\x80\x82\x11\x15a\\yW`\0\x80\xFD[Pa\\\x86\x85\x82\x86\x01a[\xC9V[\x91PP\x92P\x92\x90PV[\x83\x81R`@` \x82\x01R`\0aY\xC4`@\x83\x01\x84\x86a[SV[`\0` \x80\x83\x85\x03\x12\x15a\\\xBDW`\0\x80\xFD[\x82Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\\\xD3W`\0\x80\xFD[\x83\x01`\x1F\x81\x01\x85\x13a\\\xE4W`\0\x80\xFD[\x80Qa\\\xF2aOc\x82aN\x9AV[\x81\x81R`\x05\x91\x90\x91\x1B\x82\x01\x83\x01\x90\x83\x81\x01\x90\x87\x83\x11\x15a]\x11W`\0\x80\xFD[\x92\x84\x01\x92[\x82\x84\x10\x15a]8W\x83Qa])\x81aJ\x81V[\x82R\x92\x84\x01\x92\x90\x84\x01\x90a]\x16V[\x97\x96PPPPPPPV[`\0` \x82\x84\x03\x12\x15a]UW`\0\x80\xFD[\x81Qa)M\x81aS[V[`\0`\xFF\x82\x16`\xFF\x84\x16\x80`\xFF\x03\x82\x11\x15a]}Wa]}aV\xEEV[\x01\x93\x92PPPV[`\0``\x82\x01`\xFF\x86\x16\x83R` `\x01`\x01``\x1B\x03\x80\x87\x16\x82\x86\x01R`@``\x81\x87\x01R\x83\x87Q\x80\x86R`\x80\x88\x01\x91P\x84\x89\x01\x95P`\0[\x81\x81\x10\x15a]\xEEW\x86Q\x80Q`\x01`\x01`\xA0\x1B\x03\x16\x84R\x86\x01Q\x85\x16\x86\x84\x01R\x95\x85\x01\x95\x91\x83\x01\x91`\x01\x01a]\xBEV[P\x90\x9A\x99PPPPPPPPPPV[`\0a\xFF\xFF\x80\x83\x16\x81\x81\x14\x15a^\x16Wa^\x16aV\xEEV[`\x01\x01\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a^2W`\0\x80\xFD[\x81Q`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x14a)MW`\0\x80\xFD[`\0`\x01`\x01``\x1B\x03\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15a^pWa^paV\xEEV[\x02\x94\x93PPPPV[`\0`\x01`\x01``\x1B\x03\x80\x84\x16\x80a^\x93Wa^\x93aZ\"V[\x92\x16\x91\x90\x91\x04\x92\x91PPV\xFE0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDGRegCoord.updateOperatorsForQuoru\xA2dipfsX\"\x12 0q\x87\xE7\x95\x82\xC0\x06c'y\xF3\xF2*\xAE7p):\xB4d\xD3T\x842f$\xB9&\xC8n\xAAdsolcC\0\x08\x0C\x003",
);
/// The runtime bytecode of the contract, as deployed on the network.
///
/// ```text
///0x608060405234801561001057600080fd5b50600436106102f05760003560e01c80635df459461161019d578063a50857bf116100e9578063d75b4c88116100a2578063ea32afae1161007c578063ea32afae14610856578063f2fde38b1461087d578063fabc1cbc14610890578063fd39105a146108a357600080fd5b8063d75b4c881461078d578063dd8283f3146107a0578063e65797ad146107b357600080fd5b8063a50857bf1461070f578063a96f783e14610722578063c391425e1461072b578063ca0de8821461074b578063ca4f2d9714610772578063d72d8dd61461078557600080fd5b8063871ef049116101565780639aa1653d116101305780639aa1653d1461068f5780639b5d177b146106ae5780639e9923c2146106c15780639feab859146106e857600080fd5b8063871ef0491461065b578063886f11951461066e5780638da5cb5b1461068757600080fd5b80635df45946146105cc5780636347c900146105f357806368304835146106065780636e3b17db1461062d578063715018a61461064057806384ca52131461064857600080fd5b8063249a0c421161025c5780633c2a7f4c11610215578063595c6a67116101ef578063595c6a671461058a5780635ac86ab7146105925780635b0b829f146105b15780635c975abb146105c457600080fd5b80633c2a7f4c146105375780635140a548146105575780635865c60c1461056a57600080fd5b8063249a0c42146104a457806328f61b31146104c4578063296bb064146104d757806329d1e0c3146104ea5780632cdd1e86146104fd5780633998fdd31461051057600080fd5b806310d67a2f116102ae57806310d67a2f146103b9578063125e0584146103cc57806313542a4e146103ec578063136439dd146104155780631478851f146104285780631eb812da1461045b57600080fd5b8062cf2ab5146102f557806303fd34921461030a57806304ec63511461033d578063054310e6146103685780630cf4b767146103935780630d3f2134146103a6575b600080fd5b610308610303366004614a27565b6108df565b005b61032a610318366004614a68565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61035061034b366004614a93565b6109f5565b6040516001600160c01b039091168152602001610334565b609d5461037b906001600160a01b031681565b6040516001600160a01b039091168152602001610334565b6103086103a1366004614bb2565b610bce565b6103086103b4366004614a68565b610c78565b6103086103c7366004614c27565b610c85565b61032a6103da366004614c27565b609f6020526000908152604090205481565b61032a6103fa366004614c27565b6001600160a01b031660009081526099602052604090205490565b610308610423366004614a68565b610d35565b61044b610436366004614a68565b609a6020526000908152604090205460ff1681565b6040519015158152602001610334565b61046e610469366004614c44565b610e79565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b031690820152606001610334565b61032a6104b2366004614c77565b609b6020526000908152604090205481565b609e5461037b906001600160a01b031681565b61037b6104e5366004614a68565b610f0a565b6103086104f8366004614c27565b610f96565b61030861050b366004614c27565b610fa7565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61054a610545366004614c27565b610fb8565b6040516103349190614c92565b610308610565366004614cea565b611037565b61057d610578366004614c27565b611510565b6040516103349190614d8d565b610308611584565b61044b6105a0366004614c77565b6001805460ff9092161b9081161490565b6103086105bf366004614e12565b611650565b60015461032a565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61037b610601366004614a68565b611671565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61030861063b366004614e46565b61169b565b6103086117b1565b61032a610656366004614efd565b6117c5565b610350610669366004614a68565b61180f565b60005461037b906201000090046001600160a01b031681565b61037b61181a565b60965461069c9060ff1681565b60405160ff9091168152602001610334565b6103086106bc366004615096565b611833565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61032a7f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61030861071d36600461518f565b611b5d565b61032a60a05481565b61073e610739366004615237565b611cd3565b60405161033491906152dc565b61032a7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b610308610780366004615326565b611d8c565b609c5461032a565b61030861079b36600461540c565b611df3565b6103086107ae3660046155bf565b611e06565b6108226107c1366004614c77565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff908116918301919091529282015190921690820152606001610334565b61037b7f000000000000000000000000000000000000000000000000000000000000000081565b61030861088b366004614c27565b6120ff565b61030861089e366004614a68565b612175565b6108d26108b1366004614c27565b6001600160a01b031660009081526099602052604090206001015460ff1690565b6040516103349190615693565b600154600290600490811614156109115760405162461bcd60e51b8152600401610908906156a1565b60405180910390fd5b60005b828110156109ef576000848483818110610930576109306156d8565b90506020020160208101906109459190614c27565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff16600281111561099057610990614d55565b60028111156109a1576109a1614d55565b905250805190915060006109b4826122d1565b905060006109ca826001600160c01b031661233a565b90506109d7858583612406565b505050505080806109e790615704565b915050610914565b50505050565b6000838152609860205260408120805482919084908110610a1857610a186156d8565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610b045760405162461bcd60e51b815260206004820152605a60248201527f526567436f6f72642e67657451756f72756d4269746d61704174426c6f636b4e60448201527f756d6265724279496e6465783a2071756f72756d4269746d617055706461746560648201527f2069732066726f6d20616674657220626c6f636b4e756d626572000000000000608482015260a401610908565b602081015163ffffffff161580610b2a5750806020015163ffffffff168463ffffffff16105b610bc25760405162461bcd60e51b815260206004820152605b60248201527f526567436f6f72642e67657451756f72756d4269746d61704174426c6f636b4e60448201527f756d6265724279496e6465783a2071756f72756d4269746d617055706461746560648201527f2069732066726f6d206265666f726520626c6f636b4e756d6265720000000000608482015260a401610908565b60400151949350505050565b60013360009081526099602052604090206001015460ff166002811115610bf757610bf7614d55565b14610c5b5760405162461bcd60e51b815260206004820152602e60248201527f526567436f6f72642e757064617465536f636b65743a206f70657261746f722060448201526d1b9bdd081c9959da5cdd195c995960921b6064820152608401610908565b33600090815260996020526040902054610c7590826124f3565b50565b610c806125af565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfc919061571f565b6001600160a01b0316336001600160a01b031614610d2c5760405162461bcd60e51b81526004016109089061573c565b610c758161260e565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da69190615786565b610dc25760405162461bcd60e51b8152600401610908906157a8565b60015481811614610e3b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610908565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610eb657610eb66156d8565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906347b314e890602401602060405180830381865afa158015610f72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f04919061571f565b610f9e6125af565b610c7581612713565b610faf6125af565b610c758161277c565b6040805180820190915260008082526020820152610f046110327f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de6846040516020016110179291909182526001600160a01b0316602082015260400190565b604051602081830303815290604052805190602001206127e5565b612833565b600154600290600490811614156110605760405162461bcd60e51b8152600401610908906156a1565b60006110a884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506128c39050565b905084831461110d5760405162461bcd60e51b81526020600482015260386024820152600080516020615ec083398151915260448201527f6d3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610908565b60005b8381101561150757600085858381811061112c5761112c6156d8565b919091013560f81c9150369050600089898581811061114d5761114d6156d8565b905060200281019061115f91906157f0565b6040516379a0849160e11b815260ff8616600482015291935091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f341092290602401602060405180830381865afa1580156111cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ef9190615839565b63ffffffff16811461127d5760405162461bcd60e51b815260206004820152605a6024820152600080516020615ec083398151915260448201527f6d3a206e756d626572206f662075706461746564206f70657261746f7273206460648201527f6f6573206e6f74206d617463682071756f72756d20746f74616c000000000000608482015260a401610908565b6000805b828110156114a657600084848381811061129d5761129d6156d8565b90506020020160208101906112b29190614c27565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156112fd576112fd614d55565b600281111561130e5761130e614d55565b90525080519091506000611321826122d1565b905060016001600160c01b03821660ff8b161c8116146113975760405162461bcd60e51b81526020600482015260396024820152600080516020615ec083398151915260448201527f6d3a206f70657261746f72206e6f7420696e2071756f72756d000000000000006064820152608401610908565b856001600160a01b0316846001600160a01b0316116114325760405162461bcd60e51b815260206004820152605c6024820152600080516020615ec083398151915260448201527f6d3a206f70657261746f7273206172726179206d75737420626520736f72746560648201527f6420696e20617363656e64696e672061646472657373206f7264657200000000608482015260a401610908565b5061149083838f8f8d908e60016114499190615856565b926114569392919061586e565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061240692505050565b5090925061149f905081615704565b9050611281565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a2505050508061150090615704565b9050611110565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561156a5761156a614d55565b600281111561157b5761157b614d55565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156115d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f59190615786565b6116115760405162461bcd60e51b8152600401610908906157a8565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6116586125af565b8161166281612954565b61166c83836129c1565b505050565b609c818154811061168157600080fd5b6000918252602090912001546001600160a01b0316905081565b6116a3612a67565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916117109187908790819084018382808284376000920191909152505060965460ff1691506128c39050565b9050600061171d836122d1565b905060018085015460ff16600281111561173957611739614d55565b14801561174e57506001600160c01b03821615155b801561176c575061176c6001600160c01b0383811690831681161490565b15611507576115078787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ad992505050565b6117b96125af565b6117c36000612f1a565b565b60006118057f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a878787878760405160200161101796959493929190615898565b9695505050505050565b6000610f04826122d1565b600061182e6064546001600160a01b031690565b905090565b60018054600091908116141561185b5760405162461bcd60e51b8152600401610908906156a1565b8389146118d05760405162461bcd60e51b815260206004820152603960248201527f526567436f6f72642e72656769737465724f70657261746f725769746843687560448201527f726e3a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610908565b60006118dc3388612f6c565b905061193c33828888808060200260200160405190810160405280939291908181526020016000905b82821015611931576119226040830286013681900381019061591d565b81526020019060010190611905565b50505050508761309d565b600061198333838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250613214915050565b905060005b8b811015611b4e576000609760008f8f858181106119a8576119a86156d8565b919091013560f81c82525060208082019290925260409081016000208151606081018352905463ffffffff811680835261ffff600160201b8304811695840195909552600160301b90910490931691810191909152845180519193509084908110611a1557611a156156d8565b602002602001015163ffffffff161115611b3b57611ab68e8e84818110611a3e57611a3e6156d8565b9050013560f81c60f81b60f81c84604001518481518110611a6157611a616156d8565b60200260200101513386602001518681518110611a8057611a806156d8565b60200260200101518d8d88818110611a9a57611a9a6156d8565b905060400201803603810190611ab0919061591d565b86613764565b611b3b898984818110611acb57611acb6156d8565b9050604002016020016020810190611ae39190614c27565b8f8f8590866001611af49190615856565b92611b019392919061586e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ad992505050565b5080611b4681615704565b915050611988565b50505050505050505050505050565b600180546000919081161415611b855760405162461bcd60e51b8152600401610908906156a1565b6000611b913385612f6c565b90506000611bda33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250613214915050565b51905060005b88811015611cc75760008a8a83818110611bfc57611bfc6156d8565b919091013560f81c600081815260976020526040902054855191935063ffffffff169150849084908110611c3257611c326156d8565b602002602001015163ffffffff161115611cb45760405162461bcd60e51b815260206004820152603960248201527f526567436f6f72642e72656769737465724f70657261746f723a206f7065726160448201527f746f7220636f756e742065786365656473206d6178696d756d000000000000006064820152608401610908565b5080611cbf81615704565b915050611be0565b50505050505050505050565b6060600082516001600160401b03811115611cf057611cf0614acb565b604051908082528060200260200182016040528015611d19578160200160208202803683370190505b50905060005b8351811015611d8457611d4b85858381518110611d3e57611d3e6156d8565b6020026020010151613a4f565b828281518110611d5d57611d5d6156d8565b63ffffffff9092166020928302919091019091015280611d7c81615704565b915050611d1f565b509392505050565b6001805460029081161415611db35760405162461bcd60e51b8152600401610908906156a1565b61166c3384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ad992505050565b611dfb6125af565b61166c838383613b76565b600054610100900460ff1615808015611e265750600054600160ff909116105b80611e405750303b158015611e40575060005460ff166001145b611ea35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610908565b6000805460ff191660011790558015611ec6576000805461ff0019166101001790555b82518451148015611ed8575081518351145b611f375760405162461bcd60e51b815260206004820152602a60248201527f526567436f6f72642e696e697469616c697a653a20696e707574206c656e67746044820152690d040dad2e6dac2e8c6d60b31b6064820152608401610908565b611f4089612f1a565b611f4a8686613d82565b611f5388612713565b611f5c8761277c565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166001600160a01b03199283161790925585548085018755850180547f0000000000000000000000000000000000000000000000000000000000000000841690831617905585549384019095559190920180547f000000000000000000000000000000000000000000000000000000000000000090921691909316179091555b84518110156120ad5761209b85828151811061205a5761205a6156d8565b6020026020010151858381518110612074576120746156d8565b602002602001015185848151811061208e5761208e6156d8565b6020026020010151613b76565b806120a581615704565b91505061203c565b5080156120f4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b6121076125af565b6001600160a01b03811661216c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610908565b610c7581612f1a565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ec919061571f565b6001600160a01b0316336001600160a01b03161461221c5760405162461bcd60e51b81526004016109089061573c565b60015419811960015419161461229a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610908565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610e6e565b600081815260986020526040812054806122ee5750600092915050565b6000838152609860205260409020612307600183615939565b81548110612317576123176156d8565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061234884613e72565b61ffff166001600160401b0381111561236357612363614acb565b6040519080825280601f01601f19166020018201604052801561238d576020820181803683370190505b5090506000805b8251821080156123a5575061010081105b156123fc576001811b9350858416156123ec578060f81b8383815181106123ce576123ce6156d8565b60200101906001600160f81b031916908160001a9053508160010191505b6123f581615704565b9050612394565b5090949350505050565b60018260200151600281111561241e5761241e614d55565b1461242857505050565b81516040516333567f7f60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906366acfefe9061247d9088908690889060040161599d565b6020604051808303816000875af115801561249c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c091906159cd565b90506001600160c01b038116156124ec576124ec856124e7836001600160c01b031661233a565b612ad9565b5050505050565b6040516378219b3f60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f043367e9061254190859085906004016159f6565b600060405180830381600087803b15801561255b57600080fd5b505af115801561256f573d6000803e3d6000fd5b50505050817fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa826040516125a39190615a0f565b60405180910390a25050565b336125b861181a565b6001600160a01b0316146117c35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610908565b6001600160a01b03811661269c5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610908565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610f046127f2613e9d565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b604080518082019091526000808252602082015260008080612863600080516020615ea083398151915286615a38565b90505b61286f81613fc4565b9093509150600080516020615ea08339815191528283098314156128a9576040805180820190915290815260208101919091529392505050565b600080516020615ea0833981519152600182089050612866565b6000806128cf84614046565b9050808360ff166001901b1161294d5760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610908565b9392505050565b60965460ff90811690821610610c755760405162461bcd60e51b815260206004820152602c60248201527f526567436f6f72642e71756f72756d4578697374733a2071756f72756d20646f60448201526b195cc81b9bdd08195e1a5cdd60a21b6064820152608401610908565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac906060016125a3565b609e546001600160a01b031633146117c35760405162461bcd60e51b815260206004820152602f60248201527f526567436f6f72642e6f6e6c79456a6563746f723a2063616c6c65722069732060448201526e3737ba103a34329032b532b1ba37b960891b6064820152608401610908565b6001600160a01b0382166000908152609960205260409020805460018083015460ff166002811115612b0d57612b0d614d55565b14612b805760405162461bcd60e51b815260206004820152603860248201527f526567436f6f72642e5f646572656769737465724f70657261746f723a206f7060448201527f657261746f72206973206e6f74207265676973746572656400000000000000006064820152608401610908565b609654600090612b9490859060ff166128c3565b90506000612ba1836122d1565b90506001600160c01b038216612c125760405162461bcd60e51b815260206004820152603060248201527f526567436f6f72642e5f646572656769737465724f70657261746f723a20626960448201526f0746d61702063616e6e6f7420626520360841b6064820152608401610908565b612c296001600160c01b0383811690831681161490565b612ca95760405162461bcd60e51b8152602060048201526044602482018190527f526567436f6f72642e5f646572656769737465724f70657261746f723a206f70908201527f657261746f72206973206e6f74207265676973746572656420666f722071756f60648201526372756d7360e01b608482015260a401610908565b6001600160c01b0382811619821616612cc284826141d3565b6001600160c01b038116612d915760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da90602401600060405180830381600087803b158015612d4257600080fd5b505af1158015612d56573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f4e24fe590612ddf908a908a90600401615a4c565b600060405180830381600087803b158015612df957600080fd5b505af1158015612e0d573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612e5f9087908a906004016159f6565b600060405180830381600087803b158015612e7957600080fd5b505af1158015612e8d573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612edf9087908a906004016159f6565b600060405180830381600087803b158015612ef957600080fd5b505af1158015612f0d573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906313542a4e90602401602060405180830381865afa158015612fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ffb9190615a70565b905080610f04577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf79ce58848461303c87610fb8565b6040518463ffffffff1660e01b815260040161305a93929190615a89565b6020604051808303816000875af1158015613079573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294d9190615a70565b6020808201516000908152609a909152604090205460ff16156131385760405162461bcd60e51b815260206004820152604760248201527f526567436f6f72642e5f766572696679436875726e417070726f76657253696760448201527f6e61747572653a20636875726e417070726f7665722073616c7420616c726561606482015266191e481d5cd95960ca1b608482015260a401610908565b42816040015110156131c25760405162461bcd60e51b815260206004820152604760248201527f526567436f6f72642e5f766572696679436875726e417070726f76657253696760448201527f6e61747572653a20636875726e417070726f766572207369676e617475726520606482015266195e1c1a5c995960ca1b608482015260a401610908565b602080820180516000908152609a909252604091829020805460ff19166001179055609d549051918301516109ef926001600160a01b039092169161320d91889188918891906117c5565b8351614393565b61323860405180606001604052806060815260200160608152602001606081525090565b600061328086868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506128c39050565b9050600061328d886122d1565b90506001600160c01b0382166132fc5760405162461bcd60e51b815260206004820152602e60248201527f526567436f6f72642e5f72656769737465724f70657261746f723a206269746d60448201526d061702063616e6e6f7420626520360941b6064820152608401610908565b8082166001600160c01b03161561338c5760405162461bcd60e51b815260206004820152604860248201527f526567436f6f72642e5f72656769737465724f70657261746f723a206f70657260448201527f61746f7220616c7265616479207265676973746572656420666f7220736f6d656064820152672071756f72756d7360c01b608482015260a401610908565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b03838116908516179142916133c49190615856565b106134375760405162461bcd60e51b815260206004820152603a60248201527f526567436f6f72642e5f72656769737465724f70657261746f723a206f70657260448201527f61746f722063616e6e6f742072657265676973746572207965740000000000006064820152608401610908565b61344189826141d3565b60016001600160a01b038b1660009081526099602052604090206001015460ff16600281111561347357613473614d55565b14613596576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff1916908360028111156134ce576134ce614d55565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169150639926ee7d90613523908d908990600401615b08565b600060405180830381600087803b15801561353d57600080fd5b505af1158015613551573d6000803e3d6000fd5b5050505061355f89876124f3565b60405189906001600160a01b038c16907fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633fb27952906135e6908d908c908c90600401615b7c565b600060405180830381600087803b15801561360057600080fd5b505af1158015613614573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506325504777915061366a908d908d908d908d90600401615ba1565b6000604051808303816000875af1158015613689573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526136b19190810190615c2d565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169062bff04d9061370e908c908c908c90600401615c90565b6000604051808303816000875af115801561372d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526137559190810190615caa565b84525050509695505050505050565b6020808301516001600160a01b0380821660008181526099909452604090932054919290871614156137eb5760405162461bcd60e51b815260206004820152602a60248201527f526567436f6f72642e5f76616c6964617465436875726e3a2063616e6e6f742060448201526931b43ab9371039b2b63360b11b6064820152608401610908565b8760ff16846000015160ff161461386a5760405162461bcd60e51b815260206004820152603c60248201527f526567436f6f72642e5f76616c6964617465436875726e3a2071756f72756d4e60448201527f756d626572206e6f74207468652073616d65206173207369676e6564000000006064820152608401610908565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635401ed2790604401602060405180830381865afa1580156138db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138ff9190615d43565b905061390b818561454d565b6001600160601b0316866001600160601b0316116139a55760405162461bcd60e51b815260206004820152604b60248201527f526567436f6f72642e5f76616c6964617465436875726e3a20696e636f6d696e60448201527f67206f70657261746f722068617320696e73756666696369656e74207374616b60648201526a32903337b91031b43ab93760a91b608482015260a401610908565b6139af8885614571565b6001600160601b0316816001600160601b0316106120f45760405162461bcd60e51b815260206004820152605160248201527f526567436f6f72642e5f76616c6964617465436875726e3a2063616e6e6f742060448201527f6b69636b206f70657261746f722077697468206d6f7265207468616e206b69636064820152706b424950734f66546f74616c5374616b6560781b608482015260a401610908565b600081815260986020526040812054815b81811015613ae1576001613a748284615939565b613a7e9190615939565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff1681548110613ab157613ab16156d8565b60009182526020909120015463ffffffff1611613acf575050610f04565b80613ad981615704565b915050613a60565b5060405162461bcd60e51b815260206004820152605e60248201527f526567436f6f72642e67657451756f72756d4269746d6170496e64657841744260448201527f6c6f636b4e756d6265723a206e6f206269746d61702075706461746520666f7560648201527f6e6420666f72206f70657261746f7220617420626c6f636b4e756d6265720000608482015260a401610908565b60965460ff1660c08110613bdf5760405162461bcd60e51b815260206004820152602a60248201527f526567436f6f72642e63726561746551756f72756d3a206d61782071756f72756044820152691b5cc81c995858da195960b21b6064820152608401610908565b613bea816001615d60565b6096805460ff191660ff9290921691909117905580613c0981866129c1565b60405160016296b58960e01b031981526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ff694a7790613c5c90849088908890600401615d85565b600060405180830381600087803b158015613c7657600080fd5b505af1158015613c8a573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b158015613cf257600080fd5b505af1158015613d06573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b158015613d6e57600080fd5b505af11580156120f4573d6000803e3d6000fd5b6000546201000090046001600160a01b0316158015613da957506001600160a01b03821615155b613e2b5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610908565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2613e6e8261260e565b5050565b6000805b8215610f0457613e87600184615939565b9092169180613e9581615dfe565b915050613e76565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015613ef657507f000000000000000000000000000000000000000000000000000000000000000046145b15613f2057507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615ea08339815191526003600080516020615ea083398151915286600080516020615ea083398151915288890909089050600061403a827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615ea083398151915261458b565b91959194509092505050565b6000610100825111156140cf5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610908565b81516140dd57506000919050565b600080836000815181106140f3576140f36156d8565b0160200151600160f89190911c81901b92505b84518110156141ca57848181518110614121576141216156d8565b0160200151600160f89190911c1b91508282116141b65760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610908565b918117916141c381615704565b9050614106565b50909392505050565b60008281526098602052604090205480614278576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120614291600184615939565b815481106142a1576142a16156d8565b600091825260209091200180549091504363ffffffff908116911614156142e55780546001600160401b0316600160401b6001600160c01b038516021781556109ef565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b156144ad57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906143d390869086906004016159f6565b602060405180830381865afa1580156143f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144149190615e20565b6001600160e01b0319161461166c5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610908565b826001600160a01b03166144c1838361463a565b6001600160a01b03161461166c5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610908565b6020810151600090612710906145679061ffff1685615e4a565b61294d9190615e79565b6040810151600090612710906145679061ffff1685615e4a565b6000806145966149a7565b61459e6149c5565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280156145df576145e1565bfe5b508261462f5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610908565b505195945050505050565b60008060006146498585614656565b91509150611d84816146c6565b60008082516041141561468d5760208301516040840151606085015160001a61468187828585614881565b945094505050506146bf565b8251604014156146b757602083015160408401516146ac86838361496e565b9350935050506146bf565b506000905060025b9250929050565b60008160048111156146da576146da614d55565b14156146e35750565b60018160048111156146f7576146f7614d55565b14156147455760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610908565b600281600481111561475957614759614d55565b14156147a75760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610908565b60038160048111156147bb576147bb614d55565b14156148145760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610908565b600481600481111561482857614828614d55565b1415610c755760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610908565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156148b85750600090506003614965565b8460ff16601b141580156148d057508460ff16601c14155b156148e15750600090506004614965565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614935573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661495e57600060019250925050614965565b9150600090505b94509492505050565b6000806001600160ff1b0383168161498b60ff86901c601b615856565b905061499987828885614881565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f8401126149f557600080fd5b5081356001600160401b03811115614a0c57600080fd5b6020830191508360208260051b85010111156146bf57600080fd5b60008060208385031215614a3a57600080fd5b82356001600160401b03811115614a5057600080fd5b614a5c858286016149e3565b90969095509350505050565b600060208284031215614a7a57600080fd5b5035919050565b63ffffffff81168114610c7557600080fd5b600080600060608486031215614aa857600080fd5b833592506020840135614aba81614a81565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715614b0357614b03614acb565b60405290565b604080519081016001600160401b0381118282101715614b0357614b03614acb565b604051601f8201601f191681016001600160401b0381118282101715614b5357614b53614acb565b604052919050565b60006001600160401b03831115614b7457614b74614acb565b614b87601f8401601f1916602001614b2b565b9050828152838383011115614b9b57600080fd5b828260208301376000602084830101529392505050565b600060208284031215614bc457600080fd5b81356001600160401b03811115614bda57600080fd5b8201601f81018413614beb57600080fd5b614bfa84823560208401614b5b565b949350505050565b6001600160a01b0381168114610c7557600080fd5b8035614c2281614c02565b919050565b600060208284031215614c3957600080fd5b813561294d81614c02565b60008060408385031215614c5757600080fd5b50508035926020909101359150565b803560ff81168114614c2257600080fd5b600060208284031215614c8957600080fd5b61294d82614c66565b815181526020808301519082015260408101610f04565b60008083601f840112614cbb57600080fd5b5081356001600160401b03811115614cd257600080fd5b6020830191508360208285010111156146bf57600080fd5b60008060008060408587031215614d0057600080fd5b84356001600160401b0380821115614d1757600080fd5b614d23888389016149e3565b90965094506020870135915080821115614d3c57600080fd5b50614d4987828801614ca9565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b60038110614d8957634e487b7160e01b600052602160045260246000fd5b9052565b815181526020808301516040830191614da890840182614d6b565b5092915050565b803561ffff81168114614c2257600080fd5b600060608284031215614dd357600080fd5b614ddb614ae1565b90508135614de881614a81565b8152614df660208301614daf565b6020820152614e0760408301614daf565b604082015292915050565b60008060808385031215614e2557600080fd5b614e2e83614c66565b9150614e3d8460208501614dc1565b90509250929050565b600080600060408486031215614e5b57600080fd5b8335614e6681614c02565b925060208401356001600160401b03811115614e8157600080fd5b614e8d86828701614ca9565b9497909650939450505050565b60006001600160401b03821115614eb357614eb3614acb565b5060051b60200190565b600060408284031215614ecf57600080fd5b614ed7614b09565b9050614ee282614c66565b81526020820135614ef281614c02565b602082015292915050565b600080600080600060a08688031215614f1557600080fd5b8535614f2081614c02565b945060208681013594506040808801356001600160401b03811115614f4457600080fd5b8801601f81018a13614f5557600080fd5b8035614f68614f6382614e9a565b614b2b565b81815260069190911b8201840190848101908c831115614f8757600080fd5b928501925b82841015614fad57614f9e8d85614ebd565b82529284019290850190614f8c565b999c989b5098996060810135995060800135979650505050505050565b60006101008284031215614fdd57600080fd5b50919050565b60008083601f840112614ff557600080fd5b5081356001600160401b0381111561500c57600080fd5b6020830191508360208260061b85010111156146bf57600080fd5b60006060828403121561503957600080fd5b615041614ae1565b905081356001600160401b0381111561505957600080fd5b8201601f8101841361506a57600080fd5b61507984823560208401614b5b565b825250602082013560208201526040820135604082015292915050565b60008060008060008060008060006101a08a8c0312156150b557600080fd5b89356001600160401b03808211156150cc57600080fd5b6150d88d838e01614ca9565b909b50995060208c01359150808211156150f157600080fd5b6150fd8d838e01614ca9565b90995097508791506151128d60408e01614fca565b96506101408c013591508082111561512957600080fd5b6151358d838e01614fe3565b90965094506101608c013591508082111561514f57600080fd5b61515b8d838e01615027565b93506101808c013591508082111561517257600080fd5b5061517f8c828d01615027565b9150509295985092959850929598565b60008060008060008061016087890312156151a957600080fd5b86356001600160401b03808211156151c057600080fd5b6151cc8a838b01614ca9565b909850965060208901359150808211156151e557600080fd5b6151f18a838b01614ca9565b90965094508491506152068a60408b01614fca565b935061014089013591508082111561521d57600080fd5b5061522a89828a01615027565b9150509295509295509295565b6000806040838503121561524a57600080fd5b823561525581614a81565b91506020838101356001600160401b0381111561527157600080fd5b8401601f8101861361528257600080fd5b8035615290614f6382614e9a565b81815260059190911b820183019083810190888311156152af57600080fd5b928401925b828410156152cd578335825292840192908401906152b4565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561531a57835163ffffffff16835292840192918401916001016152f8565b50909695505050505050565b6000806020838503121561533957600080fd5b82356001600160401b0381111561534f57600080fd5b614a5c85828601614ca9565b6001600160601b0381168114610c7557600080fd5b600082601f83011261538157600080fd5b81356020615391614f6383614e9a565b82815260069290921b840181019181810190868411156153b057600080fd5b8286015b8481101561540157604081890312156153cd5760008081fd5b6153d5614b09565b81356153e081614c02565b8152818501356153ef8161535b565b818601528352918301916040016153b4565b509695505050505050565b600080600060a0848603121561542157600080fd5b61542b8585614dc1565b9250606084013561543b8161535b565b915060808401356001600160401b0381111561545657600080fd5b61546286828701615370565b9150509250925092565b600082601f83011261547d57600080fd5b8135602061548d614f6383614e9a565b828152606092830285018201928282019190878511156154ac57600080fd5b8387015b858110156154cf576154c28982614dc1565b84529284019281016154b0565b5090979650505050505050565b600082601f8301126154ed57600080fd5b813560206154fd614f6383614e9a565b82815260059290921b8401810191818101908684111561551c57600080fd5b8286015b848110156154015780356155338161535b565b8352918301918301615520565b600082601f83011261555157600080fd5b81356020615561614f6383614e9a565b82815260059290921b8401810191818101908684111561558057600080fd5b8286015b848110156154015780356001600160401b038111156155a35760008081fd5b6155b18986838b0101615370565b845250918301918301615584565b600080600080600080600080610100898b0312156155dc57600080fd5b6155e589614c17565b97506155f360208a01614c17565b965061560160408a01614c17565b955061560f60608a01614c17565b94506080890135935060a08901356001600160401b038082111561563257600080fd5b61563e8c838d0161546c565b945060c08b013591508082111561565457600080fd5b6156608c838d016154dc565b935060e08b013591508082111561567657600080fd5b506156838b828c01615540565b9150509295985092959890939650565b60208101610f048284614d6b565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415615718576157186156ee565b5060010190565b60006020828403121561573157600080fd5b815161294d81614c02565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561579857600080fd5b8151801515811461294d57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261580757600080fd5b8301803591506001600160401b0382111561582157600080fd5b6020019150600581901b36038213156146bf57600080fd5b60006020828403121561584b57600080fd5b815161294d81614a81565b60008219821115615869576158696156ee565b500190565b6000808585111561587e57600080fd5b8386111561588b57600080fd5b5050820193919092039150565b600060c08201888352602060018060a01b03808a16828601526040898187015260c0606087015283895180865260e088019150848b01955060005b818110156158fd578651805160ff16845286015185168684015295850195918301916001016158d3565b505060808701989098525050505060a09091019190915250949350505050565b60006040828403121561592f57600080fd5b61294d8383614ebd565b60008282101561594b5761594b6156ee565b500390565b6000815180845260005b818110156159765760208185018101518683018201520161595a565b81811115615988576000602083870101525b50601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006159c46060830184615950565b95945050505050565b6000602082840312156159df57600080fd5b81516001600160c01b038116811461294d57600080fd5b828152604060208201526000614bfa6040830184615950565b60208152600061294d6020830184615950565b634e487b7160e01b600052601260045260246000fd5b600082615a4757615a47615a22565b500690565b6001600160a01b0383168152604060208201819052600090614bfa90830184615950565b600060208284031215615a8257600080fd5b5051919050565b6001600160a01b03841681526101608101615ab1602083018580358252602090810135910152565b615acb606083016040860180358252602090810135910152565b60406080850160a084013760e0820160008152604060c0860182375060006101208301908152835190526020909201516101409091015292915050565b60018060a01b0383168152604060208201526000825160606040840152615b3260a0840182615950565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906159c49083018486615b53565b60018060a01b0385168152836020820152606060408201526000611805606083018486615b53565b600082601f830112615bda57600080fd5b81516020615bea614f6383614e9a565b82815260059290921b84018101918181019086841115615c0957600080fd5b8286015b84811015615401578051615c208161535b565b8352918301918301615c0d565b60008060408385031215615c4057600080fd5b82516001600160401b0380821115615c5757600080fd5b615c6386838701615bc9565b93506020850151915080821115615c7957600080fd5b50615c8685828601615bc9565b9150509250929050565b8381526040602082015260006159c4604083018486615b53565b60006020808385031215615cbd57600080fd5b82516001600160401b03811115615cd357600080fd5b8301601f81018513615ce457600080fd5b8051615cf2614f6382614e9a565b81815260059190911b82018301908381019087831115615d1157600080fd5b928401925b82841015615d38578351615d2981614a81565b82529284019290840190615d16565b979650505050505050565b600060208284031215615d5557600080fd5b815161294d8161535b565b600060ff821660ff84168060ff03821115615d7d57615d7d6156ee565b019392505050565b60006060820160ff8616835260206001600160601b03808716828601526040606081870152838751808652608088019150848901955060005b81811015615dee57865180516001600160a01b031684528601518516868401529585019591830191600101615dbe565b50909a9950505050505050505050565b600061ffff80831681811415615e1657615e166156ee565b6001019392505050565b600060208284031215615e3257600080fd5b81516001600160e01b03198116811461294d57600080fd5b60006001600160601b0380831681851681830481118215151615615e7057615e706156ee565b02949350505050565b60006001600160601b0380841680615e9357615e93615a22565b9216919091049291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47526567436f6f72642e7570646174654f70657261746f7273466f7251756f7275a2646970667358221220307187e79582c006632779f3f22aae3770293ab464d35484326624b926c86eaa64736f6c634300080c0033
/// ```
#[rustfmt::skip]
#[allow(clippy::all)]
pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x02\xF0W`\x005`\xE0\x1C\x80c]\xF4YF\x11a\x01\x9DW\x80c\xA5\x08W\xBF\x11a\0\xE9W\x80c\xD7[L\x88\x11a\0\xA2W\x80c\xEA2\xAF\xAE\x11a\0|W\x80c\xEA2\xAF\xAE\x14a\x08VW\x80c\xF2\xFD\xE3\x8B\x14a\x08}W\x80c\xFA\xBC\x1C\xBC\x14a\x08\x90W\x80c\xFD9\x10Z\x14a\x08\xA3W`\0\x80\xFD[\x80c\xD7[L\x88\x14a\x07\x8DW\x80c\xDD\x82\x83\xF3\x14a\x07\xA0W\x80c\xE6W\x97\xAD\x14a\x07\xB3W`\0\x80\xFD[\x80c\xA5\x08W\xBF\x14a\x07\x0FW\x80c\xA9ox>\x14a\x07\"W\x80c\xC3\x91B^\x14a\x07+W\x80c\xCA\r\xE8\x82\x14a\x07KW\x80c\xCAO-\x97\x14a\x07rW\x80c\xD7-\x8D\xD6\x14a\x07\x85W`\0\x80\xFD[\x80c\x87\x1E\xF0I\x11a\x01VW\x80c\x9A\xA1e=\x11a\x010W\x80c\x9A\xA1e=\x14a\x06\x8FW\x80c\x9B]\x17{\x14a\x06\xAEW\x80c\x9E\x99#\xC2\x14a\x06\xC1W\x80c\x9F\xEA\xB8Y\x14a\x06\xE8W`\0\x80\xFD[\x80c\x87\x1E\xF0I\x14a\x06[W\x80c\x88o\x11\x95\x14a\x06nW\x80c\x8D\xA5\xCB[\x14a\x06\x87W`\0\x80\xFD[\x80c]\xF4YF\x14a\x05\xCCW\x80ccG\xC9\0\x14a\x05\xF3W\x80ch0H5\x14a\x06\x06W\x80cn;\x17\xDB\x14a\x06-W\x80cqP\x18\xA6\x14a\x06@W\x80c\x84\xCAR\x13\x14a\x06HW`\0\x80\xFD[\x80c$\x9A\x0CB\x11a\x02\\W\x80c<*\x7FL\x11a\x02\x15W\x80cY\\jg\x11a\x01\xEFW\x80cY\\jg\x14a\x05\x8AW\x80cZ\xC8j\xB7\x14a\x05\x92W\x80c[\x0B\x82\x9F\x14a\x05\xB1W\x80c\\\x97Z\xBB\x14a\x05\xC4W`\0\x80\xFD[\x80c<*\x7FL\x14a\x057W\x80cQ@\xA5H\x14a\x05WW\x80cXe\xC6\x0C\x14a\x05jW`\0\x80\xFD[\x80c$\x9A\x0CB\x14a\x04\xA4W\x80c(\xF6\x1B1\x14a\x04\xC4W\x80c)k\xB0d\x14a\x04\xD7W\x80c)\xD1\xE0\xC3\x14a\x04\xEAW\x80c,\xDD\x1E\x86\x14a\x04\xFDW\x80c9\x98\xFD\xD3\x14a\x05\x10W`\0\x80\xFD[\x80c\x10\xD6z/\x11a\x02\xAEW\x80c\x10\xD6z/\x14a\x03\xB9W\x80c\x12^\x05\x84\x14a\x03\xCCW\x80c\x13T*N\x14a\x03\xECW\x80c\x13d9\xDD\x14a\x04\x15W\x80c\x14x\x85\x1F\x14a\x04(W\x80c\x1E\xB8\x12\xDA\x14a\x04[W`\0\x80\xFD[\x80b\xCF*\xB5\x14a\x02\xF5W\x80c\x03\xFD4\x92\x14a\x03\nW\x80c\x04\xECcQ\x14a\x03=W\x80c\x05C\x10\xE6\x14a\x03hW\x80c\x0C\xF4\xB7g\x14a\x03\x93W\x80c\r?!4\x14a\x03\xA6W[`\0\x80\xFD[a\x03\x08a\x03\x036`\x04aJ'V[a\x08\xDFV[\0[a\x03*a\x03\x186`\x04aJhV[`\0\x90\x81R`\x98` R`@\x90 T\x90V[`@Q\x90\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x03Pa\x03K6`\x04aJ\x93V[a\t\xF5V[`@Q`\x01`\x01`\xC0\x1B\x03\x90\x91\x16\x81R` \x01a\x034V[`\x9DTa\x03{\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x034V[a\x03\x08a\x03\xA16`\x04aK\xB2V[a\x0B\xCEV[a\x03\x08a\x03\xB46`\x04aJhV[a\x0CxV[a\x03\x08a\x03\xC76`\x04aL'V[a\x0C\x85V[a\x03*a\x03\xDA6`\x04aL'V[`\x9F` R`\0\x90\x81R`@\x90 T\x81V[a\x03*a\x03\xFA6`\x04aL'V[`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x99` R`@\x90 T\x90V[a\x03\x08a\x04#6`\x04aJhV[a\r5V[a\x04Ka\x0466`\x04aJhV[`\x9A` R`\0\x90\x81R`@\x90 T`\xFF\x16\x81V[`@Q\x90\x15\x15\x81R` \x01a\x034V[a\x04na\x04i6`\x04aLDV[a\x0EyV[`@\x80Q\x82Qc\xFF\xFF\xFF\xFF\x90\x81\x16\x82R` \x80\x85\x01Q\x90\x91\x16\x90\x82\x01R\x91\x81\x01Q`\x01`\x01`\xC0\x1B\x03\x16\x90\x82\x01R``\x01a\x034V[a\x03*a\x04\xB26`\x04aLwV[`\x9B` R`\0\x90\x81R`@\x90 T\x81V[`\x9ETa\x03{\x90`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x03{a\x04\xE56`\x04aJhV[a\x0F\nV[a\x03\x08a\x04\xF86`\x04aL'V[a\x0F\x96V[a\x03\x08a\x05\x0B6`\x04aL'V[a\x0F\xA7V[a\x03{\x7F\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\0\0\0\0\x81V[a\x05Ja\x05E6`\x04aL'V[a\x0F\xB8V[`@Qa\x034\x91\x90aL\x92V[a\x03\x08a\x05e6`\x04aL\xEAV[a\x107V[a\x05}a\x05x6`\x04aL'V[a\x15\x10V[`@Qa\x034\x91\x90aM\x8DV[a\x03\x08a\x15\x84V[a\x04Ka\x05\xA06`\x04aLwV[`\x01\x80T`\xFF\x90\x92\x16\x1B\x90\x81\x16\x14\x90V[a\x03\x08a\x05\xBF6`\x04aN\x12V[a\x16PV[`\x01Ta\x03*V[a\x03{\x7F\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\0\0\0\0\x81V[a\x03{a\x06\x016`\x04aJhV[a\x16qV[a\x03{\x7F\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\0\0\0\0\x81V[a\x03\x08a\x06;6`\x04aNFV[a\x16\x9BV[a\x03\x08a\x17\xB1V[a\x03*a\x06V6`\x04aN\xFDV[a\x17\xC5V[a\x03Pa\x06i6`\x04aJhV[a\x18\x0FV[`\0Ta\x03{\x90b\x01\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x81V[a\x03{a\x18\x1AV[`\x96Ta\x06\x9C\x90`\xFF\x16\x81V[`@Q`\xFF\x90\x91\x16\x81R` \x01a\x034V[a\x03\x08a\x06\xBC6`\x04aP\x96V[a\x183V[a\x03{\x7F\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\0\0\0\0\x81V[a\x03*\x7F+\xD8!$\x05\x7F\t\x13\xBC;w,\xE7\xB8>\x80W\xC1\xAD\x1F5\x10\xFC\x83w\x8B\xE2\x0F\x10\xEC]\xE6\x81V[a\x03\x08a\x07\x1D6`\x04aQ\x8FV[a\x1B]V[a\x03*`\xA0T\x81V[a\x07>a\x0796`\x04aR7V[a\x1C\xD3V[`@Qa\x034\x91\x90aR\xDCV[a\x03*\x7FM@N2v\xE7\xAC!c\xD8\xEEGj\xFAjA\xD1\xF6\x8F\xB7\x1F-\x8BeF\xB2NU\xCE\x01\xB7*\x81V[a\x03\x08a\x07\x806`\x04aS&V[a\x1D\x8CV[`\x9CTa\x03*V[a\x03\x08a\x07\x9B6`\x04aT\x0CV[a\x1D\xF3V[a\x03\x08a\x07\xAE6`\x04aU\xBFV[a\x1E\x06V[a\x08\"a\x07\xC16`\x04aLwV[`@\x80Q``\x80\x82\x01\x83R`\0\x80\x83R` \x80\x84\x01\x82\x90R\x92\x84\x01\x81\x90R`\xFF\x94\x90\x94\x16\x84R`\x97\x82R\x92\x82\x90 \x82Q\x93\x84\x01\x83RTc\xFF\xFF\xFF\xFF\x81\x16\x84Ra\xFF\xFF`\x01` \x1B\x82\x04\x81\x16\x92\x85\x01\x92\x90\x92R`\x01`0\x1B\x90\x04\x16\x90\x82\x01R\x90V[`@\x80Q\x82Qc\xFF\xFF\xFF\xFF\x16\x81R` \x80\x84\x01Qa\xFF\xFF\x90\x81\x16\x91\x83\x01\x91\x90\x91R\x92\x82\x01Q\x90\x92\x16\x90\x82\x01R``\x01a\x034V[a\x03{\x7F\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\0\0\0\0\x81V[a\x03\x08a\x08\x8B6`\x04aL'V[a \xFFV[a\x03\x08a\x08\x9E6`\x04aJhV[a!uV[a\x08\xD2a\x08\xB16`\x04aL'V[`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x99` R`@\x90 `\x01\x01T`\xFF\x16\x90V[`@Qa\x034\x91\x90aV\x93V[`\x01T`\x02\x90`\x04\x90\x81\x16\x14\x15a\t\x11W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\t\x08\x90aV\xA1V[`@Q\x80\x91\x03\x90\xFD[`\0[\x82\x81\x10\x15a\t\xEFW`\0\x84\x84\x83\x81\x81\x10a\t0Wa\t0aV\xD8V[\x90P` \x02\x01` \x81\x01\x90a\tE\x91\x90aL'V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x99` \x90\x81R`@\x80\x83 \x81Q\x80\x83\x01\x90\x92R\x80T\x82R`\x01\x81\x01T\x94\x95P\x92\x93\x90\x92\x91\x83\x01\x90`\xFF\x16`\x02\x81\x11\x15a\t\x90Wa\t\x90aMUV[`\x02\x81\x11\x15a\t\xA1Wa\t\xA1aMUV[\x90RP\x80Q\x90\x91P`\0a\t\xB4\x82a\"\xD1V[\x90P`\0a\t\xCA\x82`\x01`\x01`\xC0\x1B\x03\x16a#:V[\x90Pa\t\xD7\x85\x85\x83a$\x06V[PPPPP\x80\x80a\t\xE7\x90aW\x04V[\x91PPa\t\x14V[PPPPV[`\0\x83\x81R`\x98` R`@\x81 \x80T\x82\x91\x90\x84\x90\x81\x10a\n\x18Wa\n\x18aV\xD8V[`\0\x91\x82R` \x91\x82\x90 `@\x80Q``\x81\x01\x82R\x92\x90\x91\x01Tc\xFF\xFF\xFF\xFF\x80\x82\x16\x80\x85R`\x01` \x1B\x83\x04\x82\x16\x95\x85\x01\x95\x90\x95R`\x01`@\x1B\x90\x91\x04`\x01`\x01`\xC0\x1B\x03\x16\x91\x83\x01\x91\x90\x91R\x90\x92P\x85\x16\x10\x15a\x0B\x04W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`Z`$\x82\x01R\x7FRegCoord.getQuorumBitmapAtBlockN`D\x82\x01R\x7FumberByIndex: quorumBitmapUpdate`d\x82\x01R\x7F is from after blockNumber\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\t\x08V[` \x81\x01Qc\xFF\xFF\xFF\xFF\x16\x15\x80a\x0B*WP\x80` \x01Qc\xFF\xFF\xFF\xFF\x16\x84c\xFF\xFF\xFF\xFF\x16\x10[a\x0B\xC2W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`[`$\x82\x01R\x7FRegCoord.getQuorumBitmapAtBlockN`D\x82\x01R\x7FumberByIndex: quorumBitmapUpdate`d\x82\x01R\x7F is from before blockNumber\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\t\x08V[`@\x01Q\x94\x93PPPPV[`\x013`\0\x90\x81R`\x99` R`@\x90 `\x01\x01T`\xFF\x16`\x02\x81\x11\x15a\x0B\xF7Wa\x0B\xF7aMUV[\x14a\x0C[W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FRegCoord.updateSocket: operator `D\x82\x01Rm\x1B\x9B\xDD\x08\x1C\x99Y\xDA\\\xDD\x19\\\x99Y`\x92\x1B`d\x82\x01R`\x84\x01a\t\x08V[3`\0\x90\x81R`\x99` R`@\x90 Ta\x0Cu\x90\x82a$\xF3V[PV[a\x0C\x80a%\xAFV[`\xA0UV[`\0`\x02\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c\xEA\xB6mz`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0C\xD8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\xFC\x91\x90aW\x1FV[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a\r,W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\t\x08\x90aW<V[a\x0Cu\x81a&\x0EV[`\0T`@Qc#}\xFBG`\xE1\x1B\x81R3`\x04\x82\x01Rb\x01\0\0\x90\x91\x04`\x01`\x01`\xA0\x1B\x03\x16\x90cF\xFB\xF6\x8E\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\r\x82W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\r\xA6\x91\x90aW\x86V[a\r\xC2W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\t\x08\x90aW\xA8V[`\x01T\x81\x81\x16\x14a\x0E;W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`8`$\x82\x01R\x7FPausable.pause: invalid attempt `D\x82\x01R\x7Fto unpause functionality\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\t\x08V[`\x01\x81\x90U`@Q\x81\x81R3\x90\x7F\xAB@\xA3t\xBCQ\xDE7\"\0\xA8\xBC\x98\x1A\xF8\xC9\xEC\xDC\x08\xDF\xDA\xEF\x0B\xB6\xE0\x9F\x88\xF3\xC6\x16\xEF=\x90` \x01[`@Q\x80\x91\x03\x90\xA2PV[`@\x80Q``\x81\x01\x82R`\0\x80\x82R` \x82\x01\x81\x90R\x91\x81\x01\x91\x90\x91R`\0\x83\x81R`\x98` R`@\x90 \x80T\x83\x90\x81\x10a\x0E\xB6Wa\x0E\xB6aV\xD8V[`\0\x91\x82R` \x91\x82\x90 `@\x80Q``\x81\x01\x82R\x91\x90\x92\x01Tc\xFF\xFF\xFF\xFF\x80\x82\x16\x83R`\x01` \x1B\x82\x04\x16\x93\x82\x01\x93\x90\x93R`\x01`\x01`\xC0\x1B\x03`\x01`@\x1B\x90\x93\x04\x92\x90\x92\x16\x90\x82\x01R\x90P[\x92\x91PPV[`@Qc\x08\xF6b\x9D`\xE3\x1B\x81R`\x04\x81\x01\x82\x90R`\0\x90\x7F\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\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90cG\xB3\x14\xE8\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0FrW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0F\x04\x91\x90aW\x1FV[a\x0F\x9Ea%\xAFV[a\x0Cu\x81a'\x13V[a\x0F\xAFa%\xAFV[a\x0Cu\x81a'|V[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01Ra\x0F\x04a\x102\x7F+\xD8!$\x05\x7F\t\x13\xBC;w,\xE7\xB8>\x80W\xC1\xAD\x1F5\x10\xFC\x83w\x8B\xE2\x0F\x10\xEC]\xE6\x84`@Q` \x01a\x10\x17\x92\x91\x90\x91\x82R`\x01`\x01`\xA0\x1B\x03\x16` \x82\x01R`@\x01\x90V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 a'\xE5V[a(3V[`\x01T`\x02\x90`\x04\x90\x81\x16\x14\x15a\x10`W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\t\x08\x90aV\xA1V[`\0a\x10\xA8\x84\x84\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPP`\x96T`\xFF\x16\x91Pa(\xC3\x90PV[\x90P\x84\x83\x14a\x11\rW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`8`$\x82\x01R`\0\x80Q` a^\xC0\x839\x81Q\x91R`D\x82\x01R\x7Fm: input length mismatch\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\t\x08V[`\0[\x83\x81\x10\x15a\x15\x07W`\0\x85\x85\x83\x81\x81\x10a\x11,Wa\x11,aV\xD8V[\x91\x90\x91\x015`\xF8\x1C\x91P6\x90P`\0\x89\x89\x85\x81\x81\x10a\x11MWa\x11MaV\xD8V[\x90P` \x02\x81\x01\x90a\x11_\x91\x90aW\xF0V[`@Qcy\xA0\x84\x91`\xE1\x1B\x81R`\xFF\x86\x16`\x04\x82\x01R\x91\x93P\x91P\x7F\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\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90c\xF3A\t\"\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x11\xCBW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x11\xEF\x91\x90aX9V[c\xFF\xFF\xFF\xFF\x16\x81\x14a\x12}W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`Z`$\x82\x01R`\0\x80Q` a^\xC0\x839\x81Q\x91R`D\x82\x01R\x7Fm: number of updated operators d`d\x82\x01R\x7Foes not match quorum total\0\0\0\0\0\0`\x84\x82\x01R`\xA4\x01a\t\x08V[`\0\x80[\x82\x81\x10\x15a\x14\xA6W`\0\x84\x84\x83\x81\x81\x10a\x12\x9DWa\x12\x9DaV\xD8V[\x90P` \x02\x01` \x81\x01\x90a\x12\xB2\x91\x90aL'V[`\x01`\x01`\xA0\x1B\x03\x81\x16`\0\x90\x81R`\x99` \x90\x81R`@\x80\x83 \x81Q\x80\x83\x01\x90\x92R\x80T\x82R`\x01\x81\x01T\x94\x95P\x92\x93\x90\x92\x91\x83\x01\x90`\xFF\x16`\x02\x81\x11\x15a\x12\xFDWa\x12\xFDaMUV[`\x02\x81\x11\x15a\x13\x0EWa\x13\x0EaMUV[\x90RP\x80Q\x90\x91P`\0a\x13!\x82a\"\xD1V[\x90P`\x01`\x01`\x01`\xC0\x1B\x03\x82\x16`\xFF\x8B\x16\x1C\x81\x16\x14a\x13\x97W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`9`$\x82\x01R`\0\x80Q` a^\xC0\x839\x81Q\x91R`D\x82\x01R\x7Fm: operator not in quorum\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\t\x08V[\x85`\x01`\x01`\xA0\x1B\x03\x16\x84`\x01`\x01`\xA0\x1B\x03\x16\x11a\x142W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\\`$\x82\x01R`\0\x80Q` a^\xC0\x839\x81Q\x91R`D\x82\x01R\x7Fm: operators array must be sorte`d\x82\x01R\x7Fd in ascending address order\0\0\0\0`\x84\x82\x01R`\xA4\x01a\t\x08V[Pa\x14\x90\x83\x83\x8F\x8F\x8D\x90\x8E`\x01a\x14I\x91\x90aXVV[\x92a\x14V\x93\x92\x91\x90aXnV[\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa$\x06\x92PPPV[P\x90\x92Pa\x14\x9F\x90P\x81aW\x04V[\x90Pa\x12\x81V[P`\xFF\x84\x16`\0\x81\x81R`\x9B` \x90\x81R`@\x91\x82\x90 C\x90\x81\x90U\x91Q\x91\x82R\x7FF\x07}U3\x07c\xF1bi\xFDu\xE5v\x16c\xF4\x19-'\x91t|\x01\x89\xB1j\xD3\x1D\xB0}\xB4\x91\x01`@Q\x80\x91\x03\x90\xA2PPPP\x80a\x15\0\x90aW\x04V[\x90Pa\x11\x10V[PPPPPPPV[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x99` \x90\x81R`@\x91\x82\x90 \x82Q\x80\x84\x01\x90\x93R\x80T\x83R`\x01\x81\x01T\x90\x91\x83\x01\x90`\xFF\x16`\x02\x81\x11\x15a\x15jWa\x15jaMUV[`\x02\x81\x11\x15a\x15{Wa\x15{aMUV[\x90RP\x92\x91PPV[`\0T`@Qc#}\xFBG`\xE1\x1B\x81R3`\x04\x82\x01Rb\x01\0\0\x90\x91\x04`\x01`\x01`\xA0\x1B\x03\x16\x90cF\xFB\xF6\x8E\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x15\xD1W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x15\xF5\x91\x90aW\x86V[a\x16\x11W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\t\x08\x90aW\xA8V[`\0\x19`\x01\x81\x90U`@Q\x90\x81R3\x90\x7F\xAB@\xA3t\xBCQ\xDE7\"\0\xA8\xBC\x98\x1A\xF8\xC9\xEC\xDC\x08\xDF\xDA\xEF\x0B\xB6\xE0\x9F\x88\xF3\xC6\x16\xEF=\x90` \x01`@Q\x80\x91\x03\x90\xA2V[a\x16Xa%\xAFV[\x81a\x16b\x81a)TV[a\x16l\x83\x83a)\xC1V[PPPV[`\x9C\x81\x81T\x81\x10a\x16\x81W`\0\x80\xFD[`\0\x91\x82R` \x90\x91 \x01T`\x01`\x01`\xA0\x1B\x03\x16\x90P\x81V[a\x16\xA3a*gV[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x9F` \x90\x81R`@\x80\x83 B\x90U`\x99\x82R\x80\x83 \x80T\x82Q`\x1F\x87\x01\x85\x90\x04\x85\x02\x81\x01\x85\x01\x90\x93R\x85\x83R\x90\x93\x90\x92\x90\x91a\x17\x10\x91\x87\x90\x87\x90\x81\x90\x84\x01\x83\x82\x80\x82\x847`\0\x92\x01\x91\x90\x91RPP`\x96T`\xFF\x16\x91Pa(\xC3\x90PV[\x90P`\0a\x17\x1D\x83a\"\xD1V[\x90P`\x01\x80\x85\x01T`\xFF\x16`\x02\x81\x11\x15a\x179Wa\x179aMUV[\x14\x80\x15a\x17NWP`\x01`\x01`\xC0\x1B\x03\x82\x16\x15\x15[\x80\x15a\x17lWPa\x17l`\x01`\x01`\xC0\x1B\x03\x83\x81\x16\x90\x83\x16\x81\x16\x14\x90V[\x15a\x15\x07Wa\x15\x07\x87\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa*\xD9\x92PPPV[a\x17\xB9a%\xAFV[a\x17\xC3`\0a/\x1AV[V[`\0a\x18\x05\x7FM@N2v\xE7\xAC!c\xD8\xEEGj\xFAjA\xD1\xF6\x8F\xB7\x1F-\x8BeF\xB2NU\xCE\x01\xB7*\x87\x87\x87\x87\x87`@Q` \x01a\x10\x17\x96\x95\x94\x93\x92\x91\x90aX\x98V[\x96\x95PPPPPPV[`\0a\x0F\x04\x82a\"\xD1V[`\0a\x18.`dT`\x01`\x01`\xA0\x1B\x03\x16\x90V[\x90P\x90V[`\x01\x80T`\0\x91\x90\x81\x16\x14\x15a\x18[W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\t\x08\x90aV\xA1V[\x83\x89\x14a\x18\xD0W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`9`$\x82\x01R\x7FRegCoord.registerOperatorWithChu`D\x82\x01R\x7Frn: input length mismatch\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\t\x08V[`\0a\x18\xDC3\x88a/lV[\x90Pa\x19<3\x82\x88\x88\x80\x80` \x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01`\0\x90[\x82\x82\x10\x15a\x191Wa\x19\"`@\x83\x02\x86\x016\x81\x90\x03\x81\x01\x90aY\x1DV[\x81R` \x01\x90`\x01\x01\x90a\x19\x05V[PPPPP\x87a0\x9DV[`\0a\x19\x833\x83\x8E\x8E\x8E\x8E\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x8C\x92Pa2\x14\x91PPV[\x90P`\0[\x8B\x81\x10\x15a\x1BNW`\0`\x97`\0\x8F\x8F\x85\x81\x81\x10a\x19\xA8Wa\x19\xA8aV\xD8V[\x91\x90\x91\x015`\xF8\x1C\x82RP` \x80\x82\x01\x92\x90\x92R`@\x90\x81\x01`\0 \x81Q``\x81\x01\x83R\x90Tc\xFF\xFF\xFF\xFF\x81\x16\x80\x83Ra\xFF\xFF`\x01` \x1B\x83\x04\x81\x16\x95\x84\x01\x95\x90\x95R`\x01`0\x1B\x90\x91\x04\x90\x93\x16\x91\x81\x01\x91\x90\x91R\x84Q\x80Q\x91\x93P\x90\x84\x90\x81\x10a\x1A\x15Wa\x1A\x15aV\xD8V[` \x02` \x01\x01Qc\xFF\xFF\xFF\xFF\x16\x11\x15a\x1B;Wa\x1A\xB6\x8E\x8E\x84\x81\x81\x10a\x1A>Wa\x1A>aV\xD8V[\x90P\x015`\xF8\x1C`\xF8\x1B`\xF8\x1C\x84`@\x01Q\x84\x81Q\x81\x10a\x1AaWa\x1AaaV\xD8V[` \x02` \x01\x01Q3\x86` \x01Q\x86\x81Q\x81\x10a\x1A\x80Wa\x1A\x80aV\xD8V[` \x02` \x01\x01Q\x8D\x8D\x88\x81\x81\x10a\x1A\x9AWa\x1A\x9AaV\xD8V[\x90P`@\x02\x01\x806\x03\x81\x01\x90a\x1A\xB0\x91\x90aY\x1DV[\x86a7dV[a\x1B;\x89\x89\x84\x81\x81\x10a\x1A\xCBWa\x1A\xCBaV\xD8V[\x90P`@\x02\x01` \x01` \x81\x01\x90a\x1A\xE3\x91\x90aL'V[\x8F\x8F\x85\x90\x86`\x01a\x1A\xF4\x91\x90aXVV[\x92a\x1B\x01\x93\x92\x91\x90aXnV[\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa*\xD9\x92PPPV[P\x80a\x1BF\x81aW\x04V[\x91PPa\x19\x88V[PPPPPPPPPPPPPV[`\x01\x80T`\0\x91\x90\x81\x16\x14\x15a\x1B\x85W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\t\x08\x90aV\xA1V[`\0a\x1B\x913\x85a/lV[\x90P`\0a\x1B\xDA3\x83\x8B\x8B\x8B\x8B\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP\x8C\x92Pa2\x14\x91PPV[Q\x90P`\0[\x88\x81\x10\x15a\x1C\xC7W`\0\x8A\x8A\x83\x81\x81\x10a\x1B\xFCWa\x1B\xFCaV\xD8V[\x91\x90\x91\x015`\xF8\x1C`\0\x81\x81R`\x97` R`@\x90 T\x85Q\x91\x93Pc\xFF\xFF\xFF\xFF\x16\x91P\x84\x90\x84\x90\x81\x10a\x1C2Wa\x1C2aV\xD8V[` \x02` \x01\x01Qc\xFF\xFF\xFF\xFF\x16\x11\x15a\x1C\xB4W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`9`$\x82\x01R\x7FRegCoord.registerOperator: opera`D\x82\x01R\x7Ftor count exceeds maximum\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\t\x08V[P\x80a\x1C\xBF\x81aW\x04V[\x91PPa\x1B\xE0V[PPPPPPPPPPV[```\0\x82Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\x1C\xF0Wa\x1C\xF0aJ\xCBV[`@Q\x90\x80\x82R\x80` \x02` \x01\x82\x01`@R\x80\x15a\x1D\x19W\x81` \x01` \x82\x02\x806\x837\x01\x90P[P\x90P`\0[\x83Q\x81\x10\x15a\x1D\x84Wa\x1DK\x85\x85\x83\x81Q\x81\x10a\x1D>Wa\x1D>aV\xD8V[` \x02` \x01\x01Qa:OV[\x82\x82\x81Q\x81\x10a\x1D]Wa\x1D]aV\xD8V[c\xFF\xFF\xFF\xFF\x90\x92\x16` \x92\x83\x02\x91\x90\x91\x01\x90\x91\x01R\x80a\x1D|\x81aW\x04V[\x91PPa\x1D\x1FV[P\x93\x92PPPV[`\x01\x80T`\x02\x90\x81\x16\x14\x15a\x1D\xB3W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\t\x08\x90aV\xA1V[a\x16l3\x84\x84\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPa*\xD9\x92PPPV[a\x1D\xFBa%\xAFV[a\x16l\x83\x83\x83a;vV[`\0Ta\x01\0\x90\x04`\xFF\x16\x15\x80\x80\x15a\x1E&WP`\0T`\x01`\xFF\x90\x91\x16\x10[\x80a\x1E@WP0;\x15\x80\x15a\x1E@WP`\0T`\xFF\x16`\x01\x14[a\x1E\xA3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FInitializable: contract is alrea`D\x82\x01Rm\x19\x1EH\x1A[\x9A]\x1AX[\x1A^\x99Y`\x92\x1B`d\x82\x01R`\x84\x01a\t\x08V[`\0\x80T`\xFF\x19\x16`\x01\x17\x90U\x80\x15a\x1E\xC6W`\0\x80Ta\xFF\0\x19\x16a\x01\0\x17\x90U[\x82Q\x84Q\x14\x80\x15a\x1E\xD8WP\x81Q\x83Q\x14[a\x1F7W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7FRegCoord.initialize: input lengt`D\x82\x01Ri\r\x04\r\xAD.m\xAC.\x8Cm`\xB3\x1B`d\x82\x01R`\x84\x01a\t\x08V[a\x1F@\x89a/\x1AV[a\x1FJ\x86\x86a=\x82V[a\x1FS\x88a'\x13V[a\x1F\\\x87a'|V[`\x9C\x80T`\x01\x81\x81\x01\x83U`\0\x83\x81R\x7F\xAF\x85\xB9\x07\x1D\xFA\xFE\xAC\x14\t\xD3\xF1\xD1\x9B\xAF\xC9\xBC|7\x97L\xDE\x8D\xF0\xEEah\xF0\x08nS\x9C\x92\x83\x01\x80T`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x92\x83\x16\x17\x90\x92U\x85T\x80\x85\x01\x87U\x85\x01\x80T\x7F\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\0\0\0\0\x84\x16\x90\x83\x16\x17\x90U\x85T\x93\x84\x01\x90\x95U\x91\x90\x92\x01\x80T\x7F\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\0\0\0\0\x90\x92\x16\x91\x90\x93\x16\x17\x90\x91U[\x84Q\x81\x10\x15a \xADWa \x9B\x85\x82\x81Q\x81\x10a ZWa ZaV\xD8V[` \x02` \x01\x01Q\x85\x83\x81Q\x81\x10a tWa taV\xD8V[` \x02` \x01\x01Q\x85\x84\x81Q\x81\x10a \x8EWa \x8EaV\xD8V[` \x02` \x01\x01Qa;vV[\x80a \xA5\x81aW\x04V[\x91PPa <V[P\x80\x15a \xF4W`\0\x80Ta\xFF\0\x19\x16\x90U`@Q`\x01\x81R\x7F\x7F&\xB8?\xF9n\x1F+jh/\x138R\xF6y\x8A\t\xC4e\xDA\x95\x92\x14`\xCE\xFB8G@$\x98\x90` \x01`@Q\x80\x91\x03\x90\xA1[PPPPPPPPPV[a!\x07a%\xAFV[`\x01`\x01`\xA0\x1B\x03\x81\x16a!lW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FOwnable: new owner is the zero a`D\x82\x01Reddress`\xD0\x1B`d\x82\x01R`\x84\x01a\t\x08V[a\x0Cu\x81a/\x1AV[`\0`\x02\x90T\x90a\x01\0\n\x90\x04`\x01`\x01`\xA0\x1B\x03\x16`\x01`\x01`\xA0\x1B\x03\x16c\xEA\xB6mz`@Q\x81c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a!\xC8W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a!\xEC\x91\x90aW\x1FV[`\x01`\x01`\xA0\x1B\x03\x163`\x01`\x01`\xA0\x1B\x03\x16\x14a\"\x1CW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\t\x08\x90aW<V[`\x01T\x19\x81\x19`\x01T\x19\x16\x14a\"\x9AW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`8`$\x82\x01R\x7FPausable.unpause: invalid attemp`D\x82\x01R\x7Ft to pause functionality\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\t\x08V[`\x01\x81\x90U`@Q\x81\x81R3\x90\x7F5\x82\xD1\x82\x8E&\xBFV\xBD\x80\x15\x02\xBC\x02\x1A\xC0\xBC\x8A\xFBW\xC8&\xE4\x98kEY<\x8F\xAD8\x9C\x90` \x01a\x0EnV[`\0\x81\x81R`\x98` R`@\x81 T\x80a\"\xEEWP`\0\x92\x91PPV[`\0\x83\x81R`\x98` R`@\x90 a#\x07`\x01\x83aY9V[\x81T\x81\x10a#\x17Wa#\x17aV\xD8V[`\0\x91\x82R` \x90\x91 \x01T`\x01`@\x1B\x90\x04`\x01`\x01`\xC0\x1B\x03\x16\x93\x92PPPV[```\0\x80a#H\x84a>rV[a\xFF\xFF\x16`\x01`\x01`@\x1B\x03\x81\x11\x15a#cWa#caJ\xCBV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a#\x8DW` \x82\x01\x81\x806\x837\x01\x90P[P\x90P`\0\x80[\x82Q\x82\x10\x80\x15a#\xA5WPa\x01\0\x81\x10[\x15a#\xFCW`\x01\x81\x1B\x93P\x85\x84\x16\x15a#\xECW\x80`\xF8\x1B\x83\x83\x81Q\x81\x10a#\xCEWa#\xCEaV\xD8V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP\x81`\x01\x01\x91P[a#\xF5\x81aW\x04V[\x90Pa#\x94V[P\x90\x94\x93PPPPV[`\x01\x82` \x01Q`\x02\x81\x11\x15a$\x1EWa$\x1EaMUV[\x14a$(WPPPV[\x81Q`@Qc3V\x7F\x7F`\xE1\x1B\x81R`\0\x90`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x90cf\xAC\xFE\xFE\x90a$}\x90\x88\x90\x86\x90\x88\x90`\x04\x01aY\x9DV[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a$\x9CW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a$\xC0\x91\x90aY\xCDV[\x90P`\x01`\x01`\xC0\x1B\x03\x81\x16\x15a$\xECWa$\xEC\x85a$\xE7\x83`\x01`\x01`\xC0\x1B\x03\x16a#:V[a*\xD9V[PPPPPV[`@Qcx!\x9B?`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x90c\xF0C6~\x90a%A\x90\x85\x90\x85\x90`\x04\x01aY\xF6V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a%[W`\0\x80\xFD[PZ\xF1\x15\x80\x15a%oW=`\0\x80>=`\0\xFD[PPPP\x81\x7F\xEC)c\xAB!\xC1\xE5\x0E\x1EX*\xA5B\xAF.K\xF7\xBF8\xE6\xE1@<'\xB4.\x1C]nb\x1E\xAA\x82`@Qa%\xA3\x91\x90aZ\x0FV[`@Q\x80\x91\x03\x90\xA2PPV[3a%\xB8a\x18\x1AV[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x17\xC3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FOwnable: caller is not the owner`D\x82\x01R`d\x01a\t\x08V[`\x01`\x01`\xA0\x1B\x03\x81\x16a&\x9CW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`I`$\x82\x01R\x7FPausable._setPauserRegistry: new`D\x82\x01R\x7FPauserRegistry cannot be the zer`d\x82\x01Rho address`\xB8\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[`\0T`@\x80Q`\x01`\x01`\xA0\x1B\x03b\x01\0\0\x90\x93\x04\x83\x16\x81R\x91\x83\x16` \x83\x01R\x7Fn\x9F\xCDS\x98\x96\xFC\xA6\x0E\x8B\x0F\x01\xDDX\x023\xE4\x8Ak\x0F}\xF0\x13\xB8\x9B\xA7\xF5e\x86\x9A\xCD\xB6\x91\x01`@Q\x80\x91\x03\x90\xA1`\0\x80T`\x01`\x01`\xA0\x1B\x03\x90\x92\x16b\x01\0\0\x02b\x01\0\0`\x01`\xB0\x1B\x03\x19\x90\x92\x16\x91\x90\x91\x17\x90UV[`\x9DT`@\x80Q`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x81R\x91\x83\x16` \x83\x01R\x7F1TW\xD8\xA8\xFE`\xF0J\xF1|\x16\xE2\xF5\xA5\xE1\xDBa+1d\x8EX\x03\x03`u\x9E\xF8\xF3R\x8C\x91\x01`@Q\x80\x91\x03\x90\xA1`\x9D\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[`\x9ET`@\x80Q`\x01`\x01`\xA0\x1B\x03\x92\x83\x16\x81R\x91\x83\x16` \x83\x01R\x7F\x8F0\xAB\t\xF4:l\x15}\x7F\xCE~\n\x13\xC0\x03\x04,\x1C\x95\xE8\xA7.z\x14j!\xC0\xCA\xA2M\xC9\x91\x01`@Q\x80\x91\x03\x90\xA1`\x9E\x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x92\x90\x92\x16\x91\x90\x91\x17\x90UV[`\0a\x0F\x04a'\xF2a>\x9DV[\x83`@Qa\x19\x01`\xF0\x1B` \x82\x01R`\"\x81\x01\x83\x90R`B\x81\x01\x82\x90R`\0\x90`b\x01`@Q` \x81\x83\x03\x03\x81R\x90`@R\x80Q\x90` \x01 \x90P\x92\x91PPV[`@\x80Q\x80\x82\x01\x90\x91R`\0\x80\x82R` \x82\x01R`\0\x80\x80a(c`\0\x80Q` a^\xA0\x839\x81Q\x91R\x86aZ8V[\x90P[a(o\x81a?\xC4V[\x90\x93P\x91P`\0\x80Q` a^\xA0\x839\x81Q\x91R\x82\x83\t\x83\x14\x15a(\xA9W`@\x80Q\x80\x82\x01\x90\x91R\x90\x81R` \x81\x01\x91\x90\x91R\x93\x92PPPV[`\0\x80Q` a^\xA0\x839\x81Q\x91R`\x01\x82\x08\x90Pa(fV[`\0\x80a(\xCF\x84a@FV[\x90P\x80\x83`\xFF\x16`\x01\x90\x1B\x11a)MW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`?`$\x82\x01R\x7FBitmapUtils.orderedBytesArrayToB`D\x82\x01R\x7Fitmap: bitmap exceeds max value\0`d\x82\x01R`\x84\x01a\t\x08V[\x93\x92PPPV[`\x96T`\xFF\x90\x81\x16\x90\x82\x16\x10a\x0CuW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`,`$\x82\x01R\x7FRegCoord.quorumExists: quorum do`D\x82\x01Rk\x19\\\xC8\x1B\x9B\xDD\x08\x19^\x1A\\\xDD`\xA2\x1B`d\x82\x01R`\x84\x01a\t\x08V[`\xFF\x82\x16`\0\x81\x81R`\x97` \x90\x81R`@\x91\x82\x90 \x84Q\x81T\x86\x84\x01\x80Q\x88\x87\x01\x80Qc\xFF\xFF\xFF\xFF\x90\x95\x16e\xFF\xFF\xFF\xFF\xFF\xFF\x19\x90\x94\x16\x84\x17`\x01` \x1Ba\xFF\xFF\x93\x84\x16\x02\x17g\xFF\xFF\0\0\0\0\0\0\x19\x16`\x01`0\x1B\x95\x83\x16\x95\x90\x95\x02\x94\x90\x94\x17\x90\x94U\x85Q\x91\x82RQ\x83\x16\x93\x81\x01\x93\x90\x93RQ\x16\x91\x81\x01\x91\x90\x91R\x7F>\xE6\xFE\x8DTa\x02D\xC3\xE9\xD3\xC0f\xAEJ\xEE\x99x\x84\xAA(\xF1\x06\x16\xAE\x82\x19%@\x13\x18\xAC\x90``\x01a%\xA3V[`\x9ET`\x01`\x01`\xA0\x1B\x03\x163\x14a\x17\xC3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FRegCoord.onlyEjector: caller is `D\x82\x01Rn77\xBA\x10:42\x902\xB52\xB1\xBA7\xB9`\x89\x1B`d\x82\x01R`\x84\x01a\t\x08V[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x99` R`@\x90 \x80T`\x01\x80\x83\x01T`\xFF\x16`\x02\x81\x11\x15a+\rWa+\raMUV[\x14a+\x80W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`8`$\x82\x01R\x7FRegCoord._deregisterOperator: op`D\x82\x01R\x7Ferator is not registered\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\t\x08V[`\x96T`\0\x90a+\x94\x90\x85\x90`\xFF\x16a(\xC3V[\x90P`\0a+\xA1\x83a\"\xD1V[\x90P`\x01`\x01`\xC0\x1B\x03\x82\x16a,\x12W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`0`$\x82\x01R\x7FRegCoord._deregisterOperator: bi`D\x82\x01Ro\x07F\xD6\x17\x02\x066\x16\xE6\xE6\xF7B\x06&R\x03`\x84\x1B`d\x82\x01R`\x84\x01a\t\x08V[a,)`\x01`\x01`\xC0\x1B\x03\x83\x81\x16\x90\x83\x16\x81\x16\x14\x90V[a,\xA9W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`D`$\x82\x01\x81\x90R\x7FRegCoord._deregisterOperator: op\x90\x82\x01R\x7Ferator is not registered for quo`d\x82\x01Rcrums`\xE0\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[`\x01`\x01`\xC0\x1B\x03\x82\x81\x16\x19\x82\x16\x16a,\xC2\x84\x82aA\xD3V[`\x01`\x01`\xC0\x1B\x03\x81\x16a-\x91W`\x01\x85\x01\x80T`\xFF\x19\x16`\x02\x17\x90U`@QcQ\xB2zm`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x88\x81\x16`\x04\x83\x01R\x7F\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\0\0\0\0\x16\x90c\xA3d\xF4\xDA\x90`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a-BW`\0\x80\xFD[PZ\xF1\x15\x80\x15a-VW=`\0\x80>=`\0\xFD[PP`@Q\x86\x92P`\x01`\x01`\xA0\x1B\x03\x8A\x16\x91P\x7F9o\xDC\xB1\x80\xCB\x0F\xEA&\x92\x81\x13\xFB\x0F\xD1\xC3T\x98c\xF9\xCDV>j\x18O\x1DW\x81\x16\xC8\xE4\x90`\0\x90\xA3[`@Qc\xF4\xE2O\xE5`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x90c\xF4\xE2O\xE5\x90a-\xDF\x90\x8A\x90\x8A\x90`\x04\x01aZLV[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a-\xF9W`\0\x80\xFD[PZ\xF1\x15\x80\x15a.\rW=`\0\x80>=`\0\xFD[PP`@Qc\xBD)\xB8\xCD`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x92Pc\xBD)\xB8\xCD\x91Pa._\x90\x87\x90\x8A\x90`\x04\x01aY\xF6V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a.yW`\0\x80\xFD[PZ\xF1\x15\x80\x15a.\x8DW=`\0\x80>=`\0\xFD[PP`@Qc\xBD)\xB8\xCD`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x92Pc\xBD)\xB8\xCD\x91Pa.\xDF\x90\x87\x90\x8A\x90`\x04\x01aY\xF6V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a.\xF9W`\0\x80\xFD[PZ\xF1\x15\x80\x15a/\rW=`\0\x80>=`\0\xFD[PPPPPPPPPPPV[`d\x80T`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x01`\x01`\xA0\x1B\x03\x19\x83\x16\x81\x17\x90\x93U`@Q\x91\x16\x91\x90\x82\x90\x7F\x8B\xE0\x07\x9CS\x16Y\x14\x13D\xCD\x1F\xD0\xA4\xF2\x84\x19I\x7F\x97\"\xA3\xDA\xAF\xE3\xB4\x18okdW\xE0\x90`\0\x90\xA3PPV[`@Qc\t\xAA\x15'`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\x04\x83\x01R`\0\x91\x7F\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\0\0\0\0\x90\x91\x16\x90c\x13T*N\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a/\xD7W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a/\xFB\x91\x90aZpV[\x90P\x80a\x0F\x04W\x7F\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\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16c\xBFy\xCEX\x84\x84a0<\x87a\x0F\xB8V[`@Q\x84c\xFF\xFF\xFF\xFF\x16`\xE0\x1B\x81R`\x04\x01a0Z\x93\x92\x91\x90aZ\x89V[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a0yW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a)M\x91\x90aZpV[` \x80\x82\x01Q`\0\x90\x81R`\x9A\x90\x91R`@\x90 T`\xFF\x16\x15a18W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`G`$\x82\x01R\x7FRegCoord._verifyChurnApproverSig`D\x82\x01R\x7Fnature: churnApprover salt alrea`d\x82\x01Rf\x19\x1EH\x1D\\\xD9Y`\xCA\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[B\x81`@\x01Q\x10\x15a1\xC2W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`G`$\x82\x01R\x7FRegCoord._verifyChurnApproverSig`D\x82\x01R\x7Fnature: churnApprover signature `d\x82\x01Rf\x19^\x1C\x1A\\\x99Y`\xCA\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[` \x80\x82\x01\x80Q`\0\x90\x81R`\x9A\x90\x92R`@\x91\x82\x90 \x80T`\xFF\x19\x16`\x01\x17\x90U`\x9DT\x90Q\x91\x83\x01Qa\t\xEF\x92`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x91a2\r\x91\x88\x91\x88\x91\x88\x91\x90a\x17\xC5V[\x83QaC\x93V[a28`@Q\x80``\x01`@R\x80``\x81R` \x01``\x81R` \x01``\x81RP\x90V[`\0a2\x80\x86\x86\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RPP`\x96T`\xFF\x16\x91Pa(\xC3\x90PV[\x90P`\0a2\x8D\x88a\"\xD1V[\x90P`\x01`\x01`\xC0\x1B\x03\x82\x16a2\xFCW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FRegCoord._registerOperator: bitm`D\x82\x01Rm\x06\x17\x02\x066\x16\xE6\xE6\xF7B\x06&R\x03`\x94\x1B`d\x82\x01R`\x84\x01a\t\x08V[\x80\x82\x16`\x01`\x01`\xC0\x1B\x03\x16\x15a3\x8CW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`H`$\x82\x01R\x7FRegCoord._registerOperator: oper`D\x82\x01R\x7Fator already registered for some`d\x82\x01Rg quorums`\xC0\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[`\xA0T`\x01`\x01`\xA0\x1B\x03\x8A\x16`\0\x90\x81R`\x9F` R`@\x90 T`\x01`\x01`\xC0\x1B\x03\x83\x81\x16\x90\x85\x16\x17\x91B\x91a3\xC4\x91\x90aXVV[\x10a47W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`:`$\x82\x01R\x7FRegCoord._registerOperator: oper`D\x82\x01R\x7Fator cannot reregister yet\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\t\x08V[a4A\x89\x82aA\xD3V[`\x01`\x01`\x01`\xA0\x1B\x03\x8B\x16`\0\x90\x81R`\x99` R`@\x90 `\x01\x01T`\xFF\x16`\x02\x81\x11\x15a4sWa4saMUV[\x14a5\x96W`@\x80Q\x80\x82\x01\x82R\x8A\x81R`\x01` \x80\x83\x01\x82\x81R`\x01`\x01`\xA0\x1B\x03\x8F\x16`\0\x90\x81R`\x99\x90\x92R\x93\x90 \x82Q\x81U\x92Q\x83\x82\x01\x80T\x93\x94\x93\x91\x92\x90\x91`\xFF\x19\x16\x90\x83`\x02\x81\x11\x15a4\xCEWa4\xCEaMUV[\x02\x17\x90UPP`@Qc\x99&\xEE}`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x91Pc\x99&\xEE}\x90a5#\x90\x8D\x90\x89\x90`\x04\x01a[\x08V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a5=W`\0\x80\xFD[PZ\xF1\x15\x80\x15a5QW=`\0\x80>=`\0\xFD[PPPPa5_\x89\x87a$\xF3V[`@Q\x89\x90`\x01`\x01`\xA0\x1B\x03\x8C\x16\x90\x7F\xE8\xE6\x8C\xEF\x1C:v\x1E\xD7\xBE~\x84c\xA3u\xF2\x7F{\xC35\xE5\x18$\"<\xAC\xCEcn\xC5\xC3\xFE\x90`\0\x90\xA3[`@Qc\x1F\xD9<\xA9`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x90c?\xB2yR\x90a5\xE6\x90\x8D\x90\x8C\x90\x8C\x90`\x04\x01a[|V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a6\0W`\0\x80\xFD[PZ\xF1\x15\x80\x15a6\x14W=`\0\x80>=`\0\xFD[PP`@Qc%PGw`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x92Pc%PGw\x91Pa6j\x90\x8D\x90\x8D\x90\x8D\x90\x8D\x90`\x04\x01a[\xA1V[`\0`@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a6\x89W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra6\xB1\x91\x90\x81\x01\x90a\\-V[`@\x80\x87\x01\x91\x90\x91R` \x86\x01\x91\x90\x91RQb\xBF\xF0M`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x90b\xBF\xF0M\x90a7\x0E\x90\x8C\x90\x8C\x90\x8C\x90`\x04\x01a\\\x90V[`\0`@Q\x80\x83\x03\x81`\0\x87Z\xF1\x15\x80\x15a7-W=`\0\x80>=`\0\xFD[PPPP`@Q=`\0\x82>`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01`@Ra7U\x91\x90\x81\x01\x90a\\\xAAV[\x84RPPP\x96\x95PPPPPPV[` \x80\x83\x01Q`\x01`\x01`\xA0\x1B\x03\x80\x82\x16`\0\x81\x81R`\x99\x90\x94R`@\x90\x93 T\x91\x92\x90\x87\x16\x14\x15a7\xEBW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7FRegCoord._validateChurn: cannot `D\x82\x01Ri1\xB4:\xB97\x109\xB2\xB63`\xB1\x1B`d\x82\x01R`\x84\x01a\t\x08V[\x87`\xFF\x16\x84`\0\x01Q`\xFF\x16\x14a8jW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`<`$\x82\x01R\x7FRegCoord._validateChurn: quorumN`D\x82\x01R\x7Fumber not the same as signed\0\0\0\0`d\x82\x01R`\x84\x01a\t\x08V[`@QcT\x01\xED'`\xE0\x1B\x81R`\x04\x81\x01\x82\x90R`\xFF\x89\x16`$\x82\x01R`\0\x90\x7F\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\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x90cT\x01\xED'\x90`D\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a8\xDBW=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a8\xFF\x91\x90a]CV[\x90Pa9\x0B\x81\x85aEMV[`\x01`\x01``\x1B\x03\x16\x86`\x01`\x01``\x1B\x03\x16\x11a9\xA5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`K`$\x82\x01R\x7FRegCoord._validateChurn: incomin`D\x82\x01R\x7Fg operator has insufficient stak`d\x82\x01Rj2\x9037\xB9\x101\xB4:\xB97`\xA9\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[a9\xAF\x88\x85aEqV[`\x01`\x01``\x1B\x03\x16\x81`\x01`\x01``\x1B\x03\x16\x10a \xF4W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`Q`$\x82\x01R\x7FRegCoord._validateChurn: cannot `D\x82\x01R\x7Fkick operator with more than kic`d\x82\x01RpkBIPsOfTotalStake`x\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[`\0\x81\x81R`\x98` R`@\x81 T\x81[\x81\x81\x10\x15a:\xE1W`\x01a:t\x82\x84aY9V[a:~\x91\x90aY9V[\x92P\x84c\xFF\xFF\xFF\xFF\x16`\x98`\0\x86\x81R` \x01\x90\x81R` \x01`\0 \x84c\xFF\xFF\xFF\xFF\x16\x81T\x81\x10a:\xB1Wa:\xB1aV\xD8V[`\0\x91\x82R` \x90\x91 \x01Tc\xFF\xFF\xFF\xFF\x16\x11a:\xCFWPPa\x0F\x04V[\x80a:\xD9\x81aW\x04V[\x91PPa:`V[P`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`^`$\x82\x01R\x7FRegCoord.getQuorumBitmapIndexAtB`D\x82\x01R\x7FlockNumber: no bitmap update fou`d\x82\x01R\x7Fnd for operator at blockNumber\0\0`\x84\x82\x01R`\xA4\x01a\t\x08V[`\x96T`\xFF\x16`\xC0\x81\x10a;\xDFW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7FRegCoord.createQuorum: max quoru`D\x82\x01Ri\x1B\\\xC8\x1C\x99XX\xDA\x19Y`\xB2\x1B`d\x82\x01R`\x84\x01a\t\x08V[a;\xEA\x81`\x01a]`V[`\x96\x80T`\xFF\x19\x16`\xFF\x92\x90\x92\x16\x91\x90\x91\x17\x90U\x80a<\t\x81\x86a)\xC1V[`@Q`\x01b\x96\xB5\x89`\xE0\x1B\x03\x19\x81R`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x90c\xFFiJw\x90a<\\\x90\x84\x90\x88\x90\x88\x90`\x04\x01a]\x85V[`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a<vW`\0\x80\xFD[PZ\xF1\x15\x80\x15a<\x8AW=`\0\x80>=`\0\xFD[PP`@Qc\x13l\xA0\xF9`\xE1\x1B\x81R`\xFF\x84\x16`\x04\x82\x01R\x7F\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\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x92Pc&\xD9A\xF2\x91P`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a<\xF2W`\0\x80\xFD[PZ\xF1\x15\x80\x15a=\x06W=`\0\x80>=`\0\xFD[PP`@Qc\x13l\xA0\xF9`\xE1\x1B\x81R`\xFF\x84\x16`\x04\x82\x01R\x7F\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\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x92Pc&\xD9A\xF2\x91P`$\x01`\0`@Q\x80\x83\x03\x81`\0\x87\x80;\x15\x80\x15a=nW`\0\x80\xFD[PZ\xF1\x15\x80\x15a \xF4W=`\0\x80>=`\0\xFD[`\0Tb\x01\0\0\x90\x04`\x01`\x01`\xA0\x1B\x03\x16\x15\x80\x15a=\xA9WP`\x01`\x01`\xA0\x1B\x03\x82\x16\x15\x15[a>+W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`G`$\x82\x01R\x7FPausable._initializePauser: _ini`D\x82\x01R\x7FtializePauser() can only be call`d\x82\x01Rfed once`\xC8\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[`\x01\x81\x90U`@Q\x81\x81R3\x90\x7F\xAB@\xA3t\xBCQ\xDE7\"\0\xA8\xBC\x98\x1A\xF8\xC9\xEC\xDC\x08\xDF\xDA\xEF\x0B\xB6\xE0\x9F\x88\xF3\xC6\x16\xEF=\x90` \x01`@Q\x80\x91\x03\x90\xA2a>n\x82a&\x0EV[PPV[`\0\x80[\x82\x15a\x0F\x04Wa>\x87`\x01\x84aY9V[\x90\x92\x16\x91\x80a>\x95\x81a]\xFEV[\x91PPa>vV[`\x000`\x01`\x01`\xA0\x1B\x03\x7F\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\0\0\0\0\x16\x14\x80\x15a>\xF6WP\x7F\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\0\0\0\0F\x14[\x15a? WP\x7F\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\0\0\0\0\x90V[P`@\x80Q\x7F\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\0\0\0\0` \x80\x83\x01\x91\x90\x91R\x7F\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\0\0\0\0\x82\x84\x01R\x7F\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\0\0\0\0``\x83\x01RF`\x80\x83\x01R0`\xA0\x80\x84\x01\x91\x90\x91R\x83Q\x80\x84\x03\x90\x91\x01\x81R`\xC0\x90\x92\x01\x90\x92R\x80Q\x91\x01 \x90V[`\0\x80\x80`\0\x80Q` a^\xA0\x839\x81Q\x91R`\x03`\0\x80Q` a^\xA0\x839\x81Q\x91R\x86`\0\x80Q` a^\xA0\x839\x81Q\x91R\x88\x89\t\t\x08\x90P`\0a@:\x82\x7F\x0C\x19\x13\x9C\xB8Lh\nn\x14\x11m\xA0`V\x17e\xE0Z\xA4Z\x1Cr\xA3O\x08#\x05\xB6\x1F?R`\0\x80Q` a^\xA0\x839\x81Q\x91RaE\x8BV[\x91\x95\x91\x94P\x90\x92PPPV[`\0a\x01\0\x82Q\x11\x15a@\xCFW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`D`$\x82\x01\x81\x90R\x7FBitmapUtils.orderedBytesArrayToB\x90\x82\x01R\x7Fitmap: orderedBytesArray is too `d\x82\x01Rclong`\xE0\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[\x81Qa@\xDDWP`\0\x91\x90PV[`\0\x80\x83`\0\x81Q\x81\x10a@\xF3Wa@\xF3aV\xD8V[\x01` \x01Q`\x01`\xF8\x91\x90\x91\x1C\x81\x90\x1B\x92P[\x84Q\x81\x10\x15aA\xCAW\x84\x81\x81Q\x81\x10aA!WaA!aV\xD8V[\x01` \x01Q`\x01`\xF8\x91\x90\x91\x1C\x1B\x91P\x82\x82\x11aA\xB6W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`G`$\x82\x01R\x7FBitmapUtils.orderedBytesArrayToB`D\x82\x01R\x7Fitmap: orderedBytesArray is not `d\x82\x01Rf\x1B\xDC\x99\x19\\\x99Y`\xCA\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[\x91\x81\x17\x91aA\xC3\x81aW\x04V[\x90PaA\x06V[P\x90\x93\x92PPPV[`\0\x82\x81R`\x98` R`@\x90 T\x80aBxW`\0\x83\x81R`\x98` \x90\x81R`@\x80\x83 \x81Q``\x81\x01\x83Rc\xFF\xFF\xFF\xFFC\x81\x16\x82R\x81\x85\x01\x86\x81R`\x01`\x01`\xC0\x1B\x03\x80\x8A\x16\x95\x84\x01\x95\x86R\x84T`\x01\x81\x01\x86U\x94\x88R\x95\x90\x96 \x91Q\x91\x90\x92\x01\x80T\x95Q\x93Q\x90\x94\x16`\x01`@\x1B\x02`\x01`\x01`@\x1B\x03\x93\x83\x16`\x01` \x1B\x02g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x90\x96\x16\x91\x90\x92\x16\x17\x93\x90\x93\x17\x16\x91\x90\x91\x17\x90UPPPV[`\0\x83\x81R`\x98` R`@\x81 aB\x91`\x01\x84aY9V[\x81T\x81\x10aB\xA1WaB\xA1aV\xD8V[`\0\x91\x82R` \x90\x91 \x01\x80T\x90\x91PCc\xFF\xFF\xFF\xFF\x90\x81\x16\x91\x16\x14\x15aB\xE5W\x80T`\x01`\x01`@\x1B\x03\x16`\x01`@\x1B`\x01`\x01`\xC0\x1B\x03\x85\x16\x02\x17\x81Ua\t\xEFV[\x80Tc\xFF\xFF\xFF\xFFC\x81\x16`\x01` \x1B\x81\x81\x02g\xFF\xFF\xFF\xFF\0\0\0\0\x19\x90\x94\x16\x93\x90\x93\x17\x84U`\0\x87\x81R`\x98` \x90\x81R`@\x80\x83 \x81Q``\x81\x01\x83R\x94\x85R\x84\x83\x01\x84\x81R`\x01`\x01`\xC0\x1B\x03\x80\x8C\x16\x93\x87\x01\x93\x84R\x82T`\x01\x81\x01\x84U\x92\x86R\x93\x90\x94 \x94Q\x94\x01\x80T\x93Q\x91Q\x90\x92\x16`\x01`@\x1B\x02`\x01`\x01`@\x1B\x03\x91\x86\x16\x90\x96\x02g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x19\x90\x93\x16\x93\x90\x94\x16\x92\x90\x92\x17\x17\x91\x90\x91\x16\x91\x90\x91\x17\x90UPPPPV[`\x01`\x01`\xA0\x1B\x03\x83\x16;\x15aD\xADW`@Qc\x0B\x13]?`\xE1\x1B\x80\x82R\x90`\x01`\x01`\xA0\x1B\x03\x85\x16\x90c\x16&\xBA~\x90aC\xD3\x90\x86\x90\x86\x90`\x04\x01aY\xF6V[` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15aC\xF0W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90aD\x14\x91\x90a^ V[`\x01`\x01`\xE0\x1B\x03\x19\x16\x14a\x16lW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`S`$\x82\x01R\x7FEIP1271SignatureUtils.checkSigna`D\x82\x01R\x7Fture_EIP1271: ERC1271 signature `d\x82\x01Rr\x1D\x99\\\x9AY\x9AX\xD8]\x1A[\xDB\x88\x19\x98Z[\x19Y`j\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[\x82`\x01`\x01`\xA0\x1B\x03\x16aD\xC1\x83\x83aF:V[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x16lW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`G`$\x82\x01R\x7FEIP1271SignatureUtils.checkSigna`D\x82\x01R\x7Fture_EIP1271: signature not from`d\x82\x01Rf\x109\xB4\xB3\xB72\xB9`\xC9\x1B`\x84\x82\x01R`\xA4\x01a\t\x08V[` \x81\x01Q`\0\x90a'\x10\x90aEg\x90a\xFF\xFF\x16\x85a^JV[a)M\x91\x90a^yV[`@\x81\x01Q`\0\x90a'\x10\x90aEg\x90a\xFF\xFF\x16\x85a^JV[`\0\x80aE\x96aI\xA7V[aE\x9EaI\xC5V[` \x80\x82R\x81\x81\x01\x81\x90R`@\x82\x01\x81\x90R``\x82\x01\x88\x90R`\x80\x82\x01\x87\x90R`\xA0\x82\x01\x86\x90R\x82`\xC0\x83`\x05a\x07\xD0Z\x03\xFA\x92P\x82\x80\x15aE\xDFWaE\xE1V[\xFE[P\x82aF/W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1A`$\x82\x01R\x7FBN254.expMod: call failure\0\0\0\0\0\0`D\x82\x01R`d\x01a\t\x08V[PQ\x95\x94PPPPPV[`\0\x80`\0aFI\x85\x85aFVV[\x91P\x91Pa\x1D\x84\x81aF\xC6V[`\0\x80\x82Q`A\x14\x15aF\x8DW` \x83\x01Q`@\x84\x01Q``\x85\x01Q`\0\x1AaF\x81\x87\x82\x85\x85aH\x81V[\x94P\x94PPPPaF\xBFV[\x82Q`@\x14\x15aF\xB7W` \x83\x01Q`@\x84\x01QaF\xAC\x86\x83\x83aInV[\x93P\x93PPPaF\xBFV[P`\0\x90P`\x02[\x92P\x92\x90PV[`\0\x81`\x04\x81\x11\x15aF\xDAWaF\xDAaMUV[\x14\x15aF\xE3WPV[`\x01\x81`\x04\x81\x11\x15aF\xF7WaF\xF7aMUV[\x14\x15aGEW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x18`$\x82\x01R\x7FECDSA: invalid signature\0\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\t\x08V[`\x02\x81`\x04\x81\x11\x15aGYWaGYaMUV[\x14\x15aG\xA7W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FECDSA: invalid signature length\0`D\x82\x01R`d\x01a\t\x08V[`\x03\x81`\x04\x81\x11\x15aG\xBBWaG\xBBaMUV[\x14\x15aH\x14W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FECDSA: invalid signature 's' val`D\x82\x01Raue`\xF0\x1B`d\x82\x01R`\x84\x01a\t\x08V[`\x04\x81`\x04\x81\x11\x15aH(WaH(aMUV[\x14\x15a\x0CuW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\"`$\x82\x01R\x7FECDSA: invalid signature 'v' val`D\x82\x01Raue`\xF0\x1B`d\x82\x01R`\x84\x01a\t\x08V[`\0\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\x15aH\xB8WP`\0\x90P`\x03aIeV[\x84`\xFF\x16`\x1B\x14\x15\x80\x15aH\xD0WP\x84`\xFF\x16`\x1C\x14\x15[\x15aH\xE1WP`\0\x90P`\x04aIeV[`@\x80Q`\0\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\x15aI5W=`\0\x80>=`\0\xFD[PP`@Q`\x1F\x19\x01Q\x91PP`\x01`\x01`\xA0\x1B\x03\x81\x16aI^W`\0`\x01\x92P\x92PPaIeV[\x91P`\0\x90P[\x94P\x94\x92PPPV[`\0\x80`\x01`\x01`\xFF\x1B\x03\x83\x16\x81aI\x8B`\xFF\x86\x90\x1C`\x1BaXVV[\x90PaI\x99\x87\x82\x88\x85aH\x81V[\x93P\x93PPP\x93P\x93\x91PPV[`@Q\x80` \x01`@R\x80`\x01\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`@Q\x80`\xC0\x01`@R\x80`\x06\x90` \x82\x02\x806\x837P\x91\x92\x91PPV[`\0\x80\x83`\x1F\x84\x01\x12aI\xF5W`\0\x80\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aJ\x0CW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x05\x1B\x85\x01\x01\x11\x15aF\xBFW`\0\x80\xFD[`\0\x80` \x83\x85\x03\x12\x15aJ:W`\0\x80\xFD[\x825`\x01`\x01`@\x1B\x03\x81\x11\x15aJPW`\0\x80\xFD[aJ\\\x85\x82\x86\x01aI\xE3V[\x90\x96\x90\x95P\x93PPPPV[`\0` \x82\x84\x03\x12\x15aJzW`\0\x80\xFD[P5\x91\x90PV[c\xFF\xFF\xFF\xFF\x81\x16\x81\x14a\x0CuW`\0\x80\xFD[`\0\x80`\0``\x84\x86\x03\x12\x15aJ\xA8W`\0\x80\xFD[\x835\x92P` \x84\x015aJ\xBA\x81aJ\x81V[\x92\x95\x92\x94PPP`@\x91\x90\x91\x015\x90V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`@Q``\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15aK\x03WaK\x03aJ\xCBV[`@R\x90V[`@\x80Q\x90\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15aK\x03WaK\x03aJ\xCBV[`@Q`\x1F\x82\x01`\x1F\x19\x16\x81\x01`\x01`\x01`@\x1B\x03\x81\x11\x82\x82\x10\x17\x15aKSWaKSaJ\xCBV[`@R\x91\x90PV[`\0`\x01`\x01`@\x1B\x03\x83\x11\x15aKtWaKtaJ\xCBV[aK\x87`\x1F\x84\x01`\x1F\x19\x16` \x01aK+V[\x90P\x82\x81R\x83\x83\x83\x01\x11\x15aK\x9BW`\0\x80\xFD[\x82\x82` \x83\x017`\0` \x84\x83\x01\x01R\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15aK\xC4W`\0\x80\xFD[\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aK\xDAW`\0\x80\xFD[\x82\x01`\x1F\x81\x01\x84\x13aK\xEBW`\0\x80\xFD[aK\xFA\x84\x825` \x84\x01aK[V[\x94\x93PPPPV[`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a\x0CuW`\0\x80\xFD[\x805aL\"\x81aL\x02V[\x91\x90PV[`\0` \x82\x84\x03\x12\x15aL9W`\0\x80\xFD[\x815a)M\x81aL\x02V[`\0\x80`@\x83\x85\x03\x12\x15aLWW`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[\x805`\xFF\x81\x16\x81\x14aL\"W`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aL\x89W`\0\x80\xFD[a)M\x82aLfV[\x81Q\x81R` \x80\x83\x01Q\x90\x82\x01R`@\x81\x01a\x0F\x04V[`\0\x80\x83`\x1F\x84\x01\x12aL\xBBW`\0\x80\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aL\xD2W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15aF\xBFW`\0\x80\xFD[`\0\x80`\0\x80`@\x85\x87\x03\x12\x15aM\0W`\0\x80\xFD[\x845`\x01`\x01`@\x1B\x03\x80\x82\x11\x15aM\x17W`\0\x80\xFD[aM#\x88\x83\x89\x01aI\xE3V[\x90\x96P\x94P` \x87\x015\x91P\x80\x82\x11\x15aM<W`\0\x80\xFD[PaMI\x87\x82\x88\x01aL\xA9V[\x95\x98\x94\x97P\x95PPPPV[cNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[`\x03\x81\x10aM\x89WcNH{q`\xE0\x1B`\0R`!`\x04R`$`\0\xFD[\x90RV[\x81Q\x81R` \x80\x83\x01Q`@\x83\x01\x91aM\xA8\x90\x84\x01\x82aMkV[P\x92\x91PPV[\x805a\xFF\xFF\x81\x16\x81\x14aL\"W`\0\x80\xFD[`\0``\x82\x84\x03\x12\x15aM\xD3W`\0\x80\xFD[aM\xDBaJ\xE1V[\x90P\x815aM\xE8\x81aJ\x81V[\x81RaM\xF6` \x83\x01aM\xAFV[` \x82\x01RaN\x07`@\x83\x01aM\xAFV[`@\x82\x01R\x92\x91PPV[`\0\x80`\x80\x83\x85\x03\x12\x15aN%W`\0\x80\xFD[aN.\x83aLfV[\x91PaN=\x84` \x85\x01aM\xC1V[\x90P\x92P\x92\x90PV[`\0\x80`\0`@\x84\x86\x03\x12\x15aN[W`\0\x80\xFD[\x835aNf\x81aL\x02V[\x92P` \x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aN\x81W`\0\x80\xFD[aN\x8D\x86\x82\x87\x01aL\xA9V[\x94\x97\x90\x96P\x93\x94PPPPV[`\0`\x01`\x01`@\x1B\x03\x82\x11\x15aN\xB3WaN\xB3aJ\xCBV[P`\x05\x1B` \x01\x90V[`\0`@\x82\x84\x03\x12\x15aN\xCFW`\0\x80\xFD[aN\xD7aK\tV[\x90PaN\xE2\x82aLfV[\x81R` \x82\x015aN\xF2\x81aL\x02V[` \x82\x01R\x92\x91PPV[`\0\x80`\0\x80`\0`\xA0\x86\x88\x03\x12\x15aO\x15W`\0\x80\xFD[\x855aO \x81aL\x02V[\x94P` \x86\x81\x015\x94P`@\x80\x88\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aODW`\0\x80\xFD[\x88\x01`\x1F\x81\x01\x8A\x13aOUW`\0\x80\xFD[\x805aOhaOc\x82aN\x9AV[aK+V[\x81\x81R`\x06\x91\x90\x91\x1B\x82\x01\x84\x01\x90\x84\x81\x01\x90\x8C\x83\x11\x15aO\x87W`\0\x80\xFD[\x92\x85\x01\x92[\x82\x84\x10\x15aO\xADWaO\x9E\x8D\x85aN\xBDV[\x82R\x92\x84\x01\x92\x90\x85\x01\x90aO\x8CV[\x99\x9C\x98\x9BP\x98\x99``\x81\x015\x99P`\x80\x015\x97\x96PPPPPPPV[`\0a\x01\0\x82\x84\x03\x12\x15aO\xDDW`\0\x80\xFD[P\x91\x90PV[`\0\x80\x83`\x1F\x84\x01\x12aO\xF5W`\0\x80\xFD[P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aP\x0CW`\0\x80\xFD[` \x83\x01\x91P\x83` \x82`\x06\x1B\x85\x01\x01\x11\x15aF\xBFW`\0\x80\xFD[`\0``\x82\x84\x03\x12\x15aP9W`\0\x80\xFD[aPAaJ\xE1V[\x90P\x815`\x01`\x01`@\x1B\x03\x81\x11\x15aPYW`\0\x80\xFD[\x82\x01`\x1F\x81\x01\x84\x13aPjW`\0\x80\xFD[aPy\x84\x825` \x84\x01aK[V[\x82RP` \x82\x015` \x82\x01R`@\x82\x015`@\x82\x01R\x92\x91PPV[`\0\x80`\0\x80`\0\x80`\0\x80`\0a\x01\xA0\x8A\x8C\x03\x12\x15aP\xB5W`\0\x80\xFD[\x895`\x01`\x01`@\x1B\x03\x80\x82\x11\x15aP\xCCW`\0\x80\xFD[aP\xD8\x8D\x83\x8E\x01aL\xA9V[\x90\x9BP\x99P` \x8C\x015\x91P\x80\x82\x11\x15aP\xF1W`\0\x80\xFD[aP\xFD\x8D\x83\x8E\x01aL\xA9V[\x90\x99P\x97P\x87\x91PaQ\x12\x8D`@\x8E\x01aO\xCAV[\x96Pa\x01@\x8C\x015\x91P\x80\x82\x11\x15aQ)W`\0\x80\xFD[aQ5\x8D\x83\x8E\x01aO\xE3V[\x90\x96P\x94Pa\x01`\x8C\x015\x91P\x80\x82\x11\x15aQOW`\0\x80\xFD[aQ[\x8D\x83\x8E\x01aP'V[\x93Pa\x01\x80\x8C\x015\x91P\x80\x82\x11\x15aQrW`\0\x80\xFD[PaQ\x7F\x8C\x82\x8D\x01aP'V[\x91PP\x92\x95\x98P\x92\x95\x98P\x92\x95\x98V[`\0\x80`\0\x80`\0\x80a\x01`\x87\x89\x03\x12\x15aQ\xA9W`\0\x80\xFD[\x865`\x01`\x01`@\x1B\x03\x80\x82\x11\x15aQ\xC0W`\0\x80\xFD[aQ\xCC\x8A\x83\x8B\x01aL\xA9V[\x90\x98P\x96P` \x89\x015\x91P\x80\x82\x11\x15aQ\xE5W`\0\x80\xFD[aQ\xF1\x8A\x83\x8B\x01aL\xA9V[\x90\x96P\x94P\x84\x91PaR\x06\x8A`@\x8B\x01aO\xCAV[\x93Pa\x01@\x89\x015\x91P\x80\x82\x11\x15aR\x1DW`\0\x80\xFD[PaR*\x89\x82\x8A\x01aP'V[\x91PP\x92\x95P\x92\x95P\x92\x95V[`\0\x80`@\x83\x85\x03\x12\x15aRJW`\0\x80\xFD[\x825aRU\x81aJ\x81V[\x91P` \x83\x81\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aRqW`\0\x80\xFD[\x84\x01`\x1F\x81\x01\x86\x13aR\x82W`\0\x80\xFD[\x805aR\x90aOc\x82aN\x9AV[\x81\x81R`\x05\x91\x90\x91\x1B\x82\x01\x83\x01\x90\x83\x81\x01\x90\x88\x83\x11\x15aR\xAFW`\0\x80\xFD[\x92\x84\x01\x92[\x82\x84\x10\x15aR\xCDW\x835\x82R\x92\x84\x01\x92\x90\x84\x01\x90aR\xB4V[\x80\x95PPPPPP\x92P\x92\x90PV[` \x80\x82R\x82Q\x82\x82\x01\x81\x90R`\0\x91\x90\x84\x82\x01\x90`@\x85\x01\x90\x84[\x81\x81\x10\x15aS\x1AW\x83Qc\xFF\xFF\xFF\xFF\x16\x83R\x92\x84\x01\x92\x91\x84\x01\x91`\x01\x01aR\xF8V[P\x90\x96\x95PPPPPPV[`\0\x80` \x83\x85\x03\x12\x15aS9W`\0\x80\xFD[\x825`\x01`\x01`@\x1B\x03\x81\x11\x15aSOW`\0\x80\xFD[aJ\\\x85\x82\x86\x01aL\xA9V[`\x01`\x01``\x1B\x03\x81\x16\x81\x14a\x0CuW`\0\x80\xFD[`\0\x82`\x1F\x83\x01\x12aS\x81W`\0\x80\xFD[\x815` aS\x91aOc\x83aN\x9AV[\x82\x81R`\x06\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x86\x84\x11\x15aS\xB0W`\0\x80\xFD[\x82\x86\x01[\x84\x81\x10\x15aT\x01W`@\x81\x89\x03\x12\x15aS\xCDW`\0\x80\x81\xFD[aS\xD5aK\tV[\x815aS\xE0\x81aL\x02V[\x81R\x81\x85\x015aS\xEF\x81aS[V[\x81\x86\x01R\x83R\x91\x83\x01\x91`@\x01aS\xB4V[P\x96\x95PPPPPPV[`\0\x80`\0`\xA0\x84\x86\x03\x12\x15aT!W`\0\x80\xFD[aT+\x85\x85aM\xC1V[\x92P``\x84\x015aT;\x81aS[V[\x91P`\x80\x84\x015`\x01`\x01`@\x1B\x03\x81\x11\x15aTVW`\0\x80\xFD[aTb\x86\x82\x87\x01aSpV[\x91PP\x92P\x92P\x92V[`\0\x82`\x1F\x83\x01\x12aT}W`\0\x80\xFD[\x815` aT\x8DaOc\x83aN\x9AV[\x82\x81R``\x92\x83\x02\x85\x01\x82\x01\x92\x82\x82\x01\x91\x90\x87\x85\x11\x15aT\xACW`\0\x80\xFD[\x83\x87\x01[\x85\x81\x10\x15aT\xCFWaT\xC2\x89\x82aM\xC1V[\x84R\x92\x84\x01\x92\x81\x01aT\xB0V[P\x90\x97\x96PPPPPPPV[`\0\x82`\x1F\x83\x01\x12aT\xEDW`\0\x80\xFD[\x815` aT\xFDaOc\x83aN\x9AV[\x82\x81R`\x05\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x86\x84\x11\x15aU\x1CW`\0\x80\xFD[\x82\x86\x01[\x84\x81\x10\x15aT\x01W\x805aU3\x81aS[V[\x83R\x91\x83\x01\x91\x83\x01aU V[`\0\x82`\x1F\x83\x01\x12aUQW`\0\x80\xFD[\x815` aUaaOc\x83aN\x9AV[\x82\x81R`\x05\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x86\x84\x11\x15aU\x80W`\0\x80\xFD[\x82\x86\x01[\x84\x81\x10\x15aT\x01W\x805`\x01`\x01`@\x1B\x03\x81\x11\x15aU\xA3W`\0\x80\x81\xFD[aU\xB1\x89\x86\x83\x8B\x01\x01aSpV[\x84RP\x91\x83\x01\x91\x83\x01aU\x84V[`\0\x80`\0\x80`\0\x80`\0\x80a\x01\0\x89\x8B\x03\x12\x15aU\xDCW`\0\x80\xFD[aU\xE5\x89aL\x17V[\x97PaU\xF3` \x8A\x01aL\x17V[\x96PaV\x01`@\x8A\x01aL\x17V[\x95PaV\x0F``\x8A\x01aL\x17V[\x94P`\x80\x89\x015\x93P`\xA0\x89\x015`\x01`\x01`@\x1B\x03\x80\x82\x11\x15aV2W`\0\x80\xFD[aV>\x8C\x83\x8D\x01aTlV[\x94P`\xC0\x8B\x015\x91P\x80\x82\x11\x15aVTW`\0\x80\xFD[aV`\x8C\x83\x8D\x01aT\xDCV[\x93P`\xE0\x8B\x015\x91P\x80\x82\x11\x15aVvW`\0\x80\xFD[PaV\x83\x8B\x82\x8C\x01aU@V[\x91PP\x92\x95\x98P\x92\x95\x98\x90\x93\x96PV[` \x81\x01a\x0F\x04\x82\x84aMkV[` \x80\x82R`\x19\x90\x82\x01R\x7FPausable: index is paused\0\0\0\0\0\0\0`@\x82\x01R``\x01\x90V[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0`\0\x19\x82\x14\x15aW\x18WaW\x18aV\xEEV[P`\x01\x01\x90V[`\0` \x82\x84\x03\x12\x15aW1W`\0\x80\xFD[\x81Qa)M\x81aL\x02V[` \x80\x82R`*\x90\x82\x01R\x7Fmsg.sender is not permissioned a`@\x82\x01Ri9\x90:\xB780\xBA\xB9\xB2\xB9`\xB1\x1B``\x82\x01R`\x80\x01\x90V[`\0` \x82\x84\x03\x12\x15aW\x98W`\0\x80\xFD[\x81Q\x80\x15\x15\x81\x14a)MW`\0\x80\xFD[` \x80\x82R`(\x90\x82\x01R\x7Fmsg.sender is not permissioned a`@\x82\x01Rg9\x9080\xBA\xB9\xB2\xB9`\xC1\x1B``\x82\x01R`\x80\x01\x90V[`\0\x80\x835`\x1E\x19\x846\x03\x01\x81\x12aX\x07W`\0\x80\xFD[\x83\x01\x805\x91P`\x01`\x01`@\x1B\x03\x82\x11\x15aX!W`\0\x80\xFD[` \x01\x91P`\x05\x81\x90\x1B6\x03\x82\x13\x15aF\xBFW`\0\x80\xFD[`\0` \x82\x84\x03\x12\x15aXKW`\0\x80\xFD[\x81Qa)M\x81aJ\x81V[`\0\x82\x19\x82\x11\x15aXiWaXiaV\xEEV[P\x01\x90V[`\0\x80\x85\x85\x11\x15aX~W`\0\x80\xFD[\x83\x86\x11\x15aX\x8BW`\0\x80\xFD[PP\x82\x01\x93\x91\x90\x92\x03\x91PV[`\0`\xC0\x82\x01\x88\x83R` `\x01\x80`\xA0\x1B\x03\x80\x8A\x16\x82\x86\x01R`@\x89\x81\x87\x01R`\xC0``\x87\x01R\x83\x89Q\x80\x86R`\xE0\x88\x01\x91P\x84\x8B\x01\x95P`\0[\x81\x81\x10\x15aX\xFDW\x86Q\x80Q`\xFF\x16\x84R\x86\x01Q\x85\x16\x86\x84\x01R\x95\x85\x01\x95\x91\x83\x01\x91`\x01\x01aX\xD3V[PP`\x80\x87\x01\x98\x90\x98RPPPP`\xA0\x90\x91\x01\x91\x90\x91RP\x94\x93PPPPV[`\0`@\x82\x84\x03\x12\x15aY/W`\0\x80\xFD[a)M\x83\x83aN\xBDV[`\0\x82\x82\x10\x15aYKWaYKaV\xEEV[P\x03\x90V[`\0\x81Q\x80\x84R`\0[\x81\x81\x10\x15aYvW` \x81\x85\x01\x81\x01Q\x86\x83\x01\x82\x01R\x01aYZV[\x81\x81\x11\x15aY\x88W`\0` \x83\x87\x01\x01R[P`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[`\x01\x80`\xA0\x1B\x03\x84\x16\x81R\x82` \x82\x01R```@\x82\x01R`\0aY\xC4``\x83\x01\x84aYPV[\x95\x94PPPPPV[`\0` \x82\x84\x03\x12\x15aY\xDFW`\0\x80\xFD[\x81Q`\x01`\x01`\xC0\x1B\x03\x81\x16\x81\x14a)MW`\0\x80\xFD[\x82\x81R`@` \x82\x01R`\0aK\xFA`@\x83\x01\x84aYPV[` \x81R`\0a)M` \x83\x01\x84aYPV[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`\0\x82aZGWaZGaZ\"V[P\x06\x90V[`\x01`\x01`\xA0\x1B\x03\x83\x16\x81R`@` \x82\x01\x81\x90R`\0\x90aK\xFA\x90\x83\x01\x84aYPV[`\0` \x82\x84\x03\x12\x15aZ\x82W`\0\x80\xFD[PQ\x91\x90PV[`\x01`\x01`\xA0\x1B\x03\x84\x16\x81Ra\x01`\x81\x01aZ\xB1` \x83\x01\x85\x805\x82R` \x90\x81\x015\x91\x01RV[aZ\xCB``\x83\x01`@\x86\x01\x805\x82R` \x90\x81\x015\x91\x01RV[`@`\x80\x85\x01`\xA0\x84\x017`\xE0\x82\x01`\0\x81R`@`\xC0\x86\x01\x827P`\0a\x01 \x83\x01\x90\x81R\x83Q\x90R` \x90\x92\x01Qa\x01@\x90\x91\x01R\x92\x91PPV[`\x01\x80`\xA0\x1B\x03\x83\x16\x81R`@` \x82\x01R`\0\x82Q```@\x84\x01Ra[2`\xA0\x84\x01\x82aYPV[\x90P` \x84\x01Q``\x84\x01R`@\x84\x01Q`\x80\x84\x01R\x80\x91PP\x93\x92PPPV[\x81\x83R\x81\x81` \x85\x017P`\0\x82\x82\x01` \x90\x81\x01\x91\x90\x91R`\x1F\x90\x91\x01`\x1F\x19\x16\x90\x91\x01\x01\x90V[`\x01`\x01`\xA0\x1B\x03\x84\x16\x81R`@` \x82\x01\x81\x90R`\0\x90aY\xC4\x90\x83\x01\x84\x86a[SV[`\x01\x80`\xA0\x1B\x03\x85\x16\x81R\x83` \x82\x01R```@\x82\x01R`\0a\x18\x05``\x83\x01\x84\x86a[SV[`\0\x82`\x1F\x83\x01\x12a[\xDAW`\0\x80\xFD[\x81Q` a[\xEAaOc\x83aN\x9AV[\x82\x81R`\x05\x92\x90\x92\x1B\x84\x01\x81\x01\x91\x81\x81\x01\x90\x86\x84\x11\x15a\\\tW`\0\x80\xFD[\x82\x86\x01[\x84\x81\x10\x15aT\x01W\x80Qa\\ \x81aS[V[\x83R\x91\x83\x01\x91\x83\x01a\\\rV[`\0\x80`@\x83\x85\x03\x12\x15a\\@W`\0\x80\xFD[\x82Q`\x01`\x01`@\x1B\x03\x80\x82\x11\x15a\\WW`\0\x80\xFD[a\\c\x86\x83\x87\x01a[\xC9V[\x93P` \x85\x01Q\x91P\x80\x82\x11\x15a\\yW`\0\x80\xFD[Pa\\\x86\x85\x82\x86\x01a[\xC9V[\x91PP\x92P\x92\x90PV[\x83\x81R`@` \x82\x01R`\0aY\xC4`@\x83\x01\x84\x86a[SV[`\0` \x80\x83\x85\x03\x12\x15a\\\xBDW`\0\x80\xFD[\x82Q`\x01`\x01`@\x1B\x03\x81\x11\x15a\\\xD3W`\0\x80\xFD[\x83\x01`\x1F\x81\x01\x85\x13a\\\xE4W`\0\x80\xFD[\x80Qa\\\xF2aOc\x82aN\x9AV[\x81\x81R`\x05\x91\x90\x91\x1B\x82\x01\x83\x01\x90\x83\x81\x01\x90\x87\x83\x11\x15a]\x11W`\0\x80\xFD[\x92\x84\x01\x92[\x82\x84\x10\x15a]8W\x83Qa])\x81aJ\x81V[\x82R\x92\x84\x01\x92\x90\x84\x01\x90a]\x16V[\x97\x96PPPPPPPV[`\0` \x82\x84\x03\x12\x15a]UW`\0\x80\xFD[\x81Qa)M\x81aS[V[`\0`\xFF\x82\x16`\xFF\x84\x16\x80`\xFF\x03\x82\x11\x15a]}Wa]}aV\xEEV[\x01\x93\x92PPPV[`\0``\x82\x01`\xFF\x86\x16\x83R` `\x01`\x01``\x1B\x03\x80\x87\x16\x82\x86\x01R`@``\x81\x87\x01R\x83\x87Q\x80\x86R`\x80\x88\x01\x91P\x84\x89\x01\x95P`\0[\x81\x81\x10\x15a]\xEEW\x86Q\x80Q`\x01`\x01`\xA0\x1B\x03\x16\x84R\x86\x01Q\x85\x16\x86\x84\x01R\x95\x85\x01\x95\x91\x83\x01\x91`\x01\x01a]\xBEV[P\x90\x9A\x99PPPPPPPPPPV[`\0a\xFF\xFF\x80\x83\x16\x81\x81\x14\x15a^\x16Wa^\x16aV\xEEV[`\x01\x01\x93\x92PPPV[`\0` \x82\x84\x03\x12\x15a^2W`\0\x80\xFD[\x81Q`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x14a)MW`\0\x80\xFD[`\0`\x01`\x01``\x1B\x03\x80\x83\x16\x81\x85\x16\x81\x83\x04\x81\x11\x82\x15\x15\x16\x15a^pWa^paV\xEEV[\x02\x94\x93PPPPV[`\0`\x01`\x01``\x1B\x03\x80\x84\x16\x80a^\x93Wa^\x93aZ\"V[\x92\x16\x91\x90\x91\x04\x92\x91PPV\xFE0dNr\xE11\xA0)\xB8PE\xB6\x81\x81X]\x97\x81j\x91hq\xCA\x8D< \x8C\x16\xD8|\xFDGRegCoord.updateOperatorsForQuoru\xA2dipfsX\"\x12 0q\x87\xE7\x95\x82\xC0\x06c'y\xF3\xF2*\xAE7p):\xB4d\xD3T\x842f$\xB9&\xC8n\xAAdsolcC\0\x08\x0C\x003",
);
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `ChurnApproverUpdated(address,address)` and selector `0x315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c`.
```solidity
event ChurnApproverUpdated(address prevChurnApprover, address newChurnApprover);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct ChurnApproverUpdated {
#[allow(missing_docs)]
pub prevChurnApprover: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub newChurnApprover: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[automatically_derived]
impl alloy_sol_types::SolEvent for ChurnApproverUpdated {
type DataTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
);
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
const SIGNATURE: &'static str = "ChurnApproverUpdated(address,address)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
49u8, 84u8, 87u8, 216u8, 168u8, 254u8, 96u8, 240u8, 74u8, 241u8, 124u8, 22u8,
226u8, 245u8, 165u8, 225u8, 219u8, 97u8, 43u8, 49u8, 100u8, 142u8, 88u8, 3u8,
3u8, 96u8, 117u8, 158u8, 248u8, 243u8, 82u8, 140u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
prevChurnApprover: data.0,
newChurnApprover: data.1,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.prevChurnApprover,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.newChurnApprover,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(Self::SIGNATURE_HASH.into(),)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for ChurnApproverUpdated {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&ChurnApproverUpdated> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &ChurnApproverUpdated) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `EjectorUpdated(address,address)` and selector `0x8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9`.
```solidity
event EjectorUpdated(address prevEjector, address newEjector);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct EjectorUpdated {
#[allow(missing_docs)]
pub prevEjector: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub newEjector: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[automatically_derived]
impl alloy_sol_types::SolEvent for EjectorUpdated {
type DataTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
);
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
const SIGNATURE: &'static str = "EjectorUpdated(address,address)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
143u8, 48u8, 171u8, 9u8, 244u8, 58u8, 108u8, 21u8, 125u8, 127u8, 206u8, 126u8,
10u8, 19u8, 192u8, 3u8, 4u8, 44u8, 28u8, 149u8, 232u8, 167u8, 46u8, 122u8,
20u8, 106u8, 33u8, 192u8, 202u8, 162u8, 77u8, 201u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
prevEjector: data.0,
newEjector: data.1,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.prevEjector,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.newEjector,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(Self::SIGNATURE_HASH.into(),)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for EjectorUpdated {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&EjectorUpdated> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &EjectorUpdated) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `Initialized(uint8)` and selector `0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498`.
```solidity
event Initialized(uint8 version);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct Initialized {
#[allow(missing_docs)]
pub version: u8,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[automatically_derived]
impl alloy_sol_types::SolEvent for Initialized {
type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,);
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
const SIGNATURE: &'static str = "Initialized(uint8)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, 19u8,
56u8, 82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, 146u8, 20u8,
96u8, 206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self { version: data.0 }
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<alloy::sol_types::sol_data::Uint<8> as alloy_sol_types::SolType>::tokenize(
&self.version,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(Self::SIGNATURE_HASH.into(),)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for Initialized {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&Initialized> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &Initialized) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `OperatorDeregistered(address,bytes32)` and selector `0x396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e4`.
```solidity
event OperatorDeregistered(address indexed operator, bytes32 indexed operatorId);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct OperatorDeregistered {
#[allow(missing_docs)]
pub operator: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub operatorId: alloy::sol_types::private::FixedBytes<32>,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[automatically_derived]
impl alloy_sol_types::SolEvent for OperatorDeregistered {
type DataTuple<'a> = ();
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (
alloy_sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::FixedBytes<32>,
);
const SIGNATURE: &'static str = "OperatorDeregistered(address,bytes32)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
57u8, 111u8, 220u8, 177u8, 128u8, 203u8, 15u8, 234u8, 38u8, 146u8, 129u8, 19u8,
251u8, 15u8, 209u8, 195u8, 84u8, 152u8, 99u8, 249u8, 205u8, 86u8, 62u8, 106u8,
24u8, 79u8, 29u8, 87u8, 129u8, 22u8, 200u8, 228u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
operator: topics.1,
operatorId: topics.2,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
()
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(
Self::SIGNATURE_HASH.into(),
self.operator.clone(),
self.operatorId.clone(),
)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
&self.operator,
);
out[2usize] = <alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::EventTopic>::encode_topic(&self.operatorId);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for OperatorDeregistered {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&OperatorDeregistered> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &OperatorDeregistered) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `OperatorRegistered(address,bytes32)` and selector `0xe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe`.
```solidity
event OperatorRegistered(address indexed operator, bytes32 indexed operatorId);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct OperatorRegistered {
#[allow(missing_docs)]
pub operator: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub operatorId: alloy::sol_types::private::FixedBytes<32>,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[automatically_derived]
impl alloy_sol_types::SolEvent for OperatorRegistered {
type DataTuple<'a> = ();
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (
alloy_sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::FixedBytes<32>,
);
const SIGNATURE: &'static str = "OperatorRegistered(address,bytes32)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
232u8, 230u8, 140u8, 239u8, 28u8, 58u8, 118u8, 30u8, 215u8, 190u8, 126u8,
132u8, 99u8, 163u8, 117u8, 242u8, 127u8, 123u8, 195u8, 53u8, 229u8, 24u8, 36u8,
34u8, 60u8, 172u8, 206u8, 99u8, 110u8, 197u8, 195u8, 254u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
operator: topics.1,
operatorId: topics.2,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
()
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(
Self::SIGNATURE_HASH.into(),
self.operator.clone(),
self.operatorId.clone(),
)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
&self.operator,
);
out[2usize] = <alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::EventTopic>::encode_topic(&self.operatorId);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for OperatorRegistered {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&OperatorRegistered> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &OperatorRegistered) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `OperatorSetParamsUpdated(uint8,(uint32,uint16,uint16))` and selector `0x3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac`.
```solidity
event OperatorSetParamsUpdated(uint8 indexed quorumNumber, IRegistryCoordinator.OperatorSetParam operatorSetParams);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct OperatorSetParamsUpdated {
#[allow(missing_docs)]
pub quorumNumber: u8,
#[allow(missing_docs)]
pub operatorSetParams:
<IRegistryCoordinator::OperatorSetParam as alloy::sol_types::SolType>::RustType,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[automatically_derived]
impl alloy_sol_types::SolEvent for OperatorSetParamsUpdated {
type DataTuple<'a> = (IRegistryCoordinator::OperatorSetParam,);
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (
alloy_sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Uint<8>,
);
const SIGNATURE: &'static str =
"OperatorSetParamsUpdated(uint8,(uint32,uint16,uint16))";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
62u8, 230u8, 254u8, 141u8, 84u8, 97u8, 2u8, 68u8, 195u8, 233u8, 211u8, 192u8,
102u8, 174u8, 74u8, 238u8, 153u8, 120u8, 132u8, 170u8, 40u8, 241u8, 6u8, 22u8,
174u8, 130u8, 25u8, 37u8, 64u8, 19u8, 24u8, 172u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
quorumNumber: topics.1,
operatorSetParams: data.0,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<IRegistryCoordinator::OperatorSetParam as alloy_sol_types::SolType>::tokenize(
&self.operatorSetParams,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(Self::SIGNATURE_HASH.into(), self.quorumNumber.clone())
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
out[1usize] = <alloy::sol_types::sol_data::Uint<
8,
> as alloy_sol_types::EventTopic>::encode_topic(&self.quorumNumber);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for OperatorSetParamsUpdated {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&OperatorSetParamsUpdated> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &OperatorSetParamsUpdated) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `OperatorSocketUpdate(bytes32,string)` and selector `0xec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa`.
```solidity
event OperatorSocketUpdate(bytes32 indexed operatorId, string socket);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct OperatorSocketUpdate {
#[allow(missing_docs)]
pub operatorId: alloy::sol_types::private::FixedBytes<32>,
#[allow(missing_docs)]
pub socket: alloy::sol_types::private::String,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[automatically_derived]
impl alloy_sol_types::SolEvent for OperatorSocketUpdate {
type DataTuple<'a> = (alloy::sol_types::sol_data::String,);
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (
alloy_sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::FixedBytes<32>,
);
const SIGNATURE: &'static str = "OperatorSocketUpdate(bytes32,string)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
236u8, 41u8, 99u8, 171u8, 33u8, 193u8, 229u8, 14u8, 30u8, 88u8, 42u8, 165u8,
66u8, 175u8, 46u8, 75u8, 247u8, 191u8, 56u8, 230u8, 225u8, 64u8, 60u8, 39u8,
180u8, 46u8, 28u8, 93u8, 110u8, 98u8, 30u8, 170u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
operatorId: topics.1,
socket: data.0,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
&self.socket,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(Self::SIGNATURE_HASH.into(), self.operatorId.clone())
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
out[1usize] = <alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::EventTopic>::encode_topic(&self.operatorId);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for OperatorSocketUpdate {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&OperatorSocketUpdate> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &OperatorSocketUpdate) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `OwnershipTransferred(address,address)` and selector `0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0`.
```solidity
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct OwnershipTransferred {
#[allow(missing_docs)]
pub previousOwner: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub newOwner: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[automatically_derived]
impl alloy_sol_types::SolEvent for OwnershipTransferred {
type DataTuple<'a> = ();
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (
alloy_sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
);
const SIGNATURE: &'static str = "OwnershipTransferred(address,address)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, 31u8,
208u8, 164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, 218u8,
175u8, 227u8, 180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
previousOwner: topics.1,
newOwner: topics.2,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
()
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(
Self::SIGNATURE_HASH.into(),
self.previousOwner.clone(),
self.newOwner.clone(),
)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
&self.previousOwner,
);
out[2usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
&self.newOwner,
);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for OwnershipTransferred {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&OwnershipTransferred> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &OwnershipTransferred) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `Paused(address,uint256)` and selector `0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d`.
```solidity
event Paused(address indexed account, uint256 newPausedStatus);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct Paused {
#[allow(missing_docs)]
pub account: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[automatically_derived]
impl alloy_sol_types::SolEvent for Paused {
type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (
alloy_sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Address,
);
const SIGNATURE: &'static str = "Paused(address,uint256)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
171u8, 64u8, 163u8, 116u8, 188u8, 81u8, 222u8, 55u8, 34u8, 0u8, 168u8, 188u8,
152u8, 26u8, 248u8, 201u8, 236u8, 220u8, 8u8, 223u8, 218u8, 239u8, 11u8, 182u8,
224u8, 159u8, 136u8, 243u8, 198u8, 22u8, 239u8, 61u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
account: topics.1,
newPausedStatus: data.0,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.newPausedStatus,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(Self::SIGNATURE_HASH.into(), self.account.clone())
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
&self.account,
);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for Paused {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&Paused> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &Paused) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `PauserRegistrySet(address,address)` and selector `0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6`.
```solidity
event PauserRegistrySet(address pauserRegistry, address newPauserRegistry);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct PauserRegistrySet {
#[allow(missing_docs)]
pub pauserRegistry: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub newPauserRegistry: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[automatically_derived]
impl alloy_sol_types::SolEvent for PauserRegistrySet {
type DataTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
);
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (alloy_sol_types::sol_data::FixedBytes<32>,);
const SIGNATURE: &'static str = "PauserRegistrySet(address,address)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
110u8, 159u8, 205u8, 83u8, 152u8, 150u8, 252u8, 166u8, 14u8, 139u8, 15u8, 1u8,
221u8, 88u8, 2u8, 51u8, 228u8, 138u8, 107u8, 15u8, 125u8, 240u8, 19u8, 184u8,
155u8, 167u8, 245u8, 101u8, 134u8, 154u8, 205u8, 182u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
pauserRegistry: data.0,
newPauserRegistry: data.1,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.pauserRegistry,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.newPauserRegistry,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(Self::SIGNATURE_HASH.into(),)
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for PauserRegistrySet {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&PauserRegistrySet> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &PauserRegistrySet) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `QuorumBlockNumberUpdated(uint8,uint256)` and selector `0x46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4`.
```solidity
event QuorumBlockNumberUpdated(uint8 indexed quorumNumber, uint256 blocknumber);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct QuorumBlockNumberUpdated {
#[allow(missing_docs)]
pub quorumNumber: u8,
#[allow(missing_docs)]
pub blocknumber: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[automatically_derived]
impl alloy_sol_types::SolEvent for QuorumBlockNumberUpdated {
type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (
alloy_sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Uint<8>,
);
const SIGNATURE: &'static str = "QuorumBlockNumberUpdated(uint8,uint256)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
70u8, 7u8, 125u8, 85u8, 51u8, 7u8, 99u8, 241u8, 98u8, 105u8, 253u8, 117u8,
229u8, 118u8, 22u8, 99u8, 244u8, 25u8, 45u8, 39u8, 145u8, 116u8, 124u8, 1u8,
137u8, 177u8, 106u8, 211u8, 29u8, 176u8, 125u8, 180u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
quorumNumber: topics.1,
blocknumber: data.0,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.blocknumber,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(Self::SIGNATURE_HASH.into(), self.quorumNumber.clone())
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
out[1usize] = <alloy::sol_types::sol_data::Uint<
8,
> as alloy_sol_types::EventTopic>::encode_topic(&self.quorumNumber);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for QuorumBlockNumberUpdated {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&QuorumBlockNumberUpdated> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &QuorumBlockNumberUpdated) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Event with signature `Unpaused(address,uint256)` and selector `0x3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c`.
```solidity
event Unpaused(address indexed account, uint256 newPausedStatus);
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
#[derive(Clone)]
pub struct Unpaused {
#[allow(missing_docs)]
pub account: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
#[automatically_derived]
impl alloy_sol_types::SolEvent for Unpaused {
type DataTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type DataToken<'a> = <Self::DataTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
type TopicList = (
alloy_sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Address,
);
const SIGNATURE: &'static str = "Unpaused(address,uint256)";
const SIGNATURE_HASH: alloy_sol_types::private::B256 =
alloy_sol_types::private::B256::new([
53u8, 130u8, 209u8, 130u8, 142u8, 38u8, 191u8, 86u8, 189u8, 128u8, 21u8, 2u8,
188u8, 2u8, 26u8, 192u8, 188u8, 138u8, 251u8, 87u8, 200u8, 38u8, 228u8, 152u8,
107u8, 69u8, 89u8, 60u8, 143u8, 173u8, 56u8, 156u8,
]);
const ANONYMOUS: bool = false;
#[allow(unused_variables)]
#[inline]
fn new(
topics: <Self::TopicList as alloy_sol_types::SolType>::RustType,
data: <Self::DataTuple<'_> as alloy_sol_types::SolType>::RustType,
) -> Self {
Self {
account: topics.1,
newPausedStatus: data.0,
}
}
#[inline]
fn check_signature(
topics: &<Self::TopicList as alloy_sol_types::SolType>::RustType,
) -> alloy_sol_types::Result<()> {
if topics.0 != Self::SIGNATURE_HASH {
return Err(alloy_sol_types::Error::invalid_event_signature_hash(
Self::SIGNATURE,
topics.0,
Self::SIGNATURE_HASH,
));
}
Ok(())
}
#[inline]
fn tokenize_body(&self) -> Self::DataToken<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.newPausedStatus,
),
)
}
#[inline]
fn topics(&self) -> <Self::TopicList as alloy_sol_types::SolType>::RustType {
(Self::SIGNATURE_HASH.into(), self.account.clone())
}
#[inline]
fn encode_topics_raw(
&self,
out: &mut [alloy_sol_types::abi::token::WordToken],
) -> alloy_sol_types::Result<()> {
if out.len() < <Self::TopicList as alloy_sol_types::TopicList>::COUNT {
return Err(alloy_sol_types::Error::Overrun);
}
out[0usize] = alloy_sol_types::abi::token::WordToken(Self::SIGNATURE_HASH);
out[1usize] = <alloy::sol_types::sol_data::Address as alloy_sol_types::EventTopic>::encode_topic(
&self.account,
);
Ok(())
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for Unpaused {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
From::from(self)
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
From::from(&self)
}
}
#[automatically_derived]
impl From<&Unpaused> for alloy_sol_types::private::LogData {
#[inline]
fn from(this: &Unpaused) -> alloy_sol_types::private::LogData {
alloy_sol_types::SolEvent::encode_log_data(this)
}
}
};
/**Constructor`.
```solidity
constructor(address _serviceManager, address _stakeRegistry, address _blsApkRegistry, address _indexRegistry, address _socketRegistry);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct constructorCall {
#[allow(missing_docs)]
pub _serviceManager: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub _stakeRegistry: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub _blsApkRegistry: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub _indexRegistry: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub _socketRegistry: alloy::sol_types::private::Address,
}
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::Address,
alloy::sol_types::private::Address,
alloy::sol_types::private::Address,
alloy::sol_types::private::Address,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<constructorCall> for UnderlyingRustTuple<'_> {
fn from(value: constructorCall) -> Self {
(
value._serviceManager,
value._stakeRegistry,
value._blsApkRegistry,
value._indexRegistry,
value._socketRegistry,
)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for constructorCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
_serviceManager: tuple.0,
_stakeRegistry: tuple.1,
_blsApkRegistry: tuple.2,
_indexRegistry: tuple.3,
_socketRegistry: tuple.4,
}
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolConstructor for constructorCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self._serviceManager,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self._stakeRegistry,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self._blsApkRegistry,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self._indexRegistry,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self._socketRegistry,
),
)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `OPERATOR_CHURN_APPROVAL_TYPEHASH()` and selector `0xca0de882`.
```solidity
function OPERATOR_CHURN_APPROVAL_TYPEHASH() external view returns (bytes32);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct OPERATOR_CHURN_APPROVAL_TYPEHASHCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`OPERATOR_CHURN_APPROVAL_TYPEHASH()`](OPERATOR_CHURN_APPROVAL_TYPEHASHCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct OPERATOR_CHURN_APPROVAL_TYPEHASHReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::FixedBytes<32>,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<OPERATOR_CHURN_APPROVAL_TYPEHASHCall> for UnderlyingRustTuple<'_> {
fn from(value: OPERATOR_CHURN_APPROVAL_TYPEHASHCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for OPERATOR_CHURN_APPROVAL_TYPEHASHCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<OPERATOR_CHURN_APPROVAL_TYPEHASHReturn> for UnderlyingRustTuple<'_> {
fn from(value: OPERATOR_CHURN_APPROVAL_TYPEHASHReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for OPERATOR_CHURN_APPROVAL_TYPEHASHReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for OPERATOR_CHURN_APPROVAL_TYPEHASHCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::FixedBytes<32>;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "OPERATOR_CHURN_APPROVAL_TYPEHASH()";
const SELECTOR: [u8; 4] = [202u8, 13u8, 232u8, 130u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(ret),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: OPERATOR_CHURN_APPROVAL_TYPEHASHReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: OPERATOR_CHURN_APPROVAL_TYPEHASHReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `PUBKEY_REGISTRATION_TYPEHASH()` and selector `0x9feab859`.
```solidity
function PUBKEY_REGISTRATION_TYPEHASH() external view returns (bytes32);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct PUBKEY_REGISTRATION_TYPEHASHCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`PUBKEY_REGISTRATION_TYPEHASH()`](PUBKEY_REGISTRATION_TYPEHASHCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct PUBKEY_REGISTRATION_TYPEHASHReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::FixedBytes<32>,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<PUBKEY_REGISTRATION_TYPEHASHCall> for UnderlyingRustTuple<'_> {
fn from(value: PUBKEY_REGISTRATION_TYPEHASHCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for PUBKEY_REGISTRATION_TYPEHASHCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<PUBKEY_REGISTRATION_TYPEHASHReturn> for UnderlyingRustTuple<'_> {
fn from(value: PUBKEY_REGISTRATION_TYPEHASHReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for PUBKEY_REGISTRATION_TYPEHASHReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for PUBKEY_REGISTRATION_TYPEHASHCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::FixedBytes<32>;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "PUBKEY_REGISTRATION_TYPEHASH()";
const SELECTOR: [u8; 4] = [159u8, 234u8, 184u8, 89u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(ret),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: PUBKEY_REGISTRATION_TYPEHASHReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: PUBKEY_REGISTRATION_TYPEHASHReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `blsApkRegistry()` and selector `0x5df45946`.
```solidity
function blsApkRegistry() external view returns (address);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct blsApkRegistryCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`blsApkRegistry()`](blsApkRegistryCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct blsApkRegistryReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<blsApkRegistryCall> for UnderlyingRustTuple<'_> {
fn from(value: blsApkRegistryCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for blsApkRegistryCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<blsApkRegistryReturn> for UnderlyingRustTuple<'_> {
fn from(value: blsApkRegistryReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for blsApkRegistryReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for blsApkRegistryCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "blsApkRegistry()";
const SELECTOR: [u8; 4] = [93u8, 244u8, 89u8, 70u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: blsApkRegistryReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: blsApkRegistryReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `calculateOperatorChurnApprovalDigestHash(address,bytes32,(uint8,address)[],bytes32,uint256)` and selector `0x84ca5213`.
```solidity
function calculateOperatorChurnApprovalDigestHash(address registeringOperator, bytes32 registeringOperatorId, IRegistryCoordinator.OperatorKickParam[] memory operatorKickParams, bytes32 salt, uint256 expiry) external view returns (bytes32);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct calculateOperatorChurnApprovalDigestHashCall {
#[allow(missing_docs)]
pub registeringOperator: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub registeringOperatorId: alloy::sol_types::private::FixedBytes<32>,
#[allow(missing_docs)]
pub operatorKickParams: alloy::sol_types::private::Vec<
<IRegistryCoordinator::OperatorKickParam as alloy::sol_types::SolType>::RustType,
>,
#[allow(missing_docs)]
pub salt: alloy::sol_types::private::FixedBytes<32>,
#[allow(missing_docs)]
pub expiry: alloy::sol_types::private::primitives::aliases::U256,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`calculateOperatorChurnApprovalDigestHash(address,bytes32,(uint8,address)[],bytes32,uint256)`](calculateOperatorChurnApprovalDigestHashCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct calculateOperatorChurnApprovalDigestHashReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::FixedBytes<32>,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Array<IRegistryCoordinator::OperatorKickParam>,
alloy::sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Uint<256>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::FixedBytes<32>,
alloy::sol_types::private::Vec<
<IRegistryCoordinator::OperatorKickParam as alloy::sol_types::SolType>::RustType,
>,
alloy::sol_types::private::FixedBytes<32>,
alloy::sol_types::private::primitives::aliases::U256,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<calculateOperatorChurnApprovalDigestHashCall>
for UnderlyingRustTuple<'_>
{
fn from(value: calculateOperatorChurnApprovalDigestHashCall) -> Self {
(
value.registeringOperator,
value.registeringOperatorId,
value.operatorKickParams,
value.salt,
value.expiry,
)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for calculateOperatorChurnApprovalDigestHashCall
{
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
registeringOperator: tuple.0,
registeringOperatorId: tuple.1,
operatorKickParams: tuple.2,
salt: tuple.3,
expiry: tuple.4,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<calculateOperatorChurnApprovalDigestHashReturn>
for UnderlyingRustTuple<'_>
{
fn from(value: calculateOperatorChurnApprovalDigestHashReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for calculateOperatorChurnApprovalDigestHashReturn
{
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for calculateOperatorChurnApprovalDigestHashCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Array<IRegistryCoordinator::OperatorKickParam>,
alloy::sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Uint<256>,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::FixedBytes<32>;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "calculateOperatorChurnApprovalDigestHash(address,bytes32,(uint8,address)[],bytes32,uint256)";
const SELECTOR: [u8; 4] = [132u8, 202u8, 82u8, 19u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.registeringOperator,
),
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(
&self.registeringOperatorId,
),
<alloy::sol_types::sol_data::Array<
IRegistryCoordinator::OperatorKickParam,
> as alloy_sol_types::SolType>::tokenize(&self.operatorKickParams),
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(&self.salt),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self.expiry),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(ret),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: calculateOperatorChurnApprovalDigestHashReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: calculateOperatorChurnApprovalDigestHashReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `churnApprover()` and selector `0x054310e6`.
```solidity
function churnApprover() external view returns (address);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct churnApproverCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`churnApprover()`](churnApproverCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct churnApproverReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<churnApproverCall> for UnderlyingRustTuple<'_> {
fn from(value: churnApproverCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for churnApproverCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<churnApproverReturn> for UnderlyingRustTuple<'_> {
fn from(value: churnApproverReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for churnApproverReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for churnApproverCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "churnApprover()";
const SELECTOR: [u8; 4] = [5u8, 67u8, 16u8, 230u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: churnApproverReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: churnApproverReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `createQuorum((uint32,uint16,uint16),uint96,(address,uint96)[])` and selector `0xd75b4c88`.
```solidity
function createQuorum(IRegistryCoordinator.OperatorSetParam memory operatorSetParams, uint96 minimumStake, IStakeRegistry.StrategyParams[] memory strategyParams) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct createQuorumCall {
#[allow(missing_docs)]
pub operatorSetParams:
<IRegistryCoordinator::OperatorSetParam as alloy::sol_types::SolType>::RustType,
#[allow(missing_docs)]
pub minimumStake: alloy::sol_types::private::primitives::aliases::U96,
#[allow(missing_docs)]
pub strategyParams: alloy::sol_types::private::Vec<
<IStakeRegistry::StrategyParams as alloy::sol_types::SolType>::RustType,
>,
}
///Container type for the return parameters of the [`createQuorum((uint32,uint16,uint16),uint96,(address,uint96)[])`](createQuorumCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct createQuorumReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
IRegistryCoordinator::OperatorSetParam,
alloy::sol_types::sol_data::Uint<96>,
alloy::sol_types::sol_data::Array<IStakeRegistry::StrategyParams>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
<IRegistryCoordinator::OperatorSetParam as alloy::sol_types::SolType>::RustType,
alloy::sol_types::private::primitives::aliases::U96,
alloy::sol_types::private::Vec<
<IStakeRegistry::StrategyParams as alloy::sol_types::SolType>::RustType,
>,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<createQuorumCall> for UnderlyingRustTuple<'_> {
fn from(value: createQuorumCall) -> Self {
(
value.operatorSetParams,
value.minimumStake,
value.strategyParams,
)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for createQuorumCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
operatorSetParams: tuple.0,
minimumStake: tuple.1,
strategyParams: tuple.2,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<createQuorumReturn> for UnderlyingRustTuple<'_> {
fn from(value: createQuorumReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for createQuorumReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl createQuorumReturn {
fn _tokenize(&self) -> <createQuorumCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for createQuorumCall {
type Parameters<'a> = (
IRegistryCoordinator::OperatorSetParam,
alloy::sol_types::sol_data::Uint<96>,
alloy::sol_types::sol_data::Array<IStakeRegistry::StrategyParams>,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = createQuorumReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str =
"createQuorum((uint32,uint16,uint16),uint96,(address,uint96)[])";
const SELECTOR: [u8; 4] = [215u8, 91u8, 76u8, 136u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<IRegistryCoordinator::OperatorSetParam as alloy_sol_types::SolType>::tokenize(
&self.operatorSetParams,
),
<alloy::sol_types::sol_data::Uint<
96,
> as alloy_sol_types::SolType>::tokenize(&self.minimumStake),
<alloy::sol_types::sol_data::Array<
IStakeRegistry::StrategyParams,
> as alloy_sol_types::SolType>::tokenize(&self.strategyParams),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
createQuorumReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `deregisterOperator(bytes)` and selector `0xca4f2d97`.
```solidity
function deregisterOperator(bytes memory quorumNumbers) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct deregisterOperatorCall {
#[allow(missing_docs)]
pub quorumNumbers: alloy::sol_types::private::Bytes,
}
///Container type for the return parameters of the [`deregisterOperator(bytes)`](deregisterOperatorCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct deregisterOperatorReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bytes,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Bytes,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<deregisterOperatorCall> for UnderlyingRustTuple<'_> {
fn from(value: deregisterOperatorCall) -> Self {
(value.quorumNumbers,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for deregisterOperatorCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
quorumNumbers: tuple.0,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<deregisterOperatorReturn> for UnderlyingRustTuple<'_> {
fn from(value: deregisterOperatorReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for deregisterOperatorReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl deregisterOperatorReturn {
fn _tokenize(
&self,
) -> <deregisterOperatorCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for deregisterOperatorCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Bytes,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = deregisterOperatorReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "deregisterOperator(bytes)";
const SELECTOR: [u8; 4] = [202u8, 79u8, 45u8, 151u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self.quorumNumbers,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
deregisterOperatorReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `ejectOperator(address,bytes)` and selector `0x6e3b17db`.
```solidity
function ejectOperator(address operator, bytes memory quorumNumbers) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct ejectOperatorCall {
#[allow(missing_docs)]
pub operator: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub quorumNumbers: alloy::sol_types::private::Bytes,
}
///Container type for the return parameters of the [`ejectOperator(address,bytes)`](ejectOperatorCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct ejectOperatorReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Bytes,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::Bytes,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<ejectOperatorCall> for UnderlyingRustTuple<'_> {
fn from(value: ejectOperatorCall) -> Self {
(value.operator, value.quorumNumbers)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for ejectOperatorCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
operator: tuple.0,
quorumNumbers: tuple.1,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<ejectOperatorReturn> for UnderlyingRustTuple<'_> {
fn from(value: ejectOperatorReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for ejectOperatorReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl ejectOperatorReturn {
fn _tokenize(
&self,
) -> <ejectOperatorCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for ejectOperatorCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Bytes,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = ejectOperatorReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "ejectOperator(address,bytes)";
const SELECTOR: [u8; 4] = [110u8, 59u8, 23u8, 219u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.operator,
),
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self.quorumNumbers,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
ejectOperatorReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `ejectionCooldown()` and selector `0xa96f783e`.
```solidity
function ejectionCooldown() external view returns (uint256);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct ejectionCooldownCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`ejectionCooldown()`](ejectionCooldownCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct ejectionCooldownReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<ejectionCooldownCall> for UnderlyingRustTuple<'_> {
fn from(value: ejectionCooldownCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for ejectionCooldownCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<ejectionCooldownReturn> for UnderlyingRustTuple<'_> {
fn from(value: ejectionCooldownReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for ejectionCooldownReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for ejectionCooldownCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::primitives::aliases::U256;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "ejectionCooldown()";
const SELECTOR: [u8; 4] = [169u8, 111u8, 120u8, 62u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: ejectionCooldownReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: ejectionCooldownReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `ejector()` and selector `0x28f61b31`.
```solidity
function ejector() external view returns (address);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct ejectorCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`ejector()`](ejectorCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct ejectorReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<ejectorCall> for UnderlyingRustTuple<'_> {
fn from(value: ejectorCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for ejectorCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<ejectorReturn> for UnderlyingRustTuple<'_> {
fn from(value: ejectorReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for ejectorReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for ejectorCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "ejector()";
const SELECTOR: [u8; 4] = [40u8, 246u8, 27u8, 49u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: ejectorReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: ejectorReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getCurrentQuorumBitmap(bytes32)` and selector `0x871ef049`.
```solidity
function getCurrentQuorumBitmap(bytes32 operatorId) external view returns (uint192);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getCurrentQuorumBitmapCall {
#[allow(missing_docs)]
pub operatorId: alloy::sol_types::private::FixedBytes<32>,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getCurrentQuorumBitmap(bytes32)`](getCurrentQuorumBitmapCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getCurrentQuorumBitmapReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::primitives::aliases::U192,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getCurrentQuorumBitmapCall> for UnderlyingRustTuple<'_> {
fn from(value: getCurrentQuorumBitmapCall) -> Self {
(value.operatorId,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getCurrentQuorumBitmapCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
operatorId: tuple.0,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<192>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U192,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getCurrentQuorumBitmapReturn> for UnderlyingRustTuple<'_> {
fn from(value: getCurrentQuorumBitmapReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getCurrentQuorumBitmapReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getCurrentQuorumBitmapCall {
type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::primitives::aliases::U192;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<192>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getCurrentQuorumBitmap(bytes32)";
const SELECTOR: [u8; 4] = [135u8, 30u8, 240u8, 73u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(&self.operatorId),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<192> as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: getCurrentQuorumBitmapReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: getCurrentQuorumBitmapReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getOperator(address)` and selector `0x5865c60c`.
```solidity
function getOperator(address operator) external view returns (IRegistryCoordinator.OperatorInfo memory);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getOperatorCall {
#[allow(missing_docs)]
pub operator: alloy::sol_types::private::Address,
}
#[derive(serde::Serialize, serde::Deserialize)]
///Container type for the return parameters of the [`getOperator(address)`](getOperatorCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getOperatorReturn {
#[allow(missing_docs)]
pub _0: <IRegistryCoordinator::OperatorInfo as alloy::sol_types::SolType>::RustType,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getOperatorCall> for UnderlyingRustTuple<'_> {
fn from(value: getOperatorCall) -> Self {
(value.operator,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getOperatorCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { operator: tuple.0 }
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (IRegistryCoordinator::OperatorInfo,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> =
(<IRegistryCoordinator::OperatorInfo as alloy::sol_types::SolType>::RustType,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getOperatorReturn> for UnderlyingRustTuple<'_> {
fn from(value: getOperatorReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getOperatorReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getOperatorCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return =
<IRegistryCoordinator::OperatorInfo as alloy::sol_types::SolType>::RustType;
type ReturnTuple<'a> = (IRegistryCoordinator::OperatorInfo,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getOperator(address)";
const SELECTOR: [u8; 4] = [88u8, 101u8, 198u8, 12u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.operator,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(<IRegistryCoordinator::OperatorInfo as alloy_sol_types::SolType>::tokenize(ret),)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: getOperatorReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: getOperatorReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getOperatorFromId(bytes32)` and selector `0x296bb064`.
```solidity
function getOperatorFromId(bytes32 operatorId) external view returns (address);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getOperatorFromIdCall {
#[allow(missing_docs)]
pub operatorId: alloy::sol_types::private::FixedBytes<32>,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getOperatorFromId(bytes32)`](getOperatorFromIdCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getOperatorFromIdReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getOperatorFromIdCall> for UnderlyingRustTuple<'_> {
fn from(value: getOperatorFromIdCall) -> Self {
(value.operatorId,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getOperatorFromIdCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
operatorId: tuple.0,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getOperatorFromIdReturn> for UnderlyingRustTuple<'_> {
fn from(value: getOperatorFromIdReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getOperatorFromIdReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getOperatorFromIdCall {
type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getOperatorFromId(bytes32)";
const SELECTOR: [u8; 4] = [41u8, 107u8, 176u8, 100u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(&self.operatorId),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: getOperatorFromIdReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: getOperatorFromIdReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getOperatorId(address)` and selector `0x13542a4e`.
```solidity
function getOperatorId(address operator) external view returns (bytes32);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getOperatorIdCall {
#[allow(missing_docs)]
pub operator: alloy::sol_types::private::Address,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getOperatorId(address)`](getOperatorIdCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getOperatorIdReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::FixedBytes<32>,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getOperatorIdCall> for UnderlyingRustTuple<'_> {
fn from(value: getOperatorIdCall) -> Self {
(value.operator,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getOperatorIdCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { operator: tuple.0 }
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getOperatorIdReturn> for UnderlyingRustTuple<'_> {
fn from(value: getOperatorIdReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getOperatorIdReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getOperatorIdCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::FixedBytes<32>;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getOperatorId(address)";
const SELECTOR: [u8; 4] = [19u8, 84u8, 42u8, 78u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.operator,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(ret),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: getOperatorIdReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: getOperatorIdReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getOperatorSetParams(uint8)` and selector `0xe65797ad`.
```solidity
function getOperatorSetParams(uint8 quorumNumber) external view returns (IRegistryCoordinator.OperatorSetParam memory);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getOperatorSetParamsCall {
#[allow(missing_docs)]
pub quorumNumber: u8,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getOperatorSetParams(uint8)`](getOperatorSetParamsCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getOperatorSetParamsReturn {
#[allow(missing_docs)]
pub _0: <IRegistryCoordinator::OperatorSetParam as alloy::sol_types::SolType>::RustType,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (u8,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getOperatorSetParamsCall> for UnderlyingRustTuple<'_> {
fn from(value: getOperatorSetParamsCall) -> Self {
(value.quorumNumber,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getOperatorSetParamsCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
quorumNumber: tuple.0,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (IRegistryCoordinator::OperatorSetParam,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> =
(<IRegistryCoordinator::OperatorSetParam as alloy::sol_types::SolType>::RustType,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getOperatorSetParamsReturn> for UnderlyingRustTuple<'_> {
fn from(value: getOperatorSetParamsReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getOperatorSetParamsReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getOperatorSetParamsCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Uint<8>,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return =
<IRegistryCoordinator::OperatorSetParam as alloy::sol_types::SolType>::RustType;
type ReturnTuple<'a> = (IRegistryCoordinator::OperatorSetParam,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getOperatorSetParams(uint8)";
const SELECTOR: [u8; 4] = [230u8, 87u8, 151u8, 173u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Uint<8> as alloy_sol_types::SolType>::tokenize(
&self.quorumNumber,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<IRegistryCoordinator::OperatorSetParam as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: getOperatorSetParamsReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: getOperatorSetParamsReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getOperatorStatus(address)` and selector `0xfd39105a`.
```solidity
function getOperatorStatus(address operator) external view returns (IRegistryCoordinator.OperatorStatus);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getOperatorStatusCall {
#[allow(missing_docs)]
pub operator: alloy::sol_types::private::Address,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getOperatorStatus(address)`](getOperatorStatusCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getOperatorStatusReturn {
#[allow(missing_docs)]
pub _0: <IRegistryCoordinator::OperatorStatus as alloy::sol_types::SolType>::RustType,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getOperatorStatusCall> for UnderlyingRustTuple<'_> {
fn from(value: getOperatorStatusCall) -> Self {
(value.operator,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getOperatorStatusCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { operator: tuple.0 }
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (IRegistryCoordinator::OperatorStatus,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> =
(<IRegistryCoordinator::OperatorStatus as alloy::sol_types::SolType>::RustType,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getOperatorStatusReturn> for UnderlyingRustTuple<'_> {
fn from(value: getOperatorStatusReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getOperatorStatusReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getOperatorStatusCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return =
<IRegistryCoordinator::OperatorStatus as alloy::sol_types::SolType>::RustType;
type ReturnTuple<'a> = (IRegistryCoordinator::OperatorStatus,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getOperatorStatus(address)";
const SELECTOR: [u8; 4] = [253u8, 57u8, 16u8, 90u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.operator,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<IRegistryCoordinator::OperatorStatus as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: getOperatorStatusReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: getOperatorStatusReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getQuorumBitmapAtBlockNumberByIndex(bytes32,uint32,uint256)` and selector `0x04ec6351`.
```solidity
function getQuorumBitmapAtBlockNumberByIndex(bytes32 operatorId, uint32 blockNumber, uint256 index) external view returns (uint192);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getQuorumBitmapAtBlockNumberByIndexCall {
#[allow(missing_docs)]
pub operatorId: alloy::sol_types::private::FixedBytes<32>,
#[allow(missing_docs)]
pub blockNumber: u32,
#[allow(missing_docs)]
pub index: alloy::sol_types::private::primitives::aliases::U256,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getQuorumBitmapAtBlockNumberByIndex(bytes32,uint32,uint256)`](getQuorumBitmapAtBlockNumberByIndexCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getQuorumBitmapAtBlockNumberByIndexReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::primitives::aliases::U192,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Uint<32>,
alloy::sol_types::sol_data::Uint<256>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::FixedBytes<32>,
u32,
alloy::sol_types::private::primitives::aliases::U256,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getQuorumBitmapAtBlockNumberByIndexCall> for UnderlyingRustTuple<'_> {
fn from(value: getQuorumBitmapAtBlockNumberByIndexCall) -> Self {
(value.operatorId, value.blockNumber, value.index)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getQuorumBitmapAtBlockNumberByIndexCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
operatorId: tuple.0,
blockNumber: tuple.1,
index: tuple.2,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<192>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U192,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getQuorumBitmapAtBlockNumberByIndexReturn> for UnderlyingRustTuple<'_> {
fn from(value: getQuorumBitmapAtBlockNumberByIndexReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getQuorumBitmapAtBlockNumberByIndexReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getQuorumBitmapAtBlockNumberByIndexCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Uint<32>,
alloy::sol_types::sol_data::Uint<256>,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::primitives::aliases::U192;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<192>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str =
"getQuorumBitmapAtBlockNumberByIndex(bytes32,uint32,uint256)";
const SELECTOR: [u8; 4] = [4u8, 236u8, 99u8, 81u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(&self.operatorId),
<alloy::sol_types::sol_data::Uint<
32,
> as alloy_sol_types::SolType>::tokenize(&self.blockNumber),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self.index),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<192> as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: getQuorumBitmapAtBlockNumberByIndexReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: getQuorumBitmapAtBlockNumberByIndexReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getQuorumBitmapHistoryLength(bytes32)` and selector `0x03fd3492`.
```solidity
function getQuorumBitmapHistoryLength(bytes32 operatorId) external view returns (uint256);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getQuorumBitmapHistoryLengthCall {
#[allow(missing_docs)]
pub operatorId: alloy::sol_types::private::FixedBytes<32>,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getQuorumBitmapHistoryLength(bytes32)`](getQuorumBitmapHistoryLengthCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getQuorumBitmapHistoryLengthReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getQuorumBitmapHistoryLengthCall> for UnderlyingRustTuple<'_> {
fn from(value: getQuorumBitmapHistoryLengthCall) -> Self {
(value.operatorId,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getQuorumBitmapHistoryLengthCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
operatorId: tuple.0,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getQuorumBitmapHistoryLengthReturn> for UnderlyingRustTuple<'_> {
fn from(value: getQuorumBitmapHistoryLengthReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getQuorumBitmapHistoryLengthReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getQuorumBitmapHistoryLengthCall {
type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::primitives::aliases::U256;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getQuorumBitmapHistoryLength(bytes32)";
const SELECTOR: [u8; 4] = [3u8, 253u8, 52u8, 146u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(&self.operatorId),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: getQuorumBitmapHistoryLengthReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: getQuorumBitmapHistoryLengthReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getQuorumBitmapIndicesAtBlockNumber(uint32,bytes32[])` and selector `0xc391425e`.
```solidity
function getQuorumBitmapIndicesAtBlockNumber(uint32 blockNumber, bytes32[] memory operatorIds) external view returns (uint32[] memory);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getQuorumBitmapIndicesAtBlockNumberCall {
#[allow(missing_docs)]
pub blockNumber: u32,
#[allow(missing_docs)]
pub operatorIds: alloy::sol_types::private::Vec<alloy::sol_types::private::FixedBytes<32>>,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getQuorumBitmapIndicesAtBlockNumber(uint32,bytes32[])`](getQuorumBitmapIndicesAtBlockNumberCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getQuorumBitmapIndicesAtBlockNumberReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Vec<u32>,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Uint<32>,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::FixedBytes<32>>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
u32,
alloy::sol_types::private::Vec<alloy::sol_types::private::FixedBytes<32>>,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getQuorumBitmapIndicesAtBlockNumberCall> for UnderlyingRustTuple<'_> {
fn from(value: getQuorumBitmapIndicesAtBlockNumberCall) -> Self {
(value.blockNumber, value.operatorIds)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getQuorumBitmapIndicesAtBlockNumberCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
blockNumber: tuple.0,
operatorIds: tuple.1,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> =
(alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<32>>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Vec<u32>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getQuorumBitmapIndicesAtBlockNumberReturn> for UnderlyingRustTuple<'_> {
fn from(value: getQuorumBitmapIndicesAtBlockNumberReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getQuorumBitmapIndicesAtBlockNumberReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getQuorumBitmapIndicesAtBlockNumberCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Uint<32>,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::FixedBytes<32>>,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Vec<u32>;
type ReturnTuple<'a> =
(alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<32>>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getQuorumBitmapIndicesAtBlockNumber(uint32,bytes32[])";
const SELECTOR: [u8; 4] = [195u8, 145u8, 66u8, 94u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Uint<
32,
> as alloy_sol_types::SolType>::tokenize(&self.blockNumber),
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::FixedBytes<32>,
> as alloy_sol_types::SolType>::tokenize(&self.operatorIds),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<32>,
> as alloy_sol_types::SolType>::tokenize(ret),)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: getQuorumBitmapIndicesAtBlockNumberReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: getQuorumBitmapIndicesAtBlockNumberReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getQuorumBitmapUpdateByIndex(bytes32,uint256)` and selector `0x1eb812da`.
```solidity
function getQuorumBitmapUpdateByIndex(bytes32 operatorId, uint256 index) external view returns (IRegistryCoordinator.QuorumBitmapUpdate memory);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getQuorumBitmapUpdateByIndexCall {
#[allow(missing_docs)]
pub operatorId: alloy::sol_types::private::FixedBytes<32>,
#[allow(missing_docs)]
pub index: alloy::sol_types::private::primitives::aliases::U256,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getQuorumBitmapUpdateByIndex(bytes32,uint256)`](getQuorumBitmapUpdateByIndexCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getQuorumBitmapUpdateByIndexReturn {
#[allow(missing_docs)]
pub _0: <IRegistryCoordinator::QuorumBitmapUpdate as alloy::sol_types::SolType>::RustType,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Uint<256>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::FixedBytes<32>,
alloy::sol_types::private::primitives::aliases::U256,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getQuorumBitmapUpdateByIndexCall> for UnderlyingRustTuple<'_> {
fn from(value: getQuorumBitmapUpdateByIndexCall) -> Self {
(value.operatorId, value.index)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getQuorumBitmapUpdateByIndexCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
operatorId: tuple.0,
index: tuple.1,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (IRegistryCoordinator::QuorumBitmapUpdate,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
<IRegistryCoordinator::QuorumBitmapUpdate as alloy::sol_types::SolType>::RustType,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getQuorumBitmapUpdateByIndexReturn> for UnderlyingRustTuple<'_> {
fn from(value: getQuorumBitmapUpdateByIndexReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for getQuorumBitmapUpdateByIndexReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getQuorumBitmapUpdateByIndexCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Uint<256>,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return =
<IRegistryCoordinator::QuorumBitmapUpdate as alloy::sol_types::SolType>::RustType;
type ReturnTuple<'a> = (IRegistryCoordinator::QuorumBitmapUpdate,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getQuorumBitmapUpdateByIndex(bytes32,uint256)";
const SELECTOR: [u8; 4] = [30u8, 184u8, 18u8, 218u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(&self.operatorId),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self.index),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<IRegistryCoordinator::QuorumBitmapUpdate as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: getQuorumBitmapUpdateByIndexReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: getQuorumBitmapUpdateByIndexReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `indexRegistry()` and selector `0x9e9923c2`.
```solidity
function indexRegistry() external view returns (address);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct indexRegistryCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`indexRegistry()`](indexRegistryCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct indexRegistryReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<indexRegistryCall> for UnderlyingRustTuple<'_> {
fn from(value: indexRegistryCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for indexRegistryCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<indexRegistryReturn> for UnderlyingRustTuple<'_> {
fn from(value: indexRegistryReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for indexRegistryReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for indexRegistryCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "indexRegistry()";
const SELECTOR: [u8; 4] = [158u8, 153u8, 35u8, 194u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: indexRegistryReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: indexRegistryReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `initialize(address,address,address,address,uint256,(uint32,uint16,uint16)[],uint96[],(address,uint96)[][])` and selector `0xdd8283f3`.
```solidity
function initialize(address _initialOwner, address _churnApprover, address _ejector, address _pauserRegistry, uint256 _initialPausedStatus, IRegistryCoordinator.OperatorSetParam[] memory _operatorSetParams, uint96[] memory _minimumStakes, IStakeRegistry.StrategyParams[][] memory _strategyParams) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct initializeCall {
#[allow(missing_docs)]
pub _initialOwner: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub _churnApprover: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub _ejector: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub _pauserRegistry: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub _initialPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
#[allow(missing_docs)]
pub _operatorSetParams: alloy::sol_types::private::Vec<
<IRegistryCoordinator::OperatorSetParam as alloy::sol_types::SolType>::RustType,
>,
#[allow(missing_docs)]
pub _minimumStakes:
alloy::sol_types::private::Vec<alloy::sol_types::private::primitives::aliases::U96>,
#[allow(missing_docs)]
pub _strategyParams: alloy::sol_types::private::Vec<
alloy::sol_types::private::Vec<
<IStakeRegistry::StrategyParams as alloy::sol_types::SolType>::RustType,
>,
>,
}
///Container type for the return parameters of the [`initialize(address,address,address,address,uint256,(uint32,uint16,uint16)[],uint96[],(address,uint96)[][])`](initializeCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct initializeReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Array<IRegistryCoordinator::OperatorSetParam>,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<96>>,
alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Array<IStakeRegistry::StrategyParams>,
>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::Address,
alloy::sol_types::private::Address,
alloy::sol_types::private::Address,
alloy::sol_types::private::primitives::aliases::U256,
alloy::sol_types::private::Vec<
<IRegistryCoordinator::OperatorSetParam as alloy::sol_types::SolType>::RustType,
>,
alloy::sol_types::private::Vec<alloy::sol_types::private::primitives::aliases::U96>,
alloy::sol_types::private::Vec<
alloy::sol_types::private::Vec<
<IStakeRegistry::StrategyParams as alloy::sol_types::SolType>::RustType,
>,
>,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<initializeCall> for UnderlyingRustTuple<'_> {
fn from(value: initializeCall) -> Self {
(
value._initialOwner,
value._churnApprover,
value._ejector,
value._pauserRegistry,
value._initialPausedStatus,
value._operatorSetParams,
value._minimumStakes,
value._strategyParams,
)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for initializeCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
_initialOwner: tuple.0,
_churnApprover: tuple.1,
_ejector: tuple.2,
_pauserRegistry: tuple.3,
_initialPausedStatus: tuple.4,
_operatorSetParams: tuple.5,
_minimumStakes: tuple.6,
_strategyParams: tuple.7,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<initializeReturn> for UnderlyingRustTuple<'_> {
fn from(value: initializeReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for initializeReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl initializeReturn {
fn _tokenize(&self) -> <initializeCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for initializeCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Array<IRegistryCoordinator::OperatorSetParam>,
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Uint<96>>,
alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Array<IStakeRegistry::StrategyParams>,
>,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = initializeReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "initialize(address,address,address,address,uint256,(uint32,uint16,uint16)[],uint96[],(address,uint96)[][])";
const SELECTOR: [u8; 4] = [221u8, 130u8, 131u8, 243u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self._initialOwner,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self._churnApprover,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self._ejector,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self._pauserRegistry,
),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self._initialPausedStatus),
<alloy::sol_types::sol_data::Array<
IRegistryCoordinator::OperatorSetParam,
> as alloy_sol_types::SolType>::tokenize(&self._operatorSetParams),
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Uint<96>,
> as alloy_sol_types::SolType>::tokenize(&self._minimumStakes),
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Array<IStakeRegistry::StrategyParams>,
> as alloy_sol_types::SolType>::tokenize(&self._strategyParams),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
initializeReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `isChurnApproverSaltUsed(bytes32)` and selector `0x1478851f`.
```solidity
function isChurnApproverSaltUsed(bytes32) external view returns (bool);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct isChurnApproverSaltUsedCall(pub alloy::sol_types::private::FixedBytes<32>);
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`isChurnApproverSaltUsed(bytes32)`](isChurnApproverSaltUsedCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct isChurnApproverSaltUsedReturn {
#[allow(missing_docs)]
pub _0: bool,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::FixedBytes<32>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<isChurnApproverSaltUsedCall> for UnderlyingRustTuple<'_> {
fn from(value: isChurnApproverSaltUsedCall) -> Self {
(value.0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for isChurnApproverSaltUsedCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self(tuple.0)
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (bool,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<isChurnApproverSaltUsedReturn> for UnderlyingRustTuple<'_> {
fn from(value: isChurnApproverSaltUsedReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for isChurnApproverSaltUsedReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for isChurnApproverSaltUsedCall {
type Parameters<'a> = (alloy::sol_types::sol_data::FixedBytes<32>,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = bool;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "isChurnApproverSaltUsed(bytes32)";
const SELECTOR: [u8; 4] = [20u8, 120u8, 133u8, 31u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(&self.0),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(<alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(ret),)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: isChurnApproverSaltUsedReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: isChurnApproverSaltUsedReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `lastEjectionTimestamp(address)` and selector `0x125e0584`.
```solidity
function lastEjectionTimestamp(address) external view returns (uint256);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct lastEjectionTimestampCall(pub alloy::sol_types::private::Address);
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`lastEjectionTimestamp(address)`](lastEjectionTimestampCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct lastEjectionTimestampReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<lastEjectionTimestampCall> for UnderlyingRustTuple<'_> {
fn from(value: lastEjectionTimestampCall) -> Self {
(value.0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for lastEjectionTimestampCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self(tuple.0)
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<lastEjectionTimestampReturn> for UnderlyingRustTuple<'_> {
fn from(value: lastEjectionTimestampReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for lastEjectionTimestampReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for lastEjectionTimestampCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::primitives::aliases::U256;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "lastEjectionTimestamp(address)";
const SELECTOR: [u8; 4] = [18u8, 94u8, 5u8, 132u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.0,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: lastEjectionTimestampReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: lastEjectionTimestampReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `numRegistries()` and selector `0xd72d8dd6`.
```solidity
function numRegistries() external view returns (uint256);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct numRegistriesCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`numRegistries()`](numRegistriesCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct numRegistriesReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<numRegistriesCall> for UnderlyingRustTuple<'_> {
fn from(value: numRegistriesCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for numRegistriesCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<numRegistriesReturn> for UnderlyingRustTuple<'_> {
fn from(value: numRegistriesReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for numRegistriesReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for numRegistriesCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::primitives::aliases::U256;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "numRegistries()";
const SELECTOR: [u8; 4] = [215u8, 45u8, 141u8, 214u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: numRegistriesReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: numRegistriesReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `owner()` and selector `0x8da5cb5b`.
```solidity
function owner() external view returns (address);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct ownerCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`owner()`](ownerCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct ownerReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<ownerCall> for UnderlyingRustTuple<'_> {
fn from(value: ownerCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<ownerReturn> for UnderlyingRustTuple<'_> {
fn from(value: ownerReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for ownerReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for ownerCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "owner()";
const SELECTOR: [u8; 4] = [141u8, 165u8, 203u8, 91u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: ownerReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: ownerReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `pause(uint256)` and selector `0x136439dd`.
```solidity
function pause(uint256 newPausedStatus) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct pauseCall {
#[allow(missing_docs)]
pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
}
///Container type for the return parameters of the [`pause(uint256)`](pauseCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct pauseReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<pauseCall> for UnderlyingRustTuple<'_> {
fn from(value: pauseCall) -> Self {
(value.newPausedStatus,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
newPausedStatus: tuple.0,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<pauseReturn> for UnderlyingRustTuple<'_> {
fn from(value: pauseReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl pauseReturn {
fn _tokenize(&self) -> <pauseCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for pauseCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = pauseReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "pause(uint256)";
const SELECTOR: [u8; 4] = [19u8, 100u8, 57u8, 221u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.newPausedStatus,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
pauseReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `pauseAll()` and selector `0x595c6a67`.
```solidity
function pauseAll() external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct pauseAllCall;
///Container type for the return parameters of the [`pauseAll()`](pauseAllCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct pauseAllReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<pauseAllCall> for UnderlyingRustTuple<'_> {
fn from(value: pauseAllCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseAllCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<pauseAllReturn> for UnderlyingRustTuple<'_> {
fn from(value: pauseAllReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauseAllReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl pauseAllReturn {
fn _tokenize(&self) -> <pauseAllCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for pauseAllCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = pauseAllReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "pauseAll()";
const SELECTOR: [u8; 4] = [89u8, 92u8, 106u8, 103u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
pauseAllReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `paused(uint8)` and selector `0x5ac86ab7`.
```solidity
function paused(uint8 index) external view returns (bool);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct paused_0Call {
#[allow(missing_docs)]
pub index: u8,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`paused(uint8)`](paused_0Call) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct paused_0Return {
#[allow(missing_docs)]
pub _0: bool,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (u8,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<paused_0Call> for UnderlyingRustTuple<'_> {
fn from(value: paused_0Call) -> Self {
(value.index,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_0Call {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { index: tuple.0 }
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Bool,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (bool,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<paused_0Return> for UnderlyingRustTuple<'_> {
fn from(value: paused_0Return) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_0Return {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for paused_0Call {
type Parameters<'a> = (alloy::sol_types::sol_data::Uint<8>,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = bool;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Bool,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "paused(uint8)";
const SELECTOR: [u8; 4] = [90u8, 200u8, 106u8, 183u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Uint<8> as alloy_sol_types::SolType>::tokenize(
&self.index,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(<alloy::sol_types::sol_data::Bool as alloy_sol_types::SolType>::tokenize(ret),)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: paused_0Return = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: paused_0Return = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `paused()` and selector `0x5c975abb`.
```solidity
function paused() external view returns (uint256);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct paused_1Call;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`paused()`](paused_1Call) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct paused_1Return {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<paused_1Call> for UnderlyingRustTuple<'_> {
fn from(value: paused_1Call) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_1Call {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<paused_1Return> for UnderlyingRustTuple<'_> {
fn from(value: paused_1Return) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for paused_1Return {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for paused_1Call {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::primitives::aliases::U256;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "paused()";
const SELECTOR: [u8; 4] = [92u8, 151u8, 90u8, 187u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: paused_1Return = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: paused_1Return = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `pauserRegistry()` and selector `0x886f1195`.
```solidity
function pauserRegistry() external view returns (address);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct pauserRegistryCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`pauserRegistry()`](pauserRegistryCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct pauserRegistryReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<pauserRegistryCall> for UnderlyingRustTuple<'_> {
fn from(value: pauserRegistryCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauserRegistryCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<pauserRegistryReturn> for UnderlyingRustTuple<'_> {
fn from(value: pauserRegistryReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for pauserRegistryReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for pauserRegistryCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "pauserRegistry()";
const SELECTOR: [u8; 4] = [136u8, 111u8, 17u8, 149u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: pauserRegistryReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: pauserRegistryReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `pubkeyRegistrationMessageHash(address)` and selector `0x3c2a7f4c`.
```solidity
function pubkeyRegistrationMessageHash(address operator) external view returns (BN254.G1Point memory);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct pubkeyRegistrationMessageHashCall {
#[allow(missing_docs)]
pub operator: alloy::sol_types::private::Address,
}
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`pubkeyRegistrationMessageHash(address)`](pubkeyRegistrationMessageHashCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct pubkeyRegistrationMessageHashReturn {
#[allow(missing_docs)]
pub _0: <BN254::G1Point as alloy::sol_types::SolType>::RustType,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<pubkeyRegistrationMessageHashCall> for UnderlyingRustTuple<'_> {
fn from(value: pubkeyRegistrationMessageHashCall) -> Self {
(value.operator,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for pubkeyRegistrationMessageHashCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { operator: tuple.0 }
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (BN254::G1Point,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> =
(<BN254::G1Point as alloy::sol_types::SolType>::RustType,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<pubkeyRegistrationMessageHashReturn> for UnderlyingRustTuple<'_> {
fn from(value: pubkeyRegistrationMessageHashReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for pubkeyRegistrationMessageHashReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for pubkeyRegistrationMessageHashCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = <BN254::G1Point as alloy::sol_types::SolType>::RustType;
type ReturnTuple<'a> = (BN254::G1Point,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "pubkeyRegistrationMessageHash(address)";
const SELECTOR: [u8; 4] = [60u8, 42u8, 127u8, 76u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.operator,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(<BN254::G1Point as alloy_sol_types::SolType>::tokenize(ret),)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: pubkeyRegistrationMessageHashReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: pubkeyRegistrationMessageHashReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `quorumCount()` and selector `0x9aa1653d`.
```solidity
function quorumCount() external view returns (uint8);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct quorumCountCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`quorumCount()`](quorumCountCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct quorumCountReturn {
#[allow(missing_docs)]
pub _0: u8,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<quorumCountCall> for UnderlyingRustTuple<'_> {
fn from(value: quorumCountCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for quorumCountCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (u8,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<quorumCountReturn> for UnderlyingRustTuple<'_> {
fn from(value: quorumCountReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for quorumCountReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for quorumCountCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = u8;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "quorumCount()";
const SELECTOR: [u8; 4] = [154u8, 161u8, 101u8, 61u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<8> as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: quorumCountReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: quorumCountReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `quorumUpdateBlockNumber(uint8)` and selector `0x249a0c42`.
```solidity
function quorumUpdateBlockNumber(uint8) external view returns (uint256);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct quorumUpdateBlockNumberCall(pub u8);
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`quorumUpdateBlockNumber(uint8)`](quorumUpdateBlockNumberCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct quorumUpdateBlockNumberReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::primitives::aliases::U256,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<8>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (u8,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<quorumUpdateBlockNumberCall> for UnderlyingRustTuple<'_> {
fn from(value: quorumUpdateBlockNumberCall) -> Self {
(value.0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for quorumUpdateBlockNumberCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self(tuple.0)
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<quorumUpdateBlockNumberReturn> for UnderlyingRustTuple<'_> {
fn from(value: quorumUpdateBlockNumberReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for quorumUpdateBlockNumberReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for quorumUpdateBlockNumberCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Uint<8>,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::primitives::aliases::U256;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "quorumUpdateBlockNumber(uint8)";
const SELECTOR: [u8; 4] = [36u8, 154u8, 12u8, 66u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Uint<8> as alloy_sol_types::SolType>::tokenize(
&self.0,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: quorumUpdateBlockNumberReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: quorumUpdateBlockNumberReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `registerOperator(bytes,string,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(bytes,bytes32,uint256))` and selector `0xa50857bf`.
```solidity
function registerOperator(bytes memory quorumNumbers, string memory socket, IBLSApkRegistry.PubkeyRegistrationParams memory params, ISignatureUtils.SignatureWithSaltAndExpiry memory operatorSignature) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct registerOperatorCall {
#[allow(missing_docs)]
pub quorumNumbers: alloy::sol_types::private::Bytes,
#[allow(missing_docs)]
pub socket: alloy::sol_types::private::String,
#[allow(missing_docs)]
pub params:
<IBLSApkRegistry::PubkeyRegistrationParams as alloy::sol_types::SolType>::RustType,
#[allow(missing_docs)]
pub operatorSignature:
<ISignatureUtils::SignatureWithSaltAndExpiry as alloy::sol_types::SolType>::RustType,
}
///Container type for the return parameters of the [`registerOperator(bytes,string,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(bytes,bytes32,uint256))`](registerOperatorCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct registerOperatorReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Bytes,
alloy::sol_types::sol_data::String,
IBLSApkRegistry::PubkeyRegistrationParams,
ISignatureUtils::SignatureWithSaltAndExpiry,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Bytes,
alloy::sol_types::private::String,
<IBLSApkRegistry::PubkeyRegistrationParams as alloy::sol_types::SolType>::RustType,
<ISignatureUtils::SignatureWithSaltAndExpiry as alloy::sol_types::SolType>::RustType,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<registerOperatorCall> for UnderlyingRustTuple<'_> {
fn from(value: registerOperatorCall) -> Self {
(
value.quorumNumbers,
value.socket,
value.params,
value.operatorSignature,
)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for registerOperatorCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
quorumNumbers: tuple.0,
socket: tuple.1,
params: tuple.2,
operatorSignature: tuple.3,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<registerOperatorReturn> for UnderlyingRustTuple<'_> {
fn from(value: registerOperatorReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for registerOperatorReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl registerOperatorReturn {
fn _tokenize(
&self,
) -> <registerOperatorCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for registerOperatorCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Bytes,
alloy::sol_types::sol_data::String,
IBLSApkRegistry::PubkeyRegistrationParams,
ISignatureUtils::SignatureWithSaltAndExpiry,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = registerOperatorReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "registerOperator(bytes,string,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(bytes,bytes32,uint256))";
const SELECTOR: [u8; 4] = [165u8, 8u8, 87u8, 191u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self.quorumNumbers,
),
<alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
&self.socket,
),
<IBLSApkRegistry::PubkeyRegistrationParams as alloy_sol_types::SolType>::tokenize(
&self.params,
),
<ISignatureUtils::SignatureWithSaltAndExpiry as alloy_sol_types::SolType>::tokenize(
&self.operatorSignature,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
registerOperatorReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `registerOperatorWithChurn(bytes,string,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(uint8,address)[],(bytes,bytes32,uint256),(bytes,bytes32,uint256))` and selector `0x9b5d177b`.
```solidity
function registerOperatorWithChurn(bytes memory quorumNumbers, string memory socket, IBLSApkRegistry.PubkeyRegistrationParams memory params, IRegistryCoordinator.OperatorKickParam[] memory operatorKickParams, ISignatureUtils.SignatureWithSaltAndExpiry memory churnApproverSignature, ISignatureUtils.SignatureWithSaltAndExpiry memory operatorSignature) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct registerOperatorWithChurnCall {
#[allow(missing_docs)]
pub quorumNumbers: alloy::sol_types::private::Bytes,
#[allow(missing_docs)]
pub socket: alloy::sol_types::private::String,
#[allow(missing_docs)]
pub params:
<IBLSApkRegistry::PubkeyRegistrationParams as alloy::sol_types::SolType>::RustType,
#[allow(missing_docs)]
pub operatorKickParams: alloy::sol_types::private::Vec<
<IRegistryCoordinator::OperatorKickParam as alloy::sol_types::SolType>::RustType,
>,
#[allow(missing_docs)]
pub churnApproverSignature:
<ISignatureUtils::SignatureWithSaltAndExpiry as alloy::sol_types::SolType>::RustType,
#[allow(missing_docs)]
pub operatorSignature:
<ISignatureUtils::SignatureWithSaltAndExpiry as alloy::sol_types::SolType>::RustType,
}
///Container type for the return parameters of the [`registerOperatorWithChurn(bytes,string,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(uint8,address)[],(bytes,bytes32,uint256),(bytes,bytes32,uint256))`](registerOperatorWithChurnCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct registerOperatorWithChurnReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Bytes,
alloy::sol_types::sol_data::String,
IBLSApkRegistry::PubkeyRegistrationParams,
alloy::sol_types::sol_data::Array<IRegistryCoordinator::OperatorKickParam>,
ISignatureUtils::SignatureWithSaltAndExpiry,
ISignatureUtils::SignatureWithSaltAndExpiry,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Bytes,
alloy::sol_types::private::String,
<IBLSApkRegistry::PubkeyRegistrationParams as alloy::sol_types::SolType>::RustType,
alloy::sol_types::private::Vec<
<IRegistryCoordinator::OperatorKickParam as alloy::sol_types::SolType>::RustType,
>,
<ISignatureUtils::SignatureWithSaltAndExpiry as alloy::sol_types::SolType>::RustType,
<ISignatureUtils::SignatureWithSaltAndExpiry as alloy::sol_types::SolType>::RustType,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<registerOperatorWithChurnCall> for UnderlyingRustTuple<'_> {
fn from(value: registerOperatorWithChurnCall) -> Self {
(
value.quorumNumbers,
value.socket,
value.params,
value.operatorKickParams,
value.churnApproverSignature,
value.operatorSignature,
)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for registerOperatorWithChurnCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
quorumNumbers: tuple.0,
socket: tuple.1,
params: tuple.2,
operatorKickParams: tuple.3,
churnApproverSignature: tuple.4,
operatorSignature: tuple.5,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<registerOperatorWithChurnReturn> for UnderlyingRustTuple<'_> {
fn from(value: registerOperatorWithChurnReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for registerOperatorWithChurnReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl registerOperatorWithChurnReturn {
fn _tokenize(
&self,
) -> <registerOperatorWithChurnCall as alloy_sol_types::SolCall>::ReturnToken<'_>
{
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for registerOperatorWithChurnCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Bytes,
alloy::sol_types::sol_data::String,
IBLSApkRegistry::PubkeyRegistrationParams,
alloy::sol_types::sol_data::Array<IRegistryCoordinator::OperatorKickParam>,
ISignatureUtils::SignatureWithSaltAndExpiry,
ISignatureUtils::SignatureWithSaltAndExpiry,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = registerOperatorWithChurnReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "registerOperatorWithChurn(bytes,string,((uint256,uint256),(uint256,uint256),(uint256[2],uint256[2])),(uint8,address)[],(bytes,bytes32,uint256),(bytes,bytes32,uint256))";
const SELECTOR: [u8; 4] = [155u8, 93u8, 23u8, 123u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self.quorumNumbers,
),
<alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
&self.socket,
),
<IBLSApkRegistry::PubkeyRegistrationParams as alloy_sol_types::SolType>::tokenize(
&self.params,
),
<alloy::sol_types::sol_data::Array<
IRegistryCoordinator::OperatorKickParam,
> as alloy_sol_types::SolType>::tokenize(&self.operatorKickParams),
<ISignatureUtils::SignatureWithSaltAndExpiry as alloy_sol_types::SolType>::tokenize(
&self.churnApproverSignature,
),
<ISignatureUtils::SignatureWithSaltAndExpiry as alloy_sol_types::SolType>::tokenize(
&self.operatorSignature,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
registerOperatorWithChurnReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `registries(uint256)` and selector `0x6347c900`.
```solidity
function registries(uint256) external view returns (address);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct registriesCall(pub alloy::sol_types::private::primitives::aliases::U256);
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`registries(uint256)`](registriesCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct registriesReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<registriesCall> for UnderlyingRustTuple<'_> {
fn from(value: registriesCall) -> Self {
(value.0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for registriesCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self(tuple.0)
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<registriesReturn> for UnderlyingRustTuple<'_> {
fn from(value: registriesReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for registriesReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for registriesCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "registries(uint256)";
const SELECTOR: [u8; 4] = [99u8, 71u8, 201u8, 0u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.0,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: registriesReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: registriesReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `renounceOwnership()` and selector `0x715018a6`.
```solidity
function renounceOwnership() external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct renounceOwnershipCall;
///Container type for the return parameters of the [`renounceOwnership()`](renounceOwnershipCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct renounceOwnershipReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<renounceOwnershipCall> for UnderlyingRustTuple<'_> {
fn from(value: renounceOwnershipCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for renounceOwnershipCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<renounceOwnershipReturn> for UnderlyingRustTuple<'_> {
fn from(value: renounceOwnershipReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for renounceOwnershipReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl renounceOwnershipReturn {
fn _tokenize(
&self,
) -> <renounceOwnershipCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for renounceOwnershipCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = renounceOwnershipReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "renounceOwnership()";
const SELECTOR: [u8; 4] = [113u8, 80u8, 24u8, 166u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
renounceOwnershipReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `serviceManager()` and selector `0x3998fdd3`.
```solidity
function serviceManager() external view returns (address);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct serviceManagerCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`serviceManager()`](serviceManagerCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct serviceManagerReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<serviceManagerCall> for UnderlyingRustTuple<'_> {
fn from(value: serviceManagerCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for serviceManagerCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<serviceManagerReturn> for UnderlyingRustTuple<'_> {
fn from(value: serviceManagerReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for serviceManagerReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for serviceManagerCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "serviceManager()";
const SELECTOR: [u8; 4] = [57u8, 152u8, 253u8, 211u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: serviceManagerReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: serviceManagerReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `setChurnApprover(address)` and selector `0x29d1e0c3`.
```solidity
function setChurnApprover(address _churnApprover) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct setChurnApproverCall {
#[allow(missing_docs)]
pub _churnApprover: alloy::sol_types::private::Address,
}
///Container type for the return parameters of the [`setChurnApprover(address)`](setChurnApproverCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct setChurnApproverReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<setChurnApproverCall> for UnderlyingRustTuple<'_> {
fn from(value: setChurnApproverCall) -> Self {
(value._churnApprover,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for setChurnApproverCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
_churnApprover: tuple.0,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<setChurnApproverReturn> for UnderlyingRustTuple<'_> {
fn from(value: setChurnApproverReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for setChurnApproverReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl setChurnApproverReturn {
fn _tokenize(
&self,
) -> <setChurnApproverCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for setChurnApproverCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = setChurnApproverReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "setChurnApprover(address)";
const SELECTOR: [u8; 4] = [41u8, 209u8, 224u8, 195u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self._churnApprover,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
setChurnApproverReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `setEjectionCooldown(uint256)` and selector `0x0d3f2134`.
```solidity
function setEjectionCooldown(uint256 _ejectionCooldown) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct setEjectionCooldownCall {
#[allow(missing_docs)]
pub _ejectionCooldown: alloy::sol_types::private::primitives::aliases::U256,
}
///Container type for the return parameters of the [`setEjectionCooldown(uint256)`](setEjectionCooldownCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct setEjectionCooldownReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<setEjectionCooldownCall> for UnderlyingRustTuple<'_> {
fn from(value: setEjectionCooldownCall) -> Self {
(value._ejectionCooldown,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for setEjectionCooldownCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
_ejectionCooldown: tuple.0,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<setEjectionCooldownReturn> for UnderlyingRustTuple<'_> {
fn from(value: setEjectionCooldownReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for setEjectionCooldownReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl setEjectionCooldownReturn {
fn _tokenize(
&self,
) -> <setEjectionCooldownCall as alloy_sol_types::SolCall>::ReturnToken<'_>
{
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for setEjectionCooldownCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = setEjectionCooldownReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "setEjectionCooldown(uint256)";
const SELECTOR: [u8; 4] = [13u8, 63u8, 33u8, 52u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self._ejectionCooldown,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
setEjectionCooldownReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `setEjector(address)` and selector `0x2cdd1e86`.
```solidity
function setEjector(address _ejector) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct setEjectorCall {
#[allow(missing_docs)]
pub _ejector: alloy::sol_types::private::Address,
}
///Container type for the return parameters of the [`setEjector(address)`](setEjectorCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct setEjectorReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<setEjectorCall> for UnderlyingRustTuple<'_> {
fn from(value: setEjectorCall) -> Self {
(value._ejector,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for setEjectorCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _ejector: tuple.0 }
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<setEjectorReturn> for UnderlyingRustTuple<'_> {
fn from(value: setEjectorReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for setEjectorReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl setEjectorReturn {
fn _tokenize(&self) -> <setEjectorCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for setEjectorCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = setEjectorReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "setEjector(address)";
const SELECTOR: [u8; 4] = [44u8, 221u8, 30u8, 134u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self._ejector,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
setEjectorReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `setOperatorSetParams(uint8,(uint32,uint16,uint16))` and selector `0x5b0b829f`.
```solidity
function setOperatorSetParams(uint8 quorumNumber, IRegistryCoordinator.OperatorSetParam memory operatorSetParams) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct setOperatorSetParamsCall {
#[allow(missing_docs)]
pub quorumNumber: u8,
#[allow(missing_docs)]
pub operatorSetParams:
<IRegistryCoordinator::OperatorSetParam as alloy::sol_types::SolType>::RustType,
}
///Container type for the return parameters of the [`setOperatorSetParams(uint8,(uint32,uint16,uint16))`](setOperatorSetParamsCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct setOperatorSetParamsReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Uint<8>,
IRegistryCoordinator::OperatorSetParam,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
u8,
<IRegistryCoordinator::OperatorSetParam as alloy::sol_types::SolType>::RustType,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<setOperatorSetParamsCall> for UnderlyingRustTuple<'_> {
fn from(value: setOperatorSetParamsCall) -> Self {
(value.quorumNumber, value.operatorSetParams)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for setOperatorSetParamsCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
quorumNumber: tuple.0,
operatorSetParams: tuple.1,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<setOperatorSetParamsReturn> for UnderlyingRustTuple<'_> {
fn from(value: setOperatorSetParamsReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for setOperatorSetParamsReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl setOperatorSetParamsReturn {
fn _tokenize(
&self,
) -> <setOperatorSetParamsCall as alloy_sol_types::SolCall>::ReturnToken<'_>
{
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for setOperatorSetParamsCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Uint<8>,
IRegistryCoordinator::OperatorSetParam,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = setOperatorSetParamsReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "setOperatorSetParams(uint8,(uint32,uint16,uint16))";
const SELECTOR: [u8; 4] = [91u8, 11u8, 130u8, 159u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Uint<8> as alloy_sol_types::SolType>::tokenize(
&self.quorumNumber,
),
<IRegistryCoordinator::OperatorSetParam as alloy_sol_types::SolType>::tokenize(
&self.operatorSetParams,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
setOperatorSetParamsReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `setPauserRegistry(address)` and selector `0x10d67a2f`.
```solidity
function setPauserRegistry(address newPauserRegistry) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct setPauserRegistryCall {
#[allow(missing_docs)]
pub newPauserRegistry: alloy::sol_types::private::Address,
}
///Container type for the return parameters of the [`setPauserRegistry(address)`](setPauserRegistryCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct setPauserRegistryReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<setPauserRegistryCall> for UnderlyingRustTuple<'_> {
fn from(value: setPauserRegistryCall) -> Self {
(value.newPauserRegistry,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for setPauserRegistryCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
newPauserRegistry: tuple.0,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<setPauserRegistryReturn> for UnderlyingRustTuple<'_> {
fn from(value: setPauserRegistryReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for setPauserRegistryReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl setPauserRegistryReturn {
fn _tokenize(
&self,
) -> <setPauserRegistryCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for setPauserRegistryCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = setPauserRegistryReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "setPauserRegistry(address)";
const SELECTOR: [u8; 4] = [16u8, 214u8, 122u8, 47u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.newPauserRegistry,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
setPauserRegistryReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `socketRegistry()` and selector `0xea32afae`.
```solidity
function socketRegistry() external view returns (address);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct socketRegistryCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`socketRegistry()`](socketRegistryCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct socketRegistryReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<socketRegistryCall> for UnderlyingRustTuple<'_> {
fn from(value: socketRegistryCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for socketRegistryCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<socketRegistryReturn> for UnderlyingRustTuple<'_> {
fn from(value: socketRegistryReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for socketRegistryReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for socketRegistryCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "socketRegistry()";
const SELECTOR: [u8; 4] = [234u8, 50u8, 175u8, 174u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: socketRegistryReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: socketRegistryReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `stakeRegistry()` and selector `0x68304835`.
```solidity
function stakeRegistry() external view returns (address);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct stakeRegistryCall;
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`stakeRegistry()`](stakeRegistryCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct stakeRegistryReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<stakeRegistryCall> for UnderlyingRustTuple<'_> {
fn from(value: stakeRegistryCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for stakeRegistryCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<stakeRegistryReturn> for UnderlyingRustTuple<'_> {
fn from(value: stakeRegistryReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for stakeRegistryReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for stakeRegistryCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "stakeRegistry()";
const SELECTOR: [u8; 4] = [104u8, 48u8, 72u8, 53u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data).map(
|r| {
let r: stakeRegistryReturn = r.into();
r._0
},
)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(|r| {
let r: stakeRegistryReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `transferOwnership(address)` and selector `0xf2fde38b`.
```solidity
function transferOwnership(address newOwner) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct transferOwnershipCall {
#[allow(missing_docs)]
pub newOwner: alloy::sol_types::private::Address,
}
///Container type for the return parameters of the [`transferOwnership(address)`](transferOwnershipCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct transferOwnershipReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<transferOwnershipCall> for UnderlyingRustTuple<'_> {
fn from(value: transferOwnershipCall) -> Self {
(value.newOwner,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for transferOwnershipCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { newOwner: tuple.0 }
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<transferOwnershipReturn> for UnderlyingRustTuple<'_> {
fn from(value: transferOwnershipReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for transferOwnershipReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl transferOwnershipReturn {
fn _tokenize(
&self,
) -> <transferOwnershipCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for transferOwnershipCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Address,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = transferOwnershipReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "transferOwnership(address)";
const SELECTOR: [u8; 4] = [242u8, 253u8, 227u8, 139u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.newOwner,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
transferOwnershipReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `unpause(uint256)` and selector `0xfabc1cbc`.
```solidity
function unpause(uint256 newPausedStatus) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct unpauseCall {
#[allow(missing_docs)]
pub newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
}
///Container type for the return parameters of the [`unpause(uint256)`](unpauseCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct unpauseReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Uint<256>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::primitives::aliases::U256,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<unpauseCall> for UnderlyingRustTuple<'_> {
fn from(value: unpauseCall) -> Self {
(value.newPausedStatus,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for unpauseCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
newPausedStatus: tuple.0,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<unpauseReturn> for UnderlyingRustTuple<'_> {
fn from(value: unpauseReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for unpauseReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl unpauseReturn {
fn _tokenize(&self) -> <unpauseCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for unpauseCall {
type Parameters<'a> = (alloy::sol_types::sol_data::Uint<256>,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = unpauseReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "unpause(uint256)";
const SELECTOR: [u8; 4] = [250u8, 188u8, 28u8, 188u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Uint<256> as alloy_sol_types::SolType>::tokenize(
&self.newPausedStatus,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
unpauseReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `updateOperators(address[])` and selector `0x00cf2ab5`.
```solidity
function updateOperators(address[] memory operators) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct updateOperatorsCall {
#[allow(missing_docs)]
pub operators: alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
}
///Container type for the return parameters of the [`updateOperators(address[])`](updateOperatorsCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct updateOperatorsReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> =
(alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> =
(alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<updateOperatorsCall> for UnderlyingRustTuple<'_> {
fn from(value: updateOperatorsCall) -> Self {
(value.operators,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for updateOperatorsCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { operators: tuple.0 }
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<updateOperatorsReturn> for UnderlyingRustTuple<'_> {
fn from(value: updateOperatorsReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for updateOperatorsReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl updateOperatorsReturn {
fn _tokenize(
&self,
) -> <updateOperatorsCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for updateOperatorsCall {
type Parameters<'a> =
(alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = updateOperatorsReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "updateOperators(address[])";
const SELECTOR: [u8; 4] = [0u8, 207u8, 42u8, 181u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Address,
> as alloy_sol_types::SolType>::tokenize(
&self.operators
),)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
updateOperatorsReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `updateOperatorsForQuorum(address[][],bytes)` and selector `0x5140a548`.
```solidity
function updateOperatorsForQuorum(address[][] memory operatorsPerQuorum, bytes memory quorumNumbers) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct updateOperatorsForQuorumCall {
#[allow(missing_docs)]
pub operatorsPerQuorum: alloy::sol_types::private::Vec<
alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
>,
#[allow(missing_docs)]
pub quorumNumbers: alloy::sol_types::private::Bytes,
}
///Container type for the return parameters of the [`updateOperatorsForQuorum(address[][],bytes)`](updateOperatorsForQuorumCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct updateOperatorsForQuorumReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
>,
alloy::sol_types::sol_data::Bytes,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Vec<
alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
>,
alloy::sol_types::private::Bytes,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<updateOperatorsForQuorumCall> for UnderlyingRustTuple<'_> {
fn from(value: updateOperatorsForQuorumCall) -> Self {
(value.operatorsPerQuorum, value.quorumNumbers)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for updateOperatorsForQuorumCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
operatorsPerQuorum: tuple.0,
quorumNumbers: tuple.1,
}
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<updateOperatorsForQuorumReturn> for UnderlyingRustTuple<'_> {
fn from(value: updateOperatorsForQuorumReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for updateOperatorsForQuorumReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl updateOperatorsForQuorumReturn {
fn _tokenize(
&self,
) -> <updateOperatorsForQuorumCall as alloy_sol_types::SolCall>::ReturnToken<'_>
{
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for updateOperatorsForQuorumCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
>,
alloy::sol_types::sol_data::Bytes,
);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = updateOperatorsForQuorumReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "updateOperatorsForQuorum(address[][],bytes)";
const SELECTOR: [u8; 4] = [81u8, 64u8, 165u8, 72u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Array<
alloy::sol_types::sol_data::Array<alloy::sol_types::sol_data::Address>,
> as alloy_sol_types::SolType>::tokenize(
&self.operatorsPerQuorum
),
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self.quorumNumbers,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
updateOperatorsForQuorumReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize, Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `updateSocket(string)` and selector `0x0cf4b767`.
```solidity
function updateSocket(string memory socket) external;
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct updateSocketCall {
#[allow(missing_docs)]
pub socket: alloy::sol_types::private::String,
}
///Container type for the return parameters of the [`updateSocket(string)`](updateSocketCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct updateSocketReturn {}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::String,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::String,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<updateSocketCall> for UnderlyingRustTuple<'_> {
fn from(value: updateSocketCall) -> Self {
(value.socket,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for updateSocketCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { socket: tuple.0 }
}
}
}
{
#[doc(hidden)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<updateSocketReturn> for UnderlyingRustTuple<'_> {
fn from(value: updateSocketReturn) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for updateSocketReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {}
}
}
}
impl updateSocketReturn {
fn _tokenize(&self) -> <updateSocketCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
()
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for updateSocketCall {
type Parameters<'a> = (alloy::sol_types::sol_data::String,);
type Token<'a> = <Self::Parameters<'a> as alloy_sol_types::SolType>::Token<'a>;
type Return = updateSocketReturn;
type ReturnTuple<'a> = ();
type ReturnToken<'a> = <Self::ReturnTuple<'a> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "updateSocket(string)";
const SELECTOR: [u8; 4] = [12u8, 244u8, 183u8, 103u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::String as alloy_sol_types::SolType>::tokenize(
&self.socket,
),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
updateSocketReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<'_> as alloy_sol_types::SolType>::abi_decode_sequence_validate(
data,
)
.map(Into::into)
}
}
};
///Container for all the [`RegistryCoordinator`](self) function calls.
#[derive(serde::Serialize, serde::Deserialize)]
pub enum RegistryCoordinatorCalls {
#[allow(missing_docs)]
OPERATOR_CHURN_APPROVAL_TYPEHASH(OPERATOR_CHURN_APPROVAL_TYPEHASHCall),
#[allow(missing_docs)]
PUBKEY_REGISTRATION_TYPEHASH(PUBKEY_REGISTRATION_TYPEHASHCall),
#[allow(missing_docs)]
blsApkRegistry(blsApkRegistryCall),
#[allow(missing_docs)]
calculateOperatorChurnApprovalDigestHash(calculateOperatorChurnApprovalDigestHashCall),
#[allow(missing_docs)]
churnApprover(churnApproverCall),
#[allow(missing_docs)]
createQuorum(createQuorumCall),
#[allow(missing_docs)]
deregisterOperator(deregisterOperatorCall),
#[allow(missing_docs)]
ejectOperator(ejectOperatorCall),
#[allow(missing_docs)]
ejectionCooldown(ejectionCooldownCall),
#[allow(missing_docs)]
ejector(ejectorCall),
#[allow(missing_docs)]
getCurrentQuorumBitmap(getCurrentQuorumBitmapCall),
#[allow(missing_docs)]
getOperator(getOperatorCall),
#[allow(missing_docs)]
getOperatorFromId(getOperatorFromIdCall),
#[allow(missing_docs)]
getOperatorId(getOperatorIdCall),
#[allow(missing_docs)]
getOperatorSetParams(getOperatorSetParamsCall),
#[allow(missing_docs)]
getOperatorStatus(getOperatorStatusCall),
#[allow(missing_docs)]
getQuorumBitmapAtBlockNumberByIndex(getQuorumBitmapAtBlockNumberByIndexCall),
#[allow(missing_docs)]
getQuorumBitmapHistoryLength(getQuorumBitmapHistoryLengthCall),
#[allow(missing_docs)]
getQuorumBitmapIndicesAtBlockNumber(getQuorumBitmapIndicesAtBlockNumberCall),
#[allow(missing_docs)]
getQuorumBitmapUpdateByIndex(getQuorumBitmapUpdateByIndexCall),
#[allow(missing_docs)]
indexRegistry(indexRegistryCall),
#[allow(missing_docs)]
initialize(initializeCall),
#[allow(missing_docs)]
isChurnApproverSaltUsed(isChurnApproverSaltUsedCall),
#[allow(missing_docs)]
lastEjectionTimestamp(lastEjectionTimestampCall),
#[allow(missing_docs)]
numRegistries(numRegistriesCall),
#[allow(missing_docs)]
owner(ownerCall),
#[allow(missing_docs)]
pause(pauseCall),
#[allow(missing_docs)]
pauseAll(pauseAllCall),
#[allow(missing_docs)]
paused_0(paused_0Call),
#[allow(missing_docs)]
paused_1(paused_1Call),
#[allow(missing_docs)]
pauserRegistry(pauserRegistryCall),
#[allow(missing_docs)]
pubkeyRegistrationMessageHash(pubkeyRegistrationMessageHashCall),
#[allow(missing_docs)]
quorumCount(quorumCountCall),
#[allow(missing_docs)]
quorumUpdateBlockNumber(quorumUpdateBlockNumberCall),
#[allow(missing_docs)]
registerOperator(registerOperatorCall),
#[allow(missing_docs)]
registerOperatorWithChurn(registerOperatorWithChurnCall),
#[allow(missing_docs)]
registries(registriesCall),
#[allow(missing_docs)]
renounceOwnership(renounceOwnershipCall),
#[allow(missing_docs)]
serviceManager(serviceManagerCall),
#[allow(missing_docs)]
setChurnApprover(setChurnApproverCall),
#[allow(missing_docs)]
setEjectionCooldown(setEjectionCooldownCall),
#[allow(missing_docs)]
setEjector(setEjectorCall),
#[allow(missing_docs)]
setOperatorSetParams(setOperatorSetParamsCall),
#[allow(missing_docs)]
setPauserRegistry(setPauserRegistryCall),
#[allow(missing_docs)]
socketRegistry(socketRegistryCall),
#[allow(missing_docs)]
stakeRegistry(stakeRegistryCall),
#[allow(missing_docs)]
transferOwnership(transferOwnershipCall),
#[allow(missing_docs)]
unpause(unpauseCall),
#[allow(missing_docs)]
updateOperators(updateOperatorsCall),
#[allow(missing_docs)]
updateOperatorsForQuorum(updateOperatorsForQuorumCall),
#[allow(missing_docs)]
updateSocket(updateSocketCall),
}
#[automatically_derived]
impl RegistryCoordinatorCalls {
/// All the selectors of this enum.
///
/// Note that the selectors might not be in the same order as the variants.
/// No guarantees are made about the order of the selectors.
///
/// Prefer using `SolInterface` methods instead.
pub const SELECTORS: &'static [[u8; 4usize]] = &[
[0u8, 207u8, 42u8, 181u8],
[3u8, 253u8, 52u8, 146u8],
[4u8, 236u8, 99u8, 81u8],
[5u8, 67u8, 16u8, 230u8],
[12u8, 244u8, 183u8, 103u8],
[13u8, 63u8, 33u8, 52u8],
[16u8, 214u8, 122u8, 47u8],
[18u8, 94u8, 5u8, 132u8],
[19u8, 84u8, 42u8, 78u8],
[19u8, 100u8, 57u8, 221u8],
[20u8, 120u8, 133u8, 31u8],
[30u8, 184u8, 18u8, 218u8],
[36u8, 154u8, 12u8, 66u8],
[40u8, 246u8, 27u8, 49u8],
[41u8, 107u8, 176u8, 100u8],
[41u8, 209u8, 224u8, 195u8],
[44u8, 221u8, 30u8, 134u8],
[57u8, 152u8, 253u8, 211u8],
[60u8, 42u8, 127u8, 76u8],
[81u8, 64u8, 165u8, 72u8],
[88u8, 101u8, 198u8, 12u8],
[89u8, 92u8, 106u8, 103u8],
[90u8, 200u8, 106u8, 183u8],
[91u8, 11u8, 130u8, 159u8],
[92u8, 151u8, 90u8, 187u8],
[93u8, 244u8, 89u8, 70u8],
[99u8, 71u8, 201u8, 0u8],
[104u8, 48u8, 72u8, 53u8],
[110u8, 59u8, 23u8, 219u8],
[113u8, 80u8, 24u8, 166u8],
[132u8, 202u8, 82u8, 19u8],
[135u8, 30u8, 240u8, 73u8],
[136u8, 111u8, 17u8, 149u8],
[141u8, 165u8, 203u8, 91u8],
[154u8, 161u8, 101u8, 61u8],
[155u8, 93u8, 23u8, 123u8],
[158u8, 153u8, 35u8, 194u8],
[159u8, 234u8, 184u8, 89u8],
[165u8, 8u8, 87u8, 191u8],
[169u8, 111u8, 120u8, 62u8],
[195u8, 145u8, 66u8, 94u8],
[202u8, 13u8, 232u8, 130u8],
[202u8, 79u8, 45u8, 151u8],
[215u8, 45u8, 141u8, 214u8],
[215u8, 91u8, 76u8, 136u8],
[221u8, 130u8, 131u8, 243u8],
[230u8, 87u8, 151u8, 173u8],
[234u8, 50u8, 175u8, 174u8],
[242u8, 253u8, 227u8, 139u8],
[250u8, 188u8, 28u8, 188u8],
[253u8, 57u8, 16u8, 90u8],
];
}
#[automatically_derived]
impl alloy_sol_types::SolInterface for RegistryCoordinatorCalls {
const NAME: &'static str = "RegistryCoordinatorCalls";
const MIN_DATA_LENGTH: usize = 0usize;
const COUNT: usize = 51usize;
#[inline]
fn selector(&self) -> [u8; 4] {
match self {
Self::OPERATOR_CHURN_APPROVAL_TYPEHASH(_) => {
<OPERATOR_CHURN_APPROVAL_TYPEHASHCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::PUBKEY_REGISTRATION_TYPEHASH(_) => {
<PUBKEY_REGISTRATION_TYPEHASHCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::blsApkRegistry(_) => {
<blsApkRegistryCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::calculateOperatorChurnApprovalDigestHash(_) => {
<calculateOperatorChurnApprovalDigestHashCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::churnApprover(_) => {
<churnApproverCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::createQuorum(_) => {
<createQuorumCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::deregisterOperator(_) => {
<deregisterOperatorCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::ejectOperator(_) => {
<ejectOperatorCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::ejectionCooldown(_) => {
<ejectionCooldownCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::ejector(_) => <ejectorCall as alloy_sol_types::SolCall>::SELECTOR,
Self::getCurrentQuorumBitmap(_) => {
<getCurrentQuorumBitmapCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getOperator(_) => {
<getOperatorCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getOperatorFromId(_) => {
<getOperatorFromIdCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getOperatorId(_) => {
<getOperatorIdCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getOperatorSetParams(_) => {
<getOperatorSetParamsCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getOperatorStatus(_) => {
<getOperatorStatusCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getQuorumBitmapAtBlockNumberByIndex(_) => {
<getQuorumBitmapAtBlockNumberByIndexCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getQuorumBitmapHistoryLength(_) => {
<getQuorumBitmapHistoryLengthCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getQuorumBitmapIndicesAtBlockNumber(_) => {
<getQuorumBitmapIndicesAtBlockNumberCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getQuorumBitmapUpdateByIndex(_) => {
<getQuorumBitmapUpdateByIndexCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::indexRegistry(_) => {
<indexRegistryCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::initialize(_) => {
<initializeCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::isChurnApproverSaltUsed(_) => {
<isChurnApproverSaltUsedCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::lastEjectionTimestamp(_) => {
<lastEjectionTimestampCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::numRegistries(_) => {
<numRegistriesCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::owner(_) => <ownerCall as alloy_sol_types::SolCall>::SELECTOR,
Self::pause(_) => <pauseCall as alloy_sol_types::SolCall>::SELECTOR,
Self::pauseAll(_) => <pauseAllCall as alloy_sol_types::SolCall>::SELECTOR,
Self::paused_0(_) => <paused_0Call as alloy_sol_types::SolCall>::SELECTOR,
Self::paused_1(_) => <paused_1Call as alloy_sol_types::SolCall>::SELECTOR,
Self::pauserRegistry(_) => {
<pauserRegistryCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::pubkeyRegistrationMessageHash(_) => {
<pubkeyRegistrationMessageHashCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::quorumCount(_) => {
<quorumCountCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::quorumUpdateBlockNumber(_) => {
<quorumUpdateBlockNumberCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::registerOperator(_) => {
<registerOperatorCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::registerOperatorWithChurn(_) => {
<registerOperatorWithChurnCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::registries(_) => {
<registriesCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::renounceOwnership(_) => {
<renounceOwnershipCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::serviceManager(_) => {
<serviceManagerCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::setChurnApprover(_) => {
<setChurnApproverCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::setEjectionCooldown(_) => {
<setEjectionCooldownCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::setEjector(_) => {
<setEjectorCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::setOperatorSetParams(_) => {
<setOperatorSetParamsCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::setPauserRegistry(_) => {
<setPauserRegistryCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::socketRegistry(_) => {
<socketRegistryCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::stakeRegistry(_) => {
<stakeRegistryCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::transferOwnership(_) => {
<transferOwnershipCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::unpause(_) => <unpauseCall as alloy_sol_types::SolCall>::SELECTOR,
Self::updateOperators(_) => {
<updateOperatorsCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::updateOperatorsForQuorum(_) => {
<updateOperatorsForQuorumCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::updateSocket(_) => {
<updateSocketCall as alloy_sol_types::SolCall>::SELECTOR
}
}
}
#[inline]
fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
Self::SELECTORS.get(i).copied()
}
#[inline]
fn valid_selector(selector: [u8; 4]) -> bool {
Self::SELECTORS.binary_search(&selector).is_ok()
}
#[inline]
#[allow(non_snake_case)]
fn abi_decode_raw(selector: [u8; 4], data: &[u8]) -> alloy_sol_types::Result<Self> {
static DECODE_SHIMS: &[fn(
&[u8],
)
-> alloy_sol_types::Result<RegistryCoordinatorCalls>] = &[
{
fn updateOperators(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<updateOperatorsCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::updateOperators)
}
updateOperators
},
{
fn getQuorumBitmapHistoryLength(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<getQuorumBitmapHistoryLengthCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(RegistryCoordinatorCalls::getQuorumBitmapHistoryLength)
}
getQuorumBitmapHistoryLength
},
{
fn getQuorumBitmapAtBlockNumberByIndex(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<getQuorumBitmapAtBlockNumberByIndexCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(
RegistryCoordinatorCalls::getQuorumBitmapAtBlockNumberByIndex,
)
}
getQuorumBitmapAtBlockNumberByIndex
},
{
fn churnApprover(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<churnApproverCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::churnApprover)
}
churnApprover
},
{
fn updateSocket(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<updateSocketCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::updateSocket)
}
updateSocket
},
{
fn setEjectionCooldown(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<setEjectionCooldownCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::setEjectionCooldown)
}
setEjectionCooldown
},
{
fn setPauserRegistry(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<setPauserRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::setPauserRegistry)
}
setPauserRegistry
},
{
fn lastEjectionTimestamp(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<lastEjectionTimestampCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(RegistryCoordinatorCalls::lastEjectionTimestamp)
}
lastEjectionTimestamp
},
{
fn getOperatorId(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<getOperatorIdCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::getOperatorId)
}
getOperatorId
},
{
fn pause(data: &[u8]) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<pauseCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::pause)
}
pause
},
{
fn isChurnApproverSaltUsed(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<isChurnApproverSaltUsedCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(RegistryCoordinatorCalls::isChurnApproverSaltUsed)
}
isChurnApproverSaltUsed
},
{
fn getQuorumBitmapUpdateByIndex(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<getQuorumBitmapUpdateByIndexCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(RegistryCoordinatorCalls::getQuorumBitmapUpdateByIndex)
}
getQuorumBitmapUpdateByIndex
},
{
fn quorumUpdateBlockNumber(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<quorumUpdateBlockNumberCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(RegistryCoordinatorCalls::quorumUpdateBlockNumber)
}
quorumUpdateBlockNumber
},
{
fn ejector(data: &[u8]) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<ejectorCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::ejector)
}
ejector
},
{
fn getOperatorFromId(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<getOperatorFromIdCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::getOperatorFromId)
}
getOperatorFromId
},
{
fn setChurnApprover(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<setChurnApproverCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::setChurnApprover)
}
setChurnApprover
},
{
fn setEjector(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<setEjectorCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::setEjector)
}
setEjector
},
{
fn serviceManager(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<serviceManagerCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::serviceManager)
}
serviceManager
},
{
fn pubkeyRegistrationMessageHash(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<pubkeyRegistrationMessageHashCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(RegistryCoordinatorCalls::pubkeyRegistrationMessageHash)
}
pubkeyRegistrationMessageHash
},
{
fn updateOperatorsForQuorum(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<updateOperatorsForQuorumCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(RegistryCoordinatorCalls::updateOperatorsForQuorum)
}
updateOperatorsForQuorum
},
{
fn getOperator(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<getOperatorCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::getOperator)
}
getOperator
},
{
fn pauseAll(data: &[u8]) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<pauseAllCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::pauseAll)
}
pauseAll
},
{
fn paused_0(data: &[u8]) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<paused_0Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::paused_0)
}
paused_0
},
{
fn setOperatorSetParams(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<setOperatorSetParamsCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::setOperatorSetParams)
}
setOperatorSetParams
},
{
fn paused_1(data: &[u8]) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<paused_1Call as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::paused_1)
}
paused_1
},
{
fn blsApkRegistry(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<blsApkRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::blsApkRegistry)
}
blsApkRegistry
},
{
fn registries(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<registriesCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::registries)
}
registries
},
{
fn stakeRegistry(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<stakeRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::stakeRegistry)
}
stakeRegistry
},
{
fn ejectOperator(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<ejectOperatorCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::ejectOperator)
}
ejectOperator
},
{
fn renounceOwnership(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<renounceOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::renounceOwnership)
}
renounceOwnership
},
{
fn calculateOperatorChurnApprovalDigestHash(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<calculateOperatorChurnApprovalDigestHashCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(
RegistryCoordinatorCalls::calculateOperatorChurnApprovalDigestHash,
)
}
calculateOperatorChurnApprovalDigestHash
},
{
fn getCurrentQuorumBitmap(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<getCurrentQuorumBitmapCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(RegistryCoordinatorCalls::getCurrentQuorumBitmap)
}
getCurrentQuorumBitmap
},
{
fn pauserRegistry(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<pauserRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::pauserRegistry)
}
pauserRegistry
},
{
fn owner(data: &[u8]) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<ownerCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::owner)
}
owner
},
{
fn quorumCount(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<quorumCountCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::quorumCount)
}
quorumCount
},
{
fn registerOperatorWithChurn(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<registerOperatorWithChurnCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(RegistryCoordinatorCalls::registerOperatorWithChurn)
}
registerOperatorWithChurn
},
{
fn indexRegistry(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<indexRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::indexRegistry)
}
indexRegistry
},
{
fn PUBKEY_REGISTRATION_TYPEHASH(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<PUBKEY_REGISTRATION_TYPEHASHCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(RegistryCoordinatorCalls::PUBKEY_REGISTRATION_TYPEHASH)
}
PUBKEY_REGISTRATION_TYPEHASH
},
{
fn registerOperator(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<registerOperatorCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::registerOperator)
}
registerOperator
},
{
fn ejectionCooldown(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<ejectionCooldownCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::ejectionCooldown)
}
ejectionCooldown
},
{
fn getQuorumBitmapIndicesAtBlockNumber(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<getQuorumBitmapIndicesAtBlockNumberCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(
RegistryCoordinatorCalls::getQuorumBitmapIndicesAtBlockNumber,
)
}
getQuorumBitmapIndicesAtBlockNumber
},
{
fn OPERATOR_CHURN_APPROVAL_TYPEHASH(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<OPERATOR_CHURN_APPROVAL_TYPEHASHCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(
RegistryCoordinatorCalls::OPERATOR_CHURN_APPROVAL_TYPEHASH,
)
}
OPERATOR_CHURN_APPROVAL_TYPEHASH
},
{
fn deregisterOperator(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<deregisterOperatorCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::deregisterOperator)
}
deregisterOperator
},
{
fn numRegistries(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<numRegistriesCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::numRegistries)
}
numRegistries
},
{
fn createQuorum(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<createQuorumCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::createQuorum)
}
createQuorum
},
{
fn initialize(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<initializeCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::initialize)
}
initialize
},
{
fn getOperatorSetParams(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<getOperatorSetParamsCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::getOperatorSetParams)
}
getOperatorSetParams
},
{
fn socketRegistry(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<socketRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::socketRegistry)
}
socketRegistry
},
{
fn transferOwnership(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<transferOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::transferOwnership)
}
transferOwnership
},
{
fn unpause(data: &[u8]) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<unpauseCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::unpause)
}
unpause
},
{
fn getOperatorStatus(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<getOperatorStatusCall as alloy_sol_types::SolCall>::abi_decode_raw(data)
.map(RegistryCoordinatorCalls::getOperatorStatus)
}
getOperatorStatus
},
];
let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
return Err(alloy_sol_types::Error::unknown_selector(
<Self as alloy_sol_types::SolInterface>::NAME,
selector,
));
};
DECODE_SHIMS[idx](data)
}
#[inline]
#[allow(non_snake_case)]
fn abi_decode_raw_validate(
selector: [u8; 4],
data: &[u8],
) -> alloy_sol_types::Result<Self> {
static DECODE_VALIDATE_SHIMS: &[fn(
&[u8],
) -> alloy_sol_types::Result<
RegistryCoordinatorCalls,
>] = &[
{
fn updateOperators(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<updateOperatorsCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::updateOperators)
}
updateOperators
},
{
fn getQuorumBitmapHistoryLength(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<getQuorumBitmapHistoryLengthCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::getQuorumBitmapHistoryLength)
}
getQuorumBitmapHistoryLength
},
{
fn getQuorumBitmapAtBlockNumberByIndex(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<getQuorumBitmapAtBlockNumberByIndexCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(
RegistryCoordinatorCalls::getQuorumBitmapAtBlockNumberByIndex,
)
}
getQuorumBitmapAtBlockNumberByIndex
},
{
fn churnApprover(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<churnApproverCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::churnApprover)
}
churnApprover
},
{
fn updateSocket(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<updateSocketCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::updateSocket)
}
updateSocket
},
{
fn setEjectionCooldown(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<setEjectionCooldownCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::setEjectionCooldown)
}
setEjectionCooldown
},
{
fn setPauserRegistry(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<setPauserRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::setPauserRegistry)
}
setPauserRegistry
},
{
fn lastEjectionTimestamp(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<lastEjectionTimestampCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::lastEjectionTimestamp)
}
lastEjectionTimestamp
},
{
fn getOperatorId(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<getOperatorIdCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::getOperatorId)
}
getOperatorId
},
{
fn pause(data: &[u8]) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<pauseCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(RegistryCoordinatorCalls::pause)
}
pause
},
{
fn isChurnApproverSaltUsed(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<isChurnApproverSaltUsedCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::isChurnApproverSaltUsed)
}
isChurnApproverSaltUsed
},
{
fn getQuorumBitmapUpdateByIndex(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<getQuorumBitmapUpdateByIndexCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::getQuorumBitmapUpdateByIndex)
}
getQuorumBitmapUpdateByIndex
},
{
fn quorumUpdateBlockNumber(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<quorumUpdateBlockNumberCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::quorumUpdateBlockNumber)
}
quorumUpdateBlockNumber
},
{
fn ejector(data: &[u8]) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<ejectorCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(RegistryCoordinatorCalls::ejector)
}
ejector
},
{
fn getOperatorFromId(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<getOperatorFromIdCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::getOperatorFromId)
}
getOperatorFromId
},
{
fn setChurnApprover(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<setChurnApproverCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::setChurnApprover)
}
setChurnApprover
},
{
fn setEjector(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<setEjectorCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(RegistryCoordinatorCalls::setEjector)
}
setEjector
},
{
fn serviceManager(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<serviceManagerCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::serviceManager)
}
serviceManager
},
{
fn pubkeyRegistrationMessageHash(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<pubkeyRegistrationMessageHashCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::pubkeyRegistrationMessageHash)
}
pubkeyRegistrationMessageHash
},
{
fn updateOperatorsForQuorum(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<updateOperatorsForQuorumCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::updateOperatorsForQuorum)
}
updateOperatorsForQuorum
},
{
fn getOperator(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<getOperatorCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(RegistryCoordinatorCalls::getOperator)
}
getOperator
},
{
fn pauseAll(data: &[u8]) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<pauseAllCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(RegistryCoordinatorCalls::pauseAll)
}
pauseAll
},
{
fn paused_0(data: &[u8]) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<paused_0Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(RegistryCoordinatorCalls::paused_0)
}
paused_0
},
{
fn setOperatorSetParams(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<setOperatorSetParamsCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::setOperatorSetParams)
}
setOperatorSetParams
},
{
fn paused_1(data: &[u8]) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<paused_1Call as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(RegistryCoordinatorCalls::paused_1)
}
paused_1
},
{
fn blsApkRegistry(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<blsApkRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::blsApkRegistry)
}
blsApkRegistry
},
{
fn registries(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<registriesCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(RegistryCoordinatorCalls::registries)
}
registries
},
{
fn stakeRegistry(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<stakeRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::stakeRegistry)
}
stakeRegistry
},
{
fn ejectOperator(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<ejectOperatorCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::ejectOperator)
}
ejectOperator
},
{
fn renounceOwnership(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<renounceOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::renounceOwnership)
}
renounceOwnership
},
{
fn calculateOperatorChurnApprovalDigestHash(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<calculateOperatorChurnApprovalDigestHashCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(
RegistryCoordinatorCalls::calculateOperatorChurnApprovalDigestHash,
)
}
calculateOperatorChurnApprovalDigestHash
},
{
fn getCurrentQuorumBitmap(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<getCurrentQuorumBitmapCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::getCurrentQuorumBitmap)
}
getCurrentQuorumBitmap
},
{
fn pauserRegistry(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<pauserRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::pauserRegistry)
}
pauserRegistry
},
{
fn owner(data: &[u8]) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<ownerCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(RegistryCoordinatorCalls::owner)
}
owner
},
{
fn quorumCount(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<quorumCountCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(RegistryCoordinatorCalls::quorumCount)
}
quorumCount
},
{
fn registerOperatorWithChurn(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<registerOperatorWithChurnCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::registerOperatorWithChurn)
}
registerOperatorWithChurn
},
{
fn indexRegistry(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<indexRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::indexRegistry)
}
indexRegistry
},
{
fn PUBKEY_REGISTRATION_TYPEHASH(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<PUBKEY_REGISTRATION_TYPEHASHCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::PUBKEY_REGISTRATION_TYPEHASH)
}
PUBKEY_REGISTRATION_TYPEHASH
},
{
fn registerOperator(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<registerOperatorCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::registerOperator)
}
registerOperator
},
{
fn ejectionCooldown(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<ejectionCooldownCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::ejectionCooldown)
}
ejectionCooldown
},
{
fn getQuorumBitmapIndicesAtBlockNumber(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<getQuorumBitmapIndicesAtBlockNumberCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(
RegistryCoordinatorCalls::getQuorumBitmapIndicesAtBlockNumber,
)
}
getQuorumBitmapIndicesAtBlockNumber
},
{
fn OPERATOR_CHURN_APPROVAL_TYPEHASH(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<OPERATOR_CHURN_APPROVAL_TYPEHASHCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(
RegistryCoordinatorCalls::OPERATOR_CHURN_APPROVAL_TYPEHASH,
)
}
OPERATOR_CHURN_APPROVAL_TYPEHASH
},
{
fn deregisterOperator(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<deregisterOperatorCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::deregisterOperator)
}
deregisterOperator
},
{
fn numRegistries(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<numRegistriesCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::numRegistries)
}
numRegistries
},
{
fn createQuorum(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<createQuorumCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::createQuorum)
}
createQuorum
},
{
fn initialize(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<initializeCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(RegistryCoordinatorCalls::initialize)
}
initialize
},
{
fn getOperatorSetParams(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<getOperatorSetParamsCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::getOperatorSetParams)
}
getOperatorSetParams
},
{
fn socketRegistry(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<socketRegistryCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::socketRegistry)
}
socketRegistry
},
{
fn transferOwnership(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<transferOwnershipCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::transferOwnership)
}
transferOwnership
},
{
fn unpause(data: &[u8]) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<unpauseCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(data)
.map(RegistryCoordinatorCalls::unpause)
}
unpause
},
{
fn getOperatorStatus(
data: &[u8],
) -> alloy_sol_types::Result<RegistryCoordinatorCalls> {
<getOperatorStatusCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(RegistryCoordinatorCalls::getOperatorStatus)
}
getOperatorStatus
},
];
let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
return Err(alloy_sol_types::Error::unknown_selector(
<Self as alloy_sol_types::SolInterface>::NAME,
selector,
));
};
DECODE_VALIDATE_SHIMS[idx](data)
}
#[inline]
fn abi_encoded_size(&self) -> usize {
match self {
Self::OPERATOR_CHURN_APPROVAL_TYPEHASH(inner) => {
<OPERATOR_CHURN_APPROVAL_TYPEHASHCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::PUBKEY_REGISTRATION_TYPEHASH(inner) => {
<PUBKEY_REGISTRATION_TYPEHASHCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::blsApkRegistry(inner) => {
<blsApkRegistryCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::calculateOperatorChurnApprovalDigestHash(inner) => {
<calculateOperatorChurnApprovalDigestHashCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::churnApprover(inner) => {
<churnApproverCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::createQuorum(inner) => {
<createQuorumCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::deregisterOperator(inner) => {
<deregisterOperatorCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::ejectOperator(inner) => {
<ejectOperatorCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::ejectionCooldown(inner) => {
<ejectionCooldownCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::ejector(inner) => {
<ejectorCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::getCurrentQuorumBitmap(inner) => {
<getCurrentQuorumBitmapCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getOperator(inner) => {
<getOperatorCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getOperatorFromId(inner) => {
<getOperatorFromIdCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getOperatorId(inner) => {
<getOperatorIdCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getOperatorSetParams(inner) => {
<getOperatorSetParamsCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getOperatorStatus(inner) => {
<getOperatorStatusCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getQuorumBitmapAtBlockNumberByIndex(inner) => {
<getQuorumBitmapAtBlockNumberByIndexCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getQuorumBitmapHistoryLength(inner) => {
<getQuorumBitmapHistoryLengthCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getQuorumBitmapIndicesAtBlockNumber(inner) => {
<getQuorumBitmapIndicesAtBlockNumberCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getQuorumBitmapUpdateByIndex(inner) => {
<getQuorumBitmapUpdateByIndexCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::indexRegistry(inner) => {
<indexRegistryCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::initialize(inner) => {
<initializeCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::isChurnApproverSaltUsed(inner) => {
<isChurnApproverSaltUsedCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::lastEjectionTimestamp(inner) => {
<lastEjectionTimestampCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::numRegistries(inner) => {
<numRegistriesCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::owner(inner) => {
<ownerCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::pause(inner) => {
<pauseCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::pauseAll(inner) => {
<pauseAllCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::paused_0(inner) => {
<paused_0Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::paused_1(inner) => {
<paused_1Call as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::pauserRegistry(inner) => {
<pauserRegistryCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::pubkeyRegistrationMessageHash(inner) => {
<pubkeyRegistrationMessageHashCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::quorumCount(inner) => {
<quorumCountCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::quorumUpdateBlockNumber(inner) => {
<quorumUpdateBlockNumberCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::registerOperator(inner) => {
<registerOperatorCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::registerOperatorWithChurn(inner) => {
<registerOperatorWithChurnCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::registries(inner) => {
<registriesCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::renounceOwnership(inner) => {
<renounceOwnershipCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::serviceManager(inner) => {
<serviceManagerCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::setChurnApprover(inner) => {
<setChurnApproverCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::setEjectionCooldown(inner) => {
<setEjectionCooldownCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::setEjector(inner) => {
<setEjectorCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::setOperatorSetParams(inner) => {
<setOperatorSetParamsCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::setPauserRegistry(inner) => {
<setPauserRegistryCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::socketRegistry(inner) => {
<socketRegistryCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::stakeRegistry(inner) => {
<stakeRegistryCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::transferOwnership(inner) => {
<transferOwnershipCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::unpause(inner) => {
<unpauseCall as alloy_sol_types::SolCall>::abi_encoded_size(inner)
}
Self::updateOperators(inner) => {
<updateOperatorsCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::updateOperatorsForQuorum(inner) => {
<updateOperatorsForQuorumCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::updateSocket(inner) => {
<updateSocketCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
}
}
#[inline]
fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
match self {
Self::OPERATOR_CHURN_APPROVAL_TYPEHASH(inner) => {
<OPERATOR_CHURN_APPROVAL_TYPEHASHCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::PUBKEY_REGISTRATION_TYPEHASH(inner) => {
<PUBKEY_REGISTRATION_TYPEHASHCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::blsApkRegistry(inner) => {
<blsApkRegistryCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::calculateOperatorChurnApprovalDigestHash(inner) => {
<calculateOperatorChurnApprovalDigestHashCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::churnApprover(inner) => {
<churnApproverCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::createQuorum(inner) => {
<createQuorumCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::deregisterOperator(inner) => {
<deregisterOperatorCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::ejectOperator(inner) => {
<ejectOperatorCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::ejectionCooldown(inner) => {
<ejectionCooldownCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::ejector(inner) => {
<ejectorCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
}
Self::getCurrentQuorumBitmap(inner) => {
<getCurrentQuorumBitmapCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::getOperator(inner) => {
<getOperatorCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::getOperatorFromId(inner) => {
<getOperatorFromIdCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::getOperatorId(inner) => {
<getOperatorIdCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::getOperatorSetParams(inner) => {
<getOperatorSetParamsCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::getOperatorStatus(inner) => {
<getOperatorStatusCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::getQuorumBitmapAtBlockNumberByIndex(inner) => {
<getQuorumBitmapAtBlockNumberByIndexCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::getQuorumBitmapHistoryLength(inner) => {
<getQuorumBitmapHistoryLengthCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::getQuorumBitmapIndicesAtBlockNumber(inner) => {
<getQuorumBitmapIndicesAtBlockNumberCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::getQuorumBitmapUpdateByIndex(inner) => {
<getQuorumBitmapUpdateByIndexCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::indexRegistry(inner) => {
<indexRegistryCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::initialize(inner) => {
<initializeCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::isChurnApproverSaltUsed(inner) => {
<isChurnApproverSaltUsedCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::lastEjectionTimestamp(inner) => {
<lastEjectionTimestampCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::numRegistries(inner) => {
<numRegistriesCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::owner(inner) => {
<ownerCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
}
Self::pause(inner) => {
<pauseCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
}
Self::pauseAll(inner) => {
<pauseAllCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::paused_0(inner) => {
<paused_0Call as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::paused_1(inner) => {
<paused_1Call as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::pauserRegistry(inner) => {
<pauserRegistryCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::pubkeyRegistrationMessageHash(inner) => {
<pubkeyRegistrationMessageHashCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::quorumCount(inner) => {
<quorumCountCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::quorumUpdateBlockNumber(inner) => {
<quorumUpdateBlockNumberCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::registerOperator(inner) => {
<registerOperatorCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::registerOperatorWithChurn(inner) => {
<registerOperatorWithChurnCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::registries(inner) => {
<registriesCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::renounceOwnership(inner) => {
<renounceOwnershipCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::serviceManager(inner) => {
<serviceManagerCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::setChurnApprover(inner) => {
<setChurnApproverCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::setEjectionCooldown(inner) => {
<setEjectionCooldownCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::setEjector(inner) => {
<setEjectorCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::setOperatorSetParams(inner) => {
<setOperatorSetParamsCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::setPauserRegistry(inner) => {
<setPauserRegistryCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::socketRegistry(inner) => {
<socketRegistryCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::stakeRegistry(inner) => {
<stakeRegistryCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::transferOwnership(inner) => {
<transferOwnershipCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::unpause(inner) => {
<unpauseCall as alloy_sol_types::SolCall>::abi_encode_raw(inner, out)
}
Self::updateOperators(inner) => {
<updateOperatorsCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::updateOperatorsForQuorum(inner) => {
<updateOperatorsForQuorumCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::updateSocket(inner) => {
<updateSocketCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
}
}
}
///Container for all the [`RegistryCoordinator`](self) events.
#[derive(serde::Serialize, serde::Deserialize, Debug, PartialEq, Eq, Hash)]
pub enum RegistryCoordinatorEvents {
#[allow(missing_docs)]
ChurnApproverUpdated(ChurnApproverUpdated),
#[allow(missing_docs)]
EjectorUpdated(EjectorUpdated),
#[allow(missing_docs)]
Initialized(Initialized),
#[allow(missing_docs)]
OperatorDeregistered(OperatorDeregistered),
#[allow(missing_docs)]
OperatorRegistered(OperatorRegistered),
#[allow(missing_docs)]
OperatorSetParamsUpdated(OperatorSetParamsUpdated),
#[allow(missing_docs)]
OperatorSocketUpdate(OperatorSocketUpdate),
#[allow(missing_docs)]
OwnershipTransferred(OwnershipTransferred),
#[allow(missing_docs)]
Paused(Paused),
#[allow(missing_docs)]
PauserRegistrySet(PauserRegistrySet),
#[allow(missing_docs)]
QuorumBlockNumberUpdated(QuorumBlockNumberUpdated),
#[allow(missing_docs)]
Unpaused(Unpaused),
}
#[automatically_derived]
impl RegistryCoordinatorEvents {
/// All the selectors of this enum.
///
/// Note that the selectors might not be in the same order as the variants.
/// No guarantees are made about the order of the selectors.
///
/// Prefer using `SolInterface` methods instead.
pub const SELECTORS: &'static [[u8; 32usize]] = &[
[
49u8, 84u8, 87u8, 216u8, 168u8, 254u8, 96u8, 240u8, 74u8, 241u8, 124u8, 22u8,
226u8, 245u8, 165u8, 225u8, 219u8, 97u8, 43u8, 49u8, 100u8, 142u8, 88u8, 3u8, 3u8,
96u8, 117u8, 158u8, 248u8, 243u8, 82u8, 140u8,
],
[
53u8, 130u8, 209u8, 130u8, 142u8, 38u8, 191u8, 86u8, 189u8, 128u8, 21u8, 2u8,
188u8, 2u8, 26u8, 192u8, 188u8, 138u8, 251u8, 87u8, 200u8, 38u8, 228u8, 152u8,
107u8, 69u8, 89u8, 60u8, 143u8, 173u8, 56u8, 156u8,
],
[
57u8, 111u8, 220u8, 177u8, 128u8, 203u8, 15u8, 234u8, 38u8, 146u8, 129u8, 19u8,
251u8, 15u8, 209u8, 195u8, 84u8, 152u8, 99u8, 249u8, 205u8, 86u8, 62u8, 106u8,
24u8, 79u8, 29u8, 87u8, 129u8, 22u8, 200u8, 228u8,
],
[
62u8, 230u8, 254u8, 141u8, 84u8, 97u8, 2u8, 68u8, 195u8, 233u8, 211u8, 192u8,
102u8, 174u8, 74u8, 238u8, 153u8, 120u8, 132u8, 170u8, 40u8, 241u8, 6u8, 22u8,
174u8, 130u8, 25u8, 37u8, 64u8, 19u8, 24u8, 172u8,
],
[
70u8, 7u8, 125u8, 85u8, 51u8, 7u8, 99u8, 241u8, 98u8, 105u8, 253u8, 117u8, 229u8,
118u8, 22u8, 99u8, 244u8, 25u8, 45u8, 39u8, 145u8, 116u8, 124u8, 1u8, 137u8, 177u8,
106u8, 211u8, 29u8, 176u8, 125u8, 180u8,
],
[
110u8, 159u8, 205u8, 83u8, 152u8, 150u8, 252u8, 166u8, 14u8, 139u8, 15u8, 1u8,
221u8, 88u8, 2u8, 51u8, 228u8, 138u8, 107u8, 15u8, 125u8, 240u8, 19u8, 184u8,
155u8, 167u8, 245u8, 101u8, 134u8, 154u8, 205u8, 182u8,
],
[
127u8, 38u8, 184u8, 63u8, 249u8, 110u8, 31u8, 43u8, 106u8, 104u8, 47u8, 19u8, 56u8,
82u8, 246u8, 121u8, 138u8, 9u8, 196u8, 101u8, 218u8, 149u8, 146u8, 20u8, 96u8,
206u8, 251u8, 56u8, 71u8, 64u8, 36u8, 152u8,
],
[
139u8, 224u8, 7u8, 156u8, 83u8, 22u8, 89u8, 20u8, 19u8, 68u8, 205u8, 31u8, 208u8,
164u8, 242u8, 132u8, 25u8, 73u8, 127u8, 151u8, 34u8, 163u8, 218u8, 175u8, 227u8,
180u8, 24u8, 111u8, 107u8, 100u8, 87u8, 224u8,
],
[
143u8, 48u8, 171u8, 9u8, 244u8, 58u8, 108u8, 21u8, 125u8, 127u8, 206u8, 126u8,
10u8, 19u8, 192u8, 3u8, 4u8, 44u8, 28u8, 149u8, 232u8, 167u8, 46u8, 122u8, 20u8,
106u8, 33u8, 192u8, 202u8, 162u8, 77u8, 201u8,
],
[
171u8, 64u8, 163u8, 116u8, 188u8, 81u8, 222u8, 55u8, 34u8, 0u8, 168u8, 188u8,
152u8, 26u8, 248u8, 201u8, 236u8, 220u8, 8u8, 223u8, 218u8, 239u8, 11u8, 182u8,
224u8, 159u8, 136u8, 243u8, 198u8, 22u8, 239u8, 61u8,
],
[
232u8, 230u8, 140u8, 239u8, 28u8, 58u8, 118u8, 30u8, 215u8, 190u8, 126u8, 132u8,
99u8, 163u8, 117u8, 242u8, 127u8, 123u8, 195u8, 53u8, 229u8, 24u8, 36u8, 34u8,
60u8, 172u8, 206u8, 99u8, 110u8, 197u8, 195u8, 254u8,
],
[
236u8, 41u8, 99u8, 171u8, 33u8, 193u8, 229u8, 14u8, 30u8, 88u8, 42u8, 165u8, 66u8,
175u8, 46u8, 75u8, 247u8, 191u8, 56u8, 230u8, 225u8, 64u8, 60u8, 39u8, 180u8, 46u8,
28u8, 93u8, 110u8, 98u8, 30u8, 170u8,
],
];
}
#[automatically_derived]
impl alloy_sol_types::SolEventInterface for RegistryCoordinatorEvents {
const NAME: &'static str = "RegistryCoordinatorEvents";
const COUNT: usize = 12usize;
fn decode_raw_log(
topics: &[alloy_sol_types::Word],
data: &[u8],
) -> alloy_sol_types::Result<Self> {
match topics.first().copied() {
Some(<ChurnApproverUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<ChurnApproverUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
topics, data,
)
.map(Self::ChurnApproverUpdated)
}
Some(<EjectorUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<EjectorUpdated as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
.map(Self::EjectorUpdated)
}
Some(<Initialized as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<Initialized as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
.map(Self::Initialized)
}
Some(<OperatorDeregistered as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<OperatorDeregistered as alloy_sol_types::SolEvent>::decode_raw_log(
topics, data,
)
.map(Self::OperatorDeregistered)
}
Some(<OperatorRegistered as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<OperatorRegistered as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
.map(Self::OperatorRegistered)
}
Some(<OperatorSetParamsUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<OperatorSetParamsUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
topics, data,
)
.map(Self::OperatorSetParamsUpdated)
}
Some(<OperatorSocketUpdate as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<OperatorSocketUpdate as alloy_sol_types::SolEvent>::decode_raw_log(
topics, data,
)
.map(Self::OperatorSocketUpdate)
}
Some(<OwnershipTransferred as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<OwnershipTransferred as alloy_sol_types::SolEvent>::decode_raw_log(
topics, data,
)
.map(Self::OwnershipTransferred)
}
Some(<Paused as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<Paused as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
.map(Self::Paused)
}
Some(<PauserRegistrySet as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<PauserRegistrySet as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
.map(Self::PauserRegistrySet)
}
Some(<QuorumBlockNumberUpdated as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<QuorumBlockNumberUpdated as alloy_sol_types::SolEvent>::decode_raw_log(
topics, data,
)
.map(Self::QuorumBlockNumberUpdated)
}
Some(<Unpaused as alloy_sol_types::SolEvent>::SIGNATURE_HASH) => {
<Unpaused as alloy_sol_types::SolEvent>::decode_raw_log(topics, data)
.map(Self::Unpaused)
}
_ => alloy_sol_types::private::Err(alloy_sol_types::Error::InvalidLog {
name: <Self as alloy_sol_types::SolEventInterface>::NAME,
log: alloy_sol_types::private::Box::new(
alloy_sol_types::private::LogData::new_unchecked(
topics.to_vec(),
data.to_vec().into(),
),
),
}),
}
}
}
#[automatically_derived]
impl alloy_sol_types::private::IntoLogData for RegistryCoordinatorEvents {
fn to_log_data(&self) -> alloy_sol_types::private::LogData {
match self {
Self::ChurnApproverUpdated(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
Self::EjectorUpdated(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
Self::Initialized(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
Self::OperatorDeregistered(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
Self::OperatorRegistered(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
Self::OperatorSetParamsUpdated(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
Self::OperatorSocketUpdate(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
Self::OwnershipTransferred(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
Self::Paused(inner) => alloy_sol_types::private::IntoLogData::to_log_data(inner),
Self::PauserRegistrySet(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
Self::QuorumBlockNumberUpdated(inner) => {
alloy_sol_types::private::IntoLogData::to_log_data(inner)
}
Self::Unpaused(inner) => alloy_sol_types::private::IntoLogData::to_log_data(inner),
}
}
fn into_log_data(self) -> alloy_sol_types::private::LogData {
match self {
Self::ChurnApproverUpdated(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
Self::EjectorUpdated(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
Self::Initialized(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
Self::OperatorDeregistered(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
Self::OperatorRegistered(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
Self::OperatorSetParamsUpdated(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
Self::OperatorSocketUpdate(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
Self::OwnershipTransferred(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
Self::Paused(inner) => alloy_sol_types::private::IntoLogData::into_log_data(inner),
Self::PauserRegistrySet(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
Self::QuorumBlockNumberUpdated(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
Self::Unpaused(inner) => {
alloy_sol_types::private::IntoLogData::into_log_data(inner)
}
}
}
}
use alloy::contract as alloy_contract;
/**Creates a new wrapper around an on-chain [`RegistryCoordinator`](self) contract instance.
See the [wrapper's documentation](`RegistryCoordinatorInstance`) for more details.*/
#[inline]
pub const fn new<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
>(
address: alloy_sol_types::private::Address,
provider: P,
) -> RegistryCoordinatorInstance<P, N> {
RegistryCoordinatorInstance::<P, N>::new(address, provider)
}
/**Deploys this contract using the given `provider` and constructor arguments, if any.
Returns a new instance of the contract, if the deployment was successful.
For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
#[inline]
pub fn deploy<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>(
provider: P,
_serviceManager: alloy::sol_types::private::Address,
_stakeRegistry: alloy::sol_types::private::Address,
_blsApkRegistry: alloy::sol_types::private::Address,
_indexRegistry: alloy::sol_types::private::Address,
_socketRegistry: alloy::sol_types::private::Address,
) -> impl ::core::future::Future<Output = alloy_contract::Result<RegistryCoordinatorInstance<P, N>>>
{
RegistryCoordinatorInstance::<P, N>::deploy(
provider,
_serviceManager,
_stakeRegistry,
_blsApkRegistry,
_indexRegistry,
_socketRegistry,
)
}
/**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
and constructor arguments, if any.
This is a simple wrapper around creating a `RawCallBuilder` with the data set to
the bytecode concatenated with the constructor's ABI-encoded arguments.*/
#[inline]
pub fn deploy_builder<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
>(
provider: P,
_serviceManager: alloy::sol_types::private::Address,
_stakeRegistry: alloy::sol_types::private::Address,
_blsApkRegistry: alloy::sol_types::private::Address,
_indexRegistry: alloy::sol_types::private::Address,
_socketRegistry: alloy::sol_types::private::Address,
) -> alloy_contract::RawCallBuilder<P, N> {
RegistryCoordinatorInstance::<P, N>::deploy_builder(
provider,
_serviceManager,
_stakeRegistry,
_blsApkRegistry,
_indexRegistry,
_socketRegistry,
)
}
/**A [`RegistryCoordinator`](self) instance.
Contains type-safe methods for interacting with an on-chain instance of the
[`RegistryCoordinator`](self) contract located at a given `address`, using a given
provider `P`.
If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
documentation on how to provide it), the `deploy` and `deploy_builder` methods can
be used to deploy a new instance of the contract.
See the [module-level documentation](self) for all the available methods.*/
#[derive(Clone)]
pub struct RegistryCoordinatorInstance<P, N = alloy_contract::private::Ethereum> {
address: alloy_sol_types::private::Address,
provider: P,
_network: ::core::marker::PhantomData<N>,
}
#[automatically_derived]
impl<P, N> ::core::fmt::Debug for RegistryCoordinatorInstance<P, N> {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("RegistryCoordinatorInstance")
.field(&self.address)
.finish()
}
}
/// Instantiation and getters/setters.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
RegistryCoordinatorInstance<P, N>
{
/**Creates a new wrapper around an on-chain [`RegistryCoordinator`](self) contract instance.
See the [wrapper's documentation](`RegistryCoordinatorInstance`) for more details.*/
#[inline]
pub const fn new(address: alloy_sol_types::private::Address, provider: P) -> Self {
Self {
address,
provider,
_network: ::core::marker::PhantomData,
}
}
/**Deploys this contract using the given `provider` and constructor arguments, if any.
Returns a new instance of the contract, if the deployment was successful.
For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
#[inline]
pub async fn deploy(
provider: P,
_serviceManager: alloy::sol_types::private::Address,
_stakeRegistry: alloy::sol_types::private::Address,
_blsApkRegistry: alloy::sol_types::private::Address,
_indexRegistry: alloy::sol_types::private::Address,
_socketRegistry: alloy::sol_types::private::Address,
) -> alloy_contract::Result<RegistryCoordinatorInstance<P, N>> {
let call_builder = Self::deploy_builder(
provider,
_serviceManager,
_stakeRegistry,
_blsApkRegistry,
_indexRegistry,
_socketRegistry,
);
let contract_address = call_builder.deploy().await?;
Ok(Self::new(contract_address, call_builder.provider))
}
/**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
and constructor arguments, if any.
This is a simple wrapper around creating a `RawCallBuilder` with the data set to
the bytecode concatenated with the constructor's ABI-encoded arguments.*/
#[inline]
pub fn deploy_builder(
provider: P,
_serviceManager: alloy::sol_types::private::Address,
_stakeRegistry: alloy::sol_types::private::Address,
_blsApkRegistry: alloy::sol_types::private::Address,
_indexRegistry: alloy::sol_types::private::Address,
_socketRegistry: alloy::sol_types::private::Address,
) -> alloy_contract::RawCallBuilder<P, N> {
alloy_contract::RawCallBuilder::new_raw_deploy(
provider,
[
&BYTECODE[..],
&alloy_sol_types::SolConstructor::abi_encode(&constructorCall {
_serviceManager,
_stakeRegistry,
_blsApkRegistry,
_indexRegistry,
_socketRegistry,
})[..],
]
.concat()
.into(),
)
}
/// Returns a reference to the address.
#[inline]
pub const fn address(&self) -> &alloy_sol_types::private::Address {
&self.address
}
/// Sets the address.
#[inline]
pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
self.address = address;
}
/// Sets the address and returns `self`.
pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
self.set_address(address);
self
}
/// Returns a reference to the provider.
#[inline]
pub const fn provider(&self) -> &P {
&self.provider
}
}
impl<P: ::core::clone::Clone, N> RegistryCoordinatorInstance<&P, N> {
/// Clones the provider and returns a new instance with the cloned provider.
#[inline]
pub fn with_cloned_provider(self) -> RegistryCoordinatorInstance<P, N> {
RegistryCoordinatorInstance {
address: self.address,
provider: ::core::clone::Clone::clone(&self.provider),
_network: ::core::marker::PhantomData,
}
}
}
/// Function calls.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
RegistryCoordinatorInstance<P, N>
{
/// Creates a new call builder using this contract instance's provider and address.
///
/// Note that the call can be any function call, not just those defined in this
/// contract. Prefer using the other methods for building type-safe contract calls.
pub fn call_builder<C: alloy_sol_types::SolCall>(
&self,
call: &C,
) -> alloy_contract::SolCallBuilder<&P, C, N> {
alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
}
///Creates a new call builder for the [`OPERATOR_CHURN_APPROVAL_TYPEHASH`] function.
pub fn OPERATOR_CHURN_APPROVAL_TYPEHASH(
&self,
) -> alloy_contract::SolCallBuilder<&P, OPERATOR_CHURN_APPROVAL_TYPEHASHCall, N> {
self.call_builder(&OPERATOR_CHURN_APPROVAL_TYPEHASHCall)
}
///Creates a new call builder for the [`PUBKEY_REGISTRATION_TYPEHASH`] function.
pub fn PUBKEY_REGISTRATION_TYPEHASH(
&self,
) -> alloy_contract::SolCallBuilder<&P, PUBKEY_REGISTRATION_TYPEHASHCall, N> {
self.call_builder(&PUBKEY_REGISTRATION_TYPEHASHCall)
}
///Creates a new call builder for the [`blsApkRegistry`] function.
pub fn blsApkRegistry(&self) -> alloy_contract::SolCallBuilder<&P, blsApkRegistryCall, N> {
self.call_builder(&blsApkRegistryCall)
}
///Creates a new call builder for the [`calculateOperatorChurnApprovalDigestHash`] function.
pub fn calculateOperatorChurnApprovalDigestHash(
&self,
registeringOperator: alloy::sol_types::private::Address,
registeringOperatorId: alloy::sol_types::private::FixedBytes<32>,
operatorKickParams: alloy::sol_types::private::Vec<
<IRegistryCoordinator::OperatorKickParam as alloy::sol_types::SolType>::RustType,
>,
salt: alloy::sol_types::private::FixedBytes<32>,
expiry: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::SolCallBuilder<&P, calculateOperatorChurnApprovalDigestHashCall, N>
{
self.call_builder(&calculateOperatorChurnApprovalDigestHashCall {
registeringOperator,
registeringOperatorId,
operatorKickParams,
salt,
expiry,
})
}
///Creates a new call builder for the [`churnApprover`] function.
pub fn churnApprover(&self) -> alloy_contract::SolCallBuilder<&P, churnApproverCall, N> {
self.call_builder(&churnApproverCall)
}
///Creates a new call builder for the [`createQuorum`] function.
pub fn createQuorum(
&self,
operatorSetParams: <IRegistryCoordinator::OperatorSetParam as alloy::sol_types::SolType>::RustType,
minimumStake: alloy::sol_types::private::primitives::aliases::U96,
strategyParams: alloy::sol_types::private::Vec<
<IStakeRegistry::StrategyParams as alloy::sol_types::SolType>::RustType,
>,
) -> alloy_contract::SolCallBuilder<&P, createQuorumCall, N> {
self.call_builder(&createQuorumCall {
operatorSetParams,
minimumStake,
strategyParams,
})
}
///Creates a new call builder for the [`deregisterOperator`] function.
pub fn deregisterOperator(
&self,
quorumNumbers: alloy::sol_types::private::Bytes,
) -> alloy_contract::SolCallBuilder<&P, deregisterOperatorCall, N> {
self.call_builder(&deregisterOperatorCall { quorumNumbers })
}
///Creates a new call builder for the [`ejectOperator`] function.
pub fn ejectOperator(
&self,
operator: alloy::sol_types::private::Address,
quorumNumbers: alloy::sol_types::private::Bytes,
) -> alloy_contract::SolCallBuilder<&P, ejectOperatorCall, N> {
self.call_builder(&ejectOperatorCall {
operator,
quorumNumbers,
})
}
///Creates a new call builder for the [`ejectionCooldown`] function.
pub fn ejectionCooldown(
&self,
) -> alloy_contract::SolCallBuilder<&P, ejectionCooldownCall, N> {
self.call_builder(&ejectionCooldownCall)
}
///Creates a new call builder for the [`ejector`] function.
pub fn ejector(&self) -> alloy_contract::SolCallBuilder<&P, ejectorCall, N> {
self.call_builder(&ejectorCall)
}
///Creates a new call builder for the [`getCurrentQuorumBitmap`] function.
pub fn getCurrentQuorumBitmap(
&self,
operatorId: alloy::sol_types::private::FixedBytes<32>,
) -> alloy_contract::SolCallBuilder<&P, getCurrentQuorumBitmapCall, N> {
self.call_builder(&getCurrentQuorumBitmapCall { operatorId })
}
///Creates a new call builder for the [`getOperator`] function.
pub fn getOperator(
&self,
operator: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<&P, getOperatorCall, N> {
self.call_builder(&getOperatorCall { operator })
}
///Creates a new call builder for the [`getOperatorFromId`] function.
pub fn getOperatorFromId(
&self,
operatorId: alloy::sol_types::private::FixedBytes<32>,
) -> alloy_contract::SolCallBuilder<&P, getOperatorFromIdCall, N> {
self.call_builder(&getOperatorFromIdCall { operatorId })
}
///Creates a new call builder for the [`getOperatorId`] function.
pub fn getOperatorId(
&self,
operator: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<&P, getOperatorIdCall, N> {
self.call_builder(&getOperatorIdCall { operator })
}
///Creates a new call builder for the [`getOperatorSetParams`] function.
pub fn getOperatorSetParams(
&self,
quorumNumber: u8,
) -> alloy_contract::SolCallBuilder<&P, getOperatorSetParamsCall, N> {
self.call_builder(&getOperatorSetParamsCall { quorumNumber })
}
///Creates a new call builder for the [`getOperatorStatus`] function.
pub fn getOperatorStatus(
&self,
operator: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<&P, getOperatorStatusCall, N> {
self.call_builder(&getOperatorStatusCall { operator })
}
///Creates a new call builder for the [`getQuorumBitmapAtBlockNumberByIndex`] function.
pub fn getQuorumBitmapAtBlockNumberByIndex(
&self,
operatorId: alloy::sol_types::private::FixedBytes<32>,
blockNumber: u32,
index: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::SolCallBuilder<&P, getQuorumBitmapAtBlockNumberByIndexCall, N>
{
self.call_builder(&getQuorumBitmapAtBlockNumberByIndexCall {
operatorId,
blockNumber,
index,
})
}
///Creates a new call builder for the [`getQuorumBitmapHistoryLength`] function.
pub fn getQuorumBitmapHistoryLength(
&self,
operatorId: alloy::sol_types::private::FixedBytes<32>,
) -> alloy_contract::SolCallBuilder<&P, getQuorumBitmapHistoryLengthCall, N> {
self.call_builder(&getQuorumBitmapHistoryLengthCall { operatorId })
}
///Creates a new call builder for the [`getQuorumBitmapIndicesAtBlockNumber`] function.
pub fn getQuorumBitmapIndicesAtBlockNumber(
&self,
blockNumber: u32,
operatorIds: alloy::sol_types::private::Vec<alloy::sol_types::private::FixedBytes<32>>,
) -> alloy_contract::SolCallBuilder<&P, getQuorumBitmapIndicesAtBlockNumberCall, N>
{
self.call_builder(&getQuorumBitmapIndicesAtBlockNumberCall {
blockNumber,
operatorIds,
})
}
///Creates a new call builder for the [`getQuorumBitmapUpdateByIndex`] function.
pub fn getQuorumBitmapUpdateByIndex(
&self,
operatorId: alloy::sol_types::private::FixedBytes<32>,
index: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::SolCallBuilder<&P, getQuorumBitmapUpdateByIndexCall, N> {
self.call_builder(&getQuorumBitmapUpdateByIndexCall { operatorId, index })
}
///Creates a new call builder for the [`indexRegistry`] function.
pub fn indexRegistry(&self) -> alloy_contract::SolCallBuilder<&P, indexRegistryCall, N> {
self.call_builder(&indexRegistryCall)
}
///Creates a new call builder for the [`initialize`] function.
pub fn initialize(
&self,
_initialOwner: alloy::sol_types::private::Address,
_churnApprover: alloy::sol_types::private::Address,
_ejector: alloy::sol_types::private::Address,
_pauserRegistry: alloy::sol_types::private::Address,
_initialPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
_operatorSetParams: alloy::sol_types::private::Vec<
<IRegistryCoordinator::OperatorSetParam as alloy::sol_types::SolType>::RustType,
>,
_minimumStakes: alloy::sol_types::private::Vec<
alloy::sol_types::private::primitives::aliases::U96,
>,
_strategyParams: alloy::sol_types::private::Vec<
alloy::sol_types::private::Vec<
<IStakeRegistry::StrategyParams as alloy::sol_types::SolType>::RustType,
>,
>,
) -> alloy_contract::SolCallBuilder<&P, initializeCall, N> {
self.call_builder(&initializeCall {
_initialOwner,
_churnApprover,
_ejector,
_pauserRegistry,
_initialPausedStatus,
_operatorSetParams,
_minimumStakes,
_strategyParams,
})
}
///Creates a new call builder for the [`isChurnApproverSaltUsed`] function.
pub fn isChurnApproverSaltUsed(
&self,
_0: alloy::sol_types::private::FixedBytes<32>,
) -> alloy_contract::SolCallBuilder<&P, isChurnApproverSaltUsedCall, N> {
self.call_builder(&isChurnApproverSaltUsedCall(_0))
}
///Creates a new call builder for the [`lastEjectionTimestamp`] function.
pub fn lastEjectionTimestamp(
&self,
_0: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<&P, lastEjectionTimestampCall, N> {
self.call_builder(&lastEjectionTimestampCall(_0))
}
///Creates a new call builder for the [`numRegistries`] function.
pub fn numRegistries(&self) -> alloy_contract::SolCallBuilder<&P, numRegistriesCall, N> {
self.call_builder(&numRegistriesCall)
}
///Creates a new call builder for the [`owner`] function.
pub fn owner(&self) -> alloy_contract::SolCallBuilder<&P, ownerCall, N> {
self.call_builder(&ownerCall)
}
///Creates a new call builder for the [`pause`] function.
pub fn pause(
&self,
newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::SolCallBuilder<&P, pauseCall, N> {
self.call_builder(&pauseCall { newPausedStatus })
}
///Creates a new call builder for the [`pauseAll`] function.
pub fn pauseAll(&self) -> alloy_contract::SolCallBuilder<&P, pauseAllCall, N> {
self.call_builder(&pauseAllCall)
}
///Creates a new call builder for the [`paused_0`] function.
pub fn paused_0(&self, index: u8) -> alloy_contract::SolCallBuilder<&P, paused_0Call, N> {
self.call_builder(&paused_0Call { index })
}
///Creates a new call builder for the [`paused_1`] function.
pub fn paused_1(&self) -> alloy_contract::SolCallBuilder<&P, paused_1Call, N> {
self.call_builder(&paused_1Call)
}
///Creates a new call builder for the [`pauserRegistry`] function.
pub fn pauserRegistry(&self) -> alloy_contract::SolCallBuilder<&P, pauserRegistryCall, N> {
self.call_builder(&pauserRegistryCall)
}
///Creates a new call builder for the [`pubkeyRegistrationMessageHash`] function.
pub fn pubkeyRegistrationMessageHash(
&self,
operator: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<&P, pubkeyRegistrationMessageHashCall, N> {
self.call_builder(&pubkeyRegistrationMessageHashCall { operator })
}
///Creates a new call builder for the [`quorumCount`] function.
pub fn quorumCount(&self) -> alloy_contract::SolCallBuilder<&P, quorumCountCall, N> {
self.call_builder(&quorumCountCall)
}
///Creates a new call builder for the [`quorumUpdateBlockNumber`] function.
pub fn quorumUpdateBlockNumber(
&self,
_0: u8,
) -> alloy_contract::SolCallBuilder<&P, quorumUpdateBlockNumberCall, N> {
self.call_builder(&quorumUpdateBlockNumberCall(_0))
}
///Creates a new call builder for the [`registerOperator`] function.
pub fn registerOperator(
&self,
quorumNumbers: alloy::sol_types::private::Bytes,
socket: alloy::sol_types::private::String,
params: <IBLSApkRegistry::PubkeyRegistrationParams as alloy::sol_types::SolType>::RustType,
operatorSignature: <ISignatureUtils::SignatureWithSaltAndExpiry as alloy::sol_types::SolType>::RustType,
) -> alloy_contract::SolCallBuilder<&P, registerOperatorCall, N> {
self.call_builder(®isterOperatorCall {
quorumNumbers,
socket,
params,
operatorSignature,
})
}
///Creates a new call builder for the [`registerOperatorWithChurn`] function.
pub fn registerOperatorWithChurn(
&self,
quorumNumbers: alloy::sol_types::private::Bytes,
socket: alloy::sol_types::private::String,
params: <IBLSApkRegistry::PubkeyRegistrationParams as alloy::sol_types::SolType>::RustType,
operatorKickParams: alloy::sol_types::private::Vec<
<IRegistryCoordinator::OperatorKickParam as alloy::sol_types::SolType>::RustType,
>,
churnApproverSignature: <ISignatureUtils::SignatureWithSaltAndExpiry as alloy::sol_types::SolType>::RustType,
operatorSignature: <ISignatureUtils::SignatureWithSaltAndExpiry as alloy::sol_types::SolType>::RustType,
) -> alloy_contract::SolCallBuilder<&P, registerOperatorWithChurnCall, N> {
self.call_builder(®isterOperatorWithChurnCall {
quorumNumbers,
socket,
params,
operatorKickParams,
churnApproverSignature,
operatorSignature,
})
}
///Creates a new call builder for the [`registries`] function.
pub fn registries(
&self,
_0: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::SolCallBuilder<&P, registriesCall, N> {
self.call_builder(®istriesCall(_0))
}
///Creates a new call builder for the [`renounceOwnership`] function.
pub fn renounceOwnership(
&self,
) -> alloy_contract::SolCallBuilder<&P, renounceOwnershipCall, N> {
self.call_builder(&renounceOwnershipCall)
}
///Creates a new call builder for the [`serviceManager`] function.
pub fn serviceManager(&self) -> alloy_contract::SolCallBuilder<&P, serviceManagerCall, N> {
self.call_builder(&serviceManagerCall)
}
///Creates a new call builder for the [`setChurnApprover`] function.
pub fn setChurnApprover(
&self,
_churnApprover: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<&P, setChurnApproverCall, N> {
self.call_builder(&setChurnApproverCall { _churnApprover })
}
///Creates a new call builder for the [`setEjectionCooldown`] function.
pub fn setEjectionCooldown(
&self,
_ejectionCooldown: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::SolCallBuilder<&P, setEjectionCooldownCall, N> {
self.call_builder(&setEjectionCooldownCall { _ejectionCooldown })
}
///Creates a new call builder for the [`setEjector`] function.
pub fn setEjector(
&self,
_ejector: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<&P, setEjectorCall, N> {
self.call_builder(&setEjectorCall { _ejector })
}
///Creates a new call builder for the [`setOperatorSetParams`] function.
pub fn setOperatorSetParams(
&self,
quorumNumber: u8,
operatorSetParams: <IRegistryCoordinator::OperatorSetParam as alloy::sol_types::SolType>::RustType,
) -> alloy_contract::SolCallBuilder<&P, setOperatorSetParamsCall, N> {
self.call_builder(&setOperatorSetParamsCall {
quorumNumber,
operatorSetParams,
})
}
///Creates a new call builder for the [`setPauserRegistry`] function.
pub fn setPauserRegistry(
&self,
newPauserRegistry: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<&P, setPauserRegistryCall, N> {
self.call_builder(&setPauserRegistryCall { newPauserRegistry })
}
///Creates a new call builder for the [`socketRegistry`] function.
pub fn socketRegistry(&self) -> alloy_contract::SolCallBuilder<&P, socketRegistryCall, N> {
self.call_builder(&socketRegistryCall)
}
///Creates a new call builder for the [`stakeRegistry`] function.
pub fn stakeRegistry(&self) -> alloy_contract::SolCallBuilder<&P, stakeRegistryCall, N> {
self.call_builder(&stakeRegistryCall)
}
///Creates a new call builder for the [`transferOwnership`] function.
pub fn transferOwnership(
&self,
newOwner: alloy::sol_types::private::Address,
) -> alloy_contract::SolCallBuilder<&P, transferOwnershipCall, N> {
self.call_builder(&transferOwnershipCall { newOwner })
}
///Creates a new call builder for the [`unpause`] function.
pub fn unpause(
&self,
newPausedStatus: alloy::sol_types::private::primitives::aliases::U256,
) -> alloy_contract::SolCallBuilder<&P, unpauseCall, N> {
self.call_builder(&unpauseCall { newPausedStatus })
}
///Creates a new call builder for the [`updateOperators`] function.
pub fn updateOperators(
&self,
operators: alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
) -> alloy_contract::SolCallBuilder<&P, updateOperatorsCall, N> {
self.call_builder(&updateOperatorsCall { operators })
}
///Creates a new call builder for the [`updateOperatorsForQuorum`] function.
pub fn updateOperatorsForQuorum(
&self,
operatorsPerQuorum: alloy::sol_types::private::Vec<
alloy::sol_types::private::Vec<alloy::sol_types::private::Address>,
>,
quorumNumbers: alloy::sol_types::private::Bytes,
) -> alloy_contract::SolCallBuilder<&P, updateOperatorsForQuorumCall, N> {
self.call_builder(&updateOperatorsForQuorumCall {
operatorsPerQuorum,
quorumNumbers,
})
}
///Creates a new call builder for the [`updateSocket`] function.
pub fn updateSocket(
&self,
socket: alloy::sol_types::private::String,
) -> alloy_contract::SolCallBuilder<&P, updateSocketCall, N> {
self.call_builder(&updateSocketCall { socket })
}
}
/// Event filters.
#[automatically_derived]
impl<P: alloy_contract::private::Provider<N>, N: alloy_contract::private::Network>
RegistryCoordinatorInstance<P, N>
{
/// Creates a new event filter using this contract instance's provider and address.
///
/// Note that the type can be any event, not just those defined in this contract.
/// Prefer using the other methods for building type-safe event filters.
pub fn event_filter<E: alloy_sol_types::SolEvent>(
&self,
) -> alloy_contract::Event<&P, E, N> {
alloy_contract::Event::new_sol(&self.provider, &self.address)
}
///Creates a new event filter for the [`ChurnApproverUpdated`] event.
pub fn ChurnApproverUpdated_filter(
&self,
) -> alloy_contract::Event<&P, ChurnApproverUpdated, N> {
self.event_filter::<ChurnApproverUpdated>()
}
///Creates a new event filter for the [`EjectorUpdated`] event.
pub fn EjectorUpdated_filter(&self) -> alloy_contract::Event<&P, EjectorUpdated, N> {
self.event_filter::<EjectorUpdated>()
}
///Creates a new event filter for the [`Initialized`] event.
pub fn Initialized_filter(&self) -> alloy_contract::Event<&P, Initialized, N> {
self.event_filter::<Initialized>()
}
///Creates a new event filter for the [`OperatorDeregistered`] event.
pub fn OperatorDeregistered_filter(
&self,
) -> alloy_contract::Event<&P, OperatorDeregistered, N> {
self.event_filter::<OperatorDeregistered>()
}
///Creates a new event filter for the [`OperatorRegistered`] event.
pub fn OperatorRegistered_filter(
&self,
) -> alloy_contract::Event<&P, OperatorRegistered, N> {
self.event_filter::<OperatorRegistered>()
}
///Creates a new event filter for the [`OperatorSetParamsUpdated`] event.
pub fn OperatorSetParamsUpdated_filter(
&self,
) -> alloy_contract::Event<&P, OperatorSetParamsUpdated, N> {
self.event_filter::<OperatorSetParamsUpdated>()
}
///Creates a new event filter for the [`OperatorSocketUpdate`] event.
pub fn OperatorSocketUpdate_filter(
&self,
) -> alloy_contract::Event<&P, OperatorSocketUpdate, N> {
self.event_filter::<OperatorSocketUpdate>()
}
///Creates a new event filter for the [`OwnershipTransferred`] event.
pub fn OwnershipTransferred_filter(
&self,
) -> alloy_contract::Event<&P, OwnershipTransferred, N> {
self.event_filter::<OwnershipTransferred>()
}
///Creates a new event filter for the [`Paused`] event.
pub fn Paused_filter(&self) -> alloy_contract::Event<&P, Paused, N> {
self.event_filter::<Paused>()
}
///Creates a new event filter for the [`PauserRegistrySet`] event.
pub fn PauserRegistrySet_filter(&self) -> alloy_contract::Event<&P, PauserRegistrySet, N> {
self.event_filter::<PauserRegistrySet>()
}
///Creates a new event filter for the [`QuorumBlockNumberUpdated`] event.
pub fn QuorumBlockNumberUpdated_filter(
&self,
) -> alloy_contract::Event<&P, QuorumBlockNumberUpdated, N> {
self.event_filter::<QuorumBlockNumberUpdated>()
}
///Creates a new event filter for the [`Unpaused`] event.
pub fn Unpaused_filter(&self) -> alloy_contract::Event<&P, Unpaused, N> {
self.event_filter::<Unpaused>()
}
}
}