mirror of
https://github.com/nbd-wtf/go-nostr.git
synced 2025-08-24 12:40:46 +02:00
feat: update gonuts dependency
This commit is contained in:
2
go.mod
2
go.mod
@@ -14,7 +14,7 @@ require (
|
||||
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0
|
||||
github.com/dgraph-io/badger/v4 v4.5.0
|
||||
github.com/dgraph-io/ristretto v1.0.0
|
||||
github.com/elnosh/gonuts v0.3.1-0.20250123162555-7c0381a585e3
|
||||
github.com/elnosh/gonuts v0.4.2
|
||||
github.com/fiatjaf/eventstore v0.16.2
|
||||
github.com/fiatjaf/khatru v0.17.4
|
||||
github.com/gomarkdown/markdown v0.0.0-20241205020045-f7e15b2f3e62
|
||||
|
4
go.sum
4
go.sum
@@ -92,8 +92,8 @@ github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUn
|
||||
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
|
||||
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
|
||||
github.com/dvyukov/go-fuzz v0.0.0-20200318091601-be3528f3a813/go.mod h1:11Gm+ccJnvAhCNLlf5+cS9KjtbaD5I5zaZpFMsTHWTw=
|
||||
github.com/elnosh/gonuts v0.3.1-0.20250123162555-7c0381a585e3 h1:k7evIqJ2BtFn191DgY/b03N2bMYA/iQwzr4f/uHYn20=
|
||||
github.com/elnosh/gonuts v0.3.1-0.20250123162555-7c0381a585e3/go.mod h1:vgZomh4YQk7R3w4ltZc0sHwCmndfHkuX6V4sga/8oNs=
|
||||
github.com/elnosh/gonuts v0.4.2 h1:/WubPAWGxTE+okJ0WPvmtEzTzpi04RGxiTHAF1FYU+M=
|
||||
github.com/elnosh/gonuts v0.4.2/go.mod h1:vgZomh4YQk7R3w4ltZc0sHwCmndfHkuX6V4sga/8oNs=
|
||||
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||
|
@@ -10,6 +10,7 @@ import (
|
||||
"github.com/elnosh/gonuts/cashu/nuts/nut02"
|
||||
"github.com/elnosh/gonuts/cashu/nuts/nut03"
|
||||
"github.com/elnosh/gonuts/cashu/nuts/nut10"
|
||||
"github.com/elnosh/gonuts/cashu/nuts/nut13"
|
||||
"github.com/nbd-wtf/go-nostr/nip60/client"
|
||||
)
|
||||
|
||||
@@ -25,10 +26,33 @@ func (w *Wallet) swapProofs(
|
||||
targetAmount uint64,
|
||||
ss swapSettings,
|
||||
) (principal cashu.Proofs, change cashu.Proofs, err error) {
|
||||
keysetIdList := []string{}
|
||||
for i := range w.Mints {
|
||||
if w.Mints[i] != mint {
|
||||
keysets, err := client.GetAllKeysets(ctx, w.Mints[i])
|
||||
if err != nil {
|
||||
return nil, nil, fmt.Errorf("could not get keysets for all previous keysets %s: %w", w.Mints[i], err)
|
||||
}
|
||||
|
||||
for j := range keysets {
|
||||
keysetIdList = append(keysetIdList, keysets[j].Id)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
keysets, err := client.GetAllKeysets(ctx, mint)
|
||||
if err != nil {
|
||||
return nil, nil, fmt.Errorf("failed to get all keysets for %s: %w", mint, err)
|
||||
}
|
||||
|
||||
for j := range keysets {
|
||||
err := nut13.CheckCollidingKeysets(keysetIdList, []string{keysets[j].Id})
|
||||
if err != nil {
|
||||
return nil, nil, fmt.Errorf("encountered keyset collition for mint %s: %w", mint, err)
|
||||
}
|
||||
keysetIdList = append(keysetIdList, keysets[j].Id)
|
||||
}
|
||||
|
||||
activeKeyset, err := client.GetActiveKeyset(ctx, mint)
|
||||
if err != nil {
|
||||
return nil, nil, fmt.Errorf("failed to get active keyset for %s: %w", mint, err)
|
||||
|
@@ -11,7 +11,9 @@ import (
|
||||
|
||||
"github.com/btcsuite/btcd/btcec/v2"
|
||||
"github.com/decred/dcrd/dcrec/secp256k1/v4"
|
||||
"github.com/elnosh/gonuts/cashu/nuts/nut13"
|
||||
"github.com/nbd-wtf/go-nostr"
|
||||
"github.com/nbd-wtf/go-nostr/nip60/client"
|
||||
)
|
||||
|
||||
type Wallet struct {
|
||||
@@ -254,6 +256,18 @@ func (w *Wallet) AddMint(ctx context.Context, urls ...string) error {
|
||||
return fmt.Errorf("can't do write operations: missing PublishUpdate function")
|
||||
}
|
||||
|
||||
keysetIdList := []string{}
|
||||
for i := range w.Mints {
|
||||
keysets, err := client.GetAllKeysets(ctx, w.Mints[i])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for j := range keysets {
|
||||
keysetIdList = append(keysetIdList, keysets[j].Id)
|
||||
}
|
||||
}
|
||||
|
||||
for _, url := range urls {
|
||||
url, err := nostr.NormalizeHTTPURL(url)
|
||||
if err != nil {
|
||||
@@ -261,6 +275,18 @@ func (w *Wallet) AddMint(ctx context.Context, urls ...string) error {
|
||||
}
|
||||
|
||||
if !slices.Contains(w.Mints, url) {
|
||||
keysets, err := client.GetAllKeysets(ctx, url)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for j := range keysets {
|
||||
err = nut13.CheckCollidingKeysets(keysetIdList, []string{keysets[j].Id})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
keysetIdList = append(keysetIdList, keysets[j].Id)
|
||||
}
|
||||
w.Mints = append(w.Mints, url)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user