import { Signer, ContractFactory, Overrides } from "ethers"; import type { Provider, TransactionRequest } from "@ethersproject/providers"; import type { PromiseOrValue } from "../common"; import type { OrderQuoterV4, OrderQuoterV4Interface } from "../OrderQuoterV4"; type OrderQuoterV4ConstructorParams = [signer?: Signer] | ConstructorParameters; export declare class OrderQuoterV4__factory extends ContractFactory { constructor(...args: OrderQuoterV4ConstructorParams); deploy(overrides?: Overrides & { from?: PromiseOrValue; }): Promise; getDeployTransaction(overrides?: Overrides & { from?: PromiseOrValue; }): TransactionRequest; attach(address: string): OrderQuoterV4; connect(signer: Signer): OrderQuoterV4__factory; static readonly bytecode = "0x6080604052348015600e575f5ffd5b506112bd8061001c5f395ff3fe608060405260043610610036575f3560e01c806376b14307146100415780639a58757c1461008c578063c8a702c2146100ad575f5ffd5b3661003d57005b5f5ffd5b34801561004c575f5ffd5b5061006261005b36600461051b565b6020015190565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610097575f5ffd5b506100ab6100a636600461059a565b6100d9565b005b3480156100b8575f5ffd5b506100cc6100c7366004610664565b610161565b60405161008391906107a8565b60018314610113576040517f06ee987800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f84845f818110610126576101266109fd565b90506020028101906101389190610a2a565b6040516020016101489190610d54565b6040516020818303038152906040529050805181602001fd5b60408051610200810182525f60e082018181526101008301829052610120830182905261014083018290526101608301829052606061018084018190526101a084018390526101c084018190526101e084018390529083528351808201855282815260208082018490528186018490528401529282018390528282018390526080820181905260a082015260c08101919091526040805180820182528481526020808201859052825190810183525f815291517f0d33588400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871692630d3358849261026492909190600401610ec7565b5f604051808303815f87803b15801561027b575f5ffd5b505af192505050801561028c575060015b6102cc573d8080156102b9576040519150601f19603f3d011682016040523d82523d5f602084013e6102be565b606091505b506102c8816102d3565b9150505b9392505050565b60408051610200810182525f60e082018181526101008301829052610120830182905261014083018290526101608301829052606061018084018190526101a084018390526101c084018190526101e084018390529083528351808201855282815260208082018490528186018490528401529282018390528282018390526080820181905260a082015260c08101919091526103008251101561037957815182602001fd5b8180602001905181019061038d919061116b565b92915050565b919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051610120810167ffffffffffffffff811182821017156103e9576103e9610398565b60405290565b6040516060810167ffffffffffffffff811182821017156103e9576103e9610398565b60405160e0810167ffffffffffffffff811182821017156103e9576103e9610398565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561047c5761047c610398565b604052919050565b5f67ffffffffffffffff82111561049d5761049d610398565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f8301126104d8575f5ffd5b81356104eb6104e682610484565b610435565b8181528460208386010111156104ff575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f6020828403121561052b575f5ffd5b813567ffffffffffffffff811115610541575f5ffd5b61054d848285016104c9565b949350505050565b5f5f83601f840112610565575f5ffd5b50813567ffffffffffffffff81111561057c575f5ffd5b602083019150836020828501011115610593575f5ffd5b9250929050565b5f5f5f5f604085870312156105ad575f5ffd5b843567ffffffffffffffff8111156105c3575f5ffd5b8501601f810187136105d3575f5ffd5b803567ffffffffffffffff8111156105e9575f5ffd5b8760208260051b84010111156105fd575f5ffd5b60209182019550935085013567ffffffffffffffff81111561061d575f5ffd5b61062987828801610555565b95989497509550505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610656575f5ffd5b50565b803561039381610635565b5f5f5f60608486031215610676575f5ffd5b833561068181610635565b9250602084013567ffffffffffffffff81111561069c575f5ffd5b6106a8868287016104c9565b925050604084013567ffffffffffffffff8111156106c4575f5ffd5b6106d0868287016104c9565b9150509250925092565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f8151808452602084019350602083015f5b8281101561079e57815173ffffffffffffffffffffffffffffffffffffffff81511687526020810151602088015273ffffffffffffffffffffffffffffffffffffffff604082015116604088015250606086019550602082019150600181019050610738565b5093949350505050565b602081525f825161012060208401526107db6101408401825173ffffffffffffffffffffffffffffffffffffffff169052565b602081015173ffffffffffffffffffffffffffffffffffffffff908116610160850152604082015161018085015260608201516101a08501526080820151166101c084015260a08101516101206101e085015261083c6102608501826106da565b905060c082015161086661020086018273ffffffffffffffffffffffffffffffffffffffff169052565b5060e08201517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec0858303016102208601526108a182826106da565b91505061010082015191506108cf61024085018373ffffffffffffffffffffffffffffffffffffffff169052565b6020850151915061090d6040850183805173ffffffffffffffffffffffffffffffffffffffff16825260208082015190830152604090810151910152565b604085015191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08482030160a08501526109488183610726565b91505060608401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08483030160c085015261098482826106da565b915050608084015160e084015260a08401516109b961010085018273ffffffffffffffffffffffffffffffffffffffff169052565b5060c08401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0848303016101208501526109f482826106da565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee1833603018112610a5c575f5ffd5b9190910192915050565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610a99575f5ffd5b830160208101925035905067ffffffffffffffff811115610ab8575f5ffd5b803603821315610593575f5ffd5b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b610b3482610b1a83610659565b73ffffffffffffffffffffffffffffffffffffffff169052565b5f610b4160208301610659565b73ffffffffffffffffffffffffffffffffffffffff1660208401526040828101359084015260608083013590840152610b7c60808301610659565b73ffffffffffffffffffffffffffffffffffffffff166080840152610ba460a0830183610a66565b61012060a0860152610bbb61012086018284610ac6565b915050610bca60c08401610659565b73ffffffffffffffffffffffffffffffffffffffff1660c0850152610bf260e0840184610a66565b85830360e0870152610c05838284610ac6565b92505050610c166101008401610659565b73ffffffffffffffffffffffffffffffffffffffff8116610100860152509392505050565b8035610c4681610635565b73ffffffffffffffffffffffffffffffffffffffff16825260208181013590830152604090810135910152565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610ca6575f5ffd5b830160208101925035905067ffffffffffffffff811115610cc5575f5ffd5b606081023603821315610593575f5ffd5b8183526020830192505f815f5b8481101561079e578135610cf681610635565b73ffffffffffffffffffffffffffffffffffffffff168652602082810135908701526040820135610d2681610635565b73ffffffffffffffffffffffffffffffffffffffff1660408701526060958601959190910190600101610ce3565b602081525f82357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee1843603018112610d8a575f5ffd5b6101206020840152610da26101408401858301610b0d565b9050610db46040840160208601610c3b565b610dc16080850185610c73565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08584030160a0860152610df6838284610cd6565b92505050610e0760a0850185610a66565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08584030160c0860152610e3c838284610ac6565b925050505f60c085013590508060e085015250610e5b60e08501610659565b73ffffffffffffffffffffffffffffffffffffffff811661010085015250610e87610100850185610a66565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe085840301610120860152610ebd838284610ac6565b9695505050505050565b604081525f8351604080840152610ee160808401826106da565b905060208501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0848303016060850152610f1c82826106da565b91505082810360208401526109f481856106da565b805161039381610635565b5f82601f830112610f4b575f5ffd5b8151602083015f610f5e6104e684610484565b9050828152858383011115610f71575f5ffd5b8282602083015e5f92810160200192909252509392505050565b5f6101208284031215610f9c575f5ffd5b610fa46103c5565b9050610faf82610f31565b8152610fbd60208301610f31565b60208201526040828101519082015260608083015190820152610fe260808301610f31565b608082015260a082015167ffffffffffffffff811115611000575f5ffd5b61100c84828501610f3c565b60a08301525061101e60c08301610f31565b60c082015260e082015167ffffffffffffffff81111561103c575f5ffd5b61104884828501610f3c565b60e08301525061105b6101008301610f31565b61010082015292915050565b5f60608284031215611077575f5ffd5b61107f6103ef565b9050815161108c81610635565b81526020828101519082015260409182015191810191909152919050565b5f82601f8301126110b9575f5ffd5b815167ffffffffffffffff8111156110d3576110d3610398565b6110e260208260051b01610435565b80828252602082019150602060608402860101925085831115611103575f5ffd5b602085015b83811015611161576060818803121561111f575f5ffd5b6111276103ef565b815161113281610635565b815260208281015190820152604082015161114c81610635565b60408201528352602090920191606001611108565b5095945050505050565b5f6020828403121561117b575f5ffd5b815167ffffffffffffffff811115611191575f5ffd5b820161012081850312156111a3575f5ffd5b6111ab610412565b815167ffffffffffffffff8111156111c1575f5ffd5b6111cd86828501610f8b565b8252506111dd8560208401611067565b6020820152608082015167ffffffffffffffff8111156111fb575f5ffd5b611207868285016110aa565b60408301525060a082015167ffffffffffffffff811115611226575f5ffd5b61123286828501610f3c565b60608301525060c0820151608082015261124e60e08301610f31565b60a082015261010082015167ffffffffffffffff81111561126d575f5ffd5b61127986828501610f3c565b60c08301525094935050505056fea2646970667358221220ab38903574960967a008e6904054f6eac9d325d119e3d893a931f8d6ae8b0bbd64736f6c634300081e0033"; static readonly abi: readonly [{ readonly type: "receive"; readonly stateMutability: "payable"; }, { readonly type: "function"; readonly name: "getAuctionResolver"; readonly inputs: readonly [{ readonly name: "order"; readonly type: "bytes"; readonly internalType: "bytes"; }]; readonly outputs: readonly [{ readonly name: "auctionResolver"; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "pure"; }, { readonly type: "function"; readonly name: "quote"; readonly inputs: readonly [{ readonly name: "reactor"; readonly type: "address"; readonly internalType: "contract IReactor"; }, { readonly name: "order"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "sig"; readonly type: "bytes"; readonly internalType: "bytes"; }]; readonly outputs: readonly [{ readonly name: "result"; readonly type: "tuple"; readonly internalType: "struct ResolvedOrder"; readonly components: readonly [{ readonly name: "info"; readonly type: "tuple"; readonly internalType: "struct OrderInfo"; readonly components: readonly [{ readonly name: "reactor"; readonly type: "address"; readonly internalType: "contract IReactor"; }, { readonly name: "swapper"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "nonce"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "deadline"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "preExecutionHook"; readonly type: "address"; readonly internalType: "contract IPreExecutionHook"; }, { readonly name: "preExecutionHookData"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "postExecutionHook"; readonly type: "address"; readonly internalType: "contract IPostExecutionHook"; }, { readonly name: "postExecutionHookData"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "auctionResolver"; readonly type: "address"; readonly internalType: "contract IAuctionResolver"; }]; }, { readonly name: "input"; readonly type: "tuple"; readonly internalType: "struct InputToken"; readonly components: readonly [{ readonly name: "token"; readonly type: "address"; readonly internalType: "contract ERC20"; }, { readonly name: "amount"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "maxAmount"; readonly type: "uint256"; readonly internalType: "uint256"; }]; }, { readonly name: "outputs"; readonly type: "tuple[]"; readonly internalType: "struct OutputToken[]"; readonly components: readonly [{ readonly name: "token"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "amount"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "recipient"; readonly type: "address"; readonly internalType: "address"; }]; }, { readonly name: "sig"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "hash"; readonly type: "bytes32"; readonly internalType: "bytes32"; }, { readonly name: "auctionResolver"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "witnessTypeString"; readonly type: "string"; readonly internalType: "string"; }]; }]; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "reactorCallback"; readonly inputs: readonly [{ readonly name: "resolvedOrders"; readonly type: "tuple[]"; readonly internalType: "struct ResolvedOrder[]"; readonly components: readonly [{ readonly name: "info"; readonly type: "tuple"; readonly internalType: "struct OrderInfo"; readonly components: readonly [{ readonly name: "reactor"; readonly type: "address"; readonly internalType: "contract IReactor"; }, { readonly name: "swapper"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "nonce"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "deadline"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "preExecutionHook"; readonly type: "address"; readonly internalType: "contract IPreExecutionHook"; }, { readonly name: "preExecutionHookData"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "postExecutionHook"; readonly type: "address"; readonly internalType: "contract IPostExecutionHook"; }, { readonly name: "postExecutionHookData"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "auctionResolver"; readonly type: "address"; readonly internalType: "contract IAuctionResolver"; }]; }, { readonly name: "input"; readonly type: "tuple"; readonly internalType: "struct InputToken"; readonly components: readonly [{ readonly name: "token"; readonly type: "address"; readonly internalType: "contract ERC20"; }, { readonly name: "amount"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "maxAmount"; readonly type: "uint256"; readonly internalType: "uint256"; }]; }, { readonly name: "outputs"; readonly type: "tuple[]"; readonly internalType: "struct OutputToken[]"; readonly components: readonly [{ readonly name: "token"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "amount"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "recipient"; readonly type: "address"; readonly internalType: "address"; }]; }, { readonly name: "sig"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "hash"; readonly type: "bytes32"; readonly internalType: "bytes32"; }, { readonly name: "auctionResolver"; readonly type: "address"; readonly internalType: "address"; }, { readonly name: "witnessTypeString"; readonly type: "string"; readonly internalType: "string"; }]; }, { readonly name: ""; readonly type: "bytes"; readonly internalType: "bytes"; }]; readonly outputs: readonly []; readonly stateMutability: "pure"; }, { readonly type: "error"; readonly name: "OrdersLengthIncorrect"; readonly inputs: readonly []; }]; static createInterface(): OrderQuoterV4Interface; static connect(address: string, signerOrProvider: Signer | Provider): OrderQuoterV4; } export {};