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
9b88793e
Unverified
Commit
9b88793e
authored
Dec 14, 2022
by
mergify[bot]
Committed by
GitHub
Dec 14, 2022
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #4461 from ethereum-optimism/willc/less-rep-in-tests
feat(contracts-periphery): Clean up optimist tests
parents
a50dd122
370a348c
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
37 additions
and
124 deletions
+37
-124
Optimist.t.sol
...ontracts-periphery/contracts/foundry-tests/Optimist.t.sol
+37
-124
No files found.
packages/contracts-periphery/contracts/foundry-tests/Optimist.t.sol
View file @
9b88793e
...
@@ -22,6 +22,31 @@ contract Optimist_Initializer is Test {
...
@@ -22,6 +22,31 @@ contract Optimist_Initializer is Test {
AttestationStation attestationStation;
AttestationStation attestationStation;
Optimist optimist;
Optimist optimist;
function attestBaseuri(string memory _baseUri) internal {
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
attestationData[0] = AttestationStation.AttestationData(
address(optimist),
bytes32("optimist.base-uri"),
bytes(_baseUri)
);
vm.prank(alice_admin);
attestationStation.attest(attestationData);
}
function attestAllowlist(address _about) internal {
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
about: _about,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
}
function _setUp() public {
function _setUp() public {
// Give alice and bob and sally some ETH
// Give alice and bob and sally some ETH
vm.deal(alice_admin, 1 ether);
vm.deal(alice_admin, 1 ether);
...
@@ -68,16 +93,7 @@ contract OptimistTest is Optimist_Initializer {
...
@@ -68,16 +93,7 @@ contract OptimistTest is Optimist_Initializer {
assertEq(optimist.balanceOf(bob), 0);
assertEq(optimist.balanceOf(bob), 0);
// whitelist bob
// whitelist bob
AttestationStation.AttestationData[]
attestAllowlist(bob);
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
about: bob,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
uint256 tokenId = uint256(uint160(bob));
uint256 tokenId = uint256(uint160(bob));
vm.expectEmit(true, true, true, true);
vm.expectEmit(true, true, true, true);
...
@@ -102,17 +118,7 @@ contract OptimistTest is Optimist_Initializer {
...
@@ -102,17 +118,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev Sally should be able to mint a token on behalf of bob
* @dev Sally should be able to mint a token on behalf of bob
*/
*/
function test_optimist_mint_secondary_minter() external {
function test_optimist_mint_secondary_minter() external {
// whitelist bob
attestAllowlist(bob);
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
about: bob,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
bytes memory data = abi.encodeWithSelector(
bytes memory data = abi.encodeWithSelector(
attestationStation.attestations.selector,
attestationStation.attestations.selector,
...
@@ -148,17 +154,7 @@ contract OptimistTest is Optimist_Initializer {
...
@@ -148,17 +154,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev Bob's tx should revert if he already minted
* @dev Bob's tx should revert if he already minted
*/
*/
function test_optimist_mint_already_minted() external {
function test_optimist_mint_already_minted() external {
// whitelist bob
attestAllowlist(bob);
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
about: bob,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
// mint initial nft with bob
// mint initial nft with bob
vm.prank(bob);
vm.prank(bob);
...
@@ -177,14 +173,7 @@ contract OptimistTest is Optimist_Initializer {
...
@@ -177,14 +173,7 @@ contract OptimistTest is Optimist_Initializer {
* by the owner of contract alice_admin
* by the owner of contract alice_admin
*/
*/
function test_optimist_baseURI() external {
function test_optimist_baseURI() external {
// set baseURI
attestBaseuri(base_uri);
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
attestationData[0] = AttestationStation.AttestationData({
about: address(optimist),
key: bytes32("optimist.base-uri"),
val: bytes(base_uri)
});
bytes memory data = abi.encodeWithSelector(
bytes memory data = abi.encodeWithSelector(
attestationStation.attestations.selector,
attestationStation.attestations.selector,
...
@@ -194,7 +183,6 @@ contract OptimistTest is Optimist_Initializer {
...
@@ -194,7 +183,6 @@ contract OptimistTest is Optimist_Initializer {
);
);
vm.expectCall(address(attestationStation), data);
vm.expectCall(address(attestationStation), data);
vm.prank(alice_admin);
vm.prank(alice_admin);
attestationStation.attest(attestationData);
// assert baseURI is set
// assert baseURI is set
assertEq(optimist.baseURI(), base_uri);
assertEq(optimist.baseURI(), base_uri);
...
@@ -205,24 +193,9 @@ contract OptimistTest is Optimist_Initializer {
...
@@ -205,24 +193,9 @@ contract OptimistTest is Optimist_Initializer {
* for a minted token
* for a minted token
*/
*/
function test_optimist_token_uri() external {
function test_optimist_token_uri() external {
// whitelist bob
attestAllowlist(bob);
// attest baseURI
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](2);
// we are using true but it can be any non empty value
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
attestBaseuri(base_uri);
about: bob,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
// we are using true but it can be any non empty value
attestationData[1] = AttestationStation.AttestationData({
about: address(optimist),
key: bytes32("optimist.base-uri"),
val: bytes(base_uri)
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
// mint an NFT
// mint an NFT
vm.prank(bob);
vm.prank(bob);
...
@@ -241,17 +214,7 @@ contract OptimistTest is Optimist_Initializer {
...
@@ -241,17 +214,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev Should return a boolean of if the address is whitelisted
* @dev Should return a boolean of if the address is whitelisted
*/
*/
function test_optimist_is_on_allow_list() external {
function test_optimist_is_on_allow_list() external {
// whitelist bob
attestAllowlist(bob);
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
about: bob,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
bytes memory data = abi.encodeWithSelector(
bytes memory data = abi.encodeWithSelector(
attestationStation.attestations.selector,
attestationStation.attestations.selector,
...
@@ -281,18 +244,8 @@ contract OptimistTest is Optimist_Initializer {
...
@@ -281,18 +244,8 @@ contract OptimistTest is Optimist_Initializer {
uint256 willTokenId = 1024;
uint256 willTokenId = 1024;
address will = address(1024);
address will = address(1024);
AttestationStation.AttestationData[]
attestAllowlist(will);
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
about: will,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
// mint as bob
optimist.mint(will);
optimist.mint(will);
assertEq(optimist.tokenIdOfAddress(will), willTokenId);
assertEq(optimist.tokenIdOfAddress(will), willTokenId);
...
@@ -302,17 +255,7 @@ contract OptimistTest is Optimist_Initializer {
...
@@ -302,17 +255,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev It should revert if anybody attemps token transfer
* @dev It should revert if anybody attemps token transfer
*/
*/
function test_optimist_sbt_transfer() external {
function test_optimist_sbt_transfer() external {
// whitelist bob
attestAllowlist(bob);
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
about: bob,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
// mint as bob
// mint as bob
vm.prank(bob);
vm.prank(bob);
...
@@ -337,17 +280,7 @@ contract OptimistTest is Optimist_Initializer {
...
@@ -337,17 +280,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev It should revert if anybody attemps approve
* @dev It should revert if anybody attemps approve
*/
*/
function test_optimist_sbt_approve() external {
function test_optimist_sbt_approve() external {
// whitelist bob
attestAllowlist(bob);
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
about: bob,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
// mint as bob
// mint as bob
vm.prank(bob);
vm.prank(bob);
...
@@ -365,17 +298,7 @@ contract OptimistTest is Optimist_Initializer {
...
@@ -365,17 +298,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev It should be able to burn token
* @dev It should be able to burn token
*/
*/
function test_optimist_burn() external {
function test_optimist_burn() external {
// whitelist bob
attestAllowlist(bob);
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
about: bob,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
// mint as bob
// mint as bob
vm.prank(bob);
vm.prank(bob);
...
@@ -393,17 +316,7 @@ contract OptimistTest is Optimist_Initializer {
...
@@ -393,17 +316,7 @@ contract OptimistTest is Optimist_Initializer {
* @dev setApprovalForAll should revert as sbt
* @dev setApprovalForAll should revert as sbt
*/
*/
function test_optimist_set_approval_for_all() external {
function test_optimist_set_approval_for_all() external {
// whitelist bob
attestAllowlist(bob);
AttestationStation.AttestationData[]
memory attestationData = new AttestationStation.AttestationData[](1);
// we are using true but it can be any non empty value
attestationData[0] = AttestationStation.AttestationData({
about: bob,
key: bytes32("optimist.can-mint"),
val: bytes("true")
});
vm.prank(alice_admin);
attestationStation.attest(attestationData);
// mint as bob
// mint as bob
vm.prank(bob);
vm.prank(bob);
...
...
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