1
- let currentBlock ;
2
1
let action ;
3
2
let search ;
4
3
@@ -9,31 +8,32 @@ let treeData = {
9
8
let errorModal ,
10
9
input ;
11
10
12
- window . onload = function ( ) {
11
+ // Initialization of Vuew.js components
12
+ window . onload = function ( ) {
13
13
14
14
// define the tree-item component
15
15
Vue . component ( "tree-item" , {
16
16
template : "#item-template" ,
17
17
props : {
18
18
item : Object
19
19
} ,
20
- data : function ( ) {
20
+ data : function ( ) {
21
21
return {
22
22
isOpen : true
23
23
} ;
24
24
} ,
25
25
computed : {
26
- isFolder : function ( ) {
26
+ isFolder : function ( ) {
27
27
return this . item . children && this . item . children . length ;
28
28
}
29
29
} ,
30
30
methods : {
31
- toggle : function ( ) {
31
+ toggle : function ( ) {
32
32
if ( this . isFolder ) {
33
33
this . isOpen = ! this . isOpen ;
34
34
}
35
35
} ,
36
- makeFolder : function ( ) {
36
+ makeFolder : function ( ) {
37
37
if ( ! this . isFolder ) {
38
38
this . $emit ( "make-folder" , this . item ) ;
39
39
this . isOpen = true ;
@@ -49,16 +49,16 @@ window.onload = function() {
49
49
treeData : treeData
50
50
} ,
51
51
methods : {
52
- makeFolder : function ( item ) {
52
+ makeFolder : function ( item ) {
53
53
let folder = Vue . set ( item , "children" , [ ] ) ;
54
54
return folder
55
55
} ,
56
- addItem : function ( item , name ) {
56
+ addItem : function ( item , name ) {
57
57
item . children . push ( {
58
58
name : name
59
59
} ) ;
60
60
61
- // возвращает внесённый элемент
61
+ // returns the inserted item
62
62
return item
63
63
}
64
64
}
@@ -67,7 +67,7 @@ window.onload = function() {
67
67
let button = new Vue ( {
68
68
el : '#button' ,
69
69
methods : {
70
- getAns : async function ( ) {
70
+ getAns : async function ( ) {
71
71
72
72
action = checkbox . block ;
73
73
search = input . message ;
@@ -95,9 +95,6 @@ window.onload = function() {
95
95
case "Tx ID" :
96
96
input . placeholder = 'af589062d2e699c9b0ba36e831609876f0ebae99'
97
97
break ;
98
- case "WriteSet key" :
99
- input . placeholder = 'payload key name'
100
- break ;
101
98
default :
102
99
input . placeholder = '1'
103
100
}
@@ -130,18 +127,12 @@ window.onload = function() {
130
127
} ;
131
128
132
129
function GetNewBlock ( param ) {
133
- let min = 200000000 ;
134
- let max = - 200000000 ;
135
-
136
- for ( let i = 0 ; i < currentBlock . data . msg . length ; i ++ ) {
137
- if ( currentBlock . data . msg [ i ] . blocknum > max ) max = currentBlock . data . msg [ i ] . blocknum ;
138
- if ( currentBlock . data . msg [ i ] . blocknum < min ) min = currentBlock . data . msg [ i ] . blocknum
139
- }
130
+ var newBlockNum ;
140
131
141
- let newBlockNum ;
132
+ if ( param == 'left' ) newBlockNum = parseInt ( input . message ) - 1 ;
133
+ if ( param == 'right' ) newBlockNum = parseInt ( input . message ) + 1 ;
142
134
143
- if ( param == 'left' ) newBlockNum = min - 1 ;
144
- if ( param == 'right' ) newBlockNum = max + 1 ;
135
+ if ( newBlockNum < 0 ) newBlockNum = 0
145
136
146
137
action = 'Block number' ;
147
138
search = newBlockNum ;
@@ -153,54 +144,114 @@ function GetNewBlock(param) {
153
144
154
145
async function GetBlockAndMakeTree ( ) {
155
146
147
+ if ( parseInt ( search ) < 0 ) {
148
+ input . message = 0
149
+ search = 0
150
+ }
151
+
156
152
treeData . children = [ ] ;
157
153
154
+ var err = false ;
155
+
158
156
try {
159
157
if ( action == "Block number" ) {
160
- var block = await axios . get ( `http://localhost:5252/byblocknum/${ search } ` ) ;
158
+ var ans = await axios . get ( `http://localhost:5252/byblocknum/${ search } ` ) ;
161
159
} else if ( action == "Tx ID" ) {
162
- var block = await axios . get ( `http://localhost:5252/bytxid/${ search } ` ) ;
163
- } else if ( action == "WriteSet key" ) {
164
- var block = await axios . get ( `http://localhost:5252/bykey/${ search } ` ) ;
160
+ var ans = await axios . get ( `http://localhost:5252/bytxid/${ search } ` ) ;
165
161
}
166
162
} catch ( e ) {
167
163
errorModal . showModal = true ;
168
164
errorModal . httpCode = e ;
169
165
errorModal . error = e . response . data . error ;
166
+ err = true ;
167
+ }
168
+
169
+ if ( err ) {
170
170
return
171
171
}
172
172
173
- currentBlock = block ;
173
+ block = ans . data . msg ;
174
174
175
- block = block . data . msg ;
175
+ console . log ( block )
176
176
177
- for ( let i = 0 ; i < block . length ; i ++ ) {
178
- treeData . children . push ( { name : "Block " + block [ i ] . blocknum , children : [ ] } ) ;
179
- let folder = treeData . children [ i ] . children ;
180
- folder . push ( { name : "channelid: " + block [ i ] . channelid } ) ;
181
- folder . push ( { name : "blockhash: " + block [ i ] . blockhash } ) ;
182
- folder . push ( { name : "previoushash: " + block [ i ] . previoushash } ) ;
183
- folder . push ( { name : "blocknum: " + block [ i ] . blocknum } ) ;
177
+ // parsing json into a tree
178
+ treeData . children . push ( { name : "Block " + block . blocknum , children : [ ] } ) ;
179
+ let folder = treeData . children [ 0 ] . children ;
180
+ folder . push ( { name : "channelid: " + block . channelid } ) ;
181
+ folder . push ( { name : "blockhash: " + block . blockhash } ) ;
182
+ folder . push ( { name : "previoushash: " + block . previoushash } ) ;
183
+ folder . push ( { name : "blocknum: " + block . blocknum } ) ;
184
184
185
- folder . push ( { name : "txs" , children : [ ] } ) ;
186
- folder = folder [ 4 ] . children ;
185
+ folder . push ( { name : "txs" , children : [ ] } ) ;
186
+ folder = folder [ 4 ] . children ;
187
187
188
- for ( let j = 0 ; j < block [ i ] . txs . length ; j ++ ) {
189
- folder . push ( { name : j , children : [ ] } ) ;
190
- let element = folder [ j ] . children ;
191
- element . push ( { name : "txid: " + block [ i ] . txs [ j ] . txid } ) ;
192
- element . push ( { name : "validationcode: " + block [ i ] . txs [ j ] . validationcode } ) ;
193
- element . push ( { name : "time: " + block [ i ] . txs [ j ] . time } ) ;
188
+ for ( let j = 0 ; j < block . txs . length ; j ++ ) {
189
+ folder . push ( { name : j , children : [ ] } ) ;
190
+ let element = folder [ j ] . children ;
191
+ element . push ( { name : "txid: " + block . txs [ j ] . txid } ) ;
192
+ element . push ( { name : "validationcode: " + block . txs [ j ] . validationcode } ) ;
193
+ element . push ( { name : "time: " + block . txs [ j ] . time } ) ;
194
194
195
- element . push ( { name : "KV" , children : [ ] } ) ;
196
- for ( let x = 0 ; x < block [ i ] . txs [ j ] . KV . length ; x ++ ) {
195
+ element . push ( { name : "KV" , children : [ ] } ) ;
197
196
198
- let kvFolder = element [ 3 ] . children ;
199
- kvFolder . push ( { name : "key: " + block [ i ] . txs [ j ] . KV [ x ] . key , children : [ ] } ) ;
200
- kvFolder = kvFolder [ x ] . children ;
197
+ var isConfig = false ;
201
198
202
- kvFolder . push ( { name : "value: " + block [ i ] . txs [ j ] . KV [ x ] . value } ) ;
199
+ for ( let x = 0 ; x < block . txs [ j ] . KV . length ; x ++ ) {
200
+ var value = window . atob ( block . txs [ j ] . KV [ x ] . value )
201
+ if ( block . txs [ j ] . KV [ x ] . key == "Type" && value == "Config" ) {
202
+ isConfig = true ;
203
+ break ;
203
204
}
204
205
}
206
+
207
+ for ( let x = 0 ; x < block . txs [ j ] . KV . length ; x ++ ) {
208
+ let kvFolder = element [ 3 ] . children ;
209
+ kvFolder . push ( { name : "key: " + block . txs [ j ] . KV [ x ] . key , children : [ ] } ) ;
210
+ kvFolder = kvFolder [ x ] . children ;
211
+
212
+ var value = window . atob ( block . txs [ j ] . KV [ x ] . value )
213
+
214
+ if ( isConfig ) {
215
+ var key = block . txs [ j ] . KV [ x ] . key
216
+ if ( key == "Groups" || key == "Values" || key == "Policies" ) {
217
+ value = JSON . parse ( value ) ;
218
+ GoDeep ( value )
219
+ value = JSON . stringify ( value )
220
+ }
221
+ }
222
+
223
+ kvFolder . push ( { name : "value: " + value } ) ;
224
+ }
205
225
}
226
+ }
227
+
228
+ function HasNesting ( jsonData ) {
229
+ if ( typeof jsonData == "object" ) {
230
+ return true
231
+ }
232
+
233
+ return false
234
+ }
235
+
236
+ function GoDeep ( jsonData ) {
237
+ Object . keys ( jsonData ) . forEach ( function ( key ) {
238
+ var value = jsonData [ key ] ;
239
+
240
+ if ( HasNesting ( value ) ) {
241
+ GoDeep ( value )
242
+ return
243
+ }
244
+
245
+ if ( key !== "value" ) {
246
+ return
247
+ }
248
+
249
+ try {
250
+ var dec = window . atob ( value )
251
+ jsonData [ key ] = dec
252
+ } catch ( e ) {
253
+ // do nothing
254
+ }
255
+
256
+ } ) ;
206
257
}
0 commit comments