0.64.0 (2025-03-13)
- update tycho-core to 0.61.1 (53b8c6a)
0.63.0 (2025-03-10)
- add cyclicSwapAmountOut tracker in _swap, add split cylic tests (4d67df4)
- amountConsumed check in _swapChecked for cyclic swap (91f36fe)
- remove amountIn addition to amountOut in _swap for cyclic swaps, add testCyclicSwapWithTwoPools test to verify (57acbd5)
0.62.0 (2025-03-06)
- enforce checked amount when encoding to router (a4476e0)
0.61.0 (2025-03-05)
- Rename Etherscan in deployment verification (bc54eac)
0.60.0 (2025-03-05)
- Check min amount out is not zero (5c28d77)
0.59.0 (2025-03-05)
- add transferFrom in swap and move core swap logic inside _swapChecked (f853739)
- TychoRouter swap check test naming and docs (7833086)
0.58.2 (2025-03-05)
- Make permit2 permit an action in the universal router (db9c8cd)
0.58.1 (2025-03-04)
- add amountIn in error TychoRouter__AmountInDiffersFromConsumed (a3bffd4)
- inequality check for amountConsumed and amountIn (6f421eb)
0.58.0 (2025-03-03)
- Rename ETH_RPC_URL -> RPC_URL (9bb0d9b)
0.57.0 (2025-03-03)
- Rename shortcut methods of encoder builder (6f572ee)
0.56.0 (2025-02-28)
- update base executor addresses (bc47c12)
- make USV2 factory configurable in Executor (33973a6)
0.55.0 (2025-02-27)
- Change license to SPDX-License-Identifier: UNLICENSED everywhere (59eb219)
- Deploy to mainnet (again) (fedc504)
- Deploy to mainnet. Update all addresses (3d65ac8)
- Verify contracts on etherscan (79045e2)
0.54.0 (2025-02-27)
- Deploy all executors (f95c74f)
- Add a value to the Transaction if token in is ETH (05a1843)
- Get correct runtime everywhere (6a6f2d3)
- the key for univ4 fee is key_lp_fee (9eb4299)
0.53.1 (2025-02-27)
- remove 0 amount check in _unwrapEth (0273f58)
0.53.0 (2025-02-26)
- support base deployment (7ca9120)
- (deployment) add tenderly keys to json files (1bdcbb8)
- proper executor address json after merge (adfcb3d)
- rename mainnet -> ethereum (ac35256)
- TENDERLY_RPC_URL -> RPC_URL (e5759b9)
0.52.2 (2025-02-26)
0.52.1 (2025-02-26)
0.52.0 (2025-02-26)
- Add deployment and fund wallet scripts (cbea0bd)
- Deploy executors and set them in router (02a9da1)
- Deploy on mainnet (34563c3)
- Set roles script (90cf194)
- Verify router contract on tenderly (77ba949)
- Unify both executor addresses in one file (57789a4)
0.51.2 (2025-02-26)
- Restrict receive callers to have code (801976f)
0.51.1 (2025-02-25)
0.51.0 (2025-02-24)
- hardcode callback and swap selection in dispatcher (58116e0)
- rm selector from usv3, usv4, update tests, and rename dispatcher file (69745b1)
- usv4 integration tests and remove selector from swap/strategy encoder (18efe03)
0.50.0 (2025-02-22)
- add target verification for usv2 and usv3 using _computePairAddress (7936ba1)
0.49.0 (2025-02-21)
- Use openzepplin's sendValue instead of send for ETH transfers (0ba5d02)
0.48.1 (2025-02-21)
- Native ETH input/output integration tests/fixes (a7aa4d7)
0.48.0 (2025-02-21)
- Adapt SplitSwapStrategyEncoder to have optional permit2 logic (20e6419)
- Implement Clone for EVMTychoEncoder (8b2af4f)
- Update tycho-core (c6c734d)
0.47.0 (2025-02-20)
- Pass proper group tokens in EncodingContext... (81c8a04)
0.46.1 (2025-02-20)
0.46.0 (2025-02-20)
- add native and weth addresses for supported networks (83f1955)
- add decode_hex to models (7dd59db)
0.45.0 (2025-02-20)
- TychoRouter swap method not requiring Permit2 (c3482a5)
0.44.0 (2025-02-19)
- add integration test for complex swaps (5e9b388)
- add new attributes in encoding context, update usv4 swap encoder and tests (1bfe656)
- add single swap integration test for usv4 executor (529456f)
- add usv4 swap encoder with single swap test (789416b)
- add util fns, change callback_selector to string, update first_swap check (9219dd3)
- early return in usv4 swap encoder for second swap, add utils (f7ddace)
- update test_encode_uniswap_v4_grouped (baeebb9)
- update EncodingContext in strategy_encoder (7f3aca9)
0.43.0 (2025-02-19)
- Add methods to builder to set chain and strategy independently (684de4f)
- Create a EVMEncoderBuilder (03506fa)
- Remove direct_execution from Solution (8537d27)
0.42.0 (2025-02-19)
- Support swap grouping for executor strategy (ac83117)
0.41.0 (2025-02-18)
- add back uniswapV3SwapCallback in router (260f9d8)
- add uniswapV3SwapCallback in USV3 executor (9d3b96f)
- Change signature of _handleCallback to take only bytes calldata (2aa63d7)
- fix input decoding in usv3 executor and execution dispatcher (80500e6)
- move callback testing to usv3 executor (5853de6)
- rename execution dispatcher to dispatcher and use dispatcher for USV4 callback (ad91e48)
- update _handleCallback, add verifyCallback with docs (076586d)
- update handleCallback in USV3 to do verification (cccb252)
- update new interface in codebase (bd19713)
0.40.0 (2025-02-18)
- (WIP) UniswapV4 encoding (f32210b)
- Generalize group_swaps method (47b6180)
- Merge USV4 strategy back into split strategy (44aabf1)
0.39.0 (2025-02-14)
- univ4: Implement swapping with multiple hops (21a8c1a)
- univ4: Refactor input and handle single swap case (be7883a)
- Fix PLE tests that break after foundry update (69d03f0)
- univ4: Append callback data instead of prepending (4d0f5ce)
- univ4: Make slither happy (8a8bc69)
0.38.0 (2025-02-13)
- Verify that the executor exists in the uni v4 callback (4c5e3bf)
0.37.0 (2025-02-12)
- add callback (ed90cb4)
- add new pair test (7ca647f)
- add router params (e62c332)
- add test for UniswapV4Executor (4599f07)
- add univ4 executor (cb4c8f4)
- handle amounts in unlockCallback (b2097ca)
- move encoding to test (c264084)
- support multi swap decoding (d998c88)
- update solc and add V4Router into UniswapV4Executor (bdd3daf)
- _pay and msgSender (d790682)
- add equality check, amountInOrOut check, update _decodeData (b47cff3)
- git submodules and strict equality check in v4 executor (a8cc84d)
- handle native token balance changes (0c40e9e)
- reciever issue (ae0b07b)
- remove executeActions wrapper, strict equality checks and rename swap return (2371ab2)
- remove extra _receiver and redundant asserts (ff3209b)
- rm callback fn (1a36c33)
- rm redundant transfer (24d4e76)
0.36.2 (2025-02-12)
- Miscellaneous audit remarks (582533f)
0.36.1 (2025-02-11)
0.36.0 (2025-02-11)
- Add selector to Transaction (dd7ecac)
0.35.1 (2025-02-11)
- (TychoRouter) Revert if empty swaps (37efe52)
0.35.0 (2025-02-07)
- Add clone to EVMTychoEncoder (b333d60)
- Add uniswap v3 to swap encoders list (c791c93)
- Get current runtime if there is any (12f85cc)
- Increase tycho-core version (6bbb6da)
- Make executors_file_path optional and use a default value if None (4680a4b)
- Read default executors at compile time into a json (f5232f4)
- Remove router_address from TychoEncoder (a234ff7)
- The execution structs should receiver tycho_core Chain (cad9f39)
- Use block_in_place instead of block_on (d4af59d)
- After rebase fixes (bef4740)
- Change version of serde to match tycho-simulation (3116fef)
- Don't have a DEFAULT_CONFIG_PATH in bin (d7f20aa)
- Uniswap v3 pool fee is big endian, not little endian (0c9050c)
- univ3: The fee keyword is just "fee" and not "pool_fee" (164d062)
0.34.0 (2025-02-06)
- add default private key (d3ad0ba)
- add encoder bin (4f7fe3b)
- add md (d3be9d1)
- add serde primitive, update command (b938560)
- default native action (80f1ca9)
- remove direct execution hardcode (ae6b1ed)
- remove manual parsing (fd4045e)
- simplify (8d97f73)
- update cli params and docs (32c3bd2)
- use clap for cli and resolve pr comments (a5166f2)
- chain.into() (520bee5)
- ci (a3cf443)
- ci (6cec83f)
- fmt (3bb5b0c)
- fmt (7df1995)
- remove redundant parse checks (c4f9fd0)
- rm v4-core (1dad36d)
0.33.0 (2025-02-06)
- Get native/wrapped addresses from chain (8cd7d9f)
- Take Chain object containing native/wrapped addresses (e83b8d9)
- Do not let user specify the native/wrapped token (1a07c7d)
0.32.0 (2025-02-06)
- Accept any struct that implements Into in Swap (cb14022)
0.31.0 (2025-02-05)
- add tests for split swap validations (b69aef9)
- add tests for wrap unwrap case (4d97c3f)
- add validation for split swap (f80ffa9)
- checks in validations (95edd5b)
- get_mock_split_swap_strategy_encoder (7b72263)
- use native action to validate path (c787f5e)
0.30.1 (2025-02-04)
- deprecated signature (576f89d)
0.30.0 (2025-02-04)
- Refactor Registries (23875b8)
0.29.1 (2025-02-04)
0.29.0 (2025-02-04)
- add swap encoder test in balancer v2 executor (6333072)
- executor test naming (e6310d6)
0.28.0 (2025-02-04)
- Tycho encoder validation (4bc6159)
- test_validate_fails_for_unwrap_wrong_last_swap (0660321)
0.27.0 (2025-02-04)
- bring back one #[allow(dead_code)] (ae315b4)
- Calculate min_amount_out correctly and extend test to prove this (de1c782)
0.26.0 (2025-02-03)
- Verify that no amount in is left in the router (0860d67)
0.25.3 (2025-01-31)
- transfer ETH if tokenOut is ETH (3245ea7)
0.25.2 (2025-01-31)
- Accidentally changed wrong test's calldata (faacd3f)
- Expect decimal during encoding, add assert to test (5a81ed6)
0.25.1 (2025-01-31)
- Fix selector - shouldn't contain spaces (5d6f0c1)
- Fix token index order in strategy encoding. (c85c353)
0.25.0 (2025-01-31)
- Add ChainId model (089e7d2)
- Implement SplitSwapStrategyEncoder (feb91cc)
- Remove generalisation on user approvals manager (3a69bbf)
- Simplify router encoder (6e8d2ed)
- Don't leak evm specific code to interfaces(PrivateKeySigner, Chain) (7a8872c)
- Post merge's fixes (a28b548)
- replace all unwraps with proper error handling (5f3d440)
- Use abi_encode_packed in ple_encode() (82e671d)
- Use max instead of min to get the min_amount_out (575c5be)
0.24.0 (2025-01-30)
- rename batchSetExecutor to setExecutors (c653062)
- replace setExecutor with batchSetExecutor (ea504fa)
- rm redundant test (24e95b1)
0.23.0 (2025-01-30)
- add executor encoder test (ad70a0d)
- add swap test with hex for univ2 executor (0196767)
- add univ2 executor test with hex (c482e21)
- remove exact_out from USV2 (8cb95f0)
- resolve pr comments (1b8bf56)
- update ExecutorEncoder interface and relevant types (5c39651)
0.22.0 (2025-01-30)
- fixed USV3 Verification (96af542)
- Implement generic callback (fafeba9)
- UniswapV3Executor and integration tests (ca32446)
- USV3 verification (7822c4f)
- Remove amountReceived and dataOffset from the callback verification (63b94b5)
- Remove amountReceived, dataOffset from ICallbackVerifier interface (33ada0c)
- Remove exactOut from USV3 encoding (d8b44f6)
0.21.0 (2025-01-28)
- add balancer v2 executor (a700189)
- add node.js workflow (25756ff)
- add tests for Balancer V2 executor (a4e405f)
- approve max (cb6d165)
- update remappings and remove node modules (b65b682)
- balancer v2 encoder bug (a6a624b)
- build (5dc5e23)
- ci (b1ca478)
- clippy (877f625)
- exclude node modules from slither (4b3c5c5)
- filter paths slither (6c30cf8)
- rm exactOut (44db2e5)
- slither (b854282)
- slither (7a83edd)
0.20.0 (2025-01-28)
- Add executor and selector to Swap (c2347ac)
- Add swap method (first attempt) (a8f6fc1)
- Add swap method with tests (50429ad)
- Assume that funds will never go straight from a pool to the receiver (655cf91)
- Smother slither and add a reentrancy guard in swap() (dfa7033)
- Wrap and unwrap ETH (3b2d9fc)
0.19.0 (2025-01-28)
- UniswapV3SwapEncoder (9c63e09), closes /github.com/propeller-heads/tycho-protocol-sdk/blob/3c08359cf112e15c137dd5256b8dc8e9cd6c1626/substreams/ethereum-uniswap-v3/src/modules/1_map_pool_created.rs#L64
0.18.0 (2025-01-27)
- Perform staticcall to CallbackVerifier (ad0748e)
0.17.0 (2025-01-27)
- add pause/unpause methods (c982ed9)
0.16.0 (2025-01-27)
- add balance v2 encoder test (9cecea8)
- async (7c198ff)
0.15.0 (2025-01-24)
- UniswapV2 SwapExecutor (5627a19)
- Add input validation size in Uniswapv2SwapExecutor (ed44f4e)
- Remove exactOut logic from Uniswapv2SwapExecutor (b9f4451)
0.14.0 (2025-01-24)
- delegatecall to executor in SwapExecutionDispatcher (e91ee96)
- Emit event when removing executor (1fabff1)
0.13.0 (2025-01-23)
- Implement Permit2 (ce9ae49)
0.12.0 (2025-01-23)
- add tests for withdraw, fee and make it DRY (056582c)
- pr comments (9c99b73)
0.11.0 (2025-01-23)
0.10.0 (2025-01-23)
- add fee methods (0dc7edc)
- use FEE_SETTER_ROLE for setFeeReceiver (15d3bec)
0.9.0 (2025-01-22)
0.8.0 (2025-01-22)
- ci (0c05874)
- disable slither for native withdraw (f3363a2)
- undo rm lib (a1e7b55)
- use send for native transfer (c6c0ddd)
0.7.0 (2025-01-22)
- UniswapV2 Swap Encoder (7b4bf02)
0.6.0 (2025-01-21)
- Add openzeppelin lib for access control (a8f62ee)
- Add permit2 lib for approval management (cb9053b)
- initial TychoRouter skeleton (ab28a47), closes lib/openzeppelin-contracts/contracts/access/AccessControl.sol#4 lib/openzeppelin-contracts/contracts/access/IAccessControl.sol#4 lib/openzeppelin-contracts/contracts/utils/Context.sol#4 lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol#4 lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4 lib/permit2/src/interfaces/IAllowanceTransfer.sol#2 lib/permit2/src/interfaces/IEIP712.sol#2
- Filter paths when running slither in CI (96809d4)
0.5.0 (2025-01-20)
- Implement ProtocolApprovalsManager (cbf2b4d)
0.4.0 (2025-01-20)
- Bump to latest Solidity version (0.8.28) (f987125), closes src/Counter.sol#2
- Specify foundry subdir when running slither in CI (40f0a2a)
0.3.0 (2025-01-17)
- Add EncodingError (bab5caa)
- Add RecoverableError (af6d73a)
0.2.0 (2025-01-17)
- Simplify StrategyEncoders and RouterEncoder (38b8bb0)
0.1.0 (2025-01-17)
- Make executor_address a String instead of Address (1d3ac22)
0.0.1 (2025-01-17)
- change release version (d584e0a)