@@ -12,6 +12,8 @@ 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"
16+ v9 "github.com/smartcontractkit/data-streams-sdk/go/report/v9"
1517)
1618
1719func TestReport (t * testing.T ) {
@@ -70,6 +72,34 @@ func TestReport(t *testing.T) {
7072 if ! reflect .DeepEqual (v4Report , rv4 ) {
7173 t .Errorf ("expected: %#v, got: %#v" , v4Report , rv4 )
7274 }
75+
76+ b , err = schema .Pack (v8Report .ReportContext , v8Report .ReportBlob , v8Report .RawRs , v8Report .RawSs , v8Report .RawVs )
77+ if err != nil {
78+ t .Errorf ("failed to encode report: %s" , err )
79+ }
80+
81+ rv8 , err := Decode [v8.Data ](b )
82+ if err != nil {
83+ t .Errorf ("failed to decode report: %s" , err )
84+ }
85+
86+ if ! reflect .DeepEqual (v8Report , rv8 ) {
87+ t .Errorf ("expected: %#v, got: %#v" , v8Report , rv8 )
88+ }
89+
90+ b , err = schema .Pack (v9Report .ReportContext , v9Report .ReportBlob , v9Report .RawRs , v9Report .RawSs , v9Report .RawVs )
91+ if err != nil {
92+ t .Errorf ("failed to encode report: %s" , err )
93+ }
94+
95+ rv9 , err := Decode [v9.Data ](b )
96+ if err != nil {
97+ t .Errorf ("failed to decode report: %s" , err )
98+ }
99+
100+ if ! reflect .DeepEqual (v8Report , rv8 ) {
101+ t .Errorf ("expected: %#v, got: %#v" , v9Report , rv9 )
102+ }
73103}
74104
75105var v1Report = & Report [v1.Data ]{
@@ -108,6 +138,24 @@ var v4Report = &Report[v4.Data]{
108138 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 },
109139}
110140
141+ var v8Report = & Report [v8.Data ]{
142+ Data : v8Data ,
143+ ReportContext : [3 ][32 ]uint8 {},
144+ ReportBlob : mustPackData (v8Data ),
145+ 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 }},
146+ 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 }},
147+ 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 },
148+ }
149+
150+ var v9Report = & Report [v9.Data ]{
151+ Data : v9Data ,
152+ ReportContext : [3 ][32 ]uint8 {},
153+ ReportBlob : mustPackData (v9Data ),
154+ 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 }},
155+ 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 }},
156+ 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 },
157+ }
158+
111159var v1Data = v1.Data {
112160 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 },
113161 ObservationsTimestamp : uint32 (time .Now ().Unix ()),
@@ -153,6 +201,31 @@ var v4Data = v4.Data{
153201 MarketStatus : v4 .MarketStatusOpen ,
154202}
155203
204+ var v8Data = v8.Data {
205+ 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 },
206+ ValidFromTimestamp : uint32 (time .Now ().Unix ()),
207+ ObservationsTimestamp : uint32 (time .Now ().Unix ()),
208+ NativeFee : big .NewInt (10 ),
209+ LinkFee : big .NewInt (10 ),
210+ ExpiresAt : uint32 (time .Now ().Unix ()) + 100 ,
211+ LastUpdateTimestamp : uint64 (time .Now ().UnixNano () - int64 (10 * time .Second )),
212+ MidPrice : big .NewInt (100 ),
213+ MarketStatus : 1 ,
214+ }
215+
216+ var v9Data = v9.Data {
217+ FeedID : [32 ]uint8 {00 , 9 , 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 },
218+ ValidFromTimestamp : uint32 (time .Now ().Unix ()),
219+ ObservationsTimestamp : uint32 (time .Now ().Unix ()),
220+ NativeFee : big .NewInt (10 ),
221+ LinkFee : big .NewInt (10 ),
222+ ExpiresAt : uint32 (time .Now ().Unix ()) + 100 ,
223+ NavPerShare : big .NewInt (1100 ),
224+ NavDate : uint64 (time .Now ().UnixNano ()) - 100 ,
225+ Aum : big .NewInt (11009 ),
226+ Ripcord : 108 ,
227+ }
228+
156229func mustPackData (d interface {}) []byte {
157230 var args []interface {}
158231 var dataSchema abi.Arguments
@@ -207,6 +280,33 @@ func mustPackData(d interface{}) []byte {
207280 v .BenchmarkPrice ,
208281 v .MarketStatus ,
209282 }
283+ case v8.Data :
284+ dataSchema = v8 .Schema ()
285+ args = []interface {}{
286+ v .FeedID ,
287+ v .ValidFromTimestamp ,
288+ v .ObservationsTimestamp ,
289+ v .NativeFee ,
290+ v .LinkFee ,
291+ v .ExpiresAt ,
292+ v .LastUpdateTimestamp ,
293+ v .MidPrice ,
294+ v .MarketStatus ,
295+ }
296+ case v9.Data :
297+ dataSchema = v9 .Schema ()
298+ args = []interface {}{
299+ v .FeedID ,
300+ v .ValidFromTimestamp ,
301+ v .ObservationsTimestamp ,
302+ v .NativeFee ,
303+ v .LinkFee ,
304+ v .ExpiresAt ,
305+ v .NavPerShare ,
306+ v .NavDate ,
307+ v .Aum ,
308+ v .Ripcord ,
309+ }
210310 default :
211311 panic (fmt .Sprintf ("invalid type to pack: %#v" , v ))
212312 }
0 commit comments