@@ -60,19 +60,19 @@ func NewClient(configPath string) (*Client, error) {
60
60
a := Client {}
61
61
err := a .Config .GetConfig (configPath )
62
62
if err != nil {
63
- return nil , fmt .Errorf ("cannot get config" , err )
63
+ return nil , fmt .Errorf ("cannot get config:%w " , err )
64
64
}
65
65
66
66
a .API , err = gsrpc .NewSubstrateAPI (a .Config .WsRpcURL )
67
67
if err != nil {
68
68
// log.Error("cannot get api:%w", zap.Error(err))
69
- return nil , fmt .Errorf ("cannot get api" , err )
69
+ return nil , fmt .Errorf ("cannot get api:%w " , err )
70
70
}
71
71
72
72
a .Meta , err = a .API .RPC .State .GetMetadataLatest ()
73
73
if err != nil {
74
74
// log.Error("cannot get metadata:%w", zap.Error(err))
75
- return nil , fmt .Errorf ("cannot get metadata" , err )
75
+ return nil , fmt .Errorf ("cannot get metadata:%w " , err )
76
76
}
77
77
78
78
a .AppID = 0
@@ -85,27 +85,21 @@ func NewClient(configPath string) (*Client, error) {
85
85
a .GenesisHash , err = a .API .RPC .Chain .GetBlockHash (0 )
86
86
if err != nil {
87
87
// log.Error("cannot get genesis hash:%w", zap.Error(err))
88
- return nil , fmt .Errorf ("cannot get genesis hash" , err )
88
+ return nil , fmt .Errorf ("cannot get genesis hash:%w " , err )
89
89
}
90
90
91
91
a .Rv , err = a .API .RPC .State .GetRuntimeVersionLatest ()
92
92
if err != nil {
93
93
// log.Error("cannot get runtime version:%w", zap.Error(err))
94
- return nil , fmt .Errorf ("cannot get runtime version" , err )
94
+ return nil , fmt .Errorf ("cannot get runtime version:%w " , err )
95
95
}
96
96
97
97
a .KeyringPair , err = signature .KeyringPairFromSecret (a .Config .Seed , 42 )
98
98
if err != nil {
99
99
// log.Error("cannot get keyring pair:%w", zap.Error(err))
100
- return nil , fmt .Errorf ("cannot get keyring pair" , err )
100
+ return nil , fmt .Errorf ("cannot get keyring pair:%w " , err )
101
101
}
102
102
103
- // DestinationAddress, err = types.NewHashFromHexString(Config.DestinationAddress)
104
- // if err != nil {
105
- // log.Fatalf("cannot decode destination address:%w", err)
106
- // }
107
-
108
- // DestinationDomain = types.NewUCompactFromUInt(uint64(Config.DestinationDomain))
109
103
return & a , nil
110
104
}
111
105
@@ -120,20 +114,19 @@ func (c *Client) MaxBlobSize(ctx context.Context) (uint64, error) {
120
114
func (a * Client ) Submit (ctx context.Context , daBlobs []da.Blob , gasPrice float64 ) ([]da.ID , []da.Proof , error ) {
121
115
// TODO: Add support for multiple blobs
122
116
daBlob := daBlobs [0 ]
123
- log .Println ("data" , zap .Any ("data" , daBlob ))
124
- log .Println ("⚡️ Preparing to post data to Avail:%d bytes" , zap .Int ("data_size" , len (daBlob )))
125
- fmt .Println (* a )
117
+ log .Println ("data" , zap .String ("data" , string (daBlob )))
118
+ log .Printf ("⚡️ Preparing to post data to Avail:%d bytes" , len (daBlob ))
126
119
newCall , err := types .NewCall (a .Meta , "DataAvailability.submit_data" , types .NewBytes (daBlob ))
127
120
if err != nil {
128
- return nil , nil , fmt .Errorf ("cannot create new call" , err )
121
+ return nil , nil , fmt .Errorf ("cannot create new call:%w " , err )
129
122
}
130
123
131
124
// Create the extrinsic
132
125
ext := types .NewExtrinsic (newCall )
133
126
134
127
nonce , err := a .GetAccountNextIndex ()
135
128
if err != nil {
136
- return nil , nil , fmt .Errorf ("cannot get account next index" , err )
129
+ return nil , nil , fmt .Errorf ("cannot get account next index:%w " , err )
137
130
}
138
131
139
132
options := types.SignatureOptions {
@@ -147,15 +140,17 @@ func (a *Client) Submit(ctx context.Context, daBlobs []da.Blob, gasPrice float64
147
140
TransactionVersion : a .Rv .TransactionVersion ,
148
141
}
149
142
143
+ fmt .Println ("options transaction version" , options .TransactionVersion , "spec version" , options .SpecVersion )
144
+
150
145
err = ext .Sign (a .KeyringPair , options )
151
146
if err != nil {
152
- return nil , nil , fmt .Errorf ("cannot sign extrinsic" , err )
147
+ return nil , nil , fmt .Errorf ("cannot sign extrinsic:%w " , err )
153
148
}
154
149
155
150
// Send the extrinsic
156
151
sub , err := a .API .RPC .Author .SubmitAndWatchExtrinsic (ext )
157
152
if err != nil {
158
- return nil , nil , fmt .Errorf ("cannot submit extrinsic" , err )
153
+ return nil , nil , fmt .Errorf ("cannot submit extrinsic:%w " , err )
159
154
}
160
155
161
156
defer sub .Unsubscribe ()
166
161
select {
167
162
case status := <- sub .Chan ():
168
163
if status .IsInBlock {
169
- log .Println ("📥 Submit data extrinsic included in block %v" , zap . String ( " status in block" , status .AsInBlock .Hex () ))
164
+ log .Printf ("📥 Submit data extrinsic included in block %v" , status .AsInBlock .Hex ())
170
165
}
171
166
if status .IsFinalized {
172
167
blockHash = status .AsFinalized
195
190
196
191
block , err := a .API .RPC .Chain .GetBlock (blockHash )
197
192
if err != nil {
198
- return nil , nil , fmt .Errorf ("cannot get block" , err )
193
+ return nil , nil , fmt .Errorf ("cannot get block:%w " , err )
199
194
}
200
195
201
196
var dataProofResp DataProofRPCResponse
@@ -259,10 +254,10 @@ func (a *Client) Get(ctx context.Context, ids []da.ID) ([]da.Blob, error) {
259
254
// TODO: We are dealing with single blobs for now. We will need to handle multiple blobs in the future.
260
255
ext , err := a .GetExtrinsic (ids [0 ])
261
256
if err != nil {
262
- return nil , fmt .Errorf ("cannot get extrinsic" , err )
257
+ return nil , fmt .Errorf ("cannot get extrinsic:%w " , err )
263
258
}
264
259
blobData := ext .Method .Args [2 :]
265
- log .Println ("📥 received data:%+v" , zap . Any ( "data" , blobData ) )
260
+ log .Printf ("📥 received data:%+v" , blobData )
266
261
return []da.Blob {blobData }, nil
267
262
}
268
263
@@ -329,13 +324,13 @@ func (a *Client) GetAccountNextIndex() (types.UCompact, error) {
329
324
// TODO: Add context to the request
330
325
resp , err := http .Post (a .Config .HttpApiURL , "application/json" , strings .NewReader (fmt .Sprintf ("{\" id\" :1,\" jsonrpc\" :\" 2.0\" ,\" method\" :\" system_accountNextIndex\" ,\" params\" :[\" %v\" ]}" , a .KeyringPair .Address ))) //nolint: noctx
331
326
if err != nil {
332
- return types .NewUCompactFromUInt (0 ), fmt .Errorf ("cannot post account next index request" , err )
327
+ return types .NewUCompactFromUInt (0 ), fmt .Errorf ("cannot post account next index request:%w " , err )
333
328
}
334
329
defer resp .Body .Close ()
335
330
336
331
data , err := io .ReadAll (resp .Body )
337
332
if err != nil {
338
- return types .NewUCompactFromUInt (0 ), fmt .Errorf ("cannot read body" , err )
333
+ return types .NewUCompactFromUInt (0 ), fmt .Errorf ("cannot read body:%w " , err )
339
334
}
340
335
var accountNextIndex AccountNextIndexRPCResponse
341
336
err = json .Unmarshal (data , & accountNextIndex )
@@ -365,18 +360,18 @@ type Config struct {
365
360
func (c * Config ) GetConfig (configFileName string ) error {
366
361
jsonFile , err := os .Open (configFileName )
367
362
if err != nil {
368
- return fmt .Errorf ("cannot open config file" , err )
363
+ return fmt .Errorf ("cannot open config file:%w " , err )
369
364
}
370
365
defer jsonFile .Close ()
371
366
372
367
byteValue , err := io .ReadAll (jsonFile )
373
368
if err != nil {
374
- return fmt .Errorf ("cannot read config file" , err )
369
+ return fmt .Errorf ("cannot read config file:%w " , err )
375
370
}
376
371
377
372
err = json .Unmarshal (byteValue , c )
378
373
if err != nil {
379
- return fmt .Errorf ("cannot unmarshal config file" , err )
374
+ return fmt .Errorf ("cannot unmarshal config file:%w " , err )
380
375
}
381
376
382
377
return nil
@@ -389,11 +384,11 @@ func (a *Client) GetExtrinsic(id da.ID) (types.Extrinsic, error) {
389
384
}
390
385
blockHash , err := a .API .RPC .Chain .GetBlockHash (uint64 (availID .Height ))
391
386
if err != nil {
392
- log . Fatalf ("cannot get block hash:%w" , err )
387
+ return types. Extrinsic {}, fmt . Errorf ("cannot get block hash:%w" , err )
393
388
}
394
389
block , err := a .API .RPC .Chain .GetBlock (blockHash )
395
390
if err != nil {
396
- log . Fatalf ("cannot get block:%w" , err )
391
+ return types. Extrinsic {}, fmt . Errorf ("cannot get block:%w" , err )
397
392
}
398
393
return block .Block .Extrinsics [availID .ExtIndex ], nil
399
394
}
0 commit comments