Skip to content

Commit 0ba7d91

Browse files
committed
feat: add publishMetadataURI
1 parent 7e472b0 commit 0ba7d91

File tree

3 files changed

+26
-0
lines changed

3 files changed

+26
-0
lines changed

src/contracts/core/ReleaseManager.sol

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,14 @@ contract ReleaseManager is Initializable, ReleaseManagerStorage, PermissionContr
4949
emit ReleasePublished(operatorSet, releaseId, release);
5050
}
5151

52+
/// @inheritdoc IReleaseManager
53+
function publishMetadataURI(
54+
OperatorSet calldata operatorSet,
55+
string calldata metadataURI
56+
) external checkCanCall(operatorSet.avs) {
57+
emit MetadataURIPublished(operatorSet, metadataURI);
58+
}
59+
5260
/**
5361
*
5462
* VIEW FUNCTIONS

src/contracts/interfaces/IReleaseManager.sol

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ interface IReleaseManagerEvents is IReleaseManagerTypes {
3232
/// @param releaseId The id of the release that was published.
3333
/// @param release The release that was published.
3434
event ReleasePublished(OperatorSet indexed operatorSet, uint256 indexed releaseId, Release release);
35+
36+
/// @notice Emitted when a metadata URI is published.
37+
/// @param operatorSet The operator set this metadata URI is for.
38+
/// @param metadataURI The metadata URI that was published.
39+
event MetadataURIPublished(OperatorSet indexed operatorSet, string metadataURI);
3540
}
3641

3742
interface IReleaseManager is IReleaseManagerErrors, IReleaseManagerEvents {
@@ -50,6 +55,11 @@ interface IReleaseManager is IReleaseManagerErrors, IReleaseManagerEvents {
5055
Release calldata release
5156
) external returns (uint256 releaseId);
5257

58+
/// @notice Publishes a metadata URI for an operator set.
59+
/// @param operatorSet The operator set this metadata URI is for.
60+
/// @param metadataURI The metadata URI that was published.
61+
function publishMetadataURI(OperatorSet calldata operatorSet, string calldata metadataURI) external;
62+
5363
/**
5464
*
5565
* VIEW FUNCTIONS

src/test/unit/ReleaseManagerUnit.t.sol

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,3 +474,11 @@ contract ReleaseManagerUnitTests_isValidRelease is ReleaseManagerUnitTests {
474474
assertEq(isLatest, true, "second release should be the latest");
475475
}
476476
}
477+
478+
contract ReleaseManagerUnitTests_publishMetadataURI is ReleaseManagerUnitTests {
479+
function test_revert_publishMetadataURI_Correctness() public {
480+
cheats.expectEmit(true, true, true, true, address(releaseManager));
481+
emit MetadataURIPublished(defaultOperatorSet, "https://example.com/metadata");
482+
releaseManager.publishMetadataURI(defaultOperatorSet, "https://example.com/metadata");
483+
}
484+
}

0 commit comments

Comments
 (0)