import { Signer, ContractFactory, Overrides } from "ethers"; import { Provider, TransactionRequest } from "@ethersproject/providers"; import type { TwapOracle, TwapOracleInterface } from "../TwapOracle"; declare type TwapOracleConstructorParams = [signer?: Signer] | ConstructorParameters; export declare class TwapOracle__factory extends ContractFactory { constructor(...args: TwapOracleConstructorParams); deploy(_uniswapFactory: string, _weth: string, overrides?: Overrides & { from?: string | Promise; }): Promise; getDeployTransaction(_uniswapFactory: string, _weth: string, overrides?: Overrides & { from?: string | Promise; }): TransactionRequest; attach(address: string): TwapOracle; connect(signer: Signer): TwapOracle__factory; static readonly contractName: "TwapOracle"; readonly contractName: "TwapOracle"; static readonly bytecode = "0x60c06040523480156200001157600080fd5b50604051620017bd380380620017bd83398101604081905262000034916200015e565b6001600160a01b03808316608052811660a052620000546000336200005c565b50506200019d565b6200006882826200006c565b5050565b6000828152602081815260409091206200009191839062000a60620000d3821b17901c565b15620000685760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d90600090a45050565b6000620000ea836001600160a01b038416620000f3565b90505b92915050565b60008181526001830160205260408120546200013c57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620000ed565b506000620000ed565b6001600160a01b03811681146200015b57600080fd5b50565b600080604083850312156200017257600080fd5b82516200017f8162000145565b6020840151909250620001928162000145565b809150509250929050565b60805160a0516115de620001df60003960008181610265015281816103ac0152818161085701526108ec0152600081816102d201526103ea01526115de6000f3fe608060405234801561001057600080fd5b50600436106100ff5760003560e01c806391d1485411610097578063ca15c87311610066578063ca15c87314610287578063cfed246b1461029a578063d547741f146102ba578063f73e5aab146102cd57600080fd5b806391d14854146101d9578063a217fddf146101fc578063a4063dbc14610204578063ad5c46481461026057600080fd5b806336568abe116100d357806336568abe1461017557806341976e09146101885780634e0df3f61461019b5780639010d07c146101ae57600080fd5b8062e4768b1461010457806320f383db14610119578063248a9ca31461012c5780632f2ff15d14610162575b600080fd5b610117610112366004611124565b6102f4565b005b610117610127366004611150565b610369565b61014f61013a3660046111ac565b60009081526020819052604090206002015490565b6040519081526020015b60405180910390f35b6101176101703660046111c5565b610518565b6101176101833660046111c5565b6105ab565b61014f6101963660046111f5565b610625565b61014f6101a93660046111c5565b610966565b6101c16101bc366004611212565b610991565b6040516001600160a01b039091168152602001610159565b6101ec6101e73660046111c5565b6109b0565b6040519015158152602001610159565b61014f600081565b61023c6102123660046111f5565b6001602052600090815260409020546001600160a01b03811690600160a01b900463ffffffff1682565b604080516001600160a01b03909316835263ffffffff909116602083015201610159565b6101c17f000000000000000000000000000000000000000000000000000000000000000081565b61014f6102953660046111ac565b6109c8565b61014f6102a83660046111f5565b60026020526000908152604090205481565b6101176102c83660046111c5565b6109df565b6101c17f000000000000000000000000000000000000000000000000000000000000000081565b6102fc610a75565b6001600160a01b0382166000818152600260209081526040808320859055600182529182902080546001600160c01b0319169055815192835282018390527ff9a09e2869a1f88523f00504328d7965866201bafe501573db2e114e3375a086910160405180910390a15050565b610371610a75565b63ffffffff81166103955760405163b11cd48160e01b815260040160405180910390fd5b604051630b4c774160e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152848116602483015262ffffff841660448301526000917f000000000000000000000000000000000000000000000000000000000000000090911690631698ee8290606401602060405180830381865afa158015610433573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104579190611234565b90506001600160a01b0381163b610481576040516365db466f60e01b815260040160405180910390fd5b6001600160a01b0384811660008181526001602090815260409182902080549486166001600160c01b03199095168517600160a01b63ffffffff891690810291909117909155825193845262ffffff8816918401919091529082015260608101919091527f5ca3de5b348a6ab6284a94ed584fdde449164bdae6a8b034aaf7594706e349169060800160405180910390a150505050565b60008281526020819052604090206002015461053490336109b0565b61059d5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b60648201526084015b60405180910390fd5b6105a78282610ace565b5050565b6001600160a01b038116331461061b5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610594565b6105a78282610b27565b6001600160a01b038181166000908152600160209081526040808320815180830190925254938416808252600160a01b90940463ffffffff169181019190915290916106885750506001600160a01b031660009081526002602052604090205490565b60208101516040805160028082526060820190925260009181602001602082028036833701905050905081816000815181106106c6576106c6611267565b602002602001019063ffffffff16908163ffffffff16815250506000816001815181106106f5576106f5611267565b63ffffffff90921660209283029190910190910152825160405163883bdbfd60e01b81526000916001600160a01b03169063883bdbfd9061073a90859060040161127d565b600060405180830381865afa158015610757573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261077f9190810190611390565b50905060008160008151811061079757610797611267565b6020026020010151826001815181106107b2576107b2611267565b60200260200101516107c49190611472565b905060006107d863ffffffff8616836114d8565b905060008260060b1280156107fe57506107f863ffffffff861683611516565b60060b15155b15610811578061080d81611538565b9150505b600061081c82610b80565b90506fffffffffffffffffffffffffffffffff6001600160a01b038216116108c95760006108536001600160a01b0383168061155c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168a6001600160a01b0316106108aa576108a5600160c01b670de0b6b3a764000083610ea0565b6108c1565b6108c181670de0b6b3a7640000600160c01b610ea0565b98505061095a565b60006108e86001600160a01b0383168068010000000000000000610ea0565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168a6001600160a01b03161061093f5761093a600160801b670de0b6b3a764000083610ea0565b610956565b61095681670de0b6b3a7640000600160801b610ea0565b9850505b50505050505050919050565b6000828152602081815260408083206001600160a01b03851684526001019091529020545b92915050565b60008281526020819052604081206109a99083610f53565b9392505050565b60008281526020819052604081206109a99083610f5f565b600081815260208190526040812061098b90610f81565b6000828152602081905260409020600201546109fb90336109b0565b61061b5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b6064820152608401610594565b60006109a9836001600160a01b038416610f8b565b610a806000336109b0565b610acc5760405162461bcd60e51b815260206004820152601e60248201527f73656e64657220646f65736e277420686176652061646d696e20726f6c6500006044820152606401610594565b565b6000828152602081905260409020610ae69082610a60565b156105a75760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d90600090a45050565b6000828152602081905260409020610b3f9082610fda565b156105a75760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b90600090a45050565b60008060008360020b12610b97578260020b610b9f565b8260020b6000035b9050620d89e8811115610bc5576040516315e4079d60e11b815260040160405180910390fd5b600060018216610bd957600160801b610beb565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615610c1f576ffff97272373d413259a46990580e213a0260801c5b6004821615610c3e576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610c5d576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610c7c576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610c9b576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615610cba576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615610cd9576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615610cf9576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615610d19576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615610d39576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615610d59576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615610d79576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615610d99576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615610db9576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615610dd9576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615610dfa576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615610e1a576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615610e39576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615610e56576b048a170391f7dc42444e8fa20260801c5b60008460020b1315610e77578060001981610e7357610e736114c2565b0490505b640100000000810615610e8b576001610e8e565b60005b60ff16602082901c0192505050919050565b600080806000198587098587029250828110838203039150508060001415610eda5760008411610ecf57600080fd5b5082900490506109a9565b808411610ee657600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b60006109a98383610fef565b6001600160a01b038116600090815260018301602052604081205415156109a9565b600061098b825490565b6000818152600183016020526040812054610fd25750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561098b565b50600061098b565b60006109a9836001600160a01b038416611019565b600082600001828154811061100657611006611267565b9060005260206000200154905092915050565b6000818152600183016020526040812054801561110257600061103d60018361157b565b85549091506000906110519060019061157b565b90508181146110b657600086600001828154811061107157611071611267565b906000526020600020015490508087600001848154811061109457611094611267565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806110c7576110c7611592565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061098b565b600091505061098b565b6001600160a01b038116811461112157600080fd5b50565b6000806040838503121561113757600080fd5b82356111428161110c565b946020939093013593505050565b60008060006060848603121561116557600080fd5b83356111708161110c565b9250602084013562ffffff8116811461118857600080fd5b9150604084013563ffffffff811681146111a157600080fd5b809150509250925092565b6000602082840312156111be57600080fd5b5035919050565b600080604083850312156111d857600080fd5b8235915060208301356111ea8161110c565b809150509250929050565b60006020828403121561120757600080fd5b81356109a98161110c565b6000806040838503121561122557600080fd5b50508035926020909101359150565b60006020828403121561124657600080fd5b81516109a98161110c565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b818110156112bb57835163ffffffff1683529284019291840191600101611299565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156112f0576112f0611251565b604052919050565b600067ffffffffffffffff82111561131257611312611251565b5060051b60200190565b600082601f83011261132d57600080fd5b8151602061134261133d836112f8565b6112c7565b82815260059290921b8401810191818101908684111561136157600080fd5b8286015b848110156113855780516113788161110c565b8352918301918301611365565b509695505050505050565b600080604083850312156113a357600080fd5b825167ffffffffffffffff808211156113bb57600080fd5b818501915085601f8301126113cf57600080fd5b815160206113df61133d836112f8565b82815260059290921b840181019181810190898411156113fe57600080fd5b948201945b8386101561142c5785518060060b811461141d5760008081fd5b82529482019490820190611403565b9188015191965090935050508082111561144557600080fd5b506114528582860161131c565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b60008160060b8360060b6000811281667fffffffffffff190183128115161561149d5761149d61145c565b81667fffffffffffff0183138116156114b8576114b861145c565b5090039392505050565b634e487b7160e01b600052601260045260246000fd5b60008160060b8360060b806114ef576114ef6114c2565b667fffffffffffff1982146000198214161561150d5761150d61145c565b90059392505050565b60008260060b80611529576115296114c2565b808360060b0791505092915050565b60008160020b627fffff198114156115525761155261145c565b6000190192915050565b60008160001904831182151516156115765761157661145c565b500290565b60008282101561158d5761158d61145c565b500390565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220b628ba1a27ea4b93f51505ae4f8450e4f1933f572e9785a39c94c1f079b2463f64736f6c634300080b0033"; static readonly abi: ({ inputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; name?: undefined; anonymous?: undefined; outputs?: undefined; } | { inputs: never[]; name: string; type: string; stateMutability?: undefined; anonymous?: undefined; outputs?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; internalType: string; name: string; type: string; }[]; name: string; type: string; stateMutability?: undefined; outputs?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; name: string; outputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; anonymous?: undefined; })[]; static createInterface(): TwapOracleInterface; static connect(address: string, signerOrProvider: Signer | Provider): TwapOracle; } export {};