@volare.finance/utils.js
Version:
The Blockchain Utils
32 lines (31 loc) • 951 B
TypeScript
/**
* @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;