@@ -46,14 +46,17 @@ module.exports = (send) => {
46
46
return callback ( err )
47
47
}
48
48
49
- const node = new DAGNode ( result . Data , result . Links . map (
50
- ( l ) => {
51
- return new DAGLink ( l . Name , l . Size , new Buffer ( bs58 . decode ( l . Hash ) ) )
52
- } ) )
53
-
54
- cache . set ( multihash , node )
49
+ const links = result . Links . map ( ( l ) => {
50
+ return new DAGLink ( l . Name , l . Size , new Buffer ( bs58 . decode ( l . Hash ) ) )
51
+ } )
55
52
56
- callback ( null , node )
53
+ DAGNode . create ( result . Data , links , ( err , node ) => {
54
+ if ( err ) {
55
+ return callback ( err )
56
+ }
57
+ cache . set ( multihash , node )
58
+ callback ( null , node )
59
+ } )
57
60
} )
58
61
} ) ,
59
62
@@ -73,12 +76,19 @@ module.exports = (send) => {
73
76
74
77
if ( Buffer . isBuffer ( obj ) ) {
75
78
if ( ! options . enc ) {
76
- tmpObj = { Data : obj . toString ( ) , Links : [ ] }
79
+ tmpObj = {
80
+ Data : obj . toString ( ) ,
81
+ Links : [ ]
82
+ }
77
83
}
78
84
} else if ( obj . multihash ) {
79
85
tmpObj = {
80
86
Data : obj . data . toString ( ) ,
81
- Links : obj . links . map ( ( l ) => { return l . toJSON ( ) } )
87
+ Links : obj . links . map ( ( l ) => {
88
+ const link = l . toJSON ( )
89
+ link . hash = link . multihash
90
+ return link
91
+ } )
82
92
}
83
93
} else if ( typeof obj === 'object' ) {
84
94
tmpObj . Data = obj . Data . toString ( )
@@ -125,23 +135,26 @@ module.exports = (send) => {
125
135
} )
126
136
return
127
137
} else {
128
- node = new DAGNode ( obj . Data , obj . Links )
129
- }
130
- next ( )
131
-
132
- function next ( ) {
133
- node . toJSON ( ( err , nodeJSON ) => {
138
+ DAGNode . create ( new Buffer ( obj . Data ) , obj . Links , ( err , _node ) => {
134
139
if ( err ) {
135
140
return callback ( err )
136
141
}
137
- if ( nodeJSON . Hash !== result . Hash ) {
138
- return callback ( new Error ( 'Stored object was different from constructed object' ) )
139
- }
142
+ node = _node
143
+ next ( )
144
+ } )
145
+ return
146
+ }
147
+ next ( )
140
148
141
- cache . set ( result . Hash , node )
149
+ function next ( ) {
150
+ const nodeJSON = node . toJSON ( )
151
+ if ( nodeJSON . multihash !== result . Hash ) {
152
+ const err = new Error ( 'multihashes do not match' )
153
+ return callback ( err )
154
+ }
142
155
143
- callback ( null , node )
144
- } )
156
+ cache . set ( result . Hash , node )
157
+ callback ( null , node )
145
158
}
146
159
} )
147
160
} ) ,
@@ -248,14 +261,15 @@ module.exports = (send) => {
248
261
return callback ( err )
249
262
}
250
263
251
- const node = new DAGNode ( )
252
- node . toJSON ( ( err , nodeJSON ) => {
264
+ DAGNode . create ( new Buffer ( 0 ) , ( err , node ) => {
253
265
if ( err ) {
254
266
return callback ( err )
255
267
}
256
268
257
- if ( nodeJSON . Hash !== result . Hash ) {
258
- return callback ( new Error ( 'Stored object was different from constructed object' ) )
269
+ if ( node . toJSON ( ) . multihash !== result . Hash ) {
270
+ console . log ( node . toJSON ( ) )
271
+ console . log ( result )
272
+ return callback ( new Error ( 'multihashes do not match' ) )
259
273
}
260
274
261
275
callback ( null , node )
@@ -280,7 +294,11 @@ module.exports = (send) => {
280
294
281
295
send ( {
282
296
path : 'object/patch/add-link' ,
283
- args : [ multihash , dLink . name , bs58 . encode ( dLink . hash ) . toString ( ) ]
297
+ args : [
298
+ multihash ,
299
+ dLink . name ,
300
+ bs58 . encode ( dLink . multihash ) . toString ( )
301
+ ]
284
302
} , ( err , result ) => {
285
303
if ( err ) {
286
304
return callback ( err )
@@ -305,7 +323,10 @@ module.exports = (send) => {
305
323
306
324
send ( {
307
325
path : 'object/patch/rm-link' ,
308
- args : [ multihash , dLink . name ]
326
+ args : [
327
+ multihash ,
328
+ dLink . name
329
+ ]
309
330
} , ( err , result ) => {
310
331
if ( err ) {
311
332
return callback ( err )
0 commit comments