Files
tycho-execution/CHANGELOG.md
semantic-release-bot 17780db05c chore(release): 0.128.0 [skip ci]
## [0.128.0](https://github.com/propeller-heads/tycho-execution/compare/0.127.0...0.128.0) (2025-09-25)

### Features

* Use tycho-common from crates.io ([89435b5](89435b5c76))
2025-09-25 11:03:28 +00:00

102 KiB

0.128.0 (2025-09-25)

Features

  • Use tycho-common from crates.io (89435b5)

0.127.0 (2025-09-25)

Features

  • Use tycho-common from github (5d73e3b)

0.126.0 (2025-09-25)

Features

  • Add historical_trade option to encoding (c51c6f5)
  • Pass the file contents instead of the file path for executors (e78a362)
  • Update tycho common to point to hooks feature branch (a98e8d2)

0.125.0 (2025-09-25)

Features

  • bump tycho-common version (fa3bb6d)

0.124.0 (2025-09-11)

Features

  • bump tycho-common version (bbd732d)

0.123.0 (2025-09-02)

Features

  • pin tycho-common version (b0783fb)

0.122.0 (2025-08-28)

Features

  • Bump tycho-common version (8101ff3)

0.121.0 (2025-08-28)

Features

  • rename "uniswap_v4" to "uniswap_v4_hooks" (c1d88be)
  • Support hooks (without special calldata) (a058177)
  • univ4: Pass user_data as hook_data in execution (93678d9)
  • Update UniswapV4 executor addresses (d7e377e)

Bug Fixes

  • access hooks attr, not hook (2c38cf8)
  • Add missing uniswap v4 hooks executor addresses (0daccfe)
  • Add missing uniswap v4 hooks executor addresses (5ab9e99)
  • After rebase fixes (1d952b1)
  • Recalculate calldata after merging main (2adcb89)
  • revert hooks rename (ea9a1a8)
  • Small safe wallet fixes (c9d09e9)

0.120.0 (2025-08-27)

Features

  • Deploy new hashflow router (eac45fa)

0.119.0 (2025-08-21)

Features

  • Add BytecodeExporter to TestUtils (cea964e)

0.118.0 (2025-08-21)

Features

  • Use Arc instead of & for protocol_state in Swap (a2a5319)

Bug Fixes

  • Updates to new datatype after merging main (e9c1a39)

0.117.0 (2025-08-21)

Features

  • implement SwapEncoder for Hashflow (93db953)

Bug Fixes

  • in bebop's encode_swap, fail early if router address is not present (c013bf7)
  • in hashflow's encode_swap, fail early if router address is not present (c506f2c)
  • in HashflowExecutor, _balanceOf must use trader address instead of the executor's to get the balance (a09d648)

0.116.0 (2025-08-19)

Features

  • Bebop executor in base (c974312)
  • Support Bebop quote through IndicativelyPriced state (2292061)
  • Update BebopExecutor deployed address (72b60aa)

Bug Fixes

  • Add bebop to protocol specific addresses (6e68d19)
  • Implement From for EncodingError (987956e)

0.115.0 (2025-08-14)

Features

  • Deploy BebopExecutor (f9ef8e0)
  • implement encoder and executor with single order support (7e7e3f0)
  • support multi and aggregate orders (ad0a999)

Bug Fixes

  • After merge fixes with SwapBuilder (d301dfc)
  • After merging main fixes (003ab7c)
  • Bebop: Fix AggregateOrder tests (7024da3)
  • Bebop: Fix encoding and tests (e793478)
  • cargo and forge fmt (17e5354)
  • Fix test imports (210d4fa)
  • Move Bebop tests according to new setup (01ab5d2)
  • SafeCast => V4SafeCast to fix build issue (946c439)
  • Simplify the BebopExecutor and fix Single tests (76a09d0)

0.114.0 (2025-08-14)

Features

0.113.0 (2025-08-14)

Features

  • Add estimated_amount_in to Swap. Add SwapBuilder (5eb9973)

0.112.2 (2025-08-07)

Bug Fixes

  • Encode sequential swaps with unwrapping WETH correctly (c42a5da)

0.112.1 (2025-07-31)

Bug Fixes

  • Rename mainnet to ethereum in txServiceUrls for Safe (51d9484)

0.112.0 (2025-07-22)

Features

  • Add protocol state to Swap object (c217702)

Bug Fixes

  • Replace smart pointer with regular pointer (95c5124)

0.111.0 (2025-07-15)

Features

  • Uniswap X deployment script (efa6fae)

Bug Fixes

  • Read Tycho Router addresses from file (d2d8b29)

0.110.0 (2025-07-14)

Features

  • UniswapX encoding example (2d4b0b9)

0.109.0 (2025-07-14)

Features

  • add testExecuteIntegration (4ba5919)

Bug Fixes

  • chain id call after main update (e775238)
  • Replicate a real Uniswap X order in integration test (96d0bf4)

0.108.0 (2025-07-11)

Features

  • Upgrade tycho-common (8458b46)
  • Upgrade tycho-common (effc25c)
  • Upgrade tycho-common (cb6042e)
  • Use Chain from tycho-core and remove current implementation (2c25b5a)

0.107.0 (2025-07-10)

Features

  • (WIP) Handle approvals in UniswapXFiller (e243667)
  • Handle native ETH outputs (3752c15)

Bug Fixes

  • silence slither on native address setting (1b6a24f)
  • use encodePacked to encode if approval needed (9e2f228)

0.106.0 (2025-07-09)

Features

  • UniswapXFiller callback - naive implementation (a114dfc)

Bug Fixes

  • disable slither warnings (a2d123a)

0.105.0 (2025-07-09)

Features

  • Upgrade scripts to submit to Safe wallet (2733bb0)

Bug Fixes

  • Simplify nonceOffset logic (ba60e4b)

0.104.0 (2025-07-08)

Features

  • Take reactor address as input to UniswapXFiller (00f22d6)
  • UniswapXFiller skeleton (ce1fe1d)

Bug Fixes

0.103.0 (2025-07-07)

Features

  • Deploy Balancer V3 executor (266e30d)

0.102.0 (2025-07-01)

Features

  • Deploy EkuboExecutor with MEV-resist (3fe9906)

0.101.5 (2025-06-27)

Bug Fixes

  • Use native token curve address and not regular zero address (0f679d6)

0.101.4 (2025-06-27)

Bug Fixes

  • Fix wrong log in CurveEncoder (312269d)

0.101.3 (2025-06-23)

Bug Fixes

  • Add optimized_transfers_integration_tests.rs (df63b87)

0.101.2 (2025-06-23)

Bug Fixes

0.101.1 (2025-06-23)

Bug Fixes

  • Exclude foundry files from the rust crate (fa13f09)
  • Remove unnecessary clones from encoding (e704151)

0.101.0 (2025-06-23)

Features

  • curve: Support passing eth/weth instead of weth/eth in encoding (525c16a)

0.100.1 (2025-06-13)

Bug Fixes

  • Correct misleading error message (a6cf215)
  • When choosing strategy, check if the grouped solution has any split (9599425)

0.100.0 (2025-06-06)

Features

  • Add balancer v3 to transfer optimization constants (c03df8a)
  • Add BalancerV3Encoder (06ce28c)
  • Add integration tests for balancer v3 (269e328)

Bug Fixes

  • BalancerV3Executor: Do data.length check at the beginning of swap (4f58977)
  • BalancerV3Executor: Slice callback data nicely (941879d)

0.99.0 (2025-06-05)

Features

  • Extend Swap to hold user_data: Option (eec50f8)

0.98.0 (2025-06-05)

Features

  • Add balancer-v3-monorepo lib (f173f9b)
  • Implement BalancerV3Executor (f34db52)
  • Make BalancerV3Executor inherit from ICallback (806ce4e)

0.97.0 (2025-06-05)

Features

  • Upgrade alloy to "1.0.6" (5fa97d0)

0.96.0 (2025-05-27)

Features

  • Deploy new router on base (0dafed0)
  • Update ethereum router + executor addresses (5bf3b5d)
  • Update mainnet executors + router addrs (cf6e7f0)
  • Update unichain executors + router addrs (e2e061e)

0.95.1 (2025-05-27)

Bug Fixes

  • Move encode_input back into encoding_utils.rs (92d36b9)

0.95.0 (2025-05-26)

Features

  • Don't sign permit2 objects (c62af2f)

Bug Fixes

  • Bring back swapper_pk for backwards compatibility (d12e3d3)
  • Make functions in encoding_utils.rs private (5ddd2a9)

0.94.0 (2025-05-23)

Features

  • Create non alloy specific Permit and PermitDetails structs (75f2c3a)

0.93.0 (2025-05-22)

Features

  • Add encode_full_calldata to TychoEncoder trait (5aff28e)
  • Add interacting_with to EncodedSolution (facdf71)
  • Remove slippage and expected_amount from Solution (08056c4)
  • Separate encoding swaps from encoding txs (4e8c6dd)

0.92.1 (2025-05-22)

Bug Fixes

  • Small misc improvements from audit (1f26fbc)

0.92.0 (2025-05-21)

Features

  • Add transferFromNeeded to non permit2 methods (cc9e88c)
  • Bring back TransferType and simplify encoding logic (3874892)
  • Loosen version constrain on tycho-common (046775b)
  • perform all transfers in executors (eeebd51)
  • Sketch for OneTransferFromOnly.sol (9401ce2)
  • Support new transfer logic in all executors (27dfde3)
  • Support new transfer logic in encoding (0f9af65)

Bug Fixes

  • Fix remaining tests after latest encoding changes (e0c195f)
  • Fix tests (not there yet) (d4244a7)
  • Initial balance for cyclic swaps (7fd9f61)
  • Make all tests pass! (ee68703)

0.91.0 (2025-05-19)

Features

  • curve: Get coin indexes from static attributes (fcaacf2)

0.90.0 (2025-05-15)

Features

  • Explicitly handle the TransferType.NONE case (65bd0d0)
  • Verify the amount out was received correctly for arbitrage swaps (70230bf)

Bug Fixes

  • Revert if the TransferType is not valid (b0c254a)

0.89.0 (2025-05-14)

Features

  • Remove special handling of the Univ4 callback (f14c8ee)

0.88.0 (2025-05-06)

Features

  • Choose single strategy if it's a grouped swap of the same protocol (079759a)

0.87.0 (2025-05-05)

Features

  • Update PancakeV2 executor addresses (872aa57)

Bug Fixes

  • pass permit2 in deployment scripts (ba19b00)

0.86.0 (2025-05-02)

Features

  • Change revert condition in _wrapETH (0400005)
  • Propagate the entire result of the callback (8a7c390)

0.85.1 (2025-05-01)

Bug Fixes

  • Derive Clone in TychoEncoders (f99bd29)

0.85.0 (2025-05-01)

Features

Bug Fixes

0.84.0 (2025-04-28)

Features

  • Clear transient storage after swap call (1b003dc)

0.83.0 (2025-04-28)

Features

  • Add security check for callback selector (4de1d10)

Bug Fixes

  • Remove tload from executor (3fb17c7)

0.82.1 (2025-04-24)

Bug Fixes

  • Make clippy happy after new format! format (7bf0b48)

0.82.0 (2025-04-23)

Features

  • (WIP) Support selection of transfer into router (a301a1c)
  • Add sequential swap methods (3ae9d3a)
  • Add SequentialSwap integration test with regular approvals (6e7bf3c)
  • Add SingleSwap integration test and fix bug in method signatures (df1c05e)
  • Add TokenTransfer class to BalancerV2 (3a73fef)
  • Add TokenTransfer class to Curve (462be54)
  • Add transfer out for Curve (328a281)
  • Add transfer out for Uniswap V4 (ec87969)
  • Allow for token_in_already_in_router (df92be8)
  • allow to pass msg.sender to USV3 callback (a37805d)
  • allow to pass msg.sender to USV3 callback (8969186)
  • Decode single and sequential swaps in LibSwap (1dad4af)
  • Delete EVMStrategyEncoder (this is now unnecessary) (6430c99)
  • Do not use V4Router for uniswap v4 (cd608cb)
  • ExecutorTransferMethods helper contract (147ba68)
  • ExecutorTransferMethods in UniswapV3Executor (3189139)
  • ExecutorTransferMethods in UniswapV3Executor (3890099)
  • Fix rollFork usage for Ekubo test (d7b5e6d)
  • Make USV3 callback work with direct executor call (5562dd2)
  • No more fee taking (6f2e5ac)
  • Optimize transfer to first pool (59a80dc)
  • Proper USV2Executor transfer decoding + tests (e8f56ff)
  • Proper USV2Executor transfer decoding + tests (ca1d474)
  • Proper USV3Executor transfer decoding + tests (e3ac394)
  • Refactor callback for pancakeV3 and Ekubo to use transient storage (deb10b8)
  • Refactor callback to use transient storage (af44956)
  • Refactor TychoEncoder (8b4b79b)
  • Rename split swap interfaces (7fc008a)
  • sequential swap solution validation (0d8150e)
  • Single swap methods. (6434566)
  • SingleSwapStrategyEncoder (11a05e4)
  • SingleSwapStrategyEncoder (5d586c2)
  • SingleSwapStrategyEncoder (a5f07a2)
  • Support in between swaps optimizations (efe12cf)
  • Support out transfer straight to the receiver (9bcb58e)
  • Support returning values from the callback (fb35a53)
  • Support using the TransferType in uniswap v4 (4a61de5)
  • tycho-router-encoder: Select strategy depending on the solution (f5e712e)
  • Update tycho-encode bin with new arguments (aba280a)
  • Use TokenTransfer optimization helper in Ekubo (d9066d0)

Bug Fixes

  • Add slither ignore for loop call (860bba4)
  • After merge format fixes (2b48293)
  • After merge test fixes (02cbb67)
  • After rebase fixes (8145f41)
  • bad merge (7e98145)
  • Bring back receiver address zero check (d447551)
  • Calldata size for Ekubo pay callback (be65c89)
  • Changes after rebase (d5d6e37)
  • Configurable fee on USV2 executor. (4f9785f)
  • Conscious slither silencing (4a20fa6)
  • consider wrapping scenario when getting transfer type (dbc9042)
  • Fix after merge with main (fff8ef0)
  • Fix executor address in test and remove duplicated test (2f81b16)
  • Fix integration tests with transfer in method support (d3ff9fd)
  • fix slither CI action (8f23463)
  • Fixes after merge with feature branch (26ec308)
  • Integration tests after merge (3f6bc56)
  • No more EVMStrategyEncoder (56d3eee)
  • Post rebase fixes (d024fe2)
  • Prevent multiple callbacks (f91b101)
  • properly add ekubo_v2 to constants (11886b3)
  • Remove router_address from Solution object (fcedd39)
  • Rename constants and update docstrings for clarity (244b7d3)
  • test fix after rebase (61c0163)
  • Test+formatting fixes after rebase. (e96ea1b)
  • Tighten max feeBps in USV2 executor (af68016)
  • TransferType renaming after rebase (cf0300d)
  • unsupported protocols for chained swaps are always unsupported (8aa5b08)
  • USV3 encoding/decoding after rebase (f3c4128)

Reverts

  • Revert "chore(release): 1.0.0 [skip ci]" (07be6b9)
  • Revert "chore(release): 1.0.1 [skip ci]" (a5e0d16)
  • Revert "chore(release): 1.0.2 [skip ci]" (2bfd780)
  • Revert "chore(release): 1.1.0 [skip ci]" (e15ed9b)

0.81.0 (2025-04-18)

Features

  • update tycho-common version to 0.66.4 (134c73e)

Bug Fixes

  • add slither disable after slither actions update (20573cb)

0.80.0 (2025-04-14)

Features

  • Redeploy balancer with forceApprove fix for USDT (a6b0f8d)

0.79.0 (2025-04-11)

Features

  • Add new CurveExecutor address (916c2b7)
  • Deploy Curve Executor (5d4d6d1)

Bug Fixes

  • Checksum curve pool addresses (9e68ab8)
  • Support pools that hold ETH but the coin is WETH (2e8392a)
  • Use forceApprove instead of regular Approve (c963f3b)

0.78.1 (2025-04-09)

Bug Fixes

  • Curve factory addresses are utf-8 encoded (ce71894)

0.78.0 (2025-04-08)

Features

  • Add protocol_specific_addresses.json file (739fb46)
  • curve: Add CurveEncoder (e9bb8c5)
  • curve: Add integration test (1e47d0e)
  • Support Curve ETH (913d677)

Bug Fixes

  • Add empty dicts for unichain and base in config (c0b50c0)
  • Fix Ekubo test (1838ccf)

0.77.0 (2025-04-07)

Features

  • add curve executor with router tests (7cde513)
  • allow executor to do native swaps, add diff pool type tests (93bdc86)
  • Refactor Curve Executor not to use the router (9f21842)

Bug Fixes

  • fix slither CI action (42d1ab3)
  • Improve curve executor tests and docstrings (f468a78)
  • Remove unnecessary test method (49aefc8)
  • resolve pr comments (9e2a9f5)

0.76.0 (2025-04-03)

Features

  • deploy Ekubo gas optimizations (9012d7b)

0.75.1 (2025-04-03)

Bug Fixes

  • Proper ekubo protocol name in GROUPABLE_PROTOCOLS (b4c687b)

0.75.0 (2025-04-03)

Features

Bug Fixes

  • Run foundry tests on PR branch (not main) (43f1a07)
  • Set native and wrapped tokens for Unichain (4878229)

0.74.0 (2025-04-02)

Features

  • Fix rollFork usage for Ekubo test (6cdca83)

Bug Fixes

  • Fix tests after cherry picking (5336969)

0.73.0 (2025-04-02)

Features

  • Add router_address to cli (1f6f1a4)

0.72.0 (2025-04-02)

Features

  • Make EncodingContext.router_address optional (8865e22)
  • Remove router_address from Solution, set default (d5c589d)
  • Support manual router address setting in builder (c336a28)

Bug Fixes

  • fix Solution.router_address for Ekubo (b397ddd)

0.71.0 (2025-04-01)

Features

  • Update ekubo router address (e3d25fc)

Bug Fixes

  • update ekubo_v2 executor (57aa1c3)

0.70.0 (2025-03-31)

Features

  • Support Ekubo callback in TychoRouter (b3078f9)

Bug Fixes

  • ekubo -> ekubo_v2 (18fa0cc)
  • ekubo -> ekubo_v2 (6c35f11)
  • Finalize ekubo executor address (c0068d4)
  • support payCallback method for Ekubo (7551612)
  • Take address for EkuboExecutor init (c678f40)
  • test setup fix after rebase (28f9f24)

0.69.0 (2025-03-31)

Features

  • Add PancakeSwapV3 support to encoding (fa024a4)
  • Pancakeswap V3 support (d582543)

0.68.2 (2025-03-28)

Bug Fixes

  • fix for foundry tests external contributors (a9ddb0e)

0.68.1 (2025-03-27)

Bug Fixes

0.68.0 (2025-03-27)

Features

  • switch to tycho_commons (0836bf7)

Bug Fixes

  • Handle unichain chain id (379858b)

0.67.2 (2025-03-27)

Bug Fixes

  • prepared lint workflow for external contributors (9896f48)
  • prepared lint workflow for external contributors (5162b9e)

0.67.1 (2025-03-27)

Bug Fixes

  • added empty line (b3c4dbc)
  • fixed git checkout for codelint (58e2ddd)
  • prepared lint workflow for external contributors (9f7d605)
  • removed empty line (ae5d7de)
  • test run outside a PR (af01972)

0.67.0 (2025-03-20)

Features

  • Set v2/v3 executor addresses on ethereum (783712b)
  • Support Pancakeswap v3 on ethereum (2a4ee88)
  • Support sushiswap v2 and pancakeswap v2 on ethereum (0a8a34b)

Bug Fixes

  • proper exchange name when deploying executors (39bd9df)
  • Remove pancakeswap V3 from approved executor addresses (1ed149a)

0.66.1 (2025-03-19)

Bug Fixes

  • Slippage precision calculation (d644b63)

0.66.0 (2025-03-14)

Features

  • Add check to don't support cyclical swaps with native actions (27c9c53)
  • Add validation for cyclical trades (f62a9d2)

Bug Fixes

  • Add individual tests for each case (e96bcdf)
  • In test asset, use 0 for the last split, and not 0.5 (0aba7ed)

0.65.1 (2025-03-13)

Reverts

  • Revert "feat: Add validation for cyclical trades" (3d7dcef)

0.65.0 (2025-03-13)

Features

  • Add validation for cyclical trades (55ffa4e)

0.64.0 (2025-03-13)

Features

  • update tycho-core to 0.61.1 (53b8c6a)

0.63.0 (2025-03-10)

Features

  • add cyclicSwapAmountOut tracker in _swap, add split cylic tests (4d67df4)

Bug Fixes

  • 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)

Features

  • enforce checked amount when encoding to router (a4476e0)

0.61.0 (2025-03-05)

Features

  • Rename Etherscan in deployment verification (bc54eac)

0.60.0 (2025-03-05)

Features

  • Check min amount out is not zero (5c28d77)

0.59.0 (2025-03-05)

Features

  • add transferFrom in swap and move core swap logic inside _swapChecked (f853739)

Bug Fixes

  • TychoRouter swap check test naming and docs (7833086)

0.58.2 (2025-03-05)

Bug Fixes

  • Make permit2 permit an action in the universal router (db9c8cd)

0.58.1 (2025-03-04)

Bug Fixes

  • add amountIn in error TychoRouter__AmountInDiffersFromConsumed (a3bffd4)
  • inequality check for amountConsumed and amountIn (6f421eb)

0.58.0 (2025-03-03)

Features

  • Rename ETH_RPC_URL -> RPC_URL (9bb0d9b)

0.57.0 (2025-03-03)

Features

  • Rename shortcut methods of encoder builder (6f572ee)

0.56.0 (2025-02-28)

Features

  • update base executor addresses (bc47c12)

Bug Fixes

  • make USV2 factory configurable in Executor (33973a6)

0.55.0 (2025-02-27)

Features

  • 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)

Features

Bug Fixes

  • 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)

Bug Fixes

  • remove 0 amount check in _unwrapEth (0273f58)

0.53.0 (2025-02-26)

Features

  • support base deployment (7ca9120)

Bug Fixes

  • (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)

Features

  • 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)

Bug Fixes

  • Unify both executor addresses in one file (57789a4)

0.51.2 (2025-02-26)

Bug Fixes

  • Restrict receive callers to have code (801976f)

0.51.1 (2025-02-25)

0.51.0 (2025-02-24)

Features

  • hardcode callback and swap selection in dispatcher (58116e0)
  • rm selector from usv3, usv4, update tests, and rename dispatcher file (69745b1)

Bug Fixes

  • usv4 integration tests and remove selector from swap/strategy encoder (18efe03)

0.50.0 (2025-02-22)

Features

  • add target verification for usv2 and usv3 using _computePairAddress (7936ba1)

0.49.0 (2025-02-21)

Features

  • Use openzepplin's sendValue instead of send for ETH transfers (0ba5d02)

0.48.1 (2025-02-21)

Bug Fixes

  • Native ETH input/output integration tests/fixes (a7aa4d7)

0.48.0 (2025-02-21)

Features

  • Adapt SplitSwapStrategyEncoder to have optional permit2 logic (20e6419)
  • Implement Clone for EVMTychoEncoder (8b2af4f)
  • Update tycho-core (c6c734d)

0.47.0 (2025-02-20)

Features

  • Don't encode min amount for USV4 (d65d575)
  • UniswapV4 integration test and fixes (45fdfc7)

Bug Fixes

  • Pass proper group tokens in EncodingContext... (81c8a04)

0.46.1 (2025-02-20)

0.46.0 (2025-02-20)

Features

  • add native and weth addresses for supported networks (83f1955)

Bug Fixes

  • add decode_hex to models (7dd59db)

0.45.0 (2025-02-20)

Features

  • TychoRouter swap method not requiring Permit2 (c3482a5)

0.44.0 (2025-02-19)

Features

  • 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)

Bug Fixes

  • update EncodingContext in strategy_encoder (7f3aca9)

0.43.0 (2025-02-19)

Features

  • Add methods to builder to set chain and strategy independently (684de4f)
  • Create a EVMEncoderBuilder (03506fa)
  • Remove direct_execution from Solution (8537d27)

Bug Fixes

0.42.0 (2025-02-19)

Features

  • Support swap grouping for executor strategy (ac83117)

0.41.0 (2025-02-18)

Features

  • 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)

Features

  • (WIP) UniswapV4 encoding (f32210b)
  • Generalize group_swaps method (47b6180)
  • Merge USV4 strategy back into split strategy (44aabf1)

Bug Fixes

  • Do not count intermediary tokens in indices (e94154b)
  • Do not group split swaps (957bf89)

0.39.0 (2025-02-14)

Features

  • univ4: Implement swapping with multiple hops (21a8c1a)
  • univ4: Refactor input and handle single swap case (be7883a)

Bug Fixes

  • 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)

Features

  • Add a production foundry profile (dae38ce)
  • Support uniswap v4 callback in TychoRouter (591d73b)

Bug Fixes

  • Verify that the executor exists in the uni v4 callback (4c5e3bf)

0.37.0 (2025-02-12)

Features

  • 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)

Bug Fixes

  • _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)

Bug Fixes

  • Miscellaneous audit remarks (582533f)

0.36.1 (2025-02-11)

0.36.0 (2025-02-11)

Features

  • Add selector to Transaction (dd7ecac)

0.35.1 (2025-02-11)

Bug Fixes

  • (TychoRouter) Revert if empty swaps (37efe52)

0.35.0 (2025-02-07)

Features

  • 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)

Bug Fixes

  • 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)

Features

Bug Fixes

0.33.0 (2025-02-06)

Features

  • Get native/wrapped addresses from chain (8cd7d9f)
  • Take Chain object containing native/wrapped addresses (e83b8d9)

Bug Fixes

  • Do not let user specify the native/wrapped token (1a07c7d)

0.32.0 (2025-02-06)

Features

  • Accept any struct that implements Into in Swap (cb14022)

0.31.0 (2025-02-05)

Features

  • add tests for split swap validations (b69aef9)
  • add tests for wrap unwrap case (4d97c3f)
  • add validation for split swap (f80ffa9)

Bug Fixes

  • checks in validations (95edd5b)
  • get_mock_split_swap_strategy_encoder (7b72263)
  • use native action to validate path (c787f5e)

0.30.1 (2025-02-04)

Bug Fixes

0.30.0 (2025-02-04)

Features

0.29.1 (2025-02-04)

Bug Fixes

  • Fix bug with token indexing when wrapping/unwrapping (3f4e27a)
  • test fixes after merge (ff283bc)

0.29.0 (2025-02-04)

Features

  • add swap encoder test in balancer v2 executor (6333072)

Bug Fixes

0.28.0 (2025-02-04)

Features

  • Tycho encoder validation (4bc6159)

Bug Fixes

  • test_validate_fails_for_unwrap_wrong_last_swap (0660321)

0.27.0 (2025-02-04)

Features

  • Add complex swap to quickstart example (80454f0)
  • Add simple quickstart example (84d162d)

Bug Fixes

  • 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)

Features

  • Verify that no amount in is left in the router (0860d67)

0.25.3 (2025-01-31)

Bug Fixes

  • transfer ETH if tokenOut is ETH (3245ea7)

0.25.2 (2025-01-31)

Bug Fixes

  • Accidentally changed wrong test's calldata (faacd3f)
  • Expect decimal during encoding, add assert to test (5a81ed6)

0.25.1 (2025-01-31)

Bug Fixes

  • Fix selector - shouldn't contain spaces (5d6f0c1)
  • Fix token index order in strategy encoding. (c85c353)

0.25.0 (2025-01-31)

Features

  • Add ChainId model (089e7d2)
  • Implement SplitSwapStrategyEncoder (feb91cc)
  • Remove generalisation on user approvals manager (3a69bbf)
  • Simplify router encoder (6e8d2ed)

Bug Fixes

  • 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)

Features

  • rename batchSetExecutor to setExecutors (c653062)
  • replace setExecutor with batchSetExecutor (ea504fa)

Bug Fixes

0.23.0 (2025-01-30)

Features

  • 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)

Features

  • fixed USV3 Verification (96af542)
  • Implement generic callback (fafeba9)
  • UniswapV3Executor and integration tests (ca32446)
  • USV3 verification (7822c4f)

Bug Fixes

  • 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)

Features

  • 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)

Bug Fixes

0.20.0 (2025-01-28)

Features

  • 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)

Bug Fixes

0.19.0 (2025-01-28)

Features

0.18.0 (2025-01-27)

Features

  • Perform staticcall to CallbackVerifier (ad0748e)

0.17.0 (2025-01-27)

Features

  • add pause/unpause methods (c982ed9)

Bug Fixes

0.16.0 (2025-01-27)

Features

  • add balance v2 encoder test (9cecea8)

Bug Fixes

0.15.0 (2025-01-24)

Features

Bug Fixes

  • Add input validation size in Uniswapv2SwapExecutor (ed44f4e)
  • Remove exactOut logic from Uniswapv2SwapExecutor (b9f4451)

0.14.0 (2025-01-24)

Features

  • delegatecall to executor in SwapExecutionDispatcher (e91ee96)
  • Emit event when removing executor (1fabff1)

Bug Fixes

  • ISwapExecutor shouldn't be payable (3df17e8)
  • Silence slither warnings (b616e11)

0.13.0 (2025-01-23)

Features

Bug Fixes

  • Correct encoding of the approvals (04e925f)
  • Small improvements (b9cfc4a)

0.12.0 (2025-01-23)

Features

  • add tests for withdraw, fee and make it DRY (056582c)

Bug Fixes

0.11.0 (2025-01-23)

Features

  • add LibPrefixLengthEncodedByteArray with tests (f25da21)
  • keep assembly (ae662d0)

0.10.0 (2025-01-23)

Features

Bug Fixes

  • use FEE_SETTER_ROLE for setFeeReceiver (15d3bec)

0.9.0 (2025-01-22)

Features

  • Emit events when setting executors/verifiers (59950a7)
  • Set swap executors and verifiers (4cb3286)

0.8.0 (2025-01-22)

Features

Bug Fixes

0.7.0 (2025-01-22)

Features

0.6.0 (2025-01-21)

Features

Bug Fixes

  • Filter paths when running slither in CI (96809d4)

0.5.0 (2025-01-20)

Features

  • Implement ProtocolApprovalsManager (cbf2b4d)

0.4.0 (2025-01-20)

Features

  • Add Slither to CI (f0620bd)
  • Add Slither to README.md and include contract file to test (2998bb3)

Bug Fixes

0.3.0 (2025-01-17)

Features

Bug Fixes

0.2.0 (2025-01-17)

Features

  • Simplify StrategyEncoders and RouterEncoder (38b8bb0)

0.1.0 (2025-01-17)

Features

  • Add chain in config.json for the executor addresses (f5df1bb)
  • Add evm feature gate (6c6ba21)

Bug Fixes

  • Make executor_address a String instead of Address (1d3ac22)

0.0.1 (2025-01-17)

Bug Fixes

0.0.0 (2025-01-17)