@@ -13,6 +13,7 @@ import (
1313 v3 "github.com/smartcontractkit/data-streams-sdk/go/report/v3"
1414 v4 "github.com/smartcontractkit/data-streams-sdk/go/report/v4"
1515 v8 "github.com/smartcontractkit/data-streams-sdk/go/report/v8"
16+ v9 "github.com/smartcontractkit/data-streams-sdk/go/report/v9"
1617)
1718
1819func TestReport (t * testing.T ) {
@@ -85,6 +86,20 @@ func TestReport(t *testing.T) {
8586 if ! reflect .DeepEqual (v8Report , rv8 ) {
8687 t .Errorf ("expected: %#v, got: %#v" , v8Report , rv8 )
8788 }
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+ }
88103}
89104
90105var v1Report = & Report [v1.Data ]{
@@ -132,6 +147,15 @@ var v8Report = &Report[v8.Data]{
132147 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 },
133148}
134149
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+
135159var v1Data = v1.Data {
136160 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 },
137161 ObservationsTimestamp : uint32 (time .Now ().Unix ()),
@@ -189,6 +213,19 @@ var v8Data = v8.Data{
189213 MarketStatus : 1 ,
190214}
191215
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+
192229func mustPackData (d interface {}) []byte {
193230 var args []interface {}
194231 var dataSchema abi.Arguments
@@ -256,6 +293,20 @@ func mustPackData(d interface{}) []byte {
256293 v .MidPrice ,
257294 v .MarketStatus ,
258295 }
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+ }
259310 default :
260311 panic (fmt .Sprintf ("invalid type to pack: %#v" , v ))
261312 }
0 commit comments