Commit Graph

329 Commits

Author SHA1 Message Date
Diana Carvalho
b3241804c6 chore: Rename Uniswapv2SwapExecutor to UniswapV2Executor
--- don't change below this line ---
ENG-4033 Took 4 minutes
2025-01-24 17:03:00 +00:00
Diana Carvalho
ed44f4e993 fix: Add input validation size in Uniswapv2SwapExecutor
--- don't change below this line ---
ENG-4033 Took 12 minutes
2025-01-24 17:03:00 +00:00
Diana Carvalho
b9f4451769 fix: Remove exactOut logic from Uniswapv2SwapExecutor
We don't support it now

--- don't change below this line ---
ENG-4033 Took 9 minutes
2025-01-24 17:03:00 +00:00
Diana Carvalho
5627a1902b feat: UniswapV2 SwapExecutor
--- don't change below this line ---
ENG-4033 Took 52 minutes

Took 3 minutes

Took 5 minutes

Took 36 seconds

Took 2 minutes


Took 30 seconds
2025-01-24 17:03:00 +00:00
TAMARA LIPOWSKI
1fabff19c4 feat: Emit event when removing executor
- This is not so relevant for security, but it would sabotage our performance if an executor was wrongly removed, so it's worth it to know every time this happens.
2025-01-24 11:45:24 -05:00
TAMARA LIPOWSKI
5214710530 chore: docstrings and other small improvements 2025-01-24 11:39:49 -05:00
royvardhan
c982ed99e8 feat: add pause/unpause methods 2025-01-24 18:12:56 +05:30
TAMARA LIPOWSKI
fb9f340cb7 refactor: Move contract code-checking logic to SwapExecutionDispatcher
I was inspired to do this because, when disabling the slither check for the delegatecall when calling the swap executor, I realized it's not clear from the same contract that we have already checked for contract code existence when setting the executor. This made me feel uneasy, as this contract can then not stand alone and must rely on the higher level contract to safely check for code existence, otherwise the delegatecall is unsafe. Keeping this logic in a separate contract seems error-prone to me, as we may remove the check for code existence without immediately realizing the implications of doing so.

For this reason I have organized it as follows:
- Logic/tests relating to proper roles/access control in the main TychoRouter.
- Lower-level logic/tests that checks contract validity before setting the executor in the SwapExecutionDispatcher
2025-01-23 15:40:24 -05:00
TAMARA LIPOWSKI
b616e11354 fix: Silence slither warnings
- low level calls are fine, since we are checking for success, and we have already checked for contract existence when setting swap executors
- dead-code is silenced
- fix solidity version
2025-01-23 15:22:31 -05:00
TAMARA LIPOWSKI
825af0f8d7 test: Thorough tests for main SwapExecutionDispatcher method 2025-01-23 15:22:31 -05:00
TAMARA LIPOWSKI
e91ee96129 feat: delegatecall to executor in SwapExecutionDispatcher 2025-01-23 15:22:31 -05:00
royvardhan
056582ca2f feat: add tests for withdraw, fee and make it DRY 2025-01-23 21:04:05 +05:30
Harsh Vardhan Roy
193910e650 Merge branch 'main' into router/hr/ENG-4050-fee-methods 2025-01-23 15:04:11 +05:30
royvardhan
15d3becf60 fix: use FEE_SETTER_ROLE for setFeeReceiver 2025-01-23 15:00:47 +05:30
TAMARA LIPOWSKI
34243e9016 docs: remove mention of delegatecall from verifier doc
- Because we will more likely use a regular call (safer and delegatecall is unnecessary)
2025-01-22 14:21:49 -05:00
royvardhan
0dc7edccfa feat: add fee methods 2025-01-22 23:52:06 +05:30
TAMARA LIPOWSKI
59950a7575 feat: Emit events when setting executors/verifiers 2025-01-22 12:50:43 -05:00
TAMARA LIPOWSKI
4cb3286c94 feat: Set swap executors and verifiers
- Moved the deployment method into a test template for organization
- Created skeletons of dispatcher contracts
- Added all possible test cases for thoroughness
2025-01-22 12:23:22 -05:00
royvardhan
f3363a24f4 fix: disable slither for native withdraw 2025-01-22 22:14:10 +05:30
royvardhan
136adafa6d fmt 2025-01-22 22:09:05 +05:30
royvardhan
2c3af0ff31 feat: add receiver in event 2025-01-22 22:05:28 +05:30
royvardhan
c6c0ddd498 fix: use send for native transfer 2025-01-22 22:01:30 +05:30
royvardhan
0c05874477 fix: ci 2025-01-22 20:54:36 +05:30
royvardhan
78fa890cd3 feat: add withdraw methods 2025-01-22 20:33:24 +05:30
TAMARA LIPOWSKI
ab28a4730d feat: initial TychoRouter skeleton
- remappings.txt is used for more elegant imports
- decided not to include all helper methods in skeleton - just main swap method. They are properly documented in the jira tasks.
- add filter-paths to slither to exclude submodules, otherwise we will get slither warnings about permit2 and open-zeppelin using different solidity versions:

```
	- Version constraint ^0.8.20 is used by:
		-^0.8.20 (lib/openzeppelin-contracts/contracts/access/AccessControl.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/access/IAccessControl.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Context.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol#4)
		-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4)
	- Version constraint ^0.8.0 is used by:
		-^0.8.0 (lib/permit2/src/interfaces/IAllowanceTransfer.sol#2)
		-^0.8.0 (lib/permit2/src/interfaces/IEIP712.sol#2)
	- Version constraint ^0.8.28 is used by:
```
2025-01-20 17:21:46 -05:00
TAMARA LIPOWSKI
68dddc0663 chore: Rename TychoRouter typo
- Accidentally copy pasta'd
2025-01-17 17:58:12 -05:00
TAMARA LIPOWSKI
f987125489 fix: Bump to latest Solidity version (0.8.28)
Earlier versions have known vulnerabilities.

Slither output:
```
INFO:Detectors:
Version constraint ^0.8.13 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- VerbatimInvalidDeduplication
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess
	- StorageWriteRemovalBeforeConditionalTermination
	- AbiReencodingHeadOverflowWithStaticArrayCleanup
	- DirtyBytesArrayToStorage
	- InlineAssemblyMemorySideEffects
	- DataLocationChangeInInternalOverride
	- NestedCalldataArrayAbiReencodingSizeValidation.
It is used by:
	- ^0.8.13 (src/Counter.sol#2)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity
INFO:Slither:foundry/ analyzed (2 contracts with 93 detectors), 1 result(s) found
```
2025-01-17 16:57:08 -05:00
TAMARA LIPOWSKI
2998bb3fb1 feat: Add Slither to README.md and include contract file to test 2025-01-17 16:39:21 -05:00
Diana Carvalho
e16d7ccb8e feat: Add foundry environment and CI 2025-01-17 09:50:26 +00:00