From 999f3b654bcd51361642edd25cc5230f8104668e Mon Sep 17 00:00:00 2001 From: Yash Goyal Date: Sat, 27 May 2023 12:46:11 +0530 Subject: [PATCH 1/2] added arbitratorAdded and arbitratorRemoved events --- contracts/TalentLayerPlatformID.sol | 16 ++++++++++++++++ .../interfaces/ITalentLayerPlatformID.sol | 4 ++++ test/batch/disputeResolution.ts | 8 +++++++- test/batch/fullWorkflow.ts | 18 ++++++++++++++---- 4 files changed, 41 insertions(+), 5 deletions(-) diff --git a/contracts/TalentLayerPlatformID.sol b/contracts/TalentLayerPlatformID.sol index 710b90f5..cf8eab42 100644 --- a/contracts/TalentLayerPlatformID.sol +++ b/contracts/TalentLayerPlatformID.sol @@ -151,6 +151,7 @@ contract TalentLayerPlatformID is ERC721Upgradeable, AccessControlUpgradeable, U // Increment counter to start platform ids at index 1 nextPlatformId.increment(); mintStatus = MintStatus.ONLY_WHITELIST; + emit ArbitratorAdded(address(0), false); } // =========================== View functions ============================== @@ -419,6 +420,7 @@ contract TalentLayerPlatformID is ERC721Upgradeable, AccessControlUpgradeable, U function addArbitrator(address _arbitrator, bool _isInternal) public onlyRole(DEFAULT_ADMIN_ROLE) { validArbitrators[address(_arbitrator)] = true; internalArbitrators[address(_arbitrator)] = _isInternal; + emit ArbitratorAdded(_arbitrator, _isInternal); } /** @@ -429,6 +431,7 @@ contract TalentLayerPlatformID is ERC721Upgradeable, AccessControlUpgradeable, U function removeArbitrator(address _arbitrator) public onlyRole(DEFAULT_ADMIN_ROLE) { validArbitrators[address(_arbitrator)] = false; internalArbitrators[address(_arbitrator)] = false; + emit ArbitratorRemoved(_arbitrator); } /** @@ -638,6 +641,19 @@ contract TalentLayerPlatformID is ERC721Upgradeable, AccessControlUpgradeable, U */ event OriginValidatedProposalFeeRateUpdated(uint256 platformId, uint16 originValidatedProposalFeeRate); + /** + * @notice Emit after the arbitrator is added + * @param arbitrator The address of the new arbitrator + * @param isInternal Boolean denoting if the arbitrator is internal (is part of TalentLayer) or not + */ + event ArbitratorAdded(address arbitrator, bool isInternal); + + /** + * @notice Emit after the arbitrator is removed + * @param arbitrator The address of the arbitrator + */ + event ArbitratorRemoved(address arbitrator); + /** * @notice Emit after the arbitrator is updated for a platform * @param platformId The Platform Id diff --git a/contracts/interfaces/ITalentLayerPlatformID.sol b/contracts/interfaces/ITalentLayerPlatformID.sol index 03ed73bb..8423fe40 100644 --- a/contracts/interfaces/ITalentLayerPlatformID.sol +++ b/contracts/interfaces/ITalentLayerPlatformID.sol @@ -76,4 +76,8 @@ interface ITalentLayerPlatformID is IERC721Upgradeable { event Mint(address indexed _platformOwnerAddress, uint256 _tokenId, string _platformName); event CidUpdated(uint256 indexed _tokenId, string _newCid); + + event ArbitratorAdded(address arbitrator, bool isInternal); + + event ArbitratorRemoved(address arbitrator); } diff --git a/test/batch/disputeResolution.ts b/test/batch/disputeResolution.ts index bb96e865..e468aacb 100644 --- a/test/batch/disputeResolution.ts +++ b/test/batch/disputeResolution.ts @@ -73,7 +73,13 @@ async function deployAndSetup( await talentLayerPlatformID.connect(deployer).mintForAddress(platformName, carol.address) // Add arbitrator to platform available arbitrators - await talentLayerPlatformID.connect(deployer).addArbitrator(talentLayerArbitrator.address, true) + expect( + await talentLayerPlatformID + .connect(deployer) + .addArbitrator(talentLayerArbitrator.address, true), + ) + .to.emit(talentLayerPlatformID, 'ArbitratorAdded') + .withArgs(talentLayerArbitrator.address, true) // Update platform arbitrator, and fee timeout await talentLayerPlatformID diff --git a/test/batch/fullWorkflow.ts b/test/batch/fullWorkflow.ts index 5469708c..5942aed7 100644 --- a/test/batch/fullWorkflow.ts +++ b/test/batch/fullWorkflow.ts @@ -377,9 +377,13 @@ describe('TalentLayer protocol global testing', function () { }) it('The deployer can add a new available arbitrator', async function () { - await talentLayerPlatformID - .connect(deployer) - .addArbitrator(talentLayerArbitrator.address, true) + expect( + await talentLayerPlatformID + .connect(deployer) + .addArbitrator(talentLayerArbitrator.address, true), + ) + .to.emit(talentLayerPlatformID, 'ArbitratorAdded') + .withArgs(talentLayerArbitrator.address, true) const isValid = await talentLayerPlatformID.validArbitrators(talentLayerArbitrator.address) expect(isValid).to.be.true @@ -441,7 +445,13 @@ describe('TalentLayer protocol global testing', function () { }) it('The deployer can remove an available arbitrator', async function () { - await talentLayerPlatformID.connect(deployer).removeArbitrator(talentLayerArbitrator.address) + expect( + await talentLayerPlatformID + .connect(deployer) + .removeArbitrator(talentLayerArbitrator.address), + ) + .to.emit(talentLayerPlatformID, 'ArbitratorRemoved') + .withArgs(talentLayerArbitrator.address) const isValid = await talentLayerPlatformID.validArbitrators(talentLayerArbitrator.address) expect(isValid).to.be.false From 2326bbf1000687be8bc8f42f37822ddaa094dd94 Mon Sep 17 00:00:00 2001 From: Yash Goyal Date: Tue, 24 Oct 2023 11:06:41 +0200 Subject: [PATCH 2/2] Update TalentLayerPlatformID.sol --- contracts/TalentLayerPlatformID.sol | 1 - 1 file changed, 1 deletion(-) diff --git a/contracts/TalentLayerPlatformID.sol b/contracts/TalentLayerPlatformID.sol index cf8eab42..6a72ebea 100644 --- a/contracts/TalentLayerPlatformID.sol +++ b/contracts/TalentLayerPlatformID.sol @@ -151,7 +151,6 @@ contract TalentLayerPlatformID is ERC721Upgradeable, AccessControlUpgradeable, U // Increment counter to start platform ids at index 1 nextPlatformId.increment(); mintStatus = MintStatus.ONLY_WHITELIST; - emit ArbitratorAdded(address(0), false); } // =========================== View functions ==============================