import { Signer, ContractFactory, Overrides, BigNumberish } from "ethers"; import { Provider, TransactionRequest } from "@ethersproject/providers"; import type { TwapERC20NativeFeeHandler, TwapERC20NativeFeeHandlerInterface } from "../TwapERC20NativeFeeHandler"; declare type TwapERC20NativeFeeHandlerConstructorParams = [signer?: Signer] | ConstructorParameters; export declare class TwapERC20NativeFeeHandler__factory extends ContractFactory { constructor(...args: TwapERC20NativeFeeHandlerConstructorParams); deploy(bridgeAddress: string, feeHandlerRouterAddress: string, gasUsed: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; getDeployTransaction(bridgeAddress: string, feeHandlerRouterAddress: string, gasUsed: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): TransactionRequest; attach(address: string): TwapERC20NativeFeeHandler; connect(signer: Signer): TwapERC20NativeFeeHandler__factory; static readonly contractName: "TwapERC20NativeFeeHandler"; readonly contractName: "TwapERC20NativeFeeHandler"; static readonly bytecode = "0x60c06040523480156200001157600080fd5b5060405162001c0238038062001c028339810160408190526200003491620001d3565b6001600160a01b03808416608052821660a05282828282826200005960003362000073565b506200006790508162000083565b50505050505062000229565b6200007f8282620000dd565b5050565b6001805463ffffffff60a81b1916600160a81b63ffffffff8416908102919091179091556040519081527f3a95f857f3cc96b11753cc5002df9d33987b488bdefafa362f33969bfe3200399060200160405180910390a150565b6000828152602081815260409091206200010291839062000df162000144821b17901c565b156200007f5760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d90600090a45050565b60006200015b836001600160a01b03841662000164565b90505b92915050565b6000818152600183016020526040812054620001ad575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200015e565b5060006200015e565b80516001600160a01b0381168114620001ce57600080fd5b919050565b600080600060608486031215620001e957600080fd5b620001f484620001b6565b92506200020460208501620001b6565b9150604084015163ffffffff811681146200021e57600080fd5b809150509250925092565b60805160a0516119a56200025d6000396000818161035b0152610e430152600081816102940152610e1101526119a56000f3fe6080604052600436106101655760003560e01c80639010d07c116100d1578063a8a989621161008a578063d547741f11610064578063d547741f146104d8578063e0d0b441146104f8578063ef4f081f14610518578063fc818cfb1461055557600080fd5b8063a8a9896214610442578063aff2ba9114610462578063ca15c873146104b857600080fd5b80639010d07c1461037d5780639043292a1461039d578063904e9b2b146103bd57806391d14854146103dd57806396a320731461040d578063a217fddf1461042d57600080fd5b8063318c136e11610123578063318c136e1461028257806336568abe146102b65780634e0df3f6146102d6578063542774b5146102f65780635e1fab0f14610329578063745e6b611461034957600080fd5b8062b9558b1461016a57806312cc05ca1461018c578063223d11c6146101c3578063248a9ca314610211578063253070651461024f5780632f2ff15d14610262575b600080fd5b34801561017657600080fd5b5061018a610185366004611430565b61058e565b005b34801561019857600080fd5b506001546101ad90600160a01b900460ff1681565b6040516101ba91906114c9565b60405180910390f35b3480156101cf57600080fd5b506101f96101de3660046114d7565b6002602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016101ba565b34801561021d57600080fd5b5061024161022c3660046114f2565b60009081526020819052604090206002015490565b6040519081526020016101ba565b61018a61025d366004611569565b610667565b34801561026e57600080fd5b5061018a61027d366004611616565b6107cd565b34801561028e57600080fd5b506101f97f000000000000000000000000000000000000000000000000000000000000000081565b3480156102c257600080fd5b5061018a6102d1366004611616565b61085b565b3480156102e257600080fd5b506102416102f1366004611616565b6108d5565b34801561030257600080fd5b5060408051808201825260048152630747761760e41b602082015290516101ba9190611646565b34801561033557600080fd5b5061018a61034436600461169b565b610900565b34801561035557600080fd5b506101f97f000000000000000000000000000000000000000000000000000000000000000081565b34801561038957600080fd5b506101f96103983660046116b8565b610970565b3480156103a957600080fd5b506001546101f9906001600160a01b031681565b3480156103c957600080fd5b5061018a6103d836600461171f565b61098f565b3480156103e957600080fd5b506103fd6103f8366004611616565b610bdd565b60405190151581526020016101ba565b34801561041957600080fd5b5061018a61042836600461178b565b610bf5565b34801561043957600080fd5b50610241600081565b34801561044e57600080fd5b5061018a61045d36600461169b565b610c28565b34801561046e57600080fd5b506104a961047d3660046114d7565b6003602052600090815260409020805460019091015460ff81169061010090046001600160f81b031683565b6040516101ba939291906117b1565b3480156104c457600080fd5b506102416104d33660046114f2565b610ca4565b3480156104e457600080fd5b5061018a6104f3366004611616565b610cbb565b34801561050457600080fd5b5061018a6105133660046117de565b610d3c565b34801561052457600080fd5b50610538610533366004611569565b610dcd565b604080519283526001600160a01b039091166020830152016101ba565b34801561056157600080fd5b5060015461057990600160a81b900463ffffffff1681565b60405163ffffffff90911681526020016101ba565b610599600033610bdd565b6105be5760405162461bcd60e51b81526004016105b59061180a565b60405180910390fd5b60ff8416600090815260036020526040902083815560019081018054849260ff19909116908360028111156105f5576105f5611491565b021790555060ff84811660008181526003602090815260409182902060010180549094166101006001600160f81b038716021790935580519182529181018590527f152e6e3ae88c467525b0ea2c962955a627860a90bd0c1630c38cec4b27f73e91910160405180910390a150505050565b61066f610e06565b60006106818989898989898989610ec8565b509050803410156106a757604051634dc2c71160e01b81523460048201526024016105b5565b60006106b38234611857565b905080156107605760008a6001600160a01b03168260405160006040518083038185875af1925050503d8060008114610708576040519150601f19603f3d011682016040523d82523d6000602084013e61070d565b606091505b505090508061075e5760405162461bcd60e51b815260206004820152601e60248201527f4661696c656420746f2073656e642072656d61696e696e67204574686572000060448201526064016105b5565b505b604080516001600160a01b038c16815260ff8b811660208301528a16818301526060810189905260808101849052600060a082015290517fbd231b7fa4103e15e7a238c72f07e8aff310701af121895aa6c793b80245e4339181900360c00190a150505050505050505050565b6000828152602081905260409020600201546107e99033610bdd565b61084d5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b60648201526084016105b5565b610857828261112e565b5050565b6001600160a01b03811633146108cb5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016105b5565b6108578282611187565b6000828152602081815260408083206001600160a01b03851684526001019091529020545b92915050565b336001600160a01b03821681141561095a5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f742072656e6f756e6365206f6e6573656c6600000000000000000060448201526064016105b5565b6109656000836107cd565b61085760008261085b565b600082815260208190526040812061098890836111e0565b9392505050565b61099a600033610bdd565b6109b65760405162461bcd60e51b81526004016105b59061180a565b828114610a055760405162461bcd60e51b815260206004820152601f60248201527f61646472735b5d2c20616d6f756e74735b5d3a2064696666206c656e6774680060448201526064016105b5565b60005b83811015610bd657610a48858583818110610a2557610a2561186e565b9050602002016020810190610a3a919061169b565b6001600160a01b03166111ec565b506000858583818110610a5d57610a5d61186e565b9050602002016020810190610a72919061169b565b6001600160a01b0316848484818110610a8d57610a8d61186e565b9050602002013560405160006040518083038185875af1925050503d8060008114610ad4576040519150601f19603f3d011682016040523d82523d6000602084013e610ad9565b606091505b5050905080610b2a5760405162461bcd60e51b815260206004820152601960248201527f466565206574686572207472616e73666572206661696c65640000000000000060448201526064016105b5565b7faaa40a232aaf133fdd28f3485f6fdd163514cfadbffa981f3610f42398efe34b6000878785818110610b5f57610b5f61186e565b9050602002016020810190610b74919061169b565b868686818110610b8657610b8661186e565b90506020020135604051610bbb939291906001600160a01b039384168152919092166020820152604081019190915260600190565b60405180910390a15080610bce81611884565b915050610a08565b5050505050565b60008281526020819052604081206109889083611219565b610c00600033610bdd565b610c1c5760405162461bcd60e51b81526004016105b59061180a565b610c258161123b565b50565b610c33600033610bdd565b610c4f5760405162461bcd60e51b81526004016105b59061180a565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f8ff9800f44d2ae37d6eb381b3eeefcf16753096bc01ff09bd022391786a565f7906020015b60405180910390a150565b60008181526020819052604081206108fa9061128f565b600082815260208190526040902060020154610cd79033610bdd565b6108cb5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526f2061646d696e20746f207265766f6b6560801b60648201526084016105b5565b610d47600033610bdd565b610d635760405162461bcd60e51b81526004016105b59061180a565b60ff821660008181526002602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251938452908301527f1f91f6027c99e6eae32d3ff27b27fb46c0898518462ee173fb23edef8d130ced910160405180910390a15050565b600080610de08a8a8a8a8a8a8a8a610ec8565b915091509850989650505050505050565b6000610988836001600160a01b038416611299565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610e655750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b610ec65760405162461bcd60e51b815260206004820152602c60248201527f73656e646572206d75737420626520627269646765206f722066656520726f7560448201526b1d195c8818dbdb9d1c9858dd60a21b60648201526084016105b5565b565b6001546000908190600160a81b900463ffffffff1681610eec60406020898b61189f565b610ef5916118c9565b90506000610f048260406118e7565b9050610f118160406118e7565b881115610f43576000610f268983818d61189f565b810190610f3391906114f2565b9050610f3f81856118e7565b9350505b60015460ff8c166000908152600260205260408082205490516341976e0960e01b81526001600160a01b039182166004820152919216906341976e0990602401602060405180830381865afa158015610fa0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc491906118ff565b905080610fe4576040516399b5cb1d60e01b815260040160405180910390fd5b60ff808d16600090815260036020908152604080832081516060810190925280548252600181015493949193909284019116600281111561102757611027611491565b600281111561103857611038611491565b81526001919091015461010090046001600160f81b03166020909101528051909150600090670de0b6b3a7640000908490611074908990611918565b61107e9190611918565b6110889190611937565b90506001826020015160028111156110a2576110a2611491565b14156110c75760408201516110c0906001600160f81b0316826118e7565b9050611118565b6002826020015160028111156110df576110df611491565b14156111185761271082604001516001600160f81b0316826111019190611918565b61110b9190611937565b61111590826118e7565b90505b9f60009f509d5050505050505050505050505050565b60008281526020819052604090206111469082610df1565b156108575760405133906001600160a01b0383169084907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d90600090a45050565b600082815260208190526040902061119f90826112e8565b156108575760405133906001600160a01b0383169084907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b90600090a45050565b600061098883836112fd565b60006001600160a01b0382166112155760405163d92e233d60e01b815260040160405180910390fd5b5090565b6001600160a01b03811660009081526001830160205260408120541515610988565b6001805463ffffffff60a81b1916600160a81b63ffffffff8416908102919091179091556040519081527f3a95f857f3cc96b11753cc5002df9d33987b488bdefafa362f33969bfe32003990602001610c99565b60006108fa825490565b60008181526001830160205260408120546112e0575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556108fa565b5060006108fa565b6000610988836001600160a01b038416611327565b60008260000182815481106113145761131461186e565b9060005260206000200154905092915050565b6000818152600183016020526040812054801561141057600061134b600183611857565b855490915060009061135f90600190611857565b90508181146113c457600086600001828154811061137f5761137f61186e565b90600052602060002001549050808760000184815481106113a2576113a261186e565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806113d5576113d5611959565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506108fa565b60009150506108fa565b803560ff8116811461142b57600080fd5b919050565b6000806000806080858703121561144657600080fd5b61144f8561141a565b93506020850135925060408501356003811061146a57600080fd5b915060608501356001600160f81b038116811461148657600080fd5b939692955090935050565b634e487b7160e01b600052602160045260246000fd5b600381106114c557634e487b7160e01b600052602160045260246000fd5b9052565b602081016108fa82846114a7565b6000602082840312156114e957600080fd5b6109888261141a565b60006020828403121561150457600080fd5b5035919050565b6001600160a01b0381168114610c2557600080fd5b60008083601f84011261153257600080fd5b50813567ffffffffffffffff81111561154a57600080fd5b60208301915083602082850101111561156257600080fd5b9250929050565b60008060008060008060008060c0898b03121561158557600080fd5b88356115908161150b565b975061159e60208a0161141a565b96506115ac60408a0161141a565b955060608901359450608089013567ffffffffffffffff808211156115d057600080fd5b6115dc8c838d01611520565b909650945060a08b01359150808211156115f557600080fd5b506116028b828c01611520565b999c989b5096995094979396929594505050565b6000806040838503121561162957600080fd5b82359150602083013561163b8161150b565b809150509250929050565b600060208083528351808285015260005b8181101561167357858101830151858201604001528201611657565b81811115611685576000604083870101525b50601f01601f1916929092016040019392505050565b6000602082840312156116ad57600080fd5b81356109888161150b565b600080604083850312156116cb57600080fd5b50508035926020909101359150565b60008083601f8401126116ec57600080fd5b50813567ffffffffffffffff81111561170457600080fd5b6020830191508360208260051b850101111561156257600080fd5b6000806000806040858703121561173557600080fd5b843567ffffffffffffffff8082111561174d57600080fd5b611759888389016116da565b9096509450602087013591508082111561177257600080fd5b5061177f878288016116da565b95989497509550505050565b60006020828403121561179d57600080fd5b813563ffffffff8116811461098857600080fd5b838152606081016117c560208301856114a7565b6001600160f81b03929092166040919091015292915050565b600080604083850312156117f157600080fd5b6117fa8361141a565b9150602083013561163b8161150b565b6020808252601e908201527f73656e64657220646f65736e277420686176652061646d696e20726f6c650000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008282101561186957611869611841565b500390565b634e487b7160e01b600052603260045260246000fd5b600060001982141561189857611898611841565b5060010190565b600080858511156118af57600080fd5b838611156118bc57600080fd5b5050820193919092039150565b803560208310156108fa57600019602084900360031b1b1692915050565b600082198211156118fa576118fa611841565b500190565b60006020828403121561191157600080fd5b5051919050565b600081600019048311821515161561193257611932611841565b500290565b60008261195457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603160045260246000fdfea26469706673582212202c22de738e475e82961a09464e974f46c9fb7f8bb6c9cbe16d62c1b9080f67d464736f6c634300080b0033"; static readonly abi: ({ inputs: { internalType: string; name: string; type: string; }[]; stateMutability: string; type: string; name?: undefined; anonymous?: undefined; outputs?: undefined; } | { inputs: { internalType: string; name: string; type: string; }[]; 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(): TwapERC20NativeFeeHandlerInterface; static connect(address: string, signerOrProvider: Signer | Provider): TwapERC20NativeFeeHandler; } export {};