@@ -12,6 +12,7 @@ import (
1212 v2 "github.com/smartcontractkit/data-streams-sdk/go/report/v2"
1313 v3 "github.com/smartcontractkit/data-streams-sdk/go/report/v3"
1414 v4 "github.com/smartcontractkit/data-streams-sdk/go/report/v4"
15+ v8 "github.com/smartcontractkit/data-streams-sdk/go/report/v8"
1516)
1617
1718func TestReport (t * testing.T ) {
@@ -70,6 +71,20 @@ func TestReport(t *testing.T) {
7071 if ! reflect .DeepEqual (v4Report , rv4 ) {
7172 t .Errorf ("expected: %#v, got: %#v" , v4Report , rv4 )
7273 }
74+
75+ b , err = schema .Pack (v8Report .ReportContext , v8Report .ReportBlob , v8Report .RawRs , v8Report .RawSs , v8Report .RawVs )
76+ if err != nil {
77+ t .Errorf ("failed to encode report: %s" , err )
78+ }
79+
80+ rv8 , err := Decode [v8.Data ](b )
81+ if err != nil {
82+ t .Errorf ("failed to decode report: %s" , err )
83+ }
84+
85+ if ! reflect .DeepEqual (v8Report , rv8 ) {
86+ t .Errorf ("expected: %#v, got: %#v" , v8Report , rv8 )
87+ }
7388}
7489
7590var v1Report = & Report [v1.Data ]{
@@ -108,6 +123,15 @@ var v4Report = &Report[v4.Data]{
108123 RawVs : [32 ]uint8 {00 , 01 , 10 , 74 , 67 , 29 , 24 , 17 , 12 , 18 , 22 , 11 , 69 , 11 , 63 , 86 , 12 , 86 , 23 , 58 , 13 , 53 , 29 , 12 , 17 , 10 , 17 , 12 , 63 , 27 , 12 , 14 },
109124}
110125
126+ var v8Report = & Report [v8.Data ]{
127+ Data : v8Data ,
128+ ReportContext : [3 ][32 ]uint8 {},
129+ ReportBlob : mustPackData (v8Data ),
130+ RawRs : [][32 ]uint8 {{00 , 01 , 10 , 74 , 67 , 29 , 24 , 17 , 12 , 18 , 22 , 11 , 69 , 11 , 63 , 86 , 12 , 86 , 23 , 58 , 13 , 53 , 29 , 12 , 17 , 10 , 17 , 12 , 63 , 27 , 12 , 14 }},
131+ RawSs : [][32 ]uint8 {{01 , 02 , 10 , 73 , 65 , 19 , 14 , 27 , 42 , 48 , 52 , 18 , 39 , 116 , 67 , 85 , 13 , 82 , 33 , 48 , 23 , 33 , 49 , 32 , 67 , 50 , 37 , 32 , 63 , 77 , 14 , 64 }},
132+ RawVs : [32 ]uint8 {00 , 01 , 10 , 74 , 67 , 29 , 24 , 17 , 12 , 18 , 22 , 11 , 69 , 11 , 63 , 86 , 12 , 86 , 23 , 58 , 13 , 53 , 29 , 12 , 17 , 10 , 17 , 12 , 63 , 27 , 12 , 14 },
133+ }
134+
111135var v1Data = v1.Data {
112136 FeedID : [32 ]uint8 {00 , 01 , 107 , 74 , 167 , 229 , 124 , 167 , 182 , 138 , 225 , 191 , 69 , 101 , 63 , 86 , 182 , 86 , 253 , 58 , 163 , 53 , 239 , 127 , 174 , 105 , 107 , 102 , 63 , 27 , 132 , 114 },
113137 ObservationsTimestamp : uint32 (time .Now ().Unix ()),
@@ -153,6 +177,18 @@ var v4Data = v4.Data{
153177 MarketStatus : v4 .MarketStatusOpen ,
154178}
155179
180+ var v8Data = v8.Data {
181+ FeedID : [32 ]uint8 {00 , 8 , 107 , 74 , 167 , 229 , 124 , 167 , 182 , 138 , 225 , 191 , 69 , 101 , 63 , 86 , 182 , 86 , 253 , 58 , 163 , 53 , 239 , 127 , 174 , 105 , 107 , 102 , 63 , 27 , 132 , 114 },
182+ ValidFromTimestamp : uint32 (time .Now ().Unix ()),
183+ ObservationsTimestamp : uint32 (time .Now ().Unix ()),
184+ NativeFee : big .NewInt (10 ),
185+ LinkFee : big .NewInt (10 ),
186+ ExpiresAt : uint32 (time .Now ().Unix ()) + 100 ,
187+ LastUpdateTimestamp : uint64 (time .Now ().UnixNano () - int64 (10 * time .Second )),
188+ MidPrice : big .NewInt (100 ),
189+ MarketStatus : 1 ,
190+ }
191+
156192func mustPackData (d interface {}) []byte {
157193 var args []interface {}
158194 var dataSchema abi.Arguments
@@ -207,6 +243,19 @@ func mustPackData(d interface{}) []byte {
207243 v .BenchmarkPrice ,
208244 v .MarketStatus ,
209245 }
246+ case v8.Data :
247+ dataSchema = v8 .Schema ()
248+ args = []interface {}{
249+ v .FeedID ,
250+ v .ValidFromTimestamp ,
251+ v .ObservationsTimestamp ,
252+ v .NativeFee ,
253+ v .LinkFee ,
254+ v .ExpiresAt ,
255+ v .LastUpdateTimestamp ,
256+ v .MidPrice ,
257+ v .MarketStatus ,
258+ }
210259 default :
211260 panic (fmt .Sprintf ("invalid type to pack: %#v" , v ))
212261 }
0 commit comments