Files
welshman/packages/util/src/Wallet.ts
T
2025-09-29 14:33:03 -07:00

42 lines
822 B
TypeScript

export type WebLNInfo = {
methods?: string[]
supports?: string[]
version?: string
node?: {
alias: string
}
}
export type NWCInfo = {
lud16: string
secret: string
relayUrl: string
walletPubkey: string
nostrWalletConnectUrl: string
}
export enum WalletType {
WebLN = "webln",
NWC = "nwc",
}
export type WebLNWallet = {
type: WalletType.WebLN
info: WebLNInfo
}
export type NWCWallet = {
type: WalletType.NWC
info: NWCInfo
}
export type Wallet = WebLNWallet | NWCWallet
export const isWebLNWallet = (wallet: Wallet): wallet is WebLNWallet =>
wallet.type === WalletType.WebLN
export const isNWCWallet = (wallet: Wallet): wallet is NWCWallet => wallet.type === WalletType.NWC
export const getWalletAddress = (wallet: Wallet) =>
isNWCWallet(wallet) ? wallet.info.lud16 : undefined