UNPKG

@iguanadex/permit2-sdk

Version:

An sdk for interacting with permit2.

67 lines 2.41 kB
import { BigintIsh } from '@iguanadex/sdk'; import { Address, Hex } from 'viem'; import { TypedDataDomain, TypedDataParameter } from './utils/types'; export type Witness = { witness: { [key: string]: unknown; }; witnessTypeName: string; witnessType: Record<string, TypedDataParameter[]>; }; export type TokenPermissions = { token: string; amount: BigintIsh; }; export type PermitTransferFrom = { permitted: TokenPermissions; spender: string; nonce: BigintIsh; deadline: BigintIsh; }; export type PermitBatchTransferFrom = { permitted: TokenPermissions[]; spender: string; nonce: BigintIsh; deadline: BigintIsh; }; export type PermitTransferFromData = { domain: TypedDataDomain; types: Record<string, TypedDataParameter[]>; values: PermitTransferFrom; primaryType: 'PermitTransferFrom'; }; export type PermitWitnessTransferFromData = { domain: TypedDataDomain; types: Record<string, TypedDataParameter[]>; values: PermitTransferFrom & { witness: { [key: string]: unknown; }; }; primaryType: 'PermitWitnessTransferFrom'; }; export type PermitBatchTransferFromData = { domain: TypedDataDomain; types: Record<string, TypedDataParameter[]>; values: PermitBatchTransferFrom; primaryType: 'PermitBatchTransferFrom'; }; export type PermitBatchWitnessTransferFromData = { domain: TypedDataDomain; types: Record<string, TypedDataParameter[]>; values: PermitBatchTransferFrom & { witness: { [key: string]: unknown; }; }; primaryType: 'PermitBatchWitnessTransferFrom'; }; export declare abstract class SignatureTransfer { /** * Cannot be constructed. */ private constructor(); static getPermitData<TPermit extends PermitTransferFrom | PermitBatchTransferFrom, TWitness extends Witness | undefined, ReturnType = TPermit extends PermitTransferFrom ? TWitness extends undefined ? PermitTransferFromData : PermitWitnessTransferFromData : TWitness extends undefined ? PermitBatchTransferFromData : PermitBatchWitnessTransferFromData>(permit: TPermit, permit2Address: Address, chainId: number, witness?: TWitness): ReturnType; static hash(permit: PermitTransferFrom | PermitBatchTransferFrom, permit2Address: Address, chainId: number, witness?: Witness): Hex; } //# sourceMappingURL=signatureTransfer.d.ts.map