Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Remove some not needed tests
  • Loading branch information
hexlivelive committed Nov 24, 2023
commit 2bd180a326701ff50d729dee83ccdc2e8014d7e2
249 changes: 0 additions & 249 deletions src/test/marketplace/MintraDirectListingStandalone.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -115,97 +115,6 @@ contract MintraDirectListingsLogicStandaloneTest is BaseTest, IExtension {
assertEq(MintraDirectListingsLogicStandalone(marketplace).getAllValidListings(0, totalListings - 1).length, 0);
}

/**
* @dev Tests contract state for Lister role.
*/
function test_state_getRoleMember_listerRole() public {
bytes32 role = keccak256("LISTER_ROLE");

uint256 roleMemberCount = PermissionsEnumerable(marketplace).getRoleMemberCount(role);
assertEq(roleMemberCount, 1);

address roleMember = PermissionsEnumerable(marketplace).getRoleMember(role, 1);
assertEq(roleMember, address(0));

vm.startPrank(marketplaceDeployer);
Permissions(marketplace).grantRole(role, address(2));
Permissions(marketplace).grantRole(role, address(3));
Permissions(marketplace).grantRole(role, address(4));

roleMemberCount = PermissionsEnumerable(marketplace).getRoleMemberCount(role);
assertEq(roleMemberCount, 4);
console.log(roleMemberCount);
for (uint256 i = 0; i < roleMemberCount; i++) {
console.log(PermissionsEnumerable(marketplace).getRoleMember(role, i));
}
console.log("");

Permissions(marketplace).revokeRole(role, address(2));
roleMemberCount = PermissionsEnumerable(marketplace).getRoleMemberCount(role);
assertEq(roleMemberCount, 3);
console.log(roleMemberCount);
for (uint256 i = 0; i < roleMemberCount; i++) {
console.log(PermissionsEnumerable(marketplace).getRoleMember(role, i));
}
console.log("");

Permissions(marketplace).grantRole(role, address(5));
roleMemberCount = PermissionsEnumerable(marketplace).getRoleMemberCount(role);
assertEq(roleMemberCount, 4);
console.log(roleMemberCount);
for (uint256 i = 0; i < roleMemberCount; i++) {
console.log(PermissionsEnumerable(marketplace).getRoleMember(role, i));
}
console.log("");

Permissions(marketplace).grantRole(role, address(0));
roleMemberCount = PermissionsEnumerable(marketplace).getRoleMemberCount(role);
assertEq(roleMemberCount, 5);
console.log(roleMemberCount);
for (uint256 i = 0; i < roleMemberCount; i++) {
console.log(PermissionsEnumerable(marketplace).getRoleMember(role, i));
}
console.log("");

Permissions(marketplace).grantRole(role, address(6));
roleMemberCount = PermissionsEnumerable(marketplace).getRoleMemberCount(role);
assertEq(roleMemberCount, 6);
console.log(roleMemberCount);
for (uint256 i = 0; i < roleMemberCount; i++) {
console.log(PermissionsEnumerable(marketplace).getRoleMember(role, i));
}
console.log("");

Permissions(marketplace).revokeRole(role, address(3));
roleMemberCount = PermissionsEnumerable(marketplace).getRoleMemberCount(role);
assertEq(roleMemberCount, 5);
console.log(roleMemberCount);
for (uint256 i = 0; i < roleMemberCount; i++) {
console.log(PermissionsEnumerable(marketplace).getRoleMember(role, i));
}
console.log("");

Permissions(marketplace).revokeRole(role, address(4));
roleMemberCount = PermissionsEnumerable(marketplace).getRoleMemberCount(role);
assertEq(roleMemberCount, 4);
console.log(roleMemberCount);
for (uint256 i = 0; i < roleMemberCount; i++) {
console.log(PermissionsEnumerable(marketplace).getRoleMember(role, i));
}
console.log("");

Permissions(marketplace).revokeRole(role, address(0));
roleMemberCount = PermissionsEnumerable(marketplace).getRoleMemberCount(role);
assertEq(roleMemberCount, 3);
console.log(roleMemberCount);
for (uint256 i = 0; i < roleMemberCount; i++) {
console.log(PermissionsEnumerable(marketplace).getRoleMember(role, i));
}
console.log("");

vm.stopPrank();
}

function test_state_approvedCurrencies() public {
(uint256 listingId, IDirectListings.ListingParameters memory listingParams) = _setup_updateListing();
address currencyToApprove = address(erc20); // same currency as main listing
Expand Down Expand Up @@ -326,72 +235,6 @@ contract MintraDirectListingsLogicStandaloneTest is BaseTest, IExtension {
console.log("done");
}

function test_royaltyEngine_tokenWithCustomRoyalties() public {
(
MockRoyaltyEngineV1 royaltyEngine,
address payable[] memory customRoyaltyRecipients,
uint256[] memory customRoyaltyAmounts
) = _setupRoyaltyEngine();

// Add RoyaltyEngine to marketplace
vm.prank(marketplaceDeployer);
RoyaltyPaymentsLogic(marketplace).setRoyaltyEngine(address(royaltyEngine));

assertEq(RoyaltyPaymentsLogic(marketplace).getRoyaltyEngineAddress(), address(royaltyEngine));

// 1. ========= Create listing =========

// Mint the ERC721 tokens to seller. These tokens will be listed.
_setupERC721BalanceForSeller(seller, 1);
uint256 listingId = _setupListingForRoyaltyTests(address(erc721));

// 2. ========= Buy from listing =========

uint256 totalPrice = _buyFromListingForRoyaltyTests(listingId);

// 3. ======== Check balances after royalty payments ========

{
// Royalty recipients receive correct amounts
assertBalERC20Eq(address(erc20), customRoyaltyRecipients[0], customRoyaltyAmounts[0]);
assertBalERC20Eq(address(erc20), customRoyaltyRecipients[1], customRoyaltyAmounts[1]);

// Seller gets total price minus royalty amounts
assertBalERC20Eq(address(erc20), seller, totalPrice - customRoyaltyAmounts[0] - customRoyaltyAmounts[1]);
}
}

function test_royaltyEngine_tokenWithERC2981() public {
// create token with ERC2981
address royaltyRecipient = address(0x12345);
uint128 royaltyBps = 10;
ERC721Base nft2981 = new ERC721Base(address(0x12345), "NFT 2981", "NFT2981", royaltyRecipient, royaltyBps);
// Mint the ERC721 tokens to seller. These tokens will be listed.
vm.prank(address(0x12345));
nft2981.mintTo(seller, "");

//vm.prank(marketplaceDeployer);

// 1. ========= Create listing =========

uint256 listingId = _setupListingForRoyaltyTests(address(nft2981));

// 2. ========= Buy from listing =========

uint256 totalPrice = _buyFromListingForRoyaltyTests(listingId);

// 3. ======== Check balances after royalty payments ========

{
uint256 royaltyAmount = (royaltyBps * totalPrice) / 10_000;
// Royalty recipient receives correct amounts
assertBalERC20Eq(address(erc20), royaltyRecipient, royaltyAmount);

// Seller gets total price minus royalty amount
assertBalERC20Eq(address(erc20), seller, totalPrice - royaltyAmount);
}
}

function test_noRoyaltyEngine_defaultERC2981Token() public {
// create token with ERC2981
address royaltyRecipient = address(0x12345);
Expand Down Expand Up @@ -428,54 +271,6 @@ contract MintraDirectListingsLogicStandaloneTest is BaseTest, IExtension {
}
}

function test_royaltyEngine_correctlyDistributeAllFees() public {
(
MockRoyaltyEngineV1 royaltyEngine,
address payable[] memory customRoyaltyRecipients,
uint256[] memory customRoyaltyAmounts
) = _setupRoyaltyEngine();

// Add RoyaltyEngine to marketplace
vm.prank(marketplaceDeployer);
RoyaltyPaymentsLogic(marketplace).setRoyaltyEngine(address(royaltyEngine));

assertEq(RoyaltyPaymentsLogic(marketplace).getRoyaltyEngineAddress(), address(royaltyEngine));

// Set platform fee on marketplace
address platformFeeRecipient = marketplaceDeployer;
uint128 platformFeeBps = 5;
vm.prank(marketplaceDeployer);
IPlatformFee(marketplace).setPlatformFeeInfo(platformFeeRecipient, platformFeeBps);

// 1. ========= Create listing =========

_setupERC721BalanceForSeller(seller, 1);
uint256 listingId = _setupListingForRoyaltyTests(address(erc721));

// 2. ========= Buy from listing =========

uint256 totalPrice = _buyFromListingForRoyaltyTests(listingId);

// 3. ======== Check balances after fee payments (platform fee + royalty) ========

{
// Royalty recipients receive correct amounts
assertBalERC20Eq(address(erc20), customRoyaltyRecipients[0], customRoyaltyAmounts[0]);
assertBalERC20Eq(address(erc20), customRoyaltyRecipients[1], customRoyaltyAmounts[1]);

// Platform fee recipient
uint256 platformFeeAmount = (platformFeeBps * totalPrice) / 10_000;
assertBalERC20Eq(address(erc20), platformFeeRecipient, platformFeeAmount);

// Seller gets total price minus royalty amounts
assertBalERC20Eq(
address(erc20),
seller,
totalPrice - customRoyaltyAmounts[0] - customRoyaltyAmounts[1] - platformFeeAmount
);
}
}

function test_revert_feesExceedTotalPrice() public {
(MockRoyaltyEngineV1 royaltyEngine,,) = _setupRoyaltyEngine();

Expand Down Expand Up @@ -795,55 +590,11 @@ contract MintraDirectListingsLogicStandaloneTest is BaseTest, IExtension {
assetContract, tokenId, quantity, currency, pricePerToken, startTimestamp, endTimestamp, reserved
);

// Grant ERC20 token asset role.
vm.prank(marketplaceDeployer);
Permissions(marketplace).grantRole(keccak256("ASSET_ROLE"), address(erc20));

vm.prank(seller);
vm.expectRevert("Marketplace: listed token must be ERC1155 or ERC721.");
MintraDirectListingsLogicStandalone(marketplace).createListing(listingParams);
}

function test_revert_createListing_noAssetRoleWhenRestrictionsActive() public {
// Sample listing parameters.
address assetContract = address(erc721);
uint256 tokenId = 0;
uint256 quantity = 1;
address currency = address(erc20);
uint256 pricePerToken = 1 ether;
uint128 startTimestamp = 100;
uint128 endTimestamp = 200;
bool reserved = true;

// Mint the ERC721 tokens to seller. These tokens will be listed.
_setupERC721BalanceForSeller(seller, 1);

uint256[] memory tokenIds = new uint256[](1);
tokenIds[0] = tokenId;
assertIsOwnerERC721(address(erc721), seller, tokenIds);

// Approve Marketplace to transfer token.
vm.prank(seller);
erc721.setApprovalForAll(marketplace, true);

// List tokens.
IDirectListings.ListingParameters memory listingParams = IDirectListings.ListingParameters(
assetContract, tokenId, quantity, currency, pricePerToken, startTimestamp, endTimestamp, reserved
);

// Revoke ASSET_ROLE from token to list.
vm.startPrank(marketplaceDeployer);
assertEq(Permissions(marketplace).hasRole(keccak256("ASSET_ROLE"), address(0)), false);
Permissions(marketplace).revokeRole(keccak256("ASSET_ROLE"), address(erc721));
assertEq(Permissions(marketplace).hasRole(keccak256("ASSET_ROLE"), address(erc721)), false);

vm.stopPrank();

vm.prank(seller);
vm.expectRevert("!ASSET_ROLE");
MintraDirectListingsLogicStandalone(marketplace).createListing(listingParams);
}

/*///////////////////////////////////////////////////////////////
Update listing
//////////////////////////////////////////////////////////////*/
Expand Down