Commit Graph

338 Commits

Author SHA1 Message Date
Harsh Vardhan Roy
43772b61cf Merge pull request #49 from propeller-heads/router/hr/ENG-4035-2-Add-Encoded-Test
feat: add swap encoder test in balancer v2 executor
2025-02-04 21:14:32 +05:30
Harsh Vardhan Roy
409d5a61cf Merge branch 'main' into router/hr/ENG-4035-2-Add-Encoded-Test 2025-02-04 21:10:54 +05:30
semantic-release-bot
00171ea72e chore(release): 0.28.0 [skip ci]
## [0.28.0](https://github.com/propeller-heads/tycho-execution/compare/0.27.0...0.28.0) (2025-02-04)

### Features

* Tycho encoder validation ([4bc6159](4bc615913e))

### Bug Fixes

* test_validate_fails_for_unwrap_wrong_last_swap ([0660321](06603210bc))
2025-02-04 15:37:28 +00:00
Tamara
9980170fe5 Merge branch 'main' into encoding/tnl/fix-wrapping-indices 2025-02-04 10:35:53 -05:00
Tamara
1dbeebb77b Merge pull request #43 from propeller-heads/router/tnl/ENG-4201-validation
feat: Tycho encoder validation
2025-02-04 10:35:37 -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
royvardhan
e6310d65d1 fix: executor test naming 2025-02-04 20:56:21 +05:30
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
semantic-release-bot
580a86bc0f chore(release): 0.27.0 [skip ci]
## [0.27.0](https://github.com/propeller-heads/tycho-execution/compare/0.26.0...0.27.0) (2025-02-04)

### Features

* Add complex swap to quickstart example ([80454f0](80454f012d))
* Add simple quickstart example ([84d162d](84d162d418))

### Bug Fixes

* bring back one #[allow(dead_code)] ([ae315b4](ae315b452a))
* Calculate min_amount_out correctly and extend test to prove this ([de1c782](de1c782bc1))
2025-02-04 09:27:05 +00:00
dianacarvalho1
8a8abf8d86 Merge pull request #42 from propeller-heads/encoding/dc/ENG-4087-example
feat: Example
2025-02-04 09:22:50 +00:00
dianacarvalho1
5143b16937 Merge branch 'main' into encoding/dc/ENG-4087-example 2025-02-04 09:19:55 +00:00
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
semantic-release-bot
c4eb7b03b2 chore(release): 0.26.0 [skip ci]
## [0.26.0](https://github.com/propeller-heads/tycho-execution/compare/0.25.3...0.26.0) (2025-02-03)

### Features

* Verify that no amount in is left in the router ([0860d67](0860d67d7a))
2025-02-03 17:43:04 +00:00
dianacarvalho1
14d205108f Merge pull request #44 from propeller-heads/router/dc/check-amount-in
feat: Verify that no amount in is left in the router.
2025-02-03 17:38:57 +00:00
Diana Carvalho
2aa1df9b0d chore: Move methods around and improve docstrings
--- don't change below this line ---
ENG-4087 Took 30 seconds


Took 5 seconds
2025-02-03 16:52:31 +00:00
Diana Carvalho
0860d67d7a feat: Verify that no amount in is left in the router
--- don't change below this line ---
ENG-4087 Took 1 hour 41 minutes


Took 2 minutes
2025-02-03 16:52:26 +00:00
Diana Carvalho
80454f012d feat: Add complex swap to quickstart example
--- don't change below this line ---
ENG-4087 Took 16 minutes
2025-02-03 10:55:37 +00: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
84d162d418 feat: Add simple quickstart example
--- don't change below this line ---
ENG-4087 Took 14 seconds
2025-01-31 18:42:23 +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
semantic-release-bot
9d32291c97 chore(release): 0.25.3 [skip ci]
## [0.25.3](https://github.com/propeller-heads/tycho-execution/compare/0.25.2...0.25.3) (2025-01-31)

### Bug Fixes

* transfer ETH if tokenOut is ETH ([3245ea7](3245ea7295))
2025-01-31 17:23:04 +00:00
Tamara
2e9be09509 Merge pull request #40 from propeller-heads/router/dc/return-eth
fix: transfer ETH if tokenOut is ETH
2025-01-31 12:20:34 -05:00
Tamara
443b418099 Merge branch 'main' into router/dc/return-eth 2025-01-31 12:19:29 -05:00
semantic-release-bot
db31cde6b1 chore(release): 0.25.2 [skip ci]
## [0.25.2](https://github.com/propeller-heads/tycho-execution/compare/0.25.1...0.25.2) (2025-01-31)

### Bug Fixes

* Accidentally changed wrong test's calldata ([faacd3f](faacd3f25c))
* Expect decimal during encoding, add assert to test ([5a81ed6](5a81ed6be5))
2025-01-31 17:18:47 +00:00
Tamara
c5e40f2933 Merge branch 'main' into router/dc/return-eth 2025-01-31 12:17:30 -05:00
Tamara
8a97ad5e15 Merge pull request #41 from propeller-heads/router/tnl/ENG-4052-integration-test-split
feat: Router split swap integration test
2025-01-31 12:16:16 -05:00
TAMARA LIPOWSKI
faacd3f25c fix: Accidentally changed wrong test's calldata 2025-01-31 12:11:24 -05: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
dianacarvalho1
81e0859c10 Merge branch 'main' into router/dc/return-eth 2025-01-31 16:47:53 +00:00
TAMARA LIPOWSKI
ff3c7aa629 test: Split swap integration test 2025-01-31 11:34:50 -05:00
Diana Carvalho
3245ea7295 fix: transfer ETH if tokenOut is ETH
And not only if unwrapETH is true
There might be pools that deal in ETH directly

--- don't change below this line ---
ENG-4081 Took 7 minutes
2025-01-31 15:58:23 +00:00
semantic-release-bot
b0b24edbd6 chore(release): 0.25.1 [skip ci]
## [0.25.1](https://github.com/propeller-heads/tycho-execution/compare/0.25.0...0.25.1) (2025-01-31)

### Bug Fixes

* Fix selector - shouldn't contain spaces ([5d6f0c1](5d6f0c1673))
* Fix token index order in strategy encoding. ([c85c353](c85c353e34))
2025-01-31 15:40:53 +00:00
dianacarvalho1
62a93a6200 Merge pull request #38 from propeller-heads/router/tnl/ENG-4052-integration-test
test: Router integration tests
2025-01-31 15:38:23 +00: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
TAMARA LIPOWSKI
a9c68a4de0 test: (WIP) Router integration tests
TODO it don't pass


Took 14 seconds

Took 12 minutes
2025-01-31 15:34:12 +00:00
dianacarvalho1
07020e3f6e Merge pull request #39 from propeller-heads/encoding/dc/ENG-4084-tycho-encoder-test
test: Add test for tycho encoder
2025-01-31 15:31:43 +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
semantic-release-bot
d153c69b8f chore(release): 0.25.0 [skip ci]
## [0.25.0](https://github.com/propeller-heads/tycho-execution/compare/0.24.0...0.25.0) (2025-01-31)

### Features

* Add ChainId model ([089e7d2](089e7d2e0f))
* Implement SplitSwapStrategyEncoder ([feb91cc](feb91cc639))
* Remove generalisation on user approvals manager ([3a69bbf](3a69bbf603))
* Simplify router encoder ([6e8d2ed](6e8d2ede59))

### Bug Fixes

* Don't leak evm specific code to interfaces(PrivateKeySigner, Chain) ([7a8872c](7a8872cc41))
* Post merge's fixes ([a28b548](a28b54888e))
* replace all unwraps with proper error handling ([5f3d440](5f3d4406bd))
* Use abi_encode_packed in ple_encode() ([82e671d](82e671df39))
* Use max instead of min to get the min_amount_out ([575c5be](575c5bea5e))
2025-01-31 09:25:10 +00:00
dianacarvalho1
cc2526d29a Merge pull request #35 from propeller-heads/encoding/dc/ENG-4081-split-swap-strategy
feat: Implement Split Swap strategy encoder
2025-01-31 09:21:12 +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