Commit Graph

115 Commits

Author SHA1 Message Date
pedrobergamini
a76c35d95e chore: resolve merge conflicts 2025-08-08 11:41:00 -03:00
pedrobergamini
196900b749 chore: update encoder 2025-08-08 11:35:34 -03:00
Diana Carvalho
003ab7cea8 fix: After merging main fixes
Took 10 minutes
2025-08-08 14:54:40 +01:00
Diana Carvalho
42609df650 Merge branch 'refs/heads/main' into feat/bebop-rfq-encoder-and-executor
# Conflicts:
#	config/executor_addresses.json
#	foundry/scripts/deploy-executors.js
#	foundry/test/TychoRouterSequentialSwap.t.sol
#	foundry/test/assets/calldata.txt
#	src/encoding/models.rs
#	tests/common/mod.rs

Took 21 minutes
2025-08-08 14:40:03 +01:00
pedrobergamini
2583e9239e chore: fix extract_aggregate_taker_amount and bebop unit tests 2025-08-05 22:44:32 -03:00
pedrobergamini
504a4db702 chore: include partialFillOffset as part of user_data 2025-08-05 20:32:42 -03:00
pedrobergamini
c0f675ff21 chore: fix selectors at encoder 2025-08-04 18:12:04 -03:00
pedrobergamini
75ef134e73 chore: add filter / map loop for taker_amount calculation 2025-08-04 14:00:04 -03:00
pedrobergamini
fe5f72e278 chore: update swap_encoders.rs 2025-08-04 10:31:15 -03:00
TAMARA LIPOWSKI
c217702560 feat: Add protocol state to Swap object
- This consists of lots of necessary battles with lifetimes.
2025-07-22 12:13:39 -04:00
Diana Carvalho
2c25b5a18f feat: Use Chain from tycho-core and remove current implementation
--- don't change below this line ---
ENG-4705 Took 29 minutes
2025-07-10 17:20:53 +01:00
Diana Carvalho
0f679d6e06 fix: Use native token curve address and not regular zero address
Took 18 minutes


Took 1 minute
2025-06-27 17:59:37 +01:00
Diana Carvalho
312269dabb fix: Fix wrong log in CurveEncoder
Took 5 minutes
2025-06-27 09:39:13 +01:00
Diana Carvalho
01ab5d22b1 fix: Move Bebop tests according to new setup
Encoding: integration tests are now separate and inside their own test folder
Execution: the final integration test should be inside of the protocol test file now and not in TychoRouterProtocolIntegration.t.sol. For this I had to move the BebopExecutionHarness.t.sol outside of the Bebop test file (because of imports)

Took 24 minutes

# Commit time for manual adjustment:
# Took 2 minutes
2025-06-24 10:42:09 +01:00
Diana Carvalho
f1281eb703 Merge branch 'refs/heads/main' into feat/bebop-rfq-encoder-and-executor
# Conflicts:
#	foundry/test/TychoRouterProtocolIntegration.t.sol
#	foundry/test/TychoRouterTestSetup.sol
#	foundry/test/assets/calldata.txt
#	foundry/test/protocols/BebopExecutor.t.sol
#	src/encoding/evm/tycho_encoders.rs

Took 4 minutes
2025-06-24 10:17:33 +01:00
Diana Carvalho
1d263f8b4c fix: After rebase fixes
Took 6 minutes
2025-06-23 15:02:21 +01:00
greendianasaur
7dc5099927 Merge branch 'main' into cleanup/dc/ENG-4619-remove-unnecessary-clones 2025-06-23 14:18:35 +01:00
Diana Carvalho
e704151404 fix: Remove unnecessary clones from encoding
Use references if possible

Took 3 minutes
2025-06-23 12:54:09 +01:00
Diana Carvalho
525c16a117 feat(curve): Support passing eth/weth instead of weth/eth in encoding
Took 2 minutes
2025-06-23 12:44:53 +01:00
pedrobergamini
638ab73ea8 chore: fix cargo linting 2025-06-17 23:29:42 -03:00
pedrobergamini
90ac0a4c98 test: fix all aggregate order tests and a few executor bugs 2025-06-17 23:27:03 -03:00
pedrobergamini
5b8de033de test: update encoder tests for aggregate orders 2025-06-17 21:39:47 -03:00
pedrobergamini
5418846619 chore: refactor Aggregate orders, fix Single orders integration tests and calldata generation 2025-06-16 23:08:54 -03:00
pedrobergamini
84fbe0ded6 refactor: update Rust encoding to remove Multi order type 2025-06-16 15:32:42 -03:00
pedrobergamini
8a82dbfe34 chore: test multi and aggregate orders, support all signature types available 2025-06-08 02:58:52 -03:00
pedrobergamini
0106c5c425 chore: move BebopOrderType to models.rs 2025-06-08 01:01:51 -03:00
pedrobergamini
71a8401670 chore: address merge conflicts, implement user_data for Bebop 2025-06-08 00:36:23 -03:00
pedrobergamini
68d4d083c3 test: add uniswap v3 => bebop sequential swap 2025-06-07 18:36:01 -03:00
pedrobergamini
2124b49a68 test: bebop single encoding integration test 2025-06-07 17:46:08 -03:00
pedrobergamini
5282e2bc83 chore: fix breaking tests and start addressing PR review comments 2025-06-06 19:17:08 -03:00
Diana Carvalho
06ce28c8fd feat: Add BalancerV3Encoder
Took 1 hour 7 minutes


Took 2 minutes
2025-06-05 17:22:16 +01:00
Diana Carvalho
eec50f8822 feat: Extend Swap to hold user_data: Option<Bytes>
Took 25 minutes
2025-06-05 15:47:40 +01:00
pedrobergamini
17e535494b fix: cargo and forge fmt 2025-06-04 19:57:40 -03:00
pedrobergamini
ad0a9991da feat: support multi and aggregate orders 2025-06-04 19:41:13 -03:00
pedrobergamini
7e7e3f0e01 feat: implement encoder and executor with single order support 2025-06-04 17:57:09 -03:00
Diana Carvalho
5fa97d08e5 feat: Upgrade alloy to "1.0.6"
Took 18 minutes
2025-05-30 11:55:44 +01:00
Diana Carvalho
73c1a2db6a chore: Rename selector to function signature
Took 8 minutes
2025-05-27 09:37:24 +01:00
Diana Carvalho
b540f83742 Merge branch 'refs/heads/main' into audit/dc/one-transfer-from-only
# Conflicts:
#	foundry/test/assets/calldata.txt

Took 33 minutes
2025-05-21 09:50:20 +01:00
Diana Carvalho
fcaacf21fb feat(curve): Get coin indexes from static attributes
This way we don't need extra RPC calls to get these values

Took 57 minutes
2025-05-19 13:29:18 +01:00
Diana Carvalho
cc9e88cfed feat: Add transferFromNeeded to non permit2 methods
This will block an attempt to transfer from the user when we expect the funds to already be in the router.

chores:
- add docs
- in EncodingContext, rename transfer to transfer_type

Took 58 minutes
2025-05-19 12:02:57 +01:00
Diana Carvalho
d4244a7089 fix: Fix tests (not there yet)
Took 58 minutes
2025-05-16 17:57:29 +01:00
Diana Carvalho
38748925b3 feat: Bring back TransferType and simplify encoding logic
Took 1 hour 53 minutes
2025-05-16 16:59:35 +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
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
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
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
TAMARA LIPOWSKI
bcef8f69f6 feat: Transfer Optimizations in MaverickV2
- Also added integration test to test the optimizations, where we can see the in and out transfers being optimized if we enable verbose foundry testing
- Fixed typo in swap encoder builder initialization
2025-04-29 15:46:19 -04:00
Tamara
b6a3ce624d Merge branch 'main' into feat/maverick-v2-executor 2025-04-29 12:01:20 -04:00