Skip to content

Commit 88031c8

Browse files
committed
wallet --stream
1 parent 6f0e777 commit 88031c8

3 files changed

Lines changed: 35 additions & 3 deletions

File tree

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ go 1.24.1
44

55
require (
66
fiatjaf.com/lib v0.3.1
7-
fiatjaf.com/nostr v0.0.0-20250818235102-c8d5aa703fab
7+
fiatjaf.com/nostr v0.0.0-20250829192328-aa321f6e7f10
88
github.com/bep/debounce v1.2.1
99
github.com/btcsuite/btcd/btcec/v2 v2.3.5
1010
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e
@@ -21,7 +21,7 @@ require (
2121
github.com/mdp/qrterminal/v3 v3.2.1
2222
github.com/stretchr/testify v1.10.0
2323
github.com/urfave/cli/v3 v3.0.0-beta1
24-
golang.org/x/exp v0.0.0-20250813145105-42675adae3e6
24+
golang.org/x/exp v0.0.0-20250819193227-8b4c13bb791b
2525
golang.org/x/term v0.32.0
2626
)
2727

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ fiatjaf.com/lib v0.3.1 h1:/oFQwNtFRfV+ukmOCxfBEAuayoLwXp4wu2/fz5iHpwA=
33
fiatjaf.com/lib v0.3.1/go.mod h1:Ycqq3+mJ9jAWu7XjbQI1cVr+OFgnHn79dQR5oTII47g=
44
fiatjaf.com/nostr v0.0.0-20250818235102-c8d5aa703fab h1:zMp+G9Et5Z7ku/WUflZpmQzDIAB/Ah00Ms3cMtX9Pw4=
55
fiatjaf.com/nostr v0.0.0-20250818235102-c8d5aa703fab/go.mod h1:j7AfnEAevFuLcpH4Y1RYM27sYJfshL3An6ZSAQNlUlY=
6+
fiatjaf.com/nostr v0.0.0-20250829192328-aa321f6e7f10 h1:T1rQuoQgC6GwxJTLTDjli8ZauCtOa+BjybU3pxCN84w=
7+
fiatjaf.com/nostr v0.0.0-20250829192328-aa321f6e7f10/go.mod h1:92kdTV0aFobQ14aq5IMpkYy3lGI8RUabMwN3Cfv/qmg=
68
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
79
github.com/FastFilter/xorfilter v0.2.1 h1:lbdeLG9BdpquK64ZsleBS8B4xO/QW1IM0gMzF7KaBKc=
810
github.com/FastFilter/xorfilter v0.2.1/go.mod h1:aumvdkhscz6YBZF9ZA/6O4fIoNod4YR50kIVGGZ7l9I=
@@ -240,6 +242,8 @@ golang.org/x/exp v0.0.0-20250717185816-542afb5b7346 h1:vuCObX8mQzik1tfEcYxWZBuVs
240242
golang.org/x/exp v0.0.0-20250717185816-542afb5b7346/go.mod h1:A+z0yzpGtvnG90cToK5n2tu8UJVP2XUATh+r+sfOOOc=
241243
golang.org/x/exp v0.0.0-20250813145105-42675adae3e6 h1:SbTAbRFnd5kjQXbczszQ0hdk3ctwYf3qBNH9jIsGclE=
242244
golang.org/x/exp v0.0.0-20250813145105-42675adae3e6/go.mod h1:4QTo5u+SEIbbKW1RacMZq1YEfOBqeXa19JeshGi+zc4=
245+
golang.org/x/exp v0.0.0-20250819193227-8b4c13bb791b h1:DXr+pvt3nC887026GRP39Ej11UATqWDmWuS99x26cD0=
246+
golang.org/x/exp v0.0.0-20250819193227-8b4c13bb791b/go.mod h1:4QTo5u+SEIbbKW1RacMZq1YEfOBqeXa19JeshGi+zc4=
243247
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
244248
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
245249
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=

wallet.go

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,24 @@ func prepareWallet(ctx context.Context, c *cli.Command) (*nip60.Wallet, func(),
3434
w.Processed = func(evt nostr.Event, err error) {
3535
if err == nil {
3636
logverbose("processed event %s\n", evt)
37+
38+
if c.Bool("stream") {
39+
// after EOSE log updates and the new balance
40+
select {
41+
case <-w.Stable:
42+
switch evt.Kind {
43+
case 5:
44+
log("- token deleted\n")
45+
case 7375:
46+
log("- token added\n")
47+
default:
48+
return
49+
}
50+
51+
log(" balance: %d\n", w.Balance())
52+
default:
53+
}
54+
}
3755
} else {
3856
log("error processing event %s: %s\n", evt, err)
3957
}
@@ -87,15 +105,25 @@ var wallet = &cli.Command{
87105
Usage: "displays the current wallet balance",
88106
Description: "all wallet data is stored on Nostr relays, signed and encrypted with the given key, and reloaded again from relays on every call.\n\nthe same data can be accessed by other compatible nip60 clients.",
89107
DisableSliceFlagSeparator: true,
90-
Flags: defaultKeyFlags,
108+
Flags: append(defaultKeyFlags,
109+
&cli.BoolFlag{
110+
Name: "stream",
111+
Usage: "keep listening for wallet-related events and logging them",
112+
},
113+
),
91114
Action: func(ctx context.Context, c *cli.Command) error {
92115
w, closew, err := prepareWallet(ctx, c)
93116
if err != nil {
94117
return err
95118
}
96119

120+
log("balance: ")
97121
stdout(w.Balance())
98122

123+
if c.Bool("stream") {
124+
<-ctx.Done() // this will hang forever
125+
}
126+
99127
closew()
100128
return nil
101129
},

0 commit comments

Comments
 (0)