- Consolidated duplicate UndoManagers to single instance - Fixed connection promise to only resolve on 'connected' status - Fixed WebSocketProvider import (WebsocketProvider) - Added proper doc.destroy() cleanup - Renamed isPresenceInitialized property to avoid conflict Co-Authored-By: Paperclip <noreply@paperclip.ing>
30 lines
779 B
TypeScript
30 lines
779 B
TypeScript
import type { Address } from 'abitype'
|
|
|
|
import type { ErrorType } from '../../errors/utils.js'
|
|
import type { Hex } from '../../types/misc.js'
|
|
import {
|
|
type ChecksumAddressErrorType,
|
|
checksumAddress,
|
|
} from '../../utils/address/getAddress.js'
|
|
import {
|
|
type Keccak256ErrorType,
|
|
keccak256,
|
|
} from '../../utils/hash/keccak256.js'
|
|
|
|
export type PublicKeyToAddressErrorType =
|
|
| ChecksumAddressErrorType
|
|
| Keccak256ErrorType
|
|
| ErrorType
|
|
|
|
/**
|
|
* @description Converts an ECDSA public key to an address.
|
|
*
|
|
* @param publicKey The public key to convert.
|
|
*
|
|
* @returns The address.
|
|
*/
|
|
export function publicKeyToAddress(publicKey: Hex): Address {
|
|
const address = keccak256(`0x${publicKey.substring(4)}`).substring(26)
|
|
return checksumAddress(`0x${address}`) as Address
|
|
}
|