Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
0b7358f2
Unverified
Commit
0b7358f2
authored
Dec 12, 2022
by
mergify[bot]
Committed by
GitHub
Dec 12, 2022
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #4403 from ethereum-optimism/sc/ctb-mint-manager-tests
test(ctb): MintManager tests
parents
82a5614a
5d9c5670
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
129 additions
and
0 deletions
+129
-0
.gas-snapshot
packages/contracts-bedrock/.gas-snapshot
+9
-0
MintManager.t.sol
packages/contracts-bedrock/contracts/test/MintManager.t.sol
+120
-0
No files found.
packages/contracts-bedrock/.gas-snapshot
View file @
0b7358f2
...
@@ -164,6 +164,15 @@ MerkleTrie_Test:test_get_validProof9_succeeds() (gas: 50593)
...
@@ -164,6 +164,15 @@ MerkleTrie_Test:test_get_validProof9_succeeds() (gas: 50593)
MerkleTrie_Test:test_get_wrongKeyProof_reverts() (gas: 53848)
MerkleTrie_Test:test_get_wrongKeyProof_reverts() (gas: 53848)
MerkleTrie_Test:test_get_zeroBranchValueLength_reverts() (gas: 43270)
MerkleTrie_Test:test_get_zeroBranchValueLength_reverts() (gas: 43270)
MerkleTrie_Test:test_get_zeroLengthKey_reverts() (gas: 3632)
MerkleTrie_Test:test_get_zeroLengthKey_reverts() (gas: 3632)
MintManager_Test:test_constructor_succeeds() (gas: 10535)
MintManager_Test:test_mint_afterPeriodElapsed_succeeds() (gas: 148117)
MintManager_Test:test_mint_beforePeriodElapsed_reverts() (gas: 140455)
MintManager_Test:test_mint_fromNotOwner_reverts() (gas: 10987)
MintManager_Test:test_mint_fromOwner_succeeds() (gas: 137241)
MintManager_Test:test_mint_moreThanCap_reverts() (gas: 142523)
MintManager_Test:test_upgrade_fromNotOwner_reverts() (gas: 10974)
MintManager_Test:test_upgrade_fromOwner_succeeds() (gas: 23463)
MintManager_Test:test_upgrade_toZeroAddress_reverts() (gas: 11003)
OptimismMintableERC20_Test:test_bridge_succeeds() (gas: 7643)
OptimismMintableERC20_Test:test_bridge_succeeds() (gas: 7643)
OptimismMintableERC20_Test:test_burn_notBridge_reverts() (gas: 11165)
OptimismMintableERC20_Test:test_burn_notBridge_reverts() (gas: 11165)
OptimismMintableERC20_Test:test_burn_succeeds() (gas: 51013)
OptimismMintableERC20_Test:test_burn_succeeds() (gas: 51013)
...
...
packages/contracts-bedrock/contracts/test/MintManager.t.sol
0 → 100644
View file @
0b7358f2
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;
import { CommonTest } from "./CommonTest.t.sol";
import { MintManager } from "../governance/MintManager.sol";
import { GovernanceToken } from "../governance/GovernanceToken.sol";
contract MintManager_Test is CommonTest {
address constant owner = address(0x1234);
address constant rando = address(0x5678);
GovernanceToken internal gov;
MintManager internal manager;
function setUp() external {
vm.prank(owner);
gov = new GovernanceToken();
vm.prank(owner);
manager = new MintManager(owner, address(gov));
vm.prank(owner);
gov.transferOwnership(address(manager));
}
function test_constructor_succeeds() external {
assertEq(manager.owner(), owner);
assertEq(address(manager.governanceToken()), address(gov));
}
function test_mint_fromOwner_succeeds() external {
// Mint once.
vm.prank(owner);
manager.mint(owner, 100);
// Token balance increases.
assertEq(gov.balanceOf(owner), 100);
}
function test_mint_fromNotOwner_reverts() external {
// Mint from rando fails.
vm.prank(rando);
vm.expectRevert("Ownable: caller is not the owner");
manager.mint(owner, 100);
}
function test_mint_afterPeriodElapsed_succeeds() external {
// Mint once.
vm.prank(owner);
manager.mint(owner, 100);
// Token balance increases.
assertEq(gov.balanceOf(owner), 100);
// Mint again after period elapsed (2% max).
vm.warp(block.timestamp + manager.MINT_PERIOD() + 1);
vm.prank(owner);
manager.mint(owner, 2);
// Token balance increases.
assertEq(gov.balanceOf(owner), 102);
}
function test_mint_beforePeriodElapsed_reverts() external {
// Mint once.
vm.prank(owner);
manager.mint(owner, 100);
// Token balance increases.
assertEq(gov.balanceOf(owner), 100);
// Mint again.
vm.prank(owner);
vm.expectRevert("MintManager: minting not permitted yet");
manager.mint(owner, 100);
// Token balance does not increase.
assertEq(gov.balanceOf(owner), 100);
}
function test_mint_moreThanCap_reverts() external {
// Mint once.
vm.prank(owner);
manager.mint(owner, 100);
// Token balance increases.
assertEq(gov.balanceOf(owner), 100);
// Mint again (greater than 2% max).
vm.warp(block.timestamp + manager.MINT_PERIOD() + 1);
vm.prank(owner);
vm.expectRevert("MintManager: mint amount exceeds cap");
manager.mint(owner, 3);
// Token balance does not increase.
assertEq(gov.balanceOf(owner), 100);
}
function test_upgrade_fromOwner_succeeds() external {
// Upgrade to new manager.
vm.prank(owner);
manager.upgrade(rando);
// New manager is rando.
assertEq(gov.owner(), rando);
}
function test_upgrade_fromNotOwner_reverts() external {
// Upgrade from rando fails.
vm.prank(rando);
vm.expectRevert("Ownable: caller is not the owner");
manager.upgrade(rando);
}
function test_upgrade_toZeroAddress_reverts() external {
// Upgrade to zero address fails.
vm.prank(owner);
vm.expectRevert("MintManager: mint manager cannot be the zero address");
manager.upgrade(address(0));
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment