- 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>
43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import type { ErrorType } from '../errors/utils.js'
|
|
import type { HDKey } from '../types/account.js'
|
|
import { type ToHexErrorType, toHex } from '../utils/encoding/toHex.js'
|
|
import {
|
|
type PrivateKeyToAccountErrorType,
|
|
type PrivateKeyToAccountOptions,
|
|
privateKeyToAccount,
|
|
} from './privateKeyToAccount.js'
|
|
import type { HDAccount, HDOptions } from './types.js'
|
|
|
|
export type HDKeyToAccountOptions = HDOptions & PrivateKeyToAccountOptions
|
|
|
|
export type HDKeyToAccountErrorType =
|
|
| PrivateKeyToAccountErrorType
|
|
| ToHexErrorType
|
|
| ErrorType
|
|
|
|
/**
|
|
* @description Creates an Account from a HD Key.
|
|
*
|
|
* @returns A HD Account.
|
|
*/
|
|
export function hdKeyToAccount(
|
|
hdKey_: HDKey,
|
|
{
|
|
accountIndex = 0,
|
|
addressIndex = 0,
|
|
changeIndex = 0,
|
|
path,
|
|
...options
|
|
}: HDKeyToAccountOptions = {},
|
|
): HDAccount {
|
|
const hdKey = hdKey_.derive(
|
|
path || `m/44'/60'/${accountIndex}'/${changeIndex}/${addressIndex}`,
|
|
)
|
|
const account = privateKeyToAccount(toHex(hdKey.privateKey!), options)
|
|
return {
|
|
...account,
|
|
getHdKey: () => hdKey,
|
|
source: 'hd',
|
|
}
|
|
}
|