pub use st_eth_target_2::*;
/// This module was auto-generated with ethers-rs Abigen.
/// More information at: <https://github.com/gakonst/ethers-rs>
#[allow(
clippy::enum_variant_names,
clippy::too_many_arguments,
clippy::upper_case_acronyms,
clippy::type_complexity,
dead_code,
non_camel_case_types,
)]
pub mod st_eth_target_2 {
#[allow(deprecated)]
fn __abi() -> ::ethers::core::abi::Abi {
::ethers::core::abi::ethabi::Contract {
constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor {
inputs: ::std::vec![
::ethers::core::abi::ethabi::Param {
name: ::std::borrow::ToOwned::to_owned("_config"),
kind: ::ethers::core::abi::ethabi::ParamType::Tuple(
::std::vec![
::ethers::core::abi::ethabi::ParamType::Address,
::ethers::core::abi::ethabi::ParamType::Address,
::ethers::core::abi::ethabi::ParamType::Address,
::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize),
::ethers::core::abi::ethabi::ParamType::Uint(256usize),
::ethers::core::abi::ethabi::ParamType::Uint(256usize),
::ethers::core::abi::ethabi::ParamType::Uint(256usize),
::ethers::core::abi::ethabi::ParamType::Uint(256usize),
::ethers::core::abi::ethabi::ParamType::Uint(256usize),
::ethers::core::abi::ethabi::ParamType::Uint(256usize),
::ethers::core::abi::ethabi::ParamType::Uint(256usize),
::ethers::core::abi::ethabi::ParamType::Address,
::ethers::core::abi::ethabi::ParamType::Address,
::ethers::core::abi::ethabi::ParamType::Address,
::ethers::core::abi::ethabi::ParamType::Address,
::ethers::core::abi::ethabi::ParamType::Tuple(
::std::vec![
::ethers::core::abi::ethabi::ParamType::Uint(256usize),
::ethers::core::abi::ethabi::ParamType::Uint(256usize),
::ethers::core::abi::ethabi::ParamType::Uint(256usize),
::ethers::core::abi::ethabi::ParamType::Uint(256usize),
],
),
],
),
internal_type: ::core::option::Option::Some(
::std::borrow::ToOwned::to_owned(
"struct IHyperdrive.PoolConfig",
),
),
},
],
}),
functions: ::core::convert::From::from([
(
::std::borrow::ToOwned::to_owned("openLong"),
::std::vec![
::ethers::core::abi::ethabi::Function {
name: ::std::borrow::ToOwned::to_owned("openLong"),
inputs: ::std::vec![
::ethers::core::abi::ethabi::Param {
name: ::std::borrow::ToOwned::to_owned("_amount"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
internal_type: ::core::option::Option::Some(
::std::borrow::ToOwned::to_owned("uint256"),
),
},
::ethers::core::abi::ethabi::Param {
name: ::std::borrow::ToOwned::to_owned("_minOutput"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
internal_type: ::core::option::Option::Some(
::std::borrow::ToOwned::to_owned("uint256"),
),
},
::ethers::core::abi::ethabi::Param {
name: ::std::borrow::ToOwned::to_owned(
"_minVaultSharePrice",
),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
internal_type: ::core::option::Option::Some(
::std::borrow::ToOwned::to_owned("uint256"),
),
},
::ethers::core::abi::ethabi::Param {
name: ::std::borrow::ToOwned::to_owned("_options"),
kind: ::ethers::core::abi::ethabi::ParamType::Tuple(
::std::vec![
::ethers::core::abi::ethabi::ParamType::Address,
::ethers::core::abi::ethabi::ParamType::Bool,
::ethers::core::abi::ethabi::ParamType::Bytes,
],
),
internal_type: ::core::option::Option::Some(
::std::borrow::ToOwned::to_owned(
"struct IHyperdrive.Options",
),
),
},
],
outputs: ::std::vec![
::ethers::core::abi::ethabi::Param {
name: ::std::string::String::new(),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
internal_type: ::core::option::Option::Some(
::std::borrow::ToOwned::to_owned("uint256"),
),
},
::ethers::core::abi::ethabi::Param {
name: ::std::string::String::new(),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
internal_type: ::core::option::Option::Some(
::std::borrow::ToOwned::to_owned("uint256"),
),
},
],
constant: ::core::option::Option::None,
state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable,
},
],
),
(
::std::borrow::ToOwned::to_owned("openShort"),
::std::vec![
::ethers::core::abi::ethabi::Function {
name: ::std::borrow::ToOwned::to_owned("openShort"),
inputs: ::std::vec![
::ethers::core::abi::ethabi::Param {
name: ::std::borrow::ToOwned::to_owned("_bondAmount"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
internal_type: ::core::option::Option::Some(
::std::borrow::ToOwned::to_owned("uint256"),
),
},
::ethers::core::abi::ethabi::Param {
name: ::std::borrow::ToOwned::to_owned("_maxDeposit"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
internal_type: ::core::option::Option::Some(
::std::borrow::ToOwned::to_owned("uint256"),
),
},
::ethers::core::abi::ethabi::Param {
name: ::std::borrow::ToOwned::to_owned(
"_minVaultSharePrice",
),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
internal_type: ::core::option::Option::Some(
::std::borrow::ToOwned::to_owned("uint256"),
),
},
::ethers::core::abi::ethabi::Param {
name: ::std::borrow::ToOwned::to_owned("_options"),
kind: ::ethers::core::abi::ethabi::ParamType::Tuple(
::std::vec![
::ethers::core::abi::ethabi::ParamType::Address,
::ethers::core::abi::ethabi::ParamType::Bool,
::ethers::core::abi::ethabi::ParamType::Bytes,
],
),
internal_type: ::core::option::Option::Some(
::std::borrow::ToOwned::to_owned(
"struct IHyperdrive.Options",
),
),
},
],
outputs: ::std::vec![
::ethers::core::abi::ethabi::Param {
name: ::std::string::String::new(),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
internal_type: ::core::option::Option::Some(
::std::borrow::ToOwned::to_owned("uint256"),
),
},
::ethers::core::abi::ethabi::Param {
name: ::std::string::String::new(),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
internal_type: ::core::option::Option::Some(
::std::borrow::ToOwned::to_owned("uint256"),
),
},
],
constant: ::core::option::Option::None,
state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable,
},
],
),
]),
events: ::core::convert::From::from([
(
::std::borrow::ToOwned::to_owned("AddLiquidity"),
::std::vec![
::ethers::core::abi::ethabi::Event {
name: ::std::borrow::ToOwned::to_owned("AddLiquidity"),
inputs: ::std::vec![
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("provider"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("lpAmount"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("amount"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("vaultSharePrice"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("asBase"),
kind: ::ethers::core::abi::ethabi::ParamType::Bool,
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("lpSharePrice"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("extraData"),
kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
indexed: false,
},
],
anonymous: false,
},
],
),
(
::std::borrow::ToOwned::to_owned("Approval"),
::std::vec![
::ethers::core::abi::ethabi::Event {
name: ::std::borrow::ToOwned::to_owned("Approval"),
inputs: ::std::vec![
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("owner"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("spender"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("value"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
],
anonymous: false,
},
],
),
(
::std::borrow::ToOwned::to_owned("ApprovalForAll"),
::std::vec![
::ethers::core::abi::ethabi::Event {
name: ::std::borrow::ToOwned::to_owned("ApprovalForAll"),
inputs: ::std::vec![
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("account"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("operator"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("approved"),
kind: ::ethers::core::abi::ethabi::ParamType::Bool,
indexed: false,
},
],
anonymous: false,
},
],
),
(
::std::borrow::ToOwned::to_owned("CheckpointRewarderUpdated"),
::std::vec![
::ethers::core::abi::ethabi::Event {
name: ::std::borrow::ToOwned::to_owned(
"CheckpointRewarderUpdated",
),
inputs: ::std::vec![
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned(
"newCheckpointRewarder",
),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
],
anonymous: false,
},
],
),
(
::std::borrow::ToOwned::to_owned("CloseLong"),
::std::vec![
::ethers::core::abi::ethabi::Event {
name: ::std::borrow::ToOwned::to_owned("CloseLong"),
inputs: ::std::vec![
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("trader"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("destination"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("assetId"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("maturityTime"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("amount"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("vaultSharePrice"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("asBase"),
kind: ::ethers::core::abi::ethabi::ParamType::Bool,
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("bondAmount"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("extraData"),
kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
indexed: false,
},
],
anonymous: false,
},
],
),
(
::std::borrow::ToOwned::to_owned("CloseShort"),
::std::vec![
::ethers::core::abi::ethabi::Event {
name: ::std::borrow::ToOwned::to_owned("CloseShort"),
inputs: ::std::vec![
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("trader"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("destination"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("assetId"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("maturityTime"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("amount"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("vaultSharePrice"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("asBase"),
kind: ::ethers::core::abi::ethabi::ParamType::Bool,
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("basePayment"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("bondAmount"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("extraData"),
kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
indexed: false,
},
],
anonymous: false,
},
],
),
(
::std::borrow::ToOwned::to_owned("CollectGovernanceFee"),
::std::vec![
::ethers::core::abi::ethabi::Event {
name: ::std::borrow::ToOwned::to_owned(
"CollectGovernanceFee",
),
inputs: ::std::vec![
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("collector"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("amount"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("vaultSharePrice"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("asBase"),
kind: ::ethers::core::abi::ethabi::ParamType::Bool,
indexed: false,
},
],
anonymous: false,
},
],
),
(
::std::borrow::ToOwned::to_owned("CreateCheckpoint"),
::std::vec![
::ethers::core::abi::ethabi::Event {
name: ::std::borrow::ToOwned::to_owned("CreateCheckpoint"),
inputs: ::std::vec![
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("checkpointTime"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned(
"checkpointVaultSharePrice",
),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("vaultSharePrice"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("maturedShorts"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("maturedLongs"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("lpSharePrice"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
],
anonymous: false,
},
],
),
(
::std::borrow::ToOwned::to_owned("FeeCollectorUpdated"),
::std::vec![
::ethers::core::abi::ethabi::Event {
name: ::std::borrow::ToOwned::to_owned(
"FeeCollectorUpdated",
),
inputs: ::std::vec![
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("newFeeCollector"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
],
anonymous: false,
},
],
),
(
::std::borrow::ToOwned::to_owned("GovernanceUpdated"),
::std::vec![
::ethers::core::abi::ethabi::Event {
name: ::std::borrow::ToOwned::to_owned("GovernanceUpdated"),
inputs: ::std::vec![
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("newGovernance"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
],
anonymous: false,
},
],
),
(
::std::borrow::ToOwned::to_owned("Initialize"),
::std::vec![
::ethers::core::abi::ethabi::Event {
name: ::std::borrow::ToOwned::to_owned("Initialize"),
inputs: ::std::vec![
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("provider"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("lpAmount"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("amount"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("vaultSharePrice"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("asBase"),
kind: ::ethers::core::abi::ethabi::ParamType::Bool,
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("apr"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("extraData"),
kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
indexed: false,
},
],
anonymous: false,
},
],
),
(
::std::borrow::ToOwned::to_owned("OpenLong"),
::std::vec![
::ethers::core::abi::ethabi::Event {
name: ::std::borrow::ToOwned::to_owned("OpenLong"),
inputs: ::std::vec![
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("trader"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("assetId"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("maturityTime"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("amount"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("vaultSharePrice"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("asBase"),
kind: ::ethers::core::abi::ethabi::ParamType::Bool,
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("bondAmount"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("extraData"),
kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
indexed: false,
},
],
anonymous: false,
},
],
),
(
::std::borrow::ToOwned::to_owned("OpenShort"),
::std::vec![
::ethers::core::abi::ethabi::Event {
name: ::std::borrow::ToOwned::to_owned("OpenShort"),
inputs: ::std::vec![
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("trader"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("assetId"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("maturityTime"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("amount"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("vaultSharePrice"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("asBase"),
kind: ::ethers::core::abi::ethabi::ParamType::Bool,
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("baseProceeds"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("bondAmount"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("extraData"),
kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
indexed: false,
},
],
anonymous: false,
},
],
),
(
::std::borrow::ToOwned::to_owned("PauseStatusUpdated"),
::std::vec![
::ethers::core::abi::ethabi::Event {
name: ::std::borrow::ToOwned::to_owned("PauseStatusUpdated"),
inputs: ::std::vec![
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("isPaused"),
kind: ::ethers::core::abi::ethabi::ParamType::Bool,
indexed: false,
},
],
anonymous: false,
},
],
),
(
::std::borrow::ToOwned::to_owned("PauserUpdated"),
::std::vec![
::ethers::core::abi::ethabi::Event {
name: ::std::borrow::ToOwned::to_owned("PauserUpdated"),
inputs: ::std::vec![
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("newPauser"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("status"),
kind: ::ethers::core::abi::ethabi::ParamType::Bool,
indexed: false,
},
],
anonymous: false,
},
],
),
(
::std::borrow::ToOwned::to_owned("RedeemWithdrawalShares"),
::std::vec![
::ethers::core::abi::ethabi::Event {
name: ::std::borrow::ToOwned::to_owned(
"RedeemWithdrawalShares",
),
inputs: ::std::vec![
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("provider"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("destination"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned(
"withdrawalShareAmount",
),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("amount"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("vaultSharePrice"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("asBase"),
kind: ::ethers::core::abi::ethabi::ParamType::Bool,
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("extraData"),
kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
indexed: false,
},
],
anonymous: false,
},
],
),
(
::std::borrow::ToOwned::to_owned("RemoveLiquidity"),
::std::vec![
::ethers::core::abi::ethabi::Event {
name: ::std::borrow::ToOwned::to_owned("RemoveLiquidity"),
inputs: ::std::vec![
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("provider"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("destination"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("lpAmount"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("amount"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("vaultSharePrice"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("asBase"),
kind: ::ethers::core::abi::ethabi::ParamType::Bool,
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned(
"withdrawalShareAmount",
),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("lpSharePrice"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("extraData"),
kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
indexed: false,
},
],
anonymous: false,
},
],
),
(
::std::borrow::ToOwned::to_owned("Sweep"),
::std::vec![
::ethers::core::abi::ethabi::Event {
name: ::std::borrow::ToOwned::to_owned("Sweep"),
inputs: ::std::vec![
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("collector"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("target"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
],
anonymous: false,
},
],
),
(
::std::borrow::ToOwned::to_owned("SweepCollectorUpdated"),
::std::vec![
::ethers::core::abi::ethabi::Event {
name: ::std::borrow::ToOwned::to_owned(
"SweepCollectorUpdated",
),
inputs: ::std::vec![
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("newSweepCollector"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
],
anonymous: false,
},
],
),
(
::std::borrow::ToOwned::to_owned("TransferSingle"),
::std::vec![
::ethers::core::abi::ethabi::Event {
name: ::std::borrow::ToOwned::to_owned("TransferSingle"),
inputs: ::std::vec![
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("operator"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("from"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("to"),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
indexed: true,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("id"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
::ethers::core::abi::ethabi::EventParam {
name: ::std::borrow::ToOwned::to_owned("value"),
kind: ::ethers::core::abi::ethabi::ParamType::Uint(
256usize,
),
indexed: false,
},
],
anonymous: false,
},
],
),
]),
errors: ::core::convert::From::from([
(
::std::borrow::ToOwned::to_owned("DistributeExcessIdleFailed"),
::std::vec![
::ethers::core::abi::ethabi::AbiError {
name: ::std::borrow::ToOwned::to_owned(
"DistributeExcessIdleFailed",
),
inputs: ::std::vec![],
},
],
),
(
::std::borrow::ToOwned::to_owned("ExpInvalidExponent"),
::std::vec![
::ethers::core::abi::ethabi::AbiError {
name: ::std::borrow::ToOwned::to_owned("ExpInvalidExponent"),
inputs: ::std::vec![],
},
],
),
(
::std::borrow::ToOwned::to_owned("InsufficientLiquidity"),
::std::vec![
::ethers::core::abi::ethabi::AbiError {
name: ::std::borrow::ToOwned::to_owned(
"InsufficientLiquidity",
),
inputs: ::std::vec![],
},
],
),
(
::std::borrow::ToOwned::to_owned("InvalidTimestamp"),
::std::vec![
::ethers::core::abi::ethabi::AbiError {
name: ::std::borrow::ToOwned::to_owned("InvalidTimestamp"),
inputs: ::std::vec![],
},
],
),
(
::std::borrow::ToOwned::to_owned("LnInvalidInput"),
::std::vec![
::ethers::core::abi::ethabi::AbiError {
name: ::std::borrow::ToOwned::to_owned("LnInvalidInput"),
inputs: ::std::vec![],
},
],
),
(
::std::borrow::ToOwned::to_owned("MinimumSharePrice"),
::std::vec![
::ethers::core::abi::ethabi::AbiError {
name: ::std::borrow::ToOwned::to_owned("MinimumSharePrice"),
inputs: ::std::vec![],
},
],
),
(
::std::borrow::ToOwned::to_owned("MinimumTransactionAmount"),
::std::vec![
::ethers::core::abi::ethabi::AbiError {
name: ::std::borrow::ToOwned::to_owned(
"MinimumTransactionAmount",
),
inputs: ::std::vec![],
},
],
),
(
::std::borrow::ToOwned::to_owned("OutputLimit"),
::std::vec![
::ethers::core::abi::ethabi::AbiError {
name: ::std::borrow::ToOwned::to_owned("OutputLimit"),
inputs: ::std::vec![],
},
],
),
(
::std::borrow::ToOwned::to_owned("PoolIsPaused"),
::std::vec![
::ethers::core::abi::ethabi::AbiError {
name: ::std::borrow::ToOwned::to_owned("PoolIsPaused"),
inputs: ::std::vec![],
},
],
),
(
::std::borrow::ToOwned::to_owned("ReentrancyGuardReentrantCall"),
::std::vec![
::ethers::core::abi::ethabi::AbiError {
name: ::std::borrow::ToOwned::to_owned(
"ReentrancyGuardReentrantCall",
),
inputs: ::std::vec![],
},
],
),
(
::std::borrow::ToOwned::to_owned("RestrictedZeroAddress"),
::std::vec![
::ethers::core::abi::ethabi::AbiError {
name: ::std::borrow::ToOwned::to_owned(
"RestrictedZeroAddress",
),
inputs: ::std::vec![],
},
],
),
(
::std::borrow::ToOwned::to_owned("TransferFailed"),
::std::vec![
::ethers::core::abi::ethabi::AbiError {
name: ::std::borrow::ToOwned::to_owned("TransferFailed"),
inputs: ::std::vec![],
},
],
),
(
::std::borrow::ToOwned::to_owned("UnsafeCastToInt128"),
::std::vec![
::ethers::core::abi::ethabi::AbiError {
name: ::std::borrow::ToOwned::to_owned("UnsafeCastToInt128"),
inputs: ::std::vec![],
},
],
),
(
::std::borrow::ToOwned::to_owned("UnsafeCastToInt256"),
::std::vec![
::ethers::core::abi::ethabi::AbiError {
name: ::std::borrow::ToOwned::to_owned("UnsafeCastToInt256"),
inputs: ::std::vec![],
},
],
),
(
::std::borrow::ToOwned::to_owned("UnsafeCastToUint112"),
::std::vec![
::ethers::core::abi::ethabi::AbiError {
name: ::std::borrow::ToOwned::to_owned(
"UnsafeCastToUint112",
),
inputs: ::std::vec![],
},
],
),
(
::std::borrow::ToOwned::to_owned("UnsafeCastToUint128"),
::std::vec![
::ethers::core::abi::ethabi::AbiError {
name: ::std::borrow::ToOwned::to_owned(
"UnsafeCastToUint128",
),
inputs: ::std::vec![],
},
],
),
]),
receive: false,
fallback: false,
}
}
///The parsed JSON ABI of the contract.
pub static STETHTARGET2_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(
__abi,
);
pub struct StETHTarget2<M>(::ethers::contract::Contract<M>);
impl<M> ::core::clone::Clone for StETHTarget2<M> {
fn clone(&self) -> Self {
Self(::core::clone::Clone::clone(&self.0))
}
}
impl<M> ::core::ops::Deref for StETHTarget2<M> {
type Target = ::ethers::contract::Contract<M>;
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl<M> ::core::ops::DerefMut for StETHTarget2<M> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.0
}
}
impl<M> ::core::fmt::Debug for StETHTarget2<M> {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple(::core::stringify!(StETHTarget2))
.field(&self.address())
.finish()
}
}
impl<M: ::ethers::providers::Middleware> StETHTarget2<M> {
/// Creates a new contract instance with the specified `ethers` client at
/// `address`. The contract derefs to a `ethers::Contract` object.
pub fn new<T: Into<::ethers::core::types::Address>>(
address: T,
client: ::std::sync::Arc<M>,
) -> Self {
Self(
::ethers::contract::Contract::new(
address.into(),
STETHTARGET2_ABI.clone(),
client,
),
)
}
///Calls the contract's `openLong` (0xcba2e58d) function
pub fn open_long(
&self,
amount: ::ethers::core::types::U256,
min_output: ::ethers::core::types::U256,
min_vault_share_price: ::ethers::core::types::U256,
options: Options,
) -> ::ethers::contract::builders::ContractCall<
M,
(::ethers::core::types::U256, ::ethers::core::types::U256),
> {
self.0
.method_hash(
[203, 162, 229, 141],
(amount, min_output, min_vault_share_price, options),
)
.expect("method not found (this should never happen)")
}
///Calls the contract's `openShort` (0xdbbe8070) function
pub fn open_short(
&self,
bond_amount: ::ethers::core::types::U256,
max_deposit: ::ethers::core::types::U256,
min_vault_share_price: ::ethers::core::types::U256,
options: Options,
) -> ::ethers::contract::builders::ContractCall<
M,
(::ethers::core::types::U256, ::ethers::core::types::U256),
> {
self.0
.method_hash(
[219, 190, 128, 112],
(bond_amount, max_deposit, min_vault_share_price, options),
)
.expect("method not found (this should never happen)")
}
///Gets the contract's `AddLiquidity` event
pub fn add_liquidity_filter(
&self,
) -> ::ethers::contract::builders::Event<
::std::sync::Arc<M>,
M,
AddLiquidityFilter,
> {
self.0.event()
}
///Gets the contract's `Approval` event
pub fn approval_filter(
&self,
) -> ::ethers::contract::builders::Event<
::std::sync::Arc<M>,
M,
ApprovalFilter,
> {
self.0.event()
}
///Gets the contract's `ApprovalForAll` event
pub fn approval_for_all_filter(
&self,
) -> ::ethers::contract::builders::Event<
::std::sync::Arc<M>,
M,
ApprovalForAllFilter,
> {
self.0.event()
}
///Gets the contract's `CheckpointRewarderUpdated` event
pub fn checkpoint_rewarder_updated_filter(
&self,
) -> ::ethers::contract::builders::Event<
::std::sync::Arc<M>,
M,
CheckpointRewarderUpdatedFilter,
> {
self.0.event()
}
///Gets the contract's `CloseLong` event
pub fn close_long_filter(
&self,
) -> ::ethers::contract::builders::Event<
::std::sync::Arc<M>,
M,
CloseLongFilter,
> {
self.0.event()
}
///Gets the contract's `CloseShort` event
pub fn close_short_filter(
&self,
) -> ::ethers::contract::builders::Event<
::std::sync::Arc<M>,
M,
CloseShortFilter,
> {
self.0.event()
}
///Gets the contract's `CollectGovernanceFee` event
pub fn collect_governance_fee_filter(
&self,
) -> ::ethers::contract::builders::Event<
::std::sync::Arc<M>,
M,
CollectGovernanceFeeFilter,
> {
self.0.event()
}
///Gets the contract's `CreateCheckpoint` event
pub fn create_checkpoint_filter(
&self,
) -> ::ethers::contract::builders::Event<
::std::sync::Arc<M>,
M,
CreateCheckpointFilter,
> {
self.0.event()
}
///Gets the contract's `FeeCollectorUpdated` event
pub fn fee_collector_updated_filter(
&self,
) -> ::ethers::contract::builders::Event<
::std::sync::Arc<M>,
M,
FeeCollectorUpdatedFilter,
> {
self.0.event()
}
///Gets the contract's `GovernanceUpdated` event
pub fn governance_updated_filter(
&self,
) -> ::ethers::contract::builders::Event<
::std::sync::Arc<M>,
M,
GovernanceUpdatedFilter,
> {
self.0.event()
}
///Gets the contract's `Initialize` event
pub fn initialize_filter(
&self,
) -> ::ethers::contract::builders::Event<
::std::sync::Arc<M>,
M,
InitializeFilter,
> {
self.0.event()
}
///Gets the contract's `OpenLong` event
pub fn open_long_filter(
&self,
) -> ::ethers::contract::builders::Event<
::std::sync::Arc<M>,
M,
OpenLongFilter,
> {
self.0.event()
}
///Gets the contract's `OpenShort` event
pub fn open_short_filter(
&self,
) -> ::ethers::contract::builders::Event<
::std::sync::Arc<M>,
M,
OpenShortFilter,
> {
self.0.event()
}
///Gets the contract's `PauseStatusUpdated` event
pub fn pause_status_updated_filter(
&self,
) -> ::ethers::contract::builders::Event<
::std::sync::Arc<M>,
M,
PauseStatusUpdatedFilter,
> {
self.0.event()
}
///Gets the contract's `PauserUpdated` event
pub fn pauser_updated_filter(
&self,
) -> ::ethers::contract::builders::Event<
::std::sync::Arc<M>,
M,
PauserUpdatedFilter,
> {
self.0.event()
}
///Gets the contract's `RedeemWithdrawalShares` event
pub fn redeem_withdrawal_shares_filter(
&self,
) -> ::ethers::contract::builders::Event<
::std::sync::Arc<M>,
M,
RedeemWithdrawalSharesFilter,
> {
self.0.event()
}
///Gets the contract's `RemoveLiquidity` event
pub fn remove_liquidity_filter(
&self,
) -> ::ethers::contract::builders::Event<
::std::sync::Arc<M>,
M,
RemoveLiquidityFilter,
> {
self.0.event()
}
///Gets the contract's `Sweep` event
pub fn sweep_filter(
&self,
) -> ::ethers::contract::builders::Event<::std::sync::Arc<M>, M, SweepFilter> {
self.0.event()
}
///Gets the contract's `SweepCollectorUpdated` event
pub fn sweep_collector_updated_filter(
&self,
) -> ::ethers::contract::builders::Event<
::std::sync::Arc<M>,
M,
SweepCollectorUpdatedFilter,
> {
self.0.event()
}
///Gets the contract's `TransferSingle` event
pub fn transfer_single_filter(
&self,
) -> ::ethers::contract::builders::Event<
::std::sync::Arc<M>,
M,
TransferSingleFilter,
> {
self.0.event()
}
/// Returns an `Event` builder for all the events of this contract.
pub fn events(
&self,
) -> ::ethers::contract::builders::Event<
::std::sync::Arc<M>,
M,
StETHTarget2Events,
> {
self.0.event_with_filter(::core::default::Default::default())
}
}
impl<M: ::ethers::providers::Middleware> From<::ethers::contract::Contract<M>>
for StETHTarget2<M> {
fn from(contract: ::ethers::contract::Contract<M>) -> Self {
Self::new(contract.address(), contract.client())
}
}
///Custom Error type `DistributeExcessIdleFailed` with signature `DistributeExcessIdleFailed()` and selector `0x8bdf918d`
#[derive(
Clone,
::ethers::contract::EthError,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[etherror(
name = "DistributeExcessIdleFailed",
abi = "DistributeExcessIdleFailed()"
)]
pub struct DistributeExcessIdleFailed;
///Custom Error type `ExpInvalidExponent` with signature `ExpInvalidExponent()` and selector `0x73a2d6b1`
#[derive(
Clone,
::ethers::contract::EthError,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[etherror(name = "ExpInvalidExponent", abi = "ExpInvalidExponent()")]
pub struct ExpInvalidExponent;
///Custom Error type `InsufficientLiquidity` with signature `InsufficientLiquidity()` and selector `0xbb55fd27`
#[derive(
Clone,
::ethers::contract::EthError,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[etherror(name = "InsufficientLiquidity", abi = "InsufficientLiquidity()")]
pub struct InsufficientLiquidity;
///Custom Error type `InvalidTimestamp` with signature `InvalidTimestamp()` and selector `0xb7d09497`
#[derive(
Clone,
::ethers::contract::EthError,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[etherror(name = "InvalidTimestamp", abi = "InvalidTimestamp()")]
pub struct InvalidTimestamp;
///Custom Error type `LnInvalidInput` with signature `LnInvalidInput()` and selector `0xe61b4975`
#[derive(
Clone,
::ethers::contract::EthError,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[etherror(name = "LnInvalidInput", abi = "LnInvalidInput()")]
pub struct LnInvalidInput;
///Custom Error type `MinimumSharePrice` with signature `MinimumSharePrice()` and selector `0x42af972b`
#[derive(
Clone,
::ethers::contract::EthError,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[etherror(name = "MinimumSharePrice", abi = "MinimumSharePrice()")]
pub struct MinimumSharePrice;
///Custom Error type `MinimumTransactionAmount` with signature `MinimumTransactionAmount()` and selector `0x423bbb46`
#[derive(
Clone,
::ethers::contract::EthError,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[etherror(name = "MinimumTransactionAmount", abi = "MinimumTransactionAmount()")]
pub struct MinimumTransactionAmount;
///Custom Error type `OutputLimit` with signature `OutputLimit()` and selector `0xc9726517`
#[derive(
Clone,
::ethers::contract::EthError,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[etherror(name = "OutputLimit", abi = "OutputLimit()")]
pub struct OutputLimit;
///Custom Error type `PoolIsPaused` with signature `PoolIsPaused()` and selector `0x21081abf`
#[derive(
Clone,
::ethers::contract::EthError,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[etherror(name = "PoolIsPaused", abi = "PoolIsPaused()")]
pub struct PoolIsPaused;
///Custom Error type `ReentrancyGuardReentrantCall` with signature `ReentrancyGuardReentrantCall()` and selector `0x3ee5aeb5`
#[derive(
Clone,
::ethers::contract::EthError,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[etherror(
name = "ReentrancyGuardReentrantCall",
abi = "ReentrancyGuardReentrantCall()"
)]
pub struct ReentrancyGuardReentrantCall;
///Custom Error type `RestrictedZeroAddress` with signature `RestrictedZeroAddress()` and selector `0xf0dd15fd`
#[derive(
Clone,
::ethers::contract::EthError,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[etherror(name = "RestrictedZeroAddress", abi = "RestrictedZeroAddress()")]
pub struct RestrictedZeroAddress;
///Custom Error type `TransferFailed` with signature `TransferFailed()` and selector `0x90b8ec18`
#[derive(
Clone,
::ethers::contract::EthError,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[etherror(name = "TransferFailed", abi = "TransferFailed()")]
pub struct TransferFailed;
///Custom Error type `UnsafeCastToInt128` with signature `UnsafeCastToInt128()` and selector `0xa5353be5`
#[derive(
Clone,
::ethers::contract::EthError,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[etherror(name = "UnsafeCastToInt128", abi = "UnsafeCastToInt128()")]
pub struct UnsafeCastToInt128;
///Custom Error type `UnsafeCastToInt256` with signature `UnsafeCastToInt256()` and selector `0x72dd4e02`
#[derive(
Clone,
::ethers::contract::EthError,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[etherror(name = "UnsafeCastToInt256", abi = "UnsafeCastToInt256()")]
pub struct UnsafeCastToInt256;
///Custom Error type `UnsafeCastToUint112` with signature `UnsafeCastToUint112()` and selector `0x10d62a2e`
#[derive(
Clone,
::ethers::contract::EthError,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[etherror(name = "UnsafeCastToUint112", abi = "UnsafeCastToUint112()")]
pub struct UnsafeCastToUint112;
///Custom Error type `UnsafeCastToUint128` with signature `UnsafeCastToUint128()` and selector `0x1e15f2a2`
#[derive(
Clone,
::ethers::contract::EthError,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[etherror(name = "UnsafeCastToUint128", abi = "UnsafeCastToUint128()")]
pub struct UnsafeCastToUint128;
///Container type for all of the contract's custom errors
#[derive(
Clone,
::ethers::contract::EthAbiType,
serde::Serialize,
serde::Deserialize,
Debug,
PartialEq,
Eq,
Hash
)]
pub enum StETHTarget2Errors {
DistributeExcessIdleFailed(DistributeExcessIdleFailed),
ExpInvalidExponent(ExpInvalidExponent),
InsufficientLiquidity(InsufficientLiquidity),
InvalidTimestamp(InvalidTimestamp),
LnInvalidInput(LnInvalidInput),
MinimumSharePrice(MinimumSharePrice),
MinimumTransactionAmount(MinimumTransactionAmount),
OutputLimit(OutputLimit),
PoolIsPaused(PoolIsPaused),
ReentrancyGuardReentrantCall(ReentrancyGuardReentrantCall),
RestrictedZeroAddress(RestrictedZeroAddress),
TransferFailed(TransferFailed),
UnsafeCastToInt128(UnsafeCastToInt128),
UnsafeCastToInt256(UnsafeCastToInt256),
UnsafeCastToUint112(UnsafeCastToUint112),
UnsafeCastToUint128(UnsafeCastToUint128),
/// The standard solidity revert string, with selector
/// Error(string) -- 0x08c379a0
RevertString(::std::string::String),
}
impl ::ethers::core::abi::AbiDecode for StETHTarget2Errors {
fn decode(
data: impl AsRef<[u8]>,
) -> ::core::result::Result<Self, ::ethers::core::abi::AbiError> {
let data = data.as_ref();
if let Ok(decoded) = <::std::string::String as ::ethers::core::abi::AbiDecode>::decode(
data,
) {
return Ok(Self::RevertString(decoded));
}
if let Ok(decoded) = <DistributeExcessIdleFailed as ::ethers::core::abi::AbiDecode>::decode(
data,
) {
return Ok(Self::DistributeExcessIdleFailed(decoded));
}
if let Ok(decoded) = <ExpInvalidExponent as ::ethers::core::abi::AbiDecode>::decode(
data,
) {
return Ok(Self::ExpInvalidExponent(decoded));
}
if let Ok(decoded) = <InsufficientLiquidity as ::ethers::core::abi::AbiDecode>::decode(
data,
) {
return Ok(Self::InsufficientLiquidity(decoded));
}
if let Ok(decoded) = <InvalidTimestamp as ::ethers::core::abi::AbiDecode>::decode(
data,
) {
return Ok(Self::InvalidTimestamp(decoded));
}
if let Ok(decoded) = <LnInvalidInput as ::ethers::core::abi::AbiDecode>::decode(
data,
) {
return Ok(Self::LnInvalidInput(decoded));
}
if let Ok(decoded) = <MinimumSharePrice as ::ethers::core::abi::AbiDecode>::decode(
data,
) {
return Ok(Self::MinimumSharePrice(decoded));
}
if let Ok(decoded) = <MinimumTransactionAmount as ::ethers::core::abi::AbiDecode>::decode(
data,
) {
return Ok(Self::MinimumTransactionAmount(decoded));
}
if let Ok(decoded) = <OutputLimit as ::ethers::core::abi::AbiDecode>::decode(
data,
) {
return Ok(Self::OutputLimit(decoded));
}
if let Ok(decoded) = <PoolIsPaused as ::ethers::core::abi::AbiDecode>::decode(
data,
) {
return Ok(Self::PoolIsPaused(decoded));
}
if let Ok(decoded) = <ReentrancyGuardReentrantCall as ::ethers::core::abi::AbiDecode>::decode(
data,
) {
return Ok(Self::ReentrancyGuardReentrantCall(decoded));
}
if let Ok(decoded) = <RestrictedZeroAddress as ::ethers::core::abi::AbiDecode>::decode(
data,
) {
return Ok(Self::RestrictedZeroAddress(decoded));
}
if let Ok(decoded) = <TransferFailed as ::ethers::core::abi::AbiDecode>::decode(
data,
) {
return Ok(Self::TransferFailed(decoded));
}
if let Ok(decoded) = <UnsafeCastToInt128 as ::ethers::core::abi::AbiDecode>::decode(
data,
) {
return Ok(Self::UnsafeCastToInt128(decoded));
}
if let Ok(decoded) = <UnsafeCastToInt256 as ::ethers::core::abi::AbiDecode>::decode(
data,
) {
return Ok(Self::UnsafeCastToInt256(decoded));
}
if let Ok(decoded) = <UnsafeCastToUint112 as ::ethers::core::abi::AbiDecode>::decode(
data,
) {
return Ok(Self::UnsafeCastToUint112(decoded));
}
if let Ok(decoded) = <UnsafeCastToUint128 as ::ethers::core::abi::AbiDecode>::decode(
data,
) {
return Ok(Self::UnsafeCastToUint128(decoded));
}
Err(::ethers::core::abi::Error::InvalidData.into())
}
}
impl ::ethers::core::abi::AbiEncode for StETHTarget2Errors {
fn encode(self) -> ::std::vec::Vec<u8> {
match self {
Self::DistributeExcessIdleFailed(element) => {
::ethers::core::abi::AbiEncode::encode(element)
}
Self::ExpInvalidExponent(element) => {
::ethers::core::abi::AbiEncode::encode(element)
}
Self::InsufficientLiquidity(element) => {
::ethers::core::abi::AbiEncode::encode(element)
}
Self::InvalidTimestamp(element) => {
::ethers::core::abi::AbiEncode::encode(element)
}
Self::LnInvalidInput(element) => {
::ethers::core::abi::AbiEncode::encode(element)
}
Self::MinimumSharePrice(element) => {
::ethers::core::abi::AbiEncode::encode(element)
}
Self::MinimumTransactionAmount(element) => {
::ethers::core::abi::AbiEncode::encode(element)
}
Self::OutputLimit(element) => {
::ethers::core::abi::AbiEncode::encode(element)
}
Self::PoolIsPaused(element) => {
::ethers::core::abi::AbiEncode::encode(element)
}
Self::ReentrancyGuardReentrantCall(element) => {
::ethers::core::abi::AbiEncode::encode(element)
}
Self::RestrictedZeroAddress(element) => {
::ethers::core::abi::AbiEncode::encode(element)
}
Self::TransferFailed(element) => {
::ethers::core::abi::AbiEncode::encode(element)
}
Self::UnsafeCastToInt128(element) => {
::ethers::core::abi::AbiEncode::encode(element)
}
Self::UnsafeCastToInt256(element) => {
::ethers::core::abi::AbiEncode::encode(element)
}
Self::UnsafeCastToUint112(element) => {
::ethers::core::abi::AbiEncode::encode(element)
}
Self::UnsafeCastToUint128(element) => {
::ethers::core::abi::AbiEncode::encode(element)
}
Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s),
}
}
}
impl ::ethers::contract::ContractRevert for StETHTarget2Errors {
fn valid_selector(selector: [u8; 4]) -> bool {
match selector {
[0x08, 0xc3, 0x79, 0xa0] => true,
_ if selector
== <DistributeExcessIdleFailed as ::ethers::contract::EthError>::selector() => {
true
}
_ if selector
== <ExpInvalidExponent as ::ethers::contract::EthError>::selector() => {
true
}
_ if selector
== <InsufficientLiquidity as ::ethers::contract::EthError>::selector() => {
true
}
_ if selector
== <InvalidTimestamp as ::ethers::contract::EthError>::selector() => {
true
}
_ if selector
== <LnInvalidInput as ::ethers::contract::EthError>::selector() => {
true
}
_ if selector
== <MinimumSharePrice as ::ethers::contract::EthError>::selector() => {
true
}
_ if selector
== <MinimumTransactionAmount as ::ethers::contract::EthError>::selector() => {
true
}
_ if selector
== <OutputLimit as ::ethers::contract::EthError>::selector() => true,
_ if selector
== <PoolIsPaused as ::ethers::contract::EthError>::selector() => true,
_ if selector
== <ReentrancyGuardReentrantCall as ::ethers::contract::EthError>::selector() => {
true
}
_ if selector
== <RestrictedZeroAddress as ::ethers::contract::EthError>::selector() => {
true
}
_ if selector
== <TransferFailed as ::ethers::contract::EthError>::selector() => {
true
}
_ if selector
== <UnsafeCastToInt128 as ::ethers::contract::EthError>::selector() => {
true
}
_ if selector
== <UnsafeCastToInt256 as ::ethers::contract::EthError>::selector() => {
true
}
_ if selector
== <UnsafeCastToUint112 as ::ethers::contract::EthError>::selector() => {
true
}
_ if selector
== <UnsafeCastToUint128 as ::ethers::contract::EthError>::selector() => {
true
}
_ => false,
}
}
}
impl ::core::fmt::Display for StETHTarget2Errors {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
match self {
Self::DistributeExcessIdleFailed(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::ExpInvalidExponent(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::InsufficientLiquidity(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::InvalidTimestamp(element) => ::core::fmt::Display::fmt(element, f),
Self::LnInvalidInput(element) => ::core::fmt::Display::fmt(element, f),
Self::MinimumSharePrice(element) => ::core::fmt::Display::fmt(element, f),
Self::MinimumTransactionAmount(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::OutputLimit(element) => ::core::fmt::Display::fmt(element, f),
Self::PoolIsPaused(element) => ::core::fmt::Display::fmt(element, f),
Self::ReentrancyGuardReentrantCall(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::RestrictedZeroAddress(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::TransferFailed(element) => ::core::fmt::Display::fmt(element, f),
Self::UnsafeCastToInt128(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::UnsafeCastToInt256(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::UnsafeCastToUint112(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::UnsafeCastToUint128(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::RevertString(s) => ::core::fmt::Display::fmt(s, f),
}
}
}
impl ::core::convert::From<::std::string::String> for StETHTarget2Errors {
fn from(value: String) -> Self {
Self::RevertString(value)
}
}
impl ::core::convert::From<DistributeExcessIdleFailed> for StETHTarget2Errors {
fn from(value: DistributeExcessIdleFailed) -> Self {
Self::DistributeExcessIdleFailed(value)
}
}
impl ::core::convert::From<ExpInvalidExponent> for StETHTarget2Errors {
fn from(value: ExpInvalidExponent) -> Self {
Self::ExpInvalidExponent(value)
}
}
impl ::core::convert::From<InsufficientLiquidity> for StETHTarget2Errors {
fn from(value: InsufficientLiquidity) -> Self {
Self::InsufficientLiquidity(value)
}
}
impl ::core::convert::From<InvalidTimestamp> for StETHTarget2Errors {
fn from(value: InvalidTimestamp) -> Self {
Self::InvalidTimestamp(value)
}
}
impl ::core::convert::From<LnInvalidInput> for StETHTarget2Errors {
fn from(value: LnInvalidInput) -> Self {
Self::LnInvalidInput(value)
}
}
impl ::core::convert::From<MinimumSharePrice> for StETHTarget2Errors {
fn from(value: MinimumSharePrice) -> Self {
Self::MinimumSharePrice(value)
}
}
impl ::core::convert::From<MinimumTransactionAmount> for StETHTarget2Errors {
fn from(value: MinimumTransactionAmount) -> Self {
Self::MinimumTransactionAmount(value)
}
}
impl ::core::convert::From<OutputLimit> for StETHTarget2Errors {
fn from(value: OutputLimit) -> Self {
Self::OutputLimit(value)
}
}
impl ::core::convert::From<PoolIsPaused> for StETHTarget2Errors {
fn from(value: PoolIsPaused) -> Self {
Self::PoolIsPaused(value)
}
}
impl ::core::convert::From<ReentrancyGuardReentrantCall> for StETHTarget2Errors {
fn from(value: ReentrancyGuardReentrantCall) -> Self {
Self::ReentrancyGuardReentrantCall(value)
}
}
impl ::core::convert::From<RestrictedZeroAddress> for StETHTarget2Errors {
fn from(value: RestrictedZeroAddress) -> Self {
Self::RestrictedZeroAddress(value)
}
}
impl ::core::convert::From<TransferFailed> for StETHTarget2Errors {
fn from(value: TransferFailed) -> Self {
Self::TransferFailed(value)
}
}
impl ::core::convert::From<UnsafeCastToInt128> for StETHTarget2Errors {
fn from(value: UnsafeCastToInt128) -> Self {
Self::UnsafeCastToInt128(value)
}
}
impl ::core::convert::From<UnsafeCastToInt256> for StETHTarget2Errors {
fn from(value: UnsafeCastToInt256) -> Self {
Self::UnsafeCastToInt256(value)
}
}
impl ::core::convert::From<UnsafeCastToUint112> for StETHTarget2Errors {
fn from(value: UnsafeCastToUint112) -> Self {
Self::UnsafeCastToUint112(value)
}
}
impl ::core::convert::From<UnsafeCastToUint128> for StETHTarget2Errors {
fn from(value: UnsafeCastToUint128) -> Self {
Self::UnsafeCastToUint128(value)
}
}
#[derive(
Clone,
::ethers::contract::EthEvent,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethevent(
name = "AddLiquidity",
abi = "AddLiquidity(address,uint256,uint256,uint256,bool,uint256,bytes)"
)]
pub struct AddLiquidityFilter {
#[ethevent(indexed)]
pub provider: ::ethers::core::types::Address,
pub lp_amount: ::ethers::core::types::U256,
pub amount: ::ethers::core::types::U256,
pub vault_share_price: ::ethers::core::types::U256,
pub as_base: bool,
pub lp_share_price: ::ethers::core::types::U256,
pub extra_data: ::ethers::core::types::Bytes,
}
#[derive(
Clone,
::ethers::contract::EthEvent,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")]
pub struct ApprovalFilter {
#[ethevent(indexed)]
pub owner: ::ethers::core::types::Address,
#[ethevent(indexed)]
pub spender: ::ethers::core::types::Address,
pub value: ::ethers::core::types::U256,
}
#[derive(
Clone,
::ethers::contract::EthEvent,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethevent(name = "ApprovalForAll", abi = "ApprovalForAll(address,address,bool)")]
pub struct ApprovalForAllFilter {
#[ethevent(indexed)]
pub account: ::ethers::core::types::Address,
#[ethevent(indexed)]
pub operator: ::ethers::core::types::Address,
pub approved: bool,
}
#[derive(
Clone,
::ethers::contract::EthEvent,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethevent(
name = "CheckpointRewarderUpdated",
abi = "CheckpointRewarderUpdated(address)"
)]
pub struct CheckpointRewarderUpdatedFilter {
#[ethevent(indexed)]
pub new_checkpoint_rewarder: ::ethers::core::types::Address,
}
#[derive(
Clone,
::ethers::contract::EthEvent,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethevent(
name = "CloseLong",
abi = "CloseLong(address,address,uint256,uint256,uint256,uint256,bool,uint256,bytes)"
)]
pub struct CloseLongFilter {
#[ethevent(indexed)]
pub trader: ::ethers::core::types::Address,
#[ethevent(indexed)]
pub destination: ::ethers::core::types::Address,
#[ethevent(indexed)]
pub asset_id: ::ethers::core::types::U256,
pub maturity_time: ::ethers::core::types::U256,
pub amount: ::ethers::core::types::U256,
pub vault_share_price: ::ethers::core::types::U256,
pub as_base: bool,
pub bond_amount: ::ethers::core::types::U256,
pub extra_data: ::ethers::core::types::Bytes,
}
#[derive(
Clone,
::ethers::contract::EthEvent,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethevent(
name = "CloseShort",
abi = "CloseShort(address,address,uint256,uint256,uint256,uint256,bool,uint256,uint256,bytes)"
)]
pub struct CloseShortFilter {
#[ethevent(indexed)]
pub trader: ::ethers::core::types::Address,
#[ethevent(indexed)]
pub destination: ::ethers::core::types::Address,
#[ethevent(indexed)]
pub asset_id: ::ethers::core::types::U256,
pub maturity_time: ::ethers::core::types::U256,
pub amount: ::ethers::core::types::U256,
pub vault_share_price: ::ethers::core::types::U256,
pub as_base: bool,
pub base_payment: ::ethers::core::types::U256,
pub bond_amount: ::ethers::core::types::U256,
pub extra_data: ::ethers::core::types::Bytes,
}
#[derive(
Clone,
::ethers::contract::EthEvent,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethevent(
name = "CollectGovernanceFee",
abi = "CollectGovernanceFee(address,uint256,uint256,bool)"
)]
pub struct CollectGovernanceFeeFilter {
#[ethevent(indexed)]
pub collector: ::ethers::core::types::Address,
pub amount: ::ethers::core::types::U256,
pub vault_share_price: ::ethers::core::types::U256,
pub as_base: bool,
}
#[derive(
Clone,
::ethers::contract::EthEvent,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethevent(
name = "CreateCheckpoint",
abi = "CreateCheckpoint(uint256,uint256,uint256,uint256,uint256,uint256)"
)]
pub struct CreateCheckpointFilter {
#[ethevent(indexed)]
pub checkpoint_time: ::ethers::core::types::U256,
pub checkpoint_vault_share_price: ::ethers::core::types::U256,
pub vault_share_price: ::ethers::core::types::U256,
pub matured_shorts: ::ethers::core::types::U256,
pub matured_longs: ::ethers::core::types::U256,
pub lp_share_price: ::ethers::core::types::U256,
}
#[derive(
Clone,
::ethers::contract::EthEvent,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethevent(name = "FeeCollectorUpdated", abi = "FeeCollectorUpdated(address)")]
pub struct FeeCollectorUpdatedFilter {
#[ethevent(indexed)]
pub new_fee_collector: ::ethers::core::types::Address,
}
#[derive(
Clone,
::ethers::contract::EthEvent,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethevent(name = "GovernanceUpdated", abi = "GovernanceUpdated(address)")]
pub struct GovernanceUpdatedFilter {
#[ethevent(indexed)]
pub new_governance: ::ethers::core::types::Address,
}
#[derive(
Clone,
::ethers::contract::EthEvent,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethevent(
name = "Initialize",
abi = "Initialize(address,uint256,uint256,uint256,bool,uint256,bytes)"
)]
pub struct InitializeFilter {
#[ethevent(indexed)]
pub provider: ::ethers::core::types::Address,
pub lp_amount: ::ethers::core::types::U256,
pub amount: ::ethers::core::types::U256,
pub vault_share_price: ::ethers::core::types::U256,
pub as_base: bool,
pub apr: ::ethers::core::types::U256,
pub extra_data: ::ethers::core::types::Bytes,
}
#[derive(
Clone,
::ethers::contract::EthEvent,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethevent(
name = "OpenLong",
abi = "OpenLong(address,uint256,uint256,uint256,uint256,bool,uint256,bytes)"
)]
pub struct OpenLongFilter {
#[ethevent(indexed)]
pub trader: ::ethers::core::types::Address,
#[ethevent(indexed)]
pub asset_id: ::ethers::core::types::U256,
pub maturity_time: ::ethers::core::types::U256,
pub amount: ::ethers::core::types::U256,
pub vault_share_price: ::ethers::core::types::U256,
pub as_base: bool,
pub bond_amount: ::ethers::core::types::U256,
pub extra_data: ::ethers::core::types::Bytes,
}
#[derive(
Clone,
::ethers::contract::EthEvent,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethevent(
name = "OpenShort",
abi = "OpenShort(address,uint256,uint256,uint256,uint256,bool,uint256,uint256,bytes)"
)]
pub struct OpenShortFilter {
#[ethevent(indexed)]
pub trader: ::ethers::core::types::Address,
#[ethevent(indexed)]
pub asset_id: ::ethers::core::types::U256,
pub maturity_time: ::ethers::core::types::U256,
pub amount: ::ethers::core::types::U256,
pub vault_share_price: ::ethers::core::types::U256,
pub as_base: bool,
pub base_proceeds: ::ethers::core::types::U256,
pub bond_amount: ::ethers::core::types::U256,
pub extra_data: ::ethers::core::types::Bytes,
}
#[derive(
Clone,
::ethers::contract::EthEvent,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethevent(name = "PauseStatusUpdated", abi = "PauseStatusUpdated(bool)")]
pub struct PauseStatusUpdatedFilter {
pub is_paused: bool,
}
#[derive(
Clone,
::ethers::contract::EthEvent,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethevent(name = "PauserUpdated", abi = "PauserUpdated(address,bool)")]
pub struct PauserUpdatedFilter {
#[ethevent(indexed)]
pub new_pauser: ::ethers::core::types::Address,
pub status: bool,
}
#[derive(
Clone,
::ethers::contract::EthEvent,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethevent(
name = "RedeemWithdrawalShares",
abi = "RedeemWithdrawalShares(address,address,uint256,uint256,uint256,bool,bytes)"
)]
pub struct RedeemWithdrawalSharesFilter {
#[ethevent(indexed)]
pub provider: ::ethers::core::types::Address,
#[ethevent(indexed)]
pub destination: ::ethers::core::types::Address,
pub withdrawal_share_amount: ::ethers::core::types::U256,
pub amount: ::ethers::core::types::U256,
pub vault_share_price: ::ethers::core::types::U256,
pub as_base: bool,
pub extra_data: ::ethers::core::types::Bytes,
}
#[derive(
Clone,
::ethers::contract::EthEvent,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethevent(
name = "RemoveLiquidity",
abi = "RemoveLiquidity(address,address,uint256,uint256,uint256,bool,uint256,uint256,bytes)"
)]
pub struct RemoveLiquidityFilter {
#[ethevent(indexed)]
pub provider: ::ethers::core::types::Address,
#[ethevent(indexed)]
pub destination: ::ethers::core::types::Address,
pub lp_amount: ::ethers::core::types::U256,
pub amount: ::ethers::core::types::U256,
pub vault_share_price: ::ethers::core::types::U256,
pub as_base: bool,
pub withdrawal_share_amount: ::ethers::core::types::U256,
pub lp_share_price: ::ethers::core::types::U256,
pub extra_data: ::ethers::core::types::Bytes,
}
#[derive(
Clone,
::ethers::contract::EthEvent,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethevent(name = "Sweep", abi = "Sweep(address,address)")]
pub struct SweepFilter {
#[ethevent(indexed)]
pub collector: ::ethers::core::types::Address,
#[ethevent(indexed)]
pub target: ::ethers::core::types::Address,
}
#[derive(
Clone,
::ethers::contract::EthEvent,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethevent(name = "SweepCollectorUpdated", abi = "SweepCollectorUpdated(address)")]
pub struct SweepCollectorUpdatedFilter {
#[ethevent(indexed)]
pub new_sweep_collector: ::ethers::core::types::Address,
}
#[derive(
Clone,
::ethers::contract::EthEvent,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethevent(
name = "TransferSingle",
abi = "TransferSingle(address,address,address,uint256,uint256)"
)]
pub struct TransferSingleFilter {
#[ethevent(indexed)]
pub operator: ::ethers::core::types::Address,
#[ethevent(indexed)]
pub from: ::ethers::core::types::Address,
#[ethevent(indexed)]
pub to: ::ethers::core::types::Address,
pub id: ::ethers::core::types::U256,
pub value: ::ethers::core::types::U256,
}
///Container type for all of the contract's events
#[derive(
Clone,
::ethers::contract::EthAbiType,
serde::Serialize,
serde::Deserialize,
Debug,
PartialEq,
Eq,
Hash
)]
pub enum StETHTarget2Events {
AddLiquidityFilter(AddLiquidityFilter),
ApprovalFilter(ApprovalFilter),
ApprovalForAllFilter(ApprovalForAllFilter),
CheckpointRewarderUpdatedFilter(CheckpointRewarderUpdatedFilter),
CloseLongFilter(CloseLongFilter),
CloseShortFilter(CloseShortFilter),
CollectGovernanceFeeFilter(CollectGovernanceFeeFilter),
CreateCheckpointFilter(CreateCheckpointFilter),
FeeCollectorUpdatedFilter(FeeCollectorUpdatedFilter),
GovernanceUpdatedFilter(GovernanceUpdatedFilter),
InitializeFilter(InitializeFilter),
OpenLongFilter(OpenLongFilter),
OpenShortFilter(OpenShortFilter),
PauseStatusUpdatedFilter(PauseStatusUpdatedFilter),
PauserUpdatedFilter(PauserUpdatedFilter),
RedeemWithdrawalSharesFilter(RedeemWithdrawalSharesFilter),
RemoveLiquidityFilter(RemoveLiquidityFilter),
SweepFilter(SweepFilter),
SweepCollectorUpdatedFilter(SweepCollectorUpdatedFilter),
TransferSingleFilter(TransferSingleFilter),
}
impl ::ethers::contract::EthLogDecode for StETHTarget2Events {
fn decode_log(
log: &::ethers::core::abi::RawLog,
) -> ::core::result::Result<Self, ::ethers::core::abi::Error> {
if let Ok(decoded) = AddLiquidityFilter::decode_log(log) {
return Ok(StETHTarget2Events::AddLiquidityFilter(decoded));
}
if let Ok(decoded) = ApprovalFilter::decode_log(log) {
return Ok(StETHTarget2Events::ApprovalFilter(decoded));
}
if let Ok(decoded) = ApprovalForAllFilter::decode_log(log) {
return Ok(StETHTarget2Events::ApprovalForAllFilter(decoded));
}
if let Ok(decoded) = CheckpointRewarderUpdatedFilter::decode_log(log) {
return Ok(StETHTarget2Events::CheckpointRewarderUpdatedFilter(decoded));
}
if let Ok(decoded) = CloseLongFilter::decode_log(log) {
return Ok(StETHTarget2Events::CloseLongFilter(decoded));
}
if let Ok(decoded) = CloseShortFilter::decode_log(log) {
return Ok(StETHTarget2Events::CloseShortFilter(decoded));
}
if let Ok(decoded) = CollectGovernanceFeeFilter::decode_log(log) {
return Ok(StETHTarget2Events::CollectGovernanceFeeFilter(decoded));
}
if let Ok(decoded) = CreateCheckpointFilter::decode_log(log) {
return Ok(StETHTarget2Events::CreateCheckpointFilter(decoded));
}
if let Ok(decoded) = FeeCollectorUpdatedFilter::decode_log(log) {
return Ok(StETHTarget2Events::FeeCollectorUpdatedFilter(decoded));
}
if let Ok(decoded) = GovernanceUpdatedFilter::decode_log(log) {
return Ok(StETHTarget2Events::GovernanceUpdatedFilter(decoded));
}
if let Ok(decoded) = InitializeFilter::decode_log(log) {
return Ok(StETHTarget2Events::InitializeFilter(decoded));
}
if let Ok(decoded) = OpenLongFilter::decode_log(log) {
return Ok(StETHTarget2Events::OpenLongFilter(decoded));
}
if let Ok(decoded) = OpenShortFilter::decode_log(log) {
return Ok(StETHTarget2Events::OpenShortFilter(decoded));
}
if let Ok(decoded) = PauseStatusUpdatedFilter::decode_log(log) {
return Ok(StETHTarget2Events::PauseStatusUpdatedFilter(decoded));
}
if let Ok(decoded) = PauserUpdatedFilter::decode_log(log) {
return Ok(StETHTarget2Events::PauserUpdatedFilter(decoded));
}
if let Ok(decoded) = RedeemWithdrawalSharesFilter::decode_log(log) {
return Ok(StETHTarget2Events::RedeemWithdrawalSharesFilter(decoded));
}
if let Ok(decoded) = RemoveLiquidityFilter::decode_log(log) {
return Ok(StETHTarget2Events::RemoveLiquidityFilter(decoded));
}
if let Ok(decoded) = SweepFilter::decode_log(log) {
return Ok(StETHTarget2Events::SweepFilter(decoded));
}
if let Ok(decoded) = SweepCollectorUpdatedFilter::decode_log(log) {
return Ok(StETHTarget2Events::SweepCollectorUpdatedFilter(decoded));
}
if let Ok(decoded) = TransferSingleFilter::decode_log(log) {
return Ok(StETHTarget2Events::TransferSingleFilter(decoded));
}
Err(::ethers::core::abi::Error::InvalidData)
}
}
impl ::core::fmt::Display for StETHTarget2Events {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
match self {
Self::AddLiquidityFilter(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f),
Self::ApprovalForAllFilter(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::CheckpointRewarderUpdatedFilter(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::CloseLongFilter(element) => ::core::fmt::Display::fmt(element, f),
Self::CloseShortFilter(element) => ::core::fmt::Display::fmt(element, f),
Self::CollectGovernanceFeeFilter(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::CreateCheckpointFilter(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::FeeCollectorUpdatedFilter(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::GovernanceUpdatedFilter(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::InitializeFilter(element) => ::core::fmt::Display::fmt(element, f),
Self::OpenLongFilter(element) => ::core::fmt::Display::fmt(element, f),
Self::OpenShortFilter(element) => ::core::fmt::Display::fmt(element, f),
Self::PauseStatusUpdatedFilter(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::PauserUpdatedFilter(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::RedeemWithdrawalSharesFilter(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::RemoveLiquidityFilter(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::SweepFilter(element) => ::core::fmt::Display::fmt(element, f),
Self::SweepCollectorUpdatedFilter(element) => {
::core::fmt::Display::fmt(element, f)
}
Self::TransferSingleFilter(element) => {
::core::fmt::Display::fmt(element, f)
}
}
}
}
impl ::core::convert::From<AddLiquidityFilter> for StETHTarget2Events {
fn from(value: AddLiquidityFilter) -> Self {
Self::AddLiquidityFilter(value)
}
}
impl ::core::convert::From<ApprovalFilter> for StETHTarget2Events {
fn from(value: ApprovalFilter) -> Self {
Self::ApprovalFilter(value)
}
}
impl ::core::convert::From<ApprovalForAllFilter> for StETHTarget2Events {
fn from(value: ApprovalForAllFilter) -> Self {
Self::ApprovalForAllFilter(value)
}
}
impl ::core::convert::From<CheckpointRewarderUpdatedFilter> for StETHTarget2Events {
fn from(value: CheckpointRewarderUpdatedFilter) -> Self {
Self::CheckpointRewarderUpdatedFilter(value)
}
}
impl ::core::convert::From<CloseLongFilter> for StETHTarget2Events {
fn from(value: CloseLongFilter) -> Self {
Self::CloseLongFilter(value)
}
}
impl ::core::convert::From<CloseShortFilter> for StETHTarget2Events {
fn from(value: CloseShortFilter) -> Self {
Self::CloseShortFilter(value)
}
}
impl ::core::convert::From<CollectGovernanceFeeFilter> for StETHTarget2Events {
fn from(value: CollectGovernanceFeeFilter) -> Self {
Self::CollectGovernanceFeeFilter(value)
}
}
impl ::core::convert::From<CreateCheckpointFilter> for StETHTarget2Events {
fn from(value: CreateCheckpointFilter) -> Self {
Self::CreateCheckpointFilter(value)
}
}
impl ::core::convert::From<FeeCollectorUpdatedFilter> for StETHTarget2Events {
fn from(value: FeeCollectorUpdatedFilter) -> Self {
Self::FeeCollectorUpdatedFilter(value)
}
}
impl ::core::convert::From<GovernanceUpdatedFilter> for StETHTarget2Events {
fn from(value: GovernanceUpdatedFilter) -> Self {
Self::GovernanceUpdatedFilter(value)
}
}
impl ::core::convert::From<InitializeFilter> for StETHTarget2Events {
fn from(value: InitializeFilter) -> Self {
Self::InitializeFilter(value)
}
}
impl ::core::convert::From<OpenLongFilter> for StETHTarget2Events {
fn from(value: OpenLongFilter) -> Self {
Self::OpenLongFilter(value)
}
}
impl ::core::convert::From<OpenShortFilter> for StETHTarget2Events {
fn from(value: OpenShortFilter) -> Self {
Self::OpenShortFilter(value)
}
}
impl ::core::convert::From<PauseStatusUpdatedFilter> for StETHTarget2Events {
fn from(value: PauseStatusUpdatedFilter) -> Self {
Self::PauseStatusUpdatedFilter(value)
}
}
impl ::core::convert::From<PauserUpdatedFilter> for StETHTarget2Events {
fn from(value: PauserUpdatedFilter) -> Self {
Self::PauserUpdatedFilter(value)
}
}
impl ::core::convert::From<RedeemWithdrawalSharesFilter> for StETHTarget2Events {
fn from(value: RedeemWithdrawalSharesFilter) -> Self {
Self::RedeemWithdrawalSharesFilter(value)
}
}
impl ::core::convert::From<RemoveLiquidityFilter> for StETHTarget2Events {
fn from(value: RemoveLiquidityFilter) -> Self {
Self::RemoveLiquidityFilter(value)
}
}
impl ::core::convert::From<SweepFilter> for StETHTarget2Events {
fn from(value: SweepFilter) -> Self {
Self::SweepFilter(value)
}
}
impl ::core::convert::From<SweepCollectorUpdatedFilter> for StETHTarget2Events {
fn from(value: SweepCollectorUpdatedFilter) -> Self {
Self::SweepCollectorUpdatedFilter(value)
}
}
impl ::core::convert::From<TransferSingleFilter> for StETHTarget2Events {
fn from(value: TransferSingleFilter) -> Self {
Self::TransferSingleFilter(value)
}
}
///Container type for all input parameters for the `openLong` function with signature `openLong(uint256,uint256,uint256,(address,bool,bytes))` and selector `0xcba2e58d`
#[derive(
Clone,
::ethers::contract::EthCall,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethcall(
name = "openLong",
abi = "openLong(uint256,uint256,uint256,(address,bool,bytes))"
)]
pub struct OpenLongCall {
pub amount: ::ethers::core::types::U256,
pub min_output: ::ethers::core::types::U256,
pub min_vault_share_price: ::ethers::core::types::U256,
pub options: Options,
}
///Container type for all input parameters for the `openShort` function with signature `openShort(uint256,uint256,uint256,(address,bool,bytes))` and selector `0xdbbe8070`
#[derive(
Clone,
::ethers::contract::EthCall,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
#[ethcall(
name = "openShort",
abi = "openShort(uint256,uint256,uint256,(address,bool,bytes))"
)]
pub struct OpenShortCall {
pub bond_amount: ::ethers::core::types::U256,
pub max_deposit: ::ethers::core::types::U256,
pub min_vault_share_price: ::ethers::core::types::U256,
pub options: Options,
}
///Container type for all of the contract's call
#[derive(
Clone,
::ethers::contract::EthAbiType,
serde::Serialize,
serde::Deserialize,
Debug,
PartialEq,
Eq,
Hash
)]
pub enum StETHTarget2Calls {
OpenLong(OpenLongCall),
OpenShort(OpenShortCall),
}
impl ::ethers::core::abi::AbiDecode for StETHTarget2Calls {
fn decode(
data: impl AsRef<[u8]>,
) -> ::core::result::Result<Self, ::ethers::core::abi::AbiError> {
let data = data.as_ref();
if let Ok(decoded) = <OpenLongCall as ::ethers::core::abi::AbiDecode>::decode(
data,
) {
return Ok(Self::OpenLong(decoded));
}
if let Ok(decoded) = <OpenShortCall as ::ethers::core::abi::AbiDecode>::decode(
data,
) {
return Ok(Self::OpenShort(decoded));
}
Err(::ethers::core::abi::Error::InvalidData.into())
}
}
impl ::ethers::core::abi::AbiEncode for StETHTarget2Calls {
fn encode(self) -> Vec<u8> {
match self {
Self::OpenLong(element) => {
::ethers::core::abi::AbiEncode::encode(element)
}
Self::OpenShort(element) => {
::ethers::core::abi::AbiEncode::encode(element)
}
}
}
}
impl ::core::fmt::Display for StETHTarget2Calls {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
match self {
Self::OpenLong(element) => ::core::fmt::Display::fmt(element, f),
Self::OpenShort(element) => ::core::fmt::Display::fmt(element, f),
}
}
}
impl ::core::convert::From<OpenLongCall> for StETHTarget2Calls {
fn from(value: OpenLongCall) -> Self {
Self::OpenLong(value)
}
}
impl ::core::convert::From<OpenShortCall> for StETHTarget2Calls {
fn from(value: OpenShortCall) -> Self {
Self::OpenShort(value)
}
}
///Container type for all return fields from the `openLong` function with signature `openLong(uint256,uint256,uint256,(address,bool,bytes))` and selector `0xcba2e58d`
#[derive(
Clone,
::ethers::contract::EthAbiType,
::ethers::contract::EthAbiCodec,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
pub struct OpenLongReturn(
pub ::ethers::core::types::U256,
pub ::ethers::core::types::U256,
);
///Container type for all return fields from the `openShort` function with signature `openShort(uint256,uint256,uint256,(address,bool,bytes))` and selector `0xdbbe8070`
#[derive(
Clone,
::ethers::contract::EthAbiType,
::ethers::contract::EthAbiCodec,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
pub struct OpenShortReturn(
pub ::ethers::core::types::U256,
pub ::ethers::core::types::U256,
);
///`Fees(uint256,uint256,uint256,uint256)`
#[derive(
Clone,
::ethers::contract::EthAbiType,
::ethers::contract::EthAbiCodec,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
pub struct Fees {
pub curve: ::ethers::core::types::U256,
pub flat: ::ethers::core::types::U256,
pub governance_lp: ::ethers::core::types::U256,
pub governance_zombie: ::ethers::core::types::U256,
}
///`Options(address,bool,bytes)`
#[derive(
Clone,
::ethers::contract::EthAbiType,
::ethers::contract::EthAbiCodec,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
pub struct Options {
pub destination: ::ethers::core::types::Address,
pub as_base: bool,
pub extra_data: ::ethers::core::types::Bytes,
}
///`PoolConfig(address,address,address,bytes32,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,address,address,address,(uint256,uint256,uint256,uint256))`
#[derive(
Clone,
::ethers::contract::EthAbiType,
::ethers::contract::EthAbiCodec,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
pub struct PoolConfig {
pub base_token: ::ethers::core::types::Address,
pub vault_shares_token: ::ethers::core::types::Address,
pub linker_factory: ::ethers::core::types::Address,
pub linker_code_hash: [u8; 32],
pub initial_vault_share_price: ::ethers::core::types::U256,
pub minimum_share_reserves: ::ethers::core::types::U256,
pub minimum_transaction_amount: ::ethers::core::types::U256,
pub circuit_breaker_delta: ::ethers::core::types::U256,
pub position_duration: ::ethers::core::types::U256,
pub checkpoint_duration: ::ethers::core::types::U256,
pub time_stretch: ::ethers::core::types::U256,
pub governance: ::ethers::core::types::Address,
pub fee_collector: ::ethers::core::types::Address,
pub sweep_collector: ::ethers::core::types::Address,
pub checkpoint_rewarder: ::ethers::core::types::Address,
pub fees: Fees,
}
}
pub struct StETHTarget2Libs {
pub lp_math: ::ethers::types::Address,
}
impl<M: ::ethers::providers::Middleware> StETHTarget2<M> {
pub fn link_and_deploy<T: ::ethers::core::abi::Tokenize>(
client: ::std::sync::Arc<M>,
constructor_args: T,
libs: StETHTarget2Libs,
) -> ::core::result::Result<
::ethers::contract::builders::ContractDeployer<M, Self>,
::ethers::contract::ContractError<M>,
> {
let factory = crate::linked_factory::create(
STETHTARGET2_ABI.clone(),
"0x6102606040523480156200001257600080fd5b5060405162003f2138038062003f21833981016040819052620000359162000202565b600160005580516001600160a01b039081166080908152602080840151831660a0908152918401516101a0908152918401516101c090815260c0808601516101e090815260e0808801516102005261012080890151909352610100808901519091526101408089015190915290870180515190925281519093015190925281516040908101516101609081529251606090810151610180908152918701518616610220528601516102405291850151600980546001600160a01b031990811692871692909217905591850151600a8054841691861691909117905591840151600b80548316918516919091179055920151600c8054909316911617905562000315565b60405161020081016001600160401b03811182821017156200016a57634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200018857600080fd5b919050565b600060808284031215620001a057600080fd5b604051608081016001600160401b0381118282101715620001d157634e487b7160e01b600052604160045260246000fd5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b600061026082840312156200021657600080fd5b6200022062000138565b6200022b8362000170565b81526200023b6020840162000170565b60208201526200024e6040840162000170565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e0820152610100808401518183015250610120808401518183015250610140808401518183015250610160620002b981850162000170565b90820152610180620002cd84820162000170565b908201526101a0620002e184820162000170565b908201526101c0620002f584820162000170565b908201526101e06200030a858583016200018d565b908201529392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051610200516102205161024051613a55620004cc6000396000505060005050600050506000818160f8015281816103000152612cb601526000818161142001528181611c6b01528181611cce015281816124800152818161289b015281816128d701528181612acf0152612c900152600081816107be01528181610ce901528181610d2b01528181610e1d01528181611293015281816112f20152612c6a0152600061188a0152600081816119b0015281816126010152818161267a0152612dd001526000818161098201528181610d9e0152818161138d01528181611984015261264e015260008181610d7d015281816125cd0152612d8c0152600081816107df01528181610cc701528181610d4c01528181610e3e01528181611271015281816113130152612cdc0152600081816101d601528181610398015281816108ba0152613286015260008181610678015281816106f80152818161076e0152818161083a01526108720152600081816115fa0152818161169601526124ff015260005050613a556000f3fe6080604052600436106100295760003560e01c8063cba2e58d1461002e578063dbbe80701461005a575b600080fd5b61004161003c36600461351b565b61006d565b6040805192835260208301919091520160405180910390f35b61004161006836600461351b565b61008a565b60008061007c86868686610099565b915091505b94509492505050565b60008061007c868686866102c1565b6000806100a461051a565b600654610100900460ff16156100cd576040516321081abf60e01b815260040160405180910390fd5b6100d683610544565b6000806100e3888661057d565b909250905060006100f48383610652565b90507f00000000000000000000000000000000000000000000000000000000000000008110156101375760405163211ddda360e11b815260040160405180910390fd5b86821015610158576040516342af972b60e01b815260040160405180910390fd5b6000610162610670565b90506101728184600460016106a1565b5060008060006101828787610c98565b919a5091945090925090508b8810156101ae5760405163c972651760e01b815260040160405180910390fd5b81600d60008282546101c09190613590565b909155506101d19050844283610e7a565b6101fb7f000000000000000000000000000000000000000000000000000000000000000085613590565b98506102098389888c610fb8565b600061021660018b611152565b905061022f8161022960208e018e6135a3565b8b611187565b8d8a8a898e8561024260208301836135a3565b6001600160a01b03167f7fc9757758f4c7f2eb9f011c4500beb349847d2f2acbdd5ffce3e2f01e79903a86888661027f60408801602089016135da565b8961028d60408a018a6135f7565b6040516102a09796959493929190613667565b60405180910390a350909b5050505050505050505050506100816001600055565b6000806102cc61051a565b600654610100900460ff16156102f5576040516321081abf60e01b815260040160405180910390fd5b6102fe83610544565b7f000000000000000000000000000000000000000000000000000000000000000086101561033f5760405163211ddda360e11b815260040160405180910390fd5b600061034961122f565b90508481101561036c576040516342af972b60e01b815260040160405180910390fd5b6000610376610670565b9050600061038f610385610670565b84600460016106a1565b905060006103bd7f000000000000000000000000000000000000000000000000000000000000000084613590565b90506000806000806103d08e8988611242565b600d8054949850929650909450925083916000906103ef908490613590565b909155506104009050874283610e7a565b50600061040e84898d6113c8565b9050808d10156104315760405163c972651760e01b815260040160405180910390fd5b61043b818c61057d565b508e905061044b81858b896113fa565b6000610458600288611152565b90508c6104728261046c60208401846135a3565b85611187565b858b868461048360208601866135a3565b6001600160a01b03167ffa6dd2e3e152dbc3fe91196c0b8aa871c26fd7a1d07de126ec3159fd4ede2c758d8a866104c060408b0160208c016135da565b6104d4896104ce8a8d6136a8565b90610652565b8d6104e260408e018e6135f7565b6040516104f69897969594939291906136bb565b60405180910390a350989d50939b5050505050505050505050506100816001600055565b60026000540361053d57604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b600061055360208301836135a3565b6001600160a01b03160361057a5760405163f0dd15fd60e01b815260040160405180910390fd5b50565b8160008061059160408501602086016135da565b156105b6576105ac856105a760408701876135f7565b6115ae565b90935090506105ce565b50346105ce856105c960408701876135f7565b611674565b6105d661122f565b9150801561064957604051600090339083908381818185875af1925050503d8060008114610620576040519150601f19603f3d011682016040523d82523d6000602084013e610625565b606091505b5050905080610647576040516312171d8360e31b815260040160405180910390fd5b505b505b9250929050565b60006106678383670de0b6b3a7640000611711565b90505b92915050565b600061069c427f000000000000000000000000000000000000000000000000000000000000000061172f565b905090565b600084815260086020526040812060018101546001600160801b03161515806106c957504286115b156106e257600101546001600160801b03169050610c90565b60008060006106ef610670565b9050600061071d7f00000000000000000000000000000000000000000000000000000000000000008b613590565b90505b81811015610793576000818152600860205260409020600101546001600160801b0316801561076b576000828152600860205260409020549094506001600160801b03169250610793565b507f000000000000000000000000000000000000000000000000000000000000000001610720565b83600003610806578893506108036107a9611745565b600254600160801b90046001600160801b03167f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611766565b92505b5061081083611786565b6001850180546001600160801b0319166001600160801b039290921691909117905561086661085f7f00000000000000000000000000000000000000000000000000000000000000008b6136a8565b8a84610e7a565b6108a48961089e6108977f000000000000000000000000000000000000000000000000000000000000000083613590565b42906117b4565b84610e7a565b6108ad886117c9565b50600090506008816108df7f00000000000000000000000000000000000000000000000000000000000000008d6136a8565b815260208101919091526040016000908120600101546001600160801b0316915061090b60028c611152565b6000818152601060205260408120549192508c8c8315610a51576001925060008061093a86898d86600061196d565b9150915080600d60008282546109509190613590565b9091555061096c90508660008461096681611a3c565b88611a66565b6109768183613590565b91506109a686838a8e877f0000000000000000000000000000000000000000000000000000000000000000611be0565b91506109ba6109b58385610652565b611c2a565b600680546002906109db9084906201000090046001600160701b0316613703565b92506101000a8154816001600160701b0302191690836001600160701b03160217905550610a0882611786565b60068054601090610a2a908490600160801b90046001600160801b0316613723565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555050505b6000610a5e600184611152565b6000818152601060205260409020549091508015610b6d5760019450600080610a8b838b8f88600161196d565b9150915080600d6000828254610aa19190613590565b90915550610abd905083600084610ab781611a3c565b8a611c54565b610ac781836136a8565b9150610ad66109b58387610652565b60068054600290610af79084906201000090046001600160701b0316613703565b92506101000a8154816001600160701b0302191690836001600160701b03160217905550610b2482611786565b60068054601090610b46908490600160801b90046001600160801b0316613723565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555050505b8415610ba757610b99610b7f87611a3c565b610b8883611a3c565b610b929190613743565b6000611e45565b8e610ba48482611e84565b50505b6000610bb28461207e565b50604080518e815260208101879052908101899052606081018490526080810182905290915085907fff888cf98d2696e95c8c39aa98c9ad55a5378008f7a56614c9353b7137a57ab79060a00160405180910390a2600c546001600160a01b031615610c80578e610c7c5a604051336024820152604481018990528315156064820152600090819060840160408051601f198184030181529190526020810180516001600160e01b0316633488a6a760e11b179052600c546001600160a01b0316939291906121ca565b5050505b50999b5050505050505050505050505b949350505050565b6000806000806000610ca8611745565b600254909150610d0d908290600160801b90046001600160801b0316897f00000000000000000000000000000000000000000000000000000000000000008a7f0000000000000000000000000000000000000000000000000000000000000000612255565b600254909450610d70908290600160801b90046001600160801b03167f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611766565b9150610dc78785610dc2857f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612281565b6122e6565b15610dd457610dd4612328565b610de087858885612341565b91965094509250670de0b6b3a7640000610e62610dfd8784613590565b600254610e1b908890600160801b90046001600160801b03166136a8565b7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611766565b1115610e7057610e70612328565b5092959194509250565b600083815260086020526040902054600160801b90046001600160801b0316808303610ea65750505050565b6000848152600860205260408120546001600160801b031690819003610f0057610ecf83611786565b600086815260086020526040902080546001600160801b0319166001600160801b0392909216919091179055610f7e565b610f51610f4c670de0b6b3a7640000610f1988866136a8565b610f239190613763565b85670de0b6b3a7640000610f37878a6136a8565b610f419190613763565b85929190600161238d565b611786565b600086815260086020526040902080546001600160801b0319166001600160801b03929092169190911790555b610f8784611786565b60009586526008602052604090952080546001600160801b03968716600160801b0296169590951790945550505050565b600354600160801b90046001600160801b0316610ffa610f4c82610fe4670de0b6b3a764000086613763565b6005546001600160801b0316919088600161238d565b600580546001600160801b0319166001600160801b039290921691909117905561102385611786565b6002805460009061103e9084906001600160801b0316613723565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555061106b84611786565b6002805460109061108d908490600160801b90046001600160801b031661377a565b92506101000a8154816001600160801b0302191690836001600160801b031602179055506110ba84611786565b6110c49082613723565b600380546001600160801b03808416600160801b029116179055905060006110eb83612435565b9050611109816110fa87611a3c565b611104908461379a565b611e45565b61111284612479565b61111e5761111e612328565b6000611129856124d9565b90508061114957604051638bdf918d60e01b815260040160405180910390fd5b50505050505050565b60006001600160f81b0382111561117c5760405163b7d0949760e01b815260040160405180910390fd5b5060f89190911b1790565b6000838152600f602090815260408083206001600160a01b0386168452909152812080548392906111b9908490613590565b9091555050600083815260106020526040812080548392906111dc908490613590565b909155505060408051848152602081018390526001600160a01b0384169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b600061069c670de0b6b3a76400006124e6565b6000806000806000611252611745565b6002549091506112b7908290600160801b90046001600160801b03168a7f00000000000000000000000000000000000000000000000000000000000000008b7f0000000000000000000000000000000000000000000000000000000000000000612572565b9350876112c48589612593565b11156112d2576112d2612328565b6002546000908190611337908490600160801b90046001600160801b03167f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611766565b935061134d8a670de0b6b3a7640000868c6125a8565b50919350909150611360905081836136a8565b61136a90876136a8565b9550886113b7816113b18d61137f868c6136a8565b8d61138a87826126b6565b877f00000000000000000000000000000000000000000000000000000000000000006126cc565b90612593565b975090945050505093509350935093565b60006113da60408301602084016135da565b156113e65750826113f3565b6113f084846126f1565b90505b9392505050565b6002546001600160801b03168381101561141657611416612328565b60045490849003907f00000000000000000000000000000000000000000000000000000000000000009061144e908390600f0b612706565b101561145c5761145c612328565b6004546114a690610f4c90600160801b90046001600160801b0316611489670de0b6b3a764000086613763565b600554600160801b90046001600160801b0316919089600161238d565b600580546001600160801b03928316600160801b0292169190911790556114cc81611786565b600280546001600160801b0319166001600160801b03929092169190911790556114f585611786565b60028054601090611517908490600160801b90046001600160801b0316613723565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555061154485611786565b60048054601090611566908490600160801b90046001600160801b0316613723565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550600061159583612435565b9050611109816115a488611a3c565b6111049084613743565b600080843410156115d2576040516312171d8360e31b815260040160405180910390fd5b50600a5460405163a1903eab60e01b81526001600160a01b03918216600482015234869003917f0000000000000000000000000000000000000000000000000000000000000000169063a1903eab90879060240160206040518083038185885af1158015611644573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061166991906137c2565b91505b935093915050565b604051636d78045960e01b8152336004820152306024820152604481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636d780459906064016020604051808303816000875af11580156116e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170b91906137c2565b50505050565b600082600019048411830215820261172857600080fd5b5091020490565b600061173b82846137f1565b61066790846136a8565b60025460045460009161069c916001600160801b0390911690600f0b612706565b600061177d82611777858888611711565b9061272c565b95945050505050565b60006001600160801b038211156117b057604051630f0af95160e11b815260040160405180910390fd5b5090565b60008183116117c35782610667565b50919050565b60065460009081906117ec908490600160801b90046001600160801b0316610652565b6006546201000090046001600160701b0316925090508181111561196857600061181683836136a8565b9050611825610f4c8286612797565b60068054601090611847908490600160801b90046001600160801b031661377a565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550600061188085836126f190919063ffffffff16565b905060006118ae827f0000000000000000000000000000000000000000000000000000000000000000610652565b905080600d60008282546118c29190613590565b909155506118d2905081836136a8565b91506118dd82611786565b600280546000906118f89084906001600160801b0316613723565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550611925826127ac565b6004805460009061193a908490600f0b613805565b92506101000a8154816001600160801b030219169083600f0b6001600160801b031602179055508493505050505b915091565b60008061197a87856126f1565b915060006119a8837f0000000000000000000000000000000000000000000000000000000000000000610652565b90506119d4817f0000000000000000000000000000000000000000000000000000000000000000610652565b915083156119f7576119e682826136a8565b6119f090846136a8565b9250611a0e565b611a0182826136a8565b611a0b9084613590565b92505b86861015611a3157611a21838789611711565b9250611a2e828789611711565b91505b509550959350505050565b60006001600160ff1b038211156117b05760405163396ea70160e11b815260040160405180910390fd5b600454600160801b90046001600160801b0316611aaf610f4c82611a92670de0b6b3a764000086613763565b600554600160801b90046001600160801b031691908a600061238d565b600580546001600160801b03928316600160801b029216919091179055611ad586611786565b611adf908261377a565b600480546001600160801b03928316600160801b029216919091179055611b0584611786565b60028054600090611b209084906001600160801b0316613723565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550611b4d836127d6565b60048054600090611b62908490600f0b613805565b92506101000a8154816001600160801b030219169083600f0b6001600160801b03160217905550611b9285611786565b60028054601090611bb4908490600160801b90046001600160801b031661377a565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550505050505050565b600080611bf884611bf28a888a611711565b906126f1565b9050611c05888486611711565b611c0f9082613590565b905086811115611c1f5786810391505b509695505050505050565b60006001600160701b038211156117b05760405163086b151760e11b815260040160405180910390fd5b6002546001600160801b031683811080611c9657507f0000000000000000000000000000000000000000000000000000000000000000611c9485836136a8565b105b15611ca357611ca3612328565b6004549084900390600f0b611cb88482613743565b905083611cc486611a3c565b138015611cf957507f0000000000000000000000000000000000000000000000000000000000000000611cf78383612706565b105b15611d0657611d06612328565b600354600160801b90046001600160801b0316611d48610f4c82611d32670de0b6b3a764000088613763565b6005546001600160801b031691908c600061238d565b600580546001600160801b0319166001600160801b0392909216919091179055611d7288826136a8565b9050611d7d81611786565b600380546001600160801b03928316600160801b029216919091179055611da383611786565b600280546001600160801b0319166001600160801b0392909216919091179055611dcc826127d6565b600480546001600160801b0319166001600160801b0392909216919091179055611df587611786565b60028054601090611e17908490600160801b90046001600160801b0316613723565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505050505050505050565b600354611e6090610f4c906001600160801b03168484612812565b600380546001600160801b0319166001600160801b03929092169190911790555050565b600754600360f81b600090815260106020527fd6f7110f7a6485ce27c724322bdc9b60c9b2518194eace178d55653f1be730215490918291611ecf916001600160801b0316906136a8565b905080600003611ee357600191505061066a565b6000611eee85612879565b905080600003611f035760019250505061066a565b600080611f11838589612915565b9150915080611f2757600094505050505061066a565b60008073__$2b4fa6f02a36eedfe41c65e8dd342257d3$__632c03ef68858a6040518363ffffffff1660e01b8152600401611f639291906138b0565b6040805180830381865af4158015611f7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa39190613926565b91509150611fc1611fb382611a3c565b611fbc9061394a565b612a89565b925082611fd7576000965050505050505061066a565b611fe082611786565b60078054600090611ffb9084906001600160801b0316613723565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555061202881611786565b6007805460109061204a908490600160801b90046001600160801b0316613723565b92506101000a8154816001600160801b0302191690836001600160801b031602179055506001965050505050505092915050565b60008060008073__$2b4fa6f02a36eedfe41c65e8dd342257d3$__635a1b419e6120a787612c21565b6040518263ffffffff1660e01b81526004016120c39190613966565b6040805180830381865af41580156120df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121039190613975565b9150915080612119575060009485945092505050565b60075460106020527fd6f7110f7a6485ce27c724322bdc9b60c9b2518194eace178d55653f1be730215460008080527f6e0956cda88cad152e89927e53611735b61a5c762d1428573c6931b0a5efcb015490926001600160801b03169161217f91613590565b61218991906136a8565b9050806000036121a157506000958695509350505050565b60008087116121b15760006121bc565b6121bc848884611711565b976001975095505050505050565b6000606060008060008661ffff1667ffffffffffffffff8111156121f0576121f06139a5565b6040519080825280601f01601f19166020018201604052801561221a576020820181803683370190505b5090506000808751602089018b8e8ef191503d92508683111561223b578692505b828152826000602083013e90999098509650505050505050565b600061227687878761226f88670de0b6b3a76400006136a8565b8787612d5b565b979650505050505050565b60006113f06122c261229b84670de0b6b3a76400006136a8565b6113b1670de0b6b3a76400006122b1818a612797565b6122bb91906136a8565b8790612593565b6122d490670de0b6b3a7640000613590565b611bf284670de0b6b3a76400006136a8565b60008061231d856122f5611745565b6122ff9190613590565b600254610e1b908790600160801b90046001600160801b03166136a8565b909210949350505050565b60405163bb55fd2760e01b815260040160405180910390fd5b6000806000806000612354898789612d7e565b909250905061236382896136a8565b9750600061237282888a611711565b905061237e818b6136a8565b9a989950979650505050505050565b60008260000361239e57508461177d565b81156123f1576123cf6123b18487613590565b6123bb8587610652565b6123c5888a610652565b611bf29190613590565b905060006123dd85886117b4565b9050808210156123eb578091505b5061177d565b8285036124005750600061177d565b61242b61240d84876136a8565b6124178587612593565b612421888a610652565b611bf291906136a8565b9695505050505050565b600061245d60106000612449600286611152565b815260200190815260200160002054611a3c565b61246f60106000612449600187611152565b61066a9190613743565b60006124a57f000000000000000000000000000000000000000000000000000000000000000083612593565b6003546124bb91906001600160801b0316613590565b6002546124d1906001600160801b031684610652565b101592915050565b600061066a826004611e84565b604051630f451f7160e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637a28fb8890602401602060405180830381865afa15801561254e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066a91906137c2565b600061227687878761258c88670de0b6b3a76400006136a8565b8787612dfe565b60006106678383670de0b6b3a7640000612e0f565b60008080806125f987866125f28b6113b16125cb8c670de0b6b3a76400006136a8565b7f000000000000000000000000000000000000000000000000000000000000000090612593565b9190612e0f565b9350612625847f0000000000000000000000000000000000000000000000000000000000000000610652565b9150600061264661263e89670de0b6b3a76400006136a8565b8a9088612e0f565b9050612672817f0000000000000000000000000000000000000000000000000000000000000000612593565b935061269e847f0000000000000000000000000000000000000000000000000000000000000000610652565b6126a89084613590565b915050945094509450949050565b60008183116126c55781610667565b5090919050565b6000806126e4846126de8a888a612e0f565b90612797565b9050611c05888486612e0f565b600061066783670de0b6b3a764000084611711565b6000806127138484612e35565b90925090508061272557612725612328565b5092915050565b6000816000036127455750670de0b6b3a764000061066a565b826000036127555750600061066a565b600061276083611a3c565b9050600061277561277086611a3c565b612e71565b905081810261278c670de0b6b3a7640000826139bb565b905061242b81613097565b600061066783670de0b6b3a764000084612e0f565b600060016001607f1b038211156117b05760405163a5353be560e01b815260040160405180910390fd5b600060016001607f1b03198212806127f4575060016001607f1b0382135b156117b05760405163a5353be560e01b815260040160405180910390fd5b60008061282084600061322c565b61282b84600061322c565b6128359190613743565b905060008113156128515761284a8186613590565b9450612870565b6000811215612870576128638161394a565b61286d90866136a8565b94505b50929392505050565b6003546000908190612894906001600160801b031684612797565b90506128c07f000000000000000000000000000000000000000000000000000000000000000082613590565b6002546001600160801b031611156117c3576002547f00000000000000000000000000000000000000000000000000000000000000009061290b9083906001600160801b03166136a8565b6113f391906136a8565b61291d613468565b60008061292984612c21565b9050600073__$2b4fa6f02a36eedfe41c65e8dd342257d3$__635a1b419e836040518263ffffffff1660e01b81526004016129649190613966565b6040805180830381865af4158015612980573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a49190613975565b93509050826129b957506000915061166c9050565b60006129e06129db84610160015185610140015161065290919063ffffffff16565b611a3c565b612a006129db85610120015186610100015161259390919063ffffffff16565b612a0a9190613743565b604080516101208101825285815260208082019590955260008052601085527f6e0956cda88cad152e89927e53611735b61a5c762d1428573c6931b0a5efcb0154818301526060810199909952608089019990995260a088015250815160c087015281015160e086015290940151610100840152509092600192509050565b6002546004805460405163685a2be760e11b81526001600160801b03808516938201849052600f9290920b60248201819052600160801b909404909116604482018190527f000000000000000000000000000000000000000000000000000000000000000060648301526084820185905260009391849081908190819073__$2b4fa6f02a36eedfe41c65e8dd342257d3$__9063d0b457ce9060a401608060405180830381865af4158015612b42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b6691906139e9565b935093509350935080612b825750600098975050505050505050565b868414612bb357612b9284611786565b600280546001600160801b0319166001600160801b03929092169190911790555b858314612be457612bc3836127d6565b600480546001600160801b0319166001600160801b03929092169190911790555b848214612c1257612bf482611786565b600280546001600160801b03928316600160801b0292169190911790555b50600198975050505050505050565b612c296134ba565b60408051610180810182526002546001600160801b038082168352600454600f0b6020840152600160801b91829004811693830193909352606082018590527f000000000000000000000000000000000000000000000000000000000000000060808301527f000000000000000000000000000000000000000000000000000000000000000060a08301527f000000000000000000000000000000000000000000000000000000000000000060c08301527f000000000000000000000000000000000000000000000000000000000000000060e08301526003540482166101008201526005549091610120830191612d21911661323b565b81526004546001600160801b03600160801b9182900481166020840152600554604090930192612d539290041661323b565b905292915050565b600080612d6c8888888888886132b1565b909250905080611c1f57611c1f612328565b600080612dc8856113b185817f0000000000000000000000000000000000000000000000000000000000000000670de0b6b3a7640000612dbe818c612797565b6113b191906136a8565b9150612df4827f0000000000000000000000000000000000000000000000000000000000000000610652565b9050935093915050565b600080612d6c888888888888613379565b6000826000190484118302158202612e2657600080fd5b50910281810615159190040190565b600080600083612e4486611a3c565b612e4e9190613743565b90506000811215612e6657600080925092505061064b565b946001945092505050565b6000808213612e935760405163e61b497560e01b815260040160405180910390fd5b506001600160801b03811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff10600390811b90911782811c600f1060021b1782811c909110600190811b90911782811c90911017609f8181036060019290921b91605f19820190612f169084901c611a3c565b6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d6c8c3f38e95a6b1ff2ab1c3b343619018302821d6d02384773bdf1ac5676facced60901901830290911d6cb9a025d814b29c212b8b1a07cd1901909102780a09507084cc699bb0e71ea869ffffffffffffffffffffffff190105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b391909102017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b6000680248ce36a70cb26b3e1982136130b257506000919050565b680755bf798b4a1bf1e582126130db576040516373a2d6b160e01b815260040160405180910390fd5b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056001605f1b01901d6bb17217f7d1cf79abc9e3b3988102909303926c240c330e9fb2d9cbaf0fd5aafb1984018402606090811d6d0277594991cfc85f6e2461837cd9018502811d6d1a521255e34f6a5061b25ef1c9c319018502811d6db1bbb201f443cf962f1a1d3db4a5018502811d6e02c72388d9f74f51a9331fed693f1419018502811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765087018702831d9081019087016d01d3967ed30fc4f89c02bab570811901810290921d6e0587f503bb6ea29d25fcb7401964500186026d360d7aeea093263ecc6e0ecb291760621b01818105955092935090919061242b74029d9dc38563c32e5c2f6dc192ee70ef65f9978af3860260c38690031c611a3c565b60008183136126c55781610667565b600080670de0b6b3a764000061324f610670565b6132599190613763565b9050808311613269576000613273565b61327381846136a8565b91506113f36132aa670de0b6b3a76400007f0000000000000000000000000000000000000000000000000000000000000000613763565b83906126f1565b60008060006132c38989888888613439565b90506132dd866117776132d68a8d613590565b8790610652565b98506132ea858a86611711565b98508881101561330157600080925092505061336e565b888103670de0b6b3a764000081106133365761332f613328670de0b6b3a764000089612797565b829061272c565b905061334e565b61334b613328670de0b6b3a7640000896126f1565b90505b808910156133645760008093509350505061336e565b8803925060019150505b965096945050505050565b600080600061338b8989888888613439565b905061339b86611777898b613590565b9750878110156133b257600080925092505061336e565b8781036133c0818688612e0f565b9050670de0b6b3a764000081106133ed576133e6613328670de0b6b3a764000089612797565b9050613405565b613402613328670de0b6b3a7640000896126f1565b90505b61340f8186612797565b9050808a10156134275760008093509350505061336e565b90980398600198509650505050505050565b6000613445858561272c565b61345e61345686611777868b612593565b859085612e0f565b61242b9190613590565b60405180610120016040528061347c6134ba565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000806000806080858703121561353157600080fd5b843593506020850135925060408501359150606085013567ffffffffffffffff81111561355d57600080fd5b85016060818803121561356f57600080fd5b939692955090935050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561066a5761066a61357a565b6000602082840312156135b557600080fd5b81356001600160a01b03811681146113f357600080fd5b801515811461057a57600080fd5b6000602082840312156135ec57600080fd5b81356113f3816135cc565b6000808335601e1984360301811261360e57600080fd5b83018035915067ffffffffffffffff82111561362957600080fd5b60200191503681900382131561064b57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b878152866020820152856040820152841515606082015283608082015260c060a0820152600061369b60c08301848661363e565b9998505050505050505050565b8181038181111561066a5761066a61357a565b88815287602082015286604082015285151560608201528460808201528360a082015260e060c082015260006136f560e08301848661363e565b9a9950505050505050505050565b6001600160701b038181168382160190808211156127255761272561357a565b6001600160801b038181168382160190808211156127255761272561357a565b81810360008312801583831316838312821617156127255761272561357a565b808202811582820484141761066a5761066a61357a565b6001600160801b038281168282160390808211156127255761272561357a565b80820182811260008312801582168215821617156137ba576137ba61357a565b505092915050565b6000602082840312156137d457600080fd5b5051919050565b634e487b7160e01b600052601260045260246000fd5b600082613800576138006137db565b500690565b600f81810b9083900b0160016001607f1b03811360016001607f1b03198212171561066a5761066a61357a565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301526101008082015181840152506101208082015181840152506101408082015181840152506101608082015181840152505050565b60006102a0820190506138c4828551613832565b602084015161018083015260408401516101a083015260608401516101c083015260808401516101e083015260a084015161020083015260c084015161022083015260e084015161024083015261010090930151610260820152610280015290565b6000806040838503121561393957600080fd5b505080516020909101519092909150565b6000600160ff1b820161395f5761395f61357a565b5060000390565b610180810161066a8284613832565b6000806040838503121561398857600080fd5b82519150602083015161399a816135cc565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000826139ca576139ca6137db565b600160ff1b8214600019841416156139e4576139e461357a565b500590565b600080600080608085870312156139ff57600080fd5b845193506020850151925060408501519150606085015161356f816135cc56fea26469706673582212203fc1aef5832475d51e73b0390aceed86697908dfb79727870670c01ef4039f4364736f6c63430008160033",
[
(
"contracts/src/libraries/LPMath.sol:LPMath",
libs.lp_math,
)
],
client.clone(),
).unwrap();
let deployer = factory.deploy(constructor_args)?;
let deployer = ::ethers::contract::ContractDeployer::new(deployer);
Ok(deployer)
}
}