[{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"expectedAccount","type":"address"}],"name":"BadAccount","type":"error"},{"inputs":[],"name":"BadAccountSignature","type":"error"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"requiredAmount","type":"uint256"}],"name":"BadAmount","type":"error"},{"inputs":[{"internalType":"enum AmountType","name":"amountType","type":"uint8"},{"internalType":"enum AmountType","name":"requiredAmountType","type":"uint8"}],"name":"BadAmountType","type":"error"},{"inputs":[{"internalType":"uint256","name":"actualFeeAmount","type":"uint256"},{"internalType":"uint256","name":"expectedFeeAmount","type":"uint256"}],"name":"BadFeeAmount","type":"error"},{"inputs":[{"internalType":"address","name":"protocolFeeBanaficiary","type":"address"},{"internalType":"address","name":"baseProtocolFeeBeneficiary","type":"address"}],"name":"BadFeeBeneficiary","type":"error"},{"inputs":[{"internalType":"uint256","name":"protocolFeeShare","type":"uint256"},{"internalType":"uint256","name":"baseProtocolFeeShare","type":"uint256"}],"name":"BadFeeShare","type":"error"},{"inputs":[],"name":"BadFeeSignature","type":"error"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ExceedingDelimiterAmount","type":"error"},{"inputs":[{"internalType":"uint256","name":"feeShare","type":"uint256"},{"internalType":"uint256","name":"feeLimit","type":"uint256"}],"name":"ExceedingLimitFee","type":"error"},{"inputs":[{"internalType":"uint256","name":"inputBalanceChange","type":"uint256"},{"internalType":"uint256","name":"requiredInputBalanceChange","type":"uint256"}],"name":"HighInputBalanceChange","type":"error"},{"inputs":[{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"requiredAllowance","type":"uint256"}],"name":"InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"},{"internalType":"uint256","name":"requiredMsgValue","type":"uint256"}],"name":"InsufficientMsgValue","type":"error"},{"inputs":[{"internalType":"uint256","name":"actualOutputAmount","type":"uint256"},{"internalType":"uint256","name":"requiredActualOutputAmount","type":"uint256"}],"name":"LowActualOutputAmount","type":"error"},{"inputs":[],"name":"NoneAmountType","type":"error"},{"inputs":[],"name":"NonePermitType","type":"error"},{"inputs":[],"name":"NoneSwapType","type":"error"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"PassedDeadline","type":"error"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"name":"UsedHash","type":"error"},{"inputs":[],"name":"ZeroFeeBeneficiary","type":"error"},{"inputs":[],"name":"ZeroReceiver","type":"error"},{"inputs":[],"name":"ZeroSigner","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"inputToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"absoluteInputAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"inputBalanceChange","type":"uint256"},{"indexed":true,"internalType":"address","name":"outputToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"absoluteOutputAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"returnedAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"protocolFeeAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"marketplaceFeeAmount","type":"uint256"},{"components":[{"internalType":"enum SwapType","name":"swapType","type":"uint8"},{"components":[{"internalType":"uint256","name":"share","type":"uint256"},{"internalType":"address","name":"beneficiary","type":"address"}],"internalType":"struct Fee","name":"protocolFee","type":"tuple"},{"components":[{"internalType":"uint256","name":"share","type":"uint256"},{"internalType":"address","name":"beneficiary","type":"address"}],"internalType":"struct Fee","name":"marketplaceFee","type":"tuple"},{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes","name":"callerCallData","type":"bytes"}],"indexed":false,"internalType":"struct SwapDescription","name":"swapDescription","type":"tuple"},{"indexed":false,"internalType":"address","name":"sender","type":"address"}],"name":"Executed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldPendingOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newPendingOwner","type":"address"}],"name":"PendingOwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldProtocolFeeDefaultShare","type":"uint256"},{"indexed":true,"internalType":"address","name":"oldProtocolFeeDefaultBeneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"newProtocolFeeDefaultShare","type":"uint256"},{"indexed":true,"internalType":"address","name":"newProtocolFeeDefaultBeneficiary","type":"address"}],"name":"ProtocolFeeDefaultSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldProtocolFeeSigner","type":"address"},{"indexed":true,"internalType":"address","name":"newProtocolFeeSigner","type":"address"}],"name":"ProtocolFeeSignerSet","type":"event"},{"inputs":[{"components":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"enum AmountType","name":"amountType","type":"uint8"}],"internalType":"struct TokenAmount","name":"tokenAmount","type":"tuple"},{"components":[{"internalType":"enum PermitType","name":"permitType","type":"uint8"},{"internalType":"bytes","name":"permitCallData","type":"bytes"}],"internalType":"struct Permit","name":"permit","type":"tuple"}],"internalType":"struct Input","name":"input","type":"tuple"},{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"absoluteAmount","type":"uint256"}],"internalType":"struct AbsoluteTokenAmount","name":"output","type":"tuple"},{"components":[{"internalType":"enum SwapType","name":"swapType","type":"uint8"},{"components":[{"internalType":"uint256","name":"share","type":"uint256"},{"internalType":"address","name":"beneficiary","type":"address"}],"internalType":"struct Fee","name":"protocolFee","type":"tuple"},{"components":[{"internalType":"uint256","name":"share","type":"uint256"},{"internalType":"address","name":"beneficiary","type":"address"}],"internalType":"struct Fee","name":"marketplaceFee","type":"tuple"},{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes","name":"callerCallData","type":"bytes"}],"internalType":"struct SwapDescription","name":"swapDescription","type":"tuple"},{"components":[{"internalType":"uint256","name":"salt","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"internalType":"struct AccountSignature","name":"accountSignature","type":"tuple"}],"name":"cancelAccountSignature","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"enum AmountType","name":"amountType","type":"uint8"}],"internalType":"struct TokenAmount","name":"tokenAmount","type":"tuple"},{"components":[{"internalType":"enum PermitType","name":"permitType","type":"uint8"},{"internalType":"bytes","name":"permitCallData","type":"bytes"}],"internalType":"struct Permit","name":"permit","type":"tuple"}],"internalType":"struct Input","name":"input","type":"tuple"},{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"absoluteAmount","type":"uint256"}],"internalType":"struct AbsoluteTokenAmount","name":"output","type":"tuple"},{"components":[{"internalType":"enum SwapType","name":"swapType","type":"uint8"},{"components":[{"internalType":"uint256","name":"share","type":"uint256"},{"internalType":"address","name":"beneficiary","type":"address"}],"internalType":"struct Fee","name":"protocolFee","type":"tuple"},{"components":[{"internalType":"uint256","name":"share","type":"uint256"},{"internalType":"address","name":"beneficiary","type":"address"}],"internalType":"struct Fee","name":"marketplaceFee","type":"tuple"},{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes","name":"callerCallData","type":"bytes"}],"internalType":"struct SwapDescription","name":"swapDescription","type":"tuple"},{"components":[{"internalType":"uint256","name":"salt","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"internalType":"struct AccountSignature","name":"accountSignature","type":"tuple"},{"components":[{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"internalType":"struct ProtocolFeeSignature","name":"protocolFeeSignature","type":"tuple"}],"name":"execute","outputs":[{"internalType":"uint256","name":"inputBalanceChange","type":"uint256"},{"internalType":"uint256","name":"actualOutputAmount","type":"uint256"},{"internalType":"uint256","name":"protocolFeeAmount","type":"uint256"},{"internalType":"uint256","name":"marketplaceFeeAmount","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPendingOwner","outputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProtocolFeeDefault","outputs":[{"components":[{"internalType":"uint256","name":"share","type":"uint256"},{"internalType":"address","name":"beneficiary","type":"address"}],"internalType":"struct Fee","name":"protocolFeeDefault","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProtocolFeeSigner","outputs":[{"internalType":"address","name":"protocolFeeSigner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"enum AmountType","name":"amountType","type":"uint8"}],"internalType":"struct TokenAmount","name":"tokenAmount","type":"tuple"},{"components":[{"internalType":"enum PermitType","name":"permitType","type":"uint8"},{"internalType":"bytes","name":"permitCallData","type":"bytes"}],"internalType":"struct Permit","name":"permit","type":"tuple"}],"internalType":"struct Input","name":"input","type":"tuple"},{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"absoluteAmount","type":"uint256"}],"internalType":"struct AbsoluteTokenAmount","name":"output","type":"tuple"},{"components":[{"internalType":"enum SwapType","name":"swapType","type":"uint8"},{"components":[{"internalType":"uint256","name":"share","type":"uint256"},{"internalType":"address","name":"beneficiary","type":"address"}],"internalType":"struct Fee","name":"protocolFee","type":"tuple"},{"components":[{"internalType":"uint256","name":"share","type":"uint256"},{"internalType":"address","name":"beneficiary","type":"address"}],"internalType":"struct Fee","name":"marketplaceFee","type":"tuple"},{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes","name":"callerCallData","type":"bytes"}],"internalType":"struct SwapDescription","name":"swapDescription","type":"tuple"},{"internalType":"uint256","name":"salt","type":"uint256"}],"name":"hashAccountSignatureData","outputs":[{"internalType":"bytes32","name":"hashedData","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"enum AmountType","name":"amountType","type":"uint8"}],"internalType":"struct TokenAmount","name":"tokenAmount","type":"tuple"},{"components":[{"internalType":"enum PermitType","name":"permitType","type":"uint8"},{"internalType":"bytes","name":"permitCallData","type":"bytes"}],"internalType":"struct Permit","name":"permit","type":"tuple"}],"internalType":"struct Input","name":"input","type":"tuple"},{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"absoluteAmount","type":"uint256"}],"internalType":"struct AbsoluteTokenAmount","name":"output","type":"tuple"},{"components":[{"internalType":"enum SwapType","name":"swapType","type":"uint8"},{"components":[{"internalType":"uint256","name":"share","type":"uint256"},{"internalType":"address","name":"beneficiary","type":"address"}],"internalType":"struct Fee","name":"protocolFee","type":"tuple"},{"components":[{"internalType":"uint256","name":"share","type":"uint256"},{"internalType":"address","name":"beneficiary","type":"address"}],"internalType":"struct Fee","name":"marketplaceFee","type":"tuple"},{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes","name":"callerCallData","type":"bytes"}],"internalType":"struct SwapDescription","name":"swapDescription","type":"tuple"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"hashProtocolFeeSignatureData","outputs":[{"internalType":"bytes32","name":"hashedData","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"hashToCheck","type":"bytes32"}],"name":"isHashUsed","outputs":[{"internalType":"bool","name":"hashUsed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address payable","name":"beneficiary","type":"address"}],"name":"returnLostTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPendingOwner","type":"address"}],"name":"setPendingOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"share","type":"uint256"},{"internalType":"address","name":"beneficiary","type":"address"}],"internalType":"struct Fee","name":"protocolFeeDefault","type":"tuple"}],"name":"setProtocolFeeDefault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"}],"name":"setProtocolFeeSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]