﻿[{"type":"constructor","inputs":[{"name":"_adapters","type":"address[]","internalType":"address[]"},{"name":"_feeClaimer","type":"address","internalType":"address"},{"name":"_wrapped_native","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"ADAPTERS","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"APPROVED_ADAPTERS","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"FEE_CLAIMER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"FEE_DENOMINATOR","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"FEE_EXEMPT","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"LIMIT_ORDER_CONTRACT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"MAINTAINER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MAX_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MIN_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MIN_FEE_EXEMPT","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"PARTNER_FEE_SHARE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"WNATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"adaptersCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"addMaintainer","inputs":[{"name":"addedMaintainer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"goSwitch","inputs":[{"name":"_routes","type":"tuple[]","internalType":"struct RouteAllocation[]","components":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"hops","type":"tuple[]","internalType":"struct HopAllocation[]","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"legs","type":"tuple[]","internalType":"struct HopAdapterAllocation[]","components":[{"name":"adapter","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"data","type":"bytes","internalType":"bytes"}]}]}]},{"name":"_to","type":"address","internalType":"address"},{"name":"_minTotalAmountOut","type":"uint256","internalType":"uint256"},{"name":"_fee","type":"uint256","internalType":"uint256"},{"name":"_feeOnOutput","type":"bool","internalType":"bool"},{"name":"_unwrapOutput","type":"bool","internalType":"bool"},{"name":"_partnerAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"goSwitchFrom","inputs":[{"name":"_payer","type":"address","internalType":"address"},{"name":"_routes","type":"tuple[]","internalType":"struct RouteAllocation[]","components":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"hops","type":"tuple[]","internalType":"struct HopAllocation[]","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"legs","type":"tuple[]","internalType":"struct HopAdapterAllocation[]","components":[{"name":"adapter","type":"address","internalType":"address"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint24","internalType":"uint24"}]}]}]},{"name":"_to","type":"address","internalType":"address"},{"name":"_minTotalAmountOut","type":"uint256","internalType":"uint256"},{"name":"_unwrapOutput","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"pullTokens","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recoverERC20","inputs":[{"name":"_tokenAddress","type":"address","internalType":"address"},{"name":"_tokenAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"recoverNative","inputs":[{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeMaintainer","inputs":[{"name":"removedMaintainer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAdapters","inputs":[{"name":"_adapters","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFeeClaimer","inputs":[{"name":"_claimer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFeeExempt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"exempt","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setLimitOrderContract","inputs":[{"name":"_limitOrder","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMinFee","inputs":[{"name":"_fee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMinFeeExempt","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"exempt","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Switched","inputs":[{"name":"_tokenIn","type":"address","indexed":true,"internalType":"address"},{"name":"_tokenOut","type":"address","indexed":true,"internalType":"address"},{"name":"_amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_amountOut","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_partnerAddress","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AdapterNotApproved","inputs":[{"name":"adapter","type":"address","internalType":"address"}]},{"type":"error","name":"EmptyHop","inputs":[]},{"type":"error","name":"EmptySplit","inputs":[]},{"type":"error","name":"ExcessiveFee","inputs":[]},{"type":"error","name":"FeeNotSupported","inputs":[]},{"type":"error","name":"FinalAmountOutTooLow","inputs":[]},{"type":"error","name":"InsufficientFee","inputs":[]},{"type":"error","name":"MsgValueMismatch","inputs":[]},{"type":"error","name":"PathNeedsBeginWithWPLS","inputs":[]},{"type":"error","name":"PathNeedsEndWithWPLS","inputs":[]},{"type":"error","name":"SplitMixedTokenIn","inputs":[]},{"type":"error","name":"SplitMixedTokenOut","inputs":[]},{"type":"error","name":"ZeroInput","inputs":[]}]
