Commit Graph

1065 Commits

Author SHA1 Message Date
Diana Carvalho
046775b7ae feat: Loosen version constrain on tycho-common
Took 14 minutes
2025-05-15 16:19:31 +01:00
Diana Carvalho
ccde611d81 Merge branch 'refs/heads/main' into audit/dc/one-transfer-from-only 2025-05-15 15:52:55 +01:00
Diana Carvalho
4b2aa36424 Merge branch 'refs/heads/main' into audit/dc/one-transfer-from-only 2025-05-15 15:52:17 +01:00
semantic-release-bot
7f7084ca7a chore(release): 0.90.0 [skip ci]
## [0.90.0](https://github.com/propeller-heads/tycho-execution/compare/0.89.0...0.90.0) (2025-05-15)

### Features

* Explicitly handle the TransferType.NONE case ([65bd0d0](65bd0d0749))
* Verify the amount out was received correctly for arbitrage swaps ([70230bf](70230bf05f))

### Bug Fixes

* Revert if the TransferType is not valid ([b0c254a](b0c254add4))
2025-05-15 14:51:47 +00:00
dianacarvalho1
584559022b Merge pull request #200 from propeller-heads/ci/dc/fix-lint-ci
ci: fix lint ci
2025-05-15 15:49:02 +01:00
Diana Carvalho
2e71a3e0ff ci: fix lint ci
Took 1 minute
2025-05-15 15:44:41 +01:00
Diana Carvalho
e726571114 ci: Update lint CI
Took 8 minutes


Took 5 seconds

Took 11 seconds

Took 11 seconds
2025-05-15 15:23:24 +01:00
TAMARA LIPOWSKI
69c8325a1d chore: OneTransferFromOnly docs + proper slots
Also revert instead of returning if multiple `transferFrom`s are attempted - as this signals that encoding is incorrect or has been messed with.
2025-05-15 10:08:40 -04:00
Diana Carvalho
6cff470999 Merge branch 'refs/heads/main' into audit/dc/one-transfer-from-only
# Conflicts:
#	foundry/src/executors/TokenTransfer.sol

Took 38 seconds
2025-05-15 14:53:18 +01:00
Diana Carvalho
09ff7691f8 chore: Make naming consistent: transfer_needed, approval_needed, etc
Took 46 minutes
2025-05-15 14:52:43 +01:00
TAMARA LIPOWSKI
4a0533b8ea chore: Remove transfer flag from curve + balancer
we will never perform a manual transfer into these protocols, as they require the tokens to be in the router contract in order to perform a transferFrom.
2025-05-15 09:15:32 -04:00
TAMARA LIPOWSKI
b0b98c5e5d chore: Remove permit2 from executor constructor...
whenever not needed.
2025-05-15 08:23:55 -04:00
Diana Carvalho
ee687038c5 fix: Make all tests pass!
Delete TokenTransfer.sol
Make slither happy

Bugfixes:
- Executors
  - Ekubo:
    - Fix the POOL_DATA_OFFSET value and remove sender from callback data
    - Use SafeERC20
  - Maverick and Univ2: Use safeTransfer and not safeTransferFrom
  - Univ3: update expected data length
  - Univ4: update the selectors (the signature changed)
- Router:
  - For split swap we don't need to pass the tokenInReceiver, it should always be the router address
  - For single and sequential: change order of the parameters (to be before the permit2 specific objects)
- Encoders:
  - Update selector signatures
  - For split swap pass the transfer_from (we might not need to if the token in is ETH)

Took 2 hours 51 minutes
2025-05-15 13:11:34 +01:00
TAMARA LIPOWSKI
27dfde3118 feat: Support new transfer logic in all executors
TODO:
- Fix failing tests
- Remove permit2 from initialization of contracts
2025-05-14 20:42:19 -04:00
Diana Carvalho
0f9af65846 feat: Support new transfer logic in encoding
The transfer from the user into the router is supposed to happen in the router (we only support this in the executors for callback constrained protocols). This is necessary because of some security concerns that were found in the audit. This way we reduce the space of attack.
- Refactored TransferOptimization not to handle TransferTypes anymore but just return bools.
- Split get_transfer_type into get_transfers and get_in_between_transfer. Updates tests
- Updated the strategies to use this
- Updated function signatures to pass transfer_from and funds_receiver
- Updated SwapEncoders to handle this
- SplitSwapStrategy just assumes all tokens are sent to and from the router at all times

Took 2 hours 46 minutes
2025-05-14 18:00:19 +01:00
dianacarvalho1
00f201440b Merge pull request #195 from propeller-heads/router/dc/ENG-4529-arbitrage-balance-check
feat: Arbitrage balance check and explicitly handle the TransferType.NONE case
2025-05-14 15:00:00 +01:00
Diana Carvalho
9401ce2620 feat: Sketch for OneTransferFromOnly.sol
Took 49 seconds
2025-05-14 11:22:54 +01:00
Diana Carvalho
b0c254add4 fix: Revert if the TransferType is not valid
Took 8 minutes
2025-05-14 09:03:18 +01:00
Diana Carvalho
65bd0d0749 feat: Explicitly handle the TransferType.NONE case
Took 8 minutes
2025-05-14 09:03:17 +01:00
Diana Carvalho
70230bf05f feat: Verify the amount out was received correctly for arbitrage swaps
Took 25 minutes


Took 3 minutes

Took 23 seconds
2025-05-14 09:03:17 +01:00
semantic-release-bot
67eba8d7d2 chore(release): 0.89.0 [skip ci]
## [0.89.0](https://github.com/propeller-heads/tycho-execution/compare/0.88.0...0.89.0) (2025-05-14)

### Features

* Remove special handling of the Univ4 callback ([f14c8ee](f14c8ee29b))
2025-05-14 07:54:05 +00:00
dianacarvalho1
497c3bc337 Merge pull request #194 from propeller-heads/router/dc/ENG-4515-univ4-callback
feat: Remove special handling of the Univ4 callback
2025-05-14 08:51:24 +01:00
dianacarvalho1
c117cea8e7 Merge branch 'main' into router/dc/ENG-4515-univ4-callback 2025-05-13 17:11:34 +01:00
dianacarvalho1
71379db2c1 Merge pull request #196 from propeller-heads/ci/dc/fix-lint-ci
ci: fix cargo clippy command in CI
2025-05-13 15:02:14 +01:00
Diana Carvalho
37e9d2b712 ci: fix cargo clippy command in CI
Took 7 minutes


Took 4 minutes
2025-05-13 14:56:30 +01:00
Diana Carvalho
444fc2d7b0 docs: Add comment on receive() in CurveExecutor
Took 9 minutes
2025-05-12 10:48:07 +01:00
Diana Carvalho
f14c8ee29b feat: Remove special handling of the Univ4 callback
The problem was that the pool manager was expecting an ABI encoded result to be returned and we were not returning that (we were returning just a result)
Special thanks to Max for figuring this out

Took 31 minutes
2025-05-09 10:48:54 +01:00
dianacarvalho1
fb1737c1f5 Merge pull request #191 from propeller-heads/router/dc/ENG-4492-remove-self-maverick
chore: Remove unused self from MaverickV2Executor
2025-05-08 15:22:11 +01:00
dianacarvalho1
58047165f6 Merge branch 'main' into router/dc/ENG-4492-remove-self-maverick 2025-05-08 15:18:15 +01:00
semantic-release-bot
5ee9d79a15 chore(release): 0.88.0 [skip ci]
## [0.88.0](https://github.com/propeller-heads/tycho-execution/compare/0.87.0...0.88.0) (2025-05-06)

### Features

* Choose single strategy if it's a grouped swap of the same protocol ([079759a](079759a75b))
2025-05-06 12:55:48 +00:00
dianacarvalho1
d077929b6a Merge branch 'main' into router/dc/ENG-4492-remove-self-maverick 2025-05-06 13:53:12 +01:00
dianacarvalho1
ad860e3c8c Merge pull request #192 from propeller-heads/encoding/dc/ENG-4478-group-swaps-before-selecting-strategy
feat: Choose single strategy if it's a grouped swap of the same protocol
2025-05-06 13:52:58 +01:00
Diana Carvalho
079759a75b feat: Choose single strategy if it's a grouped swap of the same protocol
Add and update tests

--- don't change below this line ---
ENG-4478 Took 45 minutes


Took 10 seconds

Took 14 seconds
2025-05-05 12:15:33 +01:00
semantic-release-bot
d98c179c46 chore(release): 0.87.0 [skip ci]
## [0.87.0](https://github.com/propeller-heads/tycho-execution/compare/0.86.0...0.87.0) (2025-05-05)

### Features

* Update PancakeV2 executor addresses ([872aa57](872aa576e6))

### Bug Fixes

* pass permit2 in deployment scripts ([ba19b00](ba19b000dc))
2025-05-05 09:16:33 +00:00
dianacarvalho1
cb5c0f16ea Merge pull request #183 from propeller-heads/router/tnl/deploy-pancake-v2
feat: PancakeV2 redeployment
2025-05-05 10:14:25 +01:00
dianacarvalho1
b5cd53de11 Merge branch 'main' into router/tnl/deploy-pancake-v2 2025-05-05 10:11:28 +01:00
Diana Carvalho
0125118d22 chore: Remove unused self from MaverickV2Executor
--- don't change below this line ---
ENG-4492 Took 7 minutes
2025-05-05 10:06:10 +01:00
semantic-release-bot
aeaeff12fd chore(release): 0.86.0 [skip ci]
## [0.86.0](https://github.com/propeller-heads/tycho-execution/compare/0.85.1...0.86.0) (2025-05-02)

### Features

* Change revert condition in _wrapETH ([0400005](04000059e5))
* Propagate the entire result of the callback ([8a7c390](8a7c39052d))
2025-05-02 14:58:02 +00:00
dianacarvalho1
aa18ccb72a Merge pull request #189 from propeller-heads/router/dc/ENG-4476-generalize-callback-return
feat: Misc audit fixes (callback result and revert condition in _wrapETH)
2025-05-02 15:55:53 +01:00
Diana Carvalho
c4b9a1d769 docs: Mention audits in the README
--- don't change below this line ---
ENG-4476 Took 6 minutes
2025-05-02 12:55:04 +01:00
Diana Carvalho
04000059e5 feat: Change revert condition in _wrapETH
--- don't change below this line ---
ENG-4476 Took 1 minute
2025-05-02 12:48:03 +01:00
Diana Carvalho
8a7c39052d feat: Propagate the entire result of the callback
--- don't change below this line ---
ENG-4476 Took 41 minutes
2025-05-02 12:47:03 +01:00
semantic-release-bot
750382fc6f chore(release): 0.85.1 [skip ci]
## [0.85.1](https://github.com/propeller-heads/tycho-execution/compare/0.85.0...0.85.1) (2025-05-01)

### Bug Fixes

* Derive Clone in TychoEncoders ([f99bd29](f99bd296a1))
2025-05-01 00:46:56 +00:00
Tamara
229f9f5043 Merge pull request #187 from propeller-heads/encoding/tnl/derive-clone
fix: Derive Clone in TychoEncoders
2025-04-30 20:44:54 -04:00
Tamara
f021857b9f Merge branch 'main' into encoding/tnl/derive-clone 2025-04-30 20:41:06 -04:00
semantic-release-bot
b43d5cad96 chore(release): 0.85.0 [skip ci]
## [0.85.0](https://github.com/propeller-heads/tycho-execution/compare/0.84.0...0.85.0) (2025-05-01)

### Features

* add mav executor ([0ac722d](0ac722d91f))
* add swap encode ([72a651d](72a651d453))
* Transfer Optimizations in MaverickV2 ([bcef8f6](bcef8f69f6))

### Bug Fixes

* add maverick for build ([bab30e3](bab30e3958))
* maverick test fork block ([4c93830](4c938306bd))
* swap test ([d103ca9](d103ca9e33))
2025-05-01 00:39:21 +00:00
Tamara
5e60e09a13 Merge pull request #186 from propeller-heads/router/tnl/fix-maverick-execution
feat: Transfer Optimizations in MaverickV2
2025-04-30 20:37:11 -04:00
TAMARA LIPOWSKI
58e8e67494 chore: dummy commit
CI won't run
2025-04-30 20:24:21 -04:00
TAMARA LIPOWSKI
5f7ce7d5da chore: nightly fmt 2025-04-30 11:20:52 -04:00
TAMARA LIPOWSKI
d09497faca chore: Load maverick calldata from file
- Also remove irrelevant comment
2025-04-30 11:18:04 -04:00