Skip to content

Commit 97084cc

Browse files
committed
Add sorting for attribute keys in SerializeDiscoverByAttributesArgs and keyring keys in SerializeListCertificatesResult
1 parent 6a1e536 commit 97084cc

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

wallet/serializer/discover_by_attributes.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package serializer
22

33
import (
44
"fmt"
5+
"sort"
56

67
"github.com/bsv-blockchain/go-sdk/util"
78
"github.com/bsv-blockchain/go-sdk/wallet"
@@ -15,6 +16,7 @@ func SerializeDiscoverByAttributesArgs(args *wallet.DiscoverByAttributesArgs) ([
1516
for k := range args.Attributes {
1617
attributeKeys = append(attributeKeys, k)
1718
}
19+
sort.Strings(attributeKeys)
1820
w.WriteVarInt(uint64(len(attributeKeys)))
1921
for _, key := range attributeKeys {
2022
w.WriteIntBytes([]byte(key))

wallet/serializer/list_certificates.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package serializer
22

33
import (
44
"fmt"
5+
"sort"
56

67
ec "github.com/bsv-blockchain/go-sdk/primitives/ec"
78
"github.com/bsv-blockchain/go-sdk/util"
@@ -100,8 +101,14 @@ func SerializeListCertificatesResult(result *wallet.ListCertificatesResult) ([]b
100101
// Write keyring if present
101102
if cert.Keyring != nil {
102103
w.WriteByte(1) // present
104+
keyringKeys := make([]string, 0, len(cert.Keyring))
105+
for k := range cert.Keyring {
106+
keyringKeys = append(keyringKeys, k)
107+
}
108+
sort.Strings(keyringKeys)
103109
w.WriteVarInt(uint64(len(cert.Keyring)))
104-
for k, v := range cert.Keyring {
110+
for _, k := range keyringKeys {
111+
v := cert.Keyring[k]
105112
w.WriteString(k)
106113
if err := w.WriteIntFromBase64(v); err != nil {
107114
return nil, fmt.Errorf("invalid keyring value base64: %w", err)

0 commit comments

Comments
 (0)