Skip to content

Commit d813007

Browse files
Merge pull request #437 from LN-Zap/fix/case-insensitive-asset-parsing-clean
fix: peersync - case insensitive asset parsing
2 parents be493c1 + 3d472a3 commit d813007

2 files changed

Lines changed: 18 additions & 3 deletions

File tree

peersync/peer.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package peersync
44
import (
55
"errors"
66
"fmt"
7+
"strings"
78
"time"
89

910
"github.com/elementsproject/peerswap/premium"
@@ -34,7 +35,8 @@ var (
3435

3536
// NewAsset converts a ticker into the corresponding enum value.
3637
func NewAsset(value string) (Asset, error) {
37-
if asset, ok := stringToAsset[value]; ok {
38+
normalized := strings.ToUpper(strings.TrimSpace(value))
39+
if asset, ok := stringToAsset[normalized]; ok {
3840
return asset, nil
3941
}
4042
return AssetUnknown, fmt.Errorf("unsupported asset: %s", value)

peersync/peer_test.go

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,8 +275,21 @@ func TestAssetValidation(t *testing.T) {
275275
t.Fatalf("expected asset LBTC string to be LBTC, got %s", b.String())
276276
}
277277

278-
if _, err = NewAsset("lower"); err == nil {
279-
t.Fatalf("expected error for lowercase asset")
278+
// v5.0.0 peers send lowercase symbols — must be accepted
279+
c, err := NewAsset("btc")
280+
if err != nil {
281+
t.Fatalf("expected no error for lowercase btc, got %v", err)
282+
}
283+
if c != AssetBTC {
284+
t.Fatalf("expected lowercase btc to resolve to AssetBTC")
285+
}
286+
287+
d, err := NewAsset("lbtc")
288+
if err != nil {
289+
t.Fatalf("expected no error for lowercase lbtc, got %v", err)
290+
}
291+
if d != AssetLBTC {
292+
t.Fatalf("expected lowercase lbtc to resolve to AssetLBTC")
280293
}
281294

282295
if _, err = NewAsset("TOO-LONG-ASSET"); err == nil {

0 commit comments

Comments
 (0)