@@ -14,7 +14,8 @@ interface Subgraph {
14
14
subgraphDeploymentID : string
15
15
name : string
16
16
nameIdentifier : string
17
- metadataHash : string
17
+ versionMetadata : string
18
+ subgraphMetadata : string
18
19
}
19
20
20
21
describe ( 'GNS' , ( ) => {
@@ -40,7 +41,8 @@ describe('GNS', () => {
40
41
subgraphDeploymentID : randomHexBytes ( ) ,
41
42
name : name ,
42
43
nameIdentifier : ethers . utils . namehash ( name ) ,
43
- metadataHash : randomHexBytes ( ) ,
44
+ versionMetadata : randomHexBytes ( ) ,
45
+ subgraphMetadata : randomHexBytes ( ) ,
44
46
}
45
47
}
46
48
@@ -62,20 +64,15 @@ describe('GNS', () => {
62
64
. publishNewSubgraph (
63
65
graphAccount ,
64
66
subgraphToPublish . subgraphDeploymentID ,
65
- subgraphToPublish . nameIdentifier ,
66
- subgraphToPublish . name ,
67
- subgraphToPublish . metadataHash ,
67
+ subgraphToPublish . versionMetadata ,
68
68
)
69
69
await expect ( tx )
70
70
. emit ( gns , 'SubgraphPublished' )
71
71
. withArgs (
72
72
subgraphToPublish . graphAccount . address ,
73
73
subgraphNumber0 ,
74
74
subgraphToPublish . subgraphDeploymentID ,
75
- 0 ,
76
- subgraphToPublish . nameIdentifier ,
77
- subgraphToPublish . name ,
78
- subgraphToPublish . metadataHash ,
75
+ subgraphToPublish . versionMetadata ,
79
76
)
80
77
return tx
81
78
}
@@ -91,9 +88,7 @@ describe('GNS', () => {
91
88
graphAccount ,
92
89
subgraphNumber0 ,
93
90
subgraphToPublish . subgraphDeploymentID ,
94
- subgraphToPublish . nameIdentifier ,
95
- subgraphToPublish . name ,
96
- subgraphToPublish . metadataHash ,
91
+ subgraphToPublish . versionMetadata ,
97
92
)
98
93
99
94
const deprecateSubgraph = async (
@@ -419,7 +414,39 @@ describe('GNS', () => {
419
414
await fixture . tearDown ( )
420
415
} )
421
416
422
- describe ( 'Publishing names' , function ( ) {
417
+ describe ( 'Publishing names and versions' , function ( ) {
418
+ describe ( 'setDefaultName' , function ( ) {
419
+ it ( 'setDefaultName emits the event' , async function ( ) {
420
+ const tx = gns
421
+ . connect ( me . signer )
422
+ . setDefaultName ( me . address , 0 , subgraph1 . nameIdentifier , subgraph1 . name )
423
+ await expect ( tx )
424
+ . emit ( gns , 'SetDefaultName' )
425
+ . withArgs ( subgraph1 . graphAccount . address , 0 , subgraph1 . nameIdentifier , subgraph1 . name )
426
+ } )
427
+ it ( 'setDefaultName fails if not owner' , async function ( ) {
428
+ const tx = gns
429
+ . connect ( other . signer )
430
+ . setDefaultName ( me . address , 0 , subgraph1 . nameIdentifier , subgraph1 . name )
431
+ await expect ( tx ) . revertedWith ( 'GNS: Only graph account owner can call' )
432
+ } )
433
+ } )
434
+ describe ( 'updateSubgraphMetadata' , function ( ) {
435
+ it ( 'updateSubgraphMetadata emits the event' , async function ( ) {
436
+ const tx = gns
437
+ . connect ( me . signer )
438
+ . updateSubgraphMetadata ( me . address , 0 , subgraph1 . subgraphMetadata )
439
+ await expect ( tx )
440
+ . emit ( gns , 'SubgraphMetadataUpdated' )
441
+ . withArgs ( subgraph1 . graphAccount . address , 0 , subgraph1 . subgraphMetadata )
442
+ } )
443
+ it ( 'updateSubgraphMetadata fails if not owner' , async function ( ) {
444
+ const tx = gns
445
+ . connect ( other . signer )
446
+ . updateSubgraphMetadata ( me . address , 0 , subgraph1 . subgraphMetadata )
447
+ await expect ( tx ) . revertedWith ( 'GNS: Only graph account owner can call' )
448
+ } )
449
+ } )
423
450
describe ( 'isPublished' , function ( ) {
424
451
it ( 'should return if the subgraph is published' , async function ( ) {
425
452
expect ( await gns . isPublished ( subgraph1 . graphAccount . address , 0 ) ) . eq ( false )
@@ -455,11 +482,9 @@ describe('GNS', () => {
455
482
. publishNewSubgraph (
456
483
subgraph1 . graphAccount . address ,
457
484
ethers . constants . HashZero ,
458
- subgraph1 . nameIdentifier ,
459
- subgraph1 . name ,
460
- subgraph1 . metadataHash ,
485
+ subgraph1 . versionMetadata ,
461
486
)
462
- await expect ( tx ) . revertedWith ( 'GNS: Cannot set to 0 in publish' )
487
+ await expect ( tx ) . revertedWith ( 'GNS: Cannot set deploymentID to 0 in publish' )
463
488
} )
464
489
} )
465
490
@@ -475,18 +500,13 @@ describe('GNS', () => {
475
500
subgraph1 . graphAccount . address ,
476
501
0 ,
477
502
subgraph1 . subgraphDeploymentID ,
478
- 0 ,
479
- subgraph1 . nameIdentifier ,
480
- subgraph1 . name ,
481
- subgraph1 . metadataHash ,
503
+ subgraph1 . versionMetadata ,
482
504
)
483
505
} )
484
506
485
507
it ( 'should reject publishing a version to a numbered subgraph that does not exist' , async function ( ) {
486
- const tx = publishNewVersion ( me , me . address , 0 )
487
- await expect ( tx ) . revertedWith (
488
- 'GNS: Cant publish a version directly for a subgraph that wasnt created yet' ,
489
- )
508
+ const tx = publishNewVersion ( me , me . address , 9999 )
509
+ await expect ( tx ) . revertedWith ( 'GNS: Cannot update version if not published' )
490
510
} )
491
511
492
512
it ( 'reject if not the owner' , async function ( ) {
@@ -507,23 +527,13 @@ describe('GNS', () => {
507
527
expect ( ethers . constants . HashZero ) . eq ( deploymentID )
508
528
} )
509
529
510
- it ( 'should allow a deprecated subgraph to be republished' , async function ( ) {
530
+ it ( 'should prevent a deprecated subgraph from being republished' , async function ( ) {
511
531
await publishNewSubgraph ( me , me . address , 0 )
512
532
await deprecateSubgraph ( me , me . address , 0 )
513
533
const tx = publishNewVersion ( me , me . address , 0 )
514
-
515
- // Event being emitted indicates version has been updated
516
- await expect ( tx )
517
- . emit ( gns , 'SubgraphPublished' )
518
- . withArgs (
519
- subgraph1 . graphAccount . address ,
520
- 0 ,
521
- subgraph1 . subgraphDeploymentID ,
522
- 0 ,
523
- subgraph1 . nameIdentifier ,
524
- subgraph1 . name ,
525
- subgraph1 . metadataHash ,
526
- )
534
+ await expect ( tx ) . revertedWith (
535
+ 'Cannot update version if not published, or has been deprecated' ,
536
+ )
527
537
} )
528
538
529
539
it ( 'reject if the subgraph does not exist' , async function ( ) {
0 commit comments