Skip to content

Commit

Permalink
Merge pull request #30 from 0xPolygon/feat/informational
Browse files Browse the repository at this point in the history
Fix/informational
  • Loading branch information
gretzke authored Oct 4, 2023
2 parents 0c5d061 + ae25dbb commit 299c420
Show file tree
Hide file tree
Showing 8 changed files with 33 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/DefaultEmissionManager.sol
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ contract DefaultEmissionManager is Ownable2StepUpgradeable, IDefaultEmissionMana
uint256 public startTimestamp;

constructor(address migration_, address stakeManager_, address treasury_) {
if (migration_ == address(0) || stakeManager_ == address(0) || treasury_ == address(0)) revert InvalidAddress();
DEPLOYER = msg.sender;
migration = IPolygonMigration(migration_);
stakeManager = stakeManager_;
Expand Down
8 changes: 8 additions & 0 deletions src/PolygonEcosystemToken.sol
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,14 @@ contract PolygonEcosystemToken is ERC20Permit, AccessControlEnumerable, IPolygon
return super.allowance(owner, spender);
}

/// @notice Returns the implementation version
/// @dev This is to support our dev pipeline, and is present despite
/// this contract not being behind a proxy
/// @return Version string
function getVersion() external pure returns (string memory) {
return "1.0.0";
}

function _updatePermit2Allowance(bool enabled) private {
emit Permit2AllowanceUpdated(enabled);
permit2Enabled = enabled;
Expand Down
1 change: 1 addition & 0 deletions src/PolygonMigration.sol
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ contract PolygonMigration is Ownable2StepUpgradeable, IPolygonMigration {
}

constructor(address matic_) {
if (matic_ == address(0)) revert InvalidAddress();
matic = IERC20(matic_);
// so that the implementation contract cannot be initialized
_disableInitializers();
Expand Down
4 changes: 4 additions & 0 deletions src/interfaces/IDefaultEmissionManager.sol
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.21;

import {IPolygonEcosystemToken} from "./IPolygonEcosystemToken.sol";

interface IDefaultEmissionManager {
error InvalidAddress();

event TokenMint(uint256 amount, address caller);

function getVersion() external pure returns (string memory version);

function token() external view returns (IPolygonEcosystemToken polygonEcosystemToken);

function startTimestamp() external view returns (uint256 timestamp);

function mint() external;
Expand Down
2 changes: 2 additions & 0 deletions src/interfaces/IPolygonEcosystemToken.sol
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ interface IPolygonEcosystemToken is IERC20, IERC20Permit, IAccessControlEnumerab
error MaxMintExceeded(uint256 maxMint, uint256 mintRequested);

function mintPerSecondCap() external view returns (uint256 currentMintPerSecondCap);

function getVersion() external pure returns (string memory version);

function lastMint() external view returns (uint256 lastMintTimestamp);

Expand Down
4 changes: 4 additions & 0 deletions src/interfaces/IPolygonMigration.sol
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.21;

import {IERC20} from "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol";

interface IPolygonMigration {
error UnmigrationLocked();
error InvalidAddressOrAlreadySet();
Expand All @@ -12,6 +14,8 @@ interface IPolygonMigration {

function unmigrationLocked() external view returns (bool isUnmigrationLocked);

function polygon() external view returns(IERC20 polygonEcosystemToken);

function getVersion() external pure returns (string memory version);

function migrate(uint256 amount) external;
Expand Down
10 changes: 10 additions & 0 deletions test/DefaultEmissionManager.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,9 @@ contract DefaultEmissionManagerTest is Test {
function test_InvalidDeployment() external {
address _polygon = makeAddr("polygon");
address _governance = makeAddr("governance");
address _migration = makeAddr("migration");
address _treasury = makeAddr("treasury");
address _stakeManager = makeAddr("stakeManager");

address proxy = address(
new TransparentUpgradeableProxy(
Expand All @@ -102,6 +105,13 @@ contract DefaultEmissionManagerTest is Test {
DefaultEmissionManager(proxy).initialize(address(0), _governance);
vm.expectRevert(InvalidAddress.selector);
DefaultEmissionManager(proxy).initialize(address(0), address(0));

vm.expectRevert(InvalidAddress.selector);
new DefaultEmissionManager(_migration, address(0), _treasury);
vm.expectRevert(InvalidAddress.selector);
new DefaultEmissionManager(address(0), _stakeManager, _treasury);
vm.expectRevert(InvalidAddress.selector);
new DefaultEmissionManager(_migration, _stakeManager, address(0));
}

function test_ImplementationCannotBeInitialized() external {
Expand Down
3 changes: 3 additions & 0 deletions test/PolygonMigration.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,9 @@ contract PolygonMigrationTest is Test {
temp.initialize();
vm.expectRevert("Initializable: contract is already initialized");
temp.initialize();

vm.expectRevert(IPolygonMigration.InvalidAddress.selector);
new PolygonMigration(address(0));
}

function test_Migrate(address user, uint256 amount) external {
Expand Down

0 comments on commit 299c420

Please sign in to comment.