From 0cbffd5be0ef7aa88b4380d80e081b0c6545f2e3 Mon Sep 17 00:00:00 2001 From: Seraya Takahashi Date: Mon, 21 Feb 2022 21:15:46 +0100 Subject: [PATCH] Emit URI event in ERC1155URIStorage --- .../token/ERC1155/extensions/ERC1155URIStorage.sol | 1 + test/token/ERC1155/extensions/ERC1155URIStorage.js | 11 +++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol b/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol index 04872e4850a..e70d7606e9e 100644 --- a/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol +++ b/contracts/token/ERC1155/extensions/ERC1155URIStorage.sol @@ -49,5 +49,6 @@ abstract contract ERC1155URIStorage is ERC1155Supply { function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual { require(exists(tokenId), "ERC1155URIStorage: URI set of nonexistent token"); _tokenURIs[tokenId] = _tokenURI; + emit URI(tokenURI(tokenId), tokenId); } } diff --git a/test/token/ERC1155/extensions/ERC1155URIStorage.js b/test/token/ERC1155/extensions/ERC1155URIStorage.js index b61b602033b..17cdaa7d9e2 100644 --- a/test/token/ERC1155/extensions/ERC1155URIStorage.js +++ b/test/token/ERC1155/extensions/ERC1155URIStorage.js @@ -1,4 +1,4 @@ -const { BN } = require('@openzeppelin/test-helpers'); +const { BN, expectEvent } = require('@openzeppelin/test-helpers'); const { expect } = require('chai'); const { artifacts } = require('hardhat'); @@ -28,11 +28,13 @@ contract(['ERC1155URIStorage'], function (accounts) { it('can request the token uri, returning the concatenated uri if a token uri was set', async function () { const tokenUri = '1234/'; - await this.token.setTokenURI(tokenId, tokenUri); + const receipt = await this.token.setTokenURI(tokenId, tokenUri); const receivedTokenUri = await this.token.tokenURI(tokenId); - expect(receivedTokenUri).to.be.equal(`${uri}${tokenUri}`); + const expectedUri = `${uri}${tokenUri}`; + expect(receivedTokenUri).to.be.equal(expectedUri); + expectEvent(receipt, 'URI', { value: expectedUri, id: tokenId }); }); }); @@ -51,11 +53,12 @@ contract(['ERC1155URIStorage'], function (accounts) { it('can request the token uri, returning the token uri if a token uri was set', async function () { const tokenUri = 'ipfs://1234/'; - await this.token.setTokenURI(tokenId, tokenUri); + const receipt = await this.token.setTokenURI(tokenId, tokenUri); const receivedTokenUri = await this.token.tokenURI(tokenId); expect(receivedTokenUri).to.be.equal(tokenUri); + expectEvent(receipt, 'URI', { value: tokenUri, id: tokenId }); }); }); });