mirror of
https://github.com/nbd-wtf/go-nostr.git
synced 2025-03-17 21:32:56 +01:00
nip60: EnsureWallet() publishes an update if a wallet wasn't found.
This commit is contained in:
parent
14c4101a03
commit
2b9c50a220
@ -278,7 +278,7 @@ func loadStash(
|
||||
return wl
|
||||
}
|
||||
|
||||
func (wl *WalletStash) EnsureWallet(id string) *Wallet {
|
||||
func (wl *WalletStash) EnsureWallet(ctx context.Context, id string) *Wallet {
|
||||
wl.Lock()
|
||||
defer wl.Unlock()
|
||||
if w, ok := wl.wallets[id]; ok {
|
||||
@ -287,7 +287,7 @@ func (wl *WalletStash) EnsureWallet(id string) *Wallet {
|
||||
|
||||
sk, err := btcec.NewPrivateKey()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
return nil
|
||||
}
|
||||
|
||||
w := &Wallet{
|
||||
@ -297,6 +297,14 @@ func (wl *WalletStash) EnsureWallet(id string) *Wallet {
|
||||
wl: wl,
|
||||
}
|
||||
wl.wallets[id] = w
|
||||
|
||||
event := nostr.Event{}
|
||||
if err := w.toEvent(ctx, wl.kr, &event); err != nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
wl.PublishUpdate(event, nil, nil, nil, false)
|
||||
|
||||
return w
|
||||
}
|
||||
|
||||
|
@ -71,10 +71,10 @@ func TestWalletTransfer(t *testing.T) {
|
||||
}
|
||||
|
||||
// ensure wallets exist and have tokens
|
||||
w1 := stash1.EnsureWallet("test")
|
||||
w1 := stash1.EnsureWallet(ctx, "test")
|
||||
require.Greater(t, w1.Balance(), uint64(0), "wallet 1 has no balance")
|
||||
|
||||
w2 := stash2.EnsureWallet("test")
|
||||
w2 := stash2.EnsureWallet(ctx, "test")
|
||||
initialBalance1 := w1.Balance()
|
||||
initialBalance2 := w2.Balance()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user