Skip to content
This repository was archived by the owner on May 20, 2025. It is now read-only.

Commit 2f7b872

Browse files
authored
Merge pull request #410 from iotaledger/feat/update-modules
Adapt iota.go to latest serializer version
2 parents 05bb3a5 + 1d92ff8 commit 2f7b872

File tree

9 files changed

+60
-192
lines changed

9 files changed

+60
-192
lines changed

feat_metadata.go

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,19 @@ package iotago
33
import (
44
"bytes"
55
"encoding/json"
6-
"errors"
76
"fmt"
87

98
"github.com/iotaledger/hive.go/serializer/v2"
109
"github.com/iotaledger/iota.go/v3/util"
1110
)
1211

1312
const (
13+
// MinMetadataLength defines the min length of the data within a MetadataFeature.
14+
MinMetadataLength = 1
1415
// MaxMetadataLength defines the max length of the data within a MetadataFeature.
1516
MaxMetadataLength = 8192
1617
)
1718

18-
var (
19-
// ErrMetadataFeatureEmpty gets returned when a MetadataFeature is empty.
20-
ErrMetadataFeatureEmpty = errors.New("metadata feature is empty")
21-
// ErrMetadataFeatureDataExceedsMaxLength gets returned when a MetadataFeature's data exceeds MaxMetadataLength.
22-
ErrMetadataFeatureDataExceedsMaxLength = errors.New("metadata feature data exceeds max length")
23-
)
24-
2519
// MetadataFeature is a feature which simply holds binary data to be freely
2620
// interpreted by higher layer applications.
2721
type MetadataFeature struct {
@@ -49,37 +43,25 @@ func (s *MetadataFeature) Type() FeatureType {
4943
return FeatureMetadata
5044
}
5145

52-
func (s *MetadataFeature) ValidDataSize() error {
53-
switch {
54-
case len(s.Data) == 0:
55-
return ErrMetadataFeatureEmpty
56-
case len(s.Data) > MaxMetadataLength:
57-
return ErrMetadataFeatureDataExceedsMaxLength
58-
}
59-
return nil
60-
}
61-
6246
func (s *MetadataFeature) Deserialize(data []byte, deSeriMode serializer.DeSerializationMode, deSeriCtx interface{}) (int, error) {
6347
return serializer.NewDeserializer(data).
6448
CheckTypePrefix(uint32(FeatureMetadata), serializer.TypeDenotationByte, func(err error) error {
6549
return fmt.Errorf("unable to deserialize metadata feature: %w", err)
6650
}).
6751
ReadVariableByteSlice(&s.Data, serializer.SeriLengthPrefixTypeAsUint16, func(err error) error {
6852
return fmt.Errorf("unable to deserialize data for metadata feature: %w", err)
69-
}, MaxMetadataLength).
70-
WithValidation(deSeriMode, func(_ []byte, err error) error { return s.ValidDataSize() }).
53+
}, MinMetadataLength, MaxMetadataLength).
7154
Done()
7255
}
7356

7457
func (s *MetadataFeature) Serialize(deSeriMode serializer.DeSerializationMode, deSeriCtx interface{}) ([]byte, error) {
7558
return serializer.NewSerializer().
76-
WithValidation(deSeriMode, func(_ []byte, err error) error { return s.ValidDataSize() }).
7759
WriteNum(byte(FeatureMetadata), func(err error) error {
7860
return fmt.Errorf("unable to serialize metadata feature type ID: %w", err)
7961
}).
8062
WriteVariableByteSlice(s.Data, serializer.SeriLengthPrefixTypeAsUint16, func(err error) error {
8163
return fmt.Errorf("unable to serialize metadata feature data: %w", err)
82-
}).
64+
}, MinMetadataLength, MaxMetadataLength).
8365
Serialize()
8466
}
8567

feat_tag.go

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,19 @@ package iotago
33
import (
44
"bytes"
55
"encoding/json"
6-
"errors"
76
"fmt"
87

98
"github.com/iotaledger/hive.go/serializer/v2"
109
"github.com/iotaledger/iota.go/v3/util"
1110
)
1211

1312
const (
14-
// MaxTagLength defines the max. length of an tag feature tag.
13+
// MinTagLength defines the min. length of a tag feature tag.
14+
MinTagLength = 1
15+
// MaxTagLength defines the max. length of a tag feature tag.
1516
MaxTagLength = 64
1617
)
1718

18-
var (
19-
// ErrTagFeatureEmpty gets returned when an TagFeature is empty.
20-
ErrTagFeatureEmpty = errors.New("tag feature data is empty")
21-
// ErrTagFeatureTagExceedsMaxLength gets returned when an TagFeature tag exceeds MaxTagLength.
22-
ErrTagFeatureTagExceedsMaxLength = errors.New("tag feature tag exceeds max length")
23-
)
24-
2519
// TagFeature is a feature which allows to additionally tag an output by a user defined value.
2620
type TagFeature struct {
2721
Tag []byte
@@ -51,37 +45,25 @@ func (s *TagFeature) Type() FeatureType {
5145
return FeatureTag
5246
}
5347

54-
func (s *TagFeature) ValidTagSize() error {
55-
switch {
56-
case len(s.Tag) == 0:
57-
return ErrTagFeatureEmpty
58-
case len(s.Tag) > MaxTagLength:
59-
return ErrTagFeatureTagExceedsMaxLength
60-
}
61-
return nil
62-
}
63-
6448
func (s *TagFeature) Deserialize(data []byte, deSeriMode serializer.DeSerializationMode, deSeriCtx interface{}) (int, error) {
6549
return serializer.NewDeserializer(data).
6650
CheckTypePrefix(uint32(FeatureTag), serializer.TypeDenotationByte, func(err error) error {
6751
return fmt.Errorf("unable to deserialize tag feature: %w", err)
6852
}).
6953
ReadVariableByteSlice(&s.Tag, serializer.SeriLengthPrefixTypeAsByte, func(err error) error {
7054
return fmt.Errorf("unable to deserialize tag for tag feature: %w", err)
71-
}, MaxTagLength).
72-
WithValidation(deSeriMode, func(_ []byte, err error) error { return s.ValidTagSize() }).
55+
}, MinTagLength, MaxTagLength).
7356
Done()
7457
}
7558

7659
func (s *TagFeature) Serialize(deSeriMode serializer.DeSerializationMode, deSeriCtx interface{}) ([]byte, error) {
7760
return serializer.NewSerializer().
78-
WithValidation(deSeriMode, func(_ []byte, err error) error { return s.ValidTagSize() }).
7961
WriteNum(byte(FeatureTag), func(err error) error {
8062
return fmt.Errorf("unable to serialize tag feature type ID: %w", err)
8163
}).
8264
WriteVariableByteSlice(s.Tag, serializer.SeriLengthPrefixTypeAsByte, func(err error) error {
8365
return fmt.Errorf("unable to serialize tag feature tag: %w", err)
84-
}).
66+
}, MinTagLength, MaxTagLength).
8567
Serialize()
8668
}
8769

go.mod

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,35 +5,35 @@ go 1.18
55
require (
66
filippo.io/edwards25519 v1.0.0
77
github.com/eclipse/paho.mqtt.golang v1.4.1
8-
github.com/ethereum/go-ethereum v1.10.21
9-
github.com/iotaledger/hive.go/serializer/v2 v2.0.0-beta.1
8+
github.com/ethereum/go-ethereum v1.10.23
9+
github.com/iotaledger/hive.go/serializer/v2 v2.0.0-beta.3
1010
github.com/iotaledger/iota.go v1.0.0
1111
github.com/pasztorpisti/qs v0.0.0-20171216220353-8d6c33ee906c
1212
github.com/pkg/errors v0.9.1
1313
github.com/stretchr/testify v1.8.0
14-
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa
15-
google.golang.org/grpc v1.48.0
14+
golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d
15+
google.golang.org/grpc v1.49.0
1616
google.golang.org/protobuf v1.28.1
1717
gopkg.in/h2non/gock.v1 v1.1.2
1818
)
1919

2020
require (
21-
github.com/btcsuite/btcd/btcec/v2 v2.2.0 // indirect
21+
github.com/btcsuite/btcd/btcec/v2 v2.2.1 // indirect
2222
github.com/davecgh/go-spew v1.1.1 // indirect
23-
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect
23+
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect
2424
github.com/fsnotify/fsnotify v1.5.4 // indirect
2525
github.com/golang/protobuf v1.5.2 // indirect
2626
github.com/gorilla/websocket v1.5.0 // indirect
2727
github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 // indirect
2828
github.com/kr/pretty v0.3.0 // indirect
2929
github.com/pmezard/go-difflib v1.0.0 // indirect
30-
github.com/rogpeppe/go-internal v1.8.1 // indirect
31-
golang.org/x/net v0.0.0-20220809012201-f428fae20770 // indirect
32-
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect
33-
golang.org/x/sys v0.0.0-20220808155132-1c4a2a72c664 // indirect
30+
github.com/rogpeppe/go-internal v1.9.0 // indirect
31+
golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b // indirect
32+
golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde // indirect
33+
golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64 // indirect
3434
golang.org/x/text v0.3.7 // indirect
3535
golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f // indirect
36-
google.golang.org/genproto v0.0.0-20220808204814-fd01256a5276 // indirect
36+
google.golang.org/genproto v0.0.0-20220822174746-9e6da59bd2fc // indirect
3737
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
3838
gopkg.in/yaml.v3 v3.0.1 // indirect
3939
)

0 commit comments

Comments
 (0)