@@ -964,10 +964,10 @@ export default function Home(props) {
964
964
< div className = "resultItem" key = { resultIndex } >
965
965
< dl >
966
966
< dt > Peer Id:</ dt >
967
- < dd > { dataResult . Provider . ID } </ dd >
967
+ < dd > { dataResult . PeerId } </ dd >
968
968
969
969
< dt > MultiAddress:</ dt >
970
- < dd > { dataResult . Provider . Addrs } </ dd >
970
+ < dd > { dataResult . MultiAddress } </ dd >
971
971
972
972
{ dataResult . Protocol && (
973
973
< >
@@ -1422,58 +1422,47 @@ function onSearch(
1422
1422
const res = data . MultihashResults [ 0 ] ;
1423
1423
const provResults = res . ProviderResults ;
1424
1424
1425
- let providers = { } ;
1426
- for ( let i = 0 ; i < res . ProviderResults . length ; i ++ ) {
1427
- let provider = res . ProviderResults [ i ] ;
1428
- if ( providers [ provider . Provider . ID ] == undefined ) {
1429
- providers [ provider . Provider . ID ] = { } ;
1430
- }
1431
- providers [ provider . Provider . ID ] [ provider . ContextID ] = provider ;
1432
- }
1433
- const pids = Object . keys ( providers ) ;
1434
-
1435
1425
let toDisplay = [ ] ;
1436
1426
1437
- for ( let i = 0 ; i < pids . length ; i ++ ) {
1438
- let pd = providers [ pids [ i ] ] ;
1439
- let addrs = "" ;
1440
- let keys = { } ;
1441
- let contexts = Object . keys ( pd ) ;
1442
- for ( let j = 0 ; j < contexts . length ; j ++ ) {
1443
- let mdBytes = base64ToBytesArr ( pd [ contexts [ j ] ] . Metadata ) ;
1444
- while ( mdBytes . length > 0 ) {
1445
- let next = popProtocol ( mdBytes ) ;
1446
- let name = next [ 0 ] ;
1447
- mdBytes = next [ 1 ] ;
1427
+ // Process each ProviderResult individually
1428
+ for ( let i = 0 ; i < provResults . length ; i ++ ) {
1429
+ let providerResult = provResults [ i ] ;
1430
+ let mdBytes = base64ToBytesArr ( providerResult . Metadata ) ;
1431
+ let protocols = [ ] ;
1432
+ let deals = [ ] ;
1433
+
1434
+ // Extract protocols and deal information
1435
+ while ( mdBytes . length > 0 ) {
1436
+ let next = popProtocol ( mdBytes ) ;
1437
+ let name = next [ 0 ] ;
1438
+ mdBytes = next [ 1 ] ;
1439
+
1440
+ if ( name !== - 1 ) {
1448
1441
let ctx = toContext ( name , mdBytes ) ;
1449
- if ( keys [ name ] == undefined ) {
1450
- keys [ name ] = [ ] ;
1451
- }
1452
1442
if ( ctx [ 0 ] != "" ) {
1453
- keys [ name ] . push ( ctx [ 0 ] ) ;
1443
+ deals . push ( ctx [ 0 ] ) ;
1454
1444
}
1455
1445
mdBytes = ctx [ 1 ] ;
1456
- addrs = pd [ contexts [ j ] ] . Provider . Addrs ;
1457
- if ( name == - 1 ) {
1458
- break ;
1459
- }
1446
+ protocols . push ( name ) ;
1447
+ } else {
1448
+ break ;
1460
1449
}
1461
1450
}
1462
1451
1463
- for ( const [ index , value ] of Object . keys ( keys ) . entries ( ) ) {
1464
- let displayEntry = { ...provResults [ i ] } ;
1465
- displayEntry [ "Protocol" ] = value ;
1452
+ // Build the display entry with correct Provider.Addrs
1453
+ let displayEntry = {
1454
+ PeerId : providerResult . Provider . ID ,
1455
+ MultiAddress : providerResult . Provider . Addrs . join ( ", " ) ,
1456
+ Protocol : protocols . join ( ", " ) ,
1457
+ } ;
1466
1458
1467
- const deals = [ ] ;
1468
- for ( const [ dealIndex , dealValue ] of keys [ value ] . entries ( ) ) {
1469
- deals . push ( dealValue ) ;
1470
- }
1471
- if ( deals . length ) {
1472
- displayEntry [ "DealInfo" ] = deals ;
1473
- }
1474
- toDisplay . push ( displayEntry ) ;
1459
+ if ( deals . length > 0 ) {
1460
+ displayEntry [ "DealInfo" ] = deals ;
1475
1461
}
1462
+
1463
+ toDisplay . push ( displayEntry ) ;
1476
1464
}
1465
+
1477
1466
setDisplayData ( toDisplay ) ;
1478
1467
} )
1479
1468
. catch ( ( error ) => {
@@ -1485,17 +1474,28 @@ function popProtocol(buf) {
1485
1474
try {
1486
1475
let [ code , Vlen ] = readVarint ( buf , 0 ) ;
1487
1476
buf = buf . slice ( Vlen ) ;
1488
- if ( code == 0x900 ) {
1489
- return [ "Bitswap" , buf ] ;
1490
- } else if ( code == 0x910 || code == 4128768 ) {
1491
- return [ "Graphsync" , buf ] ;
1477
+
1478
+ // Map of protocol codes to protocol names
1479
+ const protocolMap = {
1480
+ 0x0900 : "Bitswap" , // 2304
1481
+ 0x0910 : "Graphsync" , // 2320
1482
+ 0x0920 : "HTTP" , // 2336
1483
+ } ;
1484
+
1485
+ // Convert code to hexadecimal for mapping
1486
+ const hexCode = code . toString ( 16 ) . toLowerCase ( ) ;
1487
+ const protocolName = protocolMap [ `0x${ hexCode } ` ] ;
1488
+
1489
+ if ( protocolName ) {
1490
+ return [ protocolName , buf ] ;
1492
1491
} else {
1493
1492
return [ code , buf ] ;
1494
1493
}
1495
1494
} catch ( e ) {
1496
1495
return [ - 1 , buf ] ;
1497
1496
}
1498
1497
}
1498
+
1499
1499
function toContext ( code , buf ) {
1500
1500
if ( code == "Graphsync" ) {
1501
1501
try {
0 commit comments