Skip to content

Commit

Permalink
nip11: support hex nip numbers as strings.
Browse files Browse the repository at this point in the history
  • Loading branch information
fiatjaf committed Nov 30, 2024
1 parent 9df2fc8 commit a546203
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 11 deletions.
5 changes: 1 addition & 4 deletions nip11/nip11_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,7 @@ func TestAddSupportedNIP(t *testing.T) {
info.AddSupportedNIP(1)
info.AddSupportedNIP(18)

for i, v := range []int{0, 1, 2, 12, 13, 17, 18, 19, 44} {
assert.Equal(t, v, info.SupportedNIPs[i], "expected info.SupportedNIPs[%d] to equal %v, got %v",
i, v, info.SupportedNIPs)
}
assert.Contains(t, info.SupportedNIPs, 0, 1, 2, 12, 13, 17, 18, 19, 44)
}

func TestFetch(t *testing.T) {
Expand Down
14 changes: 7 additions & 7 deletions nip11/types.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package nip11

import "slices"
import (
"slices"
)

type RelayInformationDocument struct {
URL string `json:"-"`
Expand All @@ -9,7 +11,7 @@ type RelayInformationDocument struct {
Description string `json:"description"`
PubKey string `json:"pubkey"`
Contact string `json:"contact"`
SupportedNIPs []int `json:"supported_nips"`
SupportedNIPs []any `json:"supported_nips"`
Software string `json:"software"`
Version string `json:"version"`

Expand All @@ -24,14 +26,12 @@ type RelayInformationDocument struct {
}

func (info *RelayInformationDocument) AddSupportedNIP(number int) {
idx, exists := slices.BinarySearch(info.SupportedNIPs, number)
if exists {
idx := slices.IndexFunc(info.SupportedNIPs, func(n any) bool { return n == number })
if idx != -1 {
return
}

info.SupportedNIPs = append(info.SupportedNIPs, -1)
copy(info.SupportedNIPs[idx+1:], info.SupportedNIPs[idx:])
info.SupportedNIPs[idx] = number
info.SupportedNIPs = append(info.SupportedNIPs, number)
}

type RelayLimitationDocument struct {
Expand Down

0 comments on commit a546203

Please sign in to comment.