@@ -68,47 +68,58 @@ contract SharesFactoryTests is BaseTest {
68
68
uint256 aliceBalBefore = addrAlice.balance;
69
69
uint256 bobBalBefore = addrBob.balance;
70
70
uint256 referrerBalBefore = referralReceiver.balance;
71
- // uint256 factoryBalBefore = aWETH.balanceOf(address(sharesFactory));
72
71
uint256 depositedETHAmountBefore = sharesFactory.depositedETHAmount ();
73
72
73
+ (
74
+ uint256 buyPriceAfterFee ,
75
+ uint256 buyPrice ,
76
+ uint256 referralFee ,
77
+ uint256 creatorFee
78
+ ) = sharesFactory.getBuyPriceAfterFee (0 , 1 , referralReceiver);
74
79
_buyShare (addrBob, 0 , 1 , referralReceiver);
75
80
76
81
uint256 aliceBalAfter = addrAlice.balance;
77
82
uint256 bobBalAfter = addrBob.balance;
78
83
uint256 referrerBalAfter = referralReceiver.balance;
79
- // uint256 factoryBalAfter = aWETH.balanceOf(address(sharesFactory));
80
84
uint256 depositedETHAmountAfter = sharesFactory.depositedETHAmount ();
81
85
82
- assertEq (bobBalBefore - bobBalAfter, 5500450999999993 ); // Bob buy 1 share
83
- assertEq (aliceBalAfter - aliceBalBefore, 250020499999999 ); // Alice receive creator fee
84
- assertEq (referrerBalAfter - referrerBalBefore, 250020499999999 ); // referral receive fee
85
- // assertEq(factoryBalAfter - factoryBalBefore, 5000409999999995); // Factory aWETH balance with rounding error
86
- assertEq (depositedETHAmountAfter - depositedETHAmountBefore, 5000409999999995 ); // Factory records ETH Amount
86
+ assertEq (bobBalBefore - bobBalAfter, buyPriceAfterFee); // Bob buy 1 share
87
+ assertEq (aliceBalAfter - aliceBalBefore, creatorFee); // Alice receive creator fee
88
+ assertEq (referrerBalAfter - referrerBalBefore, referralFee); // referral receive fee
89
+ assertEq (depositedETHAmountAfter - depositedETHAmountBefore, buyPrice); // Factory records ETH Amount
87
90
88
91
uint256 bobShareBal = sharesNFT.balanceOf (addrBob, 0 );
89
92
assertEq (bobShareBal, 2 );
90
93
}
91
94
95
+ function test_buyShareWithHighVolume () public view {
96
+ (uint256 buyPriceAfterFee ,,,) = sharesFactory.getBuyPriceAfterFee (0 , 100000 , referralReceiver);
97
+ console.log ("test_buyShareWithHighVolume " , buyPriceAfterFee);
98
+ }
99
+
92
100
function test_sellShares () public {
93
101
uint256 aliceBalBefore = addrAlice.balance;
94
102
uint256 bobBalBefore = addrBob.balance;
95
103
uint256 referrerBalBefore = referralReceiver.balance;
96
- // uint256 factoryBalBefore = aWETH.balanceOf(address(sharesFactory));
97
104
uint256 depositedETHAmountBefore = sharesFactory.depositedETHAmount ();
98
105
106
+ (
107
+ uint256 sellPriceAfterFee ,
108
+ uint256 sellPrice ,
109
+ uint256 referralFee ,
110
+ uint256 creatorFee
111
+ ) = sharesFactory.getSellPriceAfterFee (1 , 1 , referralReceiver);
99
112
_sellShare (addrAlice, 1 , 1 , referralReceiver);
100
113
101
114
uint256 aliceBalAfter = addrAlice.balance;
102
115
uint256 bobBalAfter = addrBob.balance;
103
116
uint256 referrerBalAfter = referralReceiver.balance;
104
- // uint256 factoryBalAfter = aWETH.balanceOf(address(sharesFactory));
105
117
uint256 depositedETHAmountAfter = sharesFactory.depositedETHAmount ();
106
118
107
- assertEq (aliceBalAfter - aliceBalBefore, 4500163999999998 ); // Alice sell 1 share
108
- assertEq (bobBalAfter - bobBalBefore, 250009111111111 ); // Bob receive creator fee
109
- assertEq (referrerBalAfter - referrerBalBefore, 250009111111111 ); // Referral receive fee
110
- // assertEq(factoryBalBefore - factoryBalAfter, 5000182222222220); // Factory aWETH balance with rounding error
111
- assertEq (depositedETHAmountBefore - depositedETHAmountAfter, 5000182222222220 ); // Factory records ETH Amount
119
+ assertEq (aliceBalAfter - aliceBalBefore, sellPriceAfterFee); // Alice sell 1 share
120
+ assertEq (bobBalAfter - bobBalBefore, creatorFee); // Bob receive creator fee
121
+ assertEq (referrerBalAfter - referrerBalBefore, referralFee); // Referral receive fee
122
+ assertEq (depositedETHAmountBefore - depositedETHAmountAfter, sellPrice); // Factory records ETH Amount
112
123
113
124
uint256 aliceShareBal = sharesNFT.balanceOf (addrAlice, 1 );
114
125
assertEq (aliceShareBal, 0 );
0 commit comments