pub use st_eth_target_0_deployer::*;
/// 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_0_deployer {
#[allow(deprecated)]
fn __abi() -> ::ethers::core::abi::Abi {
::ethers::core::abi::ethabi::Contract {
constructor: ::core::option::Option::None,
functions: ::core::convert::From::from([
(
::std::borrow::ToOwned::to_owned("deployTarget"),
::std::vec![
::ethers::core::abi::ethabi::Function {
name: ::std::borrow::ToOwned::to_owned("deployTarget"),
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",
),
),
},
::ethers::core::abi::ethabi::Param {
name: ::std::string::String::new(),
kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
internal_type: ::core::option::Option::Some(
::std::borrow::ToOwned::to_owned("bytes"),
),
},
::ethers::core::abi::ethabi::Param {
name: ::std::borrow::ToOwned::to_owned("_salt"),
kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
32usize,
),
internal_type: ::core::option::Option::Some(
::std::borrow::ToOwned::to_owned("bytes32"),
),
},
],
outputs: ::std::vec![
::ethers::core::abi::ethabi::Param {
name: ::std::string::String::new(),
kind: ::ethers::core::abi::ethabi::ParamType::Address,
internal_type: ::core::option::Option::Some(
::std::borrow::ToOwned::to_owned("address"),
),
},
],
constant: ::core::option::Option::None,
state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
},
],
),
]),
events: ::std::collections::BTreeMap::new(),
errors: ::std::collections::BTreeMap::new(),
receive: false,
fallback: false,
}
}
///The parsed JSON ABI of the contract.
pub static STETHTARGET0DEPLOYER_ABI: ::ethers::contract::Lazy<
::ethers::core::abi::Abi,
> = ::ethers::contract::Lazy::new(__abi);
pub struct StETHTarget0Deployer<M>(::ethers::contract::Contract<M>);
impl<M> ::core::clone::Clone for StETHTarget0Deployer<M> {
fn clone(&self) -> Self {
Self(::core::clone::Clone::clone(&self.0))
}
}
impl<M> ::core::ops::Deref for StETHTarget0Deployer<M> {
type Target = ::ethers::contract::Contract<M>;
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl<M> ::core::ops::DerefMut for StETHTarget0Deployer<M> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.0
}
}
impl<M> ::core::fmt::Debug for StETHTarget0Deployer<M> {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple(::core::stringify!(StETHTarget0Deployer))
.field(&self.address())
.finish()
}
}
impl<M: ::ethers::providers::Middleware> StETHTarget0Deployer<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(),
STETHTARGET0DEPLOYER_ABI.clone(),
client,
),
)
}
///Calls the contract's `deployTarget` (0x6b323707) function
pub fn deploy_target(
&self,
config: PoolConfig,
p1: ::ethers::core::types::Bytes,
salt: [u8; 32],
) -> ::ethers::contract::builders::ContractCall<
M,
::ethers::core::types::Address,
> {
self.0
.method_hash([107, 50, 55, 7], (config, p1, salt))
.expect("method not found (this should never happen)")
}
}
impl<M: ::ethers::providers::Middleware> From<::ethers::contract::Contract<M>>
for StETHTarget0Deployer<M> {
fn from(contract: ::ethers::contract::Contract<M>) -> Self {
Self::new(contract.address(), contract.client())
}
}
///Container type for all input parameters for the `deployTarget` function with signature `deployTarget((address,address,address,bytes32,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,address,address,address,(uint256,uint256,uint256,uint256)),bytes,bytes32)` and selector `0x6b323707`
#[derive(
Clone,
::ethers::contract::EthCall,
::ethers::contract::EthDisplay,
serde::Serialize,
serde::Deserialize,
)]
#[ethcall(
name = "deployTarget",
abi = "deployTarget((address,address,address,bytes32,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,address,address,address,(uint256,uint256,uint256,uint256)),bytes,bytes32)"
)]
pub struct DeployTargetCall {
pub config: PoolConfig,
pub p1: ::ethers::core::types::Bytes,
pub salt: [u8; 32],
}
///Container type for all return fields from the `deployTarget` function with signature `deployTarget((address,address,address,bytes32,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,address,address,address,(uint256,uint256,uint256,uint256)),bytes,bytes32)` and selector `0x6b323707`
#[derive(
Clone,
::ethers::contract::EthAbiType,
::ethers::contract::EthAbiCodec,
serde::Serialize,
serde::Deserialize,
Default,
Debug,
PartialEq,
Eq,
Hash
)]
pub struct DeployTargetReturn(pub ::ethers::core::types::Address);
///`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,
}
///`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 StETHTarget0DeployerLibs {
pub lp_math: ::ethers::types::Address,
}
impl<M: ::ethers::providers::Middleware> StETHTarget0Deployer<M> {
pub fn link_and_deploy<T: ::ethers::core::abi::Tokenize>(
client: ::std::sync::Arc<M>,
constructor_args: T,
libs: StETHTarget0DeployerLibs,
) -> ::core::result::Result<
::ethers::contract::builders::ContractDeployer<M, Self>,
::ethers::contract::ContractError<M>,
> {
let factory = crate::linked_factory::create(
STETHTARGET0DEPLOYER_ABI.clone(),
"0x608060405234801561001057600080fd5b50613eb2806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80636b32370714610030575b600080fd5b61004361003e366004610227565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b604080513360208201529081018290526000906060016040516020818303038152906040528051906020012084604051610098906100cb565b6100a2919061036f565b8190604051809103906000f59050801580156100c2573d6000803e3d6000fd5b50949350505050565b6139e88061049583390190565b634e487b7160e01b600052604160045260246000fd5b604051610200810167ffffffffffffffff81118282101715610112576101126100d8565b60405290565b80356001600160a01b038116811461012f57600080fd5b919050565b60006080828403121561014657600080fd5b6040516080810181811067ffffffffffffffff82111715610169576101696100d8565b8060405250809150823581526020830135602082015260408301356040820152606083013560608201525092915050565b600082601f8301126101ab57600080fd5b813567ffffffffffffffff808211156101c6576101c66100d8565b604051601f8301601f19908116603f011681019082821181831017156101ee576101ee6100d8565b8160405283815286602085880101111561020757600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008385036102a081121561023e57600080fd5b6102608082121561024e57600080fd5b6102566100ee565b915061026186610118565b825261026f60208701610118565b602083015261028060408701610118565b6040830152606086013560608301526080860135608083015260a086013560a083015260c086013560c083015260e086013560e08301526101008087013581840152506101208087013581840152506101408087013581840152506101606102e9818801610118565b908301526101806102fb878201610118565b908301526101a061030d878201610118565b908301526101c061031f878201610118565b908301526101e061033288888301610134565b9083015290935084013567ffffffffffffffff81111561035157600080fd5b61035d8682870161019a565b92505061028084013590509250925092565b81516001600160a01b031681526102608101602083015161039b60208401826001600160a01b03169052565b5060408301516103b660408401826001600160a01b03169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525061016080840151610428828501826001600160a01b03169052565b5050610180838101516001600160a01b03908116918401919091526101a0808501518216908401526101c080850151909116908301526101e09283015180519383019390935260208301516102008301526040830151610220830152606090920151610240909101529056fe6102606040523480156200001257600080fd5b50604051620039e8380380620039e8833981016040819052620000359162000202565b600160005580516001600160a01b039081166080908152602080840151831660a0908152918401516101a0908152918401516101c090815260c0808601516101e090815260e0808801516102005261012080890151909352610100808901519091526101408089015190915290870180515190925281519093015190925281516040908101516101609081529251606090810151610180908152918701518616610220528601516102405291850151600980546001600160a01b031990811692871692909217905591850151600a8054841691861691909117905591840151600b80548316918516919091179055920151600c8054909316911617905562000315565b60405161020081016001600160401b03811182821017156200016a57634e487b7160e01b600052604160045260246000fd5b60405290565b80516001600160a01b03811681146200018857600080fd5b919050565b600060808284031215620001a057600080fd5b604051608081016001600160401b0381118282101715620001d157634e487b7160e01b600052604160045260246000fd5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201525092915050565b600061026082840312156200021657600080fd5b6200022062000138565b6200022b8362000170565b81526200023b6020840162000170565b60208201526200024e6040840162000170565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e0820152610100808401518183015250610120808401518183015250610140808401518183015250610160620002b981850162000170565b90820152610180620002cd84820162000170565b908201526101a0620002e184820162000170565b908201526101c0620002f584820162000170565b908201526101e06200030a858583016200018d565b908201529392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051610240516135b76200043160003960008181610d3f0152611df3015260008181610d180152611db601526000610ddf015260008181610db90152611fa6015260008181610d930152611f80015260008181610d690152611f5a01526000610f1b01526000610ef601526000610ed101526000610eae015260008181610e530152611fcc015260008181610e05015281816110b8015261263a015260008181610e2c01526127ff01526000818161065e01528181610cec01528181611ac40152818161227301528181612300015261278a015260008181610cc7015261105101526135b76000f3fe608060405234801561001057600080fd5b50600436106102475760003560e01c80637180c8ca1161013b578063becee9c3116100b8578063d81657431161007c578063d816574314610530578063e44808bc14610545578063e4af29d114610558578063e985e9c51461056b578063fba560081461057e57600080fd5b8063becee9c3146104da578063c55dae63146104fa578063c69e16ad14610502578063c6e6f5921461050a578063cf210e651461051d57600080fd5b8063a5107626116100ff578063a510762614610479578063ab033ea91461048c578063b0d965801461049f578063b88fed9f146104b4578063bd85b039146104c757600080fd5b80637180c8ca1461041a5780637ecebe001461042d5780639cd241af14610440578063a22cb46514610453578063a42dce801461046657600080fd5b806321ff32a9116101c957806346fbf68e1161018d57806346fbf68e146103b45780634e41a1fb146103d75780634ed2d6ac146103ea57806354fd4d50146103fd57806360246c881461040557600080fd5b806321ff32a91461034b578063313ce5671461036c5780633656eec2146103865780633a98ef39146103995780633e691db9146103a157600080fd5b80630a4e1493116102105780630a4e1493146102ad57806314e5f07b146102cd57806317fad7fc146102e05780631c0f12b6146102f357806320fc48811461030657600080fd5b8062ad800c1461024c57806301681a621461027557806302329a291461028a57806304baa00b1461029d57806306fdde03146102a5575b600080fd5b61025f61025a366004612a50565b6105ad565b60405161026c9190612ab9565b60405180910390f35b610288610283366004612ae1565b6105e4565b005b610288610298366004612b0c565b6105f0565b61025f6105f9565b61025f610639565b6102b5610650565b6040516001600160a01b03909116815260200161026c565b6102886102db366004612b29565b610690565b6102886102ee366004612c0a565b6106ac565b610288610301366004612c9f565b6106c2565b610319610314366004612a50565b6106d5565b6040805182516001600160801b039081168252602080850151821690830152928201519092169082015260600161026c565b61035e610359366004612ce7565b610741565b60405190815260200161026c565b610374610787565b60405160ff909116815260200161026c565b61035e610394366004612d29565b61079f565b61035e6107d8565b61035e6103af366004612d59565b6107f7565b6103c76103c2366004612ae1565b610802565b604051901515815260200161026c565b61025f6103e5366004612a50565b610838565b6102886103f8366004612d94565b610846565b61025f610894565b61040d6108c9565b60405161026c9190612dde565b610288610428366004612e7f565b610bd8565b61035e61043b366004612ae1565b610be6565b61028861044e366004612ead565b610c12565b610288610461366004612e7f565b610c23565b610288610474366004612ae1565b610c8f565b610288610487366004612ae1565b610c98565b61028861049a366004612ae1565b610ca1565b6104a7610caa565b60405161026c9190612ee5565b61035e6104c2366004612a50565b610f58565b61035e6104d5366004612a50565b610f66565b6104ed6104e836600461300b565b610f88565b60405161026c919061304d565b6102b5611043565b61035e611083565b61035e610518366004612a50565b61109d565b61035e61052b366004612a50565b6110ab565b6105386110e2565b60405161026c9190613091565b6102886105533660046131a2565b6111ee565b610288610566366004612ae1565b611236565b6103c7610579366004613201565b61123f565b610586611283565b6040805182516001600160801b03908116825260209384015116928101929092520161026c565b60606105df6105bb836112e2565b6040516020016105cb9190612ab9565b60405160208183030381529060405261140a565b919050565b6105ed8161142e565b50565b6105ed816115a4565b60606106366040518060400160405280600f81526020016e53744554484879706572647269766560881b8152506040516020016105cb9190612ab9565b90565b606061063660016040516020016105cb919061322f565b604080516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016602082015260009161063691016105cb565b6106a1898989898989898989611640565b505050505050505050565b6106ba868686868686611837565b505050505050565b6106cf84848484336118eb565b50505050565b60408051606081018252600080825260208201819052918101919091526105df600860008481526020019081526020016000206040516020016105cb919081546001600160801b03808216835260809190911c6020830152600190920154909116604082015260600190565b60008381526012602090815260408083206001600160a01b038681168552908352818420908516845282528083205481519283015261078091016105cb565b9392505050565b604080516012602082015260009161063691016105cb565b6000828152600f602090815260408083206001600160a01b03851684528252808320548151928301526107d291016105cb565b92915050565b60006106366107e5611aac565b6040516020016105cb91815260200190565b60006107d282611b3c565b6001600160a01b0381166000908152600e602090815260408083205490516105df926105cb9260ff169101901515815260200190565b60606105df6105bb83611c7a565b8361085081611d78565b6001600160a01b0316336001600160a01b03161461088157604051632aab8bd360e01b815260040160405180910390fd5b61088d85858585611e35565b5050505050565b60606106366040518060400160405280600781526020016676312e302e313760c81b8152506040516020016105cb9190612ab9565b610942604051806101e001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600061094c611ea2565b60075460106020527fd6f7110f7a6485ce27c724322bdc9b60c9b2518194eace178d55653f1be730215460008080527f6e0956cda88cad152e89927e53611735b61a5c762d1428573c6931b0a5efcb0154939450926001600160801b03909216916109b7919061330c565b6109c1919061331f565b905060008215610ad35773__$2b4fa6f02a36eedfe41c65e8dd342257d3$__635a1b419e6109ee85611eb5565b6040805160e084811b6001600160e01b03191682528351600483015260208401516024830152918301516044820152606083015160648201526080830151608482015260a083015160a482015260c083015160c48201529082015160e482015261010082015161010482015261012082015161012482015261014082015161014482015261016090910151610164820152610184016040805180830381865af4158015610a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac39190613332565b509050610ad0818461204b565b90505b604080516101e0810182526002546001600160801b038082168352600454600f81900b60208501526006546001600160701b036201000082041695850195909552600160801b9485900482166060850152918490048116608084015260a0830186905260c08301879052600354849004811660e0840152600554808216610100850152918490048116610120840152908390048116610140830152600754808216610160840152929092049091166101808201526000906101a081018415610ba457610b9f8486612060565b610ba7565b60005b81526003546001600160801b0316602091820152604051919250610bd1916105cb91849101612dde565b5050505090565b610be28282612075565b5050565b6001600160a01b0381166000908152601360209081526040808320548151928301526105df91016105cb565b610c1e83838333611e35565b505050565b3360008181526011602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6105ed816120fe565b6105ed81612172565b6105ed816121e6565b610cb2612969565b60408051610200810182526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811682527f000000000000000000000000000000000000000000000000000000000000000081166020808401919091527f00000000000000000000000000000000000000000000000000000000000000008216838501527f00000000000000000000000000000000000000000000000000000000000000006060808501919091527f00000000000000000000000000000000000000000000000000000000000000006080808601919091527f000000000000000000000000000000000000000000000000000000000000000060a08601527f000000000000000000000000000000000000000000000000000000000000000060c08601527f000000000000000000000000000000000000000000000000000000000000000060e08601527f00000000000000000000000000000000000000000000000000000000000000006101008601527f00000000000000000000000000000000000000000000000000000000000000006101208601527f00000000000000000000000000000000000000000000000000000000000000006101408601526009548416610160860152600a548416610180860152600b5484166101a0860152600c549093166101c0850152845192830185527f000000000000000000000000000000000000000000000000000000000000000083527f0000000000000000000000000000000000000000000000000000000000000000838301527f0000000000000000000000000000000000000000000000000000000000000000838601527f0000000000000000000000000000000000000000000000000000000000000000908301526101e08301919091529151610636926105cb929101612ee5565b60006105df6107e58361225a565b6000818152601060209081526040808320548151928301526105df91016105cb565b606060008267ffffffffffffffff811115610fa557610fa5613357565b604051908082528060200260200182016040528015610fce578160200160208202803683370190505b50905060005b83811015611027576000858583818110610ff057610ff061336d565b905060200201359050600081549050808484815181106110125761101261336d565b60209081029190910101525050600101610fd4565b5061103c816040516020016105cb919061304d565b5092915050565b604080516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016602082015260009161063691016105cb565b6000610636600d546040516020016105cb91815260200190565b60006105df6107e5836122e7565b60006105df6107e56110dd7f00000000000000000000000000000000000000000000000000000000000000008561330c565b612337565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810182905261016081019190915261063660026040516020016105cb919081546001600160801b038082168352608091821c602084015260018401548082166040850152821c60608401526002840154600f81900b83850152821c60a0840152600384015490811660c0840152811c60e083015260049092015460ff8082161515610100840152600882901c1615156101208301526001600160701b03601082901c1661014083015290911c6101608201526101800190565b846111f881611d78565b6001600160a01b0316336001600160a01b03161461122957604051632aab8bd360e01b815260040160405180910390fd5b6106ba86868686866118eb565b6105ed8161237b565b6001600160a01b038281166000908152601160209081526040808320938516835292815282822054835160ff90911615159181019190915290916107d291016105cb565b60408051808201909152600080825260208201526040805180820182526007546001600160801b03808216808452600160801b9092048116602093840190815284519384019290925290511691810191909152610636906060016105cb565b606060f882901c6001600160f81b03831660006112fe826123ef565b90506000836003811115611314576113146132e0565b03611346576040518060400160405280600d81526020016c048797065726472697665204c5609c1b8152509350611402565b600183600381111561135a5761135a6132e0565b0361138657806040516020016113709190613383565b6040516020818303038152906040529350611402565b600283600381111561139a5761139a6132e0565b036113b0578060405160200161137091906133bc565b60038360038111156113c4576113c46132e0565b03611402576040518060400160405280601b81526020017f48797065726472697665205769746864726177616c205368617265000000000081525093505b505050919050565b80604051636e64089360e11b81526004016114259190612ab9565b60405180910390fd5b6114366124a4565b600b54336000908152600e60205260409020546001600160a01b039091169060ff1615801561146e5750336001600160a01b03821614155b801561148557506009546001600160a01b03163314155b156114a2576040516282b42960e81b815260040160405180910390fd5b60006114ac611aac565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038516906370a0823190602401602060405180830381865afa1580156114f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151a91906133f6565b90506115306001600160a01b03851684836124ce565b81611539611aac565b14611557576040516313dd85ff60e31b815260040160405180910390fd5b836001600160a01b0316836001600160a01b03167f951f51ee88c8e42633698bba90d1e53c0954470938036879e691c0232b47e09660405160405180910390a35050506105ed6001600055565b336000908152600e602052604090205460ff161580156115cf57506009546001600160a01b03163314155b156115ec576040516282b42960e81b815260040160405180910390fd5b600680548215156101000261ff00199091161790556040517f7c4d1fe30fdbfda9e9c4c43e759ef32e4db5128d4cb58ff3ae9583b89b6242a59061163590831515815260200190565b60405180910390a150565b834211156116615760405163f87d927160e01b815260040160405180910390fd5b6001600160a01b0387166116885760405163f0dd15fd60e01b815260040160405180910390fd5b6001600160a01b0387811660008181526013602090815260408083205481518084018f905280830195909552948b166060850152891515608085015260a084019490945260c08084018990528451808503909101815260e08401909452835193019290922061190160f01b61010083015261010282018c90526101228201526101420160408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015611776573d6000803e3d6000fd5b505050602060405103519050886001600160a01b0316816001600160a01b0316146117b457604051638baa579f60e01b815260040160405180910390fd5b6001600160a01b0389811660008181526013602090815260408083208054600101905560118252808320948d1680845294825291829020805460ff19168c151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050505050505050505050565b6001600160a01b038616158061185457506001600160a01b038516155b156118725760405163f0dd15fd60e01b815260040160405180910390fd5b8281146118925760405163174861a760e31b815260040160405180910390fd5b60005b838110156118e2576118da8585838181106118b2576118b261336d565b9050602002013588888686868181106118cd576118cd61336d565b90506020020135336118eb565b600101611895565b50505050505050565b6001600160a01b038416158061190857506001600160a01b038316155b156119265760405163f0dd15fd60e01b815260040160405180910390fd5b836001600160a01b0316816001600160a01b0316146119ea576001600160a01b0380851660009081526011602090815260408083209385168352929052205460ff166119ea5760008581526012602090815260408083206001600160a01b038089168552908352818420908516845290915290205460001981146119e85760008681526012602090815260408083206001600160a01b03808a1685529083528184209086168452909152812080548592906119e290849061331f565b90915550505b505b6000858152600f602090815260408083206001600160a01b038816845290915281208054849290611a1c90849061331f565b90915550506000858152600f602090815260408083206001600160a01b038716845290915281208054849290611a5390849061330c565b909155505060408051868152602081018490526001600160a01b038086169287821692918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b604051633d7ad0b760e21b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5eb42dc90602401602060405180830381865afa158015611b13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3791906133f6565b905090565b6000611b466124a4565b611b4f82612520565b600a546001600160a01b031680611b696020850185612ae1565b6001600160a01b031614611b9057604051630ad13b3360e21b815260040160405180910390fd5b336000908152600e602052604090205460ff16158015611bb95750336001600160a01b03821614155b8015611bd057506009546001600160a01b03163314155b15611bed576040516282b42960e81b815260040160405180910390fd5b6000611bf7611ea2565b600d80546000909155909150611c0e818387612556565b93506001600160a01b0383167f3e5eb8642141e29a1b4e5c28b467396f814c1698e1adfc3ff327ddb9a60383618584611c4d60408a0160208b01612b0c565b60408051938452602084019290925215159082015260600160405180910390a25050506105df6001600055565b606060f882901c6001600160f81b0383166000611c96826123ef565b90506000836003811115611cac57611cac6132e0565b03611cde576040518060400160405280600d81526020016c0485950455244524956452d4c5609c1b8152509350611402565b6001836003811115611cf257611cf26132e0565b03611d085780604051602001611370919061340f565b6002836003811115611d1c57611d1c6132e0565b03611d3257806040516020016113709190613447565b6003836003811115611d4657611d466132e0565b0361140257505060408051808201909152600d81526c485950455244524956452d575360981b60208201529392505050565b604080513060208083019190915281830193909352815180820383018152606080830184528151918501919091206001600160f81b031960808401527f000000000000000000000000000000000000000000000000000000000000000090911b6bffffffffffffffffffffffff1916608183015260958201527f000000000000000000000000000000000000000000000000000000000000000060b5808301919091528251808303909101815260d5909101909152805191012090565b60008481526012602090815260408083206001600160a01b0385811680865291845282852090881680865290845293829020869055905185815290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050565b6000611b37670de0b6b3a764000061225a565b611f196040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60408051610180810182526002546001600160801b038082168352600454600f0b6020840152600160801b91829004811693830193909352606082018590527f000000000000000000000000000000000000000000000000000000000000000060808301527f000000000000000000000000000000000000000000000000000000000000000060a08301527f000000000000000000000000000000000000000000000000000000000000000060c08301527f000000000000000000000000000000000000000000000000000000000000000060e0830152600354048216610100820152600554909161012083019161201191166125ef565b81526004546001600160801b03600160801b9182900481166020840152600554604090930192612043929004166125ef565b905292915050565b60006107808383670de0b6b3a7640000612665565b600061078083670de0b6b3a764000084612665565b6009546001600160a01b0316331461209f576040516282b42960e81b815260040160405180910390fd5b6001600160a01b0382166000818152600e6020908152604091829020805460ff191685151590811790915591519182527f902923dcd4814f6cef7005a70e01d5cf2035ab02d4523ef3b865f1d7bab885af910160405180910390a25050565b6009546001600160a01b03163314612128576040516282b42960e81b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0383169081179091556040517fe5693914d19c789bdee50a362998c0bc8d035a835f9871da5d51152f0582c34f90600090a250565b6009546001600160a01b0316331461219c576040516282b42960e81b815260040160405180910390fd5b600c80546001600160a01b0319166001600160a01b0383169081179091556040517fae062fb82c932c653cd44617343ecda1d13e375e0d6f20d969c944fbda1963d390600090a250565b6009546001600160a01b03163314612210576040516282b42960e81b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0383169081179091556040517f9d3e522e1e47a2f6009739342b9cc7b252a1888154e843ab55ee1c81745795ab90600090a250565b604051630f451f7160e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637a28fb88906024015b602060405180830381865afa1580156122c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d291906133f6565b604051631920845160e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906319208451906024016122a6565b600061235f6010600061234b600286612683565b8152602001908152602001600020546126b8565b6123716010600061234b600187612683565b6107d29190613473565b6009546001600160a01b031633146123a5576040516282b42960e81b815260040160405180910390fd5b600b80546001600160a01b0319166001600160a01b0383169081179091556040517fc049058b1df2dd8902739ceb78992df12fa8369c06c450b3c6787137b452fdd290600090a250565b60408051604e80825260808201909252606091906000908260208201818036833701905050905060005b84156124965761242a600a866134a9565b61243590603061330c565b60f81b826001612445848761331f565b61244f919061331f565b8151811061245f5761245f61336d565b60200101906001600160f81b031916908160001a90535080612480816134bd565b915061248f9050600a866134d6565b9450612419565b918290030190815292915050565b6002600054036124c757604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610c1e9084906126e6565b600061252f6020830183612ae1565b6001600160a01b0316036105ed5760405163f0dd15fd60e01b815260040160405180910390fd5b600080612563858561204b565b905061256e816122e7565b945084600003612582576000915050610780565b8491506125956040840160208501612b0c565b156125c4576125bd856125ab6020860186612ae1565b6125b860408701876134ea565b612749565b91506125e7565b6125e7856125d56020860186612ae1565b6125e260408701876134ea565b612764565b509392505050565b600080670de0b6b3a76400006126036127f7565b61260d9190613531565b905080831161261d576000612627565b612627818461331f565b915061078061265e670de0b6b3a76400007f0000000000000000000000000000000000000000000000000000000000000000613531565b8390612060565b600082600019048411830215820261267c57600080fd5b5091020490565b60006001600160f81b038211156126ad5760405163b7d0949760e01b815260040160405180910390fd5b5060f89190911b1790565b60006001600160ff1b038211156126e25760405163396ea70160e11b815260040160405180910390fd5b5090565b60006126fb6001600160a01b03841683612823565b9050805160001415801561272057508080602001905181019061271e9190613548565b155b15610c1e57604051635274afe760e01b81526001600160a01b0384166004820152602401611425565b600060405163350b944160e11b815260040160405180910390fd5b604051638fcb4e5b60e01b81526001600160a01b038481166004830152602482018690527f00000000000000000000000000000000000000000000000000000000000000001690638fcb4e5b906044016020604051808303816000875af11580156127d3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088d91906133f6565b6000611b37427f0000000000000000000000000000000000000000000000000000000000000000612831565b606061078083836000612847565b600061283d82846134a9565b610780908461331f565b60608147101561286c5760405163cd78605960e01b8152306004820152602401611425565b600080856001600160a01b031684866040516128889190613565565b60006040518083038185875af1925050503d80600081146128c5576040519150601f19603f3d011682016040523d82523d6000602084013e6128ca565b606091505b50915091506128da8683836128e4565b9695505050505050565b6060826128f9576128f482612940565b610780565b815115801561291057506001600160a01b0384163b155b1561293957604051639996b31560e01b81526001600160a01b0385166004820152602401611425565b5080610780565b8051156129505780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60405180610200016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600080191681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b03168152602001612a4b6040518060800160405280600081526020016000815260200160008152602001600081525090565b905290565b600060208284031215612a6257600080fd5b5035919050565b60005b83811015612a84578181015183820152602001612a6c565b50506000910152565b60008151808452612aa5816020860160208601612a69565b601f01601f19169290920160200192915050565b6020815260006107806020830184612a8d565b6001600160a01b03811681146105ed57600080fd5b600060208284031215612af357600080fd5b813561078081612acc565b80151581146105ed57600080fd5b600060208284031215612b1e57600080fd5b813561078081612afe565b60008060008060008060008060006101208a8c031215612b4857600080fd5b8935985060208a0135975060408a0135612b6181612acc565b965060608a0135612b7181612acc565b955060808a0135612b8181612afe565b945060a08a0135935060c08a013560ff81168114612b9e57600080fd5b8093505060e08a013591506101008a013590509295985092959850929598565b60008083601f840112612bd057600080fd5b50813567ffffffffffffffff811115612be857600080fd5b6020830191508360208260051b8501011115612c0357600080fd5b9250929050565b60008060008060008060808789031215612c2357600080fd5b8635612c2e81612acc565b95506020870135612c3e81612acc565b9450604087013567ffffffffffffffff80821115612c5b57600080fd5b612c678a838b01612bbe565b90965094506060890135915080821115612c8057600080fd5b50612c8d89828a01612bbe565b979a9699509497509295939492505050565b60008060008060808587031215612cb557600080fd5b843593506020850135612cc781612acc565b92506040850135612cd781612acc565b9396929550929360600135925050565b600080600060608486031215612cfc57600080fd5b833592506020840135612d0e81612acc565b91506040840135612d1e81612acc565b809150509250925092565b60008060408385031215612d3c57600080fd5b823591506020830135612d4e81612acc565b809150509250929050565b600060208284031215612d6b57600080fd5b813567ffffffffffffffff811115612d8257600080fd5b82016060818503121561078057600080fd5b60008060008060808587031215612daa57600080fd5b843593506020850135612dbc81612acc565b9250604085013591506060850135612dd381612acc565b939692955090935050565b815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261018080830151908201526101a080830151908201526101c091820151918101919091526101e00190565b60008060408385031215612e9257600080fd5b8235612e9d81612acc565b91506020830135612d4e81612afe565b600080600060608486031215612ec257600080fd5b833592506020840135612ed481612acc565b929592945050506040919091013590565b81516001600160a01b0316815261026081016020830151612f1160208401826001600160a01b03169052565b506040830151612f2c60408401826001600160a01b03169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525061016080840151612f9e828501826001600160a01b03169052565b5050610180838101516001600160a01b03908116918401919091526101a0808501518216908401526101c080850151909116908301526101e0808401518051828501526020810151610200850152604081015161022085015260608101516102408501525b505092915050565b6000806020838503121561301e57600080fd5b823567ffffffffffffffff81111561303557600080fd5b61304185828601612bbe565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b8181101561308557835183529284019291840191600101613069565b50909695505050505050565b81516001600160801b03168152610180810160208301516130bd60208401826001600160801b03169052565b5060408301516130d860408401826001600160801b03169052565b5060608301516130f360608401826001600160801b03169052565b5060808301516131086080840182600f0b9052565b5060a083015161312360a08401826001600160801b03169052565b5060c083015161313e60c08401826001600160801b03169052565b5060e083015161315960e08401826001600160801b03169052565b506101008381015115159083015261012080840151151590830152610140808401516001600160701b031690830152610160808401516001600160801b03811682850152613003565b600080600080600060a086880312156131ba57600080fd5b8535945060208601356131cc81612acc565b935060408601356131dc81612acc565b92506060860135915060808601356131f381612acc565b809150509295509295909350565b6000806040838503121561321457600080fd5b823561321f81612acc565b91506020830135612d4e81612acc565b60006020808352600084548160018260011c9150600183168061325357607f831692505b60208310810361327157634e487b7160e01b85526022600452602485fd5b602088018390526040880181801561329057600181146132a6576132d1565b60ff198616825284151560051b820196506132d1565b60008b81526020902060005b868110156132cb578154848201529085019089016132b2565b83019750505b50949998505050505050505050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156107d2576107d26132f6565b818103818111156107d2576107d26132f6565b6000806040838503121561334557600080fd5b825191506020830151612d4e81612afe565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b700243cb832b9323934bb32902637b7339d1607d1b8152600082516133af816011850160208701612a69565b9190910160110192915050565b710243cb832b9323934bb329029b437b93a1d160751b8152600082516133e9816012850160208701612a69565b9190910160120192915050565b60006020828403121561340857600080fd5b5051919050565b6f242ca822a9222924ab2296a627a7239d60811b81526000825161343a816010850160208701612a69565b9190910160100192915050565b70242ca822a9222924ab2296a9a427a92a1d60791b8152600082516133af816011850160208701612a69565b818103600083128015838313168383128216171561103c5761103c6132f6565b634e487b7160e01b600052601260045260246000fd5b6000826134b8576134b8613493565b500690565b6000600182016134cf576134cf6132f6565b5060010190565b6000826134e5576134e5613493565b500490565b6000808335601e1984360301811261350157600080fd5b83018035915067ffffffffffffffff82111561351c57600080fd5b602001915036819003821315612c0357600080fd5b80820281158282048414176107d2576107d26132f6565b60006020828403121561355a57600080fd5b815161078081612afe565b60008251613577818460208701612a69565b919091019291505056fea264697066735822122076ce674bc5b991c35f1e7f4e0c765dc0badc13e8b5594f62bef66ac1ac44246664736f6c63430008160033a2646970667358221220a0a833c7f5f9bb1e3dbb6c437fd13199d58d53013337634ecfcac2daac41400664736f6c63430008160033",
[
(
"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)
}
}