{ "abi": [ { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "bool", "name": "_restrictCaller", "type": "bool" }, { "internalType": "bool", "name": "_restictRouter", "type": "bool" }, { "internalType": "bool", "name": "_approveMax", "type": "bool" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [], "name": "CallRestricted", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "RouterError", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "inputs": [], "name": "SlippageTooHigh", "type": "error" }, { "inputs": [], "name": "UnexpectedOutput", "type": "error" }, { "inputs": [], "name": "WrongPosition", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "prevOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "OwnershipTransferInitiated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferStarted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "prevOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "RemovedFromWhitelist", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Rescued", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "address", "name": "assetIn", "type": "address" }, { "indexed": true, "internalType": "address", "name": "assetOut", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountOut", "type": "uint256" } ], "name": "Swapped", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "Whitelisted", "type": "event" }, { "inputs": [], "name": "acceptOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "addToWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_inputs", "type": "address[]" }, { "internalType": "address[]", "name": "_outputs", "type": "address[]" }, { "internalType": "uint256[]", "name": "_amountsIn", "type": "uint256[]" }, { "internalType": "bytes[]", "name": "_params", "type": "bytes[]" } ], "name": "decodeAndMultiSwap", "outputs": [ { "internalType": "uint256[]", "name": "received", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "spent", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_inputs", "type": "address[]" }, { "internalType": "address[]", "name": "_outputs", "type": "address[]" }, { "internalType": "bytes[]", "name": "_params", "type": "bytes[]" } ], "name": "decodeAndMultiSwapBalances", "outputs": [ { "internalType": "uint256[]", "name": "received", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "spent", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_input", "type": "address" }, { "internalType": "address", "name": "_output", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "bytes", "name": "_params", "type": "bytes" } ], "name": "decodeAndSwap", "outputs": [ { "internalType": "uint256", "name": "received", "type": "uint256" }, { "internalType": "uint256", "name": "spent", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_input", "type": "address" }, { "internalType": "address", "name": "_output", "type": "address" }, { "internalType": "bytes", "name": "_params", "type": "bytes" } ], "name": "decodeAndSwapBalance", "outputs": [ { "internalType": "uint256", "name": "received", "type": "uint256" }, { "internalType": "uint256", "name": "spent", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "isApproveMax", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isAutoRevoke", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_caller", "type": "address" } ], "name": "isCallerRestricted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_input", "type": "address" } ], "name": "isInputRestricted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_output", "type": "address" } ], "name": "isOutputRestricted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_router", "type": "address" } ], "name": "isRouterRestricted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "isWhitelisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_inputs", "type": "address[]" }, { "internalType": "address[]", "name": "_outputs", "type": "address[]" }, { "internalType": "uint256[]", "name": "_amountsIn", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "_minAmountsOut", "type": "uint256[]" }, { "internalType": "address[]", "name": "_targetRouters", "type": "address[]" }, { "internalType": "bytes[]", "name": "_params", "type": "bytes[]" } ], "name": "multiSwap", "outputs": [ { "internalType": "uint256[]", "name": "received", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "spent", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_inputs", "type": "address[]" }, { "internalType": "address[]", "name": "_outputs", "type": "address[]" }, { "internalType": "uint256[]", "name": "_minAmountsOut", "type": "uint256[]" }, { "internalType": "address[]", "name": "_targetRouters", "type": "address[]" }, { "internalType": "bytes[]", "name": "_params", "type": "bytes[]" } ], "name": "multiSwapBalances", "outputs": [ { "internalType": "uint256[]", "name": "received", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "spent", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ownershipAcceptanceWindow", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ownershipCooldown", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pendingOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pendingOwnershipTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "removeFromWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" } ], "name": "rescue", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_approveMax", "type": "bool" } ], "name": "setApproveMax", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_autoRevoke", "type": "bool" } ], "name": "setAutoRevoke", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_restrictCaller", "type": "bool" } ], "name": "setCallerRestriction", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_inputRestiction", "type": "bool" } ], "name": "setInputRestriction", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_outputRestiction", "type": "bool" } ], "name": "setOutputRestriction", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_restrictRouter", "type": "bool" } ], "name": "setRouterRestriction", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_input", "type": "address" }, { "internalType": "address", "name": "_output", "type": "address" }, { "internalType": "uint256", "name": "_amountIn", "type": "uint256" }, { "internalType": "uint256", "name": "_minAmountOut", "type": "uint256" }, { "internalType": "address", "name": "_targetRouter", "type": "address" }, { "internalType": "bytes", "name": "_callData", "type": "bytes" } ], "name": "swap", "outputs": [ { "internalType": "uint256", "name": "received", "type": "uint256" }, { "internalType": "uint256", "name": "spent", "type": "uint256" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_input", "type": "address" }, { "internalType": "address", "name": "_output", "type": "address" }, { "internalType": "uint256", "name": "_minAmountOut", "type": "uint256" }, { "internalType": "address", "name": "_targetRouter", "type": "address" }, { "internalType": "bytes", "name": "_callData", "type": "bytes" } ], "name": "swapBalance", "outputs": [ { "internalType": "uint256", "name": "received", "type": "uint256" }, { "internalType": "uint256", "name": "spent", "type": "uint256" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ] }