@lambdapay/onchain
Version:
LambdaPay (🪜,💰) onchain smart contracts
1 lines • 75.3 kB
JSON
{"abi":[{"type":"function","name":"subsidizedTransferToken","inputs":[{"name":"_intent","type":"tuple","internalType":"struct TransferIntent","components":[{"name":"recipientAmount","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address payable"},{"name":"recipientCurrency","type":"address","internalType":"address"},{"name":"refundDestination","type":"address","internalType":"address"},{"name":"feeAmount","type":"uint256","internalType":"uint256"},{"name":"id","type":"bytes16","internalType":"bytes16"},{"name":"operator","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"prefix","type":"bytes","internalType":"bytes"}]},{"name":"_signatureTransferData","type":"tuple","internalType":"struct EIP2612SignatureTransferData","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapAndTransferUniswapV3Native","inputs":[{"name":"_intent","type":"tuple","internalType":"struct TransferIntent","components":[{"name":"recipientAmount","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address payable"},{"name":"recipientCurrency","type":"address","internalType":"address"},{"name":"refundDestination","type":"address","internalType":"address"},{"name":"feeAmount","type":"uint256","internalType":"uint256"},{"name":"id","type":"bytes16","internalType":"bytes16"},{"name":"operator","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"prefix","type":"bytes","internalType":"bytes"}]},{"name":"poolFeesTier","type":"uint24","internalType":"uint24"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"swapAndTransferUniswapV3Token","inputs":[{"name":"_intent","type":"tuple","internalType":"struct TransferIntent","components":[{"name":"recipientAmount","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address payable"},{"name":"recipientCurrency","type":"address","internalType":"address"},{"name":"refundDestination","type":"address","internalType":"address"},{"name":"feeAmount","type":"uint256","internalType":"uint256"},{"name":"id","type":"bytes16","internalType":"bytes16"},{"name":"operator","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"prefix","type":"bytes","internalType":"bytes"}]},{"name":"_signatureTransferData","type":"tuple","internalType":"struct Permit2SignatureTransferData","components":[{"name":"permit","type":"tuple","internalType":"struct ISignatureTransfer.PermitTransferFrom","components":[{"name":"permitted","type":"tuple","internalType":"struct ISignatureTransfer.TokenPermissions","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"name":"transferDetails","type":"tuple","internalType":"struct ISignatureTransfer.SignatureTransferDetails","components":[{"name":"to","type":"address","internalType":"address"},{"name":"requestedAmount","type":"uint256","internalType":"uint256"}]},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"poolFeesTier","type":"uint24","internalType":"uint24"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapAndTransferUniswapV3TokenPreApproved","inputs":[{"name":"_intent","type":"tuple","internalType":"struct TransferIntent","components":[{"name":"recipientAmount","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address payable"},{"name":"recipientCurrency","type":"address","internalType":"address"},{"name":"refundDestination","type":"address","internalType":"address"},{"name":"feeAmount","type":"uint256","internalType":"uint256"},{"name":"id","type":"bytes16","internalType":"bytes16"},{"name":"operator","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"prefix","type":"bytes","internalType":"bytes"}]},{"name":"_tokenIn","type":"address","internalType":"address"},{"name":"maxWillingToPay","type":"uint256","internalType":"uint256"},{"name":"poolFeesTier","type":"uint24","internalType":"uint24"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferNative","inputs":[{"name":"_intent","type":"tuple","internalType":"struct TransferIntent","components":[{"name":"recipientAmount","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address payable"},{"name":"recipientCurrency","type":"address","internalType":"address"},{"name":"refundDestination","type":"address","internalType":"address"},{"name":"feeAmount","type":"uint256","internalType":"uint256"},{"name":"id","type":"bytes16","internalType":"bytes16"},{"name":"operator","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"prefix","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"transferToken","inputs":[{"name":"_intent","type":"tuple","internalType":"struct TransferIntent","components":[{"name":"recipientAmount","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address payable"},{"name":"recipientCurrency","type":"address","internalType":"address"},{"name":"refundDestination","type":"address","internalType":"address"},{"name":"feeAmount","type":"uint256","internalType":"uint256"},{"name":"id","type":"bytes16","internalType":"bytes16"},{"name":"operator","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"prefix","type":"bytes","internalType":"bytes"}]},{"name":"_signatureTransferData","type":"tuple","internalType":"struct Permit2SignatureTransferData","components":[{"name":"permit","type":"tuple","internalType":"struct ISignatureTransfer.PermitTransferFrom","components":[{"name":"permitted","type":"tuple","internalType":"struct ISignatureTransfer.TokenPermissions","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"name":"transferDetails","type":"tuple","internalType":"struct ISignatureTransfer.SignatureTransferDetails","components":[{"name":"to","type":"address","internalType":"address"},{"name":"requestedAmount","type":"uint256","internalType":"uint256"}]},{"name":"signature","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferTokenPreApproved","inputs":[{"name":"_intent","type":"tuple","internalType":"struct TransferIntent","components":[{"name":"recipientAmount","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address payable"},{"name":"recipientCurrency","type":"address","internalType":"address"},{"name":"refundDestination","type":"address","internalType":"address"},{"name":"feeAmount","type":"uint256","internalType":"uint256"},{"name":"id","type":"bytes16","internalType":"bytes16"},{"name":"operator","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"prefix","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unwrapAndTransfer","inputs":[{"name":"_intent","type":"tuple","internalType":"struct TransferIntent","components":[{"name":"recipientAmount","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address payable"},{"name":"recipientCurrency","type":"address","internalType":"address"},{"name":"refundDestination","type":"address","internalType":"address"},{"name":"feeAmount","type":"uint256","internalType":"uint256"},{"name":"id","type":"bytes16","internalType":"bytes16"},{"name":"operator","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"prefix","type":"bytes","internalType":"bytes"}]},{"name":"_signatureTransferData","type":"tuple","internalType":"struct Permit2SignatureTransferData","components":[{"name":"permit","type":"tuple","internalType":"struct ISignatureTransfer.PermitTransferFrom","components":[{"name":"permitted","type":"tuple","internalType":"struct ISignatureTransfer.TokenPermissions","components":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"name":"transferDetails","type":"tuple","internalType":"struct ISignatureTransfer.SignatureTransferDetails","components":[{"name":"to","type":"address","internalType":"address"},{"name":"requestedAmount","type":"uint256","internalType":"uint256"}]},{"name":"signature","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unwrapAndTransferPreApproved","inputs":[{"name":"_intent","type":"tuple","internalType":"struct TransferIntent","components":[{"name":"recipientAmount","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address payable"},{"name":"recipientCurrency","type":"address","internalType":"address"},{"name":"refundDestination","type":"address","internalType":"address"},{"name":"feeAmount","type":"uint256","internalType":"uint256"},{"name":"id","type":"bytes16","internalType":"bytes16"},{"name":"operator","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"prefix","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"wrapAndTransfer","inputs":[{"name":"_intent","type":"tuple","internalType":"struct TransferIntent","components":[{"name":"recipientAmount","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address payable"},{"name":"recipientCurrency","type":"address","internalType":"address"},{"name":"refundDestination","type":"address","internalType":"address"},{"name":"feeAmount","type":"uint256","internalType":"uint256"},{"name":"id","type":"bytes16","internalType":"bytes16"},{"name":"operator","type":"address","internalType":"address"},{"name":"signature","type":"bytes","internalType":"bytes"},{"name":"prefix","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"OperatorRegistered","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"feeDestination","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorUnregistered","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transferred","inputs":[{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"bytes16","indexed":true,"internalType":"bytes16"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"spentAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"spentCurrency","type":"address","indexed":false,"internalType":"address"},{"name":"recipientAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"recipientCurrency","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyProcessed","inputs":[]},{"type":"error","name":"ExpiredIntent","inputs":[]},{"type":"error","name":"IncorrectCurrency","inputs":[{"name":"providedCurrency","type":"address","internalType":"address"}]},{"type":"error","name":"InexactTransfer","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"target","type":"address","internalType":"address"},{"name":"expectedChange","type":"uint256","internalType":"uint256"},{"name":"actualChange","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientAllowance","inputs":[{"name":"shortfall","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"shortfall","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidNativeAmount","inputs":[{"name":"difference","type":"int256","internalType":"int256"}]},{"type":"error","name":"InvalidSignature","inputs":[]},{"type":"error","name":"InvalidTransferDetails","inputs":[]},{"type":"error","name":"NativeTransferFailed","inputs":[{"name":"destination","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"isRefund","type":"bool","internalType":"bool"},{"name":"data","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"NullRecipient","inputs":[]},{"type":"error","name":"OperatorNotRegistered","inputs":[]},{"type":"error","name":"PermitCallFailed","inputs":[]},{"type":"error","name":"SwapFailedBytes","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"SwapFailedString","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"subsidizedTransferToken((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes),(address,bytes))":"1d7f10ac","swapAndTransferUniswapV3Native((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes),uint24)":"8bf122da","swapAndTransferUniswapV3Token((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes),(((address,uint256),uint256,uint256),(address,uint256),bytes),uint24)":"ccba8aac","swapAndTransferUniswapV3TokenPreApproved((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes),address,uint256,uint24)":"f2fda4ae","transferNative((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes))":"fc8f31e0","transferToken((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes),(((address,uint256),uint256,uint256),(address,uint256),bytes))":"6614eb71","transferTokenPreApproved((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes))":"04e0fc36","unwrapAndTransfer((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes),(((address,uint256),uint256,uint256),(address,uint256),bytes))":"80747a83","unwrapAndTransferPreApproved((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes))":"e5368147","wrapAndTransfer((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes))":"47a8c964"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyProcessed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpiredIntent\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"providedCurrency\",\"type\":\"address\"}],\"name\":\"IncorrectCurrency\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expectedChange\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actualChange\",\"type\":\"uint256\"}],\"name\":\"InexactTransfer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shortfall\",\"type\":\"uint256\"}],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shortfall\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"difference\",\"type\":\"int256\"}],\"name\":\"InvalidNativeAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTransferDetails\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isRefund\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"NativeTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NullRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorNotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitCallFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"SwapFailedBytes\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"SwapFailedString\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"feeDestination\",\"type\":\"address\"}],\"name\":\"OperatorRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"OperatorUnregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"id\",\"type\":\"bytes16\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"spentAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"spentCurrency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"recipientAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipientCurrency\",\"type\":\"address\"}],\"name\":\"Transferred\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"recipientAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientCurrency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundDestination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes16\",\"name\":\"id\",\"type\":\"bytes16\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"prefix\",\"type\":\"bytes\"}],\"internalType\":\"struct TransferIntent\",\"name\":\"_intent\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct EIP2612SignatureTransferData\",\"name\":\"_signatureTransferData\",\"type\":\"tuple\"}],\"name\":\"subsidizedTransferToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"recipientAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientCurrency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundDestination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes16\",\"name\":\"id\",\"type\":\"bytes16\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"prefix\",\"type\":\"bytes\"}],\"internalType\":\"struct TransferIntent\",\"name\":\"_intent\",\"type\":\"tuple\"},{\"internalType\":\"uint24\",\"name\":\"poolFeesTier\",\"type\":\"uint24\"}],\"name\":\"swapAndTransferUniswapV3Native\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"recipientAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientCurrency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundDestination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes16\",\"name\":\"id\",\"type\":\"bytes16\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"prefix\",\"type\":\"bytes\"}],\"internalType\":\"struct TransferIntent\",\"name\":\"_intent\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureTransfer.TokenPermissions\",\"name\":\"permitted\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureTransfer.PermitTransferFrom\",\"name\":\"permit\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureTransfer.SignatureTransferDetails\",\"name\":\"transferDetails\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct Permit2SignatureTransferData\",\"name\":\"_signatureTransferData\",\"type\":\"tuple\"},{\"internalType\":\"uint24\",\"name\":\"poolFeesTier\",\"type\":\"uint24\"}],\"name\":\"swapAndTransferUniswapV3Token\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"recipientAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientCurrency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundDestination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes16\",\"name\":\"id\",\"type\":\"bytes16\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"prefix\",\"type\":\"bytes\"}],\"internalType\":\"struct TransferIntent\",\"name\":\"_intent\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_tokenIn\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxWillingToPay\",\"type\":\"uint256\"},{\"internalType\":\"uint24\",\"name\":\"poolFeesTier\",\"type\":\"uint24\"}],\"name\":\"swapAndTransferUniswapV3TokenPreApproved\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"recipientAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientCurrency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundDestination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes16\",\"name\":\"id\",\"type\":\"bytes16\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"prefix\",\"type\":\"bytes\"}],\"internalType\":\"struct TransferIntent\",\"name\":\"_intent\",\"type\":\"tuple\"}],\"name\":\"transferNative\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"recipientAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientCurrency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundDestination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes16\",\"name\":\"id\",\"type\":\"bytes16\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"prefix\",\"type\":\"bytes\"}],\"internalType\":\"struct TransferIntent\",\"name\":\"_intent\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureTransfer.TokenPermissions\",\"name\":\"permitted\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureTransfer.PermitTransferFrom\",\"name\":\"permit\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureTransfer.SignatureTransferDetails\",\"name\":\"transferDetails\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct Permit2SignatureTransferData\",\"name\":\"_signatureTransferData\",\"type\":\"tuple\"}],\"name\":\"transferToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"recipientAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientCurrency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundDestination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes16\",\"name\":\"id\",\"type\":\"bytes16\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"prefix\",\"type\":\"bytes\"}],\"internalType\":\"struct TransferIntent\",\"name\":\"_intent\",\"type\":\"tuple\"}],\"name\":\"transferTokenPreApproved\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"recipientAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientCurrency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundDestination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes16\",\"name\":\"id\",\"type\":\"bytes16\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"prefix\",\"type\":\"bytes\"}],\"internalType\":\"struct TransferIntent\",\"name\":\"_intent\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureTransfer.TokenPermissions\",\"name\":\"permitted\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureTransfer.PermitTransferFrom\",\"name\":\"permit\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct ISignatureTransfer.SignatureTransferDetails\",\"name\":\"transferDetails\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct Permit2SignatureTransferData\",\"name\":\"_signatureTransferData\",\"type\":\"tuple\"}],\"name\":\"unwrapAndTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"recipientAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientCurrency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundDestination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes16\",\"name\":\"id\",\"type\":\"bytes16\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"prefix\",\"type\":\"bytes\"}],\"internalType\":\"struct TransferIntent\",\"name\":\"_intent\",\"type\":\"tuple\"}],\"name\":\"unwrapAndTransferPreApproved\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"recipientAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipientCurrency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundDestination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes16\",\"name\":\"id\",\"type\":\"bytes16\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"prefix\",\"type\":\"bytes\"}],\"internalType\":\"struct TransferIntent\",\"name\":\"_intent\",\"type\":\"tuple\"}],\"name\":\"wrapAndTransfer\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This interface focuses on the user-facing transfer operations. Administrative functions (like operator registration, pausing) are typically managed directly on the implementation contract.\",\"errors\":{\"IncorrectCurrency(address)\":[{\"params\":{\"providedCurrency\":\"The currency specified in the intent or implicitly used by the function.\"}}],\"InexactTransfer(address,address,uint256,uint256)\":[{\"params\":{\"actualChange\":\"The actual increase observed in the target's balance.\",\"expectedChange\":\"The expected increase in the target's balance.\",\"target\":\"The address whose balance change was incorrect.\",\"token\":\"The address of the ERC20 token.\"}}],\"InsufficientAllowance(uint256)\":[{\"params\":{\"shortfall\":\"The amount of additional allowance required.\"}}],\"InsufficientBalance(uint256)\":[{\"params\":{\"shortfall\":\"The amount of additional tokens required.\"}}],\"InvalidNativeAmount(int256)\":[{\"params\":{\"difference\":\"The difference between `msg.value` and the required amount (`recipientAmount + feeAmount`). Positive if too much was sent, negative if too little.\"}}],\"NativeTransferFailed(address,uint256,bool,bytes)\":[{\"params\":{\"amount\":\"The amount of native currency that failed to send.\",\"data\":\"Additional data returned from the failed low-level call, if any.\",\"destination\":\"The address the native currency transfer was intended for.\",\"isRefund\":\"Indicates if the failed transfer was part of a refund process.\"}}],\"SwapFailedBytes(bytes)\":[{\"params\":{\"data\":\"The raw error data returned by Uniswap or related contracts.\"}}],\"SwapFailedString(string)\":[{\"params\":{\"reason\":\"The error reason string returned by Uniswap or related contracts.\"}}]},\"events\":{\"OperatorRegistered(address,address)\":{\"params\":{\"feeDestination\":\"The address where fees for this operator will be sent.\",\"operator\":\"The operator address.\"}},\"OperatorUnregistered(address)\":{\"params\":{\"operator\":\"The operator address that was unregistered.\"}},\"Transferred(address,bytes16,address,address,uint256,address,uint256,address)\":{\"params\":{\"id\":\"The unique ID of the processed transfer intent.\",\"operator\":\"The operator address that authorized the intent.\",\"recipient\":\"The primary recipient of the funds.\",\"recipientAmount\":\"The amount actually sent to the primary recipient.\",\"recipientCurrency\":\"The currency sent to the primary recipient.\",\"sender\":\"The address that initiated the transaction and/or provided the input funds (payer).\",\"spentAmount\":\"The total amount of the input currency consumed by the operation (including fees and swap costs).\",\"spentCurrency\":\"The address of the input currency provided by the sender (`address(0)` for native).\"}}},\"kind\":\"dev\",\"methods\":{\"subsidizedTransferToken((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes),(address,bytes))\":{\"details\":\"Requires `_intent.recipientCurrency` to be the token address (`!= address(0)`). The `sender` for the `TransferIntent` signature validation is `_signatureTransferData.owner`. Relies on the target token implementing EIP-2612 `permit` correctly.\",\"params\":{\"_intent\":\"The `TransferIntent` struct containing details and operator signature.\",\"_signatureTransferData\":\"EIP-2612 permit data including the owner and their signature.\"}},\"swapAndTransferUniswapV3Native((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes),uint24)\":{\"details\":\"Requires `_intent.recipientCurrency` to be a token address (`!= address(0)` and `!= address(wrappedToken)`). `msg.value` should be the maximum native amount the sender is willing to spend on the swap. The swap aims for an exact output amount (`_intent.recipientAmount + _intent.feeAmount`). Reverts if `msg.value` is insufficient.\",\"params\":{\"_intent\":\"The `TransferIntent` struct containing details and operator signature.\",\"poolFeesTier\":\"The Uniswap V3 pool fee tier (e.g., 3000 for 0.3%) for the swap path involving WETH.\"}},\"swapAndTransferUniswapV3Token((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes),(((address,uint256),uint256,uint256),(address,uint256),bytes),uint24)\":{\"details\":\"Requires `_intent.recipientCurrency != _signatureTransferData.permit.permitted.token`. Requires sender to have approved Permit2 contract for the input token. Requires `_signatureTransferData.transferDetails.to == address(this)`. `requestedAmount` is the max input token amount. The swap aims for an exact output amount (`_intent.recipientAmount + _intent.feeAmount`). Reverts if `requestedAmount` is insufficient.\",\"params\":{\"_intent\":\"The `TransferIntent` struct containing details and operator signature.\",\"_signatureTransferData\":\"Permit2 data for the input token transfer.\",\"poolFeesTier\":\"The Uniswap V3 pool fee tier for the swap path.\"}},\"swapAndTransferUniswapV3TokenPreApproved((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes),address,uint256,uint24)\":{\"details\":\"Requires `_intent.recipientCurrency != _tokenIn`. Requires sender to have approved this contract for at least `maxWillingToPay` of `_tokenIn`. The swap aims for an exact output amount (`_intent.recipientAmount + _intent.feeAmount`). Reverts if `maxWillingToPay` is insufficient.\",\"params\":{\"_intent\":\"The `TransferIntent` struct containing details and operator signature.\",\"_tokenIn\":\"The address of the ERC20 token the sender is paying with.\",\"maxWillingToPay\":\"The maximum amount of `_tokenIn` the sender is willing to provide for the swap.\",\"poolFeesTier\":\"The Uniswap V3 pool fee tier for the swap path.\"}},\"transferNative((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes))\":{\"details\":\"Requires `_intent.recipientCurrency == address(0)`. `msg.value` must exactly equal `_intent.recipientAmount + _intent.feeAmount`.\",\"params\":{\"_intent\":\"The `TransferIntent` struct containing details and operator signature.\"}},\"transferToken((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes),(((address,uint256),uint256,uint256),(address,uint256),bytes))\":{\"details\":\"Requires `_intent.recipientCurrency == _signatureTransferData.permit.permitted.token`. Requires sender to have approved Permit2 contract for the token. Requires `_signatureTransferData.transferDetails.to == address(this)` and `requestedAmount == _intent.recipientAmount + _intent.feeAmount`.\",\"params\":{\"_intent\":\"The `TransferIntent` struct containing details and operator signature.\",\"_signatureTransferData\":\"Permit2 data including the permit, transfer details, and owner's signature.\"}},\"transferTokenPreApproved((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes))\":{\"details\":\"Requires `_intent.recipientCurrency` to be the target token address (`!= address(0)`). Requires sender to have approved this contract for at least `_intent.recipientAmount + _intent.feeAmount` of the token.\",\"params\":{\"_intent\":\"The `TransferIntent` struct containing details and operator signature.\"}},\"unwrapAndTransfer((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes),(((address,uint256),uint256,uint256),(address,uint256),bytes))\":{\"details\":\"Requires `_intent.recipientCurrency == address(0)`. Requires `_signatureTransferData.permit.permitted.token == address(wrappedToken)`. Requires sender to have approved Permit2 contract for the wrapped token. Requires `_signatureTransferData.transferDetails.to == address(this)` and `requestedAmount == _intent.recipientAmount + _intent.feeAmount`.\",\"params\":{\"_intent\":\"The `TransferIntent` struct containing details and operator signature.\",\"_signatureTransferData\":\"Permit2 data for the wrapped token transfer.\"}},\"unwrapAndTransferPreApproved((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes))\":{\"details\":\"Requires `_intent.recipientCurrency == address(0)`. Requires sender to have approved this contract for at least `_intent.recipientAmount + _intent.feeAmount` of the wrapped token.\",\"params\":{\"_intent\":\"The `TransferIntent` struct containing details and operator signature.\"}},\"wrapAndTransfer((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes))\":{\"details\":\"Requires `_intent.recipientCurrency == address(wrappedToken)`. `msg.value` must exactly equal `_intent.recipientAmount + _intent.feeAmount`.\",\"params\":{\"_intent\":\"The `TransferIntent` struct containing details and operator signature.\"}}},\"title\":\"ILambdaPay Interface\",\"version\":1},\"userdoc\":{\"errors\":{\"AlreadyProcessed()\":[{\"notice\":\"Reverts if a `TransferIntent` with the same `operator` and `id` has already been processed.\"}],\"ExpiredIntent()\":[{\"notice\":\"Reverts if `block.timestamp` is greater than or equal to the `deadline` in the `TransferIntent`.\"}],\"IncorrectCurrency(address)\":[{\"notice\":\"Reverts if the `recipientCurrency` in the intent is incompatible with the chosen transfer function (e.g., providing a token address to `transferNative`, or native address to `transferToken`).\"}],\"InexactTransfer(address,address,uint256,uint256)\":[{\"notice\":\"Reverts when an ERC20 transfer (in or out) does not result in the expected balance change, typically indicating a fee-on-transfer token or other non-standard behavior.\"}],\"InsufficientAllowance(uint256)\":[{\"notice\":\"Reverts if the required ERC20 allowance (either to this contract or Permit2) is insufficient.\"}],\"InsufficientBalance(uint256)\":[{\"notice\":\"Reverts if the payer (or owner in subsidized transfers) does not have a sufficient balance of the required token.\"}],\"InvalidNativeAmount(int256)\":[{\"notice\":\"Reverts if the `msg.value` sent with a native currency payment does not exactly match the required amount.\"}],\"InvalidSignature()\":[{\"notice\":\"Reverts if the `signature` in the `TransferIntent` is invalid or does not recover to the `operator`.\"}],\"InvalidTransferDetails()\":[{\"notice\":\"Reverts if the details within `Permit2SignatureTransferData.transferDetails` (like recipient or amount) do not match the requirements of the `TransferIntent` or the called function.\"}],\"NativeTransferFailed(address,uint256,bool,bytes)\":[{\"notice\":\"Reverts when a required native currency transfer (e.g., to recipient, fee destination, or refund) fails.\"}],\"NullRecipient()\":[{\"notice\":\"Reverts if `recipient` in the `TransferIntent` is `address(0)`.\"}],\"OperatorNotRegistered()\":[{\"notice\":\"Reverts if the `operator` specified in the `TransferIntent` is not registered.\"}],\"PermitCallFailed()\":[{\"notice\":\"Reverts if the `permit` call in `subsidizedTransferToken` fails, either by reverting or by not incrementing the nonce (indicating a non-compliant or non-existent implementation).\"}],\"SwapFailedBytes(bytes)\":[{\"notice\":\"Reverts when a Uniswap swap fails, providing the raw error bytes if a string reason is not available.\"}],\"SwapFailedString(string)\":[{\"notice\":\"Reverts when a Uniswap swap fails, providing the reason string if available.\"}]},\"events\":{\"OperatorRegistered(address,address)\":{\"notice\":\"Emitted when an operator is registered or their fee destination is updated via admin functions.\"},\"OperatorUnregistered(address)\":{\"notice\":\"Emitted when an operator is unregistered via admin functions.\"},\"Transferred(address,bytes16,address,address,uint256,address,uint256,address)\":{\"notice\":\"Emitted when a transfer intent is successfully processed and funds are distributed.\"}},\"kind\":\"user\",\"methods\":{\"subsidizedTransferToken((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes),(address,bytes))\":{\"notice\":\"Uses an EIP-2612 permit signature to gain approval for a token transfer from the `owner`'s account, then transfers the token to the recipient and fee destination. The transaction fee (`gas`) is paid by `msg.sender`.\"},\"swapAndTransferUniswapV3Native((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes),uint24)\":{\"notice\":\"Receives native currency (`msg.value`), swaps it via Uniswap V3 for the `_intent.recipientCurrency`, and transfers the resulting token to the recipient and fee destination. Refunds unused native currency to the sender.\"},\"swapAndTransferUniswapV3Token((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes),(((address,uint256),uint256,uint256),(address,uint256),bytes),uint24)\":{\"notice\":\"Transfers an ERC20 token from the sender (`msg.sender`) to this contract via Permit2, swaps it via Uniswap V3 for `_intent.recipientCurrency`, and transfers the resulting currency (token or native) to the recipient and fee destination. Refunds unused input token to the sender.\"},\"swapAndTransferUniswapV3TokenPreApproved((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes),address,uint256,uint24)\":{\"notice\":\"Transfers an ERC20 token (`_tokenIn`) from the sender (`msg.sender`) to this contract via standard ERC20 pre-approval, swaps it via Uniswap V3 for `_intent.recipientCurrency`, and transfers the resulting currency (token or native) to the recipient and fee destination. Refunds unused input token to the sender.\"},\"transferNative((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes))\":{\"notice\":\"Sends the exact amount of native currency (`msg.value`) from the sender (`msg.sender`) to the recipient and fee destination specified in the intent.\"},\"transferToken((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes),(((address,uint256),uint256,uint256),(address,uint256),bytes))\":{\"notice\":\"Transfers the exact amount of an ERC20 token from the sender (`msg.sender`) to the recipient and fee destination, using a Permit2 signature for approval.\"},\"transferTokenPreApproved((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes))\":{\"notice\":\"Transfers the exact amount of an ERC20 token from the sender (`msg.sender`) to the recipient and fee destination, using a standard ERC20 pre-approval (`approve`).\"},\"unwrapAndTransfer((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes),(((address,uint256),uint256,uint256),(address,uint256),bytes))\":{\"notice\":\"Transfers the canonical wrapped token (e.g., WETH) from the sender (`msg.sender`) to this contract using Permit2, unwraps it, and sends native currency to the recipient and fee destination.\"},\"unwrapAndTransferPreApproved((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes))\":{\"notice\":\"Transfers the canonical wrapped token (e.g., WETH) from the sender (`msg.sender`) to this contract using standard ERC20 pre-approval, unwraps it, and sends native currency to the recipient and fee destination.\"},\"wrapAndTransfer((uint256,uint256,address,address,address,uint256,bytes16,address,bytes,bytes))\":{\"notice\":\"Receives native currency (`msg.value`), wraps it into the canonical wrapped token (e.g., WETH), and transfers the wrapped token to the recipient and fee destination.\"}},\"notice\":\"Defines the external functions for executing various types of transfers, potentially involving swaps, wrapping/unwrapping, and different approval mechanisms (Permit2, EIP-2612, pre-approved).\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ILambdaPay.sol\":\"ILambdaPay\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[\":@lambdapay/onchain/contracts/=contracts/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":@uniswap/universal-router/=lib/universal-router/\",\":ds-test/=lib/universal-router/solmate/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/universal-router/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/universal-router/lib/permit2/\",\":solmate/=lib/universal-router/lib/solmate/\",\":universal-router/=lib/universal-router/\"],\"viaIR\":true},\"sources\":{\"contracts/interfaces/ILambdaPay.sol\":{\"keccak256\":\"0x6f7519d8ebe4791dc671a9251c28a629617aff833e747cbf8d8009e2a562025d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba32360f83f6360a0820ecdc152f76f75c634bf7e7a0897fd3f9bc536713d360\",\"dweb:/ipfs/QmUvL5HXv5zzKqLFoWqHZsT84qA9LHPKhoYZBLRGfGdTDQ\"]},\"contracts/permit2/interfaces/ISignatureTransfer.sol\":{\"keccak256\":\"0x19ea76f45e12aa3d5a9e5ee76b07a7b3c529fd581c447824531c2718e2238dff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dfeb07b9cb8200c51