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
97e97347
Commit
97e97347
authored
Nov 01, 2023
by
Mark Tyneway
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
contracts-bedrock: deduplicate tests
parent
056407f3
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
207 deletions
+26
-207
OptimismPortal.t.sol
packages/contracts-bedrock/test/OptimismPortal.t.sol
+26
-207
No files found.
packages/contracts-bedrock/test/OptimismPortal.t.sol
View file @
97e97347
...
...
@@ -25,6 +25,15 @@ contract OptimismPortal_Test is Portal_Initializer {
event Paused(address);
event Unpaused(address);
address depositor;
function setUp() public override {
super.setUp();
depositor = makeAddr("depositor");
vm.deal(depositor, type(uint256).max);
vm.deal(address(this), type(uint256).max);
}
/// @dev Tests that the constructor sets the correct values.
function test_constructor_succeeds() external {
assertEq(address(op.L2_ORACLE()), address(oracle));
...
...
@@ -162,119 +171,12 @@ contract OptimismPortal_Test is Portal_Initializer {
assertTrue(op.minimumGasLimit(3) > op.minimumGasLimit(2));
}
/// @dev Tests that `depositTransaction` succeeds for an EOA
depositing a tx with 0 value
.
function testFuzz_depositTransaction_
noValueEOA
_succeeds(
/// @dev Tests that `depositTransaction` succeeds for an EOA.
function testFuzz_depositTransaction_
eoa
_succeeds(
address _to,
uint64 _gasLimit,
bytes memory _data
)
external
{
_gasLimit = uint64(
bound(_gasLimit, op.minimumGasLimit(uint64(_data.length)), systemConfig.resourceConfig().maxResourceLimit)
);
// EOA emulation
vm.expectEmit(address(op));
emitTransactionDeposited({
_from: address(this),
_to: _to,
_value: 0,
_mint: 0,
_gasLimit: _gasLimit,
_isCreation: false,
_data: _data
});
vm.prank(address(this), address(this));
op.depositTransaction({ _to: _to, _value: 0, _gasLimit: _gasLimit, _isCreation: false, _data: _data });
}
/// @dev Tests that `depositTransaction` succeeds for a contract depositing a tx with 0 value.
function testFuzz_depositTransaction_noValueContract_succeeds(
address _to,
uint64 _gasLimit,
bytes memory _data
)
external
{
_gasLimit = uint64(
bound(_gasLimit, op.minimumGasLimit(uint64(_data.length)), systemConfig.resourceConfig().maxResourceLimit)
);
vm.expectEmit(address(op));
emitTransactionDeposited({
_from: AddressAliasHelper.applyL1ToL2Alias(address(this)),
_to: _to,
_value: 0,
_mint: 0,
_gasLimit: _gasLimit,
_isCreation: false,
_data: _data
});
op.depositTransaction({ _to: _to, _value: 0, _gasLimit: _gasLimit, _isCreation: false, _data: _data });
}
/// @dev Tests that `depositTransaction` succeeds for an EOA
/// depositing a contract creation with 0 value.
function testFuzz_depositTransaction_createWithZeroValueForEOA_succeeds(
uint64 _gasLimit,
bytes memory _data
)
external
{
_gasLimit = uint64(
bound(_gasLimit, op.minimumGasLimit(uint64(_data.length)), systemConfig.resourceConfig().maxResourceLimit)
);
vm.expectEmit(address(op));
emitTransactionDeposited({
_from: address(this),
_to: address(0),
_value: 0,
_mint: 0,
_gasLimit: _gasLimit,
_isCreation: true,
_data: _data
});
// EOA emulation
vm.prank(address(this), address(this));
op.depositTransaction({ _to: address(0), _value: 0, _gasLimit: _gasLimit, _isCreation: true, _data: _data });
}
/// @dev Tests that `depositTransaction` succeeds for a contract
/// depositing a contract creation with 0 value.
function testFuzz_depositTransaction_createWithZeroValueForContract_succeeds(
uint64 _gasLimit,
bytes memory _data
)
external
{
_gasLimit = uint64(
bound(_gasLimit, op.minimumGasLimit(uint64(_data.length)), systemConfig.resourceConfig().maxResourceLimit)
);
vm.expectEmit(address(op));
emitTransactionDeposited({
_from: AddressAliasHelper.applyL1ToL2Alias(address(this)),
_to: address(0),
_value: 0,
_mint: 0,
_gasLimit: _gasLimit,
_isCreation: true,
_data: _data
});
op.depositTransaction({ _to: address(0), _value: 0, _gasLimit: _gasLimit, _isCreation: true, _data: _data });
}
/// @dev Tests that `depositTransaction` succeeds for an EOA depositing a tx with ETH.
function testFuzz_depositTransaction_withEthValueFromEOA_succeeds(
address _to,
uint256 _value,
uint
64 _gasLimi
t,
uint
256 _min
t,
bool _isCreation,
bytes memory _data
)
...
...
@@ -286,35 +188,29 @@ contract OptimismPortal_Test is Portal_Initializer {
if (_isCreation) _to = address(0);
// EOA emulation
vm.deal(address(this), _value);
vm.expectEmit(address(op));
emitTransactionDeposited({
_from:
address(this)
,
_from:
depositor
,
_to: _to,
_value: _value,
_mint: _
value
,
_mint: _
mint
,
_gasLimit: _gasLimit,
_isCreation: _isCreation,
_data: _data
});
vm.prank(address(this), address(this));
op.depositTransaction{ value: _value }({
_to: _to,
_value: _value,
_gasLimit: _gasLimit,
_isCreation: _isCreation,
_data: _data
});
assertEq(address(op).balance, _value);
vm.prank(depositor, depositor);
op.depositTransaction{ value: _mint }({ _to: _to, _value: _value, _gasLimit: _gasLimit, _isCreation: _isCreation, _data: _data });
assertEq(address(op).balance, _mint);
}
/// @dev Tests that `depositTransaction` succeeds for a contract
depositing a tx with ETH
.
function testFuzz_depositTransaction_
withEthValueFromC
ontract_succeeds(
/// @dev Tests that `depositTransaction` succeeds for a contract.
function testFuzz_depositTransaction_
c
ontract_succeeds(
address _to,
uint256 _value,
uint64 _gasLimit,
uint256 _value,
uint256 _mint,
bool _isCreation,
bytes memory _data
)
external
...
...
@@ -322,98 +218,21 @@ contract OptimismPortal_Test is Portal_Initializer {
_gasLimit = uint64(
bound(_gasLimit, op.minimumGasLimit(uint64(_data.length)), systemConfig.resourceConfig().maxResourceLimit)
);
vm.deal(address(this), _value);
if (_isCreation) _to = address(0);
vm.expectEmit(address(op));
emitTransactionDeposited({
_from: AddressAliasHelper.applyL1ToL2Alias(address(this)),
_to: _to,
_value: _value,
_mint: _value,
_gasLimit: _gasLimit,
_isCreation: false,
_data: _data
});
op.depositTransaction{ value: _value }({
_to: _to,
_value: _value,
_gasLimit: _gasLimit,
_isCreation: false,
_data: _data
});
}
/// @dev Tests that `depositTransaction` succeeds for an EOA depositing a contract creation with ETH.
function testFuzz_depositTransaction_withEthValueAndEOAContractCreation_succeeds(
uint256 _mint,
uint64 _gasLimit,
bytes memory _data
)
external
{
_gasLimit = uint64(
bound(_gasLimit, op.minimumGasLimit(uint64(_data.length)), systemConfig.resourceConfig().maxResourceLimit)
);
vm.deal(address(this), _mint);
vm.expectEmit(address(op));
emitTransactionDeposited({
_from: address(this),
_to: address(0),
_value: 0,
_mint: _mint,
_gasLimit: _gasLimit,
_isCreation: true,
_data: _data
});
// EOA emulation
vm.prank(address(this), address(this));
op.depositTransaction{ value: _mint }({
_to: address(0),
_value: 0,
_gasLimit: _gasLimit,
_isCreation: true,
_data: _data
});
assertEq(address(op).balance, _mint);
}
/// @dev Tests that `depositTransaction` succeeds for a contract depositing a contract creation with ETH.
function testFuzz_depositTransaction_withEthValueAndContractContractCreation_succeeds(
uint256 _mint,
uint64 _gasLimit,
bytes memory _data
)
external
{
_gasLimit = uint64(
bound(_gasLimit, op.minimumGasLimit(uint64(_data.length)), systemConfig.resourceConfig().maxResourceLimit)
);
vm.deal(address(this), _mint);
vm.expectEmit(address(op));
emitTransactionDeposited({
_from: AddressAliasHelper.applyL1ToL2Alias(address(this)),
_to: address(0),
_value: 0,
_mint: _mint,
_gasLimit: _gasLimit,
_isCreation:
true
,
_isCreation:
_isCreation
,
_data: _data
});
op.depositTransaction{ value: _mint }({
_to: address(0),
_value: 0,
_gasLimit: _gasLimit,
_isCreation: true,
_data: _data
});
vm.prank(address(this));
op.depositTransaction{ value: _mint }({ _to: _to, _value: _value, _gasLimit: _gasLimit, _isCreation: _isCreation, _data: _data });
assertEq(address(op).balance, _mint);
}
...
...
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