pedrobergamini
97a961ecb8
chore: fix single encoding bebop tests
2025-08-10 16:59:06 -03:00
pedrobergamini
a76c35d95e
chore: resolve merge conflicts
2025-08-08 11:41:00 -03:00
pedrobergamini
c0d49f95ad
chore: commit progress so far on test fixing
2025-08-08 11:35:43 -03: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
1336eb5f90
chore: start implementing test changes related to partialFillOffset and encoded receiver
2025-08-05 22:45:48 -03:00
pedrobergamini
504a4db702
chore: include partialFillOffset as part of user_data
2025-08-05 20:32:42 -03:00
pedrobergamini
49754e654e
chore: fix filledTakerAmount calldata override logic
2025-08-04 18:12:31 -03:00
pedrobergamini
7ef587575a
chore: create internal _swap method for harness usage
2025-08-04 14:51:58 -03:00
pedrobergamini
3c7a846ff4
chore: update filledTakerAmount 0 logic
2025-08-04 14:23:20 -03:00
pedrobergamini
276d611157
chore: update BebopExecutor
2025-08-04 10:25:00 -03:00
TAMARA LIPOWSKI
9e2f228a47
fix: use encodePacked to encode if approval needed
...
- Also approve max amount for the tycho router to use (to save on gas)
2025-07-09 14:32:43 -04:00
TAMARA LIPOWSKI
1b6a24fd75
fix: silence slither on native address setting
...
- We don't need a zero address check, since we expect this to be the zero address for most cases.
2025-07-09 12:21:12 -04:00
TAMARA LIPOWSKI
3752c155ea
feat: Handle native ETH outputs
...
- In this case, the ETH needs to be manually transferred to the reactor.
- Native ETH input is not supported for UniswapX
Source:
https://support.uniswap.org/hc/en-us/articles/17544708791821-Are-there-network-costs-for-UniswapX
2025-07-09 12:21:12 -04:00
TAMARA LIPOWSKI
e243667f9e
feat: (WIP) Handle approvals in UniswapXFiller
...
Reasons for using regular approvals instead of permit2:
- More simplicity, simpler setup
- Unfortunately we won't be able to "expire" approvals, which is a risk we may be okay with taking - since one advantage of this is that we will be able save on gas by not approving the reactor every single time (is this our intention?)
TODO:
- Do we really need input tokens to pass through our router?
- Handle native ETH (double check how this is transferred in the reactor)
2025-07-09 12:21:12 -04:00
TAMARA LIPOWSKI
a2d123a263
fix: disable slither warnings
...
- locked-ether: We do have a withdraw method. Not sure why it doesn't register with slither. Already tried renaming.
- low-level-calls: This low level call is integral to the design of our filler contract.=
2025-07-08 14:00:17 -04:00
TAMARA LIPOWSKI
a114dfc9da
feat: UniswapXFiller callback - naive implementation
...
Added testCallback + execution integration test with real onchain data
2025-07-08 12:05:15 -04:00
TAMARA LIPOWSKI
d61469ea67
fix: Make slither happy
...
Naming conventions (mixed case) for variables
2025-07-08 10:24:40 -04:00
TAMARA LIPOWSKI
00f22d62c1
feat: Take reactor address as input to UniswapXFiller
...
- Put reactor zero address check in separate line for more easy debugging.
- Also includes other small cosmetic changes.
2025-07-08 09:48:25 -04:00
TAMARA LIPOWSKI
ce1fe1dd94
feat: UniswapXFiller skeleton
2025-07-07 18:13:06 -04:00
greendianasaur
1e499e1e3b
Merge branch 'main' into balancer-v3/dc/ENG-4425-deploy
2025-07-01 17:28:36 +01:00
Diana Carvalho
f9ef8e0dbd
feat: Deploy BebopExecutor
...
Took 40 minutes
2025-06-25 10:04:03 +01:00
Diana Carvalho
266e30d1aa
feat: Deploy Balancer V3 executor
...
Took 19 minutes
2025-06-24 11:52:12 +01:00
pedrobergamini
80c2ef7881
chore: improve test assertion and function ordering
2025-06-23 14:38:57 -03:00
pedrobergamini
4c7f33d81b
chore: fix _getActualFilledTakerAmount return value
2025-06-18 13:08:50 -03:00
die-herdplatte
b331a43392
forge fmt
2025-06-18 16:22:34 +02:00
pedrobergamini
033a4bfe9f
chore: fix slither info warning
2025-06-17 23:30:48 -03:00
pedrobergamini
90ac0a4c98
test: fix all aggregate order tests and a few executor bugs
2025-06-17 23:27:03 -03:00
die-herdplatte
72553bf98d
Fix slither issues
2025-06-17 11:34:31 +02:00
die-herdplatte
58ce241c63
Add support for Ekubo MEV-resist extension
2025-06-17 11:02:37 +02:00
pedrobergamini
5418846619
chore: refactor Aggregate orders, fix Single orders integration tests and calldata generation
2025-06-16 23:08:54 -03:00
pedrobergamini
d527479037
refactor: simplify BebopExecutor by removing Multi order type, improve settlement flow
2025-06-16 15:32:07 -03:00
pedrobergamini
8a82dbfe34
chore: test multi and aggregate orders, support all signature types available
2025-06-08 02:58:52 -03:00
pedrobergamini
71a8401670
chore: address merge conflicts, implement user_data for Bebop
2025-06-08 00:36:23 -03:00
pedrobergamini
2124b49a68
test: bebop single encoding integration test
2025-06-07 17:46:08 -03:00
Diana Carvalho
4f58977007
fix(BalancerV3Executor): Do data.length check at the beginning of swap
...
Took 16 minutes
2025-06-06 17:24:07 +01:00
Diana Carvalho
941879d5d6
fix(BalancerV3Executor): Slice callback data nicely
...
Make a stricter data validation
Took 35 minutes
2025-06-06 17:01:48 +01:00
Diana Carvalho
269e328b5f
feat: Add integration tests for balancer v3
...
Refactor BalancerV3Executor to have an inner _swapCallback method with the real swapping logic. Then we have two external methods:
- handleCallback: called by the router. Here we need to remove the first 68 bytes (4 selector + 32 dataOffset + 32 dataLength)
- swapCallback: called by the Vault directly if we are swapping against the executor directly (no router involved)
Took 1 minute
2025-06-05 17:22:17 +01:00
Diana Carvalho
806ce4e62c
feat: Make BalancerV3Executor inherit from ICallback
...
Took 37 minutes
2025-06-05 14:59:22 +01:00
Diana Carvalho
f34db52f09
feat: Implement BalancerV3Executor
...
Took 2 hours 32 minutes
Took 8 seconds
Took 13 minutes
2025-06-05 14:59:22 +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
946c4391e8
fix: SafeCast => V4SafeCast to fix build issue
2025-06-04 19:13:13 -03:00
pedrobergamini
af0f4c454e
chore: implement correct native ETH support
2025-06-04 19:12:07 -03:00
pedrobergamini
7e7e3f0e01
feat: implement encoder and executor with single order support
2025-06-04 17:57:09 -03:00
Diana Carvalho
1f26fbce14
fix: Small misc improvements from audit
...
- In RestrictTransferFrom:
- Compare tokenIn with tokenIn from storage
- Correct docstrings
- Recompute storage slots with new names
- Rename transferFromNeeded to isTransferFromAllowed
- Don't track amount spent but subtract from amount allowed
- In TychoRouter: Rename transferFromNeeded to isTransferFromAllowed
Took 32 minutes
2025-05-22 10:52:00 +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
TAMARA LIPOWSKI
e0c195f63d
fix: Fix remaining tests after latest encoding changes
2025-05-16 14:14:21 -04:00
Diana Carvalho
d4244a7089
fix: Fix tests (not there yet)
...
Took 58 minutes
2025-05-16 17:57:29 +01:00
TAMARA LIPOWSKI
eeebd51114
feat: perform all transfers in executors
...
For organization (and thus safety) purposes.
Rename to RestrictTransferFrom.sol so that we can perform multiple transfer froms (upto an allowance) in the case of split swaps (where the split is the first swap).
TODO: Fix tests.
2025-05-16 11:59:54 -04:00
TAMARA LIPOWSKI
9b59b8b434
Revert "chore: Remove permit2 from executor constructor..."
...
This reverts commit b0b98c5e5d .
2025-05-16 11:23:43 -04:00