@@ -291,40 +291,48 @@ export class AttestationAction extends Action {
291291 * 0. request_tx_id (TEXT)
292292 * 1. attestation_hash (BYTEA)
293293 * 2. requester (BYTEA)
294- * 3. created_height (INT8)
295- * 4. signed_height (INT8, nullable)
296- * 5. encrypt_sig (BOOLEAN)
294+ * 3. data_provider (TEXT)
295+ * 4. stream_id (TEXT)
296+ * 5. created_height (INT8)
297+ * 6. signed_height (INT8, nullable)
298+ * 7. encrypt_sig (BOOLEAN)
297299 */
298300function parseAttestationRow ( row : any , idx : number ) : AttestationMetadata {
299301 // kwil-js returns rows as objects with column names as keys
300302 // or as arrays depending on the query format
301303 let requestTxId : string ;
302304 let attestationHash : Uint8Array ;
303305 let requester : Uint8Array ;
306+ let dataProvider : string ;
307+ let streamId : string ;
304308 let createdHeight : number ;
305309 let signedHeight : number | null ;
306310 let encryptSig : boolean ;
307311
308312 // Handle both array and object formats
309313 if ( Array . isArray ( row ) ) {
310314 // Array format: [col0, col1, col2, ...]
311- if ( row . length < 6 ) {
315+ if ( row . length < 8 ) {
312316 throw new Error (
313- `Row ${ idx } : expected 6 columns, got ${ row . length } `
317+ `Row ${ idx } : expected 8 columns, got ${ row . length } `
314318 ) ;
315319 }
316320
317321 requestTxId = row [ 0 ] ;
318322 attestationHash = decodeBytea ( row [ 1 ] , idx , 'attestation_hash' ) ;
319323 requester = decodeBytea ( row [ 2 ] , idx , 'requester' ) ;
320- createdHeight = parseInt ( row [ 3 ] , 10 ) ;
321- signedHeight = row [ 4 ] !== null ? parseInt ( row [ 4 ] , 10 ) : null ;
322- encryptSig = row [ 5 ] ;
324+ dataProvider = row [ 3 ] ;
325+ streamId = row [ 4 ] ;
326+ createdHeight = parseInt ( row [ 5 ] , 10 ) ;
327+ signedHeight = row [ 6 ] !== null ? parseInt ( row [ 6 ] , 10 ) : null ;
328+ encryptSig = row [ 7 ] ;
323329 } else {
324330 // Object format: { request_tx_id: ..., attestation_hash: ..., ... }
325331 requestTxId = row . request_tx_id ;
326332 attestationHash = decodeBytea ( row . attestation_hash , idx , 'attestation_hash' ) ;
327333 requester = decodeBytea ( row . requester , idx , 'requester' ) ;
334+ dataProvider = row . data_provider ;
335+ streamId = row . stream_id ;
328336 createdHeight = parseInt ( row . created_height , 10 ) ;
329337 signedHeight = row . signed_height !== null ? parseInt ( row . signed_height , 10 ) : null ;
330338 encryptSig = row . encrypt_sig ;
@@ -334,6 +342,8 @@ function parseAttestationRow(row: any, idx: number): AttestationMetadata {
334342 requestTxId,
335343 attestationHash,
336344 requester,
345+ dataProvider,
346+ streamId,
337347 createdHeight,
338348 signedHeight,
339349 encryptSig,
@@ -412,6 +422,8 @@ if (import.meta.vitest) {
412422 'tx123' ,
413423 Buffer . from ( [ 1 , 2 , 3 ] ) . toString ( 'base64' ) ,
414424 Buffer . from ( [ 4 , 5 , 6 ] ) . toString ( 'base64' ) ,
425+ '0x4710a8d8f0d845da110086812a32de6d90d7ff5c' ,
426+ 'stai0000000000000000000000000000' ,
415427 '100' ,
416428 '200' ,
417429 true ,
@@ -422,6 +434,8 @@ if (import.meta.vitest) {
422434 expect ( metadata . requestTxId ) . toBe ( 'tx123' ) ;
423435 expect ( Array . from ( metadata . attestationHash ) ) . toEqual ( [ 1 , 2 , 3 ] ) ;
424436 expect ( Array . from ( metadata . requester ) ) . toEqual ( [ 4 , 5 , 6 ] ) ;
437+ expect ( metadata . dataProvider ) . toBe ( '0x4710a8d8f0d845da110086812a32de6d90d7ff5c' ) ;
438+ expect ( metadata . streamId ) . toBe ( 'stai0000000000000000000000000000' ) ;
425439 expect ( metadata . createdHeight ) . toBe ( 100 ) ;
426440 expect ( metadata . signedHeight ) . toBe ( 200 ) ;
427441 expect ( metadata . encryptSig ) . toBe ( true ) ;
@@ -432,6 +446,8 @@ if (import.meta.vitest) {
432446 request_tx_id : 'tx456' ,
433447 attestation_hash : Buffer . from ( [ 7 , 8 , 9 ] ) . toString ( 'base64' ) ,
434448 requester : Buffer . from ( [ 10 , 11 , 12 ] ) . toString ( 'base64' ) ,
449+ data_provider : '0x1234567890123456789012345678901234567890' ,
450+ stream_id : 'stbx0000000000000000000000000000' ,
435451 created_height : '300' ,
436452 signed_height : null ,
437453 encrypt_sig : false ,
@@ -442,6 +458,8 @@ if (import.meta.vitest) {
442458 expect ( metadata . requestTxId ) . toBe ( 'tx456' ) ;
443459 expect ( Array . from ( metadata . attestationHash ) ) . toEqual ( [ 7 , 8 , 9 ] ) ;
444460 expect ( Array . from ( metadata . requester ) ) . toEqual ( [ 10 , 11 , 12 ] ) ;
461+ expect ( metadata . dataProvider ) . toBe ( '0x1234567890123456789012345678901234567890' ) ;
462+ expect ( metadata . streamId ) . toBe ( 'stbx0000000000000000000000000000' ) ;
445463 expect ( metadata . createdHeight ) . toBe ( 300 ) ;
446464 expect ( metadata . signedHeight ) . toBe ( null ) ;
447465 expect ( metadata . encryptSig ) . toBe ( false ) ;
0 commit comments