@iguanadex/permit2-sdk
Version:
An sdk for interacting with permit2.
67 lines • 2.41 kB
TypeScript
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