import { keccak256, sha256, toUtf8Bytes, toUtf8String, recoverAddress, SigningKey, AbiCoder, Signature, concat, id, Mnemonic, Wordlist, wordlists, HDNodeWallet as ethersHDNodeWallet, getBytes, computeHmac, } from 'ethers'; import type { BytesLike, SignatureLike } from 'ethers'; import { Interface } from './interface.js'; const splitSignature = (sigBytes: SignatureLike) => Signature.from(sigBytes); const joinSignature = (splitSig: SignatureLike) => Signature.from(splitSig).serialized; const arrayify = (value: BytesLike) => getBytes(value); const FormatTypes = { sighash: 'sighash', minimal: 'minimal', full: 'full', json: 'json', }; const isValidMnemonic = Mnemonic.isValidMnemonic; computeHmac.register((algorithm, key, data) => { return computeHmac._(algorithm, Buffer.from(key), Buffer.from(data)); }); export { keccak256, sha256, toUtf8Bytes, toUtf8String, recoverAddress, Signature, SigningKey, AbiCoder, Interface, FormatTypes, splitSignature, joinSignature, arrayify, ethersHDNodeWallet, concat, id, Mnemonic, Wordlist, wordlists, isValidMnemonic, };