150 Commits

Author SHA1 Message Date
Gad Elbaz
1f6820c245 feat: add certora specs and audit 2023-11-23 08:52:49 +01:00
Ricardo Guilherme Schmidt
6d9d4f5487 fix claimTokens missing event for address(0) 2023-09-27 10:57:17 -03:00
Ricardo Guilherme Schmidt
54f0ee1857 move sampleCampaing to tests 2023-09-27 10:57:17 -03:00
Ricardo Guilherme Schmidt
1e121ec34b remove unused code from Nonces 2023-09-27 10:57:17 -03:00
Ricardo Guilherme Schmidt
2d8f9c87cf remove redundant variable 2023-09-27 10:57:17 -03:00
Ricardo Guilherme Schmidt
ae22357df7 remove _burn impossible overflow 2023-09-27 10:57:17 -03:00
Ricardo Guilherme Schmidt
eab5b42b17 remove _mint impossible overflow 2023-09-27 10:57:17 -03:00
Ricardo Guilherme Schmidt
2831aeae66 remove onTransfer impossible overflow check 2023-09-27 10:57:17 -03:00
Ricardo Guilherme Schmidt
178e7f0b7b remove approveAndCall impossible condition 2023-09-27 10:57:17 -03:00
Ricardo Guilherme Schmidt
ff900fec1d improve updateValueAtNow 2023-09-27 10:57:17 -03:00
Ricardo Guilherme Schmidt
524cb67110 improve getValueAt 2023-09-27 10:57:17 -03:00
Ricardo Guilherme Schmidt
3720dc7baa remove minimetokenfactory 2023-09-27 10:57:17 -03:00
Ricardo Guilherme Schmidt
8b541109ec fix gas snapshot and gas report 2023-09-26 12:43:16 -03:00
r4bbit
0a23a2440d test: mark unsupported function as pure 2023-09-26 11:12:30 +02:00
r4bbit
2a241edd26 fix(MiniMeBase): make burn() and mint() virtual
Otherwise they can't be overriden, which is necessary when inheriting
contracts. This commit also renames `burn()` to `_burn()` and `mint()`
to `_mint()`, simply to allow inheriting contracts to make use of those
non-underscored function names instead.
2023-09-26 11:12:13 +02:00
r4bbit
ed9dcfc602 refactor: use ECDSA utils function for typed hash digest 2023-09-26 11:11:38 +02:00
Ricardo Guilherme Schmidt
ada12df49f remove console from import on tests 2023-09-26 11:11:38 +02:00
Ricardo Guilherme Schmidt
d7f0d85921 add tests for permit 2023-09-26 11:11:38 +02:00
Ricardo Guilherme Schmidt
a522ebb09d Make MiniMe implement ERC2612
Fixes vacp2p/minime#5
2023-09-26 11:11:38 +02:00
Ricardo Guilherme Schmidt
38d62c5517 fixes suggested by r4bbit 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
30bec58904 add more calls in clone test 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
7db2900a30 lint 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
df3283f42f add initial balances check 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
c3358184de add TestSnapshotReads 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
32a95501db add testFutureParentSnapshot 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
2e02cea311 add receiving and rejecting ether tests 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
9ca2aa6164 add test generate token supply overflow 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
ce893b35e9 use IERC20 for claimTokens test 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
4a95c739b5 add test for transfer with controller zero 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
bb7bc3a6d7 add tests destroy tokens balance and supply check 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
22f02cb230 add rejecting controller tests 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
11bc73a42e fix error in merge 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
6cf3528f01 add approve and call test 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
16d3feb5d9 add allowance tests 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
e69486197c add transfer tests 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
86a889ab1c add claimtokens test 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
18827999ec add more transfer tests for different situations 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
c105703c8a fix gas metering 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
64fdb4f4e8 lint 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
10870e7908 add strings at assertions 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
3000e7614e add test for updateValueAtNow when same block 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
0e98139632 pause and resume gas meterings 2023-09-26 02:47:46 -03:00
Ricardo Guilherme Schmidt
678a35589c removed createCloneToken functionality 2023-09-26 02:29:57 -03:00
Ricardo Guilherme Schmidt
c64845eddc fix overflow checks 2023-09-25 20:07:27 -03:00
Ricardo Guilherme Schmidt
3f95a3bcf9 make abstract and concrete versions
add gas reports

move event from abstract to concrete

lint
2023-09-25 12:54:24 -03:00
Ricardo Guilherme Schmidt
461d865527 rename minitoken 2023-09-25 12:54:24 -03:00
Ricardo Guilherme Schmidt
e715502da1 Check for reentrancy double spend on onTransfer (#29)
* chore: add missing trailing slash in remapping

This was not causing any compilation issues, but the solidity language
server gets confused by this and complains about incorrect import
statements otherwise.

* TokenController interactions after balance updates

This test demonstrates that all transfer methods are vulnerable to
callback reentrancy attacks if the controller of the `MiniMeToken` is
malicious.

---------

Co-authored-by: r4bbit <445106+0x-r4bbit@users.noreply.github.com>
2023-09-22 20:25:23 +02:00
Ricardo Guilherme Schmidt
85ca91ccc9 replace forge test with pnpm gas-report 2023-09-19 10:36:28 -03:00
Ricardo Guilherme Schmidt
aa8cee3b8f gas-report output to console + save filter output 2023-09-19 10:36:28 -03:00
Ricardo Guilherme Schmidt
6bf228162d add gas-report tracking 2023-09-19 10:36:28 -03:00