royvardhan
4d97c3f16d
feat: add tests for wrap unwrap case
2025-02-04 22:34:10 +05:30
royvardhan
b0dda205b0
chore: break tests
2025-02-04 22:34:10 +05:30
royvardhan
b8013c6e7e
chore: move validation methods inside impl
2025-02-04 22:34:10 +05:30
royvardhan
b69aef9b8f
feat: add tests for split swap validations
2025-02-04 22:34:10 +05:30
royvardhan
95edd5b1fe
fix: checks in validations
2025-02-04 22:34:10 +05:30
royvardhan
f80ffa924f
feat: add validation for split swap
2025-02-04 22:34:10 +05:30
TAMARA LIPOWSKI
ff283bc333
fix: test fixes after merge
2025-02-04 11:49:27 -05:00
Tamara
e8f22a2eee
Merge branch 'main' into encoding/tnl/fix-wrapping-indices
2025-02-04 11:47:58 -05:00
Harsh Vardhan Roy
409d5a61cf
Merge branch 'main' into router/hr/ENG-4035-2-Add-Encoded-Test
2025-02-04 21:10:54 +05:30
Tamara
9980170fe5
Merge branch 'main' into encoding/tnl/fix-wrapping-indices
2025-02-04 10:35:53 -05:00
TAMARA LIPOWSKI
06603210bc
fix: test_validate_fails_for_unwrap_wrong_last_swap
...
ETH was the given token not the checked token, which was wrong.
2025-02-04 10:28:16 -05:00
TAMARA LIPOWSKI
7482d228f2
chore: merge main
2025-02-04 10:04:42 -05:00
TAMARA LIPOWSKI
f873bb5187
refactor: check given/checked tokens before swap tokens
...
It's a more intuitive order, since these are higher-level attributes.
Also remove the validation from the trait - it doesn't have to be part of the trait.
2025-02-04 10:01:38 -05:00
royvardhan
6333072178
feat: add swap encoder test in balancer v2 executor
2025-02-04 19:56:52 +05:30
TAMARA LIPOWSKI
3f4e27a348
fix: Fix bug with token indexing when wrapping/unwrapping
...
The issue was that we weren't indexing WETH properly since it was looking for the WETH address in tokens, when only native ETH would be in there
- Found by adding integration tests for the wrapping and unwrapping cases.
2025-02-03 22:46:20 -05:00
TAMARA LIPOWSKI
4bc615913e
feat: Tycho encoder validation
...
Validates:
- Proper sequence of input, output, and first/last swap tokens for wrap/unwrap cases
- All solutions contain at least one swap
- Only exact in solutions are inputted (since we don't yet support exact out)
2025-02-03 17:04:00 -05:00
Diana Carvalho
ae315b452a
fix: bring back one #[allow(dead_code)]
...
--- don't change below this line ---
ENG-4087 Took 3 minutes
2025-01-31 18:45:29 +00:00
Diana Carvalho
de1c782bc1
fix: Calculate min_amount_out correctly and extend test to prove this
...
--- don't change below this line ---
ENG-4087 Took 1 minute
2025-01-31 18:42:09 +00:00
Diana Carvalho
1a8e0f102c
chore: Make objects public
...
Remove dead_code check and leftover file after a merge
Improve some docstrings
--- don't change below this line ---
ENG-4087 Took 1 hour 39 minutes
2025-01-31 18:40:59 +00:00
TAMARA LIPOWSKI
5a81ed6be5
fix: Expect decimal during encoding, add assert to test
...
- The util function was previously expecting a value between 0 and 100, which we felt was a weird UI.
- In integration test - make sure we spent all input tokens
2025-01-31 12:04:53 -05:00
TAMARA LIPOWSKI
ff3c7aa629
test: Split swap integration test
2025-01-31 11:34:50 -05:00
Diana Carvalho
c85c353e34
fix: Fix token index order in strategy encoding.
...
The contract relies on this order!!
Remove TODOs and comments
--- don't change below this line ---
ENG-4081 Took 1 hour 12 minutes
Took 12 seconds
2025-01-31 15:34:12 +00:00
TAMARA LIPOWSKI
4d697bfebf
test: Router integration test with many TODOs
2025-01-31 15:34:12 +00:00
TAMARA LIPOWSKI
b01fa4cf04
test: Change some addresses to match contract test
...
- Use Alice's PK to match our router test, set her as the receiver too
- Component id should be a usv2 pool
- Use our router test's router address as the test's router address
- Use our test's contract (address(this)) as the sender
2025-01-31 15:34:12 +00:00
TAMARA LIPOWSKI
5d6f0c1673
fix: Fix selector - shouldn't contain spaces
...
I found this because I kept hitting the fallback function, meaning the selector wasn't recognized
2025-01-31 15:34:12 +00:00
Diana Carvalho
b047d9762e
test: Add test for tycho encoder
...
Rename RouterEncoder to TychoEncoder
--- don't change below this line ---
ENG-4081 Took 21 minutes
2025-01-31 12:41:37 +00:00
TAMARA LIPOWSKI
5f3d4406bd
fix: replace all unwraps with proper error handling
...
- Or more elegant assignments in place of the `.is_some()` and `.unwrap()` method.
2025-01-30 17:19:54 -05:00
Diana Carvalho
01d101acb5
chore: Move ple_encode to EVMStrategyEncoder
...
--- don't change below this line ---
ENG-4081 Took 3 minutes
2025-01-30 19:47:36 +00:00
Diana Carvalho
575c5bea5e
fix: Use max instead of min to get the min_amount_out
...
between slippaged amount and checked amount
Save router's address as Bytes and not String
--- don't change below this line ---
ENG-4081 Took 7 minutes
2025-01-30 19:44:57 +00:00
Diana Carvalho
a28b54888e
fix: Post merge's fixes
...
Because of the renaming, git couldn't identify the new files and handle the conflicts gracefully.
Copied implementation for ExecutorStrategyEncoder from main
Rollbacked on decision to encode the executor address and selector inside the SwapEncoders. This is only necessary for certain strategies. So it should be done at the strategy level
--- don't change below this line ---
ENG-4081 Took 35 minutes
2025-01-30 19:38:22 +00:00
Diana Carvalho
01df08deaa
Merge remote-tracking branch 'origin/encoding/dc/ENG-4081-split-swap-strategy' into encoding/dc/ENG-4081-split-swap-strategy
2025-01-30 19:01:32 +00:00
TAMARA LIPOWSKI
5b86ae4ac5
docs: (split strategy test) better calldata comments
...
...for clarity and debugging purposes.
2025-01-30 12:45:36 -05:00
Diana Carvalho
8fd3deba70
Merge branch 'refs/heads/main' into encoding/dc/ENG-4081-split-swap-strategy
...
# Conflicts:
# src/encoding/evm/router_encoder.rs
# src/encoding/evm/strategy_encoder/encoder.rs
# src/encoding/evm/strategy_encoder/selector.rs
# src/encoding/strategy_encoder.rs
Took 2 minutes
2025-01-30 16:08:08 +00:00
royvardhan
9c35da0760
chore: rename straight_to_pool to direct_execution
2025-01-30 21:17:25 +05:30
royvardhan
8cb95f0950
feat: remove exact_out from USV2
2025-01-30 21:17:25 +05:30
royvardhan
95d45975ad
chore: encoder test naming
2025-01-30 21:17:25 +05:30
royvardhan
4ef9b0b82f
chore: use Bytes
2025-01-30 21:17:25 +05:30
royvardhan
1b8bf56c75
feat: resolve pr comments
2025-01-30 21:17:25 +05:30
royvardhan
0196767eff
feat: add swap test with hex for univ2 executor
2025-01-30 21:17:25 +05:30
royvardhan
c482e21a5f
feat: add univ2 executor test with hex
2025-01-30 21:17:25 +05:30
royvardhan
0007c4924c
chore: update executor encoder tests
2025-01-30 21:17:25 +05:30
royvardhan
d2289c3765
chore: update test
2025-01-30 21:17:25 +05:30
royvardhan
ad70a0d5a8
feat: add executor encoder test
2025-01-30 21:17:25 +05:30
royvardhan
5c396512cf
feat: update ExecutorEncoder interface and relevant types
2025-01-30 21:17:25 +05:30
Diana Carvalho
82e671df39
fix: Use abi_encode_packed in ple_encode()
...
--- don't change below this line ---
ENG-4081 Took 17 minutes
2025-01-30 15:39:07 +00:00
TAMARA LIPOWSKI
83bbabddd1
chore: rename amountOwed -> amountIn
...
...for consistency.
Also remove comment. We will keep exact_out to avoid future interface changes.
2025-01-30 10:33:09 -05:00
Diana Carvalho
6e8d2ede59
feat: Simplify router encoder
...
Don't make selector() a member of the StrategyEncoder trait. It is needed only for certain strategies. The strategy should manage it itself.
--- don't change below this line ---
ENG-4081 Took 17 minutes
2025-01-30 15:19:09 +00:00
Diana Carvalho
089e7d2e0f
feat: Add ChainId model
...
Remove to_chain_id helper method
--- don't change below this line ---
ENG-4081 Took 28 minutes
2025-01-30 15:01:53 +00:00
Diana Carvalho
0e70e827a0
chore: Rename encoder to strategy/swap_encoder
...
This was confusing me when I had all of them open at the same time. Better to be extra explicit
--- don't change below this line ---
ENG-4081 Took 2 minutes
2025-01-30 13:19:09 +00:00
Diana Carvalho
7a8872cc41
fix: Don't leak evm specific code to interfaces(PrivateKeySigner, Chain)
...
Pass the signer's private key as a string around and only create a PrivateKeySigner inside Permit2 (where it's needed)
Use tycho-core Chain instead of Alloy ChainID. Create a temp method to convert between them
Create a EVMSwapEncoder that implements the executor_selector (that is evm specific)
--- don't change below this line ---
ENG-4081 Took 1 hour 7 minutes
2025-01-30 13:17:23 +00:00