mirror of
https://github.com/vacp2p/minime.git
synced 2026-01-08 22:57:57 -05:00
add transfer tests
This commit is contained in:
11
.gas-report
11
.gas-report
@@ -4,8 +4,8 @@
|
||||
| 1788057 | 9919 | | | | |
|
||||
| Function Name | min | avg | median | max | # calls |
|
||||
| allowance | 0 | 269 | 0 | 808 | 3 |
|
||||
| approve | 30781 | 31244 | 31244 | 31708 | 2 |
|
||||
| balanceOf | 0 | 415 | 0 | 2753 | 35 |
|
||||
| approve | 0 | 20829 | 30781 | 31708 | 3 |
|
||||
| balanceOf | 0 | 355 | 0 | 2753 | 41 |
|
||||
| balanceOfAt | 0 | 90 | 0 | 2363 | 26 |
|
||||
| changeController | 0 | 1014 | 758 | 3558 | 5 |
|
||||
| claimTokens | 9537 | 41277 | 57148 | 57148 | 3 |
|
||||
@@ -13,15 +13,16 @@
|
||||
| createCloneToken | 0 | 916398 | 916398 | 1832796 | 2 |
|
||||
| decimals | 0 | 0 | 0 | 0 | 7 |
|
||||
| destroyTokens | 8956 | 8956 | 8956 | 8956 | 1 |
|
||||
| generateTokens | 0 | 12486 | 0 | 95751 | 23 |
|
||||
| enableTransfers | 0 | 0 | 0 | 0 | 2 |
|
||||
| generateTokens | 0 | 10636 | 0 | 95751 | 27 |
|
||||
| name | 0 | 0 | 0 | 0 | 7 |
|
||||
| parentSnapShotBlock | 0 | 0 | 0 | 0 | 8 |
|
||||
| parentToken | 0 | 0 | 0 | 0 | 8 |
|
||||
| symbol | 0 | 0 | 0 | 0 | 7 |
|
||||
| totalSupply | 0 | 273 | 0 | 1911 | 7 |
|
||||
| totalSupplyAt | 0 | 285 | 0 | 1995 | 7 |
|
||||
| transfer | 9785 | 47934 | 53385 | 75187 | 12 |
|
||||
| transferFrom | 0 | 23361 | 3495 | 66590 | 3 |
|
||||
| transfer | 526 | 36631 | 40486 | 75187 | 16 |
|
||||
| transferFrom | 0 | 17717 | 2139 | 66590 | 4 |
|
||||
|
||||
|
||||
| contracts/MiniMeTokenFactory.sol:MiniMeTokenFactory contract | | | | | |
|
||||
|
||||
@@ -11,13 +11,18 @@ DestroyTokensTest:testDeployment() (gas: 26595)
|
||||
DestroyTokensTest:testDestroyTokens() (gas: 13456)
|
||||
GenerateTokensTest:testDeployment() (gas: 26550)
|
||||
GenerateTokensTest:testGenerateTokens() (gas: 109461)
|
||||
GenerateTokensTest:test_RevertWhen_SenderIsNotController() (gas: 14966)
|
||||
GenerateTokensTest:test_RevertWhen_SenderIsNotController() (gas: 14951)
|
||||
MiniMeTokenTest:testDeployment() (gas: 26535)
|
||||
ReentrancyTest:testAttack() (gas: 229331)
|
||||
TransferTest:testDeployment() (gas: 26595)
|
||||
TransferTest:testDoubleTransfer() (gas: 92361)
|
||||
TransferTest:testDoubleTransfer2() (gas: 70580)
|
||||
TransferTest:testMultipleTransferToSame() (gas: 114591)
|
||||
TransferTest:testMultipleTransferToSame2() (gas: 92788)
|
||||
TransferTest:testTransfer() (gas: 81675)
|
||||
TransferTest:testTransfer2() (gas: 59896)
|
||||
TransferTest:testDeployment() (gas: 26617)
|
||||
TransferTest:testDoubleTransfer() (gas: 92391)
|
||||
TransferTest:testDoubleTransfer2() (gas: 70610)
|
||||
TransferTest:testInvalidDestinationTransfer() (gas: 6380)
|
||||
TransferTest:testInvalidDestinationTransfer2() (gas: 6399)
|
||||
TransferTest:testMultipleTransferToSame() (gas: 114643)
|
||||
TransferTest:testMultipleTransferToSame2() (gas: 92818)
|
||||
TransferTest:testTransfer() (gas: 81690)
|
||||
TransferTest:testTransfer2() (gas: 59888)
|
||||
TransferTest:testTransferDisabled() (gas: 7968)
|
||||
TransferTest:testTransferFromDisabled() (gas: 6571)
|
||||
TransferTest:testTransferNoBalance() (gas: 16927)
|
||||
@@ -5,8 +5,9 @@ import { Test } from "forge-std/Test.sol";
|
||||
import { Deploy } from "../script/Deploy.s.sol";
|
||||
import { DeploymentConfig } from "../script/DeploymentConfig.s.sol";
|
||||
|
||||
import { MiniMeToken } from "../contracts/MiniMeToken.sol";
|
||||
import { MiniMeTokenFactory } from "../contracts/MiniMeToken.sol";
|
||||
import { NotAuthorized } from "../contracts/Controlled.sol";
|
||||
import { MiniMeToken, TransfersDisabled, InvalidDestination, NotEnoughBalance } from "../contracts/MiniMeToken.sol";
|
||||
import { MiniMeTokenFactory } from "../contracts/MiniMeTokenFactory.sol";
|
||||
|
||||
contract MiniMeTokenTest is Test {
|
||||
DeploymentConfig internal deploymentConfig;
|
||||
@@ -54,7 +55,7 @@ contract GenerateTokensTest is MiniMeTokenTest {
|
||||
}
|
||||
|
||||
function test_RevertWhen_SenderIsNotController() public {
|
||||
vm.expectRevert();
|
||||
vm.expectRevert(NotAuthorized.selector);
|
||||
minimeToken.generateTokens(accounts[0], 10);
|
||||
}
|
||||
|
||||
@@ -202,6 +203,68 @@ contract TransferTest is MiniMeTokenTest {
|
||||
|
||||
vm.resumeGasMetering();
|
||||
}
|
||||
|
||||
function testInvalidDestinationTransfer() public {
|
||||
vm.pauseGasMetering();
|
||||
_generateTokens(accounts[0], 10);
|
||||
vm.expectRevert(InvalidDestination.selector);
|
||||
vm.prank(accounts[0]);
|
||||
vm.resumeGasMetering();
|
||||
minimeToken.transfer(address(0), 2);
|
||||
}
|
||||
|
||||
function testInvalidDestinationTransfer2() public {
|
||||
vm.pauseGasMetering();
|
||||
_generateTokens(accounts[0], 10);
|
||||
vm.expectRevert(InvalidDestination.selector);
|
||||
vm.prank(accounts[0]);
|
||||
vm.resumeGasMetering();
|
||||
minimeToken.transfer(address(minimeToken), 2);
|
||||
}
|
||||
|
||||
function testTransferDisabled() public {
|
||||
vm.pauseGasMetering();
|
||||
_generateTokens(accounts[0], 10);
|
||||
vm.prank(deployer);
|
||||
minimeToken.enableTransfers(false);
|
||||
vm.prank(accounts[0]);
|
||||
vm.expectRevert(TransfersDisabled.selector);
|
||||
vm.resumeGasMetering();
|
||||
minimeToken.transfer(accounts[1], 2);
|
||||
vm.pauseGasMetering();
|
||||
assertEq(minimeToken.balanceOf(accounts[0]), 10, "balance of sender shouldn't be reduced");
|
||||
assertEq(minimeToken.balanceOf(accounts[1]), 0, "balance of receiver shouldn't be increased");
|
||||
vm.resumeGasMetering();
|
||||
}
|
||||
|
||||
function testTransferFromDisabled() public {
|
||||
vm.pauseGasMetering();
|
||||
_generateTokens(accounts[0], 10);
|
||||
vm.prank(accounts[0]);
|
||||
minimeToken.approve(accounts[1], 2);
|
||||
vm.prank(deployer);
|
||||
minimeToken.enableTransfers(false);
|
||||
vm.prank(accounts[1]);
|
||||
vm.expectRevert(TransfersDisabled.selector);
|
||||
vm.resumeGasMetering();
|
||||
minimeToken.transferFrom(accounts[0], accounts[1], 2);
|
||||
vm.pauseGasMetering();
|
||||
assertEq(minimeToken.balanceOf(accounts[0]), 10, "balance of sender shouldn't be reduced");
|
||||
assertEq(minimeToken.balanceOf(accounts[1]), 0, "balance of receiver shouldn't be increased");
|
||||
vm.resumeGasMetering();
|
||||
}
|
||||
|
||||
function testTransferNoBalance() public {
|
||||
vm.pauseGasMetering();
|
||||
vm.prank(accounts[0]);
|
||||
vm.expectRevert(NotEnoughBalance.selector);
|
||||
vm.resumeGasMetering();
|
||||
minimeToken.transfer(accounts[1], 2);
|
||||
vm.pauseGasMetering();
|
||||
assertEq(minimeToken.balanceOf(accounts[0]), 0, "balance of sender shouldn't be reduced");
|
||||
assertEq(minimeToken.balanceOf(accounts[1]), 0, "balance of receiver shouldn't be increased");
|
||||
vm.resumeGasMetering();
|
||||
}
|
||||
}
|
||||
|
||||
contract AllowanceTest is MiniMeTokenTest {
|
||||
|
||||
Reference in New Issue
Block a user