@@ -2,12 +2,11 @@ package handlers
2
2
3
3
import (
4
4
"context"
5
- validation "github.com/go-ozzo/ozzo-validation/v4"
6
- "gitlab.com/distributed_lab/logan/v3/errors"
7
5
"math/big"
8
6
"net/http"
9
7
10
8
"github.com/ethereum/go-ethereum/accounts/abi/bind"
9
+ validation "github.com/go-ozzo/ozzo-validation/v4"
11
10
"github.com/iden3/contracts-abi/state/go/abi"
12
11
core "github.com/iden3/go-iden3-core/v2"
13
12
"github.com/iden3/go-iden3-core/v2/w3c"
@@ -16,40 +15,47 @@ import (
16
15
"gitlab.com/distributed_lab/ape"
17
16
"gitlab.com/distributed_lab/ape/problems"
18
17
"gitlab.com/distributed_lab/logan/v3"
18
+ "gitlab.com/distributed_lab/logan/v3/errors"
19
19
)
20
20
21
21
func GetGistData (w http.ResponseWriter , r * http.Request ) {
22
22
req , err := requests .NewGetGistDataRequest (r )
23
23
if err != nil {
24
+ Log (r ).WithError (err ).Error ("failed to parse get gist data request" )
24
25
ape .RenderErr (w , problems .BadRequest (err )... )
25
26
return
26
27
}
27
28
29
+ log := Log (r ).WithFields (logan.F {
30
+ "user-agent" : r .Header .Get ("User-Agent" ),
31
+ "user_did" : req .UserDID ,
32
+ "block_number" : req .BlockNumber ,
33
+ })
34
+
28
35
userDID , err := w3c .ParseDID (req .UserDID )
29
36
if err != nil {
30
- Log ( r ) .WithError (err ).Error ("failed to parse user DID" )
37
+ log .WithError (err ).Error ("failed to parse user DID" )
31
38
ape .RenderErr (w , problems .BadRequest (err )... )
32
39
return
33
40
}
34
41
35
42
userID , err := core .IDFromDID (* userDID )
36
43
if err != nil {
37
- Log ( r ) .WithError (err ).Error ("failed to parse user ID" )
44
+ log .WithError (err ).Error ("failed to parse user ID" )
38
45
ape .RenderErr (w , problems .InternalError ())
39
46
return
40
47
}
41
48
42
49
blockNum , err := EthClient (r ).BlockNumber (context .Background ())
43
50
if err != nil {
44
- Log ( r ) .WithError (err ).Error ("failed to get block number" )
51
+ log .WithError (err ).Error ("failed to get block number" )
45
52
ape .RenderErr (w , problems .InternalError ())
46
53
return
47
54
}
48
55
49
56
if req .BlockNumber > blockNum {
50
- Log (r ).WithFields (logan.F {
51
- "requested_block_number" : req .BlockNumber ,
52
- "latest_block_number" : blockNum ,
57
+ log .WithFields (logan.F {
58
+ "latest_block_number" : blockNum ,
53
59
}).Error ("Requested block number is higher than latest" )
54
60
ape .RenderErr (w , problems .BadRequest (validation.Errors {
55
61
"/block_number" : errors .New ("Requested block number is higher than latest" ),
@@ -67,7 +73,7 @@ func GetGistData(w http.ResponseWriter, r *http.Request) {
67
73
BlockNumber : new (big.Int ).SetUint64 (blockNum ),
68
74
}, userID .BigInt ())
69
75
if err != nil {
70
- Log ( r ) .WithError (err ).Error ("failed to get GIST proof" )
76
+ log .WithError (err ).Error ("failed to get GIST proof" )
71
77
ape .RenderErr (w , problems .InternalError ())
72
78
return
73
79
}
@@ -76,13 +82,13 @@ func GetGistData(w http.ResponseWriter, r *http.Request) {
76
82
BlockNumber : new (big.Int ).SetUint64 (blockNum ),
77
83
})
78
84
if err != nil {
79
- Log ( r ) .WithError (err ).Error ("failed to get GIST root" )
85
+ log .WithError (err ).Error ("failed to get GIST root" )
80
86
ape .RenderErr (w , problems .InternalError ())
81
87
return
82
88
}
83
89
84
90
if gistProof .Root .Cmp (gistRoot ) != 0 {
85
- Log ( r ) .WithFields (logan.F {
91
+ log .WithFields (logan.F {
86
92
"gist_root" : gistRoot .String (),
87
93
"gist_proof_root" : gistProof .Root .String (),
88
94
}).Warn ("gist root does not match" )
0 commit comments