/* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ import { Contract, Signer, utils } from "ethers"; import type { Provider } from "@ethersproject/providers"; import type { Permit2, Permit2Interface } from "../Permit2"; const _abi = [ { inputs: [ { internalType: "uint256", name: "deadline", type: "uint256", }, ], name: "AllowanceExpired", type: "error", }, { inputs: [], name: "ExcessiveInvalidation", type: "error", }, { inputs: [ { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "InsufficientAllowance", type: "error", }, { inputs: [ { internalType: "uint256", name: "maxAmount", type: "uint256", }, ], name: "InvalidAmount", type: "error", }, { inputs: [], name: "InvalidContractSignature", type: "error", }, { inputs: [], name: "InvalidNonce", type: "error", }, { inputs: [], name: "InvalidSignature", type: "error", }, { inputs: [], name: "InvalidSignatureLength", type: "error", }, { inputs: [], name: "InvalidSigner", type: "error", }, { inputs: [], name: "LengthMismatch", type: "error", }, { inputs: [ { internalType: "uint256", name: "signatureDeadline", type: "uint256", }, ], name: "SignatureExpired", type: "error", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "owner", type: "address", }, { indexed: true, internalType: "address", name: "token", type: "address", }, { indexed: true, internalType: "address", name: "spender", type: "address", }, { indexed: false, internalType: "uint160", name: "amount", type: "uint160", }, { indexed: false, internalType: "uint48", name: "expiration", type: "uint48", }, ], name: "Approval", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "owner", type: "address", }, { indexed: false, internalType: "address", name: "token", type: "address", }, { indexed: false, internalType: "address", name: "spender", type: "address", }, ], name: "Lockdown", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "owner", type: "address", }, { indexed: true, internalType: "address", name: "token", type: "address", }, { indexed: true, internalType: "address", name: "spender", type: "address", }, { indexed: false, internalType: "uint48", name: "newNonce", type: "uint48", }, { indexed: false, internalType: "uint48", name: "oldNonce", type: "uint48", }, ], name: "NonceInvalidation", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "owner", type: "address", }, { indexed: true, internalType: "address", name: "token", type: "address", }, { indexed: true, internalType: "address", name: "spender", type: "address", }, { indexed: false, internalType: "uint160", name: "amount", type: "uint160", }, { indexed: false, internalType: "uint48", name: "expiration", type: "uint48", }, { indexed: false, internalType: "uint48", name: "nonce", type: "uint48", }, ], name: "Permit", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "owner", type: "address", }, { indexed: false, internalType: "uint256", name: "word", type: "uint256", }, { indexed: false, internalType: "uint256", name: "mask", type: "uint256", }, ], name: "UnorderedNonceInvalidation", type: "event", }, { inputs: [], name: "DOMAIN_SEPARATOR", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, { internalType: "address", name: "", type: "address", }, { internalType: "address", name: "", type: "address", }, ], name: "allowance", outputs: [ { internalType: "uint160", name: "amount", type: "uint160", }, { internalType: "uint48", name: "expiration", type: "uint48", }, { internalType: "uint48", name: "nonce", type: "uint48", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "token", type: "address", }, { internalType: "address", name: "spender", type: "address", }, { internalType: "uint160", name: "amount", type: "uint160", }, { internalType: "uint48", name: "expiration", type: "uint48", }, ], name: "approve", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "token", type: "address", }, { internalType: "address", name: "spender", type: "address", }, { internalType: "uint48", name: "newNonce", type: "uint48", }, ], name: "invalidateNonces", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "wordPos", type: "uint256", }, { internalType: "uint256", name: "mask", type: "uint256", }, ], name: "invalidateUnorderedNonces", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { components: [ { internalType: "address", name: "token", type: "address", }, { internalType: "address", name: "spender", type: "address", }, ], internalType: "struct IAllowanceTransfer.TokenSpenderPair[]", name: "approvals", type: "tuple[]", }, ], name: "lockdown", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, { internalType: "uint256", name: "", type: "uint256", }, ], name: "nonceBitmap", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "owner", type: "address", }, { components: [ { components: [ { internalType: "address", name: "token", type: "address", }, { internalType: "uint160", name: "amount", type: "uint160", }, { internalType: "uint48", name: "expiration", type: "uint48", }, { internalType: "uint48", name: "nonce", type: "uint48", }, ], internalType: "struct IAllowanceTransfer.PermitDetails[]", name: "details", type: "tuple[]", }, { internalType: "address", name: "spender", type: "address", }, { internalType: "uint256", name: "sigDeadline", type: "uint256", }, ], internalType: "struct IAllowanceTransfer.PermitBatch", name: "permitBatch", type: "tuple", }, { internalType: "bytes", name: "signature", type: "bytes", }, ], name: "permit", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "owner", type: "address", }, { components: [ { components: [ { internalType: "address", name: "token", type: "address", }, { internalType: "uint160", name: "amount", type: "uint160", }, { internalType: "uint48", name: "expiration", type: "uint48", }, { internalType: "uint48", name: "nonce", type: "uint48", }, ], internalType: "struct IAllowanceTransfer.PermitDetails", name: "details", type: "tuple", }, { internalType: "address", name: "spender", type: "address", }, { internalType: "uint256", name: "sigDeadline", type: "uint256", }, ], internalType: "struct IAllowanceTransfer.PermitSingle", name: "permitSingle", type: "tuple", }, { internalType: "bytes", name: "signature", type: "bytes", }, ], name: "permit", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { 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: "address", name: "owner", type: "address", }, { internalType: "bytes", name: "signature", type: "bytes", }, ], name: "permitTransferFrom", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { 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.PermitBatchTransferFrom", 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: "address", name: "owner", type: "address", }, { internalType: "bytes", name: "signature", type: "bytes", }, ], name: "permitTransferFrom", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { 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: "address", name: "owner", type: "address", }, { internalType: "bytes32", name: "witness", type: "bytes32", }, { internalType: "string", name: "witnessTypeString", type: "string", }, { internalType: "bytes", name: "signature", type: "bytes", }, ], name: "permitWitnessTransferFrom", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { 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.PermitBatchTransferFrom", 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: "address", name: "owner", type: "address", }, { internalType: "bytes32", name: "witness", type: "bytes32", }, { internalType: "string", name: "witnessTypeString", type: "string", }, { internalType: "bytes", name: "signature", type: "bytes", }, ], name: "permitWitnessTransferFrom", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { components: [ { internalType: "address", name: "from", type: "address", }, { internalType: "address", name: "to", type: "address", }, { internalType: "uint160", name: "amount", type: "uint160", }, { internalType: "address", name: "token", type: "address", }, ], internalType: "struct IAllowanceTransfer.AllowanceTransferDetails[]", name: "transferDetails", type: "tuple[]", }, ], name: "transferFrom", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "from", type: "address", }, { internalType: "address", name: "to", type: "address", }, { internalType: "uint160", name: "amount", type: "uint160", }, { internalType: "address", name: "token", type: "address", }, ], name: "transferFrom", outputs: [], stateMutability: "nonpayable", type: "function", }, ] as const; export class Permit2__factory { static readonly abi = _abi; static createInterface(): Permit2Interface { return new utils.Interface(_abi) as Permit2Interface; } static connect( address: string, signerOrProvider: Signer | Provider ): Permit2 { return new Contract(address, _abi, signerOrProvider) as Permit2; } }