misc: PermissionlessCreator refactored to be ImmutableOwnable

This commit is contained in:
vicnaum
2024-02-06 21:28:32 +01:00
parent f8e5c8dc12
commit bfd8159753
2 changed files with 19 additions and 18 deletions

View File

@@ -4,20 +4,19 @@ pragma solidity ^0.8.15;
import {ILensHub} from 'contracts/interfaces/ILensHub.sol';
import {Types} from 'contracts/libraries/constants/Types.sol';
import {Ownable} from '@openzeppelin/contracts/access/Ownable.sol';
import {ILensHandles} from 'contracts/interfaces/ILensHandles.sol';
import {ITokenHandleRegistry} from 'contracts/interfaces/ITokenHandleRegistry.sol';
import {ImmutableOwnable} from 'contracts/misc/ImmutableOwnable.sol';
/**
* @title PermissonlessCreator
* @author Lens Protocol
* @notice This is an ownable public proxy contract which is open for all.
*/
contract PermissionlessCreator is Ownable {
contract PermissionlessCreator is ImmutableOwnable {
ILensHandles public immutable LENS_HANDLES;
ITokenHandleRegistry public immutable TOKEN_HANDLE_REGISTRY;
address immutable LENS_HUB;
uint128 private _profileCreationCost = 5 ether; // TODO: GAS: Make it constant, remove setter and set through upgrade?
uint128 private _handleCreationCost = 5 ether; // TODO: GAS: Make it constant, remove setter and set through upgrade?
@@ -53,14 +52,14 @@ contract PermissionlessCreator is Ownable {
event ProfileCreatedUsingCredits(uint256 indexed profileId, address indexed creator);
event HandleCreatedUsingCredits(uint256 indexed handleId, string indexed handle, address indexed creator);
constructor(address owner, address hub, address lensHandles, address tokenHandleRegistry) {
_transferOwnership(owner);
LENS_HUB = hub;
constructor(
address owner,
address lensHub,
address lensHandles,
address tokenHandleRegistry
) ImmutableOwnable(owner, lensHub) {
LENS_HANDLES = ILensHandles(lensHandles);
TOKEN_HANDLE_REGISTRY = ITokenHandleRegistry(tokenHandleRegistry);
emit ProfileCreationPriceChanged(_profileCreationCost);
emit HandleCreationPriceChanged(_handleCreationCost);
emit HandleLengthMinChanged(_handleLengthMin);
}
/////////////////////////// Permissionless payable creation functions //////////////////////////////////////////////
@@ -263,7 +262,7 @@ contract PermissionlessCreator is Ownable {
// Owner functions
function withdrawFunds() external onlyOwner {
payable(owner()).transfer(address(this).balance);
payable(OWNER).transfer(address(this).balance);
}
function addCreditProvider(address creditProvider) external onlyOwner {

View File

@@ -6,6 +6,8 @@ import {PermissionlessCreator} from 'contracts/misc/PermissionlessCreator.sol';
import {Types} from 'contracts/libraries/constants/Types.sol';
abstract contract PermissionlessCreatorTestBase is BaseTest {
error OnlyOwner();
using stdJson for string;
PermissionlessCreator permissionlessCreator;
@@ -19,7 +21,7 @@ abstract contract PermissionlessCreatorTestBase is BaseTest {
permissionlessCreator = PermissionlessCreator(
json.readAddress(string(abi.encodePacked('.', forkEnv, '.PermissionlessCreator')))
);
permissionlessCreatorOwner = permissionlessCreator.owner();
permissionlessCreatorOwner = permissionlessCreator.OWNER();
} else {
console.log('PermissionlessCreator key does not exist');
if (forkVersion == 1) {
@@ -797,7 +799,7 @@ contract PermissionlessCreatorTest_Credits is PermissionlessCreatorTestBase {
vm.assume(notOwner != permissionlessCreatorOwner);
vm.assume(notOwner != address(0));
vm.expectRevert('Ownable: caller is not the owner');
vm.expectRevert(OnlyOwner.selector);
vm.prank(notOwner);
permissionlessCreator.withdrawFunds();
}
@@ -807,7 +809,7 @@ contract PermissionlessCreatorTest_Credits is PermissionlessCreatorTestBase {
vm.assume(notOwner != address(0));
vm.assume(newCreditProvider != address(0));
vm.expectRevert('Ownable: caller is not the owner');
vm.expectRevert(OnlyOwner.selector);
vm.prank(notOwner);
permissionlessCreator.addCreditProvider(newCreditProvider);
}
@@ -820,7 +822,7 @@ contract PermissionlessCreatorTest_Credits is PermissionlessCreatorTestBase {
vm.prank(permissionlessCreatorOwner);
permissionlessCreator.addCreditProvider(existingCreditProvider);
vm.expectRevert('Ownable: caller is not the owner');
vm.expectRevert(OnlyOwner.selector);
vm.prank(notOwner);
permissionlessCreator.removeCreditProvider(existingCreditProvider);
@@ -831,7 +833,7 @@ contract PermissionlessCreatorTest_Credits is PermissionlessCreatorTestBase {
vm.assume(notOwner != permissionlessCreatorOwner);
vm.assume(notOwner != address(0));
vm.expectRevert('Ownable: caller is not the owner');
vm.expectRevert(OnlyOwner.selector);
vm.prank(notOwner);
permissionlessCreator.setProfileCreationPrice(newPrice);
}
@@ -840,7 +842,7 @@ contract PermissionlessCreatorTest_Credits is PermissionlessCreatorTestBase {
vm.assume(notOwner != permissionlessCreatorOwner);
vm.assume(notOwner != address(0));
vm.expectRevert('Ownable: caller is not the owner');
vm.expectRevert(OnlyOwner.selector);
vm.prank(notOwner);
permissionlessCreator.setHandleCreationPrice(newPrice);
}
@@ -849,7 +851,7 @@ contract PermissionlessCreatorTest_Credits is PermissionlessCreatorTestBase {
vm.assume(notOwner != permissionlessCreatorOwner);
vm.assume(notOwner != address(0));
vm.expectRevert('Ownable: caller is not the owner');
vm.expectRevert(OnlyOwner.selector);
vm.prank(notOwner);
permissionlessCreator.setHandleLengthMin(newMinLength);
}
@@ -859,7 +861,7 @@ contract PermissionlessCreatorTest_Credits is PermissionlessCreatorTestBase {
vm.assume(notOwner != address(0));
vm.assume(targetAddress != address(0));
vm.expectRevert('Ownable: caller is not the owner');
vm.expectRevert(OnlyOwner.selector);
vm.prank(notOwner);
permissionlessCreator.setTrustRevoked(targetAddress, newStatus);
}