Skip to content

Commit

Permalink
fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
kumaryash90 committed Feb 19, 2025
1 parent d7d472e commit 4477089
Show file tree
Hide file tree
Showing 12 changed files with 254 additions and 52 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ contract DropERC1155Test_collectPrice is BaseTest {
address private collectPrice_currency;
uint256 private collectPrice_msgValue;
address private collectPrice_tokenSaleRecipient = address(0x111);
address private defaultFeeRecipient;

address public dropImp;
HarnessDropERC1155 public proxy;
Expand All @@ -55,6 +56,7 @@ contract DropERC1155Test_collectPrice is BaseTest {

dropImp = address(new HarnessDropERC1155());
proxy = HarnessDropERC1155(address(new TWProxy(dropImp, initializeData)));
defaultFeeRecipient = proxy.DEFAULT_FEE_RECIPIENT();
}

modifier pricePerTokenZero() {
Expand Down Expand Up @@ -137,6 +139,7 @@ contract DropERC1155Test_collectPrice is BaseTest {

function test_transferNativeCurrencyToSaleRecipient() public nativeCurrency pricePerTokenNotZero msgValueNotZero {
uint256 balanceSaleRecipientBefore = address(saleRecipient).balance;
uint256 defaultFeeRecipientBefore = address(defaultFeeRecipient).balance;
uint256 platformFeeRecipientBefore = address(platformFeeRecipient).balance;
proxy.collectPriceOnClaimHarness{ value: collectPrice_msgValue }(
0,
Expand All @@ -147,16 +150,20 @@ contract DropERC1155Test_collectPrice is BaseTest {
);

uint256 balanceSaleRecipientAfter = address(saleRecipient).balance;
uint256 defaultFeeRecipientAfter = address(defaultFeeRecipient).balance;
uint256 platformFeeRecipientAfter = address(platformFeeRecipient).balance;
uint256 expectedDefaultPlatformFee = (collectPrice_pricePerToken * 250) / MAX_BPS;
uint256 expectedPlatformFee = (collectPrice_pricePerToken * platformFeeBps) / MAX_BPS;
uint256 expectedSaleRecipientProceed = collectPrice_msgValue - expectedPlatformFee;
uint256 expectedSaleRecipientProceed = collectPrice_msgValue - expectedPlatformFee - expectedDefaultPlatformFee;

assertEq(balanceSaleRecipientAfter - balanceSaleRecipientBefore, expectedSaleRecipientProceed);
assertEq(platformFeeRecipientAfter - platformFeeRecipientBefore, expectedPlatformFee);
assertEq(defaultFeeRecipientAfter - defaultFeeRecipientBefore, expectedDefaultPlatformFee);
}

function test_transferERC20ToSaleRecipient() public erc20Currency pricePerTokenNotZero {
uint256 balanceSaleRecipientBefore = erc20.balanceOf(saleRecipient);
uint256 defaultFeeRecipientBefore = erc20.balanceOf(defaultFeeRecipient);
uint256 platformFeeRecipientBefore = erc20.balanceOf(platformFeeRecipient);
erc20.approve(address(proxy), collectPrice_pricePerToken);
proxy.collectPriceOnClaimHarness(
Expand All @@ -168,12 +175,17 @@ contract DropERC1155Test_collectPrice is BaseTest {
);

uint256 balanceSaleRecipientAfter = erc20.balanceOf(saleRecipient);
uint256 defaultFeeRecipientAfter = erc20.balanceOf(defaultFeeRecipient);
uint256 platformFeeRecipientAfter = erc20.balanceOf(platformFeeRecipient);
uint256 expectedDefaultPlatformFee = (collectPrice_pricePerToken * 250) / MAX_BPS;
uint256 expectedPlatformFee = (collectPrice_pricePerToken * platformFeeBps) / MAX_BPS;
uint256 expectedSaleRecipientProceed = collectPrice_pricePerToken - expectedPlatformFee;
uint256 expectedSaleRecipientProceed = collectPrice_pricePerToken -
expectedPlatformFee -
expectedDefaultPlatformFee;

assertEq(balanceSaleRecipientAfter - balanceSaleRecipientBefore, expectedSaleRecipientProceed);
assertEq(platformFeeRecipientAfter - platformFeeRecipientBefore, expectedPlatformFee);
assertEq(defaultFeeRecipientAfter - defaultFeeRecipientBefore, expectedDefaultPlatformFee);
}

function test_transferNativeCurrencyToTokenIdSaleRecipient()
Expand All @@ -185,6 +197,7 @@ contract DropERC1155Test_collectPrice is BaseTest {
primarySaleRecipientZeroAddress
{
uint256 balanceSaleRecipientBefore = address(collectPrice_tokenSaleRecipient).balance;
uint256 defaultFeeRecipientBefore = address(defaultFeeRecipient).balance;
uint256 platformFeeRecipientBefore = address(platformFeeRecipient).balance;
proxy.collectPriceOnClaimHarness{ value: collectPrice_msgValue }(
0,
Expand All @@ -195,16 +208,20 @@ contract DropERC1155Test_collectPrice is BaseTest {
);

uint256 balanceSaleRecipientAfter = address(collectPrice_tokenSaleRecipient).balance;
uint256 defaultFeeRecipientAfter = address(defaultFeeRecipient).balance;
uint256 platformFeeRecipientAfter = address(platformFeeRecipient).balance;
uint256 expectedPlatformFee = (collectPrice_pricePerToken * platformFeeBps) / MAX_BPS;
uint256 expectedSaleRecipientProceed = collectPrice_msgValue - expectedPlatformFee;
uint256 expectedDefaultPlatformFee = (collectPrice_pricePerToken * 250) / MAX_BPS;
uint256 expectedSaleRecipientProceed = collectPrice_msgValue - expectedPlatformFee - expectedDefaultPlatformFee;

assertEq(balanceSaleRecipientAfter - balanceSaleRecipientBefore, expectedSaleRecipientProceed);
assertEq(platformFeeRecipientAfter - platformFeeRecipientBefore, expectedPlatformFee);
assertEq(defaultFeeRecipientAfter - defaultFeeRecipientBefore, expectedDefaultPlatformFee);
}

function test_transferERC20ToTokenIdSaleRecipient() public erc20Currency pricePerTokenNotZero saleRecipientSet {
uint256 balanceSaleRecipientBefore = erc20.balanceOf(collectPrice_tokenSaleRecipient);
uint256 defaultFeeRecipientBefore = erc20.balanceOf(defaultFeeRecipient);
uint256 platformFeeRecipientBefore = erc20.balanceOf(platformFeeRecipient);
erc20.approve(address(proxy), collectPrice_pricePerToken);
proxy.collectPriceOnClaimHarness(
Expand All @@ -216,12 +233,17 @@ contract DropERC1155Test_collectPrice is BaseTest {
);

uint256 balanceSaleRecipientAfter = erc20.balanceOf(collectPrice_tokenSaleRecipient);
uint256 defaultFeeRecipientAfter = erc20.balanceOf(defaultFeeRecipient);
uint256 platformFeeRecipientAfter = erc20.balanceOf(platformFeeRecipient);
uint256 expectedPlatformFee = (collectPrice_pricePerToken * platformFeeBps) / MAX_BPS;
uint256 expectedSaleRecipientProceed = collectPrice_pricePerToken - expectedPlatformFee;
uint256 expectedDefaultPlatformFee = (collectPrice_pricePerToken * 250) / MAX_BPS;
uint256 expectedSaleRecipientProceed = collectPrice_pricePerToken -
expectedPlatformFee -
expectedDefaultPlatformFee;

assertEq(balanceSaleRecipientAfter - balanceSaleRecipientBefore, expectedSaleRecipientProceed);
assertEq(platformFeeRecipientAfter - platformFeeRecipientBefore, expectedPlatformFee);
assertEq(defaultFeeRecipientAfter - defaultFeeRecipientBefore, expectedDefaultPlatformFee);
}

function test_transferNativeCurrencyToPrimarySaleRecipient()
Expand All @@ -231,6 +253,7 @@ contract DropERC1155Test_collectPrice is BaseTest {
msgValueNotZero
{
uint256 balanceSaleRecipientBefore = address(saleRecipient).balance;
uint256 balanceDefaultFeeRecipientBefore = address(defaultFeeRecipient).balance;
uint256 platformFeeRecipientBefore = address(platformFeeRecipient).balance;
proxy.collectPriceOnClaimHarness{ value: collectPrice_msgValue }(
0,
Expand All @@ -241,16 +264,20 @@ contract DropERC1155Test_collectPrice is BaseTest {
);

uint256 balanceSaleRecipientAfter = address(saleRecipient).balance;
uint256 balanceDefaultFeeRecipientAfter = address(defaultFeeRecipient).balance;
uint256 platformFeeRecipientAfter = address(platformFeeRecipient).balance;
uint256 expectedDefaultPlatformFee = (collectPrice_pricePerToken * 250) / MAX_BPS;
uint256 expectedPlatformFee = (collectPrice_pricePerToken * platformFeeBps) / MAX_BPS;
uint256 expectedSaleRecipientProceed = collectPrice_msgValue - expectedPlatformFee;
uint256 expectedSaleRecipientProceed = collectPrice_msgValue - expectedPlatformFee - expectedDefaultPlatformFee;

assertEq(balanceSaleRecipientAfter - balanceSaleRecipientBefore, expectedSaleRecipientProceed);
assertEq(platformFeeRecipientAfter - platformFeeRecipientBefore, expectedPlatformFee);
assertEq(balanceDefaultFeeRecipientAfter - balanceDefaultFeeRecipientBefore, expectedDefaultPlatformFee);
}

function test_transferERC20ToPrimarySaleRecipient() public erc20Currency pricePerTokenNotZero {
uint256 balanceSaleRecipientBefore = erc20.balanceOf(saleRecipient);
uint256 defaultFeeRecipientBefore = erc20.balanceOf(defaultFeeRecipient);
uint256 platformFeeRecipientBefore = erc20.balanceOf(platformFeeRecipient);
erc20.approve(address(proxy), collectPrice_pricePerToken);
proxy.collectPriceOnClaimHarness(
Expand All @@ -262,11 +289,16 @@ contract DropERC1155Test_collectPrice is BaseTest {
);

uint256 balanceSaleRecipientAfter = erc20.balanceOf(saleRecipient);
uint256 defaultFeeRecipientAfter = erc20.balanceOf(defaultFeeRecipient);
uint256 platformFeeRecipientAfter = erc20.balanceOf(platformFeeRecipient);
uint256 expectedDefaultPlatformFee = (collectPrice_pricePerToken * 250) / MAX_BPS;
uint256 expectedPlatformFee = (collectPrice_pricePerToken * platformFeeBps) / MAX_BPS;
uint256 expectedSaleRecipientProceed = collectPrice_pricePerToken - expectedPlatformFee;
uint256 expectedSaleRecipientProceed = collectPrice_pricePerToken -
expectedPlatformFee -
expectedDefaultPlatformFee;

assertEq(balanceSaleRecipientAfter - balanceSaleRecipientBefore, expectedSaleRecipientProceed);
assertEq(defaultFeeRecipientAfter - defaultFeeRecipientBefore, expectedDefaultPlatformFee);
assertEq(platformFeeRecipientAfter - platformFeeRecipientBefore, expectedPlatformFee);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ contract DropERC20Test_collectPrice is BaseTest {
address private primarySaleRecipient;
uint256 private msgValue;
uint256 private pricePerToken;
address private defaultFeeRecipient;

function setUp() public override {
super.setUp();
Expand All @@ -37,6 +38,7 @@ contract DropERC20Test_collectPrice is BaseTest {

dropImp = address(new HarnessDropERC20CollectPriceOnClaim());
proxy = HarnessDropERC20CollectPriceOnClaim(address(new TWProxy(dropImp, initializeData)));
defaultFeeRecipient = proxy.DEFAULT_FEE_RECIPIENT();
}

modifier pricePerTokenZero() {
Expand Down Expand Up @@ -113,17 +115,21 @@ contract DropERC20Test_collectPrice is BaseTest {
(address platformFeeRecipient, uint16 platformFeeBps) = proxy.getPlatformFeeInfo();
uint256 beforeBalancePrimarySaleRecipient = address(primarySaleRecipient).balance;
uint256 beforeBalancePlatformFeeRecipient = address(platformFeeRecipient).balance;
uint256 defaultFeeRecipientBefore = address(defaultFeeRecipient).balance;

proxy.harness_collectPrice{ value: msgValue }(primarySaleRecipient, 1 ether, currency, pricePerToken);

uint256 afterBalancePrimarySaleRecipient = address(primarySaleRecipient).balance;
uint256 afterBalancePlatformFeeRecipient = address(platformFeeRecipient).balance;
uint256 defaultFeeRecipientAfter = address(defaultFeeRecipient).balance;

uint256 defaultPlatformFeeVal = (pricePerToken * 250) / MAX_BPS;
uint256 platformFeeVal = (msgValue * platformFeeBps) / MAX_BPS;
uint256 primarySaleRecipientVal = msgValue - platformFeeVal;
uint256 primarySaleRecipientVal = msgValue - platformFeeVal - defaultPlatformFeeVal;

assertEq(beforeBalancePrimarySaleRecipient + primarySaleRecipientVal, afterBalancePrimarySaleRecipient);
assertEq(beforeBalancePlatformFeeRecipient + platformFeeVal, afterBalancePlatformFeeRecipient);
assertEq(defaultFeeRecipientAfter - defaultFeeRecipientBefore, defaultPlatformFeeVal);
}

function test_revert_erc20_msgValueNotZero()
Expand All @@ -142,18 +148,22 @@ contract DropERC20Test_collectPrice is BaseTest {
erc20.mint(address(this), pricePerToken);
ERC20(erc20).approve(address(proxy), pricePerToken);
uint256 beforeBalancePrimarySaleRecipient = erc20.balanceOf(primarySaleRecipient);
uint256 defaultFeeRecipientBefore = erc20.balanceOf(defaultFeeRecipient);
uint256 beforeBalancePlatformFeeRecipient = erc20.balanceOf(platformFeeRecipient);

proxy.harness_collectPrice(primarySaleRecipient, pricePerToken, currency, pricePerToken);

uint256 afterBalancePrimarySaleRecipient = erc20.balanceOf(primarySaleRecipient);
uint256 defaultFeeRecipientAfter = erc20.balanceOf(defaultFeeRecipient);
uint256 afterBalancePlatformFeeRecipient = erc20.balanceOf(platformFeeRecipient);

uint256 defaultPlatformFeeVal = (pricePerToken * 250) / MAX_BPS;
uint256 platformFeeVal = (pricePerToken * platformFeeBps) / MAX_BPS;
uint256 primarySaleRecipientVal = 1 ether - platformFeeVal;
uint256 primarySaleRecipientVal = 1 ether - platformFeeVal - defaultPlatformFeeVal;

assertEq(beforeBalancePrimarySaleRecipient + primarySaleRecipientVal, afterBalancePrimarySaleRecipient);
assertEq(beforeBalancePlatformFeeRecipient + platformFeeVal, afterBalancePlatformFeeRecipient);
assertEq(defaultFeeRecipientAfter - defaultFeeRecipientBefore, defaultPlatformFeeVal);
}

function test_state_erc20StoredPrimarySaleRecipient()
Expand All @@ -168,18 +178,22 @@ contract DropERC20Test_collectPrice is BaseTest {
erc20.mint(address(this), pricePerToken);
ERC20(erc20).approve(address(proxy), pricePerToken);
uint256 beforeBalancePrimarySaleRecipient = erc20.balanceOf(storedPrimarySaleRecipient);
uint256 defaultFeeRecipientBefore = erc20.balanceOf(defaultFeeRecipient);
uint256 beforeBalancePlatformFeeRecipient = erc20.balanceOf(platformFeeRecipient);

proxy.harness_collectPrice(primarySaleRecipient, pricePerToken, currency, pricePerToken);

uint256 afterBalancePrimarySaleRecipient = erc20.balanceOf(storedPrimarySaleRecipient);
uint256 defaultFeeRecipientAfter = erc20.balanceOf(defaultFeeRecipient);
uint256 afterBalancePlatformFeeRecipient = erc20.balanceOf(platformFeeRecipient);

uint256 defaultPlatformFeeVal = (pricePerToken * 250) / MAX_BPS;
uint256 platformFeeVal = (pricePerToken * platformFeeBps) / MAX_BPS;
uint256 primarySaleRecipientVal = 1 ether - platformFeeVal;
uint256 primarySaleRecipientVal = 1 ether - platformFeeVal - defaultPlatformFeeVal;

assertEq(beforeBalancePrimarySaleRecipient + primarySaleRecipientVal, afterBalancePrimarySaleRecipient);
assertEq(beforeBalancePlatformFeeRecipient + platformFeeVal, afterBalancePlatformFeeRecipient);
assertEq(defaultFeeRecipientAfter - defaultFeeRecipientBefore, defaultPlatformFeeVal);
}

function test_state_nativeCurrencyStoredPrimarySaleRecipient()
Expand All @@ -194,16 +208,20 @@ contract DropERC20Test_collectPrice is BaseTest {

uint256 beforeBalancePrimarySaleRecipient = address(storedPrimarySaleRecipient).balance;
uint256 beforeBalancePlatformFeeRecipient = address(platformFeeRecipient).balance;
uint256 defaultFeeRecipientBefore = address(defaultFeeRecipient).balance;

proxy.harness_collectPrice{ value: msgValue }(primarySaleRecipient, 1 ether, currency, pricePerToken);

uint256 afterBalancePrimarySaleRecipient = address(storedPrimarySaleRecipient).balance;
uint256 afterBalancePlatformFeeRecipient = address(platformFeeRecipient).balance;
uint256 defaultFeeRecipientAfter = address(defaultFeeRecipient).balance;

uint256 defaultPlatformFeeVal = (pricePerToken * 250) / MAX_BPS;
uint256 platformFeeVal = (msgValue * platformFeeBps) / MAX_BPS;
uint256 primarySaleRecipientVal = msgValue - platformFeeVal;
uint256 primarySaleRecipientVal = msgValue - platformFeeVal - defaultPlatformFeeVal;

assertEq(beforeBalancePrimarySaleRecipient + primarySaleRecipientVal, afterBalancePrimarySaleRecipient);
assertEq(beforeBalancePlatformFeeRecipient + platformFeeVal, afterBalancePlatformFeeRecipient);
assertEq(defaultFeeRecipientAfter - defaultFeeRecipientBefore, defaultPlatformFeeVal);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ contract DropERC721Test_collectPrice is BaseTest {
uint256 private collectPrice_pricePerToken;
address private collectPrice_currency;
uint256 private collectPrice_msgValue;
address private defaultFeeRecipient;

function setUp() public override {
super.setUp();
Expand All @@ -49,6 +50,7 @@ contract DropERC721Test_collectPrice is BaseTest {

dropImp = address(new HarnessDropERC721());
proxy = HarnessDropERC721(address(new TWProxy(dropImp, initializeData)));
defaultFeeRecipient = proxy.DEFAULT_FEE_RECIPIENT();
}

modifier pricePerTokenZero() {
Expand Down Expand Up @@ -104,6 +106,7 @@ contract DropERC721Test_collectPrice is BaseTest {
function test_transferNativeCurrency() public nativeCurrency pricePerTokenNotZero msgValueNotZero {
uint256 balanceSaleRecipientBefore = address(saleRecipient).balance;
uint256 platformFeeRecipientBefore = address(platformFeeRecipient).balance;
uint256 defaultFeeRecipientBefore = address(defaultFeeRecipient).balance;
proxy.collectionPriceOnClaim{ value: collectPrice_msgValue }(
saleRecipient,
collectPrice_quantityToClaim,
Expand All @@ -113,16 +116,20 @@ contract DropERC721Test_collectPrice is BaseTest {

uint256 balanceSaleRecipientAfter = address(saleRecipient).balance;
uint256 platformFeeRecipientAfter = address(platformFeeRecipient).balance;
uint256 defaultFeeRecipientAfter = address(defaultFeeRecipient).balance;
uint256 defaultPlatformFeeVal = (collectPrice_pricePerToken * 250) / MAX_BPS;
uint256 expectedPlatformFee = (collectPrice_pricePerToken * platformFeeBps) / MAX_BPS;
uint256 expectedSaleRecipientProceed = collectPrice_msgValue - expectedPlatformFee;
uint256 expectedSaleRecipientProceed = collectPrice_msgValue - expectedPlatformFee - defaultPlatformFeeVal;

assertEq(balanceSaleRecipientAfter - balanceSaleRecipientBefore, expectedSaleRecipientProceed);
assertEq(platformFeeRecipientAfter - platformFeeRecipientBefore, expectedPlatformFee);
assertEq(defaultFeeRecipientAfter - defaultFeeRecipientBefore, defaultPlatformFeeVal);
}

function test_transferERC20() public erc20Currency pricePerTokenNotZero {
uint256 balanceSaleRecipientBefore = erc20.balanceOf(saleRecipient);
uint256 platformFeeRecipientBefore = erc20.balanceOf(platformFeeRecipient);
uint256 defaultFeeRecipientBefore = erc20.balanceOf(defaultFeeRecipient);
erc20.approve(address(proxy), collectPrice_pricePerToken);
proxy.collectionPriceOnClaim(
saleRecipient,
Expand All @@ -133,10 +140,13 @@ contract DropERC721Test_collectPrice is BaseTest {

uint256 balanceSaleRecipientAfter = erc20.balanceOf(saleRecipient);
uint256 platformFeeRecipientAfter = erc20.balanceOf(platformFeeRecipient);
uint256 defaultFeeRecipientAfter = erc20.balanceOf(defaultFeeRecipient);
uint256 defaultPlatformFeeVal = (collectPrice_pricePerToken * 250) / MAX_BPS;
uint256 expectedPlatformFee = (collectPrice_pricePerToken * platformFeeBps) / MAX_BPS;
uint256 expectedSaleRecipientProceed = collectPrice_pricePerToken - expectedPlatformFee;
uint256 expectedSaleRecipientProceed = collectPrice_pricePerToken - expectedPlatformFee - defaultPlatformFeeVal;

assertEq(balanceSaleRecipientAfter - balanceSaleRecipientBefore, expectedSaleRecipientProceed);
assertEq(platformFeeRecipientAfter - platformFeeRecipientBefore, expectedPlatformFee);
assertEq(defaultFeeRecipientAfter - defaultFeeRecipientBefore, defaultPlatformFeeVal);
}
}
Loading

0 comments on commit 4477089

Please sign in to comment.