@@ -113,14 +113,17 @@ Transaction.prototype.toBuffer = function () {
113
113
slice . copy ( buffer , offset )
114
114
offset += slice . length
115
115
}
116
+
116
117
function writeUInt32 ( i ) {
117
118
buffer . writeUInt32LE ( i , offset )
118
119
offset += 4
119
120
}
121
+
120
122
function writeUInt64 ( i ) {
121
123
bufferutils . writeUInt64LE ( buffer , i , offset )
122
124
offset += 8
123
125
}
126
+
124
127
function writeVarInt ( i ) {
125
128
var n = bufferutils . writeVarInt ( buffer , i , offset )
126
129
offset += n
@@ -247,50 +250,47 @@ Transaction.fromBuffer = function(buffer) {
247
250
offset += n
248
251
return buffer . slice ( offset - n , offset )
249
252
}
253
+
250
254
function readUInt32 ( ) {
251
255
var i = buffer . readUInt32LE ( offset )
252
256
offset += 4
253
257
return i
254
258
}
259
+
255
260
function readUInt64 ( ) {
256
261
var i = bufferutils . readUInt64LE ( buffer , offset )
257
262
offset += 8
258
263
return i
259
264
}
265
+
260
266
function readVarInt ( ) {
261
267
var vi = bufferutils . readVarInt ( buffer , offset )
262
268
offset += vi . size
263
269
return vi . number
264
270
}
265
271
272
+ function readScript ( ) {
273
+ return Script . fromBuffer ( readSlice ( readVarInt ( ) ) )
274
+ }
275
+
266
276
var tx = new Transaction ( )
267
277
tx . version = readUInt32 ( )
268
278
269
279
var vinLen = readVarInt ( )
270
280
for ( var i = 0 ; i < vinLen ; ++ i ) {
271
- var hash = readSlice ( 32 )
272
- var vout = readUInt32 ( )
273
- var scriptLen = readVarInt ( )
274
- var script = readSlice ( scriptLen )
275
- var sequence = readUInt32 ( )
276
-
277
281
tx . ins . push ( {
278
- hash : hash ,
279
- index : vout ,
280
- script : Script . fromBuffer ( script ) ,
281
- sequence : sequence
282
+ hash : readSlice ( 32 ) ,
283
+ index : readUInt32 ( ) ,
284
+ script : readScript ( ) ,
285
+ sequence : readUInt32 ( )
282
286
} )
283
287
}
284
288
285
289
var voutLen = readVarInt ( )
286
290
for ( i = 0 ; i < voutLen ; ++ i ) {
287
- var value = readUInt64 ( )
288
- var scriptLen = readVarInt ( )
289
- var script = readSlice ( scriptLen )
290
-
291
291
tx . outs . push ( {
292
- value : value ,
293
- script : Script . fromBuffer ( script )
292
+ value : readUInt64 ( ) ,
293
+ script : readScript ( ) ,
294
294
} )
295
295
}
296
296
0 commit comments