Skip to content

Welshman Docs / @welshman/app / Zappers

Class: Zappers

Defined in: app/src/plugins/zappers.ts:28

Lightning zapper info, keyed by lnurl. A "local" loadable collection: items aren't nostr events, they're fetched over HTTP (either directly from each lnurl, or via a dufflepud proxy to protect user privacy). Depends on the profiles collection to resolve a pubkey's lnurl.

Extends

Constructors

Constructor

new Zappers(app, options): Zappers

Defined in: app/src/plugins/base.ts:174

Parameters

app

IApp

options

MakeLoadItemOptions = {}

Returns

Zappers

Inherited from

LoadableMapPlugin.constructor

Properties

all

all: Projection<Zapper[]>

Defined in: app/src/plugins/base.ts:101

Inherited from

LoadableMapPlugin.all


app

protected readonly app: IApp

Defined in: app/src/plugins/base.ts:105

Inherited from

LoadableMapPlugin.app


fetch()

fetch: (request) => Promise<undefined | Zapper>

Defined in: app/src/plugins/zappers.ts:29

Parameters

request

string

Returns

Promise<undefined | Zapper>

Overrides

LoadableMapPlugin.fetch


forceLoad()

forceLoad: (key, ...args) => Promise<Maybe<Zapper>>

Defined in: app/src/plugins/base.ts:170

Parameters

key

string

args

...any[]

Returns

Promise<Maybe<Zapper>>

Inherited from

LoadableMapPlugin.forceLoad


index

index: Projection<ItemsByKey<Zapper>>

Defined in: app/src/plugins/base.ts:100

Inherited from

LoadableMapPlugin.index


load()

load: (key, ...args) => Promise<Maybe<Zapper>>

Defined in: app/src/plugins/base.ts:169

Parameters

key

string

args

...any[]

Returns

Promise<Maybe<Zapper>>

Inherited from

LoadableMapPlugin.load


one()

one: (key?, ...args) => Readable<Maybe<Zapper>>

Defined in: app/src/plugins/base.ts:102

Parameters

key?

string

args?

...any[]

Returns

Readable<Maybe<Zapper>>

Inherited from

LoadableMapPlugin.one


store

protected store: Writable<Map<string, Zapper>>

Defined in: app/src/plugins/base.ts:99

Inherited from

LoadableMapPlugin.store


subs

subs: (key, value) => void[] = []

Defined in: app/src/plugins/base.ts:103

Parameters

key

string

value

Maybe<Zapper>

Returns

void

Inherited from

LoadableMapPlugin.subs

Methods

clear()

clear(): void

Defined in: app/src/plugins/base.ts:136

Returns

void

Inherited from

LoadableMapPlugin.clear


delete()

delete(key): void

Defined in: app/src/plugins/base.ts:126

Parameters

key

string

Returns

void

Inherited from

LoadableMapPlugin.delete


emitItem()

protected emitItem(key, value): void

Defined in: app/src/plugins/base.ts:156

Parameters

key

string

value

Maybe<Zapper>

Returns

void

Inherited from

LoadableMapPlugin.emitItem


forPubkey()

forPubkey(pubkey, relays): Projection<Maybe<Zapper>>

Defined in: app/src/plugins/zappers.ts:78

Parameters

pubkey

string

relays

string[] = []

Returns

Projection<Maybe<Zapper>>


get()

get(key): undefined | Zapper

Defined in: app/src/plugins/base.ts:111

Parameters

key

string

Returns

undefined | Zapper

Inherited from

LoadableMapPlugin.get


loadForPubkey()

loadForPubkey(pubkey, relays): Promise<Maybe<Zapper>>

Defined in: app/src/plugins/zappers.ts:70

Parameters

pubkey

string

relays

string[] = []

Returns

Promise<Maybe<Zapper>>


loadZapperForZap()

loadZapperForZap(zapReceipt, parent): Promise<Maybe<Zapper>>

Defined in: app/src/plugins/zappers.ts:104

Resolve the zapper a zap receipt should be validated against. A receipt's p tag is the recipient (copied from the zap request), so we honor only receipts addressed to one of the parent's designated split recipients and load that recipient's zapper. The old lookup always used the first recipient's lnurl, which silently dropped legitimate zaps to any of the other split recipients.

Parameters

zapReceipt

TrustedEvent

parent

TrustedEvent

Returns

Promise<Maybe<Zapper>>


onItem()

onItem(subscriber): Unsubscriber

Defined in: app/src/plugins/base.ts:146

Parameters

subscriber

(key, value) => void

Returns

Unsubscriber

Inherited from

LoadableMapPlugin.onItem


project()

project<U>(key, read): Projection<U>

Defined in: app/src/plugins/base.ts:113

Type Parameters

U

U

Parameters

key

string

read

(item) => U

Returns

Projection<U>

Inherited from

LoadableMapPlugin.project


set()

set(key, value): void

Defined in: app/src/plugins/base.ts:116

Parameters

key

string

value

Zapper

Returns

void

Inherited from

LoadableMapPlugin.set


validateZapReceipt()

validateZapReceipt(zapReceipt, parent): Promise<undefined | Zap>

Defined in: app/src/plugins/zappers.ts:113

Parameters

zapReceipt

TrustedEvent

parent

TrustedEvent

Returns

Promise<undefined | Zap>


validateZapReceipts()

validateZapReceipts(zapReceipts, parent): Promise<Zap[]>

Defined in: app/src/plugins/zappers.ts:123

Parameters

zapReceipts

TrustedEvent[]

parent

TrustedEvent

Returns

Promise<Zap[]>


validZapReceipts()

validZapReceipts(zapReceipts, parent): Projection<Zap[]>

Defined in: app/src/plugins/zappers.ts:128

Parameters

zapReceipts

TrustedEvent[]

parent

TrustedEvent

Returns

Projection<Zap[]>