UNPKG

@volare.finance/utils.js

Version:
44 lines 1.68 kB
"use strict"; /** * @file eip712.ts * @author astra <astra@volare.finance> * @date 2022 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.recoverAddress = exports.getSignature = exports.getHash = exports.SignatureType = void 0; const tslib_1 = require("tslib"); const bytes_1 = require("@ethersproject/bytes"); const hash_1 = require("@ethersproject/hash"); const wallet_1 = require("@ethersproject/wallet"); var SignatureType; (function (SignatureType) { SignatureType[SignatureType["Illegal"] = 0] = "Illegal"; SignatureType[SignatureType["Invalid"] = 1] = "Invalid"; SignatureType[SignatureType["EIP712"] = 2] = "EIP712"; SignatureType[SignatureType["EthSign"] = 3] = "EthSign"; })(SignatureType = exports.SignatureType || (exports.SignatureType = {})); function getHash(data) { return hash_1._TypedDataEncoder.hash(data.domain, data.types, data.message); } exports.getHash = getHash; function getSignature(signer, data) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const bytes = yield signer._signTypedData(data.domain, data.types, data.message); const signature = (0, bytes_1.splitSignature)(bytes); return [ { v: signature.v, r: signature.r, s: signature.s, signatureType: SignatureType.EIP712, }, bytes, ]; }); } exports.getSignature = getSignature; function recoverAddress(data, signature) { return (0, wallet_1.verifyTypedData)(data.domain, data.types, data.message, signature); } exports.recoverAddress = recoverAddress; //# sourceMappingURL=eip712.js.map