UNPKG

@volare.finance/utils.js

Version:
32 lines (31 loc) 951 B
/** * @file eip712.ts * @author astra <astra@volare.finance> * @date 2022 */ import { TypedDataDomain, TypedDataField } from '@ethersproject/abstract-signer'; import { Wallet } from 'ethers'; import { Address, Hash } from '../type'; export declare enum SignatureType { Illegal = 0, Invalid = 1, EIP712 = 2, EthSign = 3 } export interface EIP712TypedData { domain: TypedDataDomain; types: Record<string, Array<TypedDataField>>; message: Record<string, any>; primaryType: string; } export interface ECSignature { v: number; r: string; s: string; } export interface Signature extends ECSignature { signatureType: SignatureType; } export declare function getHash(data: EIP712TypedData): Hash; export declare function getSignature(signer: Wallet, data: EIP712TypedData): Promise<[Signature, string]>; export declare function recoverAddress(data: EIP712TypedData, signature: Signature | string): Address;